code.cpp

Go to the documentation of this file.
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 codeYYrestart(codeYYin  )
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 codeYYleng;
00155 
00156 extern FILE *codeYYin, *codeYYout;
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 codeYYtext. */ \
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 codeYYtext 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 codeYYrestart()), so that the user can continue scanning by
00248          * just pointing codeYYin 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 codeYYtext is formed. */
00276 static char yy_hold_char;
00277 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00278 int codeYYleng;
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 codeYYwrap()'s to do buffer switches
00286  * instead of setting up a fresh codeYYin.  A bit of a hack ...
00287  */
00288 static int yy_did_buffer_switch_on_eof;
00289 
00290 void codeYYrestart (FILE *input_file  );
00291 void codeYY_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00292 YY_BUFFER_STATE codeYY_create_buffer (FILE *file,int size  );
00293 void codeYY_delete_buffer (YY_BUFFER_STATE b  );
00294 void codeYY_flush_buffer (YY_BUFFER_STATE b  );
00295 void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer  );
00296 void codeYYpop_buffer_state (void );
00297 
00298 static void codeYYensure_buffer_stack (void );
00299 static void codeYY_load_buffer_state (void );
00300 static void codeYY_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00301 
00302 #define YY_FLUSH_BUFFER codeYY_flush_buffer(YY_CURRENT_BUFFER )
00303 
00304 YY_BUFFER_STATE codeYY_scan_buffer (char *base,yy_size_t size  );
00305 YY_BUFFER_STATE codeYY_scan_string (yyconst char *yy_str  );
00306 YY_BUFFER_STATE codeYY_scan_bytes (yyconst char *bytes,int len  );
00307 
00308 void *codeYYalloc (yy_size_t  );
00309 void *codeYYrealloc (void *,yy_size_t  );
00310 void codeYYfree (void *  );
00311 
00312 #define yy_new_buffer codeYY_create_buffer
00313 
00314 #define yy_set_interactive(is_interactive) \
00315         { \
00316         if ( ! YY_CURRENT_BUFFER ){ \
00317         codeYYensure_buffer_stack (); \
00318                 YY_CURRENT_BUFFER_LVALUE =    \
00319             codeYY_create_buffer(codeYYin,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         codeYYensure_buffer_stack (); \
00328                 YY_CURRENT_BUFFER_LVALUE =    \
00329             codeYY_create_buffer(codeYYin,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 codeYYwrap(n) 1
00339 #define YY_SKIP_YYWRAP
00340 
00341 typedef unsigned char YY_CHAR;
00342 
00343 FILE *codeYYin = (FILE *) 0, *codeYYout = (FILE *) 0;
00344 
00345 typedef int yy_state_type;
00346 
00347 extern int codeYYlineno;
00348 
00349 int codeYYlineno = 1;
00350 
00351 extern char *codeYYtext;
00352 #define yytext_ptr codeYYtext
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 codeYYtext.
00361  */
00362 #define YY_DO_BEFORE_ACTION \
00363         (yytext_ptr) = yy_bp; \
00364         codeYYleng = (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 187
00370 #define YY_END_OF_BUFFER 188
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[6036] =
00379     {   0,
00380        84,   84,   85,   85,   75,   75,  133,  133,  109,  109,
00381       188,  186,  187,  185,  187,    1,  186,  187,  183,  186,
00382       187,  184,  186,  187,  186,  187,  186,  187,  186,  187,
00383       186,  187,   84,  186,  187,   87,  186,  187,   84,  183,
00384       186,  187,   84,  184,  186,  187,   84,  186,  187,   84,
00385       186,  187,  186,  187,   84,  186,  187,   84,  186,  187,
00386        85,  186,  187,   88,  186,  187,   85,  183,  186,  187,
00387        85,  184,  186,  187,   85,  186,  187,   85,  186,  187,
00388        85,  186,  187,   85,  186,  187,   90,   93,  186,  187,
00389        94,  185,  187,    1,   90,   93,  186,  187,   92,   93,
00390 
00391       186,  187,   90,   93,  183,  186,  187,   90,   93,  184,
00392       186,  187,   90,   93,  186,  187,   90,   93,  186,  187,
00393        90,   93,  186,  187,   90,   93,  186,  187,   23,  186,
00394       187,  185,  187,    1,   23,  186,  187,   23,  183,  186,
00395       187,   23,  184,  186,  187,   23,  186,  187,   23,  186,
00396       187,   23,  186,  187,   23,  186,  187,   23,  186,  187,
00397       154,  186,  187,  154,  186,  187,    1,  154,  186,  187,
00398       154,  183,  186,  187,  154,  184,  186,  187,  186,  187,
00399       186,  187,  154,  186,  187,  154,  186,  187,  186,  187,
00400       156,  159,  186,  187,  158,  185,  187,    1,  157,  159,
00401 
00402       186,  187,  156,  159,  183,  186,  187,  156,  159,  184,
00403       186,  187,  156,  159,  186,  187,  156,  159,  186,  187,
00404       156,  159,  186,  187,  156,  159,  186,  187,  163,  166,
00405       186,  187,  165,  185,  187,    1,  163,  166,  186,  187,
00406       163,  166,  183,  186,  187,  163,  166,  184,  186,  187,
00407       166,  186,  187,  163,  166,  186,  187,  163,  166,  186,
00408       187,  163,  166,  186,  187,  163,  166,  186,  187,  186,
00409       187,  185,  187,    1,  186,  187,   65,  186,  187,   82,
00410       186,  187,  186,  187,   83,  186,  187,  183,  186,  187,
00411        65,  184,  186,  187,    9,   65,  186,  187,  103,  186,
00412 
00413       187,    9,   65,  186,  187,  100,  186,  187,   65,  186,
00414       187,  122,  186,  187,   95,  186,  187,   96,  186,  187,
00415        97,  186,  187,  186,  187, 8271,  186,  187,16462,16463,
00416     16465, 8271,  186,  187,16462,16463,16465, 8271,  186,  187,
00417     16462,16463,16465,  103,  183,  186,  187,  121,  184,  186,
00418       187, 8271,  186,  187,16462,16463,16465, 8271,  186,  187,
00419     16462,16463,16465, 8271,  186,  187,16462,16463,16465, 8271,
00420       186,  187,16462,16463,16465, 8271,  186,  187,16462,16463,
00421     16465, 8271,  186,  187,16462,16463,16465, 8271,  186,  187,
00422     16462,16463,16465, 8271,  186,  187,16462,16463,16465, 8271,
00423 
00424       186,  187,16462,16463,16465, 8271,  186,  187,16462,16463,
00425     16465, 8271,  186,  187,16462,16463,16465, 8271,  186,  187,
00426     16462,16463,16465, 8271,  186,  187,16462,16463,16465, 8271,
00427       186,  187,16462,16463,16465, 8271,  186,  187,16462,16463,
00428     16465, 8271,  186,  187,16462,16463,16465, 8271,  186,  187,
00429     16462,16463,16465, 8271,  186,  187,16462,16463,16465, 8271,
00430       186,  187,16462,16463,16465, 8271,  186,  187,16462,16463,
00431     16465,   26,  186,  187,   27,  186,  187,   65,  186,  187,
00432       186,  187,   22,  186,  187,   65,  186,  187,  131,  186,
00433       187,  186,  187,  131,  186,  187,  131,  186,  187,  130,
00434 
00435       183,  186,  187,  132,  184,  186,  187,  131,  186,  187,
00436       131,  186,  187,  129,  186,  187,  131,  186,  187,  131,
00437       186,  187,  128,  186,  187,  131,  186,  187,  131,  186,
00438       187,  131,  186,  187,  127,  186,  187,16531,  127,  186,
00439       187,16531,  127,  186,  187,16531,  131,  186,  187,  127,
00440       186,  187,16531,  127,  186,  187,16531,  127,  186,  187,
00441     16531,  127,  186,  187,16531,  127,  186,  187,16531,  127,
00442       186,  187,16531,  127,  186,  187,16531,  127,  186,  187,
00443     16531,  127,  186,  187,16531,  127,  186,  187,16531,  127,
00444       186,  187,16531,  127,  186,  187,16531,  127,  186,  187,
00445 
00446     16531,  127,  186,  187,16531,  127,  186,  187,16531,  127,
00447       186,  187,16531,  127,  186,  187,16531,  127,  186,  187,
00448     16531,  127,  186,  187,16531,  127,  186,  187,16531,  131,
00449       186,  187,  131,  186,  187,  131,  186,  187,  167,  186,
00450       187,  167,  186,  187,  185,  187,    1,  167,  186,  187,
00451        82,  167,  186,  187,  167,  186,  187,   83,  167,  186,
00452       187,  132,  167,  184,  186,  187,  167,  186,  187,  167,
00453       186,  187,  167,  186,  187, 8294,  186,  187,16485,16486,
00454       167,  183,  186,  187,  167,  184,  186,  187,   27,  167,
00455       186,  187,  167,  186,  187,  167,  186,  187,  167,  186,
00456 
00457       187,  186,  187,  131,  186,  187,  151,  186,  187,  127,
00458       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00459       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00460       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00461       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00462       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00463       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00464       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00465       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00466       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00467 
00468       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00469       186,  187,16533,16534,  127,  186,  187,16533,16534,  127,
00470       186,  187,16533,16534,  186,  187,   83,  186,  187,  143,
00471       186,  187,  145,  186,  187,  144,  186,  187,  186,  187,
00472       186,  187,   30,  186,  187,   38,  186,  187,   29,  186,
00473       187,   32,  186,  187,   32,  186,  187,   40,  186,  187,
00474       186,  187,  186,  187,  186,  187,   39,  186,  187,   33,
00475       186,  187,  186,  187,    8,  185,  187,  186,  187,    9,
00476       186,  187,   34,  186,  187,  186,  187,   37,  186,  187,
00477        37,  186,  187,   37,  186,  187,   37,  186,  187,   37,
00478 
00479       186,  187,  186,  187,  186,  187,   47,  183,  186,  187,
00480        50,  186,  187,   43,  186,  187,   44,  186,  187,  186,
00481       187,   42,  186,  187,   42,  186,  187,   42,  186,  187,
00482       186,  187,   48,  183,  186,  187,   49,  184,  186,  187,
00483        45,  186,  187,   46,  186,  187,  186,  187,16405,    1,
00484       186,  187,16405,  183,  186,  187,16405,  184,  186,  187,
00485     16405,  186,  187,16405,  186,  187,16405,  186,  187,16405,
00486       186,  187,16405,   70,  186,  187,   71,  186,  187,  186,
00487       187,  186,  187,  186,  187,  186,  187,  186,  187,  186,
00488       187,  186,  187,  186,  187,  186,  187,  186,  187,  186,
00489 
00490       187,  186,  187,  186,  187,  186,  187,  186,  187,  185,
00491       187,    1,  186,  187,  186,  187,   75,  186,  187,  186,
00492       187,   72,  186,  187,   73,  186,  187,   73,  186,  187,
00493        73,  186,  187,   73,  186,  187,   73,  186,  187,   73,
00494       186,  187,   73,  186,  187,   73,  186,  187,   73,  186,
00495       187,   73,  186,  187,   73,  186,  187,   73,  186,  187,
00496        73,  186,  187,  186,  187,  186,  187,  142,  186,  187,
00497       133,  142,  186,  187,  133,  185,  187,    1,  142,  186,
00498       187,  141,  142,  186,  187,  142,  186,  187,  142,  183,
00499       186,  187,  142,  184,  186,  187,  142,  186,  187,  134,
00500 
00501       142,  186,  187,  142,  186,  187,  138,  142,  186,  187,
00502       138,  142,  186,  187,  138,  142,  186,  187,  138,  142,
00503       186,  187,  138,  142,  186,  187,  138,  142,  186,  187,
00504       136,  142,  186,  187,  133,  142,  186,  187,  142,  186,
00505       187,   19,  186,  187,   20,  185,  187,    1,   19,  186,
00506       187,   19,  186,  187,   19,  183,  186,  187,   19,  184,
00507       186,  187,   19,  186,  187,   10,   19,  186,  187,   12,
00508        19,  186,  187,   19,  186,  187,   18,   19,  186,  187,
00509        18,   19,  186,  187,   18,   19,  186,  187,   18,   19,
00510       186,  187,   18,   19,  186,  187,   18,   19,  186,  187,
00511 
00512        18,   19,  186,  187,   18,   19,  186,  187,   18,   19,
00513       186,  187,   18,   19,  186,  187,   18,   19,  186,  187,
00514        18,   19,  186,  187,   18,   19,  186,  187,   19,  186,
00515       187,   19,  186,  187,   19,  186,  187,   11,   19,  183,
00516       186,  187,   17,   18,   19,  186,  187,   19,  186,  187,
00517        16,   19,  184,  186,  187,   15,   18,   19,  186,  187,
00518        15,   18,   19,  186,  187,   15,   18,   19,  186,  187,
00519        15,   18,   19,  186,  187,   15,   18,   19,  186,  187,
00520        15,   18,   19,  186,  187,   15,   18,   19,  186,  187,
00521        15,   18,   19,  186,  187,   15,   18,   19,  186,  187,
00522 
00523        15,   18,   19,  186,  187,   15,   18,   19,  186,  187,
00524        15,   18,   19,  186,  187,   15,   18,   19,  186,  187,
00525       119,  186,  187,  120,  185,  187,    1,  119,  186,  187,
00526       113,  119,  186,  187,  114,  119,  186,  187,  119,  186,
00527       187,  115,  119,  183,  186,  187,  116,  119,  184,  186,
00528       187,  119,  186,  187,  119,  186,  187,  106,  118,  119,
00529       186,  187,  104,  119,  183,  186,  187,  105,  119,  184,
00530       186,  187,  119,  186,  187,  119,  186,  187,  114,  119,
00531       186,  187,  118,  119,  186,  187,16491,16492,  109,  119,
00532       186,  187,    1,  109,  119,  186,  187,  111,  119,  186,
00533 
00534       187,  114,  119,  186,  187,  109,  119,  183,  186,  187,
00535       109,  119,  184,  186,  187,  109,  119,  186,  187,  109,
00536       119,  186,  187,  109,  118,  119,  186,  187,  119,  186,
00537       187,  109,  119,  186,  187,  109,  119,  186,  187,  186,
00538       187,  185,  187,    1,  186,  187,  141,  186,  187,  186,
00539       187,  140,  186,  187,  139,  186,  187,  139,  186,  187,
00540       139,  186,  187,  139,  186,  187,  139,  186,  187,  139,
00541       186,  187,  139,  186,  187,  139,  186,  187,  139,  186,
00542       187,  139,  186,  187,  139,  186,  187,  139,  186,  187,
00543       139,  186,  187,  136,  186,  187,  186,  187,   57,  186,
00544 
00545       187,   56,  185,  187,    1,   57,  186,  187,   57,  186,
00546       187,   57,  183,  186,  187,   57,  184,  186,  187,   57,
00547       186,  187,   57,  186,  187,   55,   57,  186,  187,   57,
00548       186,  187,   57,  186,  187,  180,  182,  181,  180,  182,
00549        84,   84,   86,  180,   84,   86,  182,   87,  181,   89,
00550        84,   84,   84,   86,  180,   84,   86,  182,   85,   85,
00551        86,  180,   85,   86,  182,   85,  181,   85,   85,   85,
00552        86,  180,   85,   86,  182,   90,   91,   90,  180,   90,
00553       182,   90,   90,   90,  180,   90,  182,  169,   25,  182,
00554        24,   25,  182,  154,  154,  155,  153,  180,  153,  182,
00555 
00556       154,  181,  154,  153,  180,  153,  182,  156,  156,  180,
00557       156,  182,  156,  181,  156,  156,  156,  180,  156,  182,
00558       163,  162,  164,  180,  163,  164,  182,  163,  181,  163,
00559       163,  164,  180,  163,  164,  182, 8271,16462,16463,16465,
00560      8271,16462,16463,16465,  100,  122, 8271, 8273, 8270, 8271,
00561     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00562     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00563     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00564     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00565     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00566 
00567     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8256,
00568      8271,16446,16448,16462,16463,16465, 8271,16462,16463,16465,
00569      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00570     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00571      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00572     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00573      8271,16462,16463,16465, 8271,16462,16463,16465, 8258, 8271,
00574     16450,16462,16463,16465, 8256, 8271,16446,16448,16462,16463,
00575     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00576     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00577 
00578     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00579     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00580     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00581     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00582     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00583     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00584     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00585     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00586     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00587     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00588 
00589     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00590     16462,16463,16465, 8271,16462,16463,16465,   22,  131,  127,
00591       127,  131,  131,  131,  131,  146, 8339,  127,16531,  127,
00592     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00593     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00594     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00595     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00596     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00597     16531,  127,16531,  127,16531,  127,16531,  127,16531,   61,
00598       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00599 
00600       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00601       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00602       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00603       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00604       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00605      8294,16485,16486, 8294, 8293, 8294,16485,16486, 8294,16485,
00606     16486,  151, 8341, 8342,  127,16533,16534,  127,16533,16534,
00607       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00608     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00609     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00610 
00611       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00612     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00613     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00614       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00615     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00616     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00617       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00618     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00619     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00620       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00621 
00622     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00623     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00624       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00625     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00626     16534,  127,16533,16534,  145,  145,   38,   40,   32,   30,
00627        38,   32,   32,   40,   39,   33,   33,   37,   37,   37,
00628        37,   37,   37,   42,   42,   42,   42,   42,16405, 8213,
00629       180,16405,  182,16405, 8213,  181,16405,16405,  180,16405,
00630       182,16405, 8258,16450,   73,   75,   73,   73,   73,   73,
00631        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
00632 
00633        73,   73,   73,  133,  136,  133,  138,  138,  138,  138,
00634       138,  138,  138,  133,   18,   18,   18,   18,   18,   18,
00635        18,   18, 8258,16450,   18,   18,   18,   18,   18,   18,
00636        18,   18,   18,   17,   18,   17,   18,   13,   15,   18,
00637        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
00638        15,   18,   14,   15,   18,   15,   18,   15,   18,   15,
00639        18,   15,   18,   15,   18,   15,   18,   15,   18,   15,
00640        18,   15,   18,  106,  118,  113,  181,  106,  118,  118,
00641     16491,16492,  118,16491,16492, 8300, 8299,  109,  118,  109,
00642       180,  109,  182,  117,  181,  109,  118,  110,  109,  109,
00643 
00644       109,  180,  109,  182,  139,  139,  139,  139,  139,  139,
00645       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
00646       139,  139,  139,  139,   55,   55,   84,   84,   84,   84,
00647        84,   84,   84,   84,   84,   84,   85,   85,   85,   85,
00648        85,   85,   85,   85,   85,   85,   90,   90,   90,   90,
00649        90,   90,   90,   90,   90,   90,  156,  156,  156,  156,
00650       156,  156,  156,  156,  156,  156,  161,  163,  163,  163,
00651       163, 8271,16462,16463, 8271,16462,16463,16465, 8271,16462,
00652     16463,   98,   98, 8272,16464,  123, 8269,16461, 8271,16462,
00653     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00654 
00655      8271,16462,16463,16465, 8251, 8271,16443,16444,16462,16463,
00656     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00657     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00658     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00659     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00660     16465,   63,   63, 8256, 8271,   63, 8254,   63, 8273,   63,
00661      8270,   63,   63, 8271,16462,16463,16465, 8271,16462,16463,
00662     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00663     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00664     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00665 
00666     16462,16463,16465, 8256, 8271,16446,16448,16462,16463,16465,
00667      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00668     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00669      8258, 8271, 8271,16462,16463,16465, 8271,16462,16463,16465,
00670      8258, 8271,16450,16462,16463,16465, 8271,16462,16463,16465,
00671      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00672     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00673      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00674     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00675      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00676 
00677     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00678      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00679     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00680      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00681     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00682      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00683     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00684      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00685     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00686      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00687 
00688     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00689      8271,16462,16463,16465, 8271, 8271,16462,16463,16465,  127,
00690       127,  127,  127,16531,  127,16531,  127,16531,  127,16531,
00691       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00692       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00693       127,16531,  126,  126,  126,  146,  126,  126, 8339,  126,
00694       126,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00695     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00696     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00697     16531,  125,  125,  125,  146,  125,  125, 8339,  125,  125,
00698 
00699       127,16531,   61,   61,  127,16531,  127,16531,  127,16531,
00700       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00701       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00702       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00703       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00704       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00705       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00706       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00707       127,16531,  127,16531, 8294,16486, 8294,16486, 8294, 8294,
00708     16485,16486,  127,16533,16534,  127,16533,16534,  127,16533,
00709 
00710     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00711       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00712     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00713     16534,  127,16533,16534,  127,16533,16534,  126,  126,  126,
00714      8341,  126,  126, 8342,  127,16533,16534,  127,16533,16534,
00715       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00716     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00717     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00718       127,16533,16534,  127,16533,16534,  125,  125,  125, 8341,
00719       125,  125, 8342,  127,16533,16534,  127,16533,16534,  127,
00720 
00721     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00722     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00723       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00724     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00725     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00726       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00727     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00728     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00729       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00730     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00731 
00732     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00733       127,16533,16534,   32,   33,   37,   37,   37,   37,   42,
00734        42,   42,   42,16405,16405,16405,16405,16405,16405,16405,
00735     16405,16405,16405, 8258, 8269,16461,   73,   73,   73,   73,
00736        73,  125,  125,  125,  125,   73,   73,   73,   73,   73,
00737        73,   73,   73,   73,   73,  138,  138,  138,  137,  138,
00738       138,   18,   18,   18,   18,   18,   18,   18,   18,   18,
00739        18,   18,   18,   18,   15,   18,   15,   18,   15,   18,
00740        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
00741        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
00742 
00743       112,  118,  109,  109,  109,  109,  109,  109,  109,  109,
00744       109,  109,  139,  139,  139,  139,  139,  139,  139,  139,
00745       139,  139,  139,  139,  139,  139,  139,  139,  139,  178,
00746       179,  175,  177,  178,  173,  174,  175,   84,  178,   84,
00747        84,  179,   84,   84,   84,   84,  177,  178,   84,  173,
00748        84,   84,   85,  178,   85,   85,  179,   85,   85,   85,
00749        85,  177,  178,   85,  173,   85,   85,   90,  178,   90,
00750        90,  179,   90,   90,   90,   90,  177,  178,   90,  173,
00751        90,   90,  152,  179,  156,  178,  156,  156,  179,  156,
00752       156,  156,  156,  177,  178,  156,  173,  156,  156,  161,
00753 
00754       163,  163,  163,  163, 8271, 8271,16462,16463, 8271,16462,
00755     16463,16465, 8271, 8271,16462,16463, 8272,   28, 8271,16462,
00756     16463,16465, 8269, 8271,16462,16463,16465, 8271,16462,16463,
00757     16465, 8271,16462,16463,16465, 8271,16462,16463,16465,   58,
00758        58, 8251, 8271,   58,   58, 8252, 8273,   58, 8270,   58,
00759        58, 8258, 8271,16450,16462,16463,16465, 8271,16462,16463,
00760     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00761     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00762     16465, 8271,16462,16463,16465, 8256, 8271, 8254, 8273, 8271,
00763     16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,16443,
00764 
00765     16444,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00766     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00767      8271,16462,16463,16465, 8271,16462,16463,16465,   63, 8256,
00768      8271, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00769     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00770     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00771     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00772     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00773     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00774     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00775 
00776     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00777     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00778      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00779     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00780      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00781     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00782      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00783     16463,16465, 8251, 8271,16443,16444,16462,16463,16465, 8271,
00784     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00785     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00786 
00787     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00788     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00789     16462,16463,16465,  127,16532,  127,  127,16531,  127,16531,
00790       127,16531,  127,16531,  124,  124,  124,  146,  124,  124,
00791      8339,  124,  124,  127,16531,  127,16531,  127,16531,  127,
00792     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00793     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00794     16531,  127,16531,  126,  127,16531,  127,16531,  127,16531,
00795       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00796       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00797 
00798       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00799       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00800       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00801       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00802       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00803       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00804      8294, 8294,16486, 8294, 8294,16486,  127,16533,16534,  127,
00805     16533,16534,  127,16533,16534,  127,16533,16534,  124,  124,
00806       124, 8341,  124,  124, 8342,  127,16533,16534,  127,16533,
00807     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00808 
00809       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00810     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00811     16534,  127,16533,16534,  127,16533,16534,  126,  127,16533,
00812     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00813       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00814     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00815     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00816       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00817     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00818     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00819 
00820       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00821     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00822     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00823       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00824     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00825     16534,   32,   32,   33,   37,   37,   37,   37,   42,   42,
00826        42,   42,  178,16405, 8213,  178,16405,  179,16405,16405,
00827      8213,16405,16405,  177,  178,16405, 8213,  177,  178,  173,
00828     16405,16405, 8213,16405, 8258,16450,   73, 8269,   73,   73,
00829        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
00830 
00831       138,  138,  138,  138,   18, 8258,16450,   18,   18,   18,
00832        18,   18,   18,   18,   18,   18,   14,   15,   18,   15,
00833        18,   15,   18,   15,   18,   15,   18,   15,   18,   15,
00834        18,   15,   18,   15,   18,   15,   18,  112,  109,  178,
00835       109,  109,  179,  109,  109,  109,  109,  177,  178,  109,
00836       173,  109,  109,  139,  139,  139,  139,  139,  139,  139,
00837       139,  139,  139,  139,  139,  139,  139,   55,  176,  171,
00838       168,  177,  174,  172,   84,  177,   84,   84,   85,  177,
00839        85,   85,   90,  177,   90,   90,  176,  169,  176,  171,
00840       168,  169,  156,  177,  156,  156,  163,  163, 8271,16462,
00841 
00842     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00843      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00844     16463,16465, 8251, 8271, 8252, 8273, 8271,16462,16463,16465,
00845      8251, 8271,16443,16444,16462,16463,16465, 8251, 8271,16443,
00846     16444,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00847     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00848      8271,16462,16463,16465,   58, 8251, 8271, 8197, 8271,16389,
00849     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00850     16465, 8251, 8271,16443,16444,16462,16463,16465, 8271,16462,
00851     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00852 
00853      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00854     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00855      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00856     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00857      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00858     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00859      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00860     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00861      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00862     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00863 
00864      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00865     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00866        58, 8256, 8271,16446,16448,16462,16463,16465, 8271,16462,
00867     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00868      8271,16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,
00869     16443,16444,16462,16463,16465, 8271,16462,16463,16465, 8271,
00870     16462,16463,16465, 8271,16462,16463,16465,  127,16532, 8340,
00871       127,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00872     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00873     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00874 
00875     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00876     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00877     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00878     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00879     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00880     16531,  127,16531,  127,16531,  127,16531,  127,16531,  124,
00881       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00882       127,16531,  127,16531,  127,16531,  127,16531,  127,16533,
00883     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00884       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00885 
00886     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00887     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00888       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00889     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00890     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00891       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00892     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00893     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00894       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00895     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00896 
00897     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00898       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00899     16533,16534,  127,16533,16534,  127,16533,16534,   32,   32,
00900        37,   37,   37,   37,   42,   42,   42,   42,  177,16405,
00901      8213,  177,16405, 8213,16405, 8213,   69,   73,   73,   73,
00902        74,   73,   73,   73,   73,   73,   73,   73,   73,  138,
00903     16519,  138,  138,  138,   18,   18,   18,   18,   18,   18,
00904        18,   18,   15,   18,   15,   18,   15,   18,   15,   18,
00905        15,   18,   15,   18,   15,   18,   15,   18,  109,  177,
00906       109,  109,  139,  139,  139,  139,  139,  139,  139,  139,
00907 
00908       139,  139,  139,  139,   55,  170,  169,  170, 8271,16462,
00909     16463,16465, 8269,16461,16465, 8269,16461,16465, 8271,16462,
00910     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00911      8271,16462,16463,16465, 8271,16462,16463,16465,    6,   58,
00912      8251, 8271, 8271,16462,16463,16465, 8271,16462,16463,16465,
00913      8271,16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,
00914      8197, 8271, 8197, 8271,16462,16463,16465, 8271,16462,16463,
00915     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00916     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00917     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00918 
00919     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00920     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00921     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00922     16465, 8251, 8271,16443,16444,16462,16463,16465, 8271,16462,
00923     16463,16465, 8271,16462,16463,16465, 8251, 8271,16443,16444,
00924     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00925     16465,   99, 8271,16462,16463,16465, 8271,16462,16463,16465,
00926      8271,16462,16463,16465, 8271,16462,16463,16465,   58, 8251,
00927      8271,   58, 8271,16462,16463,16465, 8271,16462,16463,16465,
00928      8271,16462,16463,16465,  127,16531,  127,16531,  127,16531,
00929 
00930       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00931       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00932       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00933       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00934       127,16531,  127,16531,  127,16531,  127,16531,   99, 8339,
00935       127,16531,  127,16531,  127,16531,  127,16531,  127,16531,
00936       127,16531,  127,16531,16485,  127,16533,16534,  127,16533,
00937     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00938       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00939     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00940 
00941     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00942       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00943     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00944     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00945       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00946     16533,16534,  127,16533,16534,   32,   37,   37,   37,   37,
00947     16420,   42,   42,   41,   42,   42, 8269,16461,   73,   74,
00948        73,   73,   73, 8327,  138,  138,  138,  138,  138,  138,
00949       138,   18,   18,   18,   15,   18,   15,   18,   15,   18,
00950       139,  139,  139,  139,  139,  139,  139,  139,  139,  160,
00951 
00952      8271,16462,16463,16465,16465,16465, 8269, 8269,16461,16465,
00953      8269,16461,16465,16465, 8271,16462,16463,16465, 8271,16462,
00954     16463,16465, 8271,16462,16463,16465,    6, 8251, 8271, 8271,
00955     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00956     16465, 8271,16462,16463,16465, 8251, 8271,16443,16444,16462,
00957     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00958      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00959     16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
00960      8271,16462,16463,16465, 8271,16462,16463,16465,   58, 8251,
00961      8271, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00962 
00963     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
00964     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00965     16462,16463,16465, 8251, 8271, 8271,16462,16463,16465,  127,
00966     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00967     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00968     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00969     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00970     16531,16485,16485,  127,16533,16534,  127,16533,16534,  127,
00971     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00972     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00973 
00974       127,16533,16534,  127,16533,16534,  127,16533,16534,  127,
00975     16533,16534,  127,16533,16534,  127,16533,16534,  127,16533,
00976     16534,  127,16533,16534,   32,   37,   35,   37,   37, 8228,
00977        41,   42, 8269,16461,   73,   73,  138,  138,  138,  138,
00978       138,  138,  138,   18,   15,   18,  139,  139,  139,  139,
00979       161, 8271,16462,16463,16465,16465,16465, 8269,16461,16465,
00980     16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,
00981     16462,16463,16465, 8256,16446,16448,   53,   58,   53,   58,
00982      8251, 8271,   53,   58,   53,   58, 8252, 8273,   53,   58,
00983      8270,   53,   58,   53,   58,   53, 8271,16462,16463,16465,
00984 
00985      8271,16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,
00986     16443,16444,16462,16463,16465,    7, 8271,    7, 8271, 8271,
00987     16462,16463,16465, 8251, 8271, 8271,16462,16463,16465, 8271,
00988     16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,16443,
00989     16444,16462,16463,16465, 8271,16462,16463,16465,    2,  127,
00990     16531,  127,16531,  127,16531,  127,16531,  127,16531,  127,
00991     16531,  127,16531,  127,16531,  127,16531,16485,  127,16533,
00992     16534,  127,16533,16534,  127,16533,16534,  127,16533,16534,
00993       127,16533,16534,   32,   37,   42,   53,  138,  138,  138,
00994       138,  138, 8271,16462,16463,16465,16465, 8269,16461,16465,
00995 
00996      8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462,
00997     16463,16465, 8271,16462,16463,16465,   63, 8256,   63, 8254,
00998        63, 8251, 8271,   67, 8269,16461,   58,   58, 8251, 8271,
00999        58,   58, 8252, 8273,   58, 8270, 8271,16462,16463,16465,
01000        58,   58,    4, 8271,16462,16463,16465, 8271,16462,16463,
01001     16465, 8271,16462,16463,16465,   53,   58, 8251, 8271,   53,
01002        58,  127,16531,  127,16531,  127,16531,  127,16531,  127,
01003     16531,  127,16531,  127,16533,16534,  127,16533,16534,   32,
01004        37,  138,  138,  138,  138,  138,    3, 8271,16462,16463,
01005     16465,16465, 8269,16461,16465, 8271,16462,16463,16465, 8271,
01006 
01007     16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463,
01008     16465, 8256, 8254,   67, 8269,16461,   67, 8269,   52, 8251,
01009      8271,   52, 8252, 8273, 8270,   52, 8252, 8273, 8271,   52,
01010      8273,   52, 8269,16461, 8271,16462,16463,16465, 8271,16462,
01011     16463,16465, 8271,16462,16463,16465, 8251, 8271,   68, 8269,
01012     16461,  127,16531,  127,16531,  127,16531,  127,16531,  127,
01013     16531,  127,16531,  127,16533,16534,  127,16533,16534,   32,
01014       138,  138,  138,  138,  138, 8271,16462,16463,16465,16465,
01015      8269,16461,16465, 8271,16462,16463,16465, 8271,16462,16463,
01016     16465,   76, 8271,16462,16463,16465,   67, 8269, 8269,16461,
01017 
01018        51, 8271,16462,16463,16465, 8271,16462,16463,16465, 8269,
01019      8271,16462,16463,16465, 8271,16462,16463,16465,   68, 8269,
01020     16461,   68, 8269,  127,16531,   76,  127,16531,  127,16531,
01021       127,16531,  127,16533,16534,  127,16533,16534,16519,  138,
01022       138, 8271, 8273,16465, 8269,16461,16465, 8271,16462,16463,
01023     16465, 8269, 8271,16462,16463,16465, 8271,16462,16463,16465,
01024      8271,16462,16463,16465,   68, 8269,  127,16531,  138,  138,
01025        52, 8273,16465, 8269,16461,16465, 8271,16462,16463,16465,
01026      8271,16462,16463, 8271,16462,16463,16465, 8271, 8271,16462,
01027     16463,16465, 8269,16461,16465, 8269,16461,16465, 8271,16462,
01028 
01029     16463,16465,  127,16531,   31,16465, 8269, 8269,16461,16465,
01030      8271,16462,16463,16465, 8269,16461, 8271, 8271,16462,16463,
01031      8271,16462,16463, 8271,16462,16463,16465,16465,16465, 8269,
01032      8269,16461,16465,16465,    6, 8271,16462,16463,16465,  127,
01033     16531,16465, 8271,16462,16463,16465, 8269,16461, 8271, 8271,
01034     16462,16463, 8271,16462,16463,16465,16465, 8269,16461,16465,
01035     16465, 8271,16462,16463,16465,  127,16531, 8271,16462,16463,
01036     16465, 8271,16462,16463,16465,16465, 8269,16461,16465,   54,
01037      8271,16462,16463,16465, 8271,16462,16463,16465,16465, 8269,
01038     16461,16465, 8271,16462,16463,16465, 8271,16462,16463,16465,
01039 
01040     16465, 8269,16461,16465, 8271,16462,16463,16465,16465, 8269,
01041     16461,16465, 8271,16462,16463,16465,16465, 8269,16461,16465,
01042      8271,16462,16463,16465,16465, 8271,16462,16463,16465, 8271,
01043     16462,16463,16465,    6, 8271
01044     } ;
01045 
01046 static yyconst flex_int16_t yy_accept[2976] =
01047     {   0,
01048         1,    1,    1,    2,    3,    4,    5,    5,    5,    5,
01049         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01050         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01051         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01052         5,    5,    5,    5,    5,    6,    7,    8,    9,    9,
01053         9,    9,    9,    9,    9,    9,    9,    9,    9,   10,
01054        11,   11,   11,   11,   11,   12,   14,   16,   19,   22,
01055        25,   27,   29,   31,   33,   36,   39,   43,   47,   50,
01056        53,   55,   58,   61,   64,   67,   71,   75,   78,   81,
01057        84,   87,   91,   94,   99,  103,  108,  113,  117,  121,
01058 
01059       125,  129,  132,  134,  138,  142,  146,  149,  152,  155,
01060       158,  161,  164,  167,  171,  175,  179,  181,  183,  186,
01061       189,  191,  195,  198,  203,  208,  213,  217,  221,  225,
01062       229,  233,  236,  241,  246,  251,  254,  258,  262,  266,
01063       270,  272,  274,  277,  280,  283,  285,  288,  291,  295,
01064       299,  302,  306,  309,  312,  315,  318,  321,  324,  326,
01065       332,  338,  344,  348,  352,  358,  364,  370,  376,  382,
01066       388,  394,  400,  406,  412,  418,  424,  430,  436,  442,
01067       448,  454,  460,  466,  472,  475,  478,  481,  483,  486,
01068       489,  492,  494,  497,  500,  504,  508,  511,  514,  517,
01069 
01070       520,  523,  526,  529,  532,  535,  539,  543,  547,  550,
01071       554,  558,  562,  566,  570,  574,  578,  582,  586,  590,
01072       594,  598,  602,  606,  610,  614,  618,  622,  626,  630,
01073       633,  636,  639,  642,  645,  647,  651,  655,  658,  662,
01074       667,  670,  673,  676,  681,  685,  689,  693,  696,  699,
01075       702,  704,  707,  710,  715,  720,  725,  730,  735,  740,
01076       745,  750,  755,  760,  765,  770,  775,  780,  785,  790,
01077       795,  800,  805,  810,  815,  820,  825,  827,  830,  833,
01078       836,  839,  841,  843,  846,  849,  852,  855,  858,  861,
01079       863,  865,  867,  870,  873,  875,  878,  880,  883,  886,
01080 
01081       888,  891,  894,  897,  900,  903,  905,  907,  911,  914,
01082       917,  920,  922,  925,  928,  931,  933,  937,  941,  944,
01083       947,  950,  954,  958,  962,  965,  968,  971,  974,  977,
01084       980,  982,  984,  986,  988,  990,  992,  994,  996,  998,
01085      1000, 1002, 1004, 1006, 1008, 1010, 1012, 1015, 1017, 1020,
01086      1022, 1025, 1028, 1031, 1034, 1037, 1040, 1043, 1046, 1049,
01087      1052, 1055, 1058, 1061, 1064, 1066, 1068, 1071, 1075, 1078,
01088      1082, 1086, 1089, 1093, 1097, 1100, 1104, 1107, 1111, 1115,
01089      1119, 1123, 1127, 1131, 1135, 1139, 1142, 1145, 1148, 1152,
01090      1155, 1159, 1163, 1166, 1170, 1174, 1177, 1181, 1185, 1189,
01091 
01092      1193, 1197, 1201, 1205, 1209, 1213, 1217, 1221, 1225, 1229,
01093      1232, 1235, 1238, 1243, 1248, 1251, 1256, 1261, 1266, 1271,
01094      1276, 1281, 1286, 1291, 1296, 1301, 1306, 1311, 1316, 1321,
01095      1324, 1327, 1331, 1335, 1339, 1342, 1347, 1352, 1355, 1358,
01096      1363, 1368, 1373, 1376, 1379, 1383, 1389, 1393, 1398, 1402,
01097      1406, 1411, 1416, 1420, 1424, 1429, 1432, 1436, 1440, 1442,
01098      1444, 1447, 1450, 1452, 1455, 1458, 1461, 1464, 1467, 1470,
01099      1473, 1476, 1479, 1482, 1485, 1488, 1491, 1494, 1497, 1499,
01100      1502, 1505, 1509, 1512, 1516, 1520, 1523, 1526, 1530, 1533,
01101      1536, 1536, 1536, 1537, 1538, 1539, 1539, 1539, 1540, 1541,
01102 
01103      1542, 1545, 1548, 1550, 1551, 1552, 1553, 1556, 1559, 1560,
01104      1563, 1566, 1568, 1569, 1570, 1573, 1576, 1577, 1578, 1580,
01105      1582, 1583, 1584, 1586, 1588, 1588, 1588, 1589, 1589, 1591,
01106      1592, 1592, 1594, 1595, 1596, 1596, 1597, 1599, 1601, 1603,
01107      1604, 1606, 1608, 1609, 1611, 1613, 1615, 1616, 1617, 1619,
01108      1621, 1622, 1623, 1625, 1628, 1630, 1631, 1632, 1634, 1637,
01109      1637, 1637, 1637, 1637, 1641, 1645, 1645, 1645, 1645, 1645,
01110      1645, 1646, 1647, 1647, 1647, 1647, 1647, 1647, 1648, 1648,
01111      1649, 1650, 1654, 1654, 1654, 1658, 1662, 1666, 1670, 1674,
01112      1678, 1682, 1686, 1690, 1694, 1698, 1702, 1706, 1710, 1717,
01113 
01114      1721, 1725, 1729, 1733, 1737, 1741, 1745, 1749, 1753, 1757,
01115      1761, 1765, 1769, 1775, 1782, 1786, 1790, 1794, 1798, 1802,
01116      1806, 1810, 1814, 1818, 1822, 1826, 1830, 1834, 1838, 1842,
01117      1846, 1850, 1854, 1858, 1862, 1866, 1870, 1874, 1878, 1882,
01118      1886, 1890, 1894, 1898, 1902, 1906, 1910, 1914, 1914, 1914,
01119      1918, 1918, 1919, 1919, 1919, 1920, 1921, 1922, 1923, 1923,
01120      1923, 1924, 1925, 1926, 1926, 1927, 1927, 1928, 1930, 1930,
01121      1930, 1932, 1934, 1936, 1938, 1940, 1942, 1944, 1946, 1948,
01122      1950, 1952, 1954, 1956, 1958, 1960, 1962, 1964, 1966, 1968,
01123      1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988,
01124 
01125      1990, 1993, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009,
01126      2011, 2013, 2015, 2017, 2019, 2021, 2023, 2025, 2027, 2029,
01127      2031, 2033, 2035, 2037, 2039, 2041, 2043, 2045, 2047, 2049,
01128      2051, 2051, 2051, 2051, 2051, 2054, 2054, 2054, 2055, 2055,
01129      2056, 2059, 2059, 2059, 2059, 2059, 2062, 2062, 2063, 2063,
01130      2063, 2064, 2064, 2065, 2068, 2071, 2074, 2077, 2080, 2083,
01131      2086, 2089, 2092, 2095, 2098, 2101, 2104, 2107, 2110, 2113,
01132      2116, 2119, 2122, 2125, 2128, 2131, 2134, 2137, 2140, 2143,
01133      2146, 2149, 2152, 2155, 2158, 2161, 2164, 2167, 2170, 2173,
01134      2176, 2179, 2182, 2185, 2188, 2191, 2194, 2197, 2200, 2203,
01135 
01136      2206, 2209, 2212, 2215, 2218, 2221, 2224, 2227, 2230, 2233,
01137      2236, 2239, 2242, 2245, 2246, 2247, 2247, 2248, 2249, 2250,
01138      2251, 2252, 2253, 2253, 2254, 2255, 2255, 2255, 2256, 2257,
01139      2257, 2258, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2264,
01140      2265, 2265, 2266, 2267, 2268, 2269, 2269, 2270, 2271, 2273,
01141      2275, 2277, 2278, 2279, 2281, 2283, 2283, 2283, 2283, 2283,
01142      2283, 2283, 2283, 2285, 2285, 2285, 2285, 2285, 2285, 2285,
01143      2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2286,
01144      2286, 2287, 2287, 2287, 2288, 2288, 2288, 2289, 2290, 2291,
01145      2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301,
01146 
01147      2302, 2303, 2304, 2304, 2304, 2304, 2304, 2305, 2305, 2305,
01148      2305, 2305, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312,
01149      2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322,
01150      2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334,
01151      2336, 2336, 2338, 2339, 2341, 2343, 2345, 2347, 2349, 2351,
01152      2353, 2356, 2358, 2360, 2362, 2364, 2366, 2368, 2370, 2372,
01153      2374, 2376, 2376, 2376, 2378, 2380, 2383, 2383, 2386, 2387,
01154      2388, 2389, 2390, 2392, 2394, 2396, 2398, 2399, 2400, 2401,
01155      2403, 2405, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412,
01156      2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422,
01157 
01158      2423, 2424, 2425, 2425, 2426, 2427, 2427, 2427, 2427, 2427,
01159      2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2428,
01160      2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438,
01161      2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448,
01162      2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2457,
01163      2457, 2457, 2457, 2457, 2457, 2458, 2459, 2460, 2461, 2462,
01164      2463, 2464, 2465, 2466, 2467, 2467, 2468, 2469, 2470, 2471,
01165      2472, 2475, 2479, 2479, 2479, 2482, 2483, 2484, 2484, 2484,
01166      2484, 2484, 2486, 2486, 2486, 2486, 2487, 2487, 2487, 2487,
01167      2487, 2487, 2487, 2487, 2487, 2487, 2489, 2493, 2497, 2501,
01168 
01169      2505, 2512, 2516, 2520, 2524, 2528, 2532, 2536, 2540, 2544,
01170      2548, 2552, 2553, 2556, 2557, 2560, 2562, 2563, 2564, 2568,
01171      2572, 2576, 2580, 2584, 2588, 2592, 2596, 2600, 2604, 2611,
01172      2615, 2619, 2623, 2627, 2631, 2633, 2637, 2641, 2647, 2651,
01173      2655, 2659, 2663, 2667, 2671, 2675, 2679, 2683, 2687, 2691,
01174      2695, 2699, 2703, 2707, 2711, 2715, 2719, 2723, 2727, 2731,
01175      2735, 2739, 2743, 2747, 2751, 2755, 2759, 2763, 2767, 2771,
01176      2775, 2779, 2783, 2787, 2791, 2795, 2799, 2803, 2807, 2811,
01177      2815, 2816, 2816, 2820, 2820, 2820, 2821, 2822, 2822, 2822,
01178      2822, 2822, 2823, 2825, 2827, 2829, 2831, 2833, 2835, 2837,
01179 
01180      2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2855,
01181      2857, 2858, 2860, 2861, 2862, 2864, 2866, 2868, 2870, 2872,
01182      2874, 2876, 2878, 2880, 2882, 2884, 2886, 2888, 2890, 2892,
01183      2893, 2894, 2896, 2897, 2899, 2900, 2901, 2903, 2904, 2905,
01184      2907, 2909, 2911, 2913, 2915, 2917, 2919, 2921, 2923, 2925,
01185      2927, 2929, 2931, 2933, 2935, 2937, 2939, 2941, 2943, 2945,
01186      2947, 2949, 2951, 2953, 2955, 2957, 2959, 2961, 2963, 2965,
01187      2967, 2969, 2971, 2973, 2975, 2977, 2979, 2981, 2983, 2985,
01188      2987, 2987, 2987, 2989, 2989, 2989, 2989, 2989, 2990, 2990,
01189      2993, 2996, 2999, 3002, 3005, 3008, 3011, 3014, 3017, 3020,
01190 
01191      3023, 3026, 3029, 3032, 3035, 3038, 3039, 3040, 3042, 3043,
01192      3045, 3048, 3051, 3054, 3057, 3060, 3063, 3066, 3069, 3072,
01193      3075, 3078, 3081, 3084, 3087, 3088, 3089, 3091, 3092, 3094,
01194      3097, 3100, 3103, 3106, 3109, 3112, 3115, 3118, 3121, 3124,
01195      3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148, 3151, 3154,
01196      3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184,
01197      3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214,
01198      3214, 3215, 3215, 3216, 3217, 3218, 3219, 3220, 3220, 3220,
01199      3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230,
01200      3231, 3232, 3233, 3234, 3234, 3234, 3234, 3234, 3234, 3234,
01201 
01202      3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235,
01203      3235, 3235, 3235, 3235, 3235, 3237, 3238, 3239, 3240, 3241,
01204      3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251,
01205      3252, 3253, 3254, 3255, 3256, 3256, 3256, 3256, 3256, 3256,
01206      3256, 3257, 3258, 3259, 3261, 3262, 3263, 3264, 3265, 3266,
01207      3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3277,
01208      3279, 3281, 3283, 3285, 3287, 3289, 3291, 3293, 3295, 3297,
01209      3299, 3301, 3301, 3302, 3302, 3302, 3303, 3304, 3305, 3306,
01210      3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316,
01211      3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326,
01212 
01213      3327, 3328, 3329, 3330, 3330, 3330, 3330, 3330, 3330, 3331,
01214      3331, 3332, 3332, 3333, 3333, 3333, 3335, 3336, 3336, 3338,
01215      3338, 3340, 3341, 3343, 3344, 3345, 3346, 3349, 3351, 3352,
01216      3353, 3355, 3356, 3358, 3359, 3360, 3361, 3364, 3366, 3367,
01217      3368, 3370, 3371, 3373, 3374, 3375, 3376, 3379, 3381, 3382,
01218      3383, 3383, 3383, 3383, 3383, 3383, 3385, 3387, 3388, 3390,
01219      3391, 3392, 3393, 3396, 3398, 3399, 3400, 3400, 3401, 3401,
01220      3402, 3403, 3404, 3405, 3406, 3406, 3409, 3413, 3414, 3414,
01221      3417, 3417, 3417, 3418, 3418, 3418, 3418, 3418, 3418, 3418,
01222      3418, 3419, 3419, 3419, 3419, 3419, 3419, 3423, 3423, 3423,
01223 
01224      3424, 3424, 3424, 3428, 3432, 3436, 3440, 3441, 3444, 3445,
01225      3448, 3450, 3451, 3452, 3458, 3462, 3466, 3470, 3474, 3478,
01226      3482, 3486, 3488, 3488, 3490, 3494, 3498, 3505, 3509, 3513,
01227      3517, 3521, 3525, 3529, 3532, 3536, 3540, 3544, 3548, 3552,
01228      3556, 3560, 3564, 3568, 3572, 3576, 3580, 3584, 3588, 3592,
01229      3596, 3600, 3604, 3608, 3612, 3616, 3620, 3621, 3625, 3629,
01230      3633, 3637, 3641, 3645, 3649, 3653, 3657, 3661, 3665, 3669,
01231      3673, 3680, 3684, 3688, 3692, 3696, 3700, 3704, 3708, 3712,
01232      3716, 3720, 3724, 3724, 3724, 3725, 3725, 3726, 3726, 3726,
01233      3726, 3727, 3729, 3731, 3733, 3735, 3736, 3737, 3739, 3740,
01234 
01235      3742, 3743, 3744, 3746, 3748, 3750, 3752, 3754, 3756, 3758,
01236      3760, 3762, 3764, 3766, 3768, 3770, 3772, 3774, 3775, 3777,
01237      3779, 3781, 3783, 3785, 3787, 3789, 3791, 3793, 3795, 3797,
01238      3799, 3801, 3803, 3805, 3807, 3809, 3811, 3813, 3815, 3817,
01239      3819, 3821, 3823, 3825, 3827, 3829, 3831, 3833, 3835, 3837,
01240      3839, 3841, 3843, 3845, 3847, 3849, 3851, 3853, 3855, 3857,
01241      3859, 3861, 3862, 3864, 3865, 3867, 3867, 3867, 3867, 3867,
01242      3867, 3870, 3873, 3876, 3879, 3880, 3881, 3883, 3884, 3886,
01243      3889, 3892, 3895, 3898, 3901, 3904, 3907, 3910, 3913, 3916,
01244      3919, 3922, 3925, 3928, 3929, 3932, 3935, 3938, 3941, 3944,
01245 
01246      3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974,
01247      3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004,
01248      4007, 4010, 4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034,
01249      4037, 4040, 4043, 4046, 4049, 4052, 4052, 4053, 4054, 4055,
01250      4056, 4057, 4058, 4059, 4059, 4059, 4059, 4060, 4061, 4062,
01251      4063, 4065, 4067, 4068, 4070, 4071, 4072, 4073, 4074, 4077,
01252      4080, 4082, 4083, 4084, 4085, 4087, 4087, 4087, 4087, 4087,
01253      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
01254      4087, 4088, 4089, 4089, 4090, 4091, 4092, 4093, 4094, 4095,
01255      4096, 4097, 4098, 4099, 4100, 4101, 4101, 4101, 4101, 4101,
01256 
01257      4102, 4103, 4104, 4105, 4108, 4109, 4110, 4111, 4112, 4113,
01258      4114, 4115, 4116, 4117, 4120, 4122, 4124, 4126, 4128, 4130,
01259      4132, 4134, 4136, 4138, 4138, 4139, 4139, 4141, 4142, 4144,
01260      4145, 4146, 4147, 4150, 4152, 4153, 4154, 4155, 4156, 4157,
01261      4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167,
01262      4168, 4168, 4169, 4170, 4171, 4171, 4172, 4172, 4173, 4173,
01263      4174, 4174, 4175, 4177, 4178, 4179, 4181, 4182, 4183, 4185,
01264      4186, 4187, 4188, 4190, 4191, 4191, 4193, 4193, 4195, 4196,
01265      4197, 4197, 4197, 4198, 4199, 4203, 4203, 4203, 4203, 4203,
01266      4203, 4203, 4207, 4207, 4207, 4211, 4215, 4219, 4223, 4225,
01267 
01268      4225, 4227, 4231, 4238, 4245, 4249, 4253, 4257, 4261, 4265,
01269      4268, 4274, 4278, 4282, 4289, 4289, 4293, 4297, 4301, 4305,
01270      4309, 4313, 4317, 4321, 4325, 4329, 4333, 4337, 4341, 4345,
01271      4349, 4353, 4357, 4361, 4365, 4369, 4369, 4369, 4373, 4377,
01272      4381, 4385, 4389, 4393, 4397, 4401, 4405, 4409, 4413, 4417,
01273      4421, 4422, 4429, 4433, 4437, 4441, 4445, 4449, 4456, 4460,
01274      4464, 4468, 4468, 4468, 4469, 4470, 4470, 4471, 4472, 4474,
01275      4476, 4478, 4480, 4482, 4484, 4486, 4488, 4490, 4492, 4494,
01276      4496, 4498, 4500, 4500, 4502, 4504, 4506, 4508, 4510, 4512,
01277      4514, 4516, 4518, 4520, 4522, 4524, 4526, 4528, 4530, 4532,
01278 
01279      4534, 4536, 4538, 4540, 4542, 4544, 4546, 4548, 4550, 4552,
01280      4554, 4556, 4558, 4560, 4561, 4563, 4565, 4567, 4569, 4571,
01281      4573, 4575, 4577, 4579, 4579, 4582, 4585, 4588, 4591, 4594,
01282      4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624,
01283      4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654,
01284      4657, 4660, 4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684,
01285      4687, 4690, 4693, 4696, 4699, 4702, 4705, 4708, 4711, 4714,
01286      4717, 4720, 4723, 4726, 4729, 4730, 4731, 4732, 4733, 4734,
01287      4735, 4735, 4735, 4735, 4736, 4737, 4738, 4739, 4741, 4743,
01288      4744, 4745, 4746, 4747, 4747, 4748, 4748, 4748, 4748, 4748,
01289 
01290      4748, 4748, 4748, 4748, 4748, 4748, 4749, 4749, 4750, 4752,
01291      4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4760, 4760,
01292      4760, 4760, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769,
01293      4770, 4771, 4772, 4773, 4775, 4777, 4779, 4781, 4783, 4785,
01294      4787, 4789, 4789, 4789, 4791, 4792, 4793, 4794, 4795, 4796,
01295      4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806,
01296      4806, 4806, 4806, 4807, 4807, 4809, 4809, 4809, 4809, 4809,
01297      4809, 4809, 4809, 4813, 4813, 4813, 4813, 4816, 4819, 4819,
01298      4823, 4827, 4831, 4835, 4839, 4843, 4847, 4851, 4855, 4859,
01299      4861, 4863, 4864, 4868, 4872, 4872, 4876, 4880, 4884, 4888,
01300 
01301      4892, 4896, 4900, 4904, 4908, 4912, 4916, 4920, 4924, 4928,
01302      4932, 4939, 4939, 4939, 4943, 4947, 4954, 4958, 4962, 4963,
01303      4967, 4971, 4975, 4979, 4982, 4983, 4987, 4991, 4995, 4995,
01304      4995, 4997, 4999, 5001, 5003, 5005, 5007, 5009, 5011, 5013,
01305      5015, 5017, 5017, 5019, 5021, 5023, 5025, 5027, 5029, 5031,
01306      5033, 5035, 5037, 5039, 5041, 5043, 5045, 5047, 5049, 5051,
01307      5053, 5055, 5057, 5059, 5061, 5063, 5065, 5065, 5065, 5066,
01308      5066, 5069, 5072, 5075, 5078, 5081, 5084, 5087, 5090, 5093,
01309      5096, 5099, 5102, 5105, 5108, 5111, 5114, 5117, 5120, 5123,
01310      5126, 5129, 5132, 5135, 5138, 5141, 5144, 5147, 5150, 5153,
01311 
01312      5156, 5157, 5158, 5159, 5160, 5162, 5162, 5162, 5162, 5163,
01313      5164, 5166, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167,
01314      5169, 5170, 5171, 5172, 5173, 5174, 5174, 5174, 5174, 5174,
01315      5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183,
01316      5184, 5185, 5187, 5189, 5191, 5192, 5193, 5194, 5195, 5196,
01317      5197, 5198, 5199, 5200, 5200, 5201, 5201, 5201, 5201, 5201,
01318      5201, 5205, 5205, 5206, 5207, 5208, 5208, 5211, 5211, 5214,
01319      5214, 5214, 5215, 5219, 5223, 5227, 5230, 5234, 5238, 5242,
01320      5246, 5246, 5253, 5257, 5261, 5265, 5269, 5273, 5277, 5281,
01321      5285, 5289, 5292, 5292, 5292, 5296, 5300, 5304, 5308, 5312,
01322 
01323      5316, 5320, 5324, 5326, 5326, 5326, 5330, 5330, 5330, 5332,
01324      5334, 5336, 5338, 5340, 5342, 5344, 5344, 5346, 5348, 5350,
01325      5352, 5354, 5356, 5358, 5360, 5362, 5364, 5366, 5368, 5370,
01326      5372, 5372, 5373, 5373, 5373, 5374, 5377, 5380, 5383, 5386,
01327      5389, 5392, 5395, 5398, 5401, 5404, 5407, 5410, 5413, 5416,
01328      5419, 5422, 5425, 5426, 5427, 5429, 5430, 5430, 5431, 5431,
01329      5431, 5432, 5433, 5433, 5433, 5433, 5433, 5435, 5436, 5437,
01330      5437, 5437, 5437, 5437, 5437, 5437, 5437, 5438, 5439, 5440,
01331      5441, 5442, 5443, 5444, 5445, 5447, 5448, 5449, 5450, 5451,
01332      5451, 5451, 5452, 5452, 5452, 5452, 5456, 5457, 5458, 5461,
01333 
01334      5461, 5462, 5466, 5470, 5474, 5477, 5479, 5483, 5485, 5489,
01335      5492, 5494, 5496, 5501, 5505, 5509, 5516, 5518, 5519, 5520,
01336      5524, 5526, 5526, 5526, 5526, 5526, 5526, 5526, 5530, 5534,
01337      5538, 5545, 5549, 5549, 5549, 5550, 5552, 5554, 5556, 5556,
01338      5558, 5560, 5562, 5564, 5566, 5568, 5569, 5572, 5575, 5578,
01339      5581, 5584, 5585, 5586, 5586, 5587, 5588, 5588, 5588, 5588,
01340      5588, 5588, 5588, 5588, 5589, 5590, 5591, 5592, 5593, 5593,
01341      5593, 5593, 5593, 5593, 5597, 5598, 5601, 5605, 5609, 5613,
01342      5617, 5619, 5620, 5622, 5624, 5624, 5624, 5624, 5627, 5628,
01343      5631, 5632, 5635, 5637, 5641, 5642, 5643, 5643, 5643, 5643,
01344 
01345      5643, 5643, 5644, 5644, 5648, 5652, 5656, 5660, 5662, 5662,
01346      5664, 5666, 5668, 5670, 5672, 5674, 5677, 5680, 5681, 5682,
01347      5682, 5682, 5682, 5682, 5682, 5682, 5683, 5684, 5685, 5686,
01348      5687, 5687, 5687, 5688, 5692, 5693, 5696, 5700, 5704, 5708,
01349      5712, 5713, 5713, 5714, 5717, 5719, 5719, 5720, 5722, 5722,
01350      5725, 5726, 5726, 5726, 5729, 5729, 5730, 5730, 5732, 5732,
01351      5732, 5732, 5733, 5733, 5733, 5735, 5735, 5735, 5735, 5735,
01352      5735, 5739, 5743, 5747, 5749, 5749, 5749, 5749, 5752, 5752,
01353      5754, 5756, 5758, 5760, 5762, 5764, 5767, 5770, 5771, 5771,
01354      5771, 5771, 5771, 5771, 5772, 5773, 5774, 5775, 5776, 5776,
01355 
01356      5780, 5781, 5784, 5788, 5792, 5793, 5797, 5799, 5801, 5801,
01357      5802, 5802, 5802, 5802, 5806, 5810, 5810, 5810, 5811, 5811,
01358      5811, 5811, 5811, 5811, 5811, 5815, 5819, 5822, 5824, 5824,
01359      5826, 5827, 5829, 5831, 5833, 5836, 5839, 5839, 5839, 5840,
01360      5840, 5840, 5840, 5840, 5841, 5841, 5842, 5842, 5843, 5844,
01361      5845, 5848, 5852, 5853, 5853, 5853, 5857, 5857, 5857, 5861,
01362      5861, 5861, 5861, 5861, 5865, 5867, 5867, 5869, 5869, 5869,
01363      5869, 5869, 5869, 5870, 5871, 5871, 5873, 5874, 5877, 5881,
01364      5881, 5881, 5881, 5884, 5884, 5888, 5889, 5889, 5893, 5893,
01365      5893, 5893, 5896, 5899, 5899, 5899, 5899, 5903, 5903, 5905,
01366 
01367      5905, 5906, 5906, 5906, 5906, 5906, 5907, 5908, 5908, 5911,
01368      5911, 5915, 5915, 5917, 5918, 5918, 5921, 5921, 5921, 5924,
01369      5928, 5928, 5929, 5930, 5931, 5934, 5934, 5934, 5935, 5936,
01370      5936, 5940, 5940, 5942, 5942, 5943, 5947, 5949, 5950, 5950,
01371      5953, 5957, 5958, 5961, 5961, 5962, 5962, 5966, 5966, 5968,
01372      5972, 5976, 5977, 5980, 5981, 5985, 5989, 5990, 5993, 5997,
01373      6001, 6002, 6005, 6009, 6010, 6013, 6017, 6018, 6021, 6025,
01374      6026, 6030, 6034, 6036, 6036
01375     } ;
01376 
01377 static yyconst flex_int32_t yy_ec[256] =
01378     {   0,
01379         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
01380         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
01381         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01382         1,    5,    6,    7,    8,    9,   10,   11,   12,   13,
01383        14,   15,   16,   17,   18,   19,   20,   21,   22,   22,
01384        22,   22,   22,   22,   22,   23,   23,   24,   25,   26,
01385        27,   28,    1,   29,   30,   31,   32,   33,   34,   35,
01386        36,   36,   37,   38,   39,   40,   36,   36,   41,   42,
01387        36,   43,   44,   45,   36,   36,   46,   47,   48,   36,
01388        49,   50,   51,   52,   53,    1,   54,   55,   56,   57,
01389 
01390        58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
01391        68,   69,   36,   70,   71,   72,   73,   74,   75,   76,
01392        77,   78,   79,   80,   81,   82,    1,    1,    1,    1,
01393         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01394         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01395         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01396         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01397         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01398         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01399         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01400 
01401         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01402         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01403         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01404         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01405         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
01406         1,    1,    1,    1,    1
01407     } ;
01408 
01409 static yyconst flex_int32_t yy_meta[83] =
01410     {   0,
01411         1,    2,    3,    4,    5,    1,    6,    1,    7,    1,
01412         1,    8,    9,   10,   11,    1,   12,   13,   14,   15,
01413        16,   16,   16,   17,   18,   19,   20,    1,    1,   21,
01414        21,   21,   21,   21,   21,   22,   22,   22,   22,   22,
01415        22,   22,   22,   22,   22,   22,   22,   22,   23,   24,
01416        25,    1,   26,   21,   21,   21,   21,   21,   21,   22,
01417        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
01418        22,   22,   22,   22,   22,   22,   22,   22,   27,    1,
01419        28,   29
01420     } ;
01421 
01422 static yyconst flex_int16_t yy_base[3360] =
01423     {   0,
01424         0,    3,    8,   58,   63,   77,   81,  131,  136,  150,
01425       189,  193,  207,  212,  251,  270,  274,  293,  344,   22,
01426       426,   33,  508,   91,  590,   97,  672,   98,  754,  117,
01427       836,  141,  918,  157,  999, 1012, 1091,  164, 1017, 1172,
01428      1175, 1205, 1254,  169, 1329,  170, 1411,  226, 1493,  228,
01429      1575,  232, 1657,  248, 1739,  284, 1821,  306, 1903,  307,
01430      1985,  312, 2067,  313,10786,26042, 1004,26042,26042,26042,
01431        11,10770, 1033,   19,    0,26042,    0,    0,   21,10764,
01432         0, 1037,   25,    0,26042,    0,    0,   28,10763, 1042,
01433        35,    0, 1047,    0,10761,    0,    0,   49,10758, 1049,
01434 
01435        53,26042, 1053,26042,26042,26042,  100,10752,    6, 1069,
01436       101,    0,  255,    0,    0,    0,10732,  109,10743, 1070,
01437       127,    0, 1179,26042,    0,    0,  153,10736, 1185,  161,
01438         0, 1191,    0,    0,    0,10720,  163,10727, 1211,  204,
01439      1225, 1235, 1239,26042,26042, 2148,10683,  277,26042,26042,
01440     26042,10704,26042,  247, 1224,10705,26042,26042,  262, 2156,
01441      2161,10692,26042,26042,   52, 1218,  267, 1216, 1227, 1186,
01442      1253, 1238, 2133,   36,  178, 1006, 2122, 2149,  189, 2163,
01443      2171, 1198, 2155,  282,26042,26042, 1078, 2241, 1003,  261,
01444     10692,10646,10688,  114, 1297,26042,10687,   17,26042,   29,
01445 
01446       314,26042,  131,10669,  312, 2234, 2249, 2261,10666, 2279,
01447      2288, 2245, 2265, 2289, 2298, 2313, 2332, 2268, 2325, 2215,
01448      2337, 2342, 2347, 2367, 2371, 2392, 2285, 2399, 2403, 1006,
01449     26042, 1007,26042, 2475, 2480, 2484,26042, 2488,10640,26042,
01450       290,10661,10677, 2511,26042,26042,26042, 2432, 2516, 1182,
01451         0, 2166,26042, 2504, 2529, 2541, 2559, 2571, 2531, 2552,
01452      2561, 2576, 2583, 2602, 2610, 2400, 2495, 2630, 2623, 2636,
01453      2656, 2660, 2681, 2525, 2688, 2692,    0,26042,26042,    0,
01454     26042, 1005,    0, 2203, 1178,26042,10655, 1035, 1189, 2700,
01455      2232,    0,26042,10659, 2721, 1288,    0,26042,26042,  181,
01456 
01457         0,10622,10596,10601,10607, 2199,    0,26042,26042,26042,
01458     26042,  160,    0, 1144,10598, 2536,26042,26042,26042,26042,
01459        18, 1208, 1269, 2148, 2249, 2199, 2289, 2357,26042,26042,
01460     10621,10586,  184,10585,10587,10592, 1221,10580,10587, 2154,
01461      1243,10572,10570,10580, 2764, 2769, 2773, 2778,  276,10610,
01462     26042, 2796, 2801, 2805, 2810, 2814, 2839, 2843, 2848, 2853,
01463      2881, 2885, 2889, 2893, 2659, 2920,26042, 2924, 2928, 2956,
01464     26042,    0,26042,26042, 2213,26042,10625,    0,10557,10549,
01465     10560,10540,10541,26042, 2963, 2256,26042, 2425,26042,    0,
01466     26042,26042, 2284,26042,26042,10601,    0,10569,10534,10539,
01467 
01468     10529,10527, 2131,10523,10535, 2249,10517,10515,10526, 2619,
01469      2309,    0,26042, 2326,    0,26042,    0,10542,10507,10509,
01470     10501,10497, 2438,10488,10500, 2574,10485,10473,10483,26042,
01471      2669,26042,26042,    0,10484,26042,26042, 2334,10518,    0,
01472     26042,26042, 2714, 2386,    0, 2967,    0,    0,26042,    0,
01473         0,    0, 2392,10509, 3042,    0, 2819, 2399, 3018, 3075,
01474      3079,26042,    0,26042,    0,10481,10442,  950,10441,10442,
01475      2444,10438, 2176, 2915,10437,10433,10440,26042, 3096,26042,
01476      2901,26042,    0,26042,26042, 2483,10482,10461, 2934, 2585,
01477      2936, 2588, 2156, 2148,26042, 2973, 2607, 2975, 2446,    0,
01478 
01479      2543, 2331,26042,26042, 2977, 2635, 2979, 2666,    0, 2684,
01480      2490,    0, 3008, 2710, 3000, 2980,    0,26042, 2749, 2519,
01481      3012, 2742, 3010, 3020,10470, 3070,26042, 2808, 2551,26042,
01482     10468, 3082,    0, 2897,10442,26042, 2779, 2573,    0, 3105,
01483      3090, 3097,    0, 2780, 2764,    0, 3031, 2776, 3098, 3108,
01484         0, 2524, 2853, 2855,    0, 3110, 2817, 3103, 3128, 3136,
01485     10436, 3169,    0, 3174, 3192, 3181,10446, 2925, 3140, 3199,
01486     26042, 3189,    0, 3217,10390, 1010,10384, 3225, 3242,26042,
01487     26042,10392,10423, 3244, 1174, 2441, 3090, 2520, 2553, 2788,
01488      2809, 1218, 2315, 3163, 1263, 2228,  269, 2886, 3325, 2141,
01489 
01490      2805, 2378, 2621, 3199, 2639, 2484, 2526, 2894, 2873, 3095,
01491      3203, 2902, 3131,10371,   62, 3208, 2853, 3004, 3102, 3105,
01492      2647, 1203, 2772, 2980, 3218, 2944, 3216, 3176, 2927, 3230,
01493      3222, 3172, 3225, 3243, 3002, 3187, 3234, 3244, 3247, 2362,
01494      3248, 3120, 2679, 3191, 3250,10374, 3255, 3353, 3361, 3376,
01495      3392, 3366, 3367, 3255,26042, 3406, 3412,26042, 3408, 3416,
01496     26042,10404,10400, 3417,26042,10397,26042, 3432,10396,10391,
01497      3442, 3452, 3462, 3480, 3489, 3512, 3516, 3539, 3543, 3566,
01498      3578, 3593, 3603, 3626, 3691, 3654, 3658, 3720, 3732, 3750,
01499      3773, 3793, 3803, 3818, 3828, 3846, 3858, 3930,10344, 3883,
01500 
01501      3901, 3959, 3982, 4011, 4015, 4038, 4042, 4065, 4069, 4094,
01502      4106, 3873, 4124, 4133, 3510, 3380, 3417, 3564, 3460, 3487,
01503      3527, 3687, 3589, 3766, 3664, 3717, 3783, 3722, 3796, 3821,
01504      3965,10390, 3994,    0, 4151, 3382, 4112, 4167, 4179,26042,
01505      4185,10384,10376, 4210, 4218, 3989, 4226,26042, 4230, 4160,
01506     26042,10372,26042, 4234, 4259, 4263, 4291, 4295, 4320, 4324,
01507      4350, 4362, 4380, 4389, 4415, 4424, 4444, 4453, 4518, 4478,
01508      4482, 4558, 4570, 4590, 4599, 4619, 4637, 4646, 4666, 4678,
01509      4750,10318, 4704, 4716, 4790, 4802, 4820, 4832, 4857, 4866,
01510      4875, 4893, 4913, 4922, 4940, 4952, 4970, 4997, 5015, 5035,
01511 
01512      5047, 5072, 5084, 5102, 5120, 5140, 5152, 5178, 5182, 5207,
01513      5232, 5250, 5262,    0,    0, 3495, 3457, 3467,10365, 3631,
01514      3482,10363,10360, 3335, 3507, 4239, 3598,26042,10362,10370,
01515     10347, 3760,    0,    0,10293,10291,10293,10306, 3608,    0,
01516      3454,    0, 3299,10301,10282, 4002, 2873,26042, 4094, 4025,
01517     26042, 4329, 3566, 4273, 4138,10310,10276,10289,10285,10264,
01518     10266,10266, 3652,10250,10253,10246,10239, 3355,10235,10237,
01519     10232,10226,10231,10230, 4407,10256, 4554,    0, 4449, 4673,
01520      3308, 4782, 4722, 5001,10254,10247, 5280, 5288, 5297, 5305,
01521      5313, 5323, 5391, 5340, 5355, 5350, 5421, 5425, 5429, 5433,
01522 
01523      5458, 5464, 4808, 4838, 3663, 5365, 5472, 5476,10206,10198,
01524     10210,10197,26042, 5489,    0,    0,10196,10203,10205,10178,
01525     10183, 5493,    0,    0,10205,10174,10184,10162,10165, 3726,
01526     10159,10158,10157,10148, 3375,10142,10133,10140,10128, 4070,
01527      4074, 4202,26042,    0,    0,10143,10111,10121,10100,10099,
01528         0,10088,10087,10082,10072, 3445,10066,10049,10057,10057,
01529         0,10105, 3325,26042,    0, 4958, 5076, 5503,26042,26042,
01530         0,    0, 3292, 3419,26042, 5572,26042, 3798, 3368, 3945,
01531      3761, 5600,    0,    0,10069,10040,10048,10028,10013,10012,
01532      5679,10007,10010,10011,10010,10012, 9995, 3450, 9990, 9988,
01533 
01534      3745, 9991, 5644,10018,10017,10012, 3947, 3888,10020, 3481,
01535     10031, 4021, 4196,10018, 3535, 2711,10022, 2783, 5212, 5239,
01536      4266, 4195, 4341, 5515, 5607, 3006, 4583, 3027, 4616, 5043,
01537      4308, 4372, 4394, 5157, 5613, 3345, 4432, 3458, 3909, 4483,
01538      3396, 4390, 4487, 4729, 4846, 3485, 3672, 3554, 4894, 5267,
01539     10007, 3594,10005, 3600, 4082, 4271,   15, 4459, 4533, 4369,
01540      4683, 3607, 3709, 3788, 4512, 4900, 2947, 5002, 3666, 3842,
01541      5722, 5738, 5127, 5331, 5765,26042,10002, 5698, 5783, 5512,
01542      5799, 4044, 9989, 5815, 5604,    0, 5634, 9948, 9935, 9931,
01543      9929, 5823, 5827, 9965, 9963, 5730, 5847, 3161, 3336, 3602,
01544 
01545      5908, 3686, 2565, 3457, 3702, 3113,   28, 3302, 4494, 3820,
01546      3756,26042, 5948, 5978,26042,26042, 9966, 5849, 3668, 3917,
01547      3767, 3844, 3833, 3940, 3957, 3403, 4019, 4085, 6029, 4034,
01548      4082, 3843, 4139, 4150, 6069, 4199, 3788, 4642, 3992, 4087,
01549      4282, 3977, 4313,  189, 3594, 4260, 4088, 3869, 3579, 4725,
01550      4192, 3919, 4349, 4209, 4002, 4357, 4103, 3750, 4286, 4238,
01551      4418, 4162, 4600, 4508, 4443, 4171, 4289, 4399, 4446, 4506,
01552      4583, 4539, 4370, 4559, 4351, 4588, 4284, 4647, 4666, 4375,
01553      6087, 6112, 6119, 9919, 9919, 5532, 5807, 4850, 4822, 4290,
01554      9946, 5751, 6129, 5877, 5991, 5995, 6175, 6138, 6147, 6215,
01555 
01556      6227, 6247, 6257, 6275, 6287, 6302, 6312,26042, 5852,26042,
01557      9941,26042, 9935, 9930, 6342, 6360, 6369, 6387, 6397, 6407,
01558      6417, 6432, 6442, 6496, 6525, 6537, 6465, 6555, 6567,26042,
01559      5878,26042, 9923,26042, 9926, 9921, 6585, 5940, 5145, 6597,
01560      6659, 6620, 6688, 6624, 6700, 6730, 6742, 6757, 6767, 6777,
01561      6787, 6797, 6812, 6824, 6839, 6851, 6866, 6876, 6886, 6896,
01562      6919, 6923, 6946, 6955, 6973, 6983, 6998, 7013, 7023, 7038,
01563      7048, 7058, 7073, 7096, 7105, 7114, 7132, 7141, 7123, 5791,
01564      5657, 5883, 4546, 6470, 7170, 9897, 5974, 5627, 5936, 6057,
01565      7178, 7187, 7196, 7214, 7286, 7241, 7259, 7315, 7223, 7327,
01566 
01567      7358, 7376, 7385, 7394, 7403, 7412, 6245,26042, 9896,26042,
01568      7440, 7449, 7467, 7479, 7497, 7506, 7524, 7533, 7587, 7616,
01569      7628, 7646, 7658, 7676, 7685, 6330,26042, 9893,26042, 7694,
01570      7719, 7781, 7751, 7810, 7822, 7852, 7864, 7747, 7882, 7894,
01571      7922, 7931, 7940, 7958, 7976, 7967, 7996, 8008, 8028, 8037,
01572      8055, 8046, 8073, 8082, 8107, 8119, 8146, 8155, 8173, 8200,
01573      8209, 8182, 8229, 8257, 8261, 8287, 8291, 8316, 8334, 9904,
01574      3519,    0, 9881, 9822, 9830, 9820, 9818, 3957, 9826, 9805,
01575      9803, 9803, 9794, 5004, 6215, 4949, 5232, 5355, 6216, 6309,
01576      4906, 5081, 5107, 9800, 9788, 9783, 9797, 9796, 9790, 4608,
01577 
01578      9781, 9778, 9765, 9766, 9771, 9763, 9751, 9754, 9745, 9748,
01579      9745, 6726, 7561, 7737, 4945, 8352, 8359, 7731, 7848, 8364,
01580      8369, 6094, 9771, 9764, 8377, 8402, 8406, 8410, 8417, 8442,
01581      8446, 8454, 8459, 8486, 5114, 5293, 9719, 9727, 9726, 9714,
01582      9707, 9704, 9700,    0, 9710, 9696, 9686, 9700, 9664, 9647,
01583      9641, 9628, 9627, 9627, 9621, 9597, 9601, 9584, 9567, 9560,
01584      9574, 9571, 9553, 9554, 9539, 9540, 9546, 9538, 9533, 9525,
01585      9517, 9558,26042, 9552, 4693,    0, 5221, 7080, 5061, 4915,
01586      5006, 8127, 8234, 4025, 6013, 4500, 9486, 9480, 9473, 9480,
01587      9479, 9472, 9472, 9457, 9461, 9450, 9450, 9457, 9450, 9443,
01588 
01589      9445, 9441, 9435, 9476,    0, 4573, 9479, 4629,26042, 9461,
01590     26042, 9468,26042,    0, 9467,26042,26042, 9463,26042, 9457,
01591         0, 9437,    0, 4994, 8494, 6165,    0,    0, 6435, 6445,
01592         0, 9436,    0, 5498, 6514, 5951,    0,    0, 6155, 6478,
01593         0, 9421,    0, 4056, 6271, 4502,    0,    0, 4608, 4734,
01594      4971, 4964, 9432, 5269, 9413,26042,    0, 9412,    0, 4691,
01595      5159, 4779,    0,    0, 4786, 4815, 5965, 6337, 3746, 4728,
01596      4978, 5079, 5103, 8513, 6603, 8517, 8545, 8549, 8574, 8578,
01597      6275,    0, 5187, 8603, 8521, 8617, 8640, 6205, 6694, 8665,
01598     26042, 9366, 9362, 9342, 8648, 8673, 8688, 6718, 6830, 7620,
01599 
01600      7723, 9386, 4670, 4676, 9339, 4803,26042, 8724, 8729,26042,
01601     26042, 9383, 7329, 5557, 4589, 4711, 4727, 5142, 4820, 4794,
01602      5269, 8757, 8774,26042, 4822, 5311, 8825, 5318, 5030, 4987,
01603      4880, 4839, 5414, 8865, 3770, 5106, 4131, 5130, 5153, 5209,
01604      5136, 5395, 4859, 5234, 9337, 3919, 5083, 5442, 5087, 5309,
01605      9332, 5319, 4910, 5160, 5352, 5381, 8922, 5261, 5452, 4998,
01606      5469, 5457, 5473, 5526, 5550, 5296, 5431, 5497, 5383, 5389,
01607      6101, 4779, 5377, 5608, 5502, 4182, 4481, 5483, 5572, 5600,
01608      5565, 5512, 9328, 9330, 6988, 6063, 6362, 6125, 6367, 6389,
01609      6928, 7949, 7556, 8787, 8791,26042, 6929,26042, 9366,26042,
01610 
01611      9365, 9355, 8993, 8895, 8953, 8962, 9022, 9034, 9052, 9064,
01612      9079, 9097, 9109, 9124, 9149, 9159, 9174, 7205, 9184, 9199,
01613      9209, 9224, 9234, 9249, 9259, 9269, 9289, 9298, 9316, 9328,
01614      9346, 9355, 9373, 9385, 9400, 9410, 9425, 9435, 9450, 9460,
01615      9475, 9485, 9495, 9505, 9523, 9541, 9550, 9570, 9579, 9597,
01616      9662, 9609, 9629, 9691, 9703, 9721, 9733, 9758, 9770, 9785,
01617      9795, 8450, 8631, 5671, 5709, 9615, 9813, 7271, 8716, 9358,
01618      9821, 9825, 9854, 9858, 9884, 7232,26042, 9339,26042, 9928,
01619      9896, 9963, 9993,10013,10025,10043,10052,10070,10079,10088,
01620     10108,10120,10146,10150,10175,10179,10204,10208,10234,10238,
01621 
01622     10264,10268,10293,10297,10323,10327,10352,10356,10383,10392,
01623     10410,10419,10437,10446,10464,10473,10500,10509,10518,10527,
01624     10555,10575,10593,10602,10611,10638,10656,10668,10686,10698,
01625     10718,10736,10761,10770,10779,    0, 9334, 2186, 9336, 9283,
01626      9282, 9287, 9285, 9263, 9260, 9262, 9260, 9254, 9237, 9223,
01627      4985,26042, 5737, 5694, 5710, 9287, 7553, 5777, 5743,26042,
01628      5771, 6347, 9278, 6400, 6083, 9209, 9214, 9204, 9200, 9213,
01629      9193, 9205, 9206, 9190, 9191, 9188, 9189, 9174, 8860,    0,
01630      8891, 5851, 9210,10840, 8958, 8926, 9968, 9997,10561,10743,
01631     10642, 9115,10921,10925, 9959, 9161, 9161, 9165, 9167, 9148,
01632 
01633      9149, 9157, 9141, 6399, 6427, 6560, 6211, 6653, 6530, 6022,
01634      6690, 6587, 6769, 9151, 9141, 9133, 9140, 9123, 9132, 9131,
01635      9114, 9120, 9095, 9147,26042, 5822,    0, 9133,    0, 6873,
01636      8262, 6937,    0,    0, 6973, 7437,10997, 9075, 9081, 9073,
01637      9084, 9068, 9076, 9060, 9073, 9077, 9057, 9044, 9029, 9030,
01638         0, 9071,26042,26042, 9090, 6064, 9086,26042, 9082,26042,
01639      9077,26042,    0, 7351, 8021,    0, 6843, 7158,    0, 5769,
01640      5803, 9076,26042, 9052, 9047, 6592, 9046,    0, 5818, 5855,
01641      5860, 9009, 5109, 5652,10939, 9902,11078,11101, 8979, 8961,
01642      8961,11182, 9004, 8014, 5723, 5826, 8967, 5816,11114,11130,
01643 
01644     26042, 5917,11240, 6023, 5190, 5644, 8958, 8957, 5949,11321,
01645      7430, 5586, 5255, 6475, 8938, 5873, 5849, 5954, 6088, 6139,
01646      8932, 6251, 5777, 5936, 6210, 6305, 6382, 6180, 5926, 6265,
01647      6495, 6512, 5679, 5994, 6049, 8924, 8915, 6524, 8927, 8925,
01648      5889, 6295, 6542, 6359, 6140, 6325, 6573, 6591, 5948, 6287,
01649      8929,11392, 6401, 8898, 6479, 6576, 6633, 7100, 6582, 6675,
01650      6226, 8884, 8880, 8296, 7150, 8921,26042, 7515,10953,11140,
01651     11144,11275,11331,11474,11196,11349,11515,11533,11433,11545,
01652     11443, 6237, 8890,11563,11581,11590,11608,11618,11628,11648,
01653     11658,11192,11676,11686,11701,11716,11726,11736,11751,11761,
01654 
01655     11786,11801,11811,11821,11836,11848,11863,11873,11893,11908,
01656     11923,11933,11943, 8910,12003,11963,12032,12044,11972,12062,
01657     12074,12089,12101, 8490,12119,12131,12156,12165,12174,12183,
01658     12192,12218,12222,12249,12253,12320,12285,12349,12289,12379,
01659     12391,12409,12418,12427,12447,12456,12476,12485,12494,12512,
01660     12521,12541,12550,12559,12568,12577,12586,12606,12615,12633,
01661     12645,12674,12678,12704,12708,12774,12735,12747,12809,12839,
01662     12857,12866,12884,12904, 8909, 6422, 8868, 8861, 8836, 8844,
01663      8834, 8829, 8823, 8787, 8802, 8801, 8801, 6687,26042, 6770,
01664      8845, 6821, 8844, 8770,26042, 8765, 8760, 8744, 8757, 8740,
01665 
01666      8741, 8741, 8740, 8717, 8719,10808, 8756,10935,10812,11279,
01667     11271,11304,11968,12353,11429,12805,12909, 8692, 8693, 8700,
01668      8673,12934,11361,12663,12938, 8690, 8678, 8663, 8668, 8652,
01669      8663, 8650, 8653, 8650, 8645, 8628, 8639, 8622, 8624, 8616,
01670      8628, 8661, 8659,    0, 7771, 8389, 8612,12896, 8602, 8587,
01671      8596, 8599, 8591, 8575, 8570, 8550, 8551, 8557, 8578, 6802,
01672      8581, 8591,26042, 8590,26042,    0, 6390, 6655, 8557, 8518,
01673      8514, 8490,12969, 9764,11308,    0,11423,12975, 7474,13021,
01674      6069, 3657, 5913, 6228,13038, 6568, 2275, 2461, 6585,13088,
01675     13056,13106, 6431, 1215, 8480, 5617, 6648, 6713, 6730, 5018,
01676 
01677      6754, 3988, 4426, 6761, 5560, 2695, 4077, 6508, 6486, 6725,
01678     13159, 8452, 8403, 6720, 5778, 7068, 6204, 6839,26042, 6925,
01679      4877, 6095, 6936,13199,13229, 6586, 6624, 6841, 8399, 8410,
01680     13116,13243,13255,13273,13282,13300,13309,13318,13341,13345,
01681     13368, 8409,13386,13396,13406,13416,13431,13446,13464,13473,
01682     13482,13491,13500,13509,13518,13588,13551,13555,26042,13629,
01683     13647,13659,13677,13686,13695,13713, 8764, 9728,13072, 7653,
01684     13731,13743,13763,13775,13793,13802,13811,13837,13846,13866,
01685     13884,13893,13902,13911,13931,13940,13949,13967,13976,13985,
01686     13994,14012,14030,14042,14060,14069,14094,14103,14112,14121,
01687 
01688      5759, 8375, 8352, 8344, 9888, 8322, 8319,   92,  147,  221,
01689         0, 1005, 1139, 2123, 2187, 2313, 2511, 2594,    0, 7320,
01690     12813,13007,13122,13193,13620, 7370, 2764, 2861, 2939,14139,
01691     26042, 2977, 3055, 3157, 3221, 3250, 3363, 3398, 3493, 3600,
01692      3854, 4223, 4321, 4438, 4539, 4606, 4955, 5109, 5125, 5209,
01693      5288, 5317, 5384, 6867,26042, 5518, 6924, 5517, 5840, 5832,
01694      6786,10545,14146,14152,10971,11169,14158, 5995,14196, 7840,
01695      7889, 7926, 6121, 6972, 6917,14212, 6812, 6977, 6863, 6934,
01696      5990,14263, 6928, 6933, 6988, 6827, 6980, 7347, 7106, 6885,
01697      6987,14344, 6150, 6235, 7015, 6834, 7032, 6357, 7000, 7001,
01698 
01699      7021, 7060,14304,14349, 6280, 7022, 7703, 6338,14178,14362,
01700     14222,14385,14408,14417,14435, 6347,14445,14455,14470,14480,
01701     14490,14500,14510,14528,14537,14562,14572,14587,14597,14612,
01702     12945,14298, 8323, 8706, 8346,14624,14650,14654,14679,14683,
01703     14709,14727,14739,14766,14775,14784,14793,14813,14825,14843,
01704     14861,14870, 6740, 6404,    0, 6464,11791,26042, 6501, 6499,
01705     26042, 6598,    0, 6658, 6687, 6694, 7529,13225,14895, 6804,
01706      6842, 6840, 6843, 6913, 6943, 6978, 7027, 7054, 7059, 7074,
01707      7083, 7095, 7099, 7107, 7109, 7111, 7120, 7125, 7126, 7165,
01708      7421, 7251, 7120, 7137, 7138, 7185,14900,14907,14912, 8907,
01709 
01710      8938, 7275, 7197, 7329, 9153,26042,14937,14942,26042,26042,
01711      7188, 8075, 7188, 7190, 7298,14993,15074,15079,15103, 7222,
01712         0, 7172, 7199, 7212, 7228, 7213, 7263, 7294, 7337, 7427,
01713      7746, 7422, 7255, 8164,26042,15119,15129,15139,    0,15159,
01714     15168,15186,15196,15211,15221, 9535,15239,15257,15266,15284,
01715     15293, 7335, 7251, 7268, 7329,26042, 7334, 7361, 7370, 7381,
01716      7387, 7380, 7398, 7394, 7401, 7409, 7422, 7442, 7884, 7486,
01717      7432, 7448, 7581, 7479,15109,15323, 7480, 7577, 7495, 7599,
01718      9641, 9647,26042,15327, 7486,10143, 7490,10126, 7527,15355,
01719     15371, 7531, 7536,15422, 7596,14313, 7489, 7489, 7499, 7513,
01720 
01721      7511,26042, 7507, 7617, 7652, 7595,15462,11493, 7559,14955,
01722     15337,15389,15492,15504,15519,15539,15559, 7659, 7555, 7623,
01723      7620, 7622, 7628, 7633, 7652, 7645, 7649, 7672, 7656, 7686,
01724      7753, 7709, 8112, 7734,15577,15457, 7805, 7835, 7876, 7743,
01725      9914,10816,26042, 7914,10704, 7766,26042,15591,15608, 7789,
01726      7803, 7813, 8853,26042, 8114,15636,15641,26042,14365,15692,
01727     15768, 7790, 9343,10480,13372, 7766, 7756, 7798, 7909, 7785,
01728      7893, 7964, 7950,15787, 7831,12282, 7847,10930, 7808,15797,
01729     15662,15801,15824,15839,15849,15874,15900, 8191, 7809, 7835,
01730      7852, 7840, 7849,15878, 7861, 7875,10822, 7875, 7884, 8139,
01731 
01732     15912,15918, 7955, 7974,13119, 7971, 8075, 8585, 8148,26042,
01733         0,12651, 8115,    0, 7905,15986,14757,14967,15666, 8116,
01734      7921, 7942, 8609, 7979, 8129, 8033, 8205,11899, 7975,15935,
01735      8017,16067,16071,16094,16103,16112, 8384, 8382,15487, 7991,
01736      8005,10965, 8021, 8045,11175, 8040, 8045,16139, 8097,16144,
01737     16169, 8176, 8422, 8170,16239, 8065,    0, 9059,16321, 8212,
01738     16403, 8084, 8108, 8165, 8297, 8126,16173, 8477, 8498, 8482,
01739      8132, 8155, 8172, 8180, 8171, 8230,16484,16554, 8219,16636,
01740         0,15395,16718,16800, 8175,16488,16881,    0,16932,    0,
01741     11575, 8584, 8963,17014, 8336, 8192, 8218, 8201,16183, 8693,
01742 
01743     26042, 8878, 8203, 8210, 8206,17096,15886,15961, 8932,13860,
01744      8255, 8269,17178,17259,17264,    0,    0, 9104,17315, 8232,
01745     12386, 9021, 9147,16201, 9054,    0,10983,17397, 8341, 8239,
01746      8367, 8239,17478,16214, 9186, 8270,    0,17496,17503,    0,
01747      8235, 9318, 9296,11221,    0, 8258, 8344, 8816,17513, 8472,
01748      8255, 9323, 9284, 9575, 8436, 8260, 9462, 9375, 8499, 9588,
01749      9690, 9723, 8522,10322,10045, 8392,10428, 8318, 8400, 8352,
01750      8523, 8613,17531,26042,17585,17614,17643,17672,17701,17730,
01751     17759,17788,17817,17846,17875,17904,17933,17962,17991,18020,
01752     18049,18077,18106,18134,18159, 8539,18184,18209,18237,18262,
01753 
01754     18287, 8602, 8781, 8730,18298, 8764,18311, 8877, 9540, 8948,
01755      9848,18337,18365,18393,18418, 9065,10121, 9148,10174, 9219,
01756     18443, 9284,10228, 9395,18469,10351, 9424,18497,18523, 9470,
01757     18552,18581, 9565,10377, 9615,18595,18621,18650,18679,18708,
01758     18737,18766,18795, 9635,18823,18848,18874,18902, 8512,18931,
01759     18959,18984,19009,19034,19059,19085, 9680,19113,19138,19164,
01760     19192,19217,19242,10458,19253,19266,10676,10735,11068,19292,
01761      9698,19320,19345,19371,19399,11358,11444,19424,11492,11596,
01762     19450,19479,19507,19533,11643,19562,11671,19576,19602,19631,
01763     19660,19689,19718,19747,19776,19805,19834,19863,19892,19921,
01764 
01765     19950,19979,20008,20037,20066,20095,20124,20153,20182,20211,
01766     20240,20269,20298,20327,20356,20385,20413,20438,20463,20488,
01767     20513,20541,20569, 8616,20594,20622,20651,20680,20709,20737,
01768     20762,20787,20812,20837,20863,20891,20916,20941,20966,20991,
01769     21019,21048,21076,21101,10769,21112, 9728,21125,11760,11830,
01770     21151,21180,21209,21238,21267,21295,21320,21348,21376,21402,
01771     21430,12017,12083,12126,21456,12217,21485,21514,21543,21572,
01772     21601,12243,11086,21630,21659,21688,21717,21746,21775,21804,
01773     21833,21862,21891,21920,21949,21978,22007,22036,22065,22094,
01774     22123,22152,22181,22210,22239,22268,22297,22326,22355,22384,
01775 
01776     22413,22442,22471,22500,22529,22558,22587,22616,22645,22674,
01777     22703,22731,22756,22781, 9780,22806,22834,22859,22887,22915,
01778     22941,22969,22994,23019,23044,23069,23095,23123,23148,23173,
01779     23201,23226,10078,23237,23248,23261,12511,12742,23287,23316,
01780     23345,23374,23403,23432,23461,23490,23518,10165,23543,23568,
01781     12856,23593,12905,23619,23648,23677,23706,23735,23764,23793,
01782     13006,10193,23807,23833,23862,23891,23920,23949,23978,24007,
01783     24036,24065,24094,24123,24152,24181,24210,24239,24268,24297,
01784     24326,24355,24384,24413,24441,24466,24494,24522,24550,24578,
01785     24603,24628,24653,24681,24692,24703,13062,13078,24729,24758,
01786 
01787     24787,24816,24845,24873,11130,24898,24923,13129,13267,24950,
01788     24979,25008,13524,25022,25048,25077,25106,25134,25159,10263,
01789     25187,25212,25237,25262,25290,25315,25340,25351,13701,13737,
01790     10292,25376,25401,13831,14000,14153,14223,25426,25452,25480,
01791     25505,25530,25556,25585,25614,25643,25672,25701,25730,25759,
01792     25788,25817,25846,25875,25904,25933,25961,25986,26012
01793     } ;
01794 
01795 static yyconst flex_int16_t yy_def[3360] =
01796     {   0,
01797      2975, 2975, 2976, 2976, 2977, 2977, 2978, 2978, 2979, 2979,
01798      2980, 2980, 2981, 2981, 2982, 2982, 2975, 2975, 2974,   19,
01799      2974,   21, 2974,   23, 2974,   25, 2974,   27, 2974,   29,
01800      2974,   31, 2974,   33, 2975, 2975, 2974,   37, 2975, 2975,
01801      2983, 2983, 2975,   43, 2974,   45, 2974,   47, 2974,   49,
01802      2974,   51, 2974,   53, 2974,   55, 2974,   57, 2974,   59,
01803      2974,   61, 2974,   63, 2974, 2974, 2974, 2974, 2974, 2974,
01804      2974, 2974, 2974, 2974, 2984, 2974, 2984, 2984, 2984, 2984,
01805      2985, 2984, 2984, 2986, 2974, 2986, 2986, 2986, 2986, 2986,
01806      2986, 2987, 2974, 2987, 2974, 2987, 2987, 2987, 2987, 2987,
01807 
01808      2987, 2974, 2988, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
01809      2974, 2989, 2989, 2989, 2989, 2989, 2974, 2974, 2989, 2989,
01810      2974, 2990, 2974, 2974, 2990, 2990, 2990, 2990, 2990, 2990,
01811      2991, 2974, 2991, 2991, 2991, 2974, 2991, 2991, 2991, 2991,
01812      2974, 2974, 2974, 2974, 2974, 2992, 2993, 2974, 2974, 2974,
01813      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2994,
01814      2994,  161, 2974, 2974,  161,  161,  161,  161,  161,  161,
01815       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
01816       161,  161,  161,  161, 2974, 2974, 2995, 2974, 2974, 2974,
01817      2974, 2996, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
01818 
01819      2974, 2974, 2974, 2974, 2974, 2997, 2997, 2997, 2974, 2997,
01820      2997,  211,  211,  211,  211,  211,  211,  211,  211,  211,
01821       211,  211,  211,  211,  211,  211,  211,  211,  211, 2974,
01822      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2998, 2993, 2974,
01823      2974, 2974, 2974, 2999, 2974, 2974, 2974, 3000, 2974, 2974,
01824      2996, 2974, 2974, 3001, 3001, 3001, 3001, 3001,  258,  258,
01825       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
01826       258,  258,  258,  258,  258,  258, 3002, 2974, 2974, 3003,
01827      2974, 2974, 3004, 2974, 2974, 2974, 3005, 3005, 2974, 2974,
01828      2974, 3006, 2974, 3007, 2974, 2974, 3008, 2974, 2974, 2974,
01829 
01830      3009, 3009, 3009, 3009, 3009, 2974, 3010, 2974, 2974, 2974,
01831      2974, 2974, 3011, 3011, 3011, 2974, 2974, 2974, 2974, 2974,
01832      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 2974, 2974,
01833      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
01834      2974, 2974, 2974, 2974, 2974, 2974, 2974, 3013, 2974, 2974,
01835      2974, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014,
01836      3014, 3014, 3014, 3014, 3015, 2974, 2974, 2974, 2974, 2974,
01837      2974, 3016, 2974, 2974, 2974, 2974, 2974, 3017, 3017, 3017,
01838      3017, 3017, 3017, 2974, 2974, 2974, 2974, 2974, 2974, 3018,
01839      2974, 2974, 2974, 2974, 2974, 2974, 3019, 3019, 3019, 3019,
01840 
01841      3019, 3019, 3019, 3019, 3019, 3019, 3019, 3019, 3019, 2974,
01842      2974, 3020, 2974, 3021, 3022, 2974, 3023, 3023, 3023, 3023,
01843      3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 2974,
01844      2974, 2974, 2974, 3024, 3025, 2974, 2974, 2974, 2974, 3026,
01845      2974, 2974, 2974, 2974, 3027, 3028, 3029, 3029, 2974, 3030,
01846      3029, 3029, 3029, 3029, 3031, 3032, 3029, 3029, 2974, 2974,
01847      2974, 2974, 3033, 2974, 3034, 3034, 3034, 3034, 3034, 3034,
01848      3034, 3034, 3034, 3034, 3034, 3034, 3034, 2974, 2974, 2974,
01849      2974, 2974, 3035, 2974, 2974, 2974, 2974, 3036, 2974, 2974,
01850      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3037,
01851 
01852      3037, 3037, 2974, 2974, 3037, 3037, 3037, 3037, 3038, 3038,
01853      3038, 3038, 3038, 3038, 3038, 3038, 3039, 2974, 3039, 3039,
01854      3039, 3039, 3039, 3039, 3040, 3040, 2974, 3040, 2974, 2974,
01855      2974, 2974, 3041, 3041, 2974, 2974, 2974, 2974, 3041, 3041,
01856      2974, 2974, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042,
01857      3043, 2974, 2974, 3043, 3043, 3043, 3043, 2974, 3043, 2974,
01858      2974, 2974, 3044, 3045, 3045, 3046, 2974, 3047, 2974, 3048,
01859      2974, 2974, 3049, 3044, 2974, 2974, 2974, 2974, 2974, 2974,
01860      2974,  565, 2974, 3050,  565,  565,  565,  565,  565,  565,
01861       565,  565,  565,  565,  565,  565,  565,  565, 3045,  565,
01862 
01863       565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
01864       565,  565,  565,  599,  565,  565,  565,  565,  565,  565,
01865       565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
01866       565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
01867       565,  565,  565,  565,  565,  565,  565, 3051, 3051, 3052,
01868      2974, 2974, 2974, 2974, 2974, 3053, 3053, 2974, 2974, 3054,
01869      2974, 2974, 2974, 2974, 2974, 2974, 2974, 3055, 2974, 3056,
01870      3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055,
01871      3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055,
01872      3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055,  685, 3055,
01873 
01874      3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055,
01875      3055, 3055, 3055, 3055,  714,  714,  714,  714,  714,  714,
01876       714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
01877      2974, 2974, 2974, 3057, 3058, 3059, 3057, 2974, 2974, 2974,
01878      3058, 2974, 3060, 3061, 3061, 3062, 2974, 2974, 2974, 2974,
01879      2974, 2974, 2974, 3063, 3063, 3063, 3063, 3063, 3063, 3063,
01880      3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063,
01881      3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063,
01882      3063,  769, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063,
01883      3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063,
01884 
01885      3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063,
01886      3063, 3063, 3063, 3064, 3064, 2974, 2974, 2974, 3065, 2974,
01887      2974, 3065, 2974, 3065, 2974, 2974, 2974, 2974, 3066, 3067,
01888      3066, 2974, 3068, 3068, 3068, 3068, 3068, 3068, 2974, 3069,
01889      2974, 3069, 3069, 3069, 3069, 2974, 3070, 2974, 3070, 3070,
01890      2974, 3070, 3070, 3070, 3070, 2974, 2974, 2974, 2974, 2974,
01891      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
01892      2974, 2974, 2974, 2974, 2974, 2974, 2974, 3071, 3072, 3073,
01893      2974, 3071, 2974, 3072, 2974, 3074, 3072, 3072, 3072, 3072,
01894      3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072,
01895 
01896      3072, 3072, 3073, 3073, 3075, 2974, 2974, 2974, 2974, 2974,
01897      2974, 2974, 2974, 2974, 3076, 3076, 3076, 3076, 3076, 3076,
01898      3076, 2974, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077,
01899      3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3078,
01900      2974, 3078, 2974, 3079, 3079, 3079, 3079, 3079, 3079, 3079,
01901      3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079,
01902      3080, 3081, 3082, 2974, 3080, 3083, 2974, 3083, 2974, 2974,
01903      3084, 3085, 3084, 3084, 2974, 3086, 2974, 3084, 3084, 3084,
01904      3084, 2974, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087,
01905      3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087,
01906 
01907      3087, 3087, 2974, 3088, 3088, 2974, 2974, 2974, 3089, 3089,
01908      3090, 2974, 2974, 3091, 3091, 2974, 3092, 2974, 3093, 3093,
01909      3094, 3095, 3095, 3096, 3096, 3095, 3097, 3095, 3098, 3098,
01910      3099, 3100, 3100, 3101, 3101, 3100, 3102, 3100, 3103, 3103,
01911      3104, 3105, 3105, 3106, 3106, 3105, 3107, 3105, 3108, 3108,
01912      3089, 3089, 3091, 3091, 3109, 3109, 3110, 3111, 3111, 3112,
01913      3112, 3111, 3113, 3111, 2974, 2974, 3114, 3115, 3116, 3115,
01914      3117, 3118, 3119, 3119, 3120, 2974, 2974, 2974, 3121, 2974,
01915      3121, 2974, 2974, 3122, 3123, 3124, 3125, 2974, 2974, 2974,
01916      2974, 3126, 3127, 3128, 3129, 2974, 3118, 1097, 1097, 1097,
01917 
01918      3118, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
01919      1097, 2974, 2974, 2974, 2974, 2974, 2974, 3127, 1097, 1097,
01920      1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 3118, 1097,
01921      1097, 1097, 1097, 1097, 2974, 1097, 1097, 1097, 1097, 1097,
01922      1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
01923      1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
01924      1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
01925      1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
01926      2974, 2974, 3130, 2974, 2974, 3131, 3131, 3132, 3133, 3134,
01927      3135, 2974, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
01928 
01929      3136, 3136, 3136, 3136, 3136, 3136, 3136, 2974, 2974, 2974,
01930      2974, 2974, 2974, 3135, 3136, 3136, 3136, 3136, 3136, 3136,
01931      3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 2974,
01932      2974, 2974, 2974, 2974, 2974, 3135, 3136, 2974, 2974, 3136,
01933      3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
01934      3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
01935      3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
01936      3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3137,
01937      3138, 3138, 3139, 3140, 3141, 3142, 2974, 2974, 2974, 3143,
01938      3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144,
01939 
01940      3144, 3144, 3144, 3144, 3144, 2974, 2974, 2974, 2974, 2974,
01941      3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144,
01942      3144, 3144, 3144, 3144, 2974, 2974, 2974, 2974, 2974, 3144,
01943      3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144,
01944      3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144,
01945      3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144,
01946      3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3145,
01947      3146, 3147, 3148, 3149, 3149, 3149, 3149, 2974, 2974, 3150,
01948      3150, 3150, 3150, 3151, 3151, 3152, 3153, 3153, 3154, 3154,
01949      3153, 3155, 3153, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
01950 
01951      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
01952      2974, 3156, 3157, 3158, 2974, 3159, 3159, 3159, 3159, 3159,
01953      2974, 2974, 2974, 3160, 3159, 3159, 3159, 3159, 3159, 3159,
01954      3159, 3159, 3159, 3159, 2974, 3161, 2974, 2974, 2974, 2974,
01955      3162, 3162, 3162, 3162, 3162, 3163, 3163, 3163, 3163, 3163,
01956      3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3164, 3164,
01957      3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164,
01958      3164, 3165, 2974, 2974, 2974, 3166, 3167, 3167, 3168, 3169,
01959      3169, 3170, 3170, 3169, 3171, 3169, 3172, 3172, 3172, 3172,
01960      3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172,
01961 
01962      3172, 3172, 3172, 3173, 3174, 2974, 3175, 2974, 2974, 2974,
01963      2974, 3176, 2974, 3177, 3178, 2974, 2974, 3179, 2974, 3180,
01964      3181, 3181, 3181, 3182, 3183, 3184, 3181, 3181, 3185, 3186,
01965      3187, 3187, 3187, 3188, 3189, 3190, 3187, 3187, 3191, 3192,
01966      3193, 3193, 3193, 3194, 3195, 3196, 3193, 3193, 3197, 3198,
01967      3199, 3200, 3201, 3200, 2974, 2974, 3202, 3202, 3202, 3203,
01968      3204, 3205, 3202, 3202, 3206, 3207, 2974, 2974, 2974, 3208,
01969      3209, 3210, 3211, 2974, 2974, 3212, 3213, 2974, 2974, 3214,
01970      2974, 3215, 2974, 3215, 2974, 3216, 3216, 3217, 3217, 3218,
01971      2974, 2974, 2974, 2974, 3219, 3219, 3213, 3220, 2974, 2974,
01972 
01973      2974, 2974, 1597, 1597, 1597, 1597, 2974, 2974, 2974, 2974,
01974      2974, 2974, 3221, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
01975      1597, 2974, 2974, 2974, 1597, 1597, 3213, 1597, 1597, 1597,
01976      1597, 1597, 1597, 2974, 1597, 1597, 1597, 1597, 1597, 1597,
01977      1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
01978      1597, 1597, 1597, 1597, 1597, 1597, 2974, 1597, 1597, 1597,
01979      1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
01980      1627, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
01981      1597, 1597, 2974, 2974, 3222, 2974, 2974, 3223, 3224, 3224,
01982      3225, 3226, 3226, 3226, 3226, 2974, 2974, 2974, 2974, 2974,
01983 
01984      2974, 3227, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
01985      3226, 3226, 3226, 3226, 3226, 3226, 3226, 2974, 3226, 3226,
01986      3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
01987      3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
01988      3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
01989      3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
01990      3226, 2974, 3228, 2974, 3229, 3230, 3230, 3231, 2974, 2974,
01991      3232, 3232, 3232, 3232, 2974, 2974, 2974, 2974, 2974, 3232,
01992      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232,
01993      3232, 3232, 3232, 2974, 3232, 3232, 3232, 3232, 3232, 3232,
01994 
01995      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232,
01996      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232,
01997      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232,
01998      3232, 3232, 3232, 3232, 3232, 3233, 3234, 3235, 3236, 3237,
01999      3237, 3237, 3237, 2974, 2974, 2974, 3238, 3238, 3238, 3238,
02000      3239, 2974, 3239, 3239, 3240, 3241, 3242, 3243, 3239, 2974,
02001      3239, 3244, 3245, 3246, 2974, 2974, 2974, 2974, 2974, 2974,
02002      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3247, 3248,
02003      3249, 2974, 2974, 2974, 3250, 3250, 3250, 3250, 3250, 3250,
02004      3250, 3250, 3250, 3250, 3250, 2974, 2974, 2974, 2974, 3251,
02005 
02006      3251, 3251, 3251, 3252, 3252, 3252, 3252, 3252, 3252, 3252,
02007      3252, 3252, 3252, 3253, 3253, 3253, 3253, 3253, 3253, 3253,
02008      3253, 3253, 3253, 3254, 2974, 2974, 3255, 3255, 3255, 3256,
02009      3257, 3258, 3255, 3255, 3259, 3260, 2974, 3261, 3261, 3261,
02010      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
02011      3262, 3263, 2974, 2974, 3264, 2974, 3265, 2974, 3266, 2974,
02012      3267, 2974, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275,
02013      3276, 3277, 2974, 3277, 3278, 2974, 3279, 3280, 3281, 3282,
02014      2974, 2974, 3283, 3284, 3285, 3286, 3287, 3288, 2974, 2974,
02015      2974, 3285, 2974, 3289, 1992, 1992, 1992, 1992, 2974, 2974,
02016 
02017      2974, 1992, 3285, 2003, 1992, 1992, 1992, 1992, 1992, 2974,
02018      1992, 1992, 1992, 2003, 2974, 1992, 1992, 1992, 1992, 1992,
02019      1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992,
02020      1992, 1992, 1992, 1992, 1992, 2974, 2974, 1992, 1992, 1992,
02021      1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992,
02022      2974, 2003, 1992, 1992, 1992, 1992, 1992, 2003, 1992, 1992,
02023      1992, 2974, 2974, 3290, 2974, 2974, 2974, 3291, 3292, 3292,
02024      3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
02025      3292, 2074, 2974, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
02026      3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
02027 
02028      3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
02029      3292, 3292, 3292, 2974, 3292, 3292, 3292, 3292, 3292, 3292,
02030      3292, 3292, 3292, 3293, 3294, 3294, 3294, 3294, 3294, 3294,
02031      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294,
02032      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294,
02033      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294,
02034      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294,
02035      3294, 3294, 3294, 3294, 3295, 3296, 3297, 3297, 3297, 3297,
02036      2974, 2974, 2974, 3298, 3298, 3298, 3298, 3299, 2974, 3300,
02037      3301, 3302, 3303, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02038 
02039      2974, 2974, 2974, 2974, 2974, 3304, 3305, 3306, 3306, 3306,
02040      3306, 3306, 3306, 3306, 3306, 3306, 3306, 2974, 2974, 2974,
02041      2974, 3307, 3307, 3307, 3307, 3308, 3308, 3308, 3308, 3308,
02042      3308, 3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309, 3309,
02043      3309, 2974, 2974, 3310, 3311, 3312, 3313, 3313, 3313, 3313,
02044      3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3314, 2974,
02045      2974, 3315, 2974, 3316, 2974, 3317, 2974, 2974, 2974, 2974,
02046      2974, 2974, 3318, 3319, 3319, 3320, 3321, 3321, 3322, 3318,
02047      2280, 2280, 2280, 2280, 2974, 2280, 2280, 2280, 2280, 2974,
02048      2974, 2974, 2280, 2280, 2974, 2280, 2280, 2280, 2280, 2280,
02049 
02050      2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280,
02051      3318, 2974, 2974, 2280, 2280, 2311, 2280, 2280, 2974, 2280,
02052      2280, 2280, 2280, 2974, 2974, 2280, 2280, 2280, 2974, 2974,
02053      3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323,
02054      3323, 2974, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323,
02055      3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 2974, 3323,
02056      3323, 3323, 3323, 3323, 3323, 3323, 3324, 3324, 3325, 3326,
02057      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327,
02058      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327,
02059      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327,
02060 
02061      3328, 3329, 3329, 3329, 3329, 2974, 2974, 2974, 3330, 3330,
02062      3330, 3330, 2974, 2974, 2974, 2974, 2974, 2974, 3331, 3332,
02063      3333, 2974, 3333, 3333, 3333, 2974, 2974, 2974, 2974, 2974,
02064      2974, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3335, 3335,
02065      3335, 3336, 3336, 3336, 3337, 3337, 3337, 3337, 3337, 3337,
02066      3337, 3337, 3337, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02067      2280, 3319, 3338, 3338, 2974, 2974, 3321, 3339, 3321, 3340,
02068      3340, 3341, 2280, 2280, 2280, 2974, 2280, 2280, 2280, 2280,
02069      2974, 2311, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280,
02070      2280, 2974, 2974, 2974, 2280, 2280, 2280, 2280, 2280, 2280,
02071 
02072      2280, 2280, 2974, 2974, 2974, 2280, 2974, 2974, 3323, 3323,
02073      3323, 3323, 3323, 3323, 3323, 2974, 3323, 3323, 3323, 3323,
02074      3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323,
02075      2974, 3325, 3326, 3326, 3342, 3327, 3327, 3327, 3327, 3327,
02076      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327,
02077      3327, 3327, 3328, 3329, 3329, 3329, 2974, 2974, 2974, 2974,
02078      2974, 3330, 3343, 2974, 2974, 2974, 3332, 3333, 3333, 2974,
02079      2974, 2974, 2974, 2974, 2974, 2974, 3334, 3334, 3334, 3334,
02080      3334, 3334, 3334, 3335, 3336, 3337, 3337, 3337, 3337, 2974,
02081      2974, 2974, 2974, 2974, 2974, 2280, 3338, 3338, 3321, 2974,
02082 
02083      3341, 2280, 2280, 2280, 3344, 2974, 2974, 2974, 2974, 2974,
02084      2974, 3345, 2280, 2280, 2280, 2974, 2974, 2974, 2974, 2280,
02085      2492, 2974, 2974, 2974, 2974, 2974, 2974, 2280, 2280, 2280,
02086      2482, 2280, 2974, 2974, 2974, 3323, 3323, 3323, 3346, 3323,
02087      3323, 3323, 3323, 3323, 3323, 3342, 3327, 3327, 3327, 3327,
02088      3327, 3328, 3329, 2974, 3330, 2974, 2974, 2974, 2974, 2974,
02089      2974, 2974, 2974, 3334, 3334, 3334, 3334, 3334, 2974, 2974,
02090      2974, 2974, 2974, 2280, 3338, 3321, 2280, 2280, 2280, 2280,
02091      2974, 2974, 2974, 2974, 3347, 3345, 3347, 2974, 3348, 3348,
02092      3348, 2974, 3348, 2616, 3348, 3349, 2974, 2974, 2974, 2974,
02093 
02094      2974, 2974, 2974, 2280, 2280, 2280, 2974, 3350, 2974, 3323,
02095      3323, 3323, 3323, 3323, 3323, 3327, 3327, 3328, 3329, 2974,
02096      2974, 2974, 2974, 2974, 2974, 3334, 3334, 3334, 3334, 3334,
02097      2974, 2974, 2974, 2280, 3338, 3321, 2280, 2280, 2280, 2280,
02098      2974, 2974, 2974, 2974, 2974, 3348, 2974, 3348, 3348, 2974,
02099      3348, 3348, 3351, 2974, 2974, 3348, 3348, 2974, 3349, 2974,
02100      3349, 3352, 3351, 3353, 3348, 2974, 2974, 2974, 2974, 2974,
02101      2280, 2280, 2280, 2974, 3354, 3350, 3354, 2974, 2974, 3323,
02102      3323, 3323, 3323, 3323, 3323, 3327, 3327, 3328, 2974, 2974,
02103      2974, 2974, 2974, 3334, 3334, 3334, 3334, 3334, 2974, 2694,
02104 
02105      3338, 3321, 2280, 2280, 3355, 2280, 2974, 3348, 2974, 2974,
02106      2760, 2760, 3348, 2694, 2694, 2974, 3348, 3348, 3348, 3348,
02107      2974, 2974, 2974, 2974, 2280, 2280, 2974, 2974, 2974, 3323,
02108      3356, 3323, 3323, 3323, 3327, 3327, 2974, 3357, 2974, 2974,
02109      2974, 2974, 2974, 3334, 2974, 3334, 2974, 3348, 2974, 3338,
02110      3321, 2280, 3348, 3348, 2974, 2694, 2816, 2816, 2974, 3348,
02111      2974, 2974, 2974, 2280, 2974, 2974, 3323, 3357, 3357, 3358,
02112      2974, 2974, 3334, 3334, 2974, 2974, 3338, 2974, 2280, 2974,
02113      2855, 2855, 2974, 2974, 2694, 3348, 3348, 2859, 2974, 2889,
02114      2861, 2878, 2878, 2974, 2974, 2974, 2280, 2974, 3323, 2974,
02115 
02116      2974, 3358, 2974, 2974, 2974, 2974, 3348, 3348, 2878, 3359,
02117      2280, 2880, 2974, 3348, 3348, 2883, 2884, 2884, 2974, 2694,
02118      2889, 2906, 2906, 3348, 2878, 2894, 2894, 2974, 2974, 2974,
02119      2280, 2974, 3323, 3348, 2906, 2280, 2913, 3348, 3348, 2919,
02120      2694, 2906, 2878, 3348, 2928, 2974, 2280, 2974, 3323, 2280,
02121      2694, 2906, 2878, 2974, 2280, 2694, 2906, 2878, 2280, 2694,
02122      2906, 2878, 2280, 2906, 2878, 2280, 2906, 2878, 2280, 2906,
02123      2280, 2280, 2974,    0, 2974, 2974, 2974, 2974, 2974, 2974,
02124      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02125      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02126 
02127      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02128      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02129      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02130      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02131      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02132      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02133      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02134      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02135      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02136      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02137 
02138      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02139      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02140      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02141      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02142      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02143      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02144      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02145      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02146      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02147      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02148 
02149      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02150      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02151      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02152      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02153      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02154      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02155      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02156      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02157      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02158      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02159 
02160      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02161      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02162      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02163      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02164      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
02165      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974
02166     } ;
02167 
02168 static yyconst flex_int16_t yy_nxt[26125] =
02169     {   0,
02170      2974, 2974,   67,   68,   73,   67,   68,   73,  530,  531,
02171        67,   68,   69,   70,   76,   69,   70, 1513, 1512,   71,
02172        77,   78,   74,  188,  848,  493,  188,   79,   72,  189,
02173       494,   72,  661,  498,   73,  501,   80,   73,  499,  507,
02174       502,  190,  510,  658,  508,  848,  661,  511,   69,  515,
02175        70,   69,  232,   70,  516,  658,   77,   81,   78,   82,
02176        67,   68,   82,  519,   76,   67,   68,  523,  520,  582,
02177        77,   78,  524,  582,   85,   86,   87,   83,   90,   67,
02178        68,   90,   88,   93,   94,  582,   80,   95,   85,   86,
02179        87,   89,  249,   96,   97,  249,   91,  613,   73,   73,
02180 
02181        98,   73,   73,  617,  587,   89,   77,   81,   78,   99,
02182       250,   86,   81,   87,  493,  498,  232,   74,  290,  529,
02183       532,  290,  582,  537,  655,   86,   81,   87,  538,   96,
02184      1136,   97,  100,   93,   94,  100,   74,   95,  103,  104,
02185       658,  541,  295,   96,   97,  295,  542, 2561,  105,  106,
02186       101,  110,  103,  104,  110,  107,  662,  655,  290,   99,
02187        74,  290,  105,  106,  108,  316,  495,  544,  316,  111,
02188        73,  366,  545,   73,  366,  549,   74,  553,  108,   96,
02189       550,   97,  554,   74,  105,  109,  106,  495,   74,   74,
02190       113,   67,  114,  113,  120,   67,  114,  120,  105,  109,
02191 
02192       106,  115,  116,  117, 2411,  115,  116,  117,  118,  123,
02193       124,  582,  121,  129,  123,  124,  129,  119,  558,  125,
02194       126,  119,  582,  559,  125,  126,  127,  385,  841,  410,
02195       385,  130,  410,  410,  582,  128,  410,  115,  575,  116,
02196       128,  115,  629,  116,  858,  386,  630,  411,  859,  410,
02197       618,  411,  410,  132,  133,  125,  534,  126, 1647,  534,
02198       125,  493,  126,  134,  135,  136,  494,  411,  495,  535,
02199       137,  139,  132,  133,  139,  498,   67,   68,  569,  138,
02200       499,  569,  134,  135,  136,  443,   69,   70,  443,  140,
02201       881,  570, 2562,   71,   73,   67,   68,   73,  138,  134,
02202 
02203       582,  135,   72,  444,  493,   69,   70,  443,  457,  494,
02204       443,  457,   74,  479,  489,  582,  479,  489,  134,  575,
02205       135,   72,   69,  576,   70,  444,  458,  881,  493,  582,
02206       577,   74,  490,  494,  592, 1109,  593,  646,  655,  663,
02207       658,   69,  647,   70,   66,  141,  142,  143,  141,  144,
02208       145,   66,  146,  144,   66,  147,  148,  149,   66,  150,
02209       151,  152,  153,  154,  155,  155,  155,  156,  151,  157,
02210       151,  158,  159,  160,  160,  160,  160,  160,  160,  160,
02211       160,  160,  161,  160,  160,  160,  160,  162,  160,  160,
02212       160,  160,  163,  144,  164,   66,  165,  166,  167,  168,
02213 
02214       169,  170,  171,  172,  160,  173,  160,  160,  174,  175,
02215       176,  177,  178,  179,  180,  181,  182,  183,  184,  160,
02216       160,  160,  185,  144,  186,  187,   66,   66,   67,   68,
02217        66,  191,  145,   66,  192,  193,  194,  147,  195,  196,
02218       197,  198,  199,  200,   66,  201,   66,   66,   66,   66,
02219       202,  203,  204,  205,   72,  206,  206,  206,  206,  206,
02220       206,  206,  206,  206,  207,  206,  206,  206,  206,  208,
02221       206,  206,  206,  206,   69,   66,   70,  209,  210,  211,
02222       212,  213,  214,  215,  216,  217,  206,  218,  206,  206,
02223       219,  220,  221,  222,  223,  224,  225,  226,  227,  228,
02224 
02225       229,  206,  206,  206,  185,  230,   66,  231,  233,  234,
02226       235,  236,  234,  233,  237,  233,  238,  233,  233,  239,
02227        69,  240,  233,  233,  233,  233,  233,  241,   66,   66,
02228        66,  242,  233,  233,  233,  233,  243,  244,  244,  244,
02229       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
02230       244,  244,  244,  244,  244,  244,  245,  233,  246,  233,
02231       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
02232       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
02233       244,  244,  244,  244,  244,  244,  233,  233,  247,  248,
02234        66,   66,   67,   68,   66,  191,  145,   66,  251,  193,
02235 
02236       194,  147,  195,  196,  197,  198,  199,  252,  253,  201,
02237        66,   66,   66,   66,   66,  203,  204,  205,   72,  254,
02238       254,  254,  254,  254,  254,  254,  254,  254,  255,  254,
02239       254,  254,  254,  256,  254,  254,  254,  254,   69,   66,
02240        70,  209,  257,  258,  259,  260,  261,  262,  263,  264,
02241       254,  265,  254,  254,  266,  267,  268,  269,  270,  271,
02242       272,  273,  274,  275,  276,  254,  254,  254,   66,  230,
02243       186,  231,   66,   66,   67,   68,   66,   66,  145,   66,
02244       277,   66,   66,  278,   69,   70,   66,   66,   66,   66,
02245        66,   71,   66,   66,   66,   66,  279,   66,   66,   66,
02246 
02247        72,  280,  280,  280,  280,  280,  280,  280,  280,  280,
02248       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
02249        69,   66,   70,   66,  280,  280,  280,  280,  280,  280,
02250       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
02251       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
02252       281,   66,   66,   66,   66,  282,   67,   68,  282,   66,
02253        66,   66,  283,  284,  284,   66,   69,   70,  284,   66,
02254        66,   66,   66,   71,   66,   66,   66,  285,  286,   66,
02255        66,   66,   72,  287,  287,  287,  287,  287,  287,  287,
02256       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02257 
02258       287,  287,   69,   66,   70,  284,  288,  287,  287,  287,
02259       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02260       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02261       287,  287,  289,   66,   66,   66,   66,  291,   67,   68,
02262       291,   66,   66,   66,  292,   66,   66,   66,   69,   70,
02263        66,   66,   66,   66,   66,   71,   66,   66,   66,   66,
02264       293,   66,   66,   66,   72,  294,  294,  294,  294,  294,
02265       294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
02266       294,  294,  294,  294,   69,   66,   70,   66,  294,  294,
02267       294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
02268 
02269       294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
02270       294,  294,  294,  294,   66,   66,   66,   66,   66,  282,
02271       296,   68,  282,   66,   66,   66,  297,  284,  284,   66,
02272        69,   70,  284,  298,   66,  298,   66,   71,   66,   66,
02273        66,  285,  286,   66,  299,   66,  300,  301,  301,  301,
02274       301,  301,  301,  301,  301,  301,  301,  301,  301,  301,
02275       301,  301,  301,  301,  301,  301,   69,   66,   70,  284,
02276       301,  302,  301,  301,  301,  303,  301,  301,  301,  304,
02277       301,  301,  301,  301,  301,  301,  301,  301,  305,  301,
02278       301,  301,  301,  301,  301,  301,  289,   66,   66,   66,
02279 
02280       282,   67,   68,  282,  653,  491,  816,  653,  491,  816,
02281       987,   69,   70,  290,   67,   68,  290,  988,   71,   67,
02282        68,  498,  285,  492,   69,   70,  499,   72,  817,  317,
02283       318,   74,  658,  658,  496,  285,   71,  496,  505,  582,
02284        72,  505,  319,  513,  320,   72,  513,   69,  491,   70,
02285       521,  491,  497,  521,  526,  527,  506,  526,  823,  619,
02286        69,  514,   70,  620,  654,   69,  492,   70,  522, 2411,
02287       496,  540,  528,  496,  540, 1089, 1090,  289,  621,  648,
02288       648,  648,  648,  818,  535,  655,  649,  824,  497,  497,
02289       289,   66,  306,   67,   68,  306,   66,   66,   66,  307,
02290 
02291        66,   66,   66,  308,   70,   66,  298,  309,  298,   66,
02292        71,   66,   66,   66,   66,   66,  310,   66,  311,  312,
02293       313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
02294       313,  313,  313,  313,  313,  313,  313,  313,  313,   69,
02295        66,   70,   66,  313,  313,  313,  313,  313,  313,  313,
02296       313,  313,  313,  313,  313,  313,  313,  313,  313,  314,
02297       313,  313,  313,  313,  315,  313,  313,  313,  313,  289,
02298        66,   66,   66,   73,   67,   68,   73,   67,  322,  821,
02299       491,   66,  821,  491,  317,  318,  547,  323,  324,  547,
02300       825,   74,  491,  825,  325,  491,  498,  319,  492,  320,
02301 
02302        72,  499,   66,  326,  548,  863,  327,   67,  322,  327,
02303       492,   66,  556,  843,  848,  556,  844,  323,  324,  582,
02304        69, 1097,   70,  323,  328,  324,  560,  560,  560,  560,
02305       557,  582,   66,  326,  582,  848,  562,  560,  560,  562,
02306       560,  560,  560,  560,  572,  572,  572,  582,  561,  582,
02307       601,  582,  602,  323,  492,  324,   67,   68,  561,  603,
02308       582,  604,  561,  582,  641, 1143,   69,   70,  642,  594,
02309       573,  582,  588,   71,  589,  848,  595,  863,  582,  329,
02310       596,  330,   72,  597,  598, 1103,  582,  864,  590,  491,
02311       591,  614,  491,  610,  599,  611,  848,  331,  659,  573,
02312 
02313       870,  659,   69,  600,   70,  612,  605,  492,  332,  333,
02314       334,  660,  335,  336,  606,  337, 1107,  607,  338,  871,
02315       608,  339,  609,  582,  340,  341,  342,  343,  344,   66,
02316       345,  346,  347,  345,   66,   66,   66,  348,   66,   66,
02317        66,   69,   70,  349,   66,   66,   66,   66,   71,   66,
02318        66,   66,  350,   66,   66,   66,  351,   72,  352,  352,
02319       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
02320       352,  352,  353,  352,  352,  352,  352,   69,   66,   70,
02321       349,  352,  352,  354,  355,  356,  352,  357,  352,  352,
02322       358,  352,  352,  359,  352,  352,  360,  352,  352,  361,
02323 
02324       352,  362,  363,  364,  352,  352,  352,   66,   66,   66,
02325       365,  367,  368,  369,  370,  368,  367,  367,  371,  372,
02326       367,  367,  367,  373,  374,  367,  367,  367,  367,  367,
02327       375,  367,  367,  367,  376,  376,  367,  367,  367,  377,
02328       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
02329       378,  378,  378,  378,  378,  378,  378,  378,  378,  373,
02330       367,  374,  367,  378,  378,  378,  379,  378,  378,  378,
02331       378,  378,  378,  378,  378,  378,  378,  378,  380,  378,
02332       378,  381,  382,  378,  383,  378,  378,  378,  378,  384,
02333       367,  367,  367,  387,  387,  388,  389,  387,  387,  387,
02334 
02335       387,  390,  387,  387,  387,  391,  392,  387,  387,  387,
02336       387,  387,  393,  387,  387,  387,  394,  395,  387,  387,
02337       387,  396,  397,  397,  397,  397,  397,  397,  397,  397,
02338       397,  397,  397,  397,  397,  397,  398,  397,  397,  397,
02339       397,  391,  387,  392,  387,  397,  397,  399,  400,  401,
02340       397,  402,  397,  397,  403,  397,  397,  404,  397,  397,
02341       405,  397,  397,  406,  397,  407,  408,  409,  397,  397,
02342       397,  395,  387,  387,  387,  387,  387,  388,  389,  387,
02343       387,  387,  387,  412,  387,  387,  387,  413,  392,  387,
02344       387,  387,  387,  387,  393,  387,  387,  387,  387,  395,
02345 
02346       387,  387,  387,  396,  414,  414,  414,  414,  414,  414,
02347       414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
02348       414,  414,  414,  391,  387,  392,  387,  414,  414,  414,
02349       414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
02350       414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
02351       414,  414,  414,  395,  387,  387,  387,  387,  387,  388,
02352       389,  387,  387,  387,  387,  415,  387,  387,  387,  391,
02353       416,  387,  387,  387,  387,  387,  393,  387,  387,  387,
02354       387,  387,  387,  387,  387,  396,  417,  417,  417,  417,
02355       417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
02356 
02357       418,  417,  417,  417,  417,  391,  387,  392,  387,  417,
02358       417,  419,  420,  421,  417,  422,  417,  417,  423,  417,
02359       417,  424,  417,  417,  425,  417,  417,  426,  417,  427,
02360       428,  429,  417,  417,  417,  387,  387,  387,  387,  430,
02361       430,  431,  432,  430,  430,  433,  430,  434,  430,  430,
02362       435,  436,  437,  430,  430,  430,  430,  430,  438,  430,
02363       430,  430,  430,  430,  430,  430,  430,  439,  440,  440,
02364       440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
02365       440,  440,  440,  440,  440,  440,  440,  441,  430,  442,
02366       430,  440,  440,  440,  440,  440,  440,  440,  440,  440,
02367 
02368       440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
02369       440,  440,  440,  440,  440,  440,  440,  430,  430,  430,
02370       430,  430,  430,  431,  432,  430,  430,  433,  430,  445,
02371       430,  430,  435,  436,  437,  430,  430,  430,  430,  430,
02372       438,  430,  430,  430,  430,  430,  430,  430,  430,  439,
02373       446,  446,  446,  446,  446,  446,  446,  446,  446,  446,
02374       446,  446,  446,  446,  446,  446,  446,  446,  446,  441,
02375       430,  442,  430,  446,  446,  446,  446,  446,  446,  446,
02376       446,  446,  446,  446,  446,  446,  446,  446,  446,  446,
02377       446,  446,  446,  446,  446,  446,  446,  446,  446,  430,
02378 
02379       430,  430,  430,  447,  447,  431,  448,  447,  447,  449,
02380       447,  450,  447,  447,  447,  451,  452,  447,  447,  447,
02381       447,  447,  453,  447,  447,  447,  447,  447,  447,  447,
02382       447,  454,  455,  455,  455,  455,  455,  455,  455,  455,
02383       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
02384       455,  451,  456,  452,  447,  455,  455,  455,  455,  455,
02385       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
02386       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
02387       455,  447,  447,  447,  447,   66,  459,  460,  461,  459,
02388        66,   66,  462,  463,   66,   66,   66,   69,   70,   66,
02389 
02390        66,  464,   66,   66,   71,   66,   66,   66,   66,  464,
02391        66,   66,   66,   72,  465,  465,  465,  465,  465,  465,
02392       465,  465,  465,  465,  465,  465,  465,  465,  466,  465,
02393       465,  465,  465,   69,   66,   70,   66,  465,  465,  467,
02394       468,  469,  465,  470,  465,  465,  471,  465,  465,  472,
02395       465,  465,  473,  465,  465,  474,  465,  475,  476,  477,
02396       465,  465,  465,  478,   66,   66,   66,  480,  480,  481,
02397       482,  480,  480,  480,  480,  483,  480,  480,  480,  484,
02398       485,  480,  480,  480,  480,  480,  486,  480,  480,  480,
02399       480,  480,  480,  480,  480,  487,  488,  488,  488,  488,
02400 
02401       488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
02402       488,  488,  488,  488,  488,  484,  480,  485,  480,  488,
02403       488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
02404       488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
02405       488,  488,  488,  488,  488,  480,  480,  480,  480,  560,
02406       560,  560,  560, 1011,  848,  582,  563,  578,  579,  579,
02407       578, 1009,  578,  579,  579,  578,  582, 1011,  580,  581,
02408      1010,  561,  581,  580,  581,  848,  622,  581, 2563,  583,
02409       581,  584,  582,  661,  583,  581,  584,  930,  582,  613,
02410       623,  614,  658,  748,  585,  624,  582,  931,  615,  616,
02411 
02412       839,  582,  625,  839,  582,  851,  581, 1120,  643,  823,
02413       626,  581,  820,  820,  867,  868,  644,  820,  627,  565,
02414       631,  628,  645,  632,  633,  869,  848,  493,  637,  566,
02415       994,  638,  494,  827,  634,  664,  827,  635,  664,  636,
02416       639, 2176,  651,  560,  560,  651,  665,  640,  652,  995,
02417       664,  666,  667,  664,  820,  848,  828,  669, 2564,  670,
02418       497,  665,  664,  849,  561,  664,  666,  667,  850,  668,
02419       498,  668,  669,  665,  670,  499,  848,  818,  666,  667,
02420       664, 1108,  671,  664,  669,  668,  670,  703,  582,  664,
02421       852,  665,  664,  852,  672,  848,  666,  667,  493,  668,
02422 
02423       665,  668,  669,  494,  670,  666,  667,  582,  853,  934,
02424       935,  669,  678,  670,  679,  668,  848,  668,  680,  668,
02425       936,  668,  668,  498,  698,  681,  699,  941,  499,  682,
02426       941,  673,  683,  700,  701,  668, 1021,  668,  668,  668,
02427       668,  668,  674,  668,  675,  668,  684, 2478,  493,  943,
02428      1021,  725,  668,  494,  668,  726,  685,  668,  676,  668,
02429       677,  668,  687,  848,  688,  686,  690,  668,  668,  668,
02430       668,  854, 1104,  689,  691,  582,  855,  692, 2565,  668,
02431       693,  668,  694,  668,  848,  668,  668,  695,  668,  696,
02432       704,  668,  702,  668,  705,  668,  707,  668,  668,  697,
02433 
02434       498,  668,  668,  668,  668,  499,  973,  668,  710,  706,
02435       708,  974,  668,  980,  668,  709,  711,  668,  981,  712,
02436       713,  668,  582,  668,  714,  668,  491,  668,  715,  491,
02437      1171,  716,  717,  744,  744,  744,  744,  668,  582,  668,
02438       745,  668,  718,  668,  492,  719,  668,  720,  668,  721,
02439      1122, 1017,  722,  668,  754,  668,  754,  668,  729,  668,
02440       727,  723,  668,  730,  668, 1017,  728,  785,  724,  668,
02441       754,  668,  754,  668, 1018,  668,  731,  731,  731,  731,
02442       613,  733,  731,  731,  733,  731,  731,  731,  731,  731,
02443       731,  731,  731,  582,  951, 1031,  734,  493,  732,  492,
02444 
02445       991,  582,  494,  732,  952,  749,  750,  732,  749, 1031,
02446       992,  732,  738,  739,  739,  738,  751,  747,  731,  731,
02447       747,  752,  753,  740, 1041, 1065, 1066,  669, 1065,  670,
02448       749,  750,  614,  749,  742,  497,  743,  846, 1041,  732,
02449       846,  751,  749,  750,  582,  749,  752,  753, 1019,  754,
02450      1127,  754,  669,  751,  670,  497, 1011, 1020,  752,  753,
02451       749,  750,  755,  749,  669,  754,  670,  786, 2566,  736,
02452      1011,  751,  749,  750,  756,  749,  752,  753, 1011,  754,
02453       582,  754,  669,  751,  670,  754,  582,  754,  752,  753,
02454      1100,  808, 1011, 1128,  669,  809,  670,  754,  762,  498,
02455 
02456       763,  754, 1007,  754,  499,  764,  754, 1008,  754, 1101,
02457       582,  757,  765,  582,  818,  754,  766,  754,  768,  767,
02458       496, 1012,  754,  496,  754,  758, 1013,  759,  769, 1614,
02459       754,  754,  754,  754,  955,  956,  773,  754,  497,  754,
02460       770,  760,  771,  761,  774,  957,  754,  775,  754, 1022,
02461       776,  772,  777,  754, 1023,  754,  754,  778,  754,  779,
02462       903,  903,  903,  903,  754,  863,  781,  904,  782,  780,
02463       491, 1027,  754,  491,  754,  783,  784,  790, 1123,  754,
02464       754,  582,  754,  787,  754, 1027,  754,  788,  492, 1029,
02465       754,  791,  754,  754, 1028,  754,  792,  793, 1030,  582,
02466 
02467       754,  826,  789, 1126,  826,  794,  754,  582,  795,  796,
02468       754, 1142,  754,  797,  754,  496,  754,  798,  496,  497,
02469       799,  800,  832,  817, 1032,  832,  754,  582,  754, 1033,
02470       754,  801,  754,  497,  802,  754,  803,  754,  804,  582,
02471       497,  805,  754, 1175,  754,  828,  754,  812,  754,  810,
02472       806,  754,  813,  754, 1039,  811, 1042,  807,  754, 2489,
02473       754, 1043,  754, 1040,  754,  875,  875,  875,  875, 1057,
02474       877,  875,  875,  877,  875,  875,  875,  875,  818,  875,
02475       875,  875,  875, 1057, 1051, 1055,  878,  876,  492, 1517,
02476      1058, 1517,  876, 1052, 1056, 1059,  876,  883,  875,  875,
02477 
02478       883,  876,  883,  875,  875,  883,  883,  875,  875,  883,
02479       527,  883,  875,  875,  883,  883,  875,  875,  883,  885,
02480       978,  886, 1049,  978,  885, 2570,  886, 1050,  885, 1144,
02481       886, 1012,  582,  885,  887,  886, 1068,  885,  979,  886,
02482       883,  875,  875,  883,  883,  875,  875,  883,  582,  883,
02483       875,  875,  883, 1101,  883,  875,  875,  883, 1009,  880,
02484      1067, 1520,  885, 1520,  886,  582,  885, 1010,  886,  582,
02485       889,  885,  888,  886, 1067, 1121,  885,  890,  886,  848,
02486      1102,  891,  883,  875,  875,  883,  883,  875,  875,  883,
02487       883,  875,  875,  883,  883,  875,  875,  883,  534,  893,
02488 
02489       848,  534,  491,  892,  885,  491,  886,  896,  885,  894,
02490       886,  535,  885,  582,  886,  895,  885, 2426,  886, 1139,
02491       492,  906,  875,  875,  906,  907,  907,  908,  907,  914,
02492       907,  908,  914,  582, 1130,  496, 1077,  491,  496,  497,
02493       491,  897,  898,  876, 1110, 1078,  582,  492,  902, 1513,
02494      1111,  900,  899,  497,  582,  492,  901,  908,  908,  908,
02495       908, 1512,  582, 1129,  922,  907,  908,  922,  967,  967,
02496       967,  967,  996, 1134,  496,  997,  998,  496,  505,  909,
02497      1014,  505,  497,  909, 1024, 1037,  999,  582, 1152, 1015,
02498       969,  910,  497, 1025,  911,  910,  506,  912,  911, 1037,
02499 
02500      2571,  912,  913, 1016,  582, 1034,  913, 1026, 1038,  513,
02501      1148,  909,  513,  521, 1035, 1044,  521,  970,  909,  908,
02502       908,  908,  908,  910, 1045, 1047,  911,  514, 1036,  912,
02503       910,  522,  547,  911,  913,  547,  912, 1145, 1046, 1047,
02504       582,  913,  971,  971, 2577,  971,  971,  971, 1048,  971,
02505       548,  971,  971,  971,  971,  971,  971,  971,  971,  971,
02506       971,  971,  582, 1164,  582,  971,  971,  971,  971,  971,
02507       971,  526,  527,  909,  526, 1140,  982,  908,  908,  982,
02508       908,  908,  908,  908, 1528,  910, 1528, 1017,  911,  528,
02509       971,  912,  971,  971,  492, 1053,  913, 1003,  908,  908,
02510 
02511      1003, 1017, 1017, 1060, 1054, 1530,  540, 1530, 1014,  540,
02512      1018,  556, 1061, 1063,  556,  497, 1017, 1015, 1016,  535,
02513       971,  971,  971,  971,  497, 1018, 1062, 1063, 2578,  557,
02514       909, 1016, 1135, 1069,  909, 1135, 1064,  560,  560,  560,
02515       560,  569,  910, 1098,  569,  911,  910, 1069,  912,  911,
02516       582,  909,  912,  913,  570,  582, 1070,  913,  582,  561,
02517      1099, 1131,  582,  910, 1132,  582,  911, 1141, 1616,  912,
02518       562,  560,  560,  562,  913,  578,  579,  579,  578, 1101,
02519       582, 1174, 1073, 1073, 1073, 1073,  580,  581,  492, 1074,
02520       581,  582,  561,  578,  579,  579,  578,  583,  581,  584,
02521 
02522      1079, 1080, 1080, 1079,  580,  581,  582, 1081,  581,  572,
02523       572,  572, 1082,  570, 2579,  583,  581,  584, 1087, 1087,
02524      1087, 1087, 1083,  582,  581,  563,  578,  579,  579,  578,
02525      1151, 1604,  582, 1105, 1106,  573,  582,  580,  581, 1159,
02526       561,  581,  581,  579,  579,  579,  579,  582,  583,  581,
02527       886,  582, 1072, 1165,  580,  581, 1094, 1094,  581,  582,
02528      1176, 1095, 1095,  582,  573,  583,  581, 1124,  582, 1133,
02529      1125, 1096, 1137, 1146, 1101,  581,  582, 1149,  582, 1138,
02530      1085, 2580,  582, 1150, 1160,  582, 1158, 1147, 1153, 1154,
02531       582, 1155,  581, 1101,  582, 1156, 1162, 1477,  566, 1166,
02532 
02533      1169, 1157, 1161,  582,  582, 1167, 1478,  582,  582, 1172,
02534       582, 1177, 1163, 1168, 1178,  582, 1180, 2581, 1173, 1170,
02535      1184, 1185,  881,  614, 1094, 1112, 1113, 1114, 1114, 1113,
02536      1112, 1112, 1112, 1112, 1112, 1112, 1112, 1115, 1116, 1112,
02537      1112, 1116, 1112, 1112, 1112, 1475, 1475,  582, 1117, 1116,
02538      1118, 1112, 1112, 1112,  648,  648,  648,  648,  823,  881,
02539      1380,  649, 2974, 2974, 2974, 2974, 1381,  653,  653, 2974,
02540       653,  653, 1617, 1112, 1112, 1116, 1112, 1181, 1182, 1182,
02541      1181,  582, 1480, 1281, 1281, 1281, 1281, 1481,  580,  581,
02542      1282, 1371,  581,  651,  560,  560,  651, 1119, 1513,  652,
02543 
02544       581,  886, 1512, 1112, 1112, 1112, 1112,  664, 1605,  659,
02545       664,  497,  659,  664, 1404,  561,  664, 1188,  664, 2582,
02546      1188,  664,  660, 1538, 1479, 1538,  581,  654,  654,  669,
02547       660,  670, 1405,  664, 1453,  669,  664,  670, 1479,  668,
02548       669,  668,  670,  664,  665,  668,  664, 1259,  582,  666,
02549       667,  668, 1454,  664,  665,  669,  664,  670,  821,  666,
02550       667,  821, 2583,  664,  665,  669,  664,  670,  825,  666,
02551       667,  825, 1187, 1631,  665,  669, 1260,  670,  668,  666,
02552       667,  664,  668,  821,  664,  669,  821,  670,  668, 1193,
02553       664,  698,  665,  664, 1261, 2974,  816,  666,  667,  816,
02554 
02555      1511,  665,  582,  669, 1466,  670,  666,  667,  825, 1497,
02556      1615,  825,  669,  664,  670, 1194,  664,  664,  817,  668,
02557       664, 1264, 1467, 1378,  665,  668, 1379, 1498,  665,  666,
02558       667,  668, 1195,  666,  667,  669, 1540,  670, 1540,  669,
02559       664,  670,  823,  664,  664, 1197,  668,  664,  668, 2974,
02560      1196,  665,  668, 1265, 1511,  665,  666,  667,  668,  930,
02561       666,  667,  669, 1548,  670, 1548,  669,  664,  670,  668,
02562       664,  668,  848,  818, 1258,  668, 1838, 1197,  665,  664,
02563      1387, 1197,  664,  666,  667, 1388,  668, 1198,  668,  669,
02564       665,  670, 1266,  848,  664,  666,  667,  664,  668,  827,
02565 
02566      1200,  669,  827,  670,  664,  665, 1199,  664, 2974,  839,
02567       666,  667,  839, 1556, 2974,  665,  669, 1262,  670, 1556,
02568       666,  667,  828,  668,  582,  668,  669,  664,  670,  668,
02569       664, 1203, 1550, 1263, 1550,  668, 1201, 1202,  665,  582,
02570       820,  820, 1269,  666,  667,  820, 1204,  582,  668,  669,
02571       668,  670, 1652, 1400,  668,  664, 1400, 2584,  664,  664,
02572       668, 1270,  664, 1648, 1435,  699,  665, 1435, 1519, 1205,
02573       665,  666,  667, 1606, 1519,  666,  667,  669, 1518,  670,
02574      1518,  669,  820,  670, 1206, 1564,  818, 1564,  886,  582,
02575      1207, 1208, 1209, 1208, 1208, 1209, 1208, 1208, 1208, 1208,
02576 
02577      1208, 1208, 1208, 1210, 1208, 1208, 1208, 1208, 1211, 1212,
02578      1208, 1519, 1518,  582, 1213, 1208, 1214, 1208, 1208, 1208,
02579      1216,  664, 1625,  668,  664, 1272, 1101, 1400, 1217,  668,
02580      1400,  582,  665,  664, 1273,  668,  664,  666,  667, 1208,
02581      1208, 1208, 1208,  669,  665,  670,  668,  582, 1267,  666,
02582       667,  664,  668, 1101,  664,  669, 1268,  670,  668,  614,
02583      1981,  832,  665, 1215,  832, 1982, 1485,  666,  667, 1208,
02584      1208, 1208, 1208,  669,  664,  670,  668,  664, 1274,  497,
02585      1485,  668,  668, 1276,  828,  665, 1277,  668,  668, 1486,
02586       666,  667, 1218,  668,  664,  582,  669,  664,  670,  978,
02587 
02588      1219,  582,  978, 1220,  664,  665, 1501,  664, 1101, 1502,
02589       666,  667,  582, 1621, 1221,  665,  669,  979,  670,  664,
02590       666,  667,  664, 2016,  614,  668,  669,  668,  670,  664,
02591       665,  668,  664,  582, 1271,  666,  667,  668,  582, 1222,
02592       665,  669,  668,  670,  668,  666,  667,  664,  668, 1641,
02593       664,  669, 1275,  670,  668,  668, 1278,  668,  665,  664,
02594      1223,  668,  664,  666,  667,  582, 1566,  668, 1566,  669,
02595       665,  670, 1224, 1620,  664,  666,  667,  664,  582, 1225,
02596       668,  669, 1279,  670,  664,  665,  668,  664,  582,  582,
02597       666,  667,  668, 1507, 1226,  665,  669, 1227,  670, 1628,
02598 
02599       666,  667, 1238, 1239, 1239, 1238,  669, 1507,  670, 1627,
02600      1638, 1509, 1228,  665,  582, 1509, 1508, 1197,  666,  667,
02601      1573, 1651, 1573, 1542,  669,  930,  670, 1252,  517, 1229,
02602      1230, 1231, 1230, 1230, 1231, 1230, 1230, 1230, 1230, 1230,
02603      1230, 1230, 1232, 1230, 1230, 1230, 1230, 1233, 1234, 1230,
02604      1482, 1237, 1505, 1235, 1230, 1236, 1230, 1230, 1230, 1483,
02605       664, 1505,  582,  664,  582, 1240,  731,  731,  731,  731,
02606      1626,  665, 1241, 1484, 2026, 1506,  666,  667, 1230, 1230,
02607      1230, 1230,  669,  664,  670,  582,  664,  582,  732, 1656,
02608      1288, 1289, 1289, 1288,  665,  733,  731,  731,  733,  666,
02609 
02610       667,  740,  582,  846, 1629,  669,  846,  670, 1230, 1230,
02611      1230, 1230,  664,  492, 1630,  664,  664,  732, 1844,  664,
02612       582,  497,  582,  665, 1845, 1242, 1514,  665,  666,  667,
02613      1386,  848,  666,  667,  669, 1514,  670,  582,  669,  664,
02614       670, 1645,  664,  664, 1386, 1583,  664,  582, 1583, 1016,
02615       665,  613,  848, 1243,  665,  666,  667, 1101, 1513,  666,
02616       667,  669, 1512,  670,  582,  669,  664,  670, 1659,  664,
02617       664,  941, 1632,  664,  941,  941, 1244,  665,  941,  582,
02618       818,  665,  666,  667, 1509, 1509,  666,  667,  669, 1197,
02619       670, 1636,  669,  943,  670,  664, 1558,  943,  664, 1384,
02620 
02621       848,  543, 1245, 1934, 1246, 1934,  665,  664, 1385,  582,
02622       664,  666,  667, 1284, 1284, 1284, 1284,  669,  665,  670,
02623       734,  848, 1247,  666,  667,  664, 1248,  582,  664,  669,
02624       582,  670,  582,  582,  664,  732,  665,  664, 1633, 1637,
02625      1643,  666,  667, 1392,  848,  665, 1101,  669,  582,  670,
02626       666,  667,  738,  739,  739,  738,  669, 1392,  670, 1650,
02627      1249,  750,  750,  740,  750,  848, 1393, 1250,  738,  739,
02628       739,  738,  751, 1251,  742, 1661,  743,  752,  753,  740,
02629       739,  739,  739,  739,  582, 1253,  738,  739,  739,  738,
02630       742,  740, 1254,  736, 1255,  582, 1639,  740, 1256,  582,
02631 
02632      1525, 1515,  742,  941, 1257, 1101,  941,  582,  742, 1525,
02633       743,  744,  744,  744,  744, 1515,  582,  614,  745, 2974,
02634      2974, 2974, 2974, 1026, 1018,  943, 2974,  747,  731,  731,
02635       747,  749,  750, 1665,  749,  749,  750,  582,  749, 1670,
02636       826, 2057,  751,  826,  582,  497,  751,  752,  753,  732,
02637       582,  752,  753,  669,  582,  670, 1655,  669,  497,  670,
02638       749,  750,  817,  749,  749,  750, 1640,  749, 1513, 1512,
02639      1658,  751, 1512, 1509, 1509,  751,  752,  753, 1389,  848,
02640       752,  753,  669,  582,  670,  543,  669, 1390,  670,  951,
02641      1559, 1689,  749,  750, 1689,  749,  749,  750, 1690,  749,
02642 
02643       848, 1391,  781,  751, 1663,  582, 1291,  751,  752,  753,
02644      1513, 1512,  752,  753,  669, 1512,  670,  818,  669, 1512,
02645       670,  749,  750, 1649,  749,  749,  750,  582,  749,  582,
02646       852,  582,  751,  852,  582,  848,  751,  752,  753, 1644,
02647       613,  752,  753,  669, 1292,  670, 1526,  669,  853,  670,
02648      1657,  749,  750, 1657,  749, 1662,  848, 1512,  582, 1671,
02649      1526, 1293,  751,  749,  750, 1294,  749,  752,  753, 1028,
02650      1646, 1516, 1516,  669,  751,  670, 1295, 1535, 2585,  752,
02651       753,  749,  750, 1558,  749,  669, 1535,  670,  543, 1295,
02652       749,  750,  751,  749,  582, 1545,  582,  752,  753, 1536,
02653 
02654      1036,  751,  582,  669, 1545,  670,  752,  753,  875,  875,
02655       875,  875,  669, 1536,  670,  582,  749,  750, 1046,  749,
02656       582, 1296, 1038, 1678, 1660,  749,  750,  751,  749, 1297,
02657       876, 1676,  752,  753, 1519, 1518,  751, 1298,  669, 1682,
02658       670,  752,  753, 1518,  582,  749,  750,  669,  749,  670,
02659       883,  875,  875,  883,  749,  750,  751,  749,  582, 1299,
02660      1300,  752,  753,  582, 1561,  751, 1672,  669, 1301,  670,
02661       752,  753,  885, 1561,  886, 1664,  669, 1302,  670,  749,
02662       750, 1518,  749,  749,  750, 1509,  749, 1062,  582, 1509,
02663       751,  582, 1546, 2486,  751,  752,  753,  517, 1669,  752,
02664 
02665       753,  669, 1543,  670, 1960,  669, 1546,  670, 1959,  951,
02666      1303, 1304, 1673, 1065, 1066, 1048, 1065, 1305, 1208, 1306,
02667      1307, 1208, 1306, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
02668      1308, 1208, 1208, 1208, 1208, 1309, 1310, 1208, 1562,  582,
02669      2058, 1213, 1208, 1214, 1208, 1208, 1208, 1764, 1312,  582,
02670      1764,  582, 1562,  582, 1313,  877,  875,  875,  877,  749,
02671       750, 1064,  749, 1101, 1618, 1619, 1208, 1208, 1208, 1208,
02672       751,  749,  750,  492,  749,  752,  753,  876, 1936, 1668,
02673      1936,  669,  751,  670,  582, 1519, 1518,  752,  753, 1518,
02674      1311,  749,  750,  669,  749,  670, 1208, 1208, 1208, 1208,
02675 
02676       749,  750,  751,  749,  582,  991, 1675,  752,  753, 1400,
02677      1519,  751, 1400,  669, 1518,  670,  752,  753, 1509, 1509,
02678       749,  750,  669,  749,  670, 1677, 1314, 1509,  582, 1315,
02679      1532,  751, 1518,  582, 1316,  509,  752,  753,  749,  750,
02680      1674,  749,  669, 1135,  670,  582, 1135,  749,  750,  751,
02681       749, 1954,  614, 1954,  752,  753, 1317,  582,  751, 1679,
02682       669, 1666,  670,  752,  753, 1509, 1318,  749,  750,  669,
02683       749,  670, 1667,  988,  903,  903,  903,  903,  751,  749,
02684       750,  904,  749,  752,  753, 1516, 1516,  582, 1319,  669,
02685       751,  670,  582, 1513, 1512,  752,  753,  543, 1320, 1642,
02686 
02687      1680,  669, 1559,  670, 1925,  749,  750, 1957,  749, 1957,
02688      1995,  582, 1321, 1926, 1926, 1322,  751,  749,  750, 1681,
02689       749,  752,  753,  883,  875,  875,  883,  669,  751,  670,
02690      1513, 1516, 1323,  752,  753, 1516, 1962, 1295,  582,  669,
02691      1961,  670, 1512, 1542,  582,  876, 1996,  886,  517, 1324,
02692      1230, 1325, 1326, 1230, 1325, 1230, 1230, 1230, 1230, 1230,
02693      1230, 1230, 1327, 1230, 1230, 1230, 1230, 1328, 1329, 1230,
02694       582,  614, 1330, 1235, 1230, 1236, 1230, 1230, 1230,  582,
02695      1331, 1960, 1959, 1413, 1413, 1413, 1413, 1332, 1519, 1518,
02696       878,  749,  750, 1653,  749,  582, 1654, 2003, 1230, 1230,
02697 
02698      1230, 1230,  751,  749,  750,  876,  749,  752,  753,  903,
02699       903,  903,  903,  669,  751,  670,  904, 1962, 1961,  752,
02700       753,  749,  750, 1686,  749,  669, 1686,  670, 1230, 1230,
02701      1230, 1230,  751,  749,  750, 1687,  749,  752,  753, 2974,
02702      2974, 2974, 2974,  669,  751,  670, 2974,  582, 1516,  752,
02703       753, 1188, 1516, 2052, 1188,  669, 1333,  670,  749,  750,
02704       517,  749,  582,  880,  660, 1543, 2006,  749,  750,  751,
02705       749,  582, 1998, 1334,  752,  753,  749,  750,  751,  749,
02706       669, 2005,  670,  752,  753, 1335, 2008,  751,  582,  669,
02707       582,  670,  752,  753,  749,  750,  527,  749,  669, 1551,
02708 
02709       670, 1567, 1568, 2014, 1567,  751, 1295,  582, 1551,  582,
02710       752,  753,  848, 2023,  749,  750,  669,  749,  670, 1569,
02711      1931, 1336, 1552,  749,  750,  751,  749,  582, 1337, 1931,
02712       752,  753, 1338,  848,  751, 1101,  669, 1101,  670,  752,
02713       753,  749,  750, 1484,  749,  669, 1882,  670,  582, 1882,
02714      1339, 1513,  751,  749,  750, 1856,  749,  752,  753,  967,
02715       967,  967,  967,  669,  751,  670,  527, 2033, 1883,  752,
02716       753,  749,  750, 1973,  749,  669, 1856,  670,  582, 1340,
02717      1960,  969,  751, 1341, 1861,  525, 1861,  752,  753, 1342,
02718       525,  848, 1959,  669, 1343,  670, 1513, 1512,  749,  750,
02719 
02720      1512,  749,  883,  875,  875,  883, 1509, 1571,  970,  751,
02721      1852, 1932,  848, 1344,  752,  753,  749,  750, 1853,  749,
02722       669, 1571,  670,  847,  885, 1932,  886,  751,  995, 1345,
02723      1070, 1852,  752,  753, 1486, 1346,  749,  750,  669,  749,
02724       670, 1347, 1974, 1512, 1974, 1509, 1509,  751,  749,  750,
02725       582,  749,  752,  753, 1509,  582, 2013,  509,  669,  751,
02726       670, 1348, 1533, 1513,  752,  753,  582, 1512, 1295, 1512,
02727       669, 2040,  670,  749,  750, 1101,  749,  967,  967,  967,
02728       967, 1519, 1349, 1519,  751,  749,  750, 1863,  749,  752,
02729       753, 2012, 1509, 1518, 1350,  669,  751,  670,  582,  969,
02730 
02731      1352,  752,  753,  749,  750, 1962,  749,  669, 1863,  670,
02732      1512, 1960, 1351,  848,  751, 1435, 1353, 1961, 1435,  752,
02733       753,  749,  750, 1959,  749,  669,  970,  670, 1073, 1073,
02734      1073, 1073,  751, 1354,  848, 1074, 2027,  752,  753,  886,
02735      2029,  749,  750,  669,  749,  670, 1239, 1239, 1239, 1239,
02736      1355,  582,  751,  749,  750,  582,  749,  752,  753, 1516,
02737      1516, 1958, 1958,  669,  751,  670,  996, 1356, 1516,  752,
02738       753, 1532, 2017,  543,  582,  669,  509,  670,  543,  749,
02739       750, 1357,  749,  749,  750, 1864,  749, 1864, 1583, 1358,
02740       751, 1583, 2586, 1359,  751,  752,  753, 2018,  582,  752,
02741 
02742       753,  669, 2021,  670,  582,  669, 1516,  670,  749,  750,
02743       582,  749, 1360, 2004, 1509, 1509,  782, 2034, 1509,  751,
02744      1361,  582, 2019, 1509,  752,  753, 1522, 1509,  582, 1509,
02745       669,  500,  670,  749,  750, 1928,  749, 1857,  848, 1362,
02746       971, 1509, 1509, 1364,  751, 1509, 1857,  582, 1363,  752,
02747       753,  749,  750,  500,  749,  669, 2287,  670, 1523,  848,
02748      1391, 1509,  751,  749,  750, 2587,  749,  752,  753,  527,
02749      1509,  527, 1553,  669,  751,  670, 1365,  582, 2020,  752,
02750       753,  883,  875,  875,  883,  669, 1553,  670, 1509,  883,
02751       875,  875,  883, 1366, 1435, 1554, 1367, 1435,  883,  875,
02752 
02753       875,  883,  582,  885, 2024,  886,  883,  875,  875,  883,
02754      1368,  885,  582,  886,  883,  875,  875,  883,  886,  893,
02755       885, 1101,  886, 1369,  883,  875,  875,  883,  885,  582,
02756       886, 2038, 2974, 2974, 2974, 2974,  885,  582,  886, 2974,
02757      2007,  883,  875,  875,  883, 2588,  885, 1977,  886, 1977,
02758      1417,  883,  875,  875,  883, 1416,  883,  875,  875,  883,
02759      1858,  848, 2046,  885,  582,  886,  906,  875,  875,  906,
02760      2030, 1418, 2032,  885, 1858,  886, 2009,  582,  885,  582,
02761       886, 2589,  848, 1393,  497, 1419,  582,  582,  876, 2011,
02762      1420, 1230, 1421, 1422, 1422, 1421, 1230, 1230, 1230, 1230,
02763 
02764      1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
02765      1230,  893, 1426, 2035, 1423, 1230, 1424, 1230, 1230, 1230,
02766       582, 1425,  883,  875,  875,  883,  883,  875,  875,  883,
02767       883,  875,  875,  883,  883,  875,  875,  883, 1101, 1230,
02768      1230, 1230, 1230, 2049,  885,  582,  886, 2053,  885,  582,
02769       886,  582,  885, 2050,  886,  991,  885,  582,  886,  883,
02770       875,  875,  883,  582, 2022,  883,  875,  875,  883, 1230,
02771      1230, 1230, 1230,  907,  907,  908,  907,  908,  908,  908,
02772       908,  885,  582,  886, 1428,  613, 2047,  885, 1427,  886,
02773       914,  907,  908,  914,  922,  907,  908,  922, 1430,  582,
02774 
02775      1513, 1512, 1429, 1431,  967,  967,  967,  967,  492, 1512,
02776       582, 2028,  497, 1080, 1080, 1080, 1080, 1516, 1516, 1432,
02777       582, 1516, 1433, 2039, 1434,  582,  969,  909,  613, 1522,
02778      2042,  909, 2590,  664,  500, 1083,  664,  582, 2041,  910,
02779      1153,  582,  911,  910,  909,  912,  911, 1512,  909,  912,
02780       913,  582, 2048,  970,  913,  669,  910,  670, 1135,  911,
02781       910, 1135,  912,  911, 1516,  582,  912,  913, 2003,  614,
02782       582,  913,  971,  971, 2593,  971,  971,  971, 2043,  971,
02783       582,  971,  971,  971,  971,  971,  971,  971,  971,  971,
02784       971,  971,  582, 2044,  582,  971,  971,  971,  971,  971,
02785 
02786       971,  982,  908,  908,  982, 1588, 1588, 1588, 1588, 1516,
02787      1516, 2045, 1589, 1516, 2002, 1516, 1516, 2488,  582,  492,
02788       971,  500,  971,  971, 1516,  582, 1523,  509, 1288, 1289,
02789      1289, 1288, 1533,  582, 2061, 1087, 1087, 1087, 1087,  740,
02790       582, 2293,  563,  582, 2059, 1003,  908,  908, 1003,  582,
02791       971,  971,  971,  971, 1962,  909, 1516,  561, 1281, 1281,
02792      1281, 1281, 1516,  497, 2054, 1282, 1961,  910,  582, 2055,
02793       911, 2060, 1764,  912, 2056, 1764,  582,  614,  913, 1230,
02794      1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
02795      1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,  909,
02796 
02797       848,  582, 1230, 1230, 1230, 1230, 1230, 1230, 2288, 1076,
02798      1764,  910, 1513, 1764,  911,  566, 1856,  912, 1581, 1581,
02799      1581,  848,  913, 1574, 1575, 1575, 1574, 1230, 1230, 1230,
02800      1230, 1600, 1601, 1601, 1600,  581,  582, 1856,  581,  578,
02801       579,  579,  578,  848, 1581,  561,  581,  886, 2309,  848,
02802       580,  581,  664, 1602,  581,  664, 1854, 1230, 1230, 1230,
02803      1230,  583,  581,  584,  848, 2280, 1578, 1579, 1579, 1578,
02804       848, 1960,  581, 1581,  669, 1959,  670,  848,  581, 1960,
02805       582,  581,  823, 2191, 1079, 1080, 1080, 1079,  581,  581,
02806       886, 1081, 1762,  731,  731, 1762, 1082,  570,  848, 1577,
02807 
02808      1080, 1080, 1080, 1080, 2191, 1962, 1083, 1582,  664, 1961,
02809       582,  664, 2974, 2974,  732,  581, 1585, 1080, 1080, 1585,
02810      1960, 1959, 1083, 1081, 1595, 1595, 1595, 1595, 1082, 2553,
02811       669, 1596,  670, 1473,  582, 1586, 1586, 1586, 1083, 1094,
02812      1094, 2300, 2243, 2243, 1095, 1095,  561, 2496,  578,  579,
02813       579,  578, 1882,  664, 1096, 1882,  664, 1962, 1961,  580,
02814       581, 1094, 1094,  581, 1085, 2266, 1095, 1095, 1685, 2283,
02815       583,  581,  584,  582, 2266,  669, 1096,  670,  664,  664,
02816      1085,  664,  664,  582, 2974, 2974, 2974, 2974, 2267,  665,
02817      1597, 2974, 1603, 2594,  666,  667, 1085,  581, 2281, 2595,
02818 
02819       669,  669,  670,  670, 1598, 1101,  582, 1094, 1607, 1608,
02820      1609, 1609, 1608, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
02821      1610, 1611, 1607, 1607, 1611, 1607, 1607, 1607, 2296, 1094,
02822       582, 1612, 1611, 1613, 1607, 1607, 1607, 1289, 1289, 1289,
02823      1289, 1238, 1239, 1239, 1238,  582,  582, 1693,  740, 1622,
02824      1623, 1623, 1622, 1960, 1959,  614, 1607, 1607, 1611, 1607,
02825      1624,  581, 1959,  669,  581,  670, 1567, 1568, 2475, 1567,
02826      2284,  583,  581,  886,  582, 1769, 1769, 1769, 1769, 1623,
02827      1623, 1623, 1623,  582, 1569, 2305, 1607, 1607, 1607, 1607,
02828      1624,  581,  664,  582,  581,  664,  664, 1770,  581,  664,
02829 
02830      1959,  583,  581,  665, 2301,  582,  582,  665,  666,  667,
02831      2289,  582,  666,  667,  669, 1519,  670, 2317,  669, 1518,
02832       670, 1518, 1599, 2974, 1608, 1101, 2974, 1608,  581, 1112,
02833      1113, 1114, 1114, 1634, 1112, 1112, 1112, 1112, 1112, 1112,
02834      1112, 1115, 1116, 1112, 1112, 1116, 1112, 1112, 1112, 2310,
02835      2605,  582, 1117, 1116, 1118, 1112, 1112, 1112, 1288, 1289,
02836      1289, 1288, 1518, 1694, 1686, 2260, 1695, 1686, 2260,  740,
02837      1135,  579,  579, 1135, 2230, 2286, 1687, 1112, 1112, 1116,
02838      1112,  580,  581, 2261, 1400,  581, 1635, 1400, 1181, 1182,
02839      1182, 1181,  583,  581,  886,  875,  875,  875,  875,  580,
02840 
02841       581,  582, 1608,  581, 2311, 1608,  582, 1112, 1112, 1112,
02842      1112,  581,  886, 1182, 1182, 1182, 1182,  876, 2051,  581,
02843      1181, 1182, 1182, 1181,  580,  581, 1686,  582,  581, 1686,
02844       664,  580,  581,  664, 2474,  581,  581,  581, 1687,  664,
02845      2194,  665,  664,  581,  886,  582,  666,  667,  664, 2297,
02846       665,  664,  669,  582,  670,  666,  667, 1519, 1518,  665,
02847      2501,  669,  581,  670,  666,  667, 1518, 1960, 1959,  581,
02848       669, 1959,  670, 2602, 1692, 1696, 1697, 1696, 1696, 1697,
02849      1696, 1696, 1696, 1696, 1696, 1696, 1696, 1698, 1696, 1696,
02850      1696, 1696, 1699, 1700, 1696, 2316,  582,  582, 1701, 1696,
02851 
02852      1702, 1696, 1696, 1696, 1518, 1197, 1588, 1588, 1588, 1588,
02853      1101, 1703, 2974, 1589, 1959, 2974,  664, 1509, 1516,  664,
02854      2626, 1852, 1860, 1696, 1696, 1696, 1696,  665,  664,  847,
02855      1853,  664,  666,  667, 1854,  847,  582,  582,  669,  665,
02856       670, 2304, 1852, 1860,  666,  667,  750,  750,  664,  750,
02857       669,  664,  670, 1696, 1696, 1696, 1696,  751,  664,  665,
02858       582,  664,  752,  753,  666,  667, 2228,  582, 1704,  665,
02859       669, 2498,  670, 1958,  666,  667,  664, 1958, 2328,  664,
02860       669, 2302,  670,  582,  699,  517, 1076,  665,  664,  668,
02861       517,  664,  666,  667,  613, 1581, 1581, 1581,  669,  665,
02862 
02863       670, 2341, 1705,  664,  666,  667,  664, 2627,  582, 2298,
02864       669, 1516,  670,  664,  665, 1860,  664, 2299, 2306,  666,
02865       667, 1581,  582,  847,  665,  669,  698,  670, 1854,  666,
02866       667,  750,  750, 2633,  750,  669, 1860,  670, 1567, 1568,
02867      2318, 1567,  751,  664,  582, 1706,  664,  752,  753, 1519,
02868      1581,  613,  582, 1863,  665, 1709, 1569, 1707, 1708,  666,
02869       667,  664,  582, 2065,  664,  669, 2065,  670, 1689, 1710,
02870       664, 1689,  665,  664, 1863, 1690,  613,  666,  667, 2066,
02871      2067,  665,  582,  669,  613,  670,  666,  667,  664,  582,
02872      2974,  664,  669, 2974,  670, 2507, 1711, 2974,  664,  665,
02873 
02874      1400,  664, 1962, 1400,  666,  667, 2193, 2639,  664,  665,
02875       669,  664,  670, 1712,  666,  667,  582, 1101,  664,  665,
02876       669,  664,  670, 2630,  666,  667,  699, 2193, 2974,  665,
02877       669, 2974,  670,  664,  666,  667,  664, 1519, 1518,  582,
02878       669, 1518,  670,  664,  665,  823,  664, 1962, 1961,  666,
02879       667, 1961, 1197, 2303,  665,  669, 2226,  670,  582,  666,
02880       667, 1713, 2320,  582, 1714,  669,  664,  670, 2456,  664,
02881      2456, 1284, 1284, 1284, 1284, 2405, 1608,  665,  734, 1608,
02882      1962, 1961,  666,  667, 1518, 1716, 2401, 1715,  669, 1961,
02883       670, 2227, 2480,  732, 1961, 1717, 1208, 1209, 1208, 1208,
02884 
02885      1718, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1210, 1208,
02886      1208, 1208, 1208, 1211, 1212, 1208, 1958, 1958,  582, 1213,
02887      1208, 1214, 1208, 1208, 1208, 1958,  664, 1961,  509,  664,
02888      2653, 2974, 1722,  509, 2974, 1101,  582,  665,  664, 2294,
02889       582,  664,  666,  667, 1208, 1208, 1208, 1208,  669,  665,
02890       670,  736,  582, 1719,  666,  667,  664, 2490, 2561,  664,
02891       669, 2974,  670, 1958, 2974, 2311, 2307,  665,  664,  582,
02892      2654,  664,  666,  667, 1208, 1208, 1208, 1208,  669,  665,
02893       670,  582, 1720, 2308,  666,  667,  664, 2229, 2974,  664,
02894       669, 2974,  670, 2260, 1721, 2314, 2260,  665,  664,  582,
02895 
02896       582,  664,  666,  667, 1575, 1575, 1575, 1575,  669,  665,
02897       670, 2261, 1723,  613,  666,  667,  581,  582,  582,  581,
02898       669,  664,  670, 2477,  664,  664,  561,  581,  664, 2322,
02899       582,  930,  665,  582,  699, 2326,  665,  666,  667,  582,
02900      2479,  666,  667,  669, 2003,  670, 2232,  669,  582,  670,
02901      1101,  614, 1724,  581, 2974, 2655,  582, 2974, 1725, 1230,
02902      1231, 1230, 1230, 1231, 1230, 1230, 1230, 1230, 1230, 1230,
02903      1230, 1232, 1230, 1230, 1230, 1230, 1233, 1234, 1230,  698,
02904       582, 1728, 1235, 1230, 1236, 1230, 1230, 1230, 2506,  664,
02905       582, 2974,  664,  848, 2974, 2974, 2974, 2974, 2974, 2323,
02906 
02907       665,  664, 2974, 2482,  664,  666,  667, 1230, 1230, 1230,
02908      1230,  669,  665,  670,  848, 2563, 1726,  666,  667,  648,
02909       648,  648,  648,  669,  930,  670,  649,  883,  875,  875,
02910       883,  664,  582, 2457,  664, 2457, 2327, 1230, 1230, 1230,
02911      1230, 1727,  665,  664, 2195,  582,  664,  666,  667,  876,
02912       863,  886,  582,  669,  665,  670, 2231,  582,  664,  666,
02913       667,  664,  582,  823, 1729,  669, 2483,  670,  664,  665,
02914      2974,  664, 1960, 2974,  666,  667, 2191, 2495,  664,  665,
02915       669,  664,  670, 2484,  666,  667,  582, 1730,  664,  665,
02916       669,  664,  670,  582,  666,  667, 2491, 2191,  664,  665,
02917 
02918       669,  664,  670, 2260,  666,  667, 2260, 2485, 2652,  665,
02919       669, 1731,  670,  664,  666,  667,  664, 2487,  582, 1733,
02920       669, 2261,  670, 1962,  665,  664, 1732, 2193,  664,  666,
02921       667, 1601, 1601, 1601, 1601,  669,  665,  670, 2233, 2596,
02922       664,  666,  667,  664,  582, 1960, 1959,  669, 2193,  670,
02923      1734,  665,  664, 1993, 1959,  664,  666,  667, 1735,  582,
02924      2657, 1736,  669,  665,  670, 2603,  582,  664,  666,  667,
02925       664,  582, 1507,  582,  669, 1513,  670,  664,  665, 1512,
02926       664, 1512, 1737,  666,  667, 1738, 1507,  664,  665,  669,
02927       664,  670, 1959,  666,  667,  582, 2616,  664,  665,  669,
02928 
02929       664,  670, 2628,  666,  667, 1739, 2658, 2659,  665,  669,
02930      2499,  670,  613,  666,  667, 2604, 2660,  582, 1740,  669,
02931       664,  670, 1512,  664,  664, 2591, 2592,  664, 2591,  664,
02932       664,  665,  664,  664, 1197,  665,  666,  667, 1741, 1960,
02933       666,  667,  669, 1959,  670, 1959,  669,  664,  670,  582,
02934       664,  669,  669,  670,  670, 1742,  664,  582,  665,  664,
02935       582, 2011, 1743,  666,  667,  582,  582,  665,  582,  669,
02936      2661,  670,  666,  667,  664, 1519, 1744,  664,  669, 1518,
02937       670, 1518, 2500, 2614,  664,  665, 1959,  664, 1101,  664,
02938       666,  667,  664, 2502, 1745,  665,  669, 1101,  670,  664,
02939 
02940       666,  667,  664, 2662,  582, 1101,  669, 1746,  670,  582,
02941       665,  669,  582,  670,  664,  666,  667,  664, 1747,  582,
02942       582,  669, 1518,  670,  664,  665, 1748,  664, 1749, 1101,
02943       666,  667,  582,  582,  614,  665,  669, 1101,  670,  664,
02944       666,  667,  664, 2615, 2620, 2663,  669,  582,  670,  664,
02945       665, 1750,  664,  582,  582,  666,  667, 2631, 2064,  664,
02946       665,  669,  664,  670,  582,  666,  667, 2632, 1751, 1608,
02947       665,  669, 1608,  670,  664,  666,  667,  664, 1101, 1101,
02948      1752,  669, 1509,  670, 1101,  665, 1509, 2629, 1509, 1753,
02949       666,  667,  582, 2664,  971, 1197,  669,  664,  670, 1929,
02950 
02951       664, 2324, 2325, 2325, 2324, 1754,  664, 2619,  665,  664,
02952      2619, 2665, 2666,  666,  667,  664,  613,  665,  664,  669,
02953      2497,  670,  666,  667,  664, 1755,  665,  664,  669, 1509,
02954       670,  666,  667,  664, 1756,  665,  664,  669,  582,  670,
02955       666,  667,  664, 2667,  665,  664,  669, 2668,  670,  666,
02956       667, 2065, 2222,  665, 2065,  669, 2222,  670,  666,  667,
02957      1962, 1961, 1757,  930,  669,  951,  670, 2066, 2067, 1961,
02958       698, 1766, 1766, 1766, 1766, 1502, 1758, 2248, 1767,  749,
02959       750,  991,  749, 2248, 2457, 1759, 2671, 1761,  749,  750,
02960       751,  749, 2672,  732, 1760,  752,  753,  749,  750,  751,
02961 
02962       749,  669, 2673,  670,  752,  753,  664, 1961,  751,  664,
02963       669, 1092,  670,  752,  753,  749,  750,  582,  749,  669,
02964       582,  670,  582, 1771,  749,  750,  751,  749,  669,  582,
02965       670,  752,  753,  750,  750,  751,  750,  669, 2698,  670,
02966       752,  753,  749,  750,  751,  749,  669, 1153,  670,  752,
02967       753, 1768, 2669,  751,  582, 2669, 2674, 1772,  752,  753,
02968       749,  750, 2083,  749,  669, 2699,  670, 2679, 1773, 2700,
02969      2670,  751,  744,  744,  744,  744,  752,  753, 1101,  745,
02970       782, 2701,  669, 2702,  670, 1774, 1696, 1775, 1776, 1696,
02971      1775, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1777, 1696,
02972 
02973      1696, 1696, 1696, 1778, 1779, 1696, 2677,  582, 1295, 1701,
02974      1696, 1702, 1696, 1696, 1696, 2678,  749,  750, 2703,  749,
02975      2709, 1882, 2719, 1780, 1882, 2720,  582,  751,  749,  750,
02976       582,  749,  752,  753, 1696, 1696, 1696, 1696,  669,  751,
02977       670, 1094, 1094, 1883,  752,  753, 1095, 1095, 2617, 2618,
02978       669, 2617,  670, 1960, 1959, 2003, 1096, 1959,  823,  749,
02979       750,  582,  749, 2704, 1696, 1696, 1696, 1696, 1781,  582,
02980       751,  908,  908,  908,  908,  752,  753,  749,  750,  582,
02981       749,  669, 1782,  670, 2680, 2411,  749,  750,  751,  749,
02982      2705, 2426, 2718,  752,  753,  749,  750,  751,  749,  669,
02983 
02984      1959,  670,  752,  753,  749,  750,  751,  749,  669, 1094,
02985       670,  752,  753,  749,  750,  751,  749,  669, 2426,  670,
02986       752,  753, 2591, 2592,  751, 2591,  669,  781,  670,  752,
02987       753, 2291, 2292, 2292, 2291,  669, 2721,  670, 2722, 1962,
02988      2723,  749,  750, 1961,  749, 1961, 1783, 1786,  913, 2724,
02989       749,  750,  751,  749,  582, 1784, 1785,  752,  753,  582,
02990      1787,  751, 2725,  669, 2726,  670,  752,  753,  749,  750,
02991      2727,  749,  669, 2728,  670, 2470, 2470, 2470, 2470,  751,
02992       749,  750, 2471,  749,  752,  753, 1961,  582, 2706, 2729,
02993       669,  751,  670, 1101, 1788, 2730,  752,  753,  749,  750,
02994 
02995      2731,  749,  669, 2732,  670, 2673,  782,  749,  750,  751,
02996       749,  582,  582, 2744,  752,  753,  664, 2744,  751,  664,
02997       669, 2737,  670,  752,  753,  749,  750,  582,  749,  669,
02998      1882,  670, 1295, 1882,  749,  750,  751,  749,  669, 2747,
02999       670,  752,  753, 1789, 2755,  751, 2734,  669, 2747,  670,
03000       752,  753, 1883, 2766, 1790, 1958,  669,  664,  670, 2189,
03001       664, 2767, 1413, 1413, 1413, 1413, 2739,  847,  665,  878,
03002      2768, 2769,  847,  666,  667, 2770, 1791, 1792, 2702,  669,
03003      2189,  670, 2733, 2733,  876, 2733, 1793, 1208, 1306, 1307,
03004      1208, 1794, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1308,
03005 
03006      1208, 1208, 1208, 1208, 1309, 1310, 1208, 2738, 2747,  582,
03007      1213, 1208, 1214, 1208, 1208, 1208, 2779,  749,  750, 2760,
03008       749, 1600, 1601, 1601, 1600, 2555, 2070,  582,  751,  749,
03009       750,  582,  749,  752,  753, 1208, 1208, 1208, 1208,  669,
03010       751,  670,  880, 1993, 1795,  752,  753,  749,  750,  582,
03011       749,  669, 2740,  670, 2533, 2533, 2533, 2533,  751,  749,
03012       750, 2534,  749,  752,  753, 1208, 1208, 1208, 1208,  669,
03013       751,  670, 2773, 1796, 2771,  752,  753,  749,  750, 2561,
03014       749,  669,  823,  670,  582, 1797,  749,  750,  751,  749,
03015      2789, 2790, 2791,  752,  753,  749,  750,  751,  749,  669,
03016 
03017      2792,  670,  752,  753, 2634, 2793,  751, 2634,  669, 2635,
03018       670,  752,  753, 1798, 2788, 1799, 2794,  669, 2795,  670,
03019       749,  750, 2772,  749, 1601, 1601, 1601, 1601, 2635, 2796,
03020      2797,  751,  883,  875,  875,  883,  752,  753, 1413, 1413,
03021      1413, 1413,  669,  782,  670, 1880, 1993, 2707,  749,  750,
03022      2707,  749,  749,  750,  885,  749,  886, 2798, 2266,  751,
03023       876, 1800, 2799,  751,  752,  753,  582, 2266,  752,  753,
03024       669, 2708,  670, 1960,  669,  582,  670, 1959, 2747, 1959,
03025      1801, 1230, 1325, 1326, 1230, 1325, 1230, 1230, 1230, 1230,
03026      1230, 1230, 1230, 1327, 1230, 1230, 1230, 1230, 1328, 1329,
03027 
03028      1230, 1885, 2755, 2800, 1235, 1230, 1236, 1230, 1230, 1230,
03029       781,  749,  750, 2806,  749, 2747, 1807, 1415,  880, 2821,
03030      1959, 2769,  751,  749,  750, 2747,  749,  752,  753, 1230,
03031      1230, 1230, 1230,  669,  751,  670, 2760,  582, 1802,  752,
03032       753, 2470, 2470, 2470, 2470,  669, 2803,  670, 2471,  883,
03033       875,  875,  883,  749,  750, 2822,  749, 2824, 2827, 1230,
03034      1230, 1230, 1230, 1803,  751,  749,  750,  582,  749,  752,
03035       753,  885, 2804,  886, 2827,  669,  751,  670, 2829, 1804,
03036      2839,  752,  753,  749,  750, 2669,  749,  669, 2669,  670,
03037      2974, 2974, 2974, 2974,  751,  749,  750, 2974,  749,  752,
03038 
03039       753, 2805, 1886, 2670, 2840,  669,  751,  670,  582, 2841,
03040      2823,  752,  753, 2823, 2842, 2807, 1805,  669, 2807,  670,
03041      2843, 1806, 2844,  749,  750,  582,  749, 2600, 2600, 2600,
03042      2600, 2794,  749,  750,  751,  749, 2846, 1883,  580,  752,
03043       753,  749,  750,  751,  749,  669, 1809,  670,  752,  753,
03044       664, 1808,  751,  664,  669, 2847,  670,  752,  753,  749,
03045       750,  665,  749,  669, 2825,  670,  666,  667,  749,  750,
03046       751,  749,  669, 2856,  670,  752,  753,  749,  750,  751,
03047       749,  669,  582,  670,  752,  753, 2852,  582,  751, 2069,
03048       669, 2862,  670,  752,  753, 1810,  582,  749,  750,  669,
03049 
03050       749,  670, 1811,  582, 1812, 1101,  582, 2826,  751,  749,
03051       750, 2863,  749,  752,  753, 2275, 2275, 2275, 2275,  669,
03052       751,  670, 2276, 1962, 1961,  752,  753, 1961, 1813,  749,
03053       750,  669,  749,  670, 1815, 2739, 2769, 1814,  749,  750,
03054       751,  749, 2739, 2866, 1192,  752,  753,  749,  750,  751,
03055       749,  669, 2871,  670,  752,  753,  749,  750,  751,  749,
03056       669, 2839,  670,  752,  753,  582, 1295,  751, 1816,  669,
03057      1961,  670,  752,  753,  749,  750, 2807,  749,  669, 2807,
03058       670, 2278, 2872,  749,  750,  751,  749, 2687, 2687, 1101,
03059       752,  753, 1095, 1095,  751, 2279,  669, 1817,  670,  752,
03060 
03061       753, 2873, 2688, 1818, 2874,  669, 2875,  670,  749,  750,
03062      2755,  749, 1819, 2733, 2733, 2809, 2733, 1820, 2809,  751,
03063       749,  750, 2885,  749,  752,  753, 2810, 2747, 2747, 1516,
03064       669,  751,  670, 1516, 1821, 1516,  752,  753, 2855, 2861,
03065      2848, 1928,  669, 2848,  670, 1822,  971,  749,  750, 2809,
03066       749, 2849, 2809, 1823, 2895, 2687,  749,  750,  751,  749,
03067      2810,  582, 1824,  752,  753, 2634, 2896,  751, 2634,  669,
03068      2635,  670,  752,  753,  749,  750, 1516,  749,  669, 2898,
03069       670, 2864, 2747,  749,  750,  751,  749, 1825, 2903, 2635,
03070       752,  753, 2837, 2880,  751, 2837,  669,  582,  670,  752,
03071 
03072       753,  749,  750, 2838,  749,  669, 2865,  670,  582, 2865,
03073       749,  750,  751,  749,  823, 2879, 1295,  752,  753, 2904,
03074      2897,  751, 1826,  669, 2747,  670,  752,  753, 1883, 2794,
03075       749,  750,  669,  749,  670, 2889, 1516, 2794, 2905, 1827,
03076      1516,  751, 1516, 2755, 2920, 2930,  752,  753,  971, 1829,
03077       582,  582,  669, 1929,  670, 2911, 2932, 1295,  749,  750,
03078      2839,  749,  749,  750, 1958,  749, 1828, 2839, 1958,  751,
03079      1958, 2931, 2673,  751,  752,  753,  971, 2746,  752,  753,
03080       669,  971,  670, 1516,  669, 2941,  670,  582,  749,  750,
03081      1830,  749,  749,  750, 2946,  749, 2948,  664, 2865,  751,
03082 
03083       664, 2865, 2950,  751,  752,  753, 2951, 2936,  752,  753,
03084       669, 1958,  670, 2269,  669, 2769,  670,  749,  750,  669,
03085       749,  670, 2956, 1831, 2533, 2533, 2533, 2533,  751, 2960,
03086      2876, 2534, 1832,  752,  753,  749,  750, 2929,  749,  669,
03087      2929,  670, 2929,  781, 1833, 2929,  751, 1289, 1289, 1289,
03088      1289,  752,  753,  883,  875,  875,  883,  669,  740,  670,
03089       883,  875,  875,  883, 2876,  883,  875,  875,  883, 1834,
03090       883,  875,  875,  883, 2560,  885,  582,  886,  883,  875,
03091       875,  883,  885, 2868,  886, 2837, 2868,  885, 2837,  886,
03092      2869, 1962,  876, 2559,  886, 1961, 2838, 1961, 1835,  582,
03093 
03094       885, 2556,  886,  883,  875,  875,  883,  883,  875,  875,
03095       883,  883,  875,  875,  883, 2739, 1884, 1887,  883,  875,
03096       875,  883, 2555, 2853,  582,  885, 2853,  886,  893,  885,
03097      2554,  886,  582,  885, 2747,  886,  893, 2947, 1961, 2969,
03098       885, 2971,  886,  883,  875,  875,  883,  883,  875,  875,
03099       883, 1762,  731,  731, 1762,  883,  875,  875,  883, 1888,
03100       883,  875,  875,  883, 2516,  885, 2508,  886,  582,  885,
03101      2507,  886, 2494,  732, 1891, 1889, 1890,  885, 2868,  886,
03102      2959, 2868,  885, 2900,  886, 2869, 2900,  883,  875,  875,
03103       883, 2367, 2367, 2367, 2367, 2901, 1958, 1958, 2368, 2974,
03104 
03105      1958, 2955, 2974, 1892,  582, 2493, 2974, 1893,  500,  885,
03106       893,  886, 1894,  500, 1574, 1575, 1575, 1574, 1574, 1575,
03107      1575, 1574, 1585, 1080, 1080, 1585,  581, 1086, 2963,  581,
03108       581,  582, 1086,  581, 1082, 2481,  561,  581,  886, 1895,
03109       561,  581,  886, 1958, 1083, 2460,  578,  579,  579,  578,
03110      1578, 1579, 1579, 1578,  582,  582, 2972,  580,  581,  656,
03111       656,  581,  581,  581,  656,  581, 2966,  581,  583,  581,
03112       584, 2370, 2459,  581,  886, 1579, 1579, 1579, 1579, 1578,
03113      1579, 1579, 1578, 2458, 2319, 2924, 2853,  581, 2924, 2853,
03114       581,  581, 2265, 2263,  581,  581, 2758, 2747,  581,  581,
03115 
03116      2454, 1006,  581,  886, 1986, 1986, 1986, 1986, 2854, 2453,
03117      2823, 1582, 2452, 2823, 2973, 1985, 2451, 2973, 1585, 1080,
03118      1080, 1585,  814,  814,  581, 1081, 1083,  814,  581,  991,
03119      1082, 1086, 1762,  731,  731, 1762, 1086, 1586, 1586, 1586,
03120      1083, 1585, 1080, 1080, 1585,  582,  991,  991, 1081, 1595,
03121      1595, 1595, 1595, 1082,  732, 2248, 1596, 2450,  991,  991,
03122      1586, 1586, 1586, 1083, 2036, 2445, 1585, 1080, 1080, 1585,
03123      1473,  561, 1473, 1081, 2974, 2974, 2974, 2974, 1082, 2037,
03124      2444, 2974, 2443,  951, 1085, 1987, 1987, 1987, 1083,  578,
03125       579,  579,  578,  951, 2900,  951, 2974, 2900, 1085,  951,
03126 
03127       580,  581,  951, 2442,  581, 2441, 2901, 2974, 2974, 2974,
03128      2974,  583,  581,  584, 2974, 1597, 2440, 1769, 1769, 1769,
03129      1769, 1085,  930,  930,  930, 1999, 2000, 2000, 1999, 1598,
03130      2000, 2000, 2000, 2000,  930,  930, 2001,  581,  581, 1770,
03131       581, 2001,  581, 2439, 2429,  581, 1085,  583,  581,  886,
03132       819,  819,  583,  581, 2974,  819, 1992, 2428, 1622, 1623,
03133      1623, 1622, 2427, 2426, 2419, 2367, 2367, 2367, 2367, 1624,
03134       581, 2418, 2368,  581,  581, 1623, 1623, 1623, 1623,  581,
03135       583,  581,  886, 2417,  829,  829, 1624,  581,  664,  829,
03136       581,  664,  664, 2416, 2415,  664,  815,  583,  581,  665,
03137 
03138       863,  815,  815,  665,  666,  667,  815,  581,  666,  667,
03139       669,  863,  670,  863,  669,  863,  670, 2954, 2954, 2954,
03140      2954, 2414,  863, 2413,  581, 1607, 2010, 1609, 1609, 2010,
03141      1607, 1607, 1607, 1607, 1607, 1607, 1607, 1610, 1611, 1607,
03142      1607, 1611, 1607, 1607, 1607, 2370, 1962, 1960, 1612, 1611,
03143      1613, 1607, 1607, 1607, 2412, 2071, 2411, 2410, 2409, 2746,
03144      2072,  883,  875,  875,  883, 2762, 1622, 1623, 1623, 1622,
03145      2746, 2746, 2746, 1607, 1607, 1611, 1607, 1624,  581, 2900,
03146      2808,  581, 2900,  876, 2408,  886, 2407, 2406,  583,  581,
03147       886, 2901,  883,  875,  875,  883,  664,  833,  833,  664,
03148 
03149      2405, 2404,  833, 1607, 1607, 1607, 1607,  665, 2600, 2600,
03150      2600, 2600,  666,  667,  885,  581,  886, 2403,  669,  580,
03151       670, 2402, 2015, 1657,  579,  579, 1657,  883,  875,  875,
03152       883, 2746,  823, 2924,  580,  581, 2924, 2359,  581, 2600,
03153      2600, 2600, 2600, 2342, 2758,  583,  581,  886, 2067,  885,
03154       580,  886, 2330, 2329,  664, 2321, 2319,  664,  699,  883,
03155       875,  875,  883,  664, 2924,  665,  664, 2924,  840,  840,
03156       666,  667,  581,  840,  665, 2758,  669, 2036,  670,  666,
03157       667,  885, 1101,  886, 2315,  669, 2313,  670, 2312, 1101,
03158      2210, 2295, 2037, 1230, 1231, 1230, 1230, 1231, 1230, 1230,
03159 
03160      1230, 1230, 1230, 1230, 1230, 1232, 1230, 1230, 1230, 1230,
03161      1233, 1234, 1230,  699,  613, 1101, 1235, 1230, 1236, 1230,
03162      1230, 1230, 2908,  664, 2282, 2908,  664, 2274, 2272, 2209,
03163      2271, 2925, 1197, 2758,  665,  664, 2270, 2268,  664,  666,
03164       667, 1230, 1230, 1230, 1230,  669,  665,  670, 2265, 1976,
03165      2073,  666,  667,  664,  527, 2924,  664,  669, 2924,  670,
03166      2746, 2974, 2746, 2746,  665,  664, 2758, 2746,  664,  666,
03167       667, 1230, 1230, 1230, 1230,  669,  665,  670,  527, 1962,
03168       664,  666,  667,  664, 1960,  915,  915,  669, 2263,  670,
03169       915,  665, 1956, 2074, 1006, 2075,  666,  667,  664, 2258,
03170 
03171      2257,  664,  669, 2256,  670, 2746, 2974, 2746, 2746,  665,
03172       664, 2943, 2746,  664,  666,  667,  883,  875,  875,  883,
03173       669,  665,  670, 2255, 2076,  664,  666,  667,  664, 2254,
03174      2253,  991,  669, 2252,  670, 2077,  665, 2251,  885, 2250,
03175       886,  666,  667, 2078,  991, 2249, 2248,  669, 2908,  670,
03176       664, 2908, 1929,  664, 2681, 2682, 2682, 2681, 1473, 2758,
03177       664,  665, 2079,  664, 2241, 2683,  666,  667,  923,  923,
03178      2080,  665,  669,  923,  670,  664,  666,  667,  664, 2240,
03179      2239, 2214,  669, 2238,  670,  664,  665, 2908,  664, 2237,
03180      2908,  666,  667, 2081,  951, 2236,  665,  669, 2758,  670,
03181 
03182       664,  666,  667,  664,  951, 2235, 1197,  669, 2234,  670,
03183       664,  665, 2225,  664, 2224, 2942,  666,  667, 2223, 2222,
03184      2221,  665,  669, 2082,  670,  664,  666,  667,  664, 2220,
03185      2219, 2218,  669, 2207,  670,  664,  665, 2084,  664,  940,
03186       940,  666,  667, 2205,  940,  698,  665,  669, 2204,  670,
03187       664,  666,  667,  664, 2203, 2202, 2201,  669, 2200,  670,
03188       664,  665, 2199,  664,  863, 2085,  666,  667, 2198, 2197,
03189       664,  665,  669,  664,  670,  863,  666,  667, 2196, 2195,
03190      1519,  665,  669, 1197,  670, 2924,  666,  667, 2924, 1513,
03191       664, 2086,  669,  664,  670, 2187, 2758, 2924, 2186,  664,
03192 
03193      2924,  665,  664, 2087,  944,  944,  666,  667, 2758,  944,
03194       665, 2185,  669, 2184,  670,  666,  667,  664, 2088, 2908,
03195       664,  669, 2908,  670, 2908, 2089, 2183, 2908,  665,  664,
03196      2758, 2182,  664,  666,  667, 2758, 2181, 2958, 2090,  669,
03197       665,  670, 2180, 2091, 2179,  666,  667,  664, 2178, 2746,
03198       664,  669, 2177,  670,  830, 2762,  664,  823,  665,  664,
03199      2746, 2746, 2746,  666,  667, 2953,  753,  665, 2092,  669,
03200      2808,  670,  666,  667,  664, 2952, 2924,  664,  669, 2924,
03201       670, 2124, 1192, 2094, 2093,  665,  664, 2758, 1190,  664,
03202       666,  667, 2957,  667, 2063, 2062,  669,  665,  670, 2095,
03203 
03204      2031,  664,  666,  667,  664, 2025, 1092, 1997,  669, 1994,
03205       670,  664,  665, 1991,  664,  961,  961,  666,  667, 1990,
03206       961, 2746,  665,  669, 2096,  670,  664,  666,  667,  664,
03207      1989, 1559, 1556,  669, 1976,  670,  664,  665, 2098,  664,
03208      1543, 2097,  666,  667,  966,  966, 2962,  665,  669,  966,
03209       670,  664,  666,  667,  664, 1533, 1523, 2099,  669, 1962,
03210       670,  664,  665, 2908,  664, 1519, 2908,  666,  667, 1960,
03211      1513, 2100,  665,  669, 2758,  670,  664,  666,  667,  664,
03212      1511, 1956, 1197,  669, 1951,  670,  664,  665, 1950,  664,
03213       972,  972,  666,  667, 1949,  972,  664,  665,  669,  664,
03214 
03215       670,  991,  666,  667, 1948, 2101,  664,  665,  669,  664,
03216       670, 1947,  666,  667, 1946, 2961, 1945,  665,  669, 1944,
03217       670, 2102,  666,  667,  664, 1943, 1942,  664,  669, 1941,
03218       670,  991, 1940, 2103, 1939,  665, 1289, 1289, 1289, 1289,
03219       666,  667,  664, 1938, 2104,  664,  669,  740,  670,  991,
03220      1937,  664, 2105,  665,  664,  834,  698, 2106,  666,  667,
03221       834,  834,  665, 1473,  669,  834,  670,  666,  667, 1473,
03222      1923,  664, 2107,  669,  664,  670, 2954, 2954, 2954, 2954,
03223       664,  951,  665,  664, 2108,  983,  983,  666,  667, 2848,
03224       983,  665, 2848,  669, 1922,  670,  666,  667,  664, 1921,
03225 
03226      2876,  664,  669, 1920,  670, 2110, 1919, 2109, 1918,  665,
03227       664, 1917,  951,  664,  666,  667, 1766, 1766, 1766, 1766,
03228       669,  665,  670, 1767, 1916, 2111,  666,  667, 1915,  951,
03229       664, 1914,  669,  664,  670, 1004, 1004, 1913,  732, 2112,
03230      1004,  665, 2741, 2742, 2742, 2741,  666,  667, 2742, 2742,
03231      2742, 2742,  669, 2743,  670, 1071, 1071,  930, 1912, 2743,
03232      1071, 2113, 1696, 1697, 1696, 1696, 1697, 1696, 1696, 1696,
03233      1696, 1696, 1696, 1696, 1698, 1696, 1696, 1696, 1696, 2114,
03234      1700, 1696, 1911, 2115, 1910, 1701, 1696, 1702, 1696, 1696,
03235      1696, 2908,  664, 1909, 2908,  664, 1768, 1908, 1907, 2116,
03236 
03237      1280, 1280, 2758,  665,  664, 1280,  930,  664,  666,  667,
03238      1696, 1696, 1696, 1696,  669,  665,  670, 1906, 1412, 1412,
03239       666,  667,  664, 1412, 2924,  664,  669, 2924,  670, 2974,
03240      2974, 2974, 2974,  665,  664, 2758, 2974,  664,  666,  667,
03241      1696, 1696, 1696, 1696,  669,  665,  670, 2117, 1373, 1373,
03242       666,  667, 2118, 1373, 1905,  930,  669, 2119,  670,  664,
03243      1904, 2964,  664, 1903, 1902, 2275, 2275, 2275, 2275, 1197,
03244       665,  664, 2462, 1901,  664,  666,  667, 1900, 1899, 1898,
03245      2120,  669,  665,  670, 1897, 1896,  664,  666,  667,  664,
03246      2965, 1415, 1197,  669, 1414,  670,  664,  665, 1878,  664,
03247 
03248      1084, 1084,  666,  667,  863, 1084, 1877,  665,  669, 2974,
03249       670, 1876,  666,  667, 2974, 2974, 2974, 2974,  669, 1875,
03250       670, 2974,  749,  750, 1874,  749,  749,  750, 1873,  749,
03251      2121, 2464, 1872,  751, 1871, 1870, 2974,  751,  752,  753,
03252       863, 2122,  752,  753,  669, 2279,  670, 1869,  669, 1868,
03253       670, 1867,  699, 1866, 2123,  749,  750,  863,  749,  749,
03254       750, 2125,  749,  842, 1865, 1850,  751, 1849,  842,  842,
03255       751,  752,  753,  842, 1848,  752,  753,  669, 1847,  670,
03256      1846,  669, 1843,  670, 1842,  749,  750, 1841,  749, 2557,
03257      2557, 2557, 2557, 1840, 2974, 2126,  751,  749,  750,  830,
03258 
03259       749,  752,  753, 1986, 1986, 1986, 1986,  669,  751,  670,
03260      1582, 2558, 1836,  752,  753, 2741, 2742, 2742, 2741,  669,
03261       753,  670, 2127,  753, 1287, 1083, 2743, 2128, 1230, 1325,
03262      1326, 1230, 1325, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
03263      1327, 1230, 1230, 1230, 1230, 1328, 1329, 1230, 1192, 1190,
03264       667, 1235, 1230, 1236, 1230, 1230, 1230, 1192, 1190,  782,
03265       883,  875,  875,  883,  749,  750, 2558,  749,  667,  883,
03266       875,  875,  883, 1192, 1684,  751, 1230, 1230, 1230, 1230,
03267       752,  753,  885, 1085,  886, 2129,  669, 1683,  670, 1092,
03268      1599,  885, 1415,  886,  749,  750, 1594,  749,  883,  875,
03269 
03270       875,  883, 1593, 1592, 1591,  751, 1230, 1230, 1230, 1230,
03271       752,  753, 1584, 1076,  749,  750,  669,  749,  670, 1555,
03272       885, 1555,  886,  782, 1519,  751,  749,  750, 2217,  749,
03273       752,  753, 1510, 1513, 1510, 1504,  669,  751,  670,  893,
03274      1006, 1006,  752,  753,  749,  750, 2924,  749,  669, 2924,
03275       670, 1503, 2211,  749,  750,  751,  749, 2758, 1500, 1499,
03276       752,  753, 1496, 1295,  751, 1495,  669, 1494,  670,  752,
03277       753,  749,  750, 1493,  749,  669, 1492,  670,  991, 1491,
03278       749,  750,  751,  749, 1295, 1490, 2130,  752,  753,  749,
03279       750,  751,  749,  669, 1489,  670,  752,  753, 1837, 1837,
03280 
03281       751, 1488,  669, 1837,  670,  752,  753, 1487,  991,  749,
03282       750,  669,  749,  670, 2968, 2131, 1473, 1471, 1470, 1469,
03283       751,  749,  750, 2132,  749,  752,  753, 2745, 1601, 1601,
03284      2745,  669,  751,  670, 2133, 1468,  916,  752,  753, 1465,
03285      2134,  916,  916,  669, 1464,  670,  916,  749,  750, 1602,
03286       749,  749,  750, 1463,  749, 2687, 2687, 2135,  751,  951,
03287      1095, 1095,  751,  752,  753, 1295, 1462,  752,  753,  669,
03288      2688,  670, 1461,  669, 1460,  670,  749,  750, 1459,  749,
03289       749,  750,  951,  749, 2136, 1881, 1881,  751, 1458,  924,
03290      1881,  751,  752,  753,  924,  924,  752,  753,  669,  924,
03291 
03292       670, 1457,  669, 1456,  670,  749,  750, 2083,  749,  749,
03293       750, 1455,  749, 1952, 1952, 1452,  751,  781, 1952, 1451,
03294       751,  752,  753, 2687, 1450,  752,  753,  669, 2137,  670,
03295       930,  669, 1449,  670, 1448,  749,  750, 1447,  749,  749,
03296       750, 1446,  749,  945,  930, 2138,  751, 1445,  945,  945,
03297       751,  752,  753,  945, 1444,  752,  753,  669, 1443,  670,
03298      1442,  669, 1441,  670, 1440,  749,  750, 1439,  749,  749,
03299       750, 1438,  749, 1437, 1415, 2139,  751, 1414, 1295,  882,
03300       751,  752,  753, 2277, 2277,  752,  753,  669, 2277,  670,
03301      1411,  669, 1410,  670,  749,  750, 1409,  749,  749,  750,
03302 
03303      1408,  749, 1407, 2140, 1406,  751, 1403, 2141, 1402,  751,
03304       752,  753, 2420, 2420,  752,  753,  669, 2420,  670, 1401,
03305       669,  863,  670, 2908,  749,  750, 2908,  749,  749,  750,
03306      2142,  749, 1399, 1398, 2758,  751, 1397, 2143, 1396,  751,
03307       752,  753, 1395, 1394,  752,  753,  669, 2144,  670,  863,
03308       669, 1383,  670,  749,  750, 1382,  749,  749,  750, 1377,
03309       749, 1376, 1375, 1374,  751,  830,  965, 2145,  751,  752,
03310       753,  965,  965,  752,  753,  669,  965,  670, 1372,  669,
03311       830,  670, 2147, 1370,  749,  750,  823,  749,  823, 2967,
03312       754, 2146,  984,  749,  750,  751,  749,  984,  984,  753,
03313 
03314       752,  753,  984, 1287,  751, 2148,  669, 1285,  670,  752,
03315       753,  749,  750,  737,  749,  669,  668,  670, 1192, 1190,
03316       749,  750,  751,  749,  667, 2149,  658,  752,  753, 2908,
03317       658,  751, 2908,  669, 1179,  670,  752,  753,  749,  750,
03318      2758,  749,  669,  582,  670, 2151, 1092,  749,  750,  751,
03319       749, 2150,  582, 1091,  752,  753, 1088, 1076,  751,  574,
03320       669,  536,  670,  752,  753,  749,  750, 2152,  749,  669,
03321       530,  670,  527,  815,  749,  750,  751,  749,  815,  815,
03322      2153,  752,  753,  815, 1006,  751, 2746,  669,  495,  670,
03323       752,  753, 2747, 2746, 1295, 1002,  669, 2970,  670, 2746,
03324 
03325      1001,  749,  750, 1000,  749,  993,  990, 2817,  989,  986,
03326       749,  750,  751,  749,  985,  975, 2154,  752,  753,  749,
03327       750,  751,  749,  669,  964,  670,  752,  753,  749,  750,
03328       751,  749,  669,  963,  670,  752,  753, 2155,  960,  751,
03329       959,  669, 2156,  670,  752,  753, 2974, 2974, 2974, 2974,
03330       669,  958,  670, 2974,  954,  953,  749,  750, 2746,  749,
03331      2746,  950,  883,  875,  875,  883, 2157,  751,  949,  948,
03332      2158,  781,  752,  753,  947,  946,  749,  750,  669,  749,
03333       670,  939,  938,  937,  885, 2159,  886,  751, 2160,  933,
03334       932,  929,  752,  753,  749,  750,  928,  749,  669,  927,
03335 
03336       670,  926,  925,  749,  750,  751,  749,  495,  921,  920,
03337       752,  753,  749,  750,  751,  749,  669,  919,  670,  752,
03338       753, 2161,  918,  751,  917,  669, 2974,  670,  752,  753,
03339      2162,  495,  893,  882,  669,  874,  670,  873,  872,  749,
03340       750,  866,  749,  883,  875,  875,  883,  865, 2163,  862,
03341       751,  861,  860,  857,  856,  752,  753,  749,  750,  845,
03342       749,  669, 2164,  670,  838,  885,  837,  886,  751,  749,
03343       750,  836,  749,  752,  753, 2165,  835,  830,  823,  669,
03344       751,  670, 1373,  495,  737,  752,  753,  749,  750,  568,
03345       749,  669,  658,  670, 2213,  655, 1373, 1373,  751,  749,
03346 
03347       750, 1373,  749,  752,  753, 2745, 1601, 1601, 2745,  669,
03348       751,  670, 2166,  658,  658,  752,  753,  657,  655,  749,
03349       750,  669,  749,  670, 2168,  586, 2167, 1993,  574, 2169,
03350       751,  571,  568,  555, 2170,  752,  753,  749,  750,  552,
03351       749,  669,  546,  670,  883,  875,  875,  883,  751,  539,
03352       834,  536, 1295,  752,  753,  834,  834, 2171,  495,  669,
03353       834,  670,  749,  750,  495,  749,  885,  518,  886,  512,
03354       503,  749,  750,  751,  749, 1837,  495, 1295,  752,  753,
03355       749,  750,  751,  749,  669, 2974,  670,  752,  753, 1837,
03356      1837,  751, 2974,  669, 1837,  670,  752,  753, 2974, 2974,
03357 
03358      2212, 2974,  669, 2974,  670, 2974, 2974, 2974, 2172,  883,
03359       875,  875,  883, 2422,  875,  875, 2422, 2742, 2742, 2742,
03360      2742, 2974, 2974, 2845, 2845, 2845, 2845, 2974, 2743, 2974,
03361      2974,  885, 2173,  886, 2431,  885,  782,  886, 2974, 2174,
03362      1230, 1421, 1422, 1422, 1421, 1230, 1230, 1230, 1230, 1230,
03363      1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
03364       884,  884,  884, 1423, 1230, 1424, 1230, 1230, 1230,  884,
03365       884,  884,  884,  884,  884,  884,  884,  884,  884,  884,
03366       884,  884,  884,  884,  884,  884,  884,  884, 1230, 1230,
03367      1230, 1230,  884,  884,  884,  884,  884, 2208,  884,  884,
03368 
03369       884,  884,  884,  884,  884,  884,  884,  884,  884,  884,
03370       884,  884,  884,  884,  884,  884,  884,  884, 1230, 1230,
03371      1230, 1230,  883,  875,  875,  883,  883,  875,  875,  883,
03372      2974, 2828, 1601, 1601, 2828, 2974,  883,  875,  875,  883,
03373       578,  579,  579,  578,  885, 2974,  886, 2974,  885, 2974,
03374       886,  580,  581, 1602,  664,  581, 2269,  664,  885, 2974,
03375       886, 2974,  583,  581,  584,  665, 2845, 2845, 2845, 2845,
03376       666,  667, 2465, 2466, 2466, 2465,  669, 2431,  670, 2974,
03377      2215, 2974, 2974,  580, 2746, 2974, 2746, 2746, 2421,  581,
03378      2974, 2746, 2974, 2974, 1993, 2331, 2216, 1230, 1230, 1230,
03379 
03380      1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
03381      1230, 1230, 1230, 1230, 1230, 1230, 1230,  984,  984,  984,
03382      1230, 1230, 1230, 1230, 1230, 1230,  984,  984,  984,  984,
03383       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
03384       984,  984,  984,  984,  984, 1230, 1230, 1230, 1230,  984,
03385       984,  984,  984,  984, 2247,  984,  984,  984,  984,  984,
03386       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
03387       984,  984,  984,  984,  984, 1230, 1230, 1230, 1230, 1585,
03388      1080, 1080, 1585,  842, 2974, 2974, 1081, 2974,  842,  842,
03389      2974, 1082, 1952,  842, 2974, 2974, 2974, 2974, 1987, 1987,
03390 
03391      1987, 1083, 1585, 1080, 1080, 1585, 1952, 1952, 2974, 1081,
03392      2974, 1952, 2974, 2974, 1082, 1999, 2000, 2000, 1999, 2974,
03393      2974, 1586, 1586, 1586, 1083, 2974, 2001,  581, 2974, 2974,
03394       581, 2000, 2000, 2000, 2000, 2974, 2420,  583,  581,  886,
03395      2974,  664, 2001,  581,  664,  664,  581, 2974,  664, 2974,
03396      2420, 2420,  665,  583,  581, 2420,  665,  666,  667, 1085,
03397      2974,  666,  667,  669,  581,  670, 2974,  669, 2974,  670,
03398      2466, 2466, 2466, 2466, 2974, 2974, 2845, 2845, 2845, 2845,
03399       581,  580, 1085,  578,  579,  579,  578, 2431, 2974, 2974,
03400      2974, 2974, 1993,  664,  580,  581,  664,  664,  581, 2974,
03401 
03402       664, 2333, 2974, 2974,  665,  583,  581,  584,  665,  666,
03403       667, 2974, 2332,  666,  667,  669, 2974,  670, 2974,  669,
03404      2974,  670, 2944, 2600, 2944, 2944, 2974, 2974, 2974, 2974,
03405      2974, 2974,  581, 2758, 2974, 2974, 2974, 2974, 2974, 2273,
03406      1607, 2285, 1609, 1609, 2285, 1607, 1607, 1607, 1607, 1607,
03407      1607, 1607, 1610, 1611, 1607, 1607, 1611, 1607, 1607, 1607,
03408      2347, 2974, 2337, 1612, 1611, 1613, 1607, 1607, 1607, 2974,
03409      2974, 2974,  883,  875,  875,  883,  664, 2974, 2974,  664,
03410       883,  875,  875,  883, 2974, 2974, 2974,  665, 1607, 1607,
03411      1611, 1607,  666,  667,  885, 2974,  886, 2974,  669, 2974,
03412 
03413       670, 2974,  885, 2974,  886,  883,  875,  875,  883, 2275,
03414      2275, 2275, 2275, 2974, 2974, 2974, 2462, 2974, 1607, 1607,
03415      1607, 1607, 2290, 2000, 2000, 2290, 2974,  885, 2334,  886,
03416      2974, 2974,  664, 2001,  581,  664,  893,  581, 2974, 2974,
03417      2974, 2974,  893,  665,  583,  581,  886, 2974,  666,  667,
03418       664, 2974, 2974,  664,  669, 2974,  670, 2974, 2974, 2974,
03419       893,  665, 2974, 2974, 2974, 2974,  666,  667, 2974, 2974,
03420      2974,  581,  669,  916,  670, 2464, 2036, 2974,  916,  916,
03421      2974, 2974, 2974,  916, 2335, 2974, 2974, 2974, 2974, 2279,
03422      2974, 2037, 1112, 1113, 1114, 1114, 1113, 1112, 1112, 1112,
03423 
03424      1112, 1112, 1112, 1112, 1115, 1116, 1112, 1112, 1116, 1112,
03425      1112, 1112, 2974, 2338, 2974, 1117, 1116, 1118, 1112, 1112,
03426      1112, 2974, 2437, 2974, 2465, 2466, 2466, 2465, 2974, 2974,
03427       883,  875,  875,  883,  664,  580, 2974,  664, 2974, 2974,
03428      1112, 1112, 1116, 1112,  664,  665, 1602,  664, 2468, 2974,
03429       666,  667,  885, 2974,  886,  665,  669, 2974,  670,  924,
03430       666,  667,  614, 2974,  924,  924,  669, 2974,  670,  924,
03431      1112, 1112, 1112, 1112, 1696, 1697, 1696, 1696, 1697, 1696,
03432      1696, 1696, 1696, 1696, 1696, 1696, 1698, 1696, 1696, 1696,
03433      1696, 1699, 1700, 1696, 2339, 2423, 2974, 1701, 1696, 1702,
03434 
03435      1696, 1696, 1696, 2974, 2974, 2777, 2777,  945, 2974, 1197,
03436      1095, 1095,  945,  945, 2974, 2974,  664,  945, 2974,  664,
03437      2778, 2974, 1696, 1696, 1696, 1696, 2336,  665, 2974, 2974,
03438      2974, 2974,  666,  667,  664, 2974, 2974,  664,  669, 2974,
03439       670, 2974, 2974, 2974, 2974,  665,  664, 2974, 2974,  664,
03440       666,  667, 1696, 1696, 1696, 1696,  669,  665,  670, 2974,
03441      2974, 2974,  666,  667,  664, 2974, 2974,  664,  669, 2974,
03442       670, 2974, 1197, 2777, 2974,  665, 2746, 2974, 2746, 2746,
03443       666,  667,  664, 2746, 2974,  664,  669, 2974,  670, 2974,
03444       698,  664, 2974,  665,  664, 2974, 2974, 2974,  666,  667,
03445 
03446      2340, 2974,  665, 2974,  669, 2974,  670,  666,  667,  664,
03447      2974,  965,  664,  669, 2974,  670,  965,  965, 2343,  664,
03448       665,  965,  664, 2974, 2974,  666,  667, 2974, 2974,  664,
03449       665,  669,  664,  670, 2974,  666,  667, 1197, 2974, 2974,
03450       665,  669, 2892,  670, 2974,  666,  667, 2974, 2974,  664,
03451      2974,  669,  664,  670, 2974, 2974, 2746, 2974, 1476,  664,
03452       665, 1197,  664, 1476, 1476,  666,  667, 2974, 1476, 2344,
03453       665,  669, 2974,  670, 2974,  666,  667,  664, 2974, 2974,
03454       664,  669, 2974,  670, 2974, 1197,  984,  664,  665, 1197,
03455       664,  984,  984,  666,  667, 2974,  984, 2974,  665,  669,
03456 
03457      2974,  670,  664,  666,  667,  664, 2974, 2974, 2974,  669,
03458      2974,  670, 2974,  665, 2345, 2974, 2974,  664,  666,  667,
03459       664, 2974, 2346, 2974,  669, 2974,  670,  664,  665, 2974,
03460       664, 2974, 2974,  666,  667, 2974, 2974,  664,  665,  669,
03461       664,  670, 2974,  666,  667, 2974, 2974, 2348,  665,  669,
03462      2974,  670,  664,  666,  667,  664, 2974,  698, 2974,  669,
03463      2974,  670,  664,  665, 2974,  664, 2974, 2974,  666,  667,
03464      2974, 2974, 2349,  665,  669,  834,  670, 2350,  666,  667,
03465       834,  834, 2974, 2974,  669,  834,  670,  664, 2974, 2974,
03466       664, 2974, 2557, 2557, 2557, 2557, 2974, 2351,  665, 2974,
03467 
03468      2974, 2974,  664,  666,  667,  664, 2353, 2352, 2974,  669,
03469      2974,  670,  664,  665, 2558,  664, 1197, 2974,  666,  667,
03470      2974, 2974,  664,  665,  669,  664,  670, 2974,  666,  667,
03471      2974, 2974, 2974,  665,  669, 2974,  670,  664,  666,  667,
03472       664, 2974, 2974, 2974,  669,  842,  670, 2974,  665,  664,
03473       842,  842,  664,  666,  667,  842, 2974, 2354, 2355,  669,
03474       665,  670, 2974, 2974,  664,  666,  667,  664, 1197, 2558,
03475      2974,  669, 2974,  670,  664,  665, 2974,  664, 2974, 2974,
03476       666,  667, 2974, 2974, 2974,  665,  669,  699,  670, 2974,
03477       666,  667,  698, 2974,  664, 2974,  669,  664,  670, 2974,
03478 
03479      2828, 1601, 1601, 2828, 2974,  665, 2974, 2974, 2974,  664,
03480       666,  667,  664, 2974, 2974, 2974,  669, 2974,  670,  698,
03481       665, 1197, 1993, 2974,  664,  666,  667,  664, 2356, 2974,
03482      2974,  669, 2974,  670,  664,  665, 2974,  664, 2974, 2974,
03483       666,  667, 2974, 2974,  664,  665,  669,  664,  670, 2974,
03484       666,  667,  698, 2974, 2974,  665,  669, 2974,  670, 2974,
03485       666,  667, 2974, 2974,  664, 2974,  669,  664,  670,  883,
03486       875,  875,  883,  664, 2974,  665,  664, 2974, 2974, 1197,
03487       666,  667, 2974,  699,  665, 2974,  669, 2974,  670,  666,
03488       667,  885, 2974,  886, 2974,  669, 2358,  670, 2974, 2974,
03489 
03490      2974, 2974, 2357, 1208, 1209, 1208, 1208, 1209, 1208, 1208,
03491      1208, 1208, 1208, 1208, 1208, 1210, 1208, 1208, 1208, 1208,
03492      1211, 1212, 1208, 2974, 2360, 2362, 1213, 1208, 1214, 1208,
03493      1208, 1208,  916,  664, 2974, 2974,  664,  916,  916,  893,
03494      2974, 2974,  916, 2974,  665,  664, 2974, 2974,  664,  666,
03495       667, 1208, 1208, 1208, 1208,  669,  665,  670, 2974, 2974,
03496      2974,  666,  667,  664, 2974, 2974,  664,  669, 2974,  670,
03497      2974, 2974, 2974,  699,  665,  664, 2974, 2974,  664,  666,
03498       667, 1208, 1208, 1208, 1208,  669,  665,  670, 2974, 2361,
03499       664,  666,  667,  664, 2974, 2974, 2974,  669,  924,  670,
03500 
03501      1197,  665,  664,  924,  924,  664,  666,  667,  924, 2974,
03502      2974, 2974,  669,  665,  670, 2974, 2974, 2974,  666,  667,
03503       749,  750, 2974,  749,  669, 2974,  670, 2364, 2363, 2974,
03504      2974,  751,  749,  750, 2974,  749,  752,  753, 2974, 2974,
03505      2974,  945,  669,  751,  670, 2974,  945,  945,  752,  753,
03506      2365,  945, 2974, 2366,  669, 2974,  670,  749,  750, 2974,
03507       749, 2371, 2974, 2974, 2974, 2974,  749,  750,  751,  749,
03508      2974, 2974, 2974,  752,  753,  749,  750,  751,  749,  669,
03509      2974,  670,  752,  753,  749,  750,  751,  749,  669, 2974,
03510       670,  752,  753,  749,  750,  751,  749,  669, 2974,  670,
03511 
03512       752,  753, 2974, 2372,  751, 2974,  669, 2974,  670,  752,
03513       753, 2974, 2974, 2373, 2974,  669, 2974,  670, 2374,  749,
03514       750, 2974,  749,  749,  750, 2974,  749, 2375, 2974, 2974,
03515       751, 2974, 1476, 2974,  751,  752,  753, 1476, 1476,  752,
03516       753,  669, 1476,  670, 2974,  669, 2974,  670, 2974, 2376,
03517       749,  750, 2974,  749,  749,  750, 2377,  749,  984, 2974,
03518      2974,  751, 2974,  984,  984,  751,  752,  753,  984, 2974,
03519       752,  753,  669, 2974,  670, 1295,  669, 2974,  670,  781,
03520      2974, 2974, 2974, 2974, 2974, 2974,  749,  750, 2974,  749,
03521       749,  750, 2974,  749, 2777, 2777, 2974,  751, 2974, 1095,
03522 
03523      1095,  751,  752,  753, 2378, 2974,  752,  753,  669, 2778,
03524       670, 2974,  669, 2974,  670, 2974, 2974, 2974, 2974, 1295,
03525      1696, 1775, 1776, 1696, 1775, 1696, 1696, 1696, 1696, 1696,
03526      1696, 1696, 1777, 1696, 1696, 1696, 1696, 1778, 1779, 1696,
03527      2380, 2974, 2974, 1701, 1696, 1702, 1696, 1696, 1696, 2974,
03528       749,  750, 2974,  749,  883,  875,  875,  883, 2974, 2974,
03529      1295,  751, 2777, 2974, 2974, 2974,  752,  753, 1696, 1696,
03530      1696, 1696,  669, 2974,  670, 2974,  885, 2974,  886, 2974,
03531       749,  750, 2974,  749, 2379, 2974, 2974, 2746, 2974, 2746,
03532      2746,  751,  749,  750, 2746,  749,  752,  753, 1696, 1696,
03533 
03534      1696, 1696,  669,  751,  670, 1295, 2974, 2974,  752,  753,
03535       749,  750,  893,  749,  669, 2974,  670, 2974, 2974,  749,
03536       750,  751,  749, 2974, 2974, 2974,  752,  753,  749,  750,
03537       751,  749,  669, 2974,  670,  752,  753, 2974, 2974,  751,
03538      2381,  669, 2974,  670,  752,  753, 2974, 2974,  749,  750,
03539       669,  749,  670, 2922, 2974, 2974, 2974,  749,  750,  751,
03540       749, 2974, 1295, 2974,  752,  753, 1295, 2746,  751, 2974,
03541       669, 2974,  670,  752,  753, 2974, 2974,  749,  750,  669,
03542       749,  670, 2974, 2974, 2382, 2974,  749,  750,  751,  749,
03543      2974, 2383, 2974,  752,  753,  749,  750,  751,  749,  669,
03544 
03545      2974,  670,  752,  753, 2974, 2974,  751, 2974,  669, 2974,
03546       670,  752,  753,  749,  750, 2384,  749,  669, 2974,  670,
03547      2974, 2974,  749,  750,  751,  749,  834, 2385, 2974,  752,
03548       753,  834,  834,  751, 2974,  669,  834,  670,  752,  753,
03549      2974, 2974,  749,  750,  669,  749,  670,  781, 2974, 2974,
03550      2974,  749,  750,  751,  749, 2387, 2386, 2974,  752,  753,
03551       749,  750,  751,  749,  669, 2974,  670,  752,  753,  749,
03552       750,  751,  749,  669, 2974,  670,  752,  753,  749,  750,
03553       751,  749,  669, 2388,  670,  752,  753,  749,  750,  751,
03554       749,  669, 2389,  670,  752,  753, 2390, 2974,  751, 2974,
03555 
03556       669, 2974,  670,  752,  753, 1295, 2974,  749,  750,  669,
03557       749,  670, 2974, 2974, 2974, 2974,  749,  750,  751,  749,
03558      2974, 2974, 2974,  752,  753, 1295, 2974,  751, 2974,  669,
03559      2391,  670,  752,  753,  749,  750, 2974,  749,  669, 2974,
03560       670, 2974,  781,  782, 2974,  751,  749,  750, 2974,  749,
03561       752,  753, 2746, 2974, 2746, 2746,  669,  751,  670, 2746,
03562      2974, 2974,  752,  753, 2974, 2974, 2974, 2974,  669, 2974,
03563       670, 2974, 2974, 1295, 2746,  749,  750,  781,  749,  749,
03564       750, 2974,  749, 2974, 2974, 2974,  751, 2974, 1295, 2974,
03565       751,  752,  753, 2974, 2974,  752,  753,  669, 2974,  670,
03566 
03567      2974,  669, 2974,  670,  781,  749,  750, 2974,  749,  749,
03568       750, 2974,  749, 2974, 2974, 2974,  751, 2974, 2814, 2222,
03569       751,  752,  753, 2974, 2974,  752,  753,  669, 2974,  670,
03570      2974,  669, 2746,  670, 2974, 2974,  749,  750,  782,  749,
03571      2974, 2974, 2974, 2974, 2974, 1295, 2974,  751,  749,  750,
03572      2974,  749,  752,  753, 2974, 2974, 2974,  842,  669,  751,
03573       670, 2393,  842,  842,  752,  753, 2974,  842, 2974, 2974,
03574       669, 2974,  670, 2392, 1208, 1306, 1307, 1208, 1306, 1208,
03575      1208, 1208, 1208, 1208, 1208, 1208, 1308, 1208, 1208, 1208,
03576      1208, 1309, 1310, 1208, 2974, 2974, 2394, 1213, 1208, 1214,
03577 
03578      1208, 1208, 1208, 2974, 2395, 2974,  883,  875,  875,  883,
03579       749,  750, 2974,  749,  883,  875,  875,  883, 2974, 2974,
03580      2974,  751, 1208, 1208, 1208, 1208,  752,  753,  885, 2974,
03581       886, 2974,  669, 2974,  670, 2974,  885, 2974,  886, 2974,
03582       749,  750, 2974,  749,  782, 2974, 2974, 2974, 2974, 2974,
03583      2974,  751, 1208, 1208, 1208, 1208,  752,  753,  749,  750,
03584      2974,  749,  669, 2974,  670, 1295, 2424,  749,  750,  751,
03585       749,  916, 2974, 2974,  752,  753,  916,  916,  751,  893,
03586       669,  916,  670,  752,  753,  749,  750, 2974,  749,  669,
03587      2974,  670, 2396, 2974, 2974, 2974,  751,  908,  908,  908,
03588 
03589       908,  752,  753, 2974, 2974,  749,  750,  669,  749,  670,
03590       883,  875,  875,  883, 2974, 2974,  751, 2974, 2974, 2398,
03591       945,  752,  753, 2397, 2974,  945,  945,  669, 2974,  670,
03592       945, 2974,  885, 2974,  886, 2430, 2430, 2430, 2430, 2974,
03593      2974, 2974, 2974, 2974, 2974, 2399, 2531, 2531, 2531, 2531,
03594      2974, 2446, 2974, 2974, 2974, 2974, 2400,  740, 2431, 2974,
03595      2431, 2425, 2974, 2447, 2974, 2974, 2448, 2974, 1770, 2449,
03596       578,  579,  579,  578,  913, 2974, 2465, 2466, 2466, 2465,
03597      2974,  580,  581, 2974, 2974,  581, 2974,  580, 2974, 2432,
03598      2974, 2974,  583,  581,  584, 2974, 2974, 2974, 1602, 2438,
03599 
03600      2468, 2433, 2974, 2974, 2434, 2435, 2974, 2436, 2422,  875,
03601       875, 2422,  913, 2974, 2974, 2974, 2974, 2974, 2974,  581,
03602      2974,  984,  578,  579,  579,  578,  984,  984, 2974, 2974,
03603       876,  984,  886,  580,  581, 2974, 2974,  581, 2461, 2476,
03604      2000, 2000, 2476, 2469,  583,  581,  584, 2974, 2974, 2974,
03605      2001,  581, 2974, 2473,  581, 2974, 2974, 2291, 2292, 2292,
03606      2291,  583,  581,  886, 2974, 2974, 2974, 2974,  580,  581,
03607      2974,  581,  581, 2531, 2531, 2531, 2531,  834, 2974,  583,
03608       581,  886,  834,  834,  740, 2974, 2974,  834,  581, 2290,
03609      2000, 2000, 2290,  842, 2974, 1770, 2974,  743,  842,  842,
03610 
03611      2001,  581, 2974,  842,  581, 2974,  581, 2292, 2292, 2292,
03612      2292,  583,  581,  886, 2974, 2974, 2974,  664,  580,  581,
03613       664, 2974,  581,  883,  875,  875,  883, 2974,  665,  583,
03614       581, 1094, 1094,  666,  667, 2974, 1095, 1095,  581,  669,
03615      2974,  670, 2974, 2036,  924,  885, 1096,  886, 2509,  924,
03616       924, 2974, 2974, 2974,  924, 2974,  581, 2974, 2037, 1607,
03617      2492, 1609, 1609, 2492, 1607, 1607, 1607, 1607, 1607, 1607,
03618      1607, 1610, 1611, 1607, 1607, 1611, 1607, 1607, 1607, 2568,
03619      2974, 2974, 1612, 1611, 1613, 1607, 1607, 1607, 2974, 2974,
03620      2974, 2974, 2974, 2974,  883,  875,  875,  883, 2974, 1094,
03621 
03622      2503, 2504, 2504, 2503, 2974, 2974, 2974, 1607, 1607, 1611,
03623      1607, 2001,  581, 2974, 2974,  581,  885, 2974,  886, 2974,
03624      2974, 2974,  583,  581,  886, 2974,  883,  875,  875,  883,
03625      2504, 2504, 2504, 2504, 2974, 2974, 2974, 1607, 1607, 1607,
03626      1607, 2001,  581, 2974,  664,  581, 2974,  664,  885,  581,
03627       886, 2974,  583,  581, 2974,  665,  664, 2569, 2974,  664,
03628       666,  667, 2974, 2974, 2974, 2505,  669,  665,  670, 2974,
03629      2974, 2974,  666,  667,  664, 2974, 2974,  664,  669,  581,
03630       670,  893,  945,  664, 2974,  665,  664,  945,  945, 2974,
03631       666,  667,  945, 2974,  665, 2505,  669, 2974,  670,  666,
03632 
03633       667,  664, 2974, 2974,  664,  669, 2974,  670, 2510, 2974,
03634       664, 2974,  665,  664, 2974, 2974, 2974,  666,  667,  664,
03635      2974,  665,  664,  669, 1197,  670,  666,  667, 2511, 2974,
03636       665, 2974,  669, 2974,  670,  666,  667, 2974, 2974, 2974,
03637      2974,  669,  664,  670, 2974,  664,  664, 2974,  698,  664,
03638      2974, 2974, 2974,  665, 2974, 2512, 2974,  665,  666,  667,
03639      2974, 2974,  666,  667,  669, 2974,  670, 2974,  669,  664,
03640       670, 2974,  664, 2818, 1601, 2819, 2818, 2974, 2974, 2974,
03641       665, 2513, 2974, 2974, 2747,  666,  667,  664, 2974,  699,
03642       664,  669, 2974,  670, 2974, 2820, 2514,  664,  665, 2974,
03643 
03644       664, 2974, 2974,  666,  667, 2974, 2515,  664,  665,  669,
03645       664,  670, 2974,  666,  667, 2974, 2974,  664,  665,  669,
03646       664,  670, 2974,  666,  667, 2974, 2974, 2974,  665,  669,
03647      2974,  670,  664,  666,  667,  664, 2974, 2974, 2974,  669,
03648      2974,  670, 2974,  665,  699, 2974,  699,  664,  666,  667,
03649       664, 1197, 2974, 2974,  669, 2974,  670, 2974,  665, 2517,
03650      2974, 2974, 2974,  666,  667,  664, 2974, 2974,  664,  669,
03651      2974,  670, 2974, 1197,  664, 2974,  665,  664, 2974, 2974,
03652      2974,  666,  667,  664, 2518,  665,  664,  669, 2974,  670,
03653       666,  667,  664, 2974,  665,  664,  669, 2974,  670,  666,
03654 
03655       667,  664, 2974,  665,  664,  669, 2974,  670,  666,  667,
03656       664, 2974,  665,  664,  669, 1197,  670,  666,  667,  664,
03657      2974,  665,  664,  669, 2974,  670,  666,  667, 2974, 2520,
03658       665, 2519,  669, 2974,  670,  666,  667, 2974, 2974,  984,
03659      2974,  669, 2974,  670,  984,  984, 2974, 2974, 1197,  984,
03660      2974, 1197,  664, 2974, 2974,  664,  664, 2974, 2974,  664,
03661      2974, 2974, 2974,  665, 2974, 2974, 2522,  665,  666,  667,
03662      2974, 2521,  666,  667,  669, 2974,  670, 2974,  669, 2974,
03663       670, 2974, 2974, 2974, 2974, 2974, 2974, 2523, 1696, 1697,
03664      1696, 1696, 1697, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
03665 
03666      1698, 1696, 1696, 1696, 1696, 1699, 1700, 1696, 2974, 2974,
03667      2974, 1701, 1696, 1702, 1696, 1696, 1696, 2974, 2525, 2974,
03668      2974,  883,  875,  875,  883, 2974, 2526, 2974, 2974, 2974,
03669       664, 2974, 2974,  664, 2974, 2974, 1696, 1696, 1696, 1696,
03670      2524,  665, 2974,  885, 2974,  886,  666,  667,  664, 2974,
03671      2974,  664,  669, 2974,  670, 2974, 2974, 2974, 2974,  665,
03672       664, 2974, 2974,  664,  666,  667, 1696, 1696, 1696, 1696,
03673       669,  665,  670, 2974, 2974, 2974,  666,  667,  664, 2974,
03674      2974,  664,  669, 2974,  670, 2974, 2527,  664, 2974,  665,
03675       664,  893, 2974, 2974,  666,  667,  664, 2974,  665,  664,
03676 
03677       669, 2974,  670,  666,  667, 1197, 2974,  665, 2974,  669,
03678      2974,  670,  666,  667,  664, 2974,  834,  664,  669, 2974,
03679       670,  834,  834, 2974, 2528,  665,  834, 2974, 2974, 2974,
03680       666,  667,  749,  750, 2529,  749,  669, 2974,  670, 2974,
03681      2974, 2974, 2974,  751,  749,  750, 2974,  749,  752,  753,
03682      1197, 2974,  842, 2974,  669,  751,  670,  842,  842, 2530,
03683       752,  753,  842, 2536,  749,  750,  669,  749,  670, 2974,
03684      2974, 2974, 2974, 2974, 2974,  751,  749,  750, 2974,  749,
03685       752,  753, 2974, 2974,  698, 2974,  669,  751,  670, 2974,
03686      2974, 2974,  752,  753,  749,  750, 2974,  749,  669, 2974,
03687 
03688       670, 2974, 2974,  749,  750,  751,  749, 2974, 2537, 2974,
03689       752,  753,  749,  750,  751,  749,  669, 2974,  670,  752,
03690       753, 2974, 2974,  751, 2974,  669, 2974,  670,  752,  753,
03691      2538, 2974, 1295, 2974,  669, 2974,  670, 2974,  749,  750,
03692      2974,  749, 2974, 2974, 2974, 2974,  916,  749,  750,  751,
03693       749,  916,  916, 2974,  752,  753,  916, 2974,  751,  781,
03694       669, 2974,  670,  752,  753, 2974, 2746,  749,  750,  669,
03695       749,  670, 2747, 2746, 2539, 2974, 2974, 2974,  751, 2746,
03696      2974, 2974,  782,  752,  753,  749,  750, 2817,  749,  669,
03697      2974,  670, 2974, 2974,  749,  750,  751,  749, 2540, 2974,
03698 
03699      2974,  752,  753,  749,  750,  751,  749,  669, 2974,  670,
03700       752,  753,  749,  750,  751,  749,  669, 2974,  670,  752,
03701       753, 2974,  782,  751, 2974,  669,  782,  670,  752,  753,
03702      2974, 2974,  749,  750,  669,  749,  670, 2974, 2746, 1295,
03703      2746,  749,  750,  751,  749, 2974, 2541, 2974,  752,  753,
03704       749,  750,  751,  749,  669, 2974,  670,  752,  753, 1295,
03705      2974,  751, 2974,  669, 2542,  670,  752,  753,  749,  750,
03706      2974,  749,  669, 2974,  670, 2974, 2974,  749,  750,  751,
03707       749, 2974, 2974, 2974,  752,  753,  749,  750,  751,  749,
03708       669, 2974,  670,  752,  753,  749,  750,  751,  749,  669,
03709 
03710      1295,  670,  752,  753, 2974, 2544,  751, 2543,  669, 2974,
03711       670,  752,  753,  749,  750,  924,  749,  669, 2974,  670,
03712       924,  924, 2974, 2974,  751,  924, 2974, 2974, 2974,  752,
03713       753,  749,  750, 1295,  749,  669, 1295,  670, 2974, 2974,
03714      2974, 2974,  751,  749,  750, 2974,  749,  752,  753, 2974,
03715      2974, 2546, 2974,  669,  751,  670, 2545, 2974, 2974,  752,
03716       753,  749,  750, 2974,  749,  669, 2974,  670, 2974, 2974,
03717       749,  750,  751,  749, 2974, 2974, 2974,  752,  753, 2547,
03718      2974,  751, 2974,  669, 2974,  670,  752,  753, 2974, 2974,
03719      2974, 2974,  669, 2974,  670,  749,  750, 2974,  749, 2549,
03720 
03721      2974, 2548, 2974, 2974,  749,  750,  751,  749, 2974, 2974,
03722      2974,  752,  753,  749,  750,  751,  749,  669, 1295,  670,
03723       752,  753,  749,  750,  751,  749,  669, 2974,  670,  752,
03724       753, 2974, 2974,  751, 2550,  669, 2974,  670,  752,  753,
03725      2430, 2430, 2430, 2430,  669, 2974,  670, 2466, 2466, 2466,
03726      2466, 2551, 2974, 2466, 2466, 2466, 2466, 2974,  580, 2465,
03727      2466, 2466, 2465, 2431,  580, 2431, 2974, 1295,  945, 1993,
03728       580, 2468, 2974,  945,  945, 1993, 2552, 2468,  945,  664,
03729      2974, 1602,  664, 2468, 2974, 2974, 2974, 2974, 2974, 2974,
03730       665, 2974,  781, 2974, 2572,  666,  667, 2465, 2466, 2466,
03731 
03732      2465,  669, 2974,  670, 2974, 2974, 2573, 2974,  580, 2574,
03733      2575, 2974, 2576, 2476, 2000, 2000, 2476,  913, 2974, 1602,
03734      2598, 2468, 2974,  664, 2001,  581,  664, 2974,  581, 2974,
03735      2636, 2974, 2974, 2974,  665,  583,  581,  886,  984,  666,
03736       667, 2974, 2974,  984,  984,  669, 2974,  670,  984, 2974,
03737      2974, 2974, 2974, 2599, 2974, 2974, 2974, 2974, 2974, 2974,
03738      2974, 2974,  581, 2606, 2607, 2608, 2608, 2607, 2606, 2606,
03739      2606, 2606, 2606, 2606, 2606, 2609, 2610, 2606, 2606, 2610,
03740      2606, 2606, 2606, 2974, 2974, 2974, 2611, 2610, 2612, 2606,
03741      2606, 2606, 2974, 1197, 2974, 2974, 2974, 2974, 2974, 2531,
03742 
03743      2531, 2531, 2531, 2974, 2974, 2503, 2504, 2504, 2503, 2974,
03744       740, 2606, 2606, 2610, 2606, 2613, 2001,  581, 2974, 2746,
03745       581, 1770, 2974,  743, 2974, 2762, 2763,  583,  581,  886,
03746      2764, 2764, 2746, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
03747      2765, 2606, 2606, 2606, 2606, 2621, 2000, 2000, 2621, 2974,
03748      2504, 2504, 2504, 2504,  581, 2974, 2001,  581, 2974, 2974,
03749       581, 2001,  581,  664, 2974,  581,  664,  583,  581,  886,
03750      2505, 2746,  583,  581,  665, 2974, 2974, 2762, 2763,  666,
03751       667, 2974, 2764, 2764, 2746,  669,  664,  670, 2974,  664,
03752      2974, 2746, 2765, 2763,  581, 2974, 2974,  665, 2974,  581,
03753 
03754      2974, 2622,  666,  667, 2974, 2623, 2974, 2974,  669,  664,
03755       670, 2974,  664, 2624, 2974, 2505, 2974, 2625,  664, 1197,
03756       665,  664, 2974, 2974, 2974,  666,  667, 2974, 2974,  665,
03757      2974,  669, 2974,  670,  666,  667,  664, 2974, 2637,  664,
03758       669, 2974,  670, 2746, 2974, 2763,  664,  665, 2974,  664,
03759      2974, 2974,  666,  667, 2974, 2974,  664,  665,  669,  664,
03760       670, 2974,  666,  667, 2974,  699, 2974,  665,  669, 2638,
03761       670,  664,  666,  667,  664, 2974, 2974, 2974,  669, 2974,
03762       670,  664,  665, 2974,  664, 2974, 2974,  666,  667, 2974,
03763      2974,  664,  665,  669,  664,  670, 2974,  666,  667, 2974,
03764 
03765      2974,  664,  665,  669,  664,  670, 1197,  666,  667, 1197,
03766      2640,  664,  665,  669,  664,  670, 2974,  666,  667, 2974,
03767      2974, 2974,  665,  669, 2974,  670, 2974,  666,  667,  664,
03768      2974, 2974,  664,  669, 2974,  670, 2974, 1197,  664, 1197,
03769       665,  664, 2974, 2974, 2974,  666,  667, 2641, 2974,  665,
03770      2974,  669, 2974,  670,  666,  667, 2974, 2974, 2974, 2974,
03771       669, 2974,  670,  664, 2974, 2974,  664, 2974, 2974, 1197,
03772      2974, 2974, 2974,  664,  665, 2974,  664, 2974, 2642,  666,
03773       667, 2974, 2974, 2643,  665,  669, 2974,  670,  664,  666,
03774       667,  664, 2974, 2974, 2974,  669, 2974,  670,  664,  665,
03775 
03776      2974,  664, 2974, 2644,  666,  667, 2974, 2974, 2974,  665,
03777       669, 2974,  670,  664,  666,  667,  664, 2974, 2974, 1197,
03778       669, 2974,  670, 2974,  665,  749,  750, 2974,  749,  666,
03779       667, 2974, 2974, 2974, 2974,  669,  751,  670, 2645, 2974,
03780      2974,  752,  753, 2974, 1197, 2974, 2974,  669, 2974,  670,
03781      2974,  749,  750,  698,  749,  749,  750, 2974,  749, 2974,
03782      2974, 2974,  751, 2974, 2974, 2974,  751,  752,  753, 1197,
03783      2974,  752,  753,  669, 2974,  670, 2647,  669, 2974,  670,
03784       749,  750, 2974,  749,  749,  750, 2974,  749, 2974, 2974,
03785      2974,  751, 2974, 2974, 2974,  751,  752,  753, 2974, 2974,
03786 
03787       752,  753,  669, 2974,  670, 2974,  669, 1295,  670, 2974,
03788       749,  750, 2974,  749, 2974, 2974, 2974, 2974, 2974, 2974,
03789      2974,  751, 2974, 2974, 2974, 1295,  752,  753,  749,  750,
03790      2974,  749,  669, 2974,  670, 2974,  782, 2974, 2974,  751,
03791       749,  750, 2974,  749,  752,  753, 2974, 2974, 2974, 2974,
03792       669,  751,  670, 2974, 1295, 2974,  752,  753, 2819, 1601,
03793      2819, 2819,  669, 2974,  670, 2974, 2974,  749,  750, 2747,
03794       749, 2974, 2974, 1295, 2974, 2974,  749,  750,  751,  749,
03795      2860, 2974, 2648,  752,  753,  749,  750,  751,  749,  669,
03796      2974,  670,  752,  753,  749,  750,  751,  749,  669, 2974,
03797 
03798       670,  752,  753, 2974, 2974,  751, 2974,  669, 1295,  670,
03799       752,  753, 2974, 2974,  749,  750,  669,  749,  670, 2974,
03800      2974, 2974, 2974, 1295, 2974,  751,  749,  750, 2974,  749,
03801       752,  753, 2649, 2974, 2974, 2974,  669,  751,  670, 2974,
03802      2974, 2974,  752,  753,  749,  750, 2974,  749,  669, 2974,
03803       670, 2974, 2974, 1295, 2974,  751, 2974, 2974, 2974, 2650,
03804       752,  753,  749,  750, 2974,  749,  669, 2974,  670, 2974,
03805      1295,  749,  750,  751,  749, 2974, 2974, 2974,  752,  753,
03806      2974, 2974,  751, 2974,  669, 2974,  670,  752,  753, 2974,
03807      2974, 2651, 2974,  669, 2974,  670,  883,  875,  875,  883,
03808 
03809      1295, 2466, 2466, 2466, 2466, 2974, 2974, 2974, 2466, 2466,
03810      2466, 2466,  580, 2465, 2466, 2466, 2465,  781,  885,  580,
03811       886, 2974, 2974, 1993,  580, 2468, 2974, 1295, 2974, 2974,
03812      1993, 2974, 2468, 2974, 2974, 1602, 2974, 2468, 2684, 2000,
03813      2000, 2684, 2974, 2000, 2000, 2000, 2000, 2974, 2974, 2001,
03814       581, 2974, 2209,  581, 2001,  581,  664, 2974,  581,  664,
03815       583,  581, 2685, 2974, 2675,  583,  581,  665, 2818, 1601,
03816      2819, 2818,  666,  667, 2974, 2974, 2974, 2974,  669, 2747,
03817       670, 2676, 2974, 2974, 2974, 2780, 2974,  581, 2974, 2974,
03818      2860, 2974,  581, 2689, 2690, 1609, 2691, 2690, 2689, 2689,
03819 
03820      2689, 2689, 2689, 2689, 2689, 2692, 2693, 2689, 2689, 2693,
03821      2689, 2689, 2689, 2694, 2694, 2694, 2695, 2693, 2696, 2689,
03822      2689, 2689, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
03823      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
03824      2694, 2689, 2689, 2693, 2689, 2694, 2694, 2694, 2694, 2694,
03825      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
03826      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
03827      2694, 2689, 2689, 2689, 2689, 2617, 2618,  579, 2617, 2974,
03828      2618, 2618,  579, 2618, 2974, 2974,  580,  581, 2974, 2974,
03829       581,  580,  581, 2974, 2974,  581, 2974,  583,  581,  886,
03830 
03831      2974, 2974,  583,  581, 2619,  579,  579, 2619, 2974, 2974,
03832      2466, 2466, 2466, 2466, 2974,  580,  581, 2974, 2974,  581,
03833       664,  580, 2974,  664,  581, 2974,  583,  581,  886,  581,
03834       664,  665, 1993,  664, 2468, 2974,  666,  667, 2974, 2974,
03835       664,  665,  669,  664,  670, 2974,  666,  667, 2974, 2974,
03836      2974,  665,  669,  581,  670, 2974,  666,  667, 2697, 2710,
03837       664, 2974,  669,  664,  670, 2974, 2974, 2974, 2974,  664,
03838      2974,  665,  664, 2974, 2974, 2974,  666,  667, 2735, 2974,
03839       665, 2974,  669, 2974,  670,  666,  667,  664, 2974, 2974,
03840       664,  669, 2974,  670, 2712, 2974, 2974,  664,  665, 2711,
03841 
03842       664, 2974, 2974,  666,  667, 2974, 2974, 2974,  665,  669,
03843      2974,  670,  664,  666,  667,  664, 1197, 2974, 2974,  669,
03844      2974,  670,  664,  665, 1197,  664, 2974, 2974,  666,  667,
03845      2974, 2974, 2974,  665,  669, 2974,  670, 2974,  666,  667,
03846       749,  750, 2974,  749,  669, 2974,  670, 2974, 2974, 2714,
03847      2974,  751, 2974, 2974, 2974, 2713,  752,  753,  749,  750,
03848      2974,  749,  669, 2974,  670, 2974, 2974,  749,  750,  751,
03849       749, 2974, 2715, 2974,  752,  753, 2974, 2974,  751, 2716,
03850       669, 2974,  670,  752,  753,  749,  750, 2974,  749,  669,
03851      2974,  670, 1197, 2974,  749,  750,  751,  749, 2974, 2974,
03852 
03853      2974,  752,  753, 2974, 2974,  751, 2974,  669, 2974,  670,
03854       752,  753, 2974, 2974, 1295, 2974,  669, 2974,  670, 2974,
03855      2974, 2974, 1295, 2974, 2465, 2466, 2466, 2465, 2684, 2000,
03856      2000, 2684, 2974, 2974, 2974,  580, 2974, 2974,  664, 2001,
03857       581,  664, 2974,  581, 2974, 2717, 1602, 2974, 2468,  665,
03858       583,  581, 2685, 2974,  666,  667, 2748, 2000, 2749, 2748,
03859       669, 2974,  670, 2974, 1295, 2974, 2974, 2750, 2751, 2974,
03860      2974, 2751, 2749, 2000, 2749, 2749, 2736,  581, 2752, 2751,
03861      2753, 2974, 2974, 2754, 2751, 2974, 2974, 2751, 2974, 2974,
03862       664, 2974, 2974,  664, 2752, 2751, 2746, 2974, 2746, 2746,
03863 
03864      2974,  665, 2974, 2746, 2974, 2751,  666,  667, 2781, 2974,
03865      2974, 2974,  669, 2974,  670, 2974, 2974, 2974, 2746, 2974,
03866      2974, 2751, 2746, 2756,  579, 2757, 2756, 2746, 2746, 2746,
03867      2746, 2746, 2746, 2746, 2758, 2751, 2746, 2746, 2751, 2746,
03868      2746, 2746, 2782, 2974, 2974, 2752, 2751, 2759, 2746, 2746,
03869      2746, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2465, 2466,
03870      2466, 2465, 2974, 2774, 2000, 2000, 2774, 2974, 2974,  580,
03871      2746, 2746, 2751, 2746, 2001,  581, 2746, 2974,  581, 2974,
03872      1602, 2974, 2468, 2974, 2974,  583,  581, 2775, 2430, 2430,
03873      2430, 2430, 2974,  664, 2974, 2974,  664, 2974, 2974, 2974,
03874 
03875      2746, 2746, 2746, 2746,  665,  664, 2974, 2974,  664,  666,
03876       667, 2431,  581, 2431, 2974,  669,  665,  670, 2974, 2974,
03877       664,  666,  667,  664, 2974, 2974, 2974,  669, 2802,  670,
03878      2974,  665, 2974, 2974, 2974, 2974,  666,  667, 2974, 2974,
03879       749,  750,  669,  749,  670, 2974, 2974, 2974, 2974, 2783,
03880      2974,  751, 2974, 2974, 2974, 2974,  752,  753, 2575, 2974,
03881       749,  750,  669,  749,  670,  913, 2974, 2974, 2974, 2786,
03882      2974,  751, 2974, 2974, 2784, 2974,  752,  753, 2466, 2466,
03883      2466, 2466,  669, 2974,  670, 2974, 2974, 2974, 2974,  580,
03884      2974, 2974, 2748, 2000, 2749, 2748, 2785, 2974, 2974, 2974,
03885 
03886      1993, 2974, 2468, 2750, 2751, 2974, 2974, 2751, 2974, 2749,
03887      2000, 2749, 2749, 2974, 2752, 2751, 2753, 2974, 2974, 2974,
03888      2754, 2751, 2974, 2974, 2751, 2974, 2974, 2974, 2974, 2974,
03889      2801, 2752, 2751, 2974, 2974, 2974, 2787, 2756,  579, 2757,
03890      2756, 2751, 2757,  579, 2757, 2757, 2974, 2974, 2758, 2751,
03891      2974, 2974, 2751, 2758, 2751, 2974, 2974, 2751, 2751, 2752,
03892      2751, 2753, 2974,  664, 2752, 2751,  664, 2819, 1601, 2819,
03893      2819, 2974, 2974, 2974,  665, 2974, 2974, 2974, 2747,  666,
03894       667, 2974, 2974, 2974, 2974,  669, 2751, 2831, 2974, 2860,
03895      2974, 2751, 2746, 2811, 1595, 2811, 2811, 2746, 2746, 2746,
03896 
03897      2812, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 2746, 2746,
03898      2746, 2746, 2746, 2746, 2746, 2813, 2746, 2746, 2746, 2746,
03899      2746, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
03900      2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
03901      2746, 2746, 2746, 2746, 2814, 2814, 2814, 2814, 2814, 2814,
03902      2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2815,
03903      2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
03904      2746, 2746, 2746, 2816, 2746, 2974, 2974, 2974, 2974, 2974,
03905      2762, 2763, 2974, 2974, 2974, 2764, 2764, 2746, 2774, 2000,
03906      2000, 2774, 2974, 2974, 2974, 2765, 2974, 2974,  664, 2001,
03907 
03908       581,  664,  664,  581, 2974,  664, 2974, 2974, 2974,  665,
03909       583,  581, 2775,  665,  666,  667, 2974, 2974,  666,  667,
03910       669, 2974,  670, 2974,  669,  664,  670, 2974,  664, 2974,
03911      2974, 2974, 2974, 2974, 2830, 2974,  665,  581, 2974, 2974,
03912       664,  666,  667,  664, 2974, 2974, 2746,  669, 2763,  670,
03913       664,  665, 2974,  664, 2974, 2974,  666,  667, 2974, 2974,
03914      2974,  665,  669, 2974,  670, 2974,  666,  667, 2974, 2974,
03915      2974, 2832,  669, 2974,  670,  749,  750, 2974,  749,  908,
03916       908,  908,  908, 2974, 2974, 2974,  751, 2907, 2466, 2908,
03917      2907,  752,  753, 2974, 2974, 2833, 2974,  669, 2876,  670,
03918 
03919      2974,  749,  750, 2974,  749, 2974, 2834, 2974, 2974, 2860,
03920      2781, 2835,  751, 2466, 2466, 2466, 2466,  752,  753, 2465,
03921      2466, 2466, 2465,  669,  580,  670, 2974, 2974, 2974, 2974,
03922       580, 2974, 2974, 2432, 2974, 1993,  664, 2468, 2974,  664,
03923      2974, 1602, 2974, 2468, 2974, 2433, 2974,  665, 2434, 2974,
03924      2974, 2436,  666,  667, 2974, 2974,  913, 2836,  669, 2974,
03925       670, 2974, 2908, 2466, 2908, 2908, 1197, 2974, 2974, 2974,
03926      2974, 2974, 2974, 2758, 2974, 2974, 2974, 2974, 2974, 2974,
03927      2974, 2974, 2974, 2850, 2860, 2851, 2746, 2857,  648, 2857,
03928      2857, 2746, 2746, 2746, 2858, 2746, 2746, 2746, 2747, 2746,
03929 
03930      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
03931      2746, 2746, 2746, 2746, 2746, 2859, 2859, 2859, 2859, 2859,
03932      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
03933      2859, 2859, 2859, 2859, 2746, 2746, 2746, 2746, 2859, 2859,
03934      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
03935      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
03936      2859, 2859, 2859, 2859, 2746, 2746, 2746, 2746,  664, 2974,
03937      2974,  664,  664, 2974, 2974,  664, 2974, 2974, 2974,  665,
03938      2974, 2974, 2974,  665,  666,  667, 2974, 2974,  666,  667,
03939       669, 2974,  670, 2974,  669,  664,  670, 2974,  664, 2974,
03940 
03941      2974, 2974, 2974, 2974,  749,  750,  665,  749, 2974, 2974,
03942      2974,  666,  667,  749,  750,  751,  749,  669, 2974,  670,
03943       752,  753, 2974, 2867,  751, 2974,  669, 2974,  670,  752,
03944       753, 2974, 2974, 2974, 1295,  669, 2974,  670, 2781, 2974,
03945      2848,  579, 2757, 2848, 2974, 2466, 2466, 2466, 2466, 2974,
03946      1197, 2876, 2751, 2974, 2974, 2751,  580, 2974, 2974, 2974,
03947      2974, 2974, 2752, 2751, 2753, 2974, 2974, 1993, 1295, 2468,
03948      2465, 2466, 2466, 2465,  664, 2974, 2974,  664, 2974, 2974,
03949      2974,  580, 2974, 2974,  664,  665, 2974,  664, 2974, 2751,
03950       666,  667, 1602, 2974, 2468,  665,  669, 2974,  670, 2974,
03951 
03952       666,  667, 2924, 2466, 2908, 2924,  669, 2974,  670, 2974,
03953      2974, 2877, 2974, 2758, 2974, 2934, 2466, 2908, 2934, 2974,
03954      2974, 2974, 2974, 2974, 2860, 2974, 2876, 2974, 2899, 2974,
03955      2974, 2974, 2974, 2974, 2974, 2974, 2933, 2860, 2878, 2746,
03956      2881, 1087, 2881, 2881, 2746, 2746, 2746, 2882, 2746, 2746,
03957      2746, 2747, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
03958      2746, 2746, 2813, 2746, 2746, 2746, 2746, 2746, 2883, 2883,
03959      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
03960      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2746, 2746, 2746,
03961      2746, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
03962 
03963      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
03964      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2746, 2746, 2746,
03965      2884, 2746, 2886, 1182, 2887, 2886, 2746, 2746, 2746, 2746,
03966      2746, 2746, 2746, 2758, 2751, 2746, 2746, 2751, 2746, 2746,
03967      2746, 2888, 2888, 2888, 2746, 2751, 2753, 2746, 2746, 2746,
03968      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
03969      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2746,
03970      2746, 2751, 2746, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
03971      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
03972      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2746,
03973 
03974      2746, 2746, 2746, 2746, 2890, 2275, 2890, 2890, 2746, 2746,
03975      2746, 2891, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 2746,
03976      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
03977      2746, 2746, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892,
03978      2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892,
03979      2892, 2746, 2746, 2746, 2746, 2892, 2892, 2892, 2892, 2892,
03980      2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892,
03981      2893, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892,
03982      2892, 2746, 2746, 2746, 2894, 2466, 2466, 2466, 2466, 2886,
03983      1182, 2887, 2886, 2974, 2974, 2974,  580, 2974, 2974, 2974,
03984 
03985      2758, 2751, 2974, 2974, 2751, 2974, 2974, 1993, 2974, 2468,
03986      2974, 2974, 2751, 2753, 2974, 2974, 2974, 2974, 2974, 2974,
03987      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
03988      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2751, 2974,
03989      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
03990      2974, 2974, 2974, 2906, 2746, 2907, 2466, 2908, 2907, 2746,
03991      2746, 2746, 2746, 2746, 2746, 2746, 2849, 2746, 2746, 2746,
03992      2746, 2746, 2746, 2746, 2909, 2909, 2909, 2820, 2746, 2910,
03993      2746, 2746, 2746, 2909, 2909, 2909, 2909, 2909, 2909, 2909,
03994      2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909,
03995 
03996      2909, 2909, 2746, 2746, 2746, 2746, 2909, 2909, 2909, 2909,
03997      2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909,
03998      2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909,
03999      2909, 2909, 2746, 2746, 2746, 2746, 2746, 2746, 2974, 2746,
04000      2746, 2746, 2746, 2746, 2912, 2746, 2746, 2746, 2747, 2746,
04001      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04002      2746, 2746, 2746, 2746, 2746, 2913, 2913, 2913, 2913, 2913,
04003      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
04004      2913, 2913, 2913, 2913, 2746, 2746, 2746, 2746, 2913, 2913,
04005      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
04006 
04007      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
04008      2913, 2913, 2913, 2913, 2746, 2746, 2746, 2746, 2746, 2914,
04009      1575, 2915, 2914, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04010      2747, 2751, 2746, 2746, 2751, 2746, 2746, 2746, 2916, 2916,
04011      2916, 2813, 2751, 2753, 2746, 2746, 2746, 2916, 2916, 2916,
04012      2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916,
04013      2916, 2916, 2916, 2916, 2916, 2916, 2746, 2746, 2751, 2746,
04014      2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916,
04015      2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916,
04016      2916, 2916, 2916, 2916, 2916, 2916, 2746, 2746, 2746, 2746,
04017 
04018      2746, 2917, 1073, 2917, 2917, 2746, 2746, 2746, 2918, 2746,
04019      2746, 2746, 2747, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04020      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2919,
04021      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
04022      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2746, 2746,
04023      2746, 2746, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
04024      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
04025      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2746, 2746,
04026      2746, 2746, 2887, 1182, 2887, 2887, 2974, 2974, 2974, 2974,
04027      2974, 2974, 2974, 2758, 2751, 2974, 2974, 2751, 2974, 2974,
04028 
04029      2974, 2974, 2974, 2974, 2974, 2751, 2974, 2974, 2974, 2974,
04030      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04031      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04032      2974, 2751, 2746, 2890, 2275, 2890, 2890, 2746, 2746, 2746,
04033      2921, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 2746, 2746,
04034      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04035      2746, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922,
04036      2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922,
04037      2746, 2746, 2746, 2746, 2922, 2922, 2922, 2922, 2922, 2922,
04038      2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2923,
04039 
04040      2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922,
04041      2746, 2746, 2746, 2894, 2746, 2926, 2470, 2926, 2926, 2746,
04042      2746, 2746, 2927, 2746, 2746, 2746, 2747, 2746, 2746, 2746,
04043      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04044      2746, 2746, 2746, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
04045      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
04046      2928, 2928, 2746, 2746, 2746, 2746, 2928, 2928, 2928, 2928,
04047      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
04048      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
04049      2928, 2928, 2746, 2746, 2746, 2746, 2746, 2934, 2466, 2908,
04050 
04051      2934, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2849, 2746,
04052      2746, 2746, 2746, 2746, 2746, 2746, 2935, 2935, 2935, 2860,
04053      2746, 2910, 2746, 2746, 2746, 2935, 2935, 2935, 2935, 2935,
04054      2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935,
04055      2935, 2935, 2935, 2935, 2746, 2746, 2746, 2746, 2935, 2935,
04056      2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935,
04057      2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935,
04058      2935, 2935, 2935, 2935, 2746, 2746, 2746, 2746, 2746, 2853,
04059      2974, 2746, 2853, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04060      2747, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2937, 2937,
04061 
04062      2937, 2854, 2746, 2746, 2746, 2746, 2746, 2937, 2937, 2937,
04063      2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
04064      2937, 2937, 2937, 2937, 2937, 2937, 2746, 2746, 2746, 2746,
04065      2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
04066      2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
04067      2937, 2937, 2937, 2937, 2937, 2937, 2746, 2746, 2746, 2746,
04068      2914, 1575, 2915, 2914, 2974, 2915, 1575, 2915, 2915, 2974,
04069      2974, 2747, 2751, 2974, 2974, 2751, 2747, 2751, 2974, 2974,
04070      2751, 2974, 2813, 2751, 2753, 2974, 2974, 2813, 2751, 2974,
04071      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04072 
04073      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2751,
04074      2974, 2974, 2974, 2974, 2751, 2746, 2938, 1579, 2939, 2938,
04075      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2747, 2751, 2746,
04076      2746, 2751, 2746, 2746, 2746, 2940, 2940, 2940, 2746, 2751,
04077      2753, 2746, 2746, 2746, 2940, 2940, 2940, 2940, 2940, 2940,
04078      2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940,
04079      2940, 2940, 2940, 2746, 2746, 2751, 2746, 2940, 2940, 2940,
04080      2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940,
04081      2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940,
04082      2940, 2940, 2940, 2746, 2746, 2746, 2746, 2746, 2944, 2600,
04083 
04084      2944, 2944, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2758,
04085      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2945, 2945, 2945,
04086      2746, 2746, 2746, 2746, 2746, 2746, 2945, 2945, 2945, 2945,
04087      2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945,
04088      2945, 2945, 2945, 2945, 2945, 2746, 2746, 2746, 2746, 2945,
04089      2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945,
04090      2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945,
04091      2945, 2945, 2945, 2945, 2945, 2746, 2746, 2746, 2746,  664,
04092      2974, 2974,  664, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04093       665, 2974, 2974, 2974, 2974,  666,  667, 2938, 1579, 2939,
04094 
04095      2938,  669, 2974,  670, 2939, 1579, 2939, 2939, 2747, 2751,
04096      2974, 2974, 2751, 2974,  664, 2747, 2751,  664, 2974, 2751,
04097      2751, 2753, 2974, 2974, 2974,  665, 2974, 2751, 2974, 2974,
04098       666,  667, 2973,  579,  579, 2973,  669, 2974,  670, 2974,
04099      2974, 2974, 2974,  580,  581, 2974, 2751,  581, 2949, 2974,
04100      2974, 2974, 2974, 2751,  583,  581,  886, 2974, 2974, 2974,
04101      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04102      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04103      2974,  581, 2974, 2974, 2781,   66,   66,   66,   66,   66,
04104        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
04105 
04106        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
04107        66,   66,   66,   66,   75,   75,   75,   75,   75,   75,
04108        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
04109        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
04110        75,   75,   75,   84,   84,   84,   84,   84,   84,   84,
04111        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
04112        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
04113        84,   84,   92,   92,   92,   92,   92,   92,   92,   92,
04114        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
04115        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
04116 
04117        92,  102,  102,  102,  102,  102,  102,  102,  102,  102,
04118       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
04119       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
04120       112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
04121       112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
04122       112,  112,  112,  112,  112,  112,  112,  112,  112,  122,
04123       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
04124       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
04125       122,  122,  122,  122,  122,  122,  122,  122,  131,  131,
04126       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
04127 
04128       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
04129       131,  131,  131,  131,  131,  131,  131,  321,  321,  321,
04130       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
04131       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
04132       321,  321,  321,  321,  321,  321,  500,  500, 2974, 2974,
04133       500, 2974,  500,  500,  500,  500,  500,  500,  500,  500,
04134       500,  500,  500,  500,  500,  500,  500,  500,  500, 2974,
04135       500,  500,  500,  500,  500,  504,  504, 2974,  504,  504,
04136       504,  504,  504,  504,  504,  504,  504,  504,  504,  504,
04137       504,  504,  504,  504,  504,  504,  504,  504,  504,  504,
04138 
04139       504,  504,  504,  504,  509,  509, 2974, 2974,  509,  509,
04140       509, 2974,  509,  509,  509,  509,  509,  509,  509,  509,
04141       509,  509,  509,  509,  509,  509,  509, 2974,  509,  509,
04142       509,  509,  509,  517,  517, 2974,  517,  517, 2974,  517,
04143       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04144       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04145       517,  517,  525,  525,  525,  525,  525,  525,  525,  525,
04146       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04147       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04148       525,  533,  533, 2974,  533,  533,  533,  533,  533,  533,
04149 
04150       533, 2974,  533,  533,  533, 2974,  533,  533,  533,  533,
04151       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
04152       543,  543, 2974, 2974,  543,  543,  543,  543,  543,  543,
04153       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04154       543,  543,  543,  543,  543,  543,  543,  543,  543,  551,
04155       551, 2974,  551,  551,  551,  551,  551,  551,  551, 2974,
04156       551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
04157       551,  551,  551,  551,  551,  551,  551,  551,  564,  564,
04158       564,  564, 2974,  564, 2974, 2974, 2974, 2974, 2974, 2974,
04159      2974, 2974, 2974,  564, 2974, 2974, 2974,  564,  564, 2974,
04160 
04161      2974, 2974,  564, 2974, 2974,  564,  567,  567, 2974,  567,
04162       567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
04163       567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
04164       567,  567,  567,  567,  567,  582,  582,  582,  582, 2974,
04165      2974, 2974,  582,  582, 2974,  582, 2974, 2974, 2974,  582,
04166       582,  582,  582, 2974,  582,  582, 2974, 2974,  582,  582,
04167       650,  650,  650,  650, 2974,  650, 2974, 2974, 2974, 2974,
04168      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  650,
04169       650, 2974, 2974, 2974,  650,  668, 2974, 2974,  668, 2974,
04170      2974, 2974,  668, 2974, 2974, 2974,  668,  668, 2974,  668,
04171 
04172       668, 2974,  668, 2974,  668,  668, 2974, 2974, 2974,  668,
04173       735,  735,  735,  735, 2974,  735, 2974, 2974, 2974, 2974,
04174      2974, 2974, 2974, 2974, 2974,  735, 2974, 2974, 2974,  735,
04175       735, 2974, 2974, 2974,  735, 2974, 2974,  735,  741,  741,
04176       741,  741, 2974, 2974, 2974,  741, 2974, 2974, 2974, 2974,
04177      2974, 2974,  741,  741, 2974,  741, 2974,  741,  741, 2974,
04178      2974, 2974,  741,  746,  746,  746,  746, 2974,  746, 2974,
04179      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04180      2974, 2974,  746,  746, 2974, 2974, 2974,  746,  754,  754,
04181      2974,  754, 2974, 2974, 2974,  754, 2974, 2974, 2974,  754,
04182 
04183       754, 2974,  754,  754, 2974,  754, 2974,  754,  754, 2974,
04184      2974, 2974,  754,  822,  822, 2974, 2974, 2974,  822,  822,
04185      2974, 2974, 2974,  822,  831, 2974,  831, 2974, 2974, 2974,
04186      2974,  831,  831, 2974, 2974, 2974,  831,  847,  847, 2974,
04187       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04188       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04189       847,  847,  847,  847,  847,  847,  879,  879,  879,  879,
04190      2974,  879, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04191      2974,  879, 2974, 2974, 2974,  879,  879, 2974, 2974, 2974,
04192       879, 2974, 2974,  879,  884,  884,  884,  884, 2974, 2974,
04193 
04194      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  884,  884,
04195      2974,  884, 2974,  884,  884, 2974, 2974, 2974,  884,  905,
04196       905,  905,  905, 2974,  905, 2974, 2974, 2974, 2974, 2974,
04197      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  905,  905,
04198      2974, 2974, 2974,  905,  942, 2974, 2974,  942, 2974, 2974,
04199      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  942,  942,
04200      2974, 2974, 2974,  942,  942, 2974, 2974, 2974,  942,  962,
04201       962, 2974,  962, 2974,  962,  962, 2974,  962,  962,  962,
04202       962,  962,  962,  962,  962,  962,  962,  962,  962,  962,
04203       962,  962,  962,  962,  962,  962,  962,  962,  968,  968,
04204 
04205       968,  968, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04206      2974, 2974,  968,  968, 2974, 2974, 2974,  968,  968, 2974,
04207      2974,  968,  968,  971,  971, 2974,  971,  971, 2974, 2974,
04208       971,  971,  971,  971,  971,  971,  971,  971,  971,  971,
04209       971,  971,  971,  971,  971,  971, 2974,  971,  971,  971,
04210       971,  971,  976,  976, 2974,  976,  976, 2974, 2974,  976,
04211       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
04212       976,  976,  976,  976,  976, 2974,  976,  976,  976,  976,
04213       976,  977,  977, 2974,  977,  977,  977,  977,  977,  977,
04214       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
04215 
04216       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
04217      1005, 1005, 2974, 2974, 2974, 1005, 1005, 2974, 2974, 2974,
04218      1005,  500,  500, 2974, 2974,  500, 2974,  500,  500,  500,
04219       500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
04220       500,  500,  500,  500, 2974,  500,  500,  500,  500,  500,
04221       509,  509, 2974, 2974,  509,  509,  509, 2974,  509,  509,
04222       509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
04223       509,  509,  509, 2974,  509,  509,  509,  509,  509,  517,
04224       517, 2974,  517,  517, 2974,  517,  517,  517,  517,  517,
04225       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04226 
04227       517,  517,  517,  517,  517,  517,  517,  517,  525,  525,
04228       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04229       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04230       525,  525,  525,  525,  525,  525,  525,  533,  533, 2974,
04231       533,  533,  533,  533,  533,  533,  533, 2974,  533,  533,
04232       533, 2974,  533,  533,  533,  533,  533,  533,  533,  533,
04233       533,  533,  533,  533,  533,  533,  543,  543, 2974, 2974,
04234       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04235       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04236       543,  543,  543,  543,  543,  551,  551, 2974,  551,  551,
04237 
04238       551,  551,  551,  551,  551, 2974,  551,  551,  551,  551,
04239       551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
04240       551,  551,  551,  551,  582,  582,  582,  582, 2974, 2974,
04241      2974,  582,  582, 2974,  582, 2974, 2974, 2974,  582,  582,
04242       582,  582, 2974,  582,  582, 2974, 2974,  582,  582, 1075,
04243      1075, 1075, 1075, 2974, 1075, 2974, 2974, 2974, 2974, 2974,
04244      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1075, 1075,
04245      2974, 2974, 2974, 1075,  567,  567, 2974,  567,  567,  567,
04246       567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
04247       567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
04248 
04249       567,  567,  567, 1084, 1084, 1084, 1084, 2974, 1084, 2974,
04250      2974, 1084, 1084, 2974, 2974, 2974, 2974, 2974, 1084, 2974,
04251      2974, 2974, 1084, 1084, 2974, 2974, 2974, 1084, 2974, 2974,
04252      1084, 1093, 1093, 2974, 1093, 1093, 2974, 1093, 1093, 1093,
04253      1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 1093, 1093,
04254      1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093,
04255       650,  650,  650,  650, 2974,  650, 2974, 2974, 2974, 2974,
04256      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  650,
04257       650, 2974, 2974, 2974,  650, 1183, 1183, 1183, 1183, 2974,
04258      2974, 2974, 1183, 1183, 2974, 1183, 2974, 2974, 2974, 1183,
04259 
04260      2974, 1183, 1183, 2974, 1183, 1183, 2974, 2974, 1183, 1183,
04261      1186, 2974, 2974, 1186, 2974, 2974, 2974, 2974, 2974, 2974,
04262      2974, 2974, 2974, 2974, 1186, 1186, 2974, 1186, 2974, 1186,
04263      1186, 2974, 2974, 2974, 1186, 1189, 2974, 2974, 1189, 2974,
04264      2974, 2974, 2974, 2974, 1189, 2974, 2974, 2974, 2974, 2974,
04265      2974, 2974, 2974, 2974, 1189, 1189, 2974, 2974, 2974, 1189,
04266       668, 2974, 2974,  668, 2974, 2974, 2974,  668, 2974, 2974,
04267      2974,  668,  668, 2974,  668,  668, 2974,  668, 2974,  668,
04268       668, 2974, 2974, 2974,  668, 1191, 1191, 2974, 1191, 1191,
04269      1191, 1191, 1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191,
04270 
04271      1191, 1191, 1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974,
04272      1191, 2974, 2974, 1191,  741,  741,  741,  741, 2974, 2974,
04273      2974,  741, 2974, 2974, 2974, 2974, 2974, 2974,  741,  741,
04274      2974,  741, 2974,  741,  741, 2974, 2974, 2974,  741, 1283,
04275      1283, 1283, 1283, 2974, 1283, 2974, 2974, 2974, 2974, 2974,
04276      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1283, 1283,
04277      2974, 2974, 2974, 1283, 1286, 1286, 2974, 1286, 1286, 2974,
04278      1286, 1286, 2974, 2974, 1286, 1286, 1286, 1286, 2974, 1286,
04279      1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
04280      2974, 2974, 1286,  746,  746,  746,  746, 2974,  746, 2974,
04281 
04282      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04283      2974, 2974,  746,  746, 2974, 2974, 2974,  746, 1290, 1290,
04284      1290, 1290, 2974, 2974, 2974, 1290, 2974, 2974, 2974, 2974,
04285      2974, 2974, 1290, 2974, 2974, 2974, 2974, 1290, 1290, 2974,
04286      2974, 2974, 1290,  754,  754, 2974,  754, 2974, 2974, 2974,
04287       754, 2974, 2974, 2974,  754,  754, 2974,  754,  754, 2974,
04288       754, 2974,  754,  754, 2974, 2974, 2974,  754,  822,  822,
04289      2974, 2974, 2974,  822,  822, 2974, 2974, 2974,  822,  831,
04290      2974,  831, 2974, 2974, 2974, 2974,  831,  831, 2974, 2974,
04291      2974,  831,  847,  847, 2974,  847,  847,  847,  847,  847,
04292 
04293       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04294       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04295       847,  884,  884,  884,  884, 2974, 2974, 2974, 2974, 2974,
04296      2974, 2974, 2974, 2974, 2974,  884,  884, 2974,  884, 2974,
04297       884,  884, 2974, 2974, 2974,  884,  905,  905,  905,  905,
04298      2974,  905, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04299      2974, 2974, 2974, 2974, 2974,  905,  905, 2974, 2974, 2974,
04300       905, 1094, 1094, 2974, 1094, 1094, 2974, 1094, 1094, 1094,
04301      1094, 1094, 1094, 2974, 2974, 2974, 1094, 1094, 1094, 1094,
04302      1094, 1094, 1094, 1094, 1094, 1094, 1094, 2974, 1094, 1094,
04303 
04304      1436, 2974, 2974, 1436, 2974, 2974, 2974, 2974, 2974, 2974,
04305      2974, 2974, 2974, 2974, 1436, 2974, 2974, 1436, 2974, 1436,
04306      1436, 2974, 2974, 2974, 1436,  942, 2974, 2974,  942, 2974,
04307      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  942,
04308       942, 2974, 2974, 2974,  942,  942, 2974, 2974, 2974,  942,
04309      1472, 1472, 2974, 1472, 2974, 1472, 1472, 1472, 1472, 1472,
04310      1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472,
04311      1472, 1472, 1472, 2974, 1472, 1472, 1472, 1472, 1472, 1474,
04312      1474, 2974, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474,
04313      1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474,
04314 
04315      1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474,  968,  968,
04316       968,  968, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04317      2974, 2974,  968,  968, 2974, 2974, 2974,  968,  968, 2974,
04318      2974,  968,  968,  971,  971, 2974,  971,  971, 2974, 2974,
04319       971,  971,  971,  971,  971,  971,  971,  971,  971,  971,
04320       971,  971,  971,  971,  971,  971, 2974,  971,  971,  971,
04321       971,  971,  976,  976, 2974,  976,  976, 2974, 2974,  976,
04322       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
04323       976,  976,  976,  976,  976, 2974,  976,  976,  976,  976,
04324       976, 1005, 1005, 2974, 2974, 2974, 1005, 1005, 2974, 2974,
04325 
04326      2974, 1005, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
04327      1509, 1509, 1509, 1509, 1509, 1509, 2974, 1509, 1509, 1509,
04328      1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
04329      1509, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04330      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04331      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04332      1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
04333      1516, 1516, 1516, 1516, 2974, 1516, 1516, 1516, 1516, 1516,
04334      1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1518,
04335      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04336 
04337      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04338      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1521, 1521,
04339      1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
04340      1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
04341      1521, 1521, 1521, 1521, 1521, 1521, 1521, 1524, 1524, 1524,
04342      1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
04343      1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
04344      1524, 1524, 1524, 1524, 1524, 1524,  500,  500, 2974, 2974,
04345       500, 2974,  500,  500,  500,  500,  500,  500,  500,  500,
04346       500,  500,  500,  500,  500,  500,  500,  500,  500, 2974,
04347 
04348       500,  500,  500,  500,  500, 1527, 1527, 1527, 1527, 1527,
04349      1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527,
04350      1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527,
04351      1527, 1527, 1527, 1527, 1529, 1529, 1529, 1529, 1529, 1529,
04352      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
04353      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
04354      1529, 1529, 1529, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
04355      1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
04356      1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
04357      1531, 1531, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
04358 
04359      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
04360      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
04361      1534,  509,  509, 2974, 2974,  509,  509,  509, 2974,  509,
04362       509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
04363       509,  509,  509,  509, 2974,  509,  509,  509,  509,  509,
04364      1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
04365      1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
04366      1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1539,
04367      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
04368      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
04369 
04370      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1541, 1541,
04371      1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
04372      1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
04373      1541, 1541, 1541, 1541, 1541, 1541, 1541, 1544, 1544, 1544,
04374      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544,
04375      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544,
04376      1544, 1544, 1544, 1544, 1544, 1544,  517,  517, 2974,  517,
04377       517, 2974,  517,  517,  517,  517,  517,  517,  517,  517,
04378       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04379       517,  517,  517,  517,  517, 1547, 1547, 1547, 1547, 1547,
04380 
04381      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
04382      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
04383      1547, 1547, 1547, 1547, 1549, 1549, 1549, 1549, 1549, 1549,
04384      1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
04385      1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
04386      1549, 1549, 1549,  525,  525,  525,  525,  525,  525,  525,
04387       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04388       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04389       525,  525, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
04390      1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
04391 
04392      1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
04393      1557, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
04394      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
04395      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
04396       543,  543, 2974, 2974,  543,  543,  543,  543,  543,  543,
04397       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04398       543,  543,  543,  543,  543,  543,  543,  543,  543, 1563,
04399      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
04400      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
04401      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1565, 1565,
04402 
04403      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
04404      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
04405      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1570, 1570, 1570,
04406      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
04407      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
04408      1570, 1570, 1570, 1570, 1570, 1570,  551,  551, 2974,  551,
04409       551,  551,  551,  551,  551,  551, 2974,  551,  551,  551,
04410       551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
04411       551,  551,  551,  551,  551, 1572, 1572, 1572, 1572, 1572,
04412      1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
04413 
04414      1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
04415      1572, 1572, 1572, 1572, 1576, 1576, 1576, 1576, 2974, 2974,
04416      2974, 2974, 1576, 2974, 1576, 2974, 2974, 2974, 1576, 1576,
04417      1576, 1576, 2974, 1576, 1576, 2974, 2974, 1576, 1576,  582,
04418       582,  582,  582, 2974, 2974, 2974,  582,  582, 2974,  582,
04419      2974, 2974, 2974,  582,  582,  582,  582, 2974,  582,  582,
04420      2974, 2974,  582,  582, 1075, 1075, 1075, 1075, 2974, 1075,
04421      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04422      2974, 2974, 2974, 1075, 1075, 2974, 2974, 2974, 1075, 1580,
04423      1580, 1580, 1580, 2974, 2974, 2974, 2974, 1580, 2974, 1580,
04424 
04425      2974, 2974, 2974, 1580, 2974, 1580, 1580, 2974, 1580, 1580,
04426      2974, 2974, 1580, 1580, 1084, 1084, 1084, 1084, 2974, 1084,
04427      2974, 2974, 1084, 1084, 2974, 2974, 2974, 2974, 2974, 1084,
04428      2974, 2974, 2974, 1084, 1084, 2974, 2974, 2974, 1084, 2974,
04429      2974, 1084, 1587, 1587, 1587, 1587, 2974, 1587, 2974, 2974,
04430      1587, 2974, 2974, 2974, 2974, 2974, 1587, 1587, 2974, 2974,
04431      2974, 1587, 1587, 2974, 2974, 2974, 1587, 2974, 2974, 1587,
04432      1590, 1590, 1590, 1590, 2974, 1590, 2974, 2974, 2974, 2974,
04433      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1590,
04434      1590, 2974, 2974, 2974, 1590, 1071, 1071, 1071, 1071, 2974,
04435 
04436      1071, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04437      1071, 2974, 2974, 2974, 1071, 1071, 2974, 2974, 2974, 1071,
04438      2974, 2974, 1071,  564,  564,  564,  564, 2974,  564, 2974,
04439      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  564, 2974,
04440      2974, 2974,  564,  564, 2974, 2974, 2974,  564, 2974, 2974,
04441       564, 1093, 1093, 2974, 1093, 1093, 2974, 1093, 1093, 1093,
04442      1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 1093, 1093,
04443      1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093,
04444      1094, 1094, 2974, 1094, 1094, 2974, 1094, 1094, 1094, 1094,
04445      1094, 1094, 2974, 2974, 2974, 1094, 1094, 1094, 1094, 1094,
04446 
04447      1094, 1094, 1094, 1094, 1094, 1094, 2974, 1094, 1094, 1095,
04448      1095, 2974, 1095, 1095, 2974, 1095, 1095, 2974, 2974, 1095,
04449      1095, 1095, 1095, 2974, 1095, 1095, 1095, 1095, 1095, 1095,
04450      1095, 1095, 1095, 1095, 1095, 2974, 2974, 1095, 1183, 1183,
04451      1183, 1183, 2974, 2974, 2974, 1183, 1183, 2974, 1183, 2974,
04452      2974, 2974, 1183, 2974, 1183, 1183, 2974, 1183, 1183, 2974,
04453      2974, 1183, 1183, 1186, 2974, 2974, 1186, 2974, 2974, 2974,
04454      2974, 2974, 2974, 2974, 2974, 2974, 2974, 1186, 1186, 2974,
04455      1186, 2974, 1186, 1186, 2974, 2974, 2974, 1186, 1189, 2974,
04456      2974, 1189, 2974, 2974, 2974, 2974, 2974, 1189, 2974, 2974,
04457 
04458      2974, 2974, 2974, 2974, 2974, 2974, 2974, 1189, 1189, 2974,
04459      2974, 2974, 1189, 1688, 2974, 2974, 1688, 2974, 2974, 2974,
04460      2974, 1688, 2974, 2974, 2974, 2974, 2974, 1688, 2974, 2974,
04461      2974, 2974, 1688, 1688, 2974, 2974, 2974, 1688, 1691, 2974,
04462      2974, 1691, 2974, 1691, 2974, 2974, 2974, 2974, 2974, 2974,
04463      2974, 2974, 2974, 2974, 2974, 2974, 2974, 1691, 1691, 2974,
04464      2974, 2974, 1691, 1191, 1191, 2974, 1191, 1191, 1191, 1191,
04465      1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
04466      1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974, 1191, 2974,
04467      2974, 1191,  668, 2974, 2974,  668, 2974, 2974, 2974,  668,
04468 
04469      2974, 2974, 2974,  668,  668, 2974,  668,  668, 2974,  668,
04470      2974,  668,  668, 2974, 2974, 2974,  668, 1763, 1763, 1763,
04471      1763, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04472      2974, 1763, 1763, 2974, 2974, 2974, 1763, 1763, 2974, 2974,
04473      2974, 1763, 1283, 1283, 1283, 1283, 2974, 1283, 2974, 2974,
04474      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04475      2974, 1283, 1283, 2974, 2974, 2974, 1283, 1765, 2974, 2974,
04476      1765, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04477      2974, 1765, 2974, 2974, 2974, 2974, 1765, 1765, 2974, 2974,
04478      2974, 1765, 1280, 1280, 1280, 1280, 2974, 1280, 2974, 2974,
04479 
04480      2974, 2974, 2974, 2974, 2974, 2974, 2974, 1280, 2974, 2974,
04481      2974, 1280, 1280, 2974, 2974, 2974, 1280, 2974, 2974, 1280,
04482       735,  735,  735,  735, 2974,  735, 2974, 2974, 2974, 2974,
04483      2974, 2974, 2974, 2974, 2974,  735, 2974, 2974, 2974,  735,
04484       735, 2974, 2974, 2974,  735, 2974, 2974,  735, 1286, 1286,
04485      2974, 1286, 1286, 2974, 1286, 1286, 2974, 2974, 1286, 1286,
04486      1286, 1286, 2974, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
04487      1286, 1286, 1286, 1286, 2974, 2974, 1286, 1290, 1290, 1290,
04488      1290, 2974, 2974, 2974, 1290, 2974, 2974, 2974, 2974, 2974,
04489      2974, 1290, 2974, 2974, 2974, 2974, 1290, 1290, 2974, 2974,
04490 
04491      2974, 1290,  754,  754, 2974,  754, 2974, 2974, 2974,  754,
04492      2974, 2974, 2974,  754,  754, 2974,  754,  754, 2974,  754,
04493      2974,  754,  754, 2974, 2974, 2974,  754,  822,  822, 2974,
04494      2974, 2974,  822,  822, 2974, 2974, 2974,  822, 1839, 2974,
04495      1839, 2974, 2974, 2974, 2974, 1839, 1839, 2974, 2974, 2974,
04496      1839, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
04497      1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
04498      1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
04499      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
04500      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
04501 
04502      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,  847,
04503       847, 2974,  847,  847,  847,  847,  847,  847,  847,  847,
04504       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04505       847,  847,  847,  847,  847,  847,  847,  847, 1859, 1859,
04506      1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859,
04507      1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859,
04508      1859, 1859, 1859, 1859, 1859, 1859, 1859, 1862, 1862, 1862,
04509      1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
04510      1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
04511      1862, 1862, 1862, 1862, 1862, 1862, 1879, 1879, 1879, 1879,
04512 
04513      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04514      1879, 1879, 2974, 1879, 2974, 1879, 1879, 2974, 2974, 2974,
04515      1879, 1412, 1412, 1412, 1412, 2974, 1412, 2974, 2974, 2974,
04516      2974, 2974, 2974, 2974, 2974, 2974, 1412, 2974, 2974, 2974,
04517      1412, 1412, 2974, 2974, 2974, 1412, 2974, 2974, 1412, 1881,
04518      1881, 1881, 1881, 2974, 1881, 2974, 2974, 2974, 2974, 2974,
04519      2974, 2974, 2974, 2974, 1881, 2974, 2974, 2974, 1881, 1881,
04520      2974, 2974, 2974, 1881, 2974, 2974, 1881,  884,  884,  884,
04521       884, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04522      2974,  884,  884, 2974,  884, 2974,  884,  884, 2974, 2974,
04523 
04524      2974,  884, 1094, 1094, 2974, 1094, 1094, 2974, 1094, 1094,
04525      1094, 1094, 1094, 1094, 2974, 2974, 2974, 1094, 1094, 1094,
04526      1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 2974, 1094,
04527      1094, 1436, 2974, 2974, 1436, 2974, 2974, 2974, 2974, 2974,
04528      2974, 2974, 2974, 2974, 2974, 1436, 2974, 2974, 1436, 2974,
04529      1436, 1436, 2974, 2974, 2974, 1436, 1924, 1924, 2974, 1924,
04530      2974, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924,
04531      1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2974,
04532      1924, 1924, 1924, 1924, 1924, 1927, 1927, 1927, 1927, 1927,
04533      1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
04534 
04535      1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
04536      1927, 1927, 1927, 1927, 1930, 1930, 1930, 1930, 1930, 1930,
04537      1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
04538      1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
04539      1930, 1930, 1930,  971,  971, 2974,  971,  971, 2974, 2974,
04540       971,  971,  971,  971,  971,  971,  971,  971,  971,  971,
04541       971,  971,  971,  971,  971,  971, 2974,  971,  971,  971,
04542       971,  971, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933,
04543      1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933,
04544      1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933,
04545 
04546      1933, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
04547      1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
04548      1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
04549      1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,
04550      2974, 1953, 1953, 1953, 2974, 1953, 1953, 1953, 1953, 1953,
04551      1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1955,
04552      1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
04553      1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
04554      1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1512, 1512,
04555      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04556 
04557      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04558      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1958, 1958, 1958,
04559      1958, 1958, 1958, 1958, 1958, 1958, 1958, 2974, 1958, 1958,
04560      1958, 2974, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958,
04561      1958, 1958, 1958, 1958, 1958, 1958, 1959, 1959, 1959, 1959,
04562      1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04563      1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04564      1959, 1959, 1959, 1959, 1959, 1518, 1518, 1518, 1518, 1518,
04565      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04566      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04567 
04568      1518, 1518, 1518, 1518, 1961, 1961, 1961, 1961, 1961, 1961,
04569      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
04570      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
04571      1961, 1961, 1961,  500,  500, 2974, 2974,  500, 2974,  500,
04572       500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
04573       500,  500,  500,  500,  500,  500, 2974,  500,  500,  500,
04574       500,  500, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
04575      1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
04576      1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
04577      1524, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
04578 
04579      1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
04580      1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
04581      1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964,
04582      1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964,
04583      1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1529,
04584      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
04585      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
04586      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1965, 1965,
04587      1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
04588      1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
04589 
04590      1965, 1965, 1965, 1965, 1965, 1965, 1965,  509,  509, 2974,
04591      2974,  509,  509,  509, 2974,  509,  509,  509,  509,  509,
04592       509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
04593      2974,  509,  509,  509,  509,  509, 1534, 1534, 1534, 1534,
04594      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
04595      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
04596      1534, 1534, 1534, 1534, 1534, 1966, 1966, 1966, 1966, 1966,
04597      1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
04598      1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
04599      1966, 1966, 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
04600 
04601      1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
04602      1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
04603      1967, 1967, 1967, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
04604      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
04605      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
04606      1539, 1539, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
04607      1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
04608      1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
04609      1968,  517,  517, 2974,  517,  517, 2974,  517,  517,  517,
04610       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04611 
04612       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04613      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544,
04614      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544,
04615      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1969,
04616      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
04617      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969,
04618      1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1970, 1970,
04619      1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
04620      1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
04621      1970, 1970, 1970, 1970, 1970, 1970, 1970, 1549, 1549, 1549,
04622 
04623      1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
04624      1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
04625      1549, 1549, 1549, 1549, 1549, 1549, 1971, 1971, 1971, 1971,
04626      1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
04627      1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
04628      1971, 1971, 1971, 1971, 1971, 1972, 1972, 1972, 1972, 1972,
04629      1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
04630      1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
04631      1972, 1972, 1972, 1972,  525,  525,  525,  525,  525,  525,
04632       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04633 
04634       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04635       525,  525,  525, 1975, 1975, 1975, 1975, 1975, 1975, 1975,
04636      1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975,
04637      1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975,
04638      1975, 1975,  543,  543, 2974, 2974,  543,  543,  543,  543,
04639       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04640       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04641       543, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
04642      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
04643      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
04644 
04645      1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978,
04646      1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978,
04647      1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1979,
04648      1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
04649      1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
04650      1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1565, 1565,
04651      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
04652      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
04653      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1980, 1980, 1980,
04654      1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980,
04655 
04656      1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980,
04657      1980, 1980, 1980, 1980, 1980, 1980, 1570, 1570, 1570, 1570,
04658      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
04659      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
04660      1570, 1570, 1570, 1570, 1570, 1983, 1983, 1983, 1983, 1983,
04661      1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
04662      1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
04663      1983, 1983, 1983, 1983, 1572, 1572, 1572, 1572, 1572, 1572,
04664      1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
04665      1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
04666 
04667      1572, 1572, 1572, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
04668      1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
04669      1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
04670      1984, 1984, 1576, 1576, 1576, 1576, 2974, 2974, 2974, 2974,
04671      1576, 2974, 1576, 2974, 2974, 2974, 1576, 1576, 1576, 1576,
04672      2974, 1576, 1576, 2974, 2974, 1576, 1576,  582,  582,  582,
04673       582, 2974, 2974, 2974,  582,  582, 2974,  582, 2974, 2974,
04674      2974,  582,  582,  582,  582, 2974,  582,  582, 2974, 2974,
04675       582,  582, 1580, 1580, 1580, 1580, 2974, 2974, 2974, 2974,
04676      1580, 2974, 1580, 2974, 2974, 2974, 1580, 2974, 1580, 1580,
04677 
04678      2974, 1580, 1580, 2974, 2974, 1580, 1580, 1587, 1587, 1587,
04679      1587, 2974, 1587, 2974, 2974, 1587, 2974, 2974, 2974, 2974,
04680      2974, 1587, 1587, 2974, 2974, 2974, 1587, 1587, 2974, 2974,
04681      2974, 1587, 2974, 2974, 1587, 1590, 1590, 1590, 1590, 2974,
04682      1590, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04683      2974, 2974, 2974, 2974, 1590, 1590, 2974, 2974, 2974, 1590,
04684      1988, 1988, 1988, 1988, 2974, 1988, 2974, 2974, 1988, 2974,
04685      2974, 2974, 2974, 2974, 1988, 1988, 2974, 2974, 2974, 1988,
04686      1988, 2974, 2974, 2974, 1988, 2974, 2974, 1988,  564,  564,
04687       564,  564, 2974,  564, 2974, 2974, 2974, 2974, 2974, 2974,
04688 
04689      2974, 2974, 2974,  564, 2974, 2974, 2974,  564,  564, 2974,
04690      2974, 2974,  564, 2974, 2974,  564,  650,  650,  650,  650,
04691      2974,  650, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04692      2974, 2974, 2974, 2974, 2974,  650,  650, 2974, 2974, 2974,
04693       650, 1093, 1093, 2974, 1093, 1093, 2974, 1093, 1093, 1093,
04694      1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 1093, 1093,
04695      1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093,
04696      1186, 2974, 2974, 1186, 2974, 2974, 2974, 2974, 2974, 2974,
04697      2974, 2974, 2974, 2974, 1186, 1186, 2974, 1186, 2974, 1186,
04698      1186, 2974, 2974, 2974, 1186, 1688, 2974, 2974, 1688, 2974,
04699 
04700      2974, 2974, 2974, 1688, 2974, 2974, 2974, 2974, 2974, 1688,
04701      2974, 2974, 2974, 2974, 1688, 1688, 2974, 2974, 2974, 1688,
04702      1691, 2974, 2974, 1691, 2974, 1691, 2974, 2974, 2974, 2974,
04703      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1691,
04704      1691, 2974, 2974, 2974, 1691, 2068, 2974, 2974, 2068, 2974,
04705      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2068,
04706      2068, 2974, 2068, 2974, 2068, 2068, 2974, 2974, 2974, 2068,
04707       668, 2974, 2974,  668, 2974, 2974, 2974,  668, 2974, 2974,
04708      2974,  668,  668, 2974,  668,  668, 2974,  668, 2974,  668,
04709       668, 2974, 2974, 2974,  668, 1191, 1191, 2974, 1191, 1191,
04710 
04711      1191, 1191, 1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191,
04712      1191, 1191, 1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974,
04713      1191, 2974, 2974, 1191, 1763, 1763, 1763, 1763, 2974, 2974,
04714      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1763, 1763,
04715      2974, 2974, 2974, 1763, 1763, 2974, 2974, 2974, 1763, 1765,
04716      2974, 2974, 1765, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04717      2974, 2974, 2974, 1765, 2974, 2974, 2974, 2974, 1765, 1765,
04718      2974, 2974, 2974, 1765,  735,  735,  735,  735, 2974,  735,
04719      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  735,
04720      2974, 2974, 2974,  735,  735, 2974, 2974, 2974,  735, 2974,
04721 
04722      2974,  735,  746,  746,  746,  746, 2974,  746, 2974, 2974,
04723      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04724      2974,  746,  746, 2974, 2974, 2974,  746,  754,  754, 2974,
04725       754, 2974, 2974, 2974,  754, 2974, 2974, 2974,  754,  754,
04726      2974,  754,  754, 2974,  754, 2974,  754,  754, 2974, 2974,
04727      2974,  754, 2175, 2175, 2974, 2974, 2974, 2175, 2175, 2974,
04728      2974, 2974, 2175,  822,  822, 2974, 2974, 2974,  822,  822,
04729      2974, 2974, 2974,  822, 1839, 2974, 1839, 2974, 2974, 2974,
04730      2974, 1839, 1839, 2974, 2974, 2974, 1839,  847,  847, 2974,
04731       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04732 
04733       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04734       847,  847,  847,  847,  847,  847, 1855, 1855, 1855, 1855,
04735      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
04736      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
04737      1855, 1855, 1855, 1855, 1855, 1512, 1512, 1512, 1512, 1512,
04738      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04739      1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
04740      1512, 1512, 1512, 1512, 2188, 2188, 2188, 2188, 2188, 2188,
04741      2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188,
04742      2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188,
04743 
04744      2188, 2188, 2188, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
04745      2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
04746      2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
04747      2190, 2190, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
04748      1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
04749      1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
04750      1862, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04751      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04752      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
04753      2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
04754 
04755      2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
04756      2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 1879,
04757      1879, 1879, 1879, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04758      2974, 2974, 2974, 1879, 1879, 2974, 1879, 2974, 1879, 1879,
04759      2974, 2974, 2974, 1879, 2206, 2206, 2206, 2206, 2974, 2974,
04760      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2206, 2206,
04761      2974, 2206, 2974, 2206, 2206, 2974, 2974, 2974, 2206,  884,
04762       884,  884,  884, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04763      2974, 2974, 2974,  884,  884, 2974,  884, 2974,  884,  884,
04764      2974, 2974, 2974,  884,  924, 2974, 2974,  924, 2974, 2974,
04765 
04766      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  924, 2974,
04767      2974, 2974, 2974,  924,  924, 2974, 2974, 2974,  924, 2242,
04768      2242, 2974, 2242, 2974, 2242, 2242, 2242, 2242, 2242, 2242,
04769      2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
04770      2242, 2242, 2974, 2242, 2242, 2242, 2242, 2242,  971,  971,
04771      2974,  971,  971, 2974, 2974,  971,  971,  971,  971,  971,
04772       971,  971,  971,  971,  971,  971,  971,  971,  971,  971,
04773       971, 2974,  971,  971,  971,  971,  971, 1930, 1930, 1930,
04774      1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
04775      1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
04776 
04777      1930, 1930, 1930, 1930, 1930, 1930, 2244, 2244, 2244, 2244,
04778      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
04779      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
04780      2244, 2244, 2244, 2244, 2244, 2245, 2245, 2245, 2245, 2245,
04781      2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
04782      2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
04783      2245, 2245, 2245, 2245, 1935, 1935, 1935, 1935, 1935, 1935,
04784      1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
04785      1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
04786      1935, 1935, 1935, 2246, 2246, 2246, 2246, 2246, 2246, 2246,
04787 
04788      2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246,
04789      2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246,
04790      2246, 2246, 2259, 2259, 2974, 2974, 2974, 2259, 2259, 2974,
04791      2974, 2974, 2259, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
04792      1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
04793      1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
04794      1955, 1955, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
04795      2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
04796      2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
04797      2262, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04798 
04799      1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04800      1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04801      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
04802      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
04803      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,  500,
04804       500, 2974, 2974,  500, 2974,  500,  500,  500,  500,  500,
04805       500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
04806       500,  500, 2974,  500,  500,  500,  500,  500, 1964, 1964,
04807      1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964,
04808      1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964,
04809 
04810      1964, 1964, 1964, 1964, 1964, 1964, 1964, 1965, 1965, 1965,
04811      1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
04812      1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
04813      1965, 1965, 1965, 1965, 1965, 1965,  509,  509, 2974, 2974,
04814       509,  509,  509, 2974,  509,  509,  509,  509,  509,  509,
04815       509,  509,  509,  509,  509,  509,  509,  509,  509, 2974,
04816       509,  509,  509,  509,  509, 1967, 1967, 1967, 1967, 1967,
04817      1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
04818      1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
04819      1967, 1967, 1967, 1967, 1968, 1968, 1968, 1968, 1968, 1968,
04820 
04821      1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
04822      1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
04823      1968, 1968, 1968,  517,  517, 2974,  517,  517, 2974,  517,
04824       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04825       517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
04826       517,  517, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
04827      1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
04828      1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
04829      1970, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
04830      1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
04831 
04832      1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
04833       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04834       525,  525,  525,  525,  525,  525,  525,  525,  525,  525,
04835       525,  525,  525,  525,  525,  525,  525,  525,  525, 1975,
04836      1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975,
04837      1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975,
04838      1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 2264, 2264,
04839      2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
04840      2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
04841      2264, 2264, 2264, 2264, 2264, 2264, 2264,  543,  543, 2974,
04842 
04843      2974,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04844       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
04845       543,  543,  543,  543,  543,  543, 1979, 1979, 1979, 1979,
04846      1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
04847      1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
04848      1979, 1979, 1979, 1979, 1979, 1980, 1980, 1980, 1980, 1980,
04849      1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980,
04850      1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980,
04851      1980, 1980, 1980, 1980, 1983, 1983, 1983, 1983, 1983, 1983,
04852      1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
04853 
04854      1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
04855      1983, 1983, 1983, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
04856      1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
04857      1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
04858      1984, 1984,  582,  582,  582,  582, 2974, 2974, 2974,  582,
04859       582, 2974,  582,  582, 2974, 2974,  582,  582,  582,  582,
04860      2974,  582,  582, 2974, 2974,  582,  582, 1084, 1084, 1084,
04861      1084, 2974, 1084, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04862      2974, 2974, 1084, 2974, 2974, 2974, 1084, 1084, 2974, 2974,
04863      2974, 1084, 2974, 2974, 1084, 1988, 1988, 1988, 1988, 2974,
04864 
04865      1988, 2974, 2974, 1988, 2974, 2974, 2974, 2974, 2974, 1988,
04866      1988, 2974, 2974, 2974, 1988, 1988, 2974, 2974, 2974, 1988,
04867      2974, 2974, 1988, 1587, 1587, 1587, 1587, 2974, 1587, 2974,
04868      2974, 1587, 2974, 2974, 2974, 2974, 2974, 1587, 1587, 2974,
04869      2974, 2974, 1587, 1587, 2974, 2974, 2974, 1587, 2974, 2974,
04870      1587, 2277, 2277, 2277, 2277, 2974, 2277, 2974, 2974, 2974,
04871      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04872      2277, 2277, 2974, 2974, 2974, 2277, 2974, 2974, 2277, 1186,
04873      2974, 2974, 1186, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04874      1186, 2974, 2974, 1186, 1186, 2974, 1186, 2974, 1186, 1186,
04875 
04876      2974, 2974, 2974, 1186, 2068, 2974, 2974, 2068, 2974, 2974,
04877      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2068, 2068,
04878      2974, 2068, 2974, 2068, 2068, 2974, 2974, 2974, 2068,  668,
04879      2974, 2974,  668, 2974, 2974, 2974,  668, 2974, 2974, 2974,
04880       668,  668, 2974,  668,  668, 2974,  668, 2974,  668,  668,
04881      2974, 2974, 2974,  668, 2369, 2369, 2369, 2369, 2974, 2369,
04882      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04883      2974, 2974, 2974, 2369, 2369, 2974, 2974, 2974, 2369, 2974,
04884      2974, 2369,  754,  754, 2974,  754, 2974, 2974, 2974,  754,
04885      2974, 2974, 2974,  754,  754, 2974,  754,  754, 2974,  754,
04886 
04887      2974,  754,  754, 2974, 2974, 2974,  754, 2175, 2175, 2974,
04888      2974, 2974, 2175, 2175, 2974, 2974, 2974, 2175,  822,  822,
04889      2974, 2974, 2974,  822,  822, 2974, 2974, 2974,  822,  847,
04890       847, 2974,  847,  847,  847,  847,  847,  847,  847,  847,
04891       847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
04892       847,  847,  847,  847,  847,  847,  847,  847, 2190, 2190,
04893      2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
04894      2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
04895      2190, 2190, 2190, 2190, 2190, 2190, 2190, 1959, 1959, 1959,
04896      1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04897 
04898      1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
04899      1959, 1959, 1959, 1959, 1959, 1959, 2192, 2192, 2192, 2192,
04900      2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
04901      2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
04902      2192, 2192, 2192, 2192, 2192, 1961, 1961, 1961, 1961, 1961,
04903      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
04904      1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
04905      1961, 1961, 1961, 1961, 2206, 2206, 2206, 2206, 2974, 2974,
04906      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2206, 2206,
04907      2974, 2206, 2974, 2206, 2206, 2974, 2974, 2974, 2206,  884,
04908 
04909       884,  884,  884, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04910      2974, 2974, 2974,  884,  884, 2974,  884, 2974,  884,  884,
04911      2974, 2974, 2974,  884,  916,  916,  916,  916, 2974, 2974,
04912      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,  916, 2974,
04913       916, 2974,  916,  916,  916, 2974, 2974, 2974,  916,  916,
04914       971,  971, 2974,  971,  971, 2974, 2974,  971,  971,  971,
04915       971,  971,  971,  971,  971,  971,  971,  971,  971,  971,
04916       971,  971,  971, 2974,  971,  971,  971,  971,  971, 2245,
04917      2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
04918      2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
04919 
04920      2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2246, 2246,
04921      2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246,
04922      2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246,
04923      2246, 2246, 2246, 2246, 2246, 2246, 2246, 2259, 2259, 2974,
04924      2974, 2974, 2259, 2259, 2974, 2974, 2974, 2259, 2262, 2262,
04925      2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
04926      2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
04927      2262, 2262, 2262, 2262, 2262, 2262, 2262, 2264, 2264, 2264,
04928      2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
04929      2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
04930 
04931      2264, 2264, 2264, 2264, 2264, 2264, 2455, 2455, 2455, 2455,
04932      2455, 2455, 2455, 2455, 2455, 2455, 2974, 2455, 2455, 2455,
04933      2974, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455,
04934      2455, 2455, 2455, 2455, 2455,  582,  582,  582,  582, 2974,
04935      2974, 2974,  582,  582, 2974,  582, 2974, 2974, 2974,  582,
04936       582,  582,  582, 2974,  582,  582, 2974, 2974,  582,  582,
04937      2463, 2463, 2463, 2463, 2974, 2463, 2974, 2974, 2974, 2974,
04938      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2463,
04939      2463, 2974, 2974, 2974, 2463, 2974, 2974, 2463, 2467, 2467,
04940      2467, 2467, 2974, 2974, 2974, 2467, 2974, 2974, 2974, 2974,
04941 
04942      2974, 2974, 2467, 2467, 2974, 2467, 2974, 2467, 2467, 2974,
04943      2974, 2974, 2467, 2472, 2472, 2472, 2472, 2974, 2472, 2974,
04944      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04945      2974, 2974, 2472, 2472, 2974, 2974, 2974, 2472,  668, 2974,
04946      2974,  668, 2974, 2974, 2974,  668, 2974, 2974, 2974,  668,
04947       668, 2974,  668,  668, 2974,  668, 2974,  668,  668, 2974,
04948      2974, 2974,  668, 2369, 2369, 2369, 2369, 2974, 2369, 2974,
04949      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04950      2974, 2974, 2369, 2369, 2974, 2974, 2974, 2369, 2974, 2974,
04951      2369, 2532, 2532, 2532, 2532, 2974, 2974, 2974, 2532, 2974,
04952 
04953      2974, 2974, 2974, 2974, 2974, 2532, 2532, 2974, 2532, 2974,
04954      2532, 2532, 2974, 2974, 2974, 2532, 2535, 2535, 2535, 2535,
04955      2974, 2535, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04956      2974, 2974, 2974, 2974, 2974, 2535, 2535, 2974, 2974, 2974,
04957      2535,  754,  754, 2974,  754, 2974, 2974, 2974,  754, 2974,
04958      2974, 2974,  754,  754, 2974,  754,  754, 2974,  754, 2974,
04959       754,  754, 2974, 2974, 2974,  754,  822,  822, 2974, 2974,
04960      2974,  822,  822, 2974, 2974, 2974,  822, 2567, 2974, 2974,
04961      2567, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04962      2974, 2567, 2567, 2974, 2974, 2974, 2567, 2567, 2974, 2974,
04963 
04964      2974, 2567,  884,  884,  884,  884, 2974, 2974, 2974, 2974,
04965      2974, 2974, 2974, 2974, 2974, 2974,  884,  884, 2974,  884,
04966      2974,  884,  884, 2974, 2974, 2974,  884, 2597, 2597, 2597,
04967      2597, 2974, 2974, 2974, 2597, 2974, 2974, 2974, 2974, 2974,
04968      2974, 2597, 2597, 2974, 2597, 2974, 2597, 2597, 2974, 2974,
04969      2974, 2597, 1095, 1095, 2974, 1095, 1095, 2974, 1095, 1095,
04970      2974, 2974, 1095, 1095, 1095, 1095, 2974, 1095, 1095, 1095,
04971      1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 2974, 2974,
04972      1095, 2472, 2472, 2472, 2472, 2974, 2472, 2974, 2974, 2974,
04973      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
04974 
04975      2472, 2472, 2974, 2974, 2974, 2472, 2601, 2601, 2601, 2601,
04976      2974, 2974, 2974, 2601, 2974, 2974, 2974, 2974, 2974, 2974,
04977      2601, 2974, 2974, 2974, 2974, 2601, 2601, 2974, 2974, 2974,
04978      2601, 2646, 2646, 2646, 2646, 2974, 2974, 2974, 2646, 2974,
04979      2974, 2974, 2974, 2974, 2974, 2646, 2974, 2974, 2974, 2974,
04980      2646, 2646, 2974, 2974, 2974, 2646, 2656, 2656, 2656, 2656,
04981      2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656,
04982      2656, 2974, 2656, 2656, 2656, 2656, 2974, 2974, 2656, 2656,
04983      2656, 2656, 2656, 2656, 2656, 1112, 1112, 1112, 1112, 1112,
04984      1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
04985 
04986      2974, 1112, 1112, 1112, 1112, 2974, 2974, 1112, 1112, 1112,
04987      2974, 1112, 1112, 1112, 2686, 2686, 2974, 2686, 2686, 2974,
04988      2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2974, 2686,
04989      2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686,
04990      2974, 2686, 2686, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
04991      1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 2974, 1208,
04992      1208, 1208, 1208, 2974, 2974, 1208, 1208, 1208, 2974, 1208,
04993      1208, 1208, 2687, 2687, 2974, 2687, 2687, 2974, 2687, 2687,
04994      2687, 2687, 2687, 2687, 2974, 2974, 2974, 2687, 2687, 2687,
04995      2687, 2687, 2687, 2687, 2687, 2687, 2687, 2687, 2974, 2687,
04996 
04997      2687, 2746, 2746, 2974, 2746, 2746, 2746, 2746, 2746, 2746,
04998      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
04999      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
05000      2761, 2761, 2974, 2761, 2761, 2761, 2761, 2761, 2761, 2761,
05001      2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761,
05002      2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2776,
05003      2776, 2974, 2776, 2776, 2974, 2776, 2776, 2776, 2776, 2776,
05004      2776, 2776, 2776, 2974, 2776, 2776, 2776, 2776, 2776, 2776,
05005      2776, 2776, 2776, 2776, 2776, 2974, 2776, 2776, 2763, 2763,
05006      2974, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763,
05007 
05008      2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763,
05009      2763, 2763, 2763, 2763, 2763, 2763, 2763, 1094, 1094, 2974,
05010      1094, 1094, 2974, 1094, 1094, 1094, 1094, 1094, 1094, 2974,
05011      2974, 2974, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
05012      1094, 1094, 1094, 2974, 1094, 1094, 2764, 2764, 2974, 2764,
05013      2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764,
05014      2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764,
05015      2764, 2764, 2764, 2764, 2764, 2777, 2777, 2974, 2777, 2777,
05016      2974, 2777, 2777, 2777, 2777, 2777, 2777, 2974, 2974, 2974,
05017      2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777,
05018 
05019      2777, 2974, 2777, 2777, 1093, 1093, 2974, 1093, 1093, 2974,
05020      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093,
05021      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
05022      2974, 1093, 1093, 1191, 1191, 2974, 1191, 1191, 1191, 1191,
05023      1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
05024      1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974, 1191, 2974,
05025      2974, 1191, 2870, 2974, 2974, 2870, 2974, 2870, 2974, 2974,
05026      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05027      2974, 2870, 2870, 2974, 2974, 2974, 2870, 2902, 2974, 2974,
05028      2902, 2974, 2974, 2974, 2974, 2902, 2974, 2974, 2974, 2974,
05029 
05030      2974, 2902, 2974, 2974, 2974, 2974, 2902, 2902, 2974, 2974,
05031      2974, 2902, 2764, 2764, 2974, 2764, 2764, 2764, 2764, 2764,
05032      2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764,
05033      2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764,
05034      2764,   65, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05035      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05036      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05037      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05038      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05039      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05040 
05041      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05042      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
05043      2974, 2974, 2974, 2974
05044     } ;
05045 
05046 static yyconst flex_int16_t yy_chk[26125] =
05047     {   0,
05048         0,    0,    1,    1,    2,    2,    2,    2,  109,  109,
05049         3,    3,    1,    1,    3,    2,    2, 1057, 1057,    1,
05050         3,    3,    2,   20,  321,   71,   20,    3,    1,   20,
05051        71,    2,  198,   74,   22,   79,    3,   22,   74,   83,
05052        79,   20,   88,  198,   83,  321,  200,   88,    1,   91,
05053         1,    2,   22,    2,   91,  200,    3,    3,    3,    4,
05054         4,    4,    4,   98,    4,    5,    5,  101,   98,  174,
05055         4,    4,  101, 1107,    5,    5,    5,    4,    6,    6,
05056         6,    6,    5,    7,    7,  165,    4,    7,    6,    6,
05057         6,    5,   24,    7,    7,   24,    6, 1107,   26,   28,
05058 
05059         7,   26,   28,  174,  165,    6,    4,    4,    4,    7,
05060        24,    5,    5,    5,  107,  111,   26,   28,   30,  107,
05061       111,   30,  615,  118,  194,    6,    6,    6,  118,    7,
05062       615,    7,    8,    8,    8,    8,   30,    8,    9,    9,
05063       194,  121,   32,    8,    8,   32,  121, 2408,    9,    9,
05064         8,   10,   10,   10,   10,    9,  203,  203,   34,    8,
05065        32,   34,   10,   10,    9,   38,  312,  127,   38,   10,
05066        44,   46,  127,   44,   46,  130,   34,  137,   10,    8,
05067       130,    8,  137,   38,    9,    9,    9,  300,   44,   46,
05068        11,   11,   11,   11,   12,   12,   12,   12,   10,   10,
05069 
05070        10,   11,   11,   11, 2409,   12,   12,   12,   11,   13,
05071        13,  175,   12,   14,   14,   14,   14,   11,  140,   13,
05072        13,   12,  179,  140,   14,   14,   13,   48,  312,   50,
05073        48,   14,   50,   52, 1144,   13,   52,   11,  300,   11,
05074        14,   12,  179,   12,  333,   48,  179,   50,  333,   54,
05075       175,   52,   54,   15,   15,   13,  113,   13, 1144,  113,
05076        14,  154,   14,   15,   15,   15,  154,   54,  159,  113,
05077        15,   16,   16,   16,   16,  190,   17,   17,  148,   15,
05078       190,  148,   16,   16,   16,   56,   17,   17,   56,   16,
05079       349,  148, 2410,   17,   18,   18,   18,   18,   16,   15,
05080 
05081       167,   15,   17,   56,  241,   18,   18,   58,   60,  241,
05082        58,   60,   18,   62,   64,  184,   62,   64,   16,  159,
05083        16,   18,   17,  159,   17,   58,   60,  349,  201,  597,
05084       159,   62,   64,  201,  167,  597,  167,  184,  205,  205,
05085       201,   18,  184,   18,   19,   19,   19,   19,   19,   19,
05086        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05087        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05088        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05089        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05090        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05091 
05092        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05093        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
05094        19,   19,   19,   19,   19,   19,   21,   21,   21,   21,
05095        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05096        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05097        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05098        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05099        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05100        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05101        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
05102 
05103        21,   21,   21,   21,   21,   21,   21,   21,   23,   23,
05104        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05105        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05106        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05107        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05108        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05109        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05110        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05111        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
05112        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05113 
05114        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05115        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05116        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05117        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05118        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05119        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05120        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
05121        25,   25,   27,   27,   27,   27,   27,   27,   27,   27,
05122        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05123        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05124 
05125        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05126        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05127        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05128        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05129        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
05130        27,   27,   27,   27,   29,   29,   29,   29,   29,   29,
05131        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05132        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05133        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05134        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05135 
05136        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05137        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05138        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
05139        29,   29,   29,   29,   29,   29,   31,   31,   31,   31,
05140        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05141        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05142        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05143        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05144        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05145        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05146 
05147        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
05148        31,   31,   31,   31,   31,   31,   31,   31,   33,   33,
05149        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05150        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05151        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05152        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05153        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05154        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05155        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05156        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
05157 
05158        35,   35,   35,   35,  189,   67,  282,  189,   67,  282,
05159       468,   35,   35,   36,   36,   36,   36,  468,   35,   39,
05160        39,  232,   35,   67,   36,   36,  232,   35,  282,   39,
05161        39,   36,  230,  232,   73,   36,   39,   73,   82,  176,
05162        36,   82,   39,   90,   39,   39,   90,   35,   93,   35,
05163       100,   93,   73,  100,  103,  103,   82,  103,  288,  176,
05164        36,   90,   36,  176,  189,   39,   93,   39,  100, 2412,
05165       110,  120,  103,  110,  120,  576,  576,   35,  176,  187,
05166       187,  187,  187,  282,  120,  230,  187,  288,  110,  120,
05167        36,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05168 
05169        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05170        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05171        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05172        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05173        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05174        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05175        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
05176        37,   37,   37,   40,   40,   40,   40,   41,   41,  285,
05177       123,   41,  285,  123,   40,   40,  129,   41,   41,  129,
05178       289,   40,  132,  289,   41,  132,  250,   40,  123,   40,
05179 
05180        40,  250,   41,   41,  129, 2413,   42,   42,   42,   42,
05181       132,   42,  139,  314,  322,  139,  314,   42,   42,  170,
05182        40,  585,   40,   41,   42,   41,  141,  141,  141,  141,
05183       139,  182,   42,   42,  585,  322,  142,  142,  142,  142,
05184       143,  143,  143,  143,  155,  155,  155, 2294,  141,  168,
05185       170,  166,  170,   42,  142,   42,   43,   43,  142,  170,
05186       169,  170,  143,  622,  182,  622,   43,   43,  182,  168,
05187       155,  172,  166,   43,  166,  323,  168,  337,  592,   43,
05188       168,   43,   43,  168,  169,  592,  171,  337,  166,  296,
05189       166, 2294,  296,  172,  169,  172,  323,   43,  195,  155,
05190 
05191       341,  195,   43,  169,   43,  172,  171,  296,   43,   43,
05192        43,  195,   43,   43,  171,   43,  595,  171,   43,  341,
05193       171,   43,  171,  595,   43,   43,   43,   43,   43,   45,
05194        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05195        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05196        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05197        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05198        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05199        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05200        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05201 
05202        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
05203        45,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05204        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05205        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05206        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05207        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05208        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05209        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05210        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
05211        47,   47,   47,   49,   49,   49,   49,   49,   49,   49,
05212 
05213        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05214        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05215        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05216        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05217        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05218        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05219        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
05220        49,   49,   49,   49,   49,   51,   51,   51,   51,   51,
05221        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05222        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05223 
05224        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05225        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05226        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05227        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05228        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
05229        51,   51,   51,   51,   51,   51,   51,   53,   53,   53,
05230        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05231        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05232        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05233        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05234 
05235        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05236        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05237        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
05238        53,   53,   53,   53,   53,   53,   53,   53,   53,   55,
05239        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05240        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05241        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05242        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05243        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05244        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05245 
05246        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05247        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
05248        55,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05249        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05250        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05251        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05252        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05253        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05254        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05255        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
05256 
05257        57,   57,   57,   59,   59,   59,   59,   59,   59,   59,
05258        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05259        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05260        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05261        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05262        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05263        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05264        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
05265        59,   59,   59,   59,   59,   61,   61,   61,   61,   61,
05266        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05267 
05268        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05269        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05270        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05271        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05272        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05273        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
05274        61,   61,   61,   61,   61,   61,   61,   63,   63,   63,
05275        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05276        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05277        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05278 
05279        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05280        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05281        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05282        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
05283        63,   63,   63,   63,   63,   63,   63,   63,   63,  146,
05284       146,  146,  146,  494,  324,  177,  146,  160,  160,  160,
05285       160,  493,  161,  161,  161,  161,  173,  494,  160,  160,
05286       493,  146,  160,  161,  161,  324,  177,  161, 2414,  160,
05287       160,  160,  178,  252,  161,  161,  161,  403,  183,  173,
05288       177,  173,  252,  252,  161,  177,  180,  403,  173,  173,
05289 
05290       306,  600,  178,  306,  181,  326,  160,  600,  183, 1838,
05291       178,  161,  284,  284,  340,  340,  183,  284,  178,  146,
05292       180,  178,  183,  180,  180,  340,  326,  375,  181,  146,
05293       473,  181,  375,  291,  180,  206,  291,  180,  206,  180,
05294       181, 1838,  188,  188,  188,  188,  206,  181,  188,  473,
05295       207,  206,  206,  207,  284,  325,  291,  206, 2415,  206,
05296       188,  207,  208,  325,  188,  208,  207,  207,  325,  220,
05297       386,  220,  207,  208,  207,  386,  325,  306,  208,  208,
05298       210,  596,  207,  210,  208,  220,  208,  220,  596,  211,
05299       327,  210,  211,  327,  208,  327,  210,  210,  393,  212,
05300 
05301       211,  212,  210,  393,  210,  211,  211, 2287,  327,  406,
05302       406,  211,  212,  211,  212,  212,  327,  212,  213,  213,
05303       406,  213,  218,  411,  218,  213,  218,  414,  411,  213,
05304       414,  210,  213,  218,  218,  213,  502,  213,  218,  227,
05305       218,  227,  211,  214,  211,  214,  214, 2287,  438,  414,
05306       502,  227,  215,  438,  215,  227,  214,  227,  211,  214,
05307       211,  214,  215,  328,  215,  214,  216,  216,  215,  216,
05308       215,  328,  593,  215,  216,  593,  328,  216, 2416,  219,
05309       216,  219,  216,  216,  328,  216,  217,  217,  217,  217,
05310       221,  221,  219,  221,  221,  219,  222,  219,  222,  217,
05311 
05312       444,  223,  217,  223,  217,  444,  453,  221,  223,  221,
05313       222,  453,  222,  458,  222,  222,  223,  223,  458,  223,
05314       224,  224,  640,  224,  224,  225,  388,  225,  225,  388,
05315       640,  225,  225,  248,  248,  248,  248,  224,  602,  224,
05316       248,  225,  225,  225,  388,  225,  226,  225,  226,  226,
05317       602,  499,  226,  228,  266,  228,  266,  229,  229,  229,
05318       228,  226,  226,  229,  226,  499,  228,  266,  226,  228,
05319       266,  228,  266,  229,  499,  229,  234,  234,  234,  234,
05320       586,  235,  235,  235,  235,  236,  236,  236,  236,  238,
05321       238,  238,  238, 2288,  423,  511,  238,  486,  234,  235,
05322 
05323       471,  586,  486,  235,  423,  254,  254,  236,  254,  511,
05324       471,  238,  244,  244,  244,  244,  254,  249,  249,  249,
05325       249,  254,  254,  244,  520,  552,  552,  254,  552,  254,
05326       255,  255, 2288,  255,  244,  249,  244,  316,  520,  249,
05327       316,  255,  256,  256,  606,  256,  255,  255,  501,  267,
05328       606,  267,  255,  256,  255,  316,  529,  501,  256,  256,
05329       257,  257,  255,  257,  256,  267,  256,  267, 2417,  238,
05330       529,  257,  258,  258,  256,  258,  257,  257,  538,  274,
05331       588,  274,  257,  258,  257,  259,  607,  259,  258,  258,
05332       588,  274,  538,  607,  258,  274,  258,  274,  259,  490,
05333 
05334       259,  259,  492,  259,  490,  260,  260,  492,  260,  589,
05335      1103,  257,  260,  589,  316,  261,  260,  261,  261,  260,
05336       410,  497,  260,  410,  260,  258,  497,  258,  261, 1103,
05337       262,  261,  262,  261,  426,  426,  263,  263,  410,  263,
05338       262,  258,  262,  258,  263,  426,  262,  263,  262,  506,
05339       263,  262,  263,  263,  506,  263,  264,  264,  264,  264,
05340       365,  365,  365,  365,  265, 2418,  265,  365,  265,  264,
05341       431,  508,  264,  431,  264,  265,  265,  269,  603,  269,
05342       265,  603,  265,  268,  268,  508,  268,  268,  431,  510,
05343       270,  269,  270,  269,  508,  269,  269,  270,  510,  605,
05344 
05345       268,  290,  268,  605,  290,  270,  270,  621,  270,  271,
05346       271,  621,  271,  271,  272,  443,  272,  272,  443,  290,
05347       272,  272,  295,  290,  514,  295,  271, 2306,  271,  514,
05348       272,  272,  272,  443,  272,  273,  272,  273,  273,  643,
05349       295,  273,  275,  643,  275,  295,  276,  276,  276,  275,
05350       273,  273,  276,  273,  519,  275,  522,  273,  275, 2306,
05351       275,  522,  276,  519,  276,  345,  345,  345,  345,  545,
05352       346,  346,  346,  346,  347,  347,  347,  347,  290,  348,
05353       348,  348,  348,  545,  537,  544,  348,  345,  346, 1016,
05354       548, 1016,  346,  537,  544,  548,  347,  352,  352,  352,
05355 
05356       352,  348,  353,  353,  353,  353,  354,  354,  354,  354,
05357       528,  355,  355,  355,  355,  356,  356,  356,  356,  352,
05358       457,  352,  528,  457,  353, 2427,  353,  528,  354,  623,
05359       354,  557,  623,  355,  353,  355,  557,  356,  457,  356,
05360       357,  357,  357,  357,  358,  358,  358,  358,  590,  359,
05361       359,  359,  359,  590,  360,  360,  360,  360,  553,  348,
05362       554, 1018,  357, 1018,  357,  601,  358,  553,  358,  591,
05363       355,  359,  354,  359,  554,  601,  360,  355,  360,  847,
05364       591,  356,  361,  361,  361,  361,  362,  362,  362,  362,
05365       363,  363,  363,  363,  364,  364,  364,  364,  534,  358,
05366 
05367       847,  534,  481,  357,  361,  481,  361,  360,  362,  358,
05368       362,  534,  363,  617,  363,  359,  364, 2428,  364,  617,
05369       481,  366,  366,  366,  366,  368,  368,  368,  368,  369,
05370       369,  369,  369,  609,  609,  489,  568,  491,  489,  366,
05371       491,  361,  361,  366,  598,  568,  598,  369,  364, 1067,
05372       598,  362,  361,  489,  608,  491,  363,  370,  370,  370,
05373       370, 1067,  612,  608,  385,  385,  385,  385,  446,  446,
05374       446,  446,  474,  612,  496,  474,  474,  496,  505,  368,
05375       498,  505,  385,  369,  507,  516,  474,  629,  629,  498,
05376       446,  368,  496,  507,  368,  369,  505,  368,  369,  516,
05377 
05378      2429,  369,  368,  498,  626,  515,  369,  507,  516,  513,
05379       626,  370,  513,  521,  515,  523,  521,  446,  385,  459,
05380       459,  459,  459,  370,  523,  524,  370,  513,  515,  370,
05381       385,  521,  547,  385,  370,  547,  385,  624,  523,  524,
05382       624,  385,  455,  455, 2432,  455,  455,  455,  524,  455,
05383       547,  455,  455,  455,  455,  455,  455,  455,  455,  455,
05384       455,  455,  635,  635,  618,  455,  455,  455,  455,  455,
05385       455,  526,  526,  459,  526,  618,  460,  460,  460,  460,
05386       461,  461,  461,  461, 1026,  459, 1026,  532,  459,  526,
05387       455,  459,  455,  455,  460,  541,  459,  479,  479,  479,
05388 
05389       479,  532,  542,  549,  541, 1028,  540, 1028,  558,  540,
05390       532,  556,  549,  550,  556,  479,  542,  558,  541,  540,
05391       455,  455,  455,  455,  540,  542,  549,  550, 2433,  556,
05392       460,  558,  613,  559,  461,  613,  550,  560,  560,  560,
05393       560,  569,  460,  587,  569,  460,  461,  559,  460,  461,
05394       587,  479,  461,  460,  569,  610,  559,  461, 1106,  560,
05395       587,  610,  619,  479,  610,  620,  479,  619, 1106,  479,
05396       562,  562,  562,  562,  479,  564,  564,  564,  564,  620,
05397       642,  642,  566,  566,  566,  566,  564,  564,  562,  566,
05398       564,  613,  562,  565,  565,  565,  565,  564,  564,  564,
05399 
05400       570,  570,  570,  570,  565,  565, 1098,  570,  565,  572,
05401       572,  572,  570,  570, 2434,  565,  565,  565,  574,  574,
05402       574,  574,  570,  594,  564,  574,  578,  578,  578,  578,
05403       628, 1098,  632,  594,  594,  572,  628,  578,  578,  632,
05404       574,  578,  565,  579,  579,  579,  579,  636,  578,  578,
05405       578,  644,  565,  636,  579,  579,  584,  584,  579,  604,
05406       644,  584,  584,  611,  572,  579,  579,  604,  616,  611,
05407       604,  584,  616,  625,  611,  578,  627,  627,  625,  616,
05408       570, 2435,  631,  627,  633,  633,  631,  625,  630,  630,
05409       630,  630,  579,  631,  637,  630,  634,  973,  574,  637,
05410 
05411       639,  630,  633,  634,  638,  638,  973,  639,  641,  641,
05412       645,  645,  634,  638,  645,  647,  647, 2436,  641,  639,
05413       654,  654,  881,  639,  584,  599,  599,  599,  599,  599,
05414       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
05415       599,  599,  599,  599,  599,  963,  963, 1108,  599,  599,
05416       599,  599,  599,  599,  648,  648,  648,  648,  824,  881,
05417       843,  648,  649,  649,  649,  649,  843,  652,  653,  649,
05418       652,  653, 1108,  599,  599,  599,  599,  650,  650,  650,
05419       650, 1099,  979,  736,  736,  736,  736,  979,  650,  650,
05420       736,  824,  650,  651,  651,  651,  651,  599, 1041,  651,
05421 
05422       650,  650, 1041,  599,  599,  599,  599,  656, 1099,  659,
05423       656,  651,  659,  657,  868,  651,  657,  660,  664, 2437,
05424       660,  664,  659, 1036,  974, 1036,  650,  652,  653,  656,
05425       660,  656,  868,  668,  935,  657,  668,  657,  974,  716,
05426       664,  716,  664,  671,  668,  716,  671,  716, 1126,  668,
05427       668,  716,  935,  672,  671,  668,  672,  668,  817,  671,
05428       671,  817, 2438,  673,  672,  671,  673,  671,  818,  672,
05429       672,  818,  657, 1126,  673,  672,  717,  672,  717,  673,
05430       673,  674,  717,  821,  674,  673,  821,  673,  717,  671,
05431       675,  672,  674,  675,  717, 1010,  816,  674,  674,  816,
05432 
05433      1010,  675, 1104,  674,  956,  674,  675,  675,  825,  998,
05434      1104,  825,  675,  676,  675,  673,  676,  677,  816,  719,
05435       677,  719,  956,  841,  676,  719,  841,  998,  677,  676,
05436       676,  719,  673,  677,  677,  676, 1038,  676, 1038,  677,
05437       678,  677, 1371,  678,  679,  675,  720,  679,  720, 1015,
05438       674,  678,  720,  720, 1015,  679,  678,  678,  720, 2439,
05439       679,  679,  678, 1046,  678, 1046,  679,  680,  679,  715,
05440       680,  715,  853,  816,  715,  715, 1371,  676,  680,  681,
05441       853,  715,  681,  680,  680,  853,  721,  677,  721,  680,
05442       681,  680,  721,  853,  682,  681,  681,  682,  721,  827,
05443 
05444       679,  681,  827,  681,  683,  682,  678,  683, 1052,  839,
05445       682,  682,  839, 1052, 1054,  683,  682,  718,  682, 1054,
05446       683,  683,  827,  718, 1149,  718,  683,  684,  683,  718,
05447       684,  681, 1048,  718, 1048,  718,  680,  680,  684, 1145,
05448       820,  820,  723,  684,  684,  820,  682, 1100,  723,  684,
05449       723,  684, 1149,  863,  723,  686,  863, 2440,  686,  687,
05450       723,  723,  687, 1145,  905,  723,  686,  905, 1069,  683,
05451       687,  686,  686, 1100, 1047,  687,  687,  686, 1047,  686,
05452      1069,  687,  820,  687,  684, 1062,  839, 1062,  905, 2282,
05453       684,  685,  685,  685,  685,  685,  685,  685,  685,  685,
05454 
05455       685,  685,  685,  685,  685,  685,  685,  685,  685,  685,
05456       685, 1063, 1063, 1119,  685,  685,  685,  685,  685,  685,
05457       686,  688, 1119,  725,  688,  725, 2282,  930,  687,  725,
05458       930, 1102,  688,  689,  725,  725,  689,  688,  688,  685,
05459       685,  685,  685,  688,  689,  688,  722, 1105,  722,  689,
05460       689,  690,  722, 1102,  690,  689,  722,  689,  722, 1105,
05461      1569,  832,  690,  685,  832, 1569,  981,  690,  690,  685,
05462       685,  685,  685,  690,  691,  690,  726,  691,  726,  832,
05463       981,  728,  726,  728,  832,  691,  728,  728,  726,  981,
05464       691,  691,  688,  728,  692, 1158,  691,  692,  691,  978,
05465 
05466       689, 1111,  978,  689,  693,  692, 1001,  693, 1158, 1001,
05467       692,  692, 1121, 1111,  690,  693,  692,  978,  692,  694,
05468       693,  693,  694, 1635, 1121,  724,  693,  724,  693,  695,
05469       694,  724,  695, 1137,  724,  694,  694,  724, 1635,  691,
05470       695,  694,  727,  694,  727,  695,  695,  696,  727, 1137,
05471       696,  695,  727,  695,  727,  729,  729,  729,  696,  697,
05472       692,  729,  697,  696,  696, 1110, 1064,  729, 1064,  696,
05473       697,  696,  693, 1110,  712,  697,  697,  712, 1123,  694,
05474       730,  697,  730,  697,  700,  712,  730,  700, 1132, 1122,
05475       712,  712,  730, 1008,  695,  700,  712,  695,  712, 1123,
05476 
05477       700,  700,  701,  701,  701,  701,  700, 1008,  700, 1122,
05478      1132, 1039,  696,  701, 1148, 1039, 1008,  696,  701,  701,
05479      1070, 1148, 1070, 1039,  701, 2441,  701,  712, 1039,  697,
05480       698,  698,  698,  698,  698,  698,  698,  698,  698,  698,
05481       698,  698,  698,  698,  698,  698,  698,  698,  698,  698,
05482       980,  700, 1007,  698,  698,  698,  698,  698,  698,  980,
05483       702, 1007, 1120,  702, 1152,  701,  731,  731,  731,  731,
05484      1120,  702,  701,  980, 1646, 1007,  702,  702,  698,  698,
05485       698,  698,  702,  703,  702, 1124,  703, 1646,  731, 1152,
05486       746,  746,  746,  746,  703,  733,  733,  733,  733,  703,
05487 
05488       703,  746, 1125,  846, 1124,  703,  846,  703,  698,  698,
05489       698,  698,  704,  733, 1125,  704,  705,  733, 1378,  705,
05490      2302,  846, 1142,  704, 1378,  702, 1012,  705,  704,  704,
05491       850,  850,  705,  705,  704, 1012,  704, 1139,  705,  706,
05492       705, 1142,  706,  707,  850, 1082,  707, 1155, 1082, 1012,
05493       706, 1139,  850,  703,  707,  706,  706, 2302, 1544,  707,
05494       707,  706, 1544,  706, 1127,  707,  708,  707, 1155,  708,
05495       709,  940, 1127,  709,  940,  941,  704,  708,  941, 1130,
05496       846,  709,  708,  708, 1055, 1055,  709,  709,  708,  705,
05497       708, 1130,  709,  940,  709,  710, 1055,  941,  710,  849,
05498 
05499       849, 1055,  706, 1484,  707, 1484,  710,  711,  849, 2307,
05500       711,  710,  710,  737,  737,  737,  737,  710,  711,  710,
05501       737,  849,  708,  711,  711,  713,  709, 1131,  713,  711,
05502      1128,  711, 1140, 1147,  714,  737,  713,  714, 1128, 1131,
05503      1140,  713,  713,  855,  855,  714, 2307,  713, 1157,  713,
05504       714,  714,  735,  735,  735,  735,  714,  855,  714, 1147,
05505       710,  750,  750,  735,  750,  855,  855,  711,  738,  738,
05506       738,  738,  750,  711,  735, 1157,  735,  750,  750,  738,
05507       739,  739,  739,  739, 1133,  713,  741,  741,  741,  741,
05508       738,  739,  714,  737,  714, 1134, 1133,  741,  714, 1637,
05509 
05510      1022, 1013,  739,  942,  714, 1637,  942, 1162,  741, 1022,
05511       741,  744,  744,  744,  744, 1013, 1166, 1134,  744,  745,
05512       745,  745,  745, 1022, 1013,  942,  745,  747,  747,  747,
05513       747,  749,  749, 1162,  749,  754,  754, 1151,  754, 1166,
05514       826, 1676,  749,  826, 1136,  747,  754,  749,  749,  747,
05515      1676,  754,  754,  749, 1154,  749, 1151,  754,  826,  754,
05516       755,  755,  826,  755,  756,  756, 1136,  756, 1021, 1021,
05517      1154,  755, 1021, 1056, 1056,  756,  755,  755,  854,  854,
05518       756,  756,  755, 1160,  755, 1056,  756,  854,  756, 2442,
05519      1056, 1190,  757,  757, 1190,  757,  758,  758, 1190,  758,
05520 
05521       854,  854,  756,  757, 1160, 1146,  755,  758,  757,  757,
05522      1031, 1031,  758,  758,  757, 1021,  757,  826,  758, 1031,
05523       758,  759,  759, 1146,  759,  760,  760, 1141,  760, 1177,
05524       852, 1159,  759,  852, 1167,  852,  760,  759,  759, 1141,
05525      1177,  760,  760,  759,  757,  759, 1023,  760,  852,  760,
05526      1153,  761,  761, 1153,  761, 1159,  852, 1031, 1143, 1167,
05527      1023,  757,  761,  762,  762,  758,  762,  761,  761, 1023,
05528      1143, 1060, 1060,  761,  762,  761,  759, 1032, 2443,  762,
05529       762,  763,  763, 1060,  763,  762, 1032,  762, 1060,  760,
05530       764,  764,  763,  764, 1153, 1042, 1175,  763,  763, 1033,
05531 
05532      1032,  764, 1156,  763, 1042,  763,  764,  764,  875,  875,
05533       875,  875,  764, 1033,  764, 1173,  765,  765, 1042,  765,
05534      1180,  761, 1033, 1175, 1156,  766,  766,  765,  766,  762,
05535       875, 1173,  765,  765, 1037, 1037,  766,  763,  765, 1180,
05536       765,  766,  766, 1037, 1168,  767,  767,  766,  767,  766,
05537       879,  879,  879,  879,  768,  768,  767,  768, 2303,  764,
05538       764,  767,  767, 1161, 1058,  768, 1168,  767,  765,  767,
05539       768,  768,  879, 1058,  879, 1161,  768,  766,  768,  770,
05540       770, 1037,  770,  771,  771, 1040,  771, 1058, 1165, 1040,
05541       770, 1169, 1043, 2303,  771,  770,  770, 1040, 1165,  771,
05542 
05543       771,  770, 1040,  770, 1546,  771, 1043,  771, 1546, 2444,
05544       767,  768, 1169, 1065, 1065, 1043, 1065,  768,  769,  769,
05545       769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
05546       769,  769,  769,  769,  769,  769,  769,  769, 1059, 1109,
05547      1677,  769,  769,  769,  769,  769,  769, 1283,  770, 1677,
05548      1283, 1170, 1059, 1164,  771,  877,  877,  877,  877,  772,
05549       772, 1059,  772, 1170, 1109, 1109,  769,  769,  769,  769,
05550       772,  773,  773,  877,  773,  772,  772,  877, 1486, 1164,
05551      1486,  772,  773,  772, 1172, 1027, 1027,  773,  773, 1027,
05552       769,  774,  774,  773,  774,  773,  769,  769,  769,  769,
05553 
05554       775,  775,  774,  775, 1174, 2445, 1172,  774,  774, 1400,
05555      1549,  775, 1400,  774, 1549,  774,  775,  775, 1029, 1029,
05556       776,  776,  775,  776,  775, 1174,  772, 1029, 1171,  772,
05557      1029,  776, 1027, 1176,  773, 1029,  776,  776,  777,  777,
05558      1171,  777,  776, 1138,  776, 1163, 1138,  778,  778,  777,
05559       778, 1506, 1615, 1506,  777,  777,  774, 1615,  778, 1176,
05560       777, 1163,  777,  778,  778, 1029,  775,  779,  779,  778,
05561       779,  778, 1163, 2446,  880,  880,  880,  880,  779,  780,
05562       780,  880,  780,  779,  779, 1061, 1061, 1138,  776,  779,
05563       780,  779, 1178, 1560, 1560,  780,  780, 1061,  777, 1138,
05564 
05565      1178,  780, 1061,  780, 1475,  783,  783, 1508,  783, 1508,
05566      1603, 1179,  778, 1475, 1475,  778,  783,  784,  784, 1179,
05567       784,  783,  783,  883,  883,  883,  883,  783,  784,  783,
05568      1570, 1044,  779,  784,  784, 1044, 1550,  779, 1603,  784,
05569      1550,  784, 1570, 1044, 1604,  883, 1604,  883, 1044,  780,
05570       781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
05571       781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
05572      1150, 1616,  783,  781,  781,  781,  781,  781,  781, 1616,
05573       784, 1562, 1562,  882,  882,  882,  882,  784, 1565, 1565,
05574       882,  785,  785, 1150,  785, 1617, 1150, 1617,  781,  781,
05575 
05576       781,  781,  785,  786,  786,  882,  786,  785,  785,  903,
05577       903,  903,  903,  785,  786,  785,  903, 1566, 1566,  786,
05578       786,  787,  787, 1189,  787,  786, 1189,  786,  781,  781,
05579       781,  781,  787,  788,  788, 1189,  788,  787,  787,  904,
05580       904,  904,  904,  787,  788,  787,  904, 1672, 1045,  788,
05581       788, 1188, 1045, 1672, 1188,  788,  785,  788,  789,  789,
05582      1045,  789, 1620,  882, 1188, 1045, 1620,  790,  790,  789,
05583       790, 1606, 1606,  786,  789,  789,  791,  791,  790,  791,
05584       789, 1619,  789,  790,  790,  787, 1625,  791, 1619,  790,
05585      1625,  790,  791,  791,  792,  792, 1049,  792,  791, 1049,
05586 
05587       791, 1066, 1066, 1632, 1066,  792,  788, 1632, 1049, 2321,
05588       792,  792, 1391, 1643,  793,  793,  792,  793,  792, 1066,
05589      1480,  789, 1049,  794,  794,  793,  794, 1643,  790, 1480,
05590       793,  793,  791, 1391,  794, 2321,  793, 1631,  793,  794,
05591       794,  795,  795, 1480,  795,  794, 1415,  794, 1631, 1415,
05592       792, 1386,  795,  796,  796, 1386,  796,  795,  795,  966,
05593       966,  966,  966,  795,  796,  795, 1552, 1653, 1415,  796,
05594       796,  797,  797, 1551,  797,  796, 1386,  796, 1653,  793,
05595      1571,  966,  797,  794, 1391, 1551, 1391,  797,  797,  794,
05596      1551, 1851, 1571,  797,  795,  797, 1524, 1524,  798,  798,
05597 
05598      1524,  798,  884,  884,  884,  884, 1384, 1068,  966,  798,
05599      1384, 1481, 1851,  796,  798,  798,  799,  799, 1384,  799,
05600       798, 1068,  798, 1384,  884, 1481,  884,  799, 2447,  797,
05601      1068, 1384,  799,  799, 1481,  797,  800,  800,  799,  800,
05602       799,  797, 1552, 1524, 1552, 1030, 1030,  800,  801,  801,
05603      2300,  801,  800,  800, 1030, 1630, 1630, 1030,  800,  801,
05604       800,  798, 1030, 1479,  801,  801, 1660, 1479,  798, 1479,
05605       801, 1660,  801,  802,  802, 2300,  802,  967,  967,  967,
05606       967, 1572,  799, 1392,  802,  803,  803, 1392,  803,  802,
05607       802, 1629, 1030, 1572,  800,  802,  803,  802, 1629,  967,
05608 
05609       801,  803,  803,  804,  804, 1573,  804,  803, 1392,  803,
05610      1479, 1983,  800, 1393,  804, 1435,  801, 1573, 1435,  804,
05611       804,  805,  805, 1983,  805,  804,  967,  804, 1073, 1073,
05612      1073, 1073,  805,  802, 1393, 1073, 1647,  805,  805, 1435,
05613      1649,  806,  806,  805,  806,  805, 1239, 1239, 1239, 1239,
05614       803, 1647,  806,  807,  807, 1649,  807,  806,  806, 1034,
05615      1034, 1561, 1561,  806,  807,  806, 2448,  804, 1034,  807,
05616       807, 1034, 1636, 1561, 1636,  807, 1034,  807, 1561,  808,
05617       808,  805,  808,  809,  809, 1393,  809, 1393, 1583,  805,
05618       808, 1583, 2449,  806,  809,  808,  808, 1638, 1638,  809,
05619 
05620       809,  808, 1641,  808, 1641,  809, 1034,  809,  810,  810,
05621      1618,  810,  806, 1618, 1019, 1019,  806, 1654, 1019,  810,
05622       807, 1639, 1639, 1477,  810,  810, 1019, 1477, 1654, 1477,
05623       810, 1019,  810,  811,  811, 1477,  811, 1387, 1387,  808,
05624      1477, 1020, 1020,  809,  811, 1020, 1387, 2005,  808,  811,
05625       811,  812,  812, 1020,  812,  811, 2005,  811, 1020, 1387,
05626      1387, 1019,  812,  813,  813, 2450,  813,  812,  812, 1050,
05627      1477, 1554, 1050,  812,  813,  812,  810, 1640, 1640,  813,
05628       813,  887,  887,  887,  887,  813, 1050,  813, 1020,  888,
05629       888,  888,  888,  811, 1436, 1050,  811, 1436,  889,  889,
05630 
05631       889,  889, 1644,  887, 1644,  887,  890,  890,  890,  890,
05632       812,  888, 2013,  888,  891,  891,  891,  891, 1436,  887,
05633       889, 2013,  889,  813,  892,  892,  892,  892,  890, 1658,
05634       890, 1658, 1074, 1074, 1074, 1074,  891, 1621,  891, 1074,
05635      1621,  894,  894,  894,  894, 2451,  892, 1554,  892, 1554,
05636       889,  896,  896,  896,  896,  888,  895,  895,  895,  895,
05637      1388, 1388, 1666,  894, 1666,  894,  906,  906,  906,  906,
05638      1650,  890, 1652,  896, 1388,  896, 1626, 1650,  895, 1626,
05639       895, 2452, 1388, 1388,  906,  891, 1628, 1652,  906, 1628,
05640       892,  893,  893,  893,  893,  893,  893,  893,  893,  893,
05641 
05642       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
05643       893,  894,  896, 1655,  893,  893,  893,  893,  893,  893,
05644      1655,  895,  897,  897,  897,  897,  898,  898,  898,  898,
05645       899,  899,  899,  899,  900,  900,  900,  900, 1656,  893,
05646       893,  893,  893, 1669,  897, 1673,  897, 1673,  898, 1656,
05647       898, 1669,  899, 1670,  899, 2453,  900, 1670,  900,  901,
05648       901,  901,  901, 1642, 1642,  902,  902,  902,  902,  893,
05649       893,  893,  893,  907,  907,  907,  907,  908,  908,  908,
05650       908,  901, 1633,  901,  898, 1633, 1667,  902,  897,  902,
05651       914,  914,  914,  914,  922,  922,  922,  922,  899, 1667,
05652 
05653      1534, 1534,  898,  900,  968,  968,  968,  968,  914, 1534,
05654      1648, 1648,  922, 1080, 1080, 1080, 1080, 1024, 1024,  901,
05655      1659, 1024,  901, 1659,  902, 1662,  968,  907, 1662, 1024,
05656      1663,  908, 2456, 1186, 1024, 1080, 1186, 1661, 1661,  907,
05657      1678, 1663,  907,  908,  914,  907,  908, 1534,  922,  908,
05658       907, 1678, 1668,  968,  908, 1186,  914, 1186, 1614,  914,
05659       922, 1614,  914,  922, 1024, 1668,  922,  914, 1675, 1682,
05660      1675,  922,  976,  976, 2458,  976,  976,  976, 1664,  976,
05661      1682,  976,  976,  976,  976,  976,  976,  976,  976,  976,
05662       976,  976, 2305, 1664, 1664,  976,  976,  976,  976,  976,
05663 
05664       976,  982,  982,  982,  982, 1085, 1085, 1085, 1085, 1025,
05665      1025, 1665, 1085, 1025, 1614, 1035, 1035, 2305, 1665,  982,
05666       976, 1025,  976,  976, 1035, 1614, 1025, 1035, 1288, 1288,
05667      1288, 1288, 1035, 1681, 1681, 1087, 1087, 1087, 1087, 1288,
05668      1679, 2012, 1087, 2012, 1679, 1003, 1003, 1003, 1003, 2296,
05669       976,  976,  976,  976, 1984,  982, 1025, 1087, 1281, 1281,
05670      1281, 1281, 1035, 1003, 1674, 1281, 1984,  982, 1680, 1674,
05671       982, 1680, 1764,  982, 1674, 1764, 1674, 2296,  982,  991,
05672       991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
05673       991,  991,  991,  991,  991,  991,  991,  991,  991, 1003,
05674 
05675      1854, 2006,  991,  991,  991,  991,  991,  991, 2006, 1078,
05676      1765, 1003, 1855, 1765, 1003, 1087, 1855, 1003, 1078, 1078,
05677      1078, 1854, 1003, 1071, 1071, 1071, 1071,  991,  991,  991,
05678       991, 1096, 1096, 1096, 1096, 1071, 2033, 1855, 1071, 1072,
05679      1072, 1072, 1072, 1853, 1078, 1071, 1071, 1071, 2033, 1859,
05680      1072, 1072, 1192, 1096, 1072, 1192, 1853,  991,  991,  991,
05681       991, 1072, 1072, 1072, 1853, 1995, 1075, 1075, 1075, 1075,
05682      1859, 1970, 1071, 1078, 1192, 1970, 1192, 1861, 1075, 1858,
05683      1995, 1075, 2401, 1858, 1079, 1079, 1079, 1079, 1072, 1075,
05684      1075, 1079, 1280, 1280, 1280, 1280, 1079, 1079, 1861, 1072,
05685 
05686      1081, 1081, 1081, 1081, 1858, 1971, 1079, 1081, 1187, 1971,
05687      2315, 1187, 1081, 1081, 1280, 1075, 1084, 1084, 1084, 1084,
05688      1979, 1979, 1081, 1084, 1092, 1092, 1092, 1092, 1084, 2401,
05689      1187, 1092, 1187, 1926, 2023, 1084, 1084, 1084, 1084, 1093,
05690      1093, 2023, 1926, 1926, 1093, 1093, 1092, 2315, 1097, 1097,
05691      1097, 1097, 1882, 1209, 1093, 1882, 1209, 1980, 1980, 1097,
05692      1097, 1118, 1118, 1097, 1079, 1981, 1118, 1118, 1187, 1998,
05693      1097, 1097, 1097, 1998, 1981, 1209, 1118, 1209, 1194, 1231,
05694      1081, 1194, 1231, 1996, 1282, 1282, 1282, 1282, 1981, 1194,
05695      1092, 1282, 1097, 2459, 1194, 1194, 1084, 1097, 1996, 2460,
05696 
05697      1194, 1231, 1194, 1231, 1092, 2017, 2017, 1093, 1101, 1101,
05698      1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
05699      1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 2016, 1118,
05700      2016, 1101, 1101, 1101, 1101, 1101, 1101, 1289, 1289, 1289,
05701      1289, 1238, 1238, 1238, 1238, 2283, 2041, 1194, 1289, 1113,
05702      1113, 1113, 1113, 1536, 1536, 2041, 1101, 1101, 1101, 1101,
05703      1113, 1113, 1536, 1238, 1113, 1238, 1567, 1567, 2283, 1567,
05704      2002, 1113, 1113, 1113, 2002, 1287, 1287, 1287, 1287, 1114,
05705      1114, 1114, 1114, 2029, 1567, 2029, 1101, 1101, 1101, 1101,
05706      1114, 1114, 1195, 2024, 1114, 1195, 1196, 1287, 1113, 1196,
05707 
05708      1536, 1114, 1114, 1195, 2024, 2049, 2009, 1196, 1195, 1195,
05709      2009, 2018, 1196, 1196, 1195, 1485, 1195, 2049, 1196, 1485,
05710      1196, 1485, 2468, 1910, 2004, 2018, 1910, 2004, 1114, 1129,
05711      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
05712      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 2034,
05713      2481, 2034, 1129, 1129, 1129, 1129, 1129, 1129, 1290, 1290,
05714      1290, 1290, 1485, 1195, 1686, 1956, 1196, 1686, 1956, 1290,
05715      1135, 1135, 1135, 1135, 1910, 2004, 1686, 1129, 1129, 1129,
05716      1129, 1135, 1135, 1956, 1865, 1135, 1129, 1865, 1181, 1181,
05717      1181, 1181, 1135, 1135, 1135, 1422, 1422, 1422, 1422, 1181,
05718 
05719      1181, 2281, 1671, 1181, 2035, 1671, 2035, 1129, 1129, 1129,
05720      1129, 1181, 1181, 1182, 1182, 1182, 1182, 1422, 1671, 1135,
05721      1183, 1183, 1183, 1183, 1182, 1182, 1688, 2322, 1182, 1688,
05722      1193, 1183, 1183, 1193, 2281, 1183, 1182, 1181, 1688, 1198,
05723      1865, 1193, 1198, 1183, 1183, 2019, 1193, 1193, 1199, 2019,
05724      1198, 1199, 1193, 2473, 1193, 1198, 1198, 1539, 1539, 1199,
05725      2322, 1198, 1182, 1198, 1199, 1199, 1539, 1526, 1526, 1183,
05726      1199, 1526, 1199, 2473, 1193, 1197, 1197, 1197, 1197, 1197,
05727      1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
05728      1197, 1197, 1197, 1197, 1197, 2045, 2020, 2045, 1197, 1197,
05729 
05730      1197, 1197, 1197, 1197, 1539, 1198, 1588, 1588, 1588, 1588,
05731      2020, 1199, 1907, 1588, 1526, 1907, 1200, 1385, 1389, 1200,
05732      2493, 1385, 1389, 1197, 1197, 1197, 1197, 1200, 1201, 1385,
05733      1389, 1201, 1200, 1200, 1385, 1389, 2317, 2028, 1200, 1201,
05734      1200, 2028, 1385, 1389, 1201, 1201, 1307, 1307, 1202, 1307,
05735      1201, 1202, 1201, 1197, 1197, 1197, 1197, 1307, 1203, 1202,
05736      2284, 1203, 1307, 1307, 1202, 1202, 1907, 2025, 1200, 1203,
05737      1202, 2317, 1202, 1545, 1203, 1203, 1204, 1545, 2061, 1204,
05738      1203, 2025, 1203, 2061, 1201, 1545, 1581, 1204, 1205, 2082,
05739      1545, 1205, 1204, 1204, 2284, 1581, 1581, 1581, 1204, 1205,
05740 
05741      1204, 2082, 1202, 1206, 1205, 1205, 1206, 2494, 2022, 2022,
05742      1205, 1390, 1205, 1207, 1206, 1390, 1207, 2022, 2030, 1206,
05743      1206, 1581, 2030, 1390, 1207, 1206, 1203, 1206, 1390, 1207,
05744      1207, 1326, 1326, 2505, 1326, 1207, 1390, 1207, 1568, 1568,
05745      2050, 1568, 1326, 1215, 2050, 1204, 1215, 1326, 1326, 1862,
05746      1581, 2042, 2042, 1862, 1215, 1206, 1568, 1205, 1205, 1215,
05747      1215, 1216, 2026, 1687, 1216, 1215, 1687, 1215, 1689, 1207,
05748      1217, 1689, 1216, 1217, 1862, 1689, 2026, 1216, 1216, 1687,
05749      1687, 1217, 2046, 1216, 2046, 1216, 1217, 1217, 1218, 2498,
05750      1690, 1218, 1217, 1690, 1217, 2508, 1215, 1690, 1219, 1218,
05751 
05752      1904, 1219, 1864, 1904, 1218, 1218, 1864, 2516, 1220, 1219,
05753      1218, 1220, 1218, 1216, 1219, 1219, 2044, 2044, 1221, 1220,
05754      1219, 1221, 1219, 2498, 1220, 1220, 1217, 1864, 1905, 1221,
05755      1220, 1905, 1220, 1222, 1221, 1221, 1222, 1529, 1529, 2027,
05756      1221, 1529, 1221, 1223, 1222, 2176, 1223, 1530, 1530, 1222,
05757      1222, 1530, 1218, 2027, 1223, 1222, 1904, 1222, 2053, 1223,
05758      1223, 1219, 2053, 2293, 1220, 1223, 1227, 1223, 2267, 1227,
05759      2267, 1284, 1284, 1284, 1284, 2554, 2014, 1227, 1284, 2014,
05760      1540, 1540, 1227, 1227, 1529, 1222, 2176, 1221, 1227, 1540,
05761      1227, 1905, 2293, 1284, 1530, 1223, 1224, 1224, 1224, 1224,
05762 
05763      1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
05764      1224, 1224, 1224, 1224, 1224, 1224, 1535, 1535, 2309, 1224,
05765      1224, 1224, 1224, 1224, 1224, 1535, 1225, 1540, 1535, 1225,
05766      2556, 1909, 1227, 1535, 1909, 2055, 2055, 1225, 1226, 2014,
05767      2308, 1226, 1225, 1225, 1224, 1224, 1224, 1224, 1225, 1226,
05768      1225, 1284, 2031, 1224, 1226, 1226, 1228, 2309, 2559, 1228,
05769      1226, 1906, 1226, 1535, 1906, 2308, 2031, 1228, 1229, 2032,
05770      2560, 1229, 1228, 1228, 1224, 1224, 1224, 1224, 1228, 1229,
05771      1228, 2038, 1225, 2032, 1229, 1229, 1237, 1909, 1912, 1237,
05772      1229, 1912, 1229, 1976, 1226, 2038, 1976, 1237, 1240, 2043,
05773 
05774      2286, 1240, 1237, 1237, 1575, 1575, 1575, 1575, 1237, 1240,
05775      1237, 1976, 1228, 2043, 1240, 1240, 1575, 2289, 2326, 1575,
05776      1240, 1242, 1240, 2286, 1242, 1244, 1575, 1575, 1244, 2056,
05777      2047, 1906, 1242, 2056, 1229, 2059, 1244, 1242, 1242, 2059,
05778      2289, 1244, 1244, 1242, 2047, 1242, 1912, 1244, 2048, 1244,
05779      2326, 2048, 1237, 1575, 1908, 2562, 2327, 1908, 1240, 1241,
05780      1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241,
05781      1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242,
05782      2297, 1244, 1241, 1241, 1241, 1241, 1241, 1241, 2327, 1243,
05783      2057, 1911, 1243, 2188, 1911, 1589, 1589, 1589, 1589, 2057,
05784 
05785      1243, 1245, 1589, 2297, 1245, 1243, 1243, 1241, 1241, 1241,
05786      1241, 1243, 1245, 1243, 2188, 2564, 1241, 1245, 1245, 1598,
05787      1598, 1598, 1598, 1245, 1908, 1245, 1598, 1412, 1412, 1412,
05788      1412, 1246, 2060, 2268, 1246, 2268, 2060, 1241, 1241, 1241,
05789      1241, 1243, 1246, 1247, 2565, 2298, 1247, 1246, 1246, 1412,
05790      2566, 1412, 2314, 1246, 1247, 1246, 1911, 2310, 1248, 1247,
05791      1247, 1248, 2299, 2553, 1245, 1247, 2298, 1247, 1249, 1248,
05792      1913, 1249, 2190, 1913, 1248, 1248, 2190, 2314, 1250, 1249,
05793      1248, 1250, 1248, 2299, 1249, 1249, 2301, 1246, 1251, 1250,
05794      1249, 1251, 1249, 2304, 1250, 1250, 2310, 2190, 1252, 1251,
05795 
05796      1250, 1252, 1250, 2260, 1251, 1251, 2260, 2301, 2553, 1252,
05797      1251, 1247, 1251, 1253, 1252, 1252, 1253, 2304, 2461, 1249,
05798      1252, 2260, 1252, 2192, 1253, 1254, 1248, 2192, 1254, 1253,
05799      1253, 1599, 1599, 1599, 1599, 1253, 1254, 1253, 1913, 2461,
05800      1255, 1254, 1254, 1255, 2477, 1967, 1967, 1254, 2192, 1254,
05801      1250, 1255, 1256, 1599, 1967, 1256, 1255, 1255, 1251, 2486,
05802      2570, 1252, 1255, 1256, 1255, 2477, 2496, 1257, 1256, 1256,
05803      1257, 2318, 2454, 2328, 1256, 1930, 1256, 1258, 1257, 1930,
05804      1258, 1930, 1253, 1257, 1257, 1254, 2454, 1259, 1258, 1257,
05805      1259, 1257, 1967, 1258, 1258, 2479, 2486, 1260, 1259, 1258,
05806 
05807      1260, 1258, 2496, 1259, 1259, 1255, 2571, 2572, 1260, 1259,
05808      2318, 1259, 2328, 1260, 1260, 2479, 2573, 2490, 1256, 1260,
05809      1261, 1260, 1930, 1261, 1262, 2457, 2457, 1262, 2457, 1691,
05810      1697, 1261, 1691, 1697, 1258, 1262, 1261, 1261, 1257, 1932,
05811      1262, 1262, 1261, 1932, 1261, 1932, 1262, 1263, 1262, 2475,
05812      1263, 1691, 1697, 1691, 1697, 1259, 1264, 2320, 1263, 1264,
05813      2483, 2490, 1260, 1263, 1263, 2484, 2480, 1264, 2323, 1263,
05814      2574, 1263, 1264, 1264, 1265, 1935, 1261, 1265, 1264, 1935,
05815      1264, 1935, 2320, 2483, 1266, 1265, 1932, 1266, 2475, 1685,
05816      1265, 1265, 1685, 2323, 1262, 1266, 1265, 2484, 1265, 1267,
05817 
05818      1266, 1266, 1267, 2575, 2474, 2480, 1266, 1263, 1266, 2478,
05819      1267, 1685, 2487, 1685, 1268, 1267, 1267, 1268, 1263, 2491,
05820      2485, 1267, 1935, 1267, 1269, 1268, 1264, 1269, 1265, 2474,
05821      1268, 1268, 2499, 2500, 2478, 1269, 1268, 2487, 1268, 1270,
05822      1269, 1269, 1270, 2485, 2491, 2576, 1269, 2495, 1269, 1271,
05823      1270, 1266, 1271, 2501, 2506, 1270, 1270, 2499, 1685, 1272,
05824      1271, 1270, 1272, 1270, 2497, 1271, 1271, 2500, 1267, 2316,
05825      1272, 1271, 2316, 1271, 1273, 1272, 1272, 1273, 2501, 2506,
05826      1268, 1272, 1478, 1272, 2495, 1273, 1478, 2497, 1478, 1269,
05827      1273, 1273, 2502, 2577, 1478, 1270, 1273, 1274, 1273, 1478,
05828 
05829      1274, 2058, 2058, 2058, 2058, 1271, 1275, 2489, 1274, 1275,
05830      2489, 2578, 2579, 1274, 1274, 1276, 2502, 1275, 1276, 1274,
05831      2316, 1274, 1275, 1275, 1279, 1272, 1276, 1279, 1275, 1478,
05832      1275, 1276, 1276, 1277, 1273, 1279, 1277, 1276, 2489, 1276,
05833      1279, 1279, 1278, 2580, 1277, 1278, 1279, 2581, 1279, 1277,
05834      1277, 2065, 2582, 1278, 2065, 1277, 2583, 1277, 1278, 1278,
05835      1968, 1968, 1274, 2584, 1278, 2585, 1278, 2065, 2065, 1968,
05836      1276, 1285, 1285, 1285, 1285, 2586, 1275, 2587, 1285, 1291,
05837      1291, 2588, 1291, 2589, 2590, 1277, 2593, 1279, 1292, 1292,
05838      1291, 1292, 2594, 1285, 1278, 1291, 1291, 1293, 1293, 1292,
05839 
05840      1293, 1291, 2595, 1291, 1292, 1292, 1718, 1968, 1293, 1718,
05841      1292, 2611, 1292, 1293, 1293, 1294, 1294, 2596, 1294, 1293,
05842      2613, 1293, 2614, 1291, 1299, 1299, 1294, 1299, 1718, 2603,
05843      1718, 1294, 1294, 1776, 1776, 1299, 1776, 1294, 2622, 1294,
05844      1299, 1299, 1296, 1296, 1776, 1296, 1299, 2614, 1299, 1776,
05845      1776, 1285, 2592, 1296, 2620, 2592, 2596, 1292, 1296, 1296,
05846      1297, 1297, 1718, 1297, 1296, 2623, 1296, 2603, 1293, 2624,
05847      2592, 1297, 1768, 1768, 1768, 1768, 1297, 1297, 2620, 1768,
05848      1299, 2625, 1297, 2626, 1297, 1294, 1295, 1295, 1295, 1295,
05849      1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
05850 
05851      1295, 1295, 1295, 1295, 1295, 1295, 2602, 2602, 1296, 1295,
05852      1295, 1295, 1295, 1295, 1295, 2602, 1298, 1298, 2627, 1298,
05853      2633, 2420, 2653, 1297, 2420, 2654, 2628, 1298, 1300, 1300,
05854      2615, 1300, 1298, 1298, 1295, 1295, 1295, 1295, 1298, 1300,
05855      1298, 1613, 1613, 2420, 1300, 1300, 1613, 1613, 2488, 2488,
05856      1300, 2488, 1300, 1964, 1964, 2615, 1613, 1964, 2652, 1301,
05857      1301, 2604, 1301, 2628, 1295, 1295, 1295, 1295, 1298, 2629,
05858      1301, 2426, 2426, 2426, 2426, 1301, 1301, 1302, 1302, 2488,
05859      1302, 1301, 1300, 1301, 2604, 2655, 1303, 1303, 1302, 1303,
05860      2629, 2657, 2652, 1302, 1302, 1304, 1304, 1303, 1304, 1302,
05861 
05862      1964, 1302, 1303, 1303, 1305, 1305, 1304, 1305, 1303, 1613,
05863      1303, 1304, 1304, 1306, 1306, 1305, 1306, 1304, 2658, 1304,
05864      1305, 1305, 2591, 2591, 1306, 2591, 1305, 1301, 1305, 1306,
05865      1306, 2011, 2011, 2011, 2011, 1306, 2659, 1306, 2660, 1936,
05866      2661, 1311, 1311, 1936, 1311, 1936, 1302, 1304, 2426, 2662,
05867      1312, 1312, 1311, 1312, 2632, 1303, 1303, 1311, 1311, 2630,
05868      1305, 1312, 2663, 1311, 2664, 1311, 1312, 1312, 1313, 1313,
05869      2665, 1313, 1312, 2666, 1312, 2279, 2279, 2279, 2279, 1313,
05870      1314, 1314, 2279, 1314, 1313, 1313, 1936, 2011, 2630, 2667,
05871      1313, 1314, 1313, 2632, 1311, 2668, 1314, 1314, 1315, 1315,
05872 
05873      2670, 1315, 1314, 2671, 1314, 2672, 1312, 1316, 1316, 1315,
05874      1316, 2674, 2677, 2685, 1315, 1315, 2068, 2687, 1316, 2068,
05875      1315, 2677, 1315, 1316, 1316, 1317, 1317, 2679, 1317, 1316,
05876      2567, 1316, 1313, 2567, 1318, 1318, 1317, 1318, 2068, 2689,
05877      2068, 1317, 1317, 1314, 2692, 1318, 2674, 1317, 2693, 1317,
05878      1318, 1318, 2567, 2697, 1315, 1857, 1318, 1693, 1318, 1857,
05879      1693, 2698, 1413, 1413, 1413, 1413, 2679, 1857, 1693, 1413,
05880      2699, 2700, 1857, 1693, 1693, 2701, 1316, 1317, 2703, 1693,
05881      1857, 1693, 2673, 2673, 1413, 2673, 1318, 1319, 1319, 1319,
05882      1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319,
05883 
05884      1319, 1319, 1319, 1319, 1319, 1319, 1319, 2678, 2695, 2678,
05885      1319, 1319, 1319, 1319, 1319, 1319, 2709, 1320, 1320, 2695,
05886      1320, 1600, 1600, 1600, 1600, 2719, 1693, 2706, 1320, 1321,
05887      1321, 2680, 1321, 1320, 1320, 1319, 1319, 1319, 1319, 1320,
05888      1321, 1320, 1413, 1600, 1319, 1321, 1321, 1322, 1322, 2704,
05889      1322, 1321, 2680, 1321, 2370, 2370, 2370, 2370, 1322, 1323,
05890      1323, 2370, 1323, 1322, 1322, 1319, 1319, 1319, 1319, 1322,
05891      1323, 1322, 2706, 1320, 2704, 1323, 1323, 1324, 1324, 2720,
05892      1324, 1323, 2718, 1323, 2705, 1321, 1325, 1325, 1324, 1325,
05893      2721, 2722, 2723, 1324, 1324, 1330, 1330, 1325, 1330, 1324,
05894 
05895      2724, 1324, 1325, 1325, 2507, 2725, 1330, 2507, 1325, 2507,
05896      1325, 1330, 1330, 1322, 2718, 1323, 2726, 1330, 2727, 1330,
05897      1331, 1331, 2705, 1331, 1601, 1601, 1601, 1601, 2507, 2728,
05898      2729, 1331, 1418, 1418, 1418, 1418, 1331, 1331, 1414, 1414,
05899      1414, 1414, 1331, 1324, 1331, 1414, 1601, 2631, 1338, 1338,
05900      2631, 1338, 1333, 1333, 1418, 1333, 1418, 2730, 2731, 1338,
05901      1414, 1330, 2732, 1333, 1338, 1338, 2734, 2731, 1333, 1333,
05902      1338, 2631, 1338, 2245, 1333, 2740, 1333, 2245, 2746, 2245,
05903      1331, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
05904      1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
05905 
05906      1332, 1418, 2750, 2734, 1332, 1332, 1332, 1332, 1332, 1332,
05907      1333, 1334, 1334, 2740, 1334, 2751, 1338, 2762, 1414, 2766,
05908      2245, 2767, 1334, 1335, 1335, 2752, 1335, 1334, 1334, 1332,
05909      1332, 1332, 1332, 1334, 1335, 1334, 2752, 2737, 1332, 1335,
05910      1335, 2470, 2470, 2470, 2470, 1335, 2737, 1335, 2470, 1419,
05911      1419, 1419, 1419, 1336, 1336, 2768, 1336, 2770, 2775, 1332,
05912      1332, 1332, 1332, 1334, 1336, 1337, 1337, 2738, 1337, 1336,
05913      1336, 1419, 2738, 1419, 2777, 1336, 1337, 1336, 2779, 1335,
05914      2789, 1337, 1337, 1339, 1339, 2669, 1339, 1337, 2669, 1337,
05915      2471, 2471, 2471, 2471, 1339, 1340, 1340, 2471, 1340, 1339,
05916 
05917      1339, 2739, 1419, 2669, 2790, 1339, 1340, 1339, 2739, 2791,
05918      2769, 1340, 1340, 2769, 2792, 2744, 1336, 1340, 2744, 1340,
05919      2793, 1337, 2795, 1341, 1341, 2771, 1341, 2472, 2472, 2472,
05920      2472, 2796, 1342, 1342, 1341, 1342, 2798, 2744, 2472, 1341,
05921      1341, 1343, 1343, 1342, 1343, 1341, 1340, 1341, 1342, 1342,
05922      1692, 1339, 1343, 1692, 1342, 2799, 1342, 1343, 1343, 1344,
05923      1344, 1692, 1344, 1343, 2771, 1343, 1692, 1692, 1346, 1346,
05924      1344, 1346, 1692, 2815, 1692, 1344, 1344, 1345, 1345, 1346,
05925      1345, 1344, 2773, 1344, 1346, 1346, 2803, 2803, 1345, 1692,
05926      1346, 2821, 1346, 1345, 1345, 1341, 2772, 1347, 1347, 1345,
05927 
05928      1347, 1345, 1342, 2806, 1343, 2804, 2804, 2773, 1347, 1348,
05929      1348, 2822, 1348, 1347, 1347, 1994, 1994, 1994, 1994, 1347,
05930      1348, 1347, 1994, 1965, 1965, 1348, 1348, 1965, 1344, 1349,
05931      1349, 1348, 1349, 1348, 1346, 2772, 2824, 1345, 1350, 1350,
05932      1349, 1350, 2806, 2829, 2831, 1349, 1349, 1352, 1352, 1350,
05933      1352, 1349, 2840, 1349, 1350, 1350, 1351, 1351, 1352, 1351,
05934      1350, 2841, 1350, 1352, 1352, 2826, 1348, 1351, 1347, 1352,
05935      1965, 1352, 1351, 1351, 1353, 1353, 2807, 1353, 1351, 2807,
05936      1351, 1994, 2843, 1354, 1354, 1353, 1354, 2612, 2612, 2826,
05937      1353, 1353, 2612, 2612, 1354, 1994, 1353, 1349, 1353, 1354,
05938 
05939      1354, 2844, 2612, 1350, 2846, 1354, 2847, 1354, 1355, 1355,
05940      2849, 1355, 1351, 2733, 2733, 2755, 2733, 1352, 2755, 1355,
05941      1356, 1356, 2856, 1356, 1355, 1355, 2755, 2813, 2820, 1482,
05942      1355, 1356, 1355, 1482, 1353, 1482, 1356, 1356, 2813, 2820,
05943      2800, 1482, 1356, 2800, 1356, 1353, 1482, 1357, 1357, 2809,
05944      1357, 2800, 2809, 1354, 2862, 2612, 1358, 1358, 1357, 1358,
05945      2809, 2825, 1355, 1357, 1357, 2634, 2863, 1358, 2634, 1357,
05946      2634, 1357, 1358, 1358, 1359, 1359, 1482, 1359, 1358, 2866,
05947      1358, 2825, 2854, 1362, 1362, 1359, 1362, 1356, 2871, 2634,
05948      1359, 1359, 2788, 2854, 1362, 2788, 1359, 2864, 1359, 1362,
05949 
05950      1362, 1360, 1360, 2788, 1360, 1362, 2827, 1362, 2852, 2827,
05951      1361, 1361, 1360, 1361, 2788, 2852, 1357, 1360, 1360, 2872,
05952      2864, 1361, 1358, 1360, 2860, 1360, 1361, 1361, 2827, 2873,
05953      1363, 1363, 1361, 1363, 1361, 2860, 1483, 2874, 2875, 1359,
05954      1483, 1363, 1483, 2876, 2885, 2896, 1363, 1363, 1483, 1362,
05955      2897, 2879, 1363, 1483, 1363, 2879, 2898, 1360, 1364, 1364,
05956      2903, 1364, 1365, 1365, 1931, 1365, 1361, 2904, 1931, 1364,
05957      1931, 2897, 2905, 1365, 1364, 1364, 1931, 2912, 1365, 1365,
05958      1364, 1931, 1364, 1483, 1365, 2920, 1365, 2911, 1366, 1366,
05959      1363, 1366, 1367, 1367, 2930, 1367, 2932, 2064, 2865, 1366,
05960 
05961      2064, 2865, 2936, 1367, 1366, 1366, 2941, 2911, 1367, 1367,
05962      1366, 1931, 1366, 2064, 1367, 2946, 1367, 1368, 1368, 2064,
05963      1368, 2064, 2951, 1364, 2533, 2533, 2533, 2533, 1368, 2956,
05964      2968, 2533, 1365, 1368, 1368, 1369, 1369, 2895, 1369, 1368,
05965      2895, 1368, 2929, 1366, 1367, 2929, 1369, 2535, 2535, 2535,
05966      2535, 1369, 1369, 1416, 1416, 1416, 1416, 1369, 2535, 1369,
05967      1417, 1417, 1417, 1417, 2970, 1420, 1420, 1420, 1420, 1368,
05968      1421, 1421, 1421, 1421, 2407, 1416, 2947, 1416, 1425, 1425,
05969      1425, 1425, 1417, 2838, 1417, 2837, 2838, 1420, 2837, 1420,
05970      2838, 2246, 1421, 2406, 1421, 2246, 2837, 2246, 1369, 2931,
05971 
05972      1425, 2404, 1425, 1426, 1426, 1426, 1426, 1427, 1427, 1427,
05973      1427, 1428, 1428, 1428, 1428, 2947, 1416, 1420, 1429, 1429,
05974      1429, 1429, 2403, 2853, 2966, 1426, 2853, 1426, 1417, 1427,
05975      2402, 1427, 2969, 1428, 2853, 1428, 1425, 2931, 2246, 2966,
05976      1429, 2969, 1429, 1430, 1430, 1430, 1430, 1431, 1431, 1431,
05977      1431, 1762, 1762, 1762, 1762, 1432, 1432, 1432, 1432, 1426,
05978      1433, 1433, 1433, 1433, 2342, 1430, 2330, 1430, 2955, 1431,
05979      2329, 1431, 2313, 1762, 1429, 1427, 1428, 1432, 2868, 1432,
05980      2955, 2868, 1433, 2870, 1433, 2868, 2870, 1434, 1434, 1434,
05981      1434, 2124, 2124, 2124, 2124, 2870, 1525, 1525, 2124, 2869,
05982 
05983      1525, 2950, 2869, 1430, 2950, 2312, 2869, 1431, 1525, 1434,
05984      1432, 1434, 1433, 1525, 1574, 1574, 1574, 1574, 1576, 1576,
05985      1576, 1576, 1585, 1585, 1585, 1585, 1574, 3049, 2959, 1574,
05986      1576, 2959, 3049, 1576, 1585, 2295, 1574, 1574, 1574, 1434,
05987      1576, 1576, 1576, 1525, 1585, 2272, 1577, 1577, 1577, 1577,
05988      1578, 1578, 1578, 1578, 2963, 2971, 2971, 1577, 1577, 2996,
05989      2996, 1577, 1578, 1574, 2996, 1578, 2963, 1576, 1577, 1577,
05990      1577, 2124, 2271, 1578, 1578, 1579, 1579, 1579, 1579, 1580,
05991      1580, 1580, 1580, 2270, 2269, 2892, 2808, 1579, 2892, 2808,
05992      1579, 1580, 2264, 2262, 1580, 1577, 2892, 2808, 1579, 1578,
05993 
05994      2261, 2259, 1580, 1580, 1584, 1584, 1584, 1584, 2808, 2258,
05995      2823, 1584, 2257, 2823, 2972, 1577, 2256, 2972, 1586, 1586,
05996      1586, 1586, 3002, 3002, 1579, 1586, 1584, 3002, 1580, 2255,
05997      1586, 3124, 1763, 1763, 1763, 1763, 3124, 1586, 1586, 1586,
05998      1586, 1587, 1587, 1587, 1587, 2972, 2254, 2253, 1587, 1595,
05999      1595, 1595, 1595, 1587, 1763, 2252, 1595, 2251, 2250, 2249,
06000      1587, 1587, 1587, 1587, 2823, 2247, 1590, 1590, 1590, 1590,
06001      2243, 1595, 2242, 1590, 1596, 1596, 1596, 1596, 1590, 2823,
06002      2241, 1596, 2240, 2239, 1584, 1590, 1590, 1590, 1590, 1597,
06003      1597, 1597, 1597, 2238, 2900, 2237, 1596, 2900, 1586, 2236,
06004 
06005      1597, 1597, 2235, 2234, 1597, 2233, 2900, 2534, 2534, 2534,
06006      2534, 1597, 1597, 1597, 2534, 1595, 2232, 1769, 1769, 1769,
06007      1769, 1587, 2231, 2230, 2229, 1608, 1608, 1608, 1608, 1595,
06008      1609, 1609, 1609, 1609, 2228, 2227, 1608, 1608, 1597, 1769,
06009      1608, 1609, 1609, 2226, 2221, 1609, 1590, 1608, 1608, 1608,
06010      3004, 3004, 1609, 1609, 1596, 3004, 1597, 2220, 1622, 1622,
06011      1622, 1622, 2219, 2218, 2207, 2367, 2367, 2367, 2367, 1622,
06012      1622, 2205, 2367, 1622, 1608, 1623, 1623, 1623, 1623, 1609,
06013      1622, 1622, 1622, 2204, 3006, 3006, 1623, 1623, 1694, 3006,
06014      1623, 1694, 1695, 2203, 2202, 1695, 3003, 1623, 1623, 1694,
06015 
06016      2201, 3003, 3003, 1695, 1694, 1694, 3003, 1622, 1695, 1695,
06017      1694, 2200, 1694, 2199, 1695, 2198, 1695, 2948, 2948, 2948,
06018      2948, 2197, 2196, 2194, 1623, 1627, 1627, 1627, 1627, 1627,
06019      1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
06020      1627, 1627, 1627, 1627, 1627, 2367, 2193, 2191, 1627, 1627,
06021      1627, 1627, 1627, 1627, 2187, 1694, 2186, 2185, 2184, 2753,
06022      1695, 1879, 1879, 1879, 1879, 2753, 1634, 1634, 1634, 1634,
06023      2753, 2753, 2753, 1627, 1627, 1627, 1627, 1634, 1634, 2902,
06024      2753, 1634, 2902, 1879, 2183, 1879, 2182, 2181, 1634, 1634,
06025      1634, 2902, 1881, 1881, 1881, 1881, 1704, 3008, 3008, 1704,
06026 
06027      2180, 2179, 3008, 1627, 1627, 1627, 1627, 1704, 2600, 2600,
06028      2600, 2600, 1704, 1704, 1881, 1634, 1881, 2178, 1704, 2600,
06029      1704, 2177, 1634, 1657, 1657, 1657, 1657, 1886, 1886, 1886,
06030      1886, 2753, 2175, 2909, 1657, 1657, 2909, 2114, 1657, 2601,
06031      2601, 2601, 2601, 2083, 2909, 1657, 1657, 1657, 2066, 1886,
06032      2601, 1886, 2063, 2062, 1705, 2054, 2051, 1705, 1704, 1885,
06033      1885, 1885, 1885, 1706, 2893, 1705, 1706, 2893, 3010, 3010,
06034      1705, 1705, 1657, 3010, 1706, 2893, 1705, 1657, 1705, 1706,
06035      1706, 1885, 2040, 1885, 2039, 1706, 2037, 1706, 2036, 2021,
06036      1886, 2015, 1657, 1703, 1703, 1703, 1703, 1703, 1703, 1703,
06037 
06038      1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703,
06039      1703, 1703, 1703, 1705, 2008, 2007, 1703, 1703, 1703, 1703,
06040      1703, 1703, 2922, 1707, 1997, 2922, 1707, 1993, 1991, 1885,
06041      1990, 2893, 1706, 2922, 1707, 1708, 1989, 1982, 1708, 1707,
06042      1707, 1703, 1703, 1703, 1703, 1707, 1708, 1707, 1977, 1975,
06043      1703, 1708, 1708, 1709, 1974, 2925, 1709, 1708, 2925, 1708,
06044      2858, 2858, 2858, 2858, 1709, 1710, 2925, 2858, 1710, 1709,
06045      1709, 1703, 1703, 1703, 1703, 1709, 1710, 1709, 1972, 1961,
06046      1711, 1710, 1710, 1711, 1959, 3016, 3016, 1710, 1957, 1710,
06047      3016, 1711, 1955, 1707, 1952, 1708, 1711, 1711, 1712, 1950,
06048 
06049      1949, 1712, 1711, 1948, 1711, 2918, 2918, 2918, 2918, 1712,
06050      1713, 2925, 2918, 1713, 1712, 1712, 1892, 1892, 1892, 1892,
06051      1712, 1713, 1712, 1947, 1709, 1714, 1713, 1713, 1714, 1946,
06052      1945, 1944, 1713, 1943, 1713, 1710, 1714, 1942, 1892, 1941,
06053      1892, 1714, 1714, 1711, 1940, 1939, 1938, 1714, 2923, 1714,
06054      1715, 2923, 1928, 1715, 2605, 2605, 2605, 2605, 1924, 2923,
06055      1716, 1715, 1712, 1716, 1923, 2605, 1715, 1715, 3018, 3018,
06056      1713, 1716, 1715, 3018, 1715, 1717, 1716, 1716, 1717, 1922,
06057      1921, 1892, 1716, 1920, 1716, 1719, 1717, 2935, 1719, 1919,
06058      2935, 1717, 1717, 1714, 1918, 1917, 1719, 1717, 2935, 1717,
06059 
06060      1720, 1719, 1719, 1720, 1916, 1915, 1715, 1719, 1914, 1719,
06061      1721, 1720, 1903, 1721, 1902, 2923, 1720, 1720, 1901, 1900,
06062      1899, 1721, 1720, 1716, 1720, 1722, 1721, 1721, 1722, 1898,
06063      1897, 1896, 1721, 1883, 1721, 1723, 1722, 1719, 1723, 3020,
06064      3020, 1722, 1722, 1878, 3020, 1717, 1723, 1722, 1877, 1722,
06065      1724, 1723, 1723, 1724, 1876, 1875, 1874, 1723, 1873, 1723,
06066      1725, 1724, 1872, 1725, 1871, 1720, 1724, 1724, 1870, 1869,
06067      1726, 1725, 1724, 1726, 1724, 1868, 1725, 1725, 1867, 1866,
06068      1863, 1726, 1725, 1721, 1725, 2953, 1726, 1726, 2953, 1856,
06069      1727, 1722, 1726, 1727, 1726, 1850, 2953, 2943, 1849, 1728,
06070 
06071      2943, 1727, 1728, 1723, 3022, 3022, 1727, 1727, 2943, 3022,
06072      1728, 1848, 1727, 1847, 1727, 1728, 1728, 1729, 1724, 2942,
06073      1729, 1728, 2942, 1728, 2952, 1725, 1846, 2952, 1729, 1730,
06074      2942, 1845, 1730, 1729, 1729, 2952, 1844, 2953, 1726, 1729,
06075      1730, 1729, 1843, 1727, 1842, 1730, 1730, 1731, 1841, 2763,
06076      1731, 1730, 1840, 1730, 1839, 2763, 1732, 1837, 1731, 1732,
06077      2763, 2763, 2763, 1731, 1731, 2943, 1778, 1732, 1728, 1731,
06078      2763, 1731, 1732, 1732, 1733, 2942, 2958, 1733, 1732, 2958,
06079      1732, 1770, 1702, 1730, 1729, 1733, 1734, 2958, 1701, 1734,
06080      1733, 1733, 2952, 1699, 1684, 1683, 1733, 1734, 1733, 1731,
06081 
06082      1651, 1735, 1734, 1734, 1735, 1645, 1612, 1605, 1734, 1602,
06083      1734, 1736, 1735, 1594, 1736, 3024, 3024, 1735, 1735, 1593,
06084      3024, 2763, 1736, 1735, 1732, 1735, 1737, 1736, 1736, 1737,
06085      1592, 1558, 1555, 1736, 1553, 1736, 1738, 1737, 1734, 1738,
06086      1542, 1733, 1737, 1737, 3027, 3027, 2958, 1738, 1737, 3027,
06087      1737, 1739, 1738, 1738, 1739, 1532, 1522, 1735, 1738, 1520,
06088      1738, 1740, 1739, 2957, 1740, 1518, 2957, 1739, 1739, 1515,
06089      1512, 1736, 1740, 1739, 2957, 1739, 1741, 1740, 1740, 1741,
06090      1510, 1507, 1737, 1740, 1504, 1740, 1742, 1741, 1503, 1742,
06091      3030, 3030, 1741, 1741, 1502, 3030, 1743, 1742, 1741, 1743,
06092 
06093      1741, 1501, 1742, 1742, 1500, 1738, 1744, 1743, 1742, 1744,
06094      1742, 1499, 1743, 1743, 1498, 2957, 1497, 1744, 1743, 1496,
06095      1743, 1739, 1744, 1744, 1745, 1495, 1494, 1745, 1744, 1493,
06096      1744, 1492, 1491, 1740, 1490, 1745, 2646, 2646, 2646, 2646,
06097      1745, 1745, 1746, 1489, 1741, 1746, 1745, 2646, 1745, 1488,
06098      1487, 1747, 1743, 1746, 1747, 3009, 1742, 1744, 1746, 1746,
06099      3009, 3009, 1747, 1474, 1746, 3009, 1746, 1747, 1747, 1472,
06100      1471, 1748, 1744, 1747, 1748, 1747, 2954, 2954, 2954, 2954,
06101      1749, 1470, 1748, 1749, 1745, 3033, 3033, 1748, 1748, 2960,
06102      3033, 1749, 2960, 1748, 1469, 1748, 1749, 1749, 1750, 1468,
06103 
06104      2960, 1750, 1749, 1467, 1749, 1747, 1466, 1746, 1465, 1750,
06105      1752, 1464, 1463, 1752, 1750, 1750, 1766, 1766, 1766, 1766,
06106      1750, 1752, 1750, 1766, 1462, 1748, 1752, 1752, 1461, 1460,
06107      1753, 1459, 1752, 1753, 1752, 3035, 3035, 1458, 1766, 1749,
06108      3035, 1753, 2681, 2681, 2681, 2681, 1753, 1753, 2682, 2682,
06109      2682, 2682, 1753, 2681, 1753, 3044, 3044, 1457, 1456, 2682,
06110      3044, 1750, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751,
06111      1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751,
06112      1751, 1751, 1455, 1752, 1454, 1751, 1751, 1751, 1751, 1751,
06113      1751, 2961, 1754, 1453, 2961, 1754, 1766, 1452, 1451, 1753,
06114 
06115      3057, 3057, 2961, 1754, 1755, 3057, 1450, 1755, 1754, 1754,
06116      1751, 1751, 1751, 1751, 1754, 1755, 1754, 1449, 3071, 3071,
06117      1755, 1755, 1756, 3071, 2962, 1756, 1755, 2962, 1755, 2368,
06118      2368, 2368, 2368, 1756, 1757, 2962, 2368, 1757, 1756, 1756,
06119      1751, 1751, 1751, 1751, 1756, 1757, 1756, 1754, 3147, 3147,
06120      1757, 1757, 1754, 3147, 1448, 1447, 1757, 1754, 1757, 1758,
06121      1446, 2961, 1758, 1445, 1443, 2274, 2274, 2274, 2274, 1755,
06122      1758, 1759, 2274, 1442, 1759, 1758, 1758, 1441, 1440, 1439,
06123      1756, 1758, 1759, 1758, 1438, 1437, 1760, 1759, 1759, 1760,
06124      2962, 1424, 1757, 1759, 1423, 1759, 1761, 1760, 1411, 1761,
06125 
06126      3215, 3215, 1760, 1760, 1410, 3215, 1409, 1761, 1760, 2368,
06127      1760, 1408, 1761, 1761, 1767, 1767, 1767, 1767, 1761, 1407,
06128      1761, 1767, 1771, 1771, 1406, 1771, 1772, 1772, 1405, 1772,
06129      1758, 2274, 1404, 1771, 1403, 1402, 1767, 1772, 1771, 1771,
06130      1401, 1759, 1772, 1772, 1771, 2274, 1771, 1399, 1772, 1398,
06131      1772, 1397, 1761, 1396, 1760, 1773, 1773, 1395, 1773, 1774,
06132      1774, 1771, 1774, 3011, 1394, 1383, 1773, 1382, 3011, 3011,
06133      1774, 1773, 1773, 3011, 1381, 1774, 1774, 1773, 1380, 1773,
06134      1379, 1774, 1377, 1774, 1376, 1775, 1775, 1375, 1775, 2405,
06135      2405, 2405, 2405, 1374, 1767, 1772, 1775, 1781, 1781, 1373,
06136 
06137      1781, 1775, 1775, 1986, 1986, 1986, 1986, 1775, 1781, 1775,
06138      1986, 2405, 1370, 1781, 1781, 2741, 2741, 2741, 2741, 1781,
06139      1328, 1781, 1773, 1309, 1286, 1986, 2741, 1774, 1780, 1780,
06140      1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
06141      1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1236, 1235,
06142      1233, 1780, 1780, 1780, 1780, 1780, 1780, 1214, 1213, 1781,
06143      1895, 1895, 1895, 1895, 1782, 1782, 2405, 1782, 1211, 1887,
06144      1887, 1887, 1887, 1191, 1185, 1782, 1780, 1780, 1780, 1780,
06145      1782, 1782, 1895, 1986, 1895, 1780, 1782, 1184, 1782, 1117,
06146      1095, 1887, 1094, 1887, 1783, 1783, 1091, 1783, 1888, 1888,
06147 
06148      1888, 1888, 1090, 1089, 1088, 1783, 1780, 1780, 1780, 1780,
06149      1783, 1783, 1083, 1077, 1784, 1784, 1783, 1784, 1783, 1053,
06150      1888, 1051, 1888, 1782, 1017, 1784, 1785, 1785, 1895, 1785,
06151      1784, 1784, 1014, 1011, 1009, 1006, 1784, 1785, 1784, 1887,
06152      1005, 1004, 1785, 1785, 1786, 1786, 2965, 1786, 1785, 2965,
06153      1785, 1002, 1888, 1787, 1787, 1786, 1787, 2965, 1000,  999,
06154      1786, 1786,  997, 1783, 1787,  996, 1786,  995, 1786, 1787,
06155      1787, 1788, 1788,  994, 1788, 1787,  993, 1787,  992,  990,
06156      1789, 1789, 1788, 1789, 1784,  989, 1785, 1788, 1788, 1790,
06157      1790, 1789, 1790, 1788,  988, 1788, 1789, 1789, 3233, 3233,
06158 
06159      1790,  987, 1789, 3233, 1789, 1790, 1790,  986,  985, 1791,
06160      1791, 1790, 1791, 1790, 2965, 1786,  962,  960,  959,  958,
06161      1791, 1792, 1792, 1787, 1792, 1791, 1791, 2688, 2688, 2688,
06162      2688, 1791, 1792, 1791, 1788,  957, 3017, 1792, 1792,  955,
06163      1789, 3017, 3017, 1792,  954, 1792, 3017, 1793, 1793, 2688,
06164      1793, 1794, 1794,  953, 1794, 2686, 2686, 1790, 1793,  952,
06165      2686, 2686, 1794, 1793, 1793, 1791,  950, 1794, 1794, 1793,
06166      2686, 1793,  949, 1794,  948, 1794, 1795, 1795,  947, 1795,
06167      1796, 1796,  946, 1796, 1792, 3248, 3248, 1795,  939, 3019,
06168      3248, 1796, 1795, 1795, 3019, 3019, 1796, 1796, 1795, 3019,
06169 
06170      1795,  938, 1796,  937, 1796, 1797, 1797, 1794, 1797, 1798,
06171      1798,  936, 1798, 3262, 3262,  934, 1797, 1793, 3262,  933,
06172      1798, 1797, 1797, 2686,  932, 1798, 1798, 1797, 1795, 1797,
06173       931, 1798,  929, 1798,  928, 1799, 1799,  927, 1799, 1800,
06174      1800,  926, 1800, 3023,  925, 1796, 1799,  921, 3023, 3023,
06175      1800, 1799, 1799, 3023,  920, 1800, 1800, 1799,  919, 1799,
06176       918, 1800,  917, 1800,  912, 1801, 1801,  911, 1801, 1802,
06177      1802,  910, 1802,  909,  886, 1798, 1801,  885, 1797,  876,
06178      1802, 1801, 1801, 3320, 3320, 1802, 1802, 1801, 3320, 1801,
06179       874, 1802,  873, 1802, 1803, 1803,  872, 1803, 1804, 1804,
06180 
06181       871, 1804,  870, 1799,  869, 1803,  867, 1800,  866, 1804,
06182      1803, 1803, 3331, 3331, 1804, 1804, 1803, 3331, 1803,  865,
06183      1804,  864, 1804, 2964, 1805, 1805, 2964, 1805, 1806, 1806,
06184      1801, 1806,  862,  861, 2964, 1805,  860, 1802,  859, 1806,
06185      1805, 1805,  858,  857, 1806, 1806, 1805, 1803, 1805,  856,
06186      1806,  845, 1806, 1807, 1807,  844, 1807, 1808, 1808,  838,
06187      1808,  837,  836,  835, 1807,  831, 3026, 1804, 1808, 1807,
06188      1807, 3026, 3026, 1808, 1808, 1807, 3026, 1807,  830, 1808,
06189       829, 1808, 1806,  823, 1809, 1809,  822, 1809,  819, 2964,
06190       782, 1805, 3034, 1810, 1810, 1809, 1810, 3034, 3034,  752,
06191 
06192      1809, 1809, 3034,  743, 1810, 1807, 1809,  742, 1809, 1810,
06193      1810, 1811, 1811,  732, 1811, 1810,  699, 1810,  670,  669,
06194      1812, 1812, 1811, 1812,  666, 1808,  663, 1811, 1811, 2967,
06195       662, 1812, 2967, 1811,  646, 1811, 1812, 1812, 1813, 1813,
06196      2967, 1813, 1812,  614, 1812, 1810,  583, 1814, 1814, 1813,
06197      1814, 1809,  582,  577, 1813, 1813,  575,  567, 1814,  561,
06198      1813,  535, 1813, 1814, 1814, 1815, 1815, 1811, 1815, 1814,
06199       531, 1814,  525, 3064, 1816, 1816, 1815, 1816, 3064, 3064,
06200      1812, 1815, 1815, 3064,  488, 1816, 2764, 1815,  487, 1815,
06201      1816, 1816, 2764, 2764, 1813,  477, 1816, 2967, 1816, 2764,
06202 
06203       476, 1817, 1817,  475, 1817,  472,  470, 2764,  469,  467,
06204      1818, 1818, 1817, 1818,  466,  454, 1814, 1817, 1817, 1819,
06205      1819, 1818, 1819, 1817,  439, 1817, 1818, 1818, 1820, 1820,
06206      1819, 1820, 1818,  435, 1818, 1819, 1819, 1815,  429, 1820,
06207       428, 1819, 1816, 1819, 1820, 1820, 2462, 2462, 2462, 2462,
06208      1820,  427, 1820, 2462,  425,  424, 1821, 1821, 2764, 1821,
06209      2764,  422, 1889, 1889, 1889, 1889, 1818, 1821,  421,  420,
06210      1819, 1817, 1821, 1821,  419,  418, 1822, 1822, 1821, 1822,
06211      1821,  409,  408,  407, 1889, 1819, 1889, 1822, 1820,  405,
06212       404,  402, 1822, 1822, 1823, 1823,  401, 1823, 1822,  400,
06213 
06214      1822,  399,  398, 1824, 1824, 1823, 1824,  396,  383,  382,
06215      1823, 1823, 1825, 1825, 1824, 1825, 1823,  381, 1823, 1824,
06216      1824, 1821,  380, 1825,  379, 1824, 2462, 1824, 1825, 1825,
06217      1822,  377, 1889,  350, 1825,  344, 1825,  343,  342, 1826,
06218      1826,  339, 1826, 1891, 1891, 1891, 1891,  338, 1823,  336,
06219      1826,  335,  334,  332,  331, 1826, 1826, 1827, 1827,  315,
06220      1827, 1826, 1824, 1826,  305, 1891,  304, 1891, 1827, 1828,
06221      1828,  303, 1828, 1827, 1827, 1825,  302,  294,  287, 1827,
06222      1828, 1827, 3067,  243,  242, 1828, 1828, 1829, 1829,  239,
06223      1829, 1828,  209, 1828, 1891,  204, 3067, 3067, 1829, 1830,
06224 
06225      1830, 3067, 1830, 1829, 1829, 2745, 2745, 2745, 2745, 1829,
06226      1830, 1829, 1826,  197,  193, 1830, 1830,  192,  191, 1831,
06227      1831, 1830, 1831, 1830, 1828,  162, 1827, 2745,  156, 1828,
06228      1831,  152,  147,  138, 1828, 1831, 1831, 1832, 1832,  136,
06229      1832, 1831,  128, 1831, 1890, 1890, 1890, 1890, 1832,  119,
06230      3068,  117, 1829, 1832, 1832, 3068, 3068, 1830,  108, 1832,
06231      3068, 1832, 1833, 1833,   99, 1833, 1890,   95, 1890,   89,
06232        80, 1834, 1834, 1833, 1834, 3145,   72, 1831, 1833, 1833,
06233      1835, 1835, 1834, 1835, 1833,   65, 1833, 1834, 1834, 3145,
06234      3145, 1835,    0, 1834, 3145, 1834, 1835, 1835,    0,    0,
06235 
06236      1890,    0, 1835,    0, 1835,    0,    0,    0, 1832, 2206,
06237      2206, 2206, 2206, 2209, 2209, 2209, 2209, 2742, 2742, 2742,
06238      2742,    0,    0, 2797, 2797, 2797, 2797,    0, 2742,    0,
06239         0, 2206, 1833, 2206, 2797, 2209, 1835, 2209,    0, 1834,
06240      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06241      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06242      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06243      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06244      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06245      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06246 
06247      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06248      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
06249      1884, 1884, 1893, 1893, 1893, 1893, 1894, 1894, 1894, 1894,
06250         0, 2778, 2778, 2778, 2778,    0, 2208, 2208, 2208, 2208,
06251      1985, 1985, 1985, 1985, 1893,    0, 1893,    0, 1894,    0,
06252      1894, 1985, 1985, 2778, 2069, 1985, 1985, 2069, 2208,    0,
06253      2208,    0, 1985, 1985, 1985, 2069, 2842, 2842, 2842, 2842,
06254      2069, 2069, 2465, 2465, 2465, 2465, 2069, 2842, 2069,    0,
06255      1893,    0,    0, 2465, 2927, 2927, 2927, 2927, 2208, 1985,
06256         0, 2927,    0,    0, 2465, 2069, 1894, 1937, 1937, 1937,
06257 
06258      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06259      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06260      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06261      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06262      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06263      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06264      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
06265      1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1987,
06266      1987, 1987, 1987, 3069,    0,    0, 1987,    0, 3069, 3069,
06267         0, 1987, 3173, 3069,    0,    0,    0,    0, 1987, 1987,
06268 
06269      1987, 1987, 1988, 1988, 1988, 1988, 3173, 3173,    0, 1988,
06270         0, 3173,    0,    0, 1988, 1999, 1999, 1999, 1999,    0,
06271         0, 1988, 1988, 1988, 1988,    0, 1999, 1999,    0,    0,
06272      1999, 2000, 2000, 2000, 2000,    0, 3305, 1999, 1999, 1999,
06273         0, 2070, 2000, 2000, 2070, 2071, 2000,    0, 2071,    0,
06274      3305, 3305, 2070, 2000, 2000, 3305, 2071, 2070, 2070, 1987,
06275         0, 2071, 2071, 2070, 1999, 2070,    0, 2071,    0, 2071,
06276      2466, 2466, 2466, 2466,    0,    0, 2845, 2845, 2845, 2845,
06277      2000, 2466, 1988, 1992, 1992, 1992, 1992, 2845,    0,    0,
06278         0,    0, 2466, 2092, 1992, 1992, 2092, 2075, 1992, 1992,
06279 
06280      2075, 2071,    0,    0, 2092, 1992, 1992, 1992, 2075, 2092,
06281      2092,    0, 2070, 2075, 2075, 2092,    0, 2092,    0, 2075,
06282         0, 2075, 2944, 2944, 2944, 2944,    0,    0,    0,    0,
06283         0,    0, 1992, 2944,    0,    0,    0,    0,    0, 1992,
06284      2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003,
06285      2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003,
06286      2092,    0, 2075, 2003, 2003, 2003, 2003, 2003, 2003,    0,
06287         0,    0, 2211, 2211, 2211, 2211, 2072,    0,    0, 2072,
06288      2210, 2210, 2210, 2210,    0,    0,    0, 2072, 2003, 2003,
06289      2003, 2003, 2072, 2072, 2211,    0, 2211,    0, 2072,    0,
06290 
06291      2072,    0, 2210,    0, 2210, 2212, 2212, 2212, 2212, 2275,
06292      2275, 2275, 2275,    0,    0,    0, 2275,    0, 2003, 2003,
06293      2003, 2003, 2010, 2010, 2010, 2010,    0, 2212, 2072, 2212,
06294         0,    0, 2073, 2010, 2010, 2073, 2210, 2010,    0,    0,
06295         0,    0, 2211, 2073, 2010, 2010, 2010,    0, 2073, 2073,
06296      2076,    0,    0, 2076, 2073,    0, 2073,    0,    0,    0,
06297      2212, 2076, 2223, 2223, 2223, 2223, 2076, 2076,    0,    0,
06298         0, 2010, 2076, 3076, 2076, 2275, 2010,    0, 3076, 3076,
06299         0,    0,    0, 3076, 2073, 2223,    0, 2223,    0, 2275,
06300         0, 2010, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052,
06301 
06302      2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052,
06303      2052, 2052,    0, 2076,    0, 2052, 2052, 2052, 2052, 2052,
06304      2052,    0, 2223,    0, 2277, 2277, 2277, 2277,    0,    0,
06305      2215, 2215, 2215, 2215, 2079, 2277,    0, 2079,    0, 2223,
06306      2052, 2052, 2052, 2052, 2081, 2079, 2277, 2081, 2277,    0,
06307      2079, 2079, 2215,    0, 2215, 2081, 2079,    0, 2079, 3077,
06308      2081, 2081, 2052,    0, 3077, 3077, 2081,    0, 2081, 3077,
06309      2052, 2052, 2052, 2052, 2074, 2074, 2074, 2074, 2074, 2074,
06310      2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074,
06311      2074, 2074, 2074, 2074, 2079, 2215,    0, 2074, 2074, 2074,
06312 
06313      2074, 2074, 2074,    0,    0, 2708, 2708, 3079,    0, 2081,
06314      2708, 2708, 3079, 3079,    0,    0, 2077, 3079,    0, 2077,
06315      2708,    0, 2074, 2074, 2074, 2074, 2074, 2077,    0,    0,
06316         0,    0, 2077, 2077, 2078,    0,    0, 2078, 2077,    0,
06317      2077,    0,    0,    0,    0, 2078, 2080,    0,    0, 2080,
06318      2078, 2078, 2074, 2074, 2074, 2074, 2078, 2080, 2078,    0,
06319         0,    0, 2080, 2080, 2084,    0,    0, 2084, 2080,    0,
06320      2080,    0, 2077, 2708,    0, 2084, 2891, 2891, 2891, 2891,
06321      2084, 2084, 2085, 2891,    0, 2085, 2084,    0, 2084,    0,
06322      2078, 2086,    0, 2085, 2086,    0,    0,    0, 2085, 2085,
06323 
06324      2080,    0, 2086,    0, 2085,    0, 2085, 2086, 2086, 2087,
06325         0, 3080, 2087, 2086,    0, 2086, 3080, 3080, 2084, 2088,
06326      2087, 3080, 2088,    0,    0, 2087, 2087,    0,    0, 2089,
06327      2088, 2087, 2089, 2087,    0, 2088, 2088, 2085,    0,    0,
06328      2089, 2088, 2891, 2088,    0, 2089, 2089,    0,    0, 2090,
06329         0, 2089, 2090, 2089,    0,    0, 2891,    0, 3085, 2091,
06330      2090, 2086, 2091, 3085, 3085, 2090, 2090,    0, 3085, 2087,
06331      2091, 2090,    0, 2090,    0, 2091, 2091, 2093,    0,    0,
06332      2093, 2091,    0, 2091,    0, 2089, 3087, 2094, 2093, 2088,
06333      2094, 3087, 3087, 2093, 2093,    0, 3087,    0, 2094, 2093,
06334 
06335         0, 2093, 2095, 2094, 2094, 2095,    0,    0,    0, 2094,
06336         0, 2094,    0, 2095, 2090,    0,    0, 2096, 2095, 2095,
06337      2096,    0, 2091,    0, 2095,    0, 2095, 2097, 2096,    0,
06338      2097,    0,    0, 2096, 2096,    0,    0, 2098, 2097, 2096,
06339      2098, 2096,    0, 2097, 2097,    0,    0, 2093, 2098, 2097,
06340         0, 2097, 2099, 2098, 2098, 2099,    0, 2094,    0, 2098,
06341         0, 2098, 2100, 2099,    0, 2100,    0,    0, 2099, 2099,
06342         0,    0, 2095, 2100, 2099, 3149, 2099, 2096, 2100, 2100,
06343      3149, 3149,    0,    0, 2100, 3149, 2100, 2101,    0,    0,
06344      2101,    0, 2557, 2557, 2557, 2557,    0, 2097, 2101,    0,
06345 
06346         0,    0, 2102, 2101, 2101, 2102, 2099, 2098,    0, 2101,
06347         0, 2101, 2103, 2102, 2557, 2103, 2100,    0, 2102, 2102,
06348         0,    0, 2104, 2103, 2102, 2104, 2102,    0, 2103, 2103,
06349         0,    0,    0, 2104, 2103,    0, 2103, 2105, 2104, 2104,
06350      2105,    0,    0,    0, 2104, 3150, 2104,    0, 2105, 2106,
06351      3150, 3150, 2106, 2105, 2105, 3150,    0, 2101, 2102, 2105,
06352      2106, 2105,    0,    0, 2107, 2106, 2106, 2107, 2103, 2557,
06353         0, 2106,    0, 2106, 2108, 2107,    0, 2108,    0,    0,
06354      2107, 2107,    0,    0,    0, 2108, 2107, 2104, 2107,    0,
06355      2108, 2108, 2105,    0, 2109,    0, 2108, 2109, 2108,    0,
06356 
06357      2828, 2828, 2828, 2828,    0, 2109,    0,    0,    0, 2110,
06358      2109, 2109, 2110,    0,    0,    0, 2109,    0, 2109, 2106,
06359      2110, 2107, 2828,    0, 2111, 2110, 2110, 2111, 2108,    0,
06360         0, 2110,    0, 2110, 2112, 2111,    0, 2112,    0,    0,
06361      2111, 2111,    0,    0, 2113, 2112, 2111, 2113, 2111,    0,
06362      2112, 2112, 2109,    0,    0, 2113, 2112,    0, 2112,    0,
06363      2113, 2113,    0,    0, 2116,    0, 2113, 2116, 2113, 2213,
06364      2213, 2213, 2213, 2119,    0, 2116, 2119,    0,    0, 2110,
06365      2116, 2116,    0, 2111, 2119,    0, 2116,    0, 2116, 2119,
06366      2119, 2213,    0, 2213,    0, 2119, 2113, 2119,    0,    0,
06367 
06368         0,    0, 2112, 2115, 2115, 2115, 2115, 2115, 2115, 2115,
06369      2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115,
06370      2115, 2115, 2115,    0, 2116, 2119, 2115, 2115, 2115, 2115,
06371      2115, 2115, 3162, 2117,    0,    0, 2117, 3162, 3162, 2213,
06372         0,    0, 3162,    0, 2117, 2118,    0,    0, 2118, 2117,
06373      2117, 2115, 2115, 2115, 2115, 2117, 2118, 2117,    0,    0,
06374         0, 2118, 2118, 2120,    0,    0, 2120, 2118,    0, 2118,
06375         0,    0,    0, 2115, 2120, 2121,    0,    0, 2121, 2120,
06376      2120, 2115, 2115, 2115, 2115, 2120, 2121, 2120,    0, 2117,
06377      2122, 2121, 2121, 2122,    0,    0,    0, 2121, 3163, 2121,
06378 
06379      2118, 2122, 2123, 3163, 3163, 2123, 2122, 2122, 3163,    0,
06380         0,    0, 2122, 2123, 2122,    0,    0,    0, 2123, 2123,
06381      2125, 2125,    0, 2125, 2123,    0, 2123, 2121, 2120,    0,
06382         0, 2125, 2126, 2126,    0, 2126, 2125, 2125,    0,    0,
06383         0, 3164, 2125, 2126, 2125,    0, 3164, 3164, 2126, 2126,
06384      2122, 3164,    0, 2123, 2126,    0, 2126, 2127, 2127,    0,
06385      2127, 2125,    0,    0,    0,    0, 2128, 2128, 2127, 2128,
06386         0,    0,    0, 2127, 2127, 2129, 2129, 2128, 2129, 2127,
06387         0, 2127, 2128, 2128, 2130, 2130, 2129, 2130, 2128,    0,
06388      2128, 2129, 2129, 2131, 2131, 2130, 2131, 2129,    0, 2129,
06389 
06390      2130, 2130,    0, 2126, 2131,    0, 2130,    0, 2130, 2131,
06391      2131,    0,    0, 2127,    0, 2131,    0, 2131, 2128, 2132,
06392      2132,    0, 2132, 2133, 2133,    0, 2133, 2129,    0,    0,
06393      2132,    0, 3166,    0, 2133, 2132, 2132, 3166, 3166, 2133,
06394      2133, 2132, 3166, 2132,    0, 2133,    0, 2133,    0, 2130,
06395      2134, 2134,    0, 2134, 2135, 2135, 2131, 2135, 3172,    0,
06396         0, 2134,    0, 3172, 3172, 2135, 2134, 2134, 3172,    0,
06397      2135, 2135, 2134,    0, 2134, 2132, 2135,    0, 2135, 2133,
06398         0,    0,    0,    0,    0,    0, 2137, 2137,    0, 2137,
06399      2139, 2139,    0, 2139, 2776, 2776,    0, 2137,    0, 2776,
06400 
06401      2776, 2139, 2137, 2137, 2134,    0, 2139, 2139, 2137, 2776,
06402      2137,    0, 2139,    0, 2139,    0,    0,    0,    0, 2135,
06403      2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
06404      2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
06405      2137,    0,    0, 2136, 2136, 2136, 2136, 2136, 2136,    0,
06406      2138, 2138,    0, 2138, 2214, 2214, 2214, 2214,    0,    0,
06407      2139, 2138, 2776,    0,    0,    0, 2138, 2138, 2136, 2136,
06408      2136, 2136, 2138,    0, 2138,    0, 2214,    0, 2214,    0,
06409      2140, 2140,    0, 2140, 2136,    0,    0, 2921, 2921, 2921,
06410      2921, 2140, 2141, 2141, 2921, 2141, 2140, 2140, 2136, 2136,
06411 
06412      2136, 2136, 2140, 2141, 2140, 2138,    0,    0, 2141, 2141,
06413      2142, 2142, 2214, 2142, 2141,    0, 2141,    0,    0, 2143,
06414      2143, 2142, 2143,    0,    0,    0, 2142, 2142, 2144, 2144,
06415      2143, 2144, 2142,    0, 2142, 2143, 2143,    0,    0, 2144,
06416      2140, 2143,    0, 2143, 2144, 2144,    0,    0, 2145, 2145,
06417      2144, 2145, 2144, 2921,    0,    0,    0, 2146, 2146, 2145,
06418      2146,    0, 2141,    0, 2145, 2145, 2142, 2921, 2146,    0,
06419      2145,    0, 2145, 2146, 2146,    0,    0, 2147, 2147, 2146,
06420      2147, 2146,    0,    0, 2143,    0, 2148, 2148, 2147, 2148,
06421         0, 2144,    0, 2147, 2147, 2149, 2149, 2148, 2149, 2147,
06422 
06423         0, 2147, 2148, 2148,    0,    0, 2149,    0, 2148,    0,
06424      2148, 2149, 2149, 2150, 2150, 2145, 2150, 2149,    0, 2149,
06425         0,    0, 2151, 2151, 2150, 2151, 3237, 2146,    0, 2150,
06426      2150, 3237, 3237, 2151,    0, 2150, 3237, 2150, 2151, 2151,
06427         0,    0, 2152, 2152, 2151, 2152, 2151, 2147,    0,    0,
06428         0, 2153, 2153, 2152, 2153, 2149, 2148,    0, 2152, 2152,
06429      2154, 2154, 2153, 2154, 2152,    0, 2152, 2153, 2153, 2155,
06430      2155, 2154, 2155, 2153,    0, 2153, 2154, 2154, 2156, 2156,
06431      2155, 2156, 2154, 2150, 2154, 2155, 2155, 2157, 2157, 2156,
06432      2157, 2155, 2151, 2155, 2156, 2156, 2152,    0, 2157,    0,
06433 
06434      2156,    0, 2156, 2157, 2157, 2153,    0, 2158, 2158, 2157,
06435      2158, 2157,    0,    0,    0,    0, 2159, 2159, 2158, 2159,
06436         0,    0,    0, 2158, 2158, 2155,    0, 2159,    0, 2158,
06437      2154, 2158, 2159, 2159, 2160, 2160,    0, 2160, 2159,    0,
06438      2159,    0, 2157, 2156,    0, 2160, 2161, 2161,    0, 2161,
06439      2160, 2160, 2812, 2812, 2812, 2812, 2160, 2161, 2160, 2812,
06440         0,    0, 2161, 2161, 2224, 2224, 2224, 2224, 2161,    0,
06441      2161,    0,    0, 2159, 2812, 2162, 2162, 2158, 2162, 2163,
06442      2163,    0, 2163,    0,    0,    0, 2162, 2224, 2160, 2224,
06443      2163, 2162, 2162,    0,    0, 2163, 2163, 2162,    0, 2162,
06444 
06445         0, 2163,    0, 2163, 2161, 2164, 2164,    0, 2164, 2165,
06446      2165,    0, 2165,    0,    0,    0, 2164,    0, 2812, 2224,
06447      2165, 2164, 2164,    0,    0, 2165, 2165, 2164,    0, 2164,
06448         0, 2165, 2812, 2165,    0,    0, 2167, 2167, 2163, 2167,
06449         0, 2224,    0,    0,    0, 2162,    0, 2167, 2168, 2168,
06450         0, 2168, 2167, 2167,    0,    0,    0, 3238, 2167, 2168,
06451      2167, 2165, 3238, 3238, 2168, 2168,    0, 3238,    0,    0,
06452      2168,    0, 2168, 2164, 2166, 2166, 2166, 2166, 2166, 2166,
06453      2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166,
06454      2166, 2166, 2166, 2166,    0,    0, 2167, 2166, 2166, 2166,
06455 
06456      2166, 2166, 2166,    0, 2168,    0, 2216, 2216, 2216, 2216,
06457      2169, 2169,    0, 2169, 2421, 2421, 2421, 2421,    0,    0,
06458         0, 2169, 2166, 2166, 2166, 2166, 2169, 2169, 2216,    0,
06459      2216,    0, 2169,    0, 2169,    0, 2421,    0, 2421,    0,
06460      2170, 2170,    0, 2170, 2166,    0,    0,    0,    0,    0,
06461         0, 2170, 2166, 2166, 2166, 2166, 2170, 2170, 2171, 2171,
06462         0, 2171, 2170,    0, 2170, 2169, 2216, 2172, 2172, 2171,
06463      2172, 3251,    0,    0, 2171, 2171, 3251, 3251, 2172, 2421,
06464      2171, 3251, 2171, 2172, 2172, 2173, 2173,    0, 2173, 2172,
06465         0, 2172, 2170,    0,    0,    0, 2173, 2248, 2248, 2248,
06466 
06467      2248, 2173, 2173,    0,    0, 2174, 2174, 2173, 2174, 2173,
06468      2217, 2217, 2217, 2217,    0,    0, 2174,    0,    0, 2172,
06469      3253, 2174, 2174, 2171,    0, 3253, 3253, 2174,    0, 2174,
06470      3253,    0, 2217,    0, 2217, 2222, 2222, 2222, 2222, 2225,
06471      2225, 2225, 2225,    0,    0, 2173, 2531, 2531, 2531, 2531,
06472         0, 2248,    0,    0,    0,    0, 2174, 2531, 2222,    0,
06473      2222, 2217, 2225, 2248, 2225,    0, 2248,    0, 2531, 2248,
06474      2273, 2273, 2273, 2273, 2248,    0, 2278, 2278, 2278, 2278,
06475         0, 2273, 2273,    0,    0, 2273,    0, 2278,    0, 2222,
06476         0,    0, 2273, 2273, 2273,    0,    0,    0, 2278, 2225,
06477 
06478      2278, 2222,    0,    0, 2222, 2222,    0, 2222, 2422, 2422,
06479      2422, 2422, 2222,    0,    0,    0, 2225,    0,    0, 2273,
06480         0, 3261, 2280, 2280, 2280, 2280, 3261, 3261,    0,    0,
06481      2422, 3261, 2422, 2280, 2280,    0,    0, 2280, 2273, 2285,
06482      2285, 2285, 2285, 2278, 2280, 2280, 2280,    0,    0,    0,
06483      2285, 2285,    0, 2280, 2285,    0,    0, 2291, 2291, 2291,
06484      2291, 2285, 2285, 2285,    0,    0,    0,    0, 2291, 2291,
06485         0, 2280, 2291, 2369, 2369, 2369, 2369, 3297,    0, 2291,
06486      2291, 2291, 3297, 3297, 2369,    0,    0, 3297, 2285, 2290,
06487      2290, 2290, 2290, 3298,    0, 2369,    0, 2369, 3298, 3298,
06488 
06489      2290, 2290,    0, 3298, 2290,    0, 2291, 2292, 2292, 2292,
06490      2292, 2290, 2290, 2290,    0,    0,    0, 2331, 2292, 2292,
06491      2331,    0, 2292, 2423, 2423, 2423, 2423,    0, 2331, 2292,
06492      2292, 2805, 2805, 2331, 2331,    0, 2805, 2805, 2290, 2331,
06493         0, 2331,    0, 2290, 3308, 2423, 2805, 2423, 2331, 3308,
06494      3308,    0,    0,    0, 3308,    0, 2292,    0, 2290, 2311,
06495      2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311,
06496      2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2423,
06497         0,    0, 2311, 2311, 2311, 2311, 2311, 2311,    0,    0,
06498         0,    0,    0,    0, 2424, 2424, 2424, 2424,    0, 2805,
06499 
06500      2324, 2324, 2324, 2324,    0,    0,    0, 2311, 2311, 2311,
06501      2311, 2324, 2324,    0,    0, 2324, 2424,    0, 2424,    0,
06502         0,    0, 2324, 2324, 2324,    0, 2568, 2568, 2568, 2568,
06503      2325, 2325, 2325, 2325,    0,    0,    0, 2311, 2311, 2311,
06504      2311, 2325, 2325,    0, 2332, 2325,    0, 2332, 2568, 2324,
06505      2568,    0, 2325, 2325,    0, 2332, 2333, 2424,    0, 2333,
06506      2332, 2332,    0,    0,    0, 2324, 2332, 2333, 2332,    0,
06507         0,    0, 2333, 2333, 2334,    0,    0, 2334, 2333, 2325,
06508      2333, 2568, 3309, 2335,    0, 2334, 2335, 3309, 3309,    0,
06509      2334, 2334, 3309,    0, 2335, 2325, 2334,    0, 2334, 2335,
06510 
06511      2335, 2336,    0,    0, 2336, 2335,    0, 2335, 2332,    0,
06512      2337,    0, 2336, 2337,    0,    0,    0, 2336, 2336, 2338,
06513         0, 2337, 2338, 2336, 2333, 2336, 2337, 2337, 2334,    0,
06514      2338,    0, 2337,    0, 2337, 2338, 2338,    0,    0,    0,
06515         0, 2338, 2339, 2338,    0, 2339, 2340,    0, 2335, 2340,
06516         0,    0,    0, 2339,    0, 2336,    0, 2340, 2339, 2339,
06517         0,    0, 2340, 2340, 2339,    0, 2339,    0, 2340, 2341,
06518      2340,    0, 2341, 2765, 2765, 2765, 2765,    0,    0,    0,
06519      2341, 2337,    0,    0, 2765, 2341, 2341, 2343,    0, 2338,
06520      2343, 2341,    0, 2341,    0, 2765, 2339, 2344, 2343,    0,
06521 
06522      2344,    0,    0, 2343, 2343,    0, 2340, 2345, 2344, 2343,
06523      2345, 2343,    0, 2344, 2344,    0,    0, 2346, 2345, 2344,
06524      2346, 2344,    0, 2345, 2345,    0,    0,    0, 2346, 2345,
06525         0, 2345, 2347, 2346, 2346, 2347,    0,    0,    0, 2346,
06526         0, 2346,    0, 2347, 2341,    0, 2343, 2348, 2347, 2347,
06527      2348, 2344,    0,    0, 2347,    0, 2347,    0, 2348, 2345,
06528         0,    0,    0, 2348, 2348, 2349,    0,    0, 2349, 2348,
06529         0, 2348,    0, 2346, 2350,    0, 2349, 2350,    0,    0,
06530         0, 2349, 2349, 2351, 2347, 2350, 2351, 2349,    0, 2349,
06531      2350, 2350, 2352,    0, 2351, 2352, 2350,    0, 2350, 2351,
06532 
06533      2351, 2353,    0, 2352, 2353, 2351,    0, 2351, 2352, 2352,
06534      2354,    0, 2353, 2354, 2352, 2348, 2352, 2353, 2353, 2355,
06535         0, 2354, 2355, 2353,    0, 2353, 2354, 2354,    0, 2350,
06536      2355, 2349, 2354,    0, 2354, 2355, 2355,    0,    0, 3313,
06537         0, 2355,    0, 2355, 3313, 3313,    0,    0, 2352, 3313,
06538         0, 2351, 2357,    0,    0, 2357, 2358,    0,    0, 2358,
06539         0,    0,    0, 2357,    0,    0, 2354, 2358, 2357, 2357,
06540         0, 2353, 2358, 2358, 2357,    0, 2357,    0, 2358,    0,
06541      2358,    0,    0,    0,    0,    0,    0, 2355, 2356, 2356,
06542      2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
06543 
06544      2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,    0,    0,
06545         0, 2356, 2356, 2356, 2356, 2356, 2356,    0, 2357,    0,
06546         0, 2425, 2425, 2425, 2425,    0, 2358,    0,    0,    0,
06547      2360,    0,    0, 2360,    0,    0, 2356, 2356, 2356, 2356,
06548      2356, 2360,    0, 2425,    0, 2425, 2360, 2360, 2361,    0,
06549         0, 2361, 2360,    0, 2360,    0,    0,    0,    0, 2361,
06550      2362,    0,    0, 2362, 2361, 2361, 2356, 2356, 2356, 2356,
06551      2361, 2362, 2361,    0,    0,    0, 2362, 2362, 2363,    0,
06552         0, 2363, 2362,    0, 2362,    0, 2360, 2364,    0, 2363,
06553      2364, 2425,    0,    0, 2363, 2363, 2365,    0, 2364, 2365,
06554 
06555      2363,    0, 2363, 2364, 2364, 2361,    0, 2365,    0, 2364,
06556         0, 2364, 2365, 2365, 2366,    0, 3329, 2366, 2365,    0,
06557      2365, 3329, 3329,    0, 2362, 2366, 3329,    0,    0,    0,
06558      2366, 2366, 2371, 2371, 2363, 2371, 2366,    0, 2366,    0,
06559         0,    0,    0, 2371, 2372, 2372,    0, 2372, 2371, 2371,
06560      2364,    0, 3330,    0, 2371, 2372, 2371, 3330, 3330, 2365,
06561      2372, 2372, 3330, 2371, 2373, 2373, 2372, 2373, 2372,    0,
06562         0,    0,    0,    0,    0, 2373, 2374, 2374,    0, 2374,
06563      2373, 2373,    0,    0, 2366,    0, 2373, 2374, 2373,    0,
06564         0,    0, 2374, 2374, 2375, 2375,    0, 2375, 2374,    0,
06565 
06566      2374,    0,    0, 2376, 2376, 2375, 2376,    0, 2372,    0,
06567      2375, 2375, 2377, 2377, 2376, 2377, 2375,    0, 2375, 2376,
06568      2376,    0,    0, 2377,    0, 2376,    0, 2376, 2377, 2377,
06569      2374,    0, 2373,    0, 2377,    0, 2377,    0, 2378, 2378,
06570         0, 2378,    0,    0,    0,    0, 3334, 2379, 2379, 2378,
06571      2379, 3334, 3334,    0, 2378, 2378, 3334,    0, 2379, 2375,
06572      2378,    0, 2378, 2379, 2379,    0, 2910, 2380, 2380, 2379,
06573      2380, 2379, 2910, 2910, 2376,    0,    0,    0, 2380, 2910,
06574         0,    0, 2377, 2380, 2380, 2381, 2381, 2910, 2381, 2380,
06575         0, 2380,    0,    0, 2382, 2382, 2381, 2382, 2378,    0,
06576 
06577         0, 2381, 2381, 2383, 2383, 2382, 2383, 2381,    0, 2381,
06578      2382, 2382, 2384, 2384, 2383, 2384, 2382,    0, 2382, 2383,
06579      2383,    0, 2379, 2384,    0, 2383, 2380, 2383, 2384, 2384,
06580         0,    0, 2385, 2385, 2384, 2385, 2384,    0, 2910, 2381,
06581      2910, 2386, 2386, 2385, 2386,    0, 2382,    0, 2385, 2385,
06582      2387, 2387, 2386, 2387, 2385,    0, 2385, 2386, 2386, 2383,
06583         0, 2387,    0, 2386, 2384, 2386, 2387, 2387, 2388, 2388,
06584         0, 2388, 2387,    0, 2387,    0,    0, 2389, 2389, 2388,
06585      2389,    0,    0,    0, 2388, 2388, 2390, 2390, 2389, 2390,
06586      2388,    0, 2388, 2389, 2389, 2391, 2391, 2390, 2391, 2389,
06587 
06588      2385, 2389, 2390, 2390,    0, 2387, 2391, 2386, 2390,    0,
06589      2390, 2391, 2391, 2392, 2392, 3335, 2392, 2391,    0, 2391,
06590      3335, 3335,    0,    0, 2392, 3335,    0,    0,    0, 2392,
06591      2392, 2393, 2393, 2389, 2393, 2392, 2388, 2392,    0,    0,
06592         0,    0, 2393, 2394, 2394,    0, 2394, 2393, 2393,    0,
06593         0, 2391,    0, 2393, 2394, 2393, 2390,    0,    0, 2394,
06594      2394, 2395, 2395,    0, 2395, 2394,    0, 2394,    0,    0,
06595      2396, 2396, 2395, 2396,    0,    0,    0, 2395, 2395, 2392,
06596         0, 2396,    0, 2395,    0, 2395, 2396, 2396,    0,    0,
06597         0,    0, 2396,    0, 2396, 2397, 2397,    0, 2397, 2394,
06598 
06599         0, 2393,    0,    0, 2398, 2398, 2397, 2398,    0,    0,
06600         0, 2397, 2397, 2399, 2399, 2398, 2399, 2397, 2395, 2397,
06601      2398, 2398, 2400, 2400, 2399, 2400, 2398,    0, 2398, 2399,
06602      2399,    0,    0, 2400, 2396, 2399,    0, 2399, 2400, 2400,
06603      2430, 2430, 2430, 2430, 2400,    0, 2400, 2463, 2463, 2463,
06604      2463, 2397,    0, 2464, 2464, 2464, 2464,    0, 2463, 2467,
06605      2467, 2467, 2467, 2430, 2464, 2430,    0, 2398, 3336, 2463,
06606      2467, 2463,    0, 3336, 3336, 2464, 2399, 2464, 3336, 2509,
06607         0, 2467, 2509, 2467,    0,    0,    0,    0,    0,    0,
06608      2509,    0, 2400,    0, 2430, 2509, 2509, 2469, 2469, 2469,
06609 
06610      2469, 2509,    0, 2509,    0,    0, 2430,    0, 2469, 2430,
06611      2430,    0, 2430, 2476, 2476, 2476, 2476, 2430,    0, 2469,
06612      2464, 2469,    0, 2511, 2476, 2476, 2511,    0, 2476,    0,
06613      2509,    0,    0,    0, 2511, 2476, 2476, 2476, 3337, 2511,
06614      2511,    0,    0, 3337, 3337, 2511,    0, 2511, 3337,    0,
06615         0,    0,    0, 2469,    0,    0,    0,    0,    0,    0,
06616         0,    0, 2476, 2482, 2482, 2482, 2482, 2482, 2482, 2482,
06617      2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482,
06618      2482, 2482, 2482,    0,    0,    0, 2482, 2482, 2482, 2482,
06619      2482, 2482,    0, 2511,    0,    0,    0,    0,    0, 2532,
06620 
06621      2532, 2532, 2532,    0,    0, 2503, 2503, 2503, 2503,    0,
06622      2532, 2482, 2482, 2482, 2482, 2482, 2503, 2503,    0, 2696,
06623      2503, 2532,    0, 2532,    0, 2696, 2696, 2503, 2503, 2503,
06624      2696, 2696, 2696,    0,    0,    0,    0,    0,    0,    0,
06625      2696, 2482, 2482, 2482, 2482, 2492, 2492, 2492, 2492,    0,
06626      2504, 2504, 2504, 2504, 2503,    0, 2492, 2492,    0,    0,
06627      2492, 2504, 2504, 2510,    0, 2504, 2510, 2492, 2492, 2492,
06628      2503, 2759, 2504, 2504, 2510,    0,    0, 2759, 2759, 2510,
06629      2510,    0, 2759, 2759, 2759, 2510, 2512, 2510,    0, 2512,
06630         0, 2696, 2759, 2696, 2492,    0,    0, 2512,    0, 2504,
06631 
06632         0, 2492, 2512, 2512,    0, 2492,    0,    0, 2512, 2513,
06633      2512,    0, 2513, 2492,    0, 2504,    0, 2492, 2514, 2510,
06634      2513, 2514,    0,    0,    0, 2513, 2513,    0,    0, 2514,
06635         0, 2513,    0, 2513, 2514, 2514, 2515,    0, 2512, 2515,
06636      2514,    0, 2514, 2759,    0, 2759, 2517, 2515,    0, 2517,
06637         0,    0, 2515, 2515,    0,    0, 2518, 2517, 2515, 2518,
06638      2515,    0, 2517, 2517,    0, 2513,    0, 2518, 2517, 2514,
06639      2517, 2519, 2518, 2518, 2519,    0,    0,    0, 2518,    0,
06640      2518, 2520, 2519,    0, 2520,    0,    0, 2519, 2519,    0,
06641         0, 2521, 2520, 2519, 2521, 2519,    0, 2520, 2520,    0,
06642 
06643         0, 2522, 2521, 2520, 2522, 2520, 2515, 2521, 2521, 2517,
06644      2518, 2523, 2522, 2521, 2523, 2521,    0, 2522, 2522,    0,
06645         0,    0, 2523, 2522,    0, 2522,    0, 2523, 2523, 2524,
06646         0,    0, 2524, 2523,    0, 2523,    0, 2520, 2525, 2519,
06647      2524, 2525,    0,    0,    0, 2524, 2524, 2521,    0, 2525,
06648         0, 2524,    0, 2524, 2525, 2525,    0,    0,    0,    0,
06649      2525,    0, 2525, 2526,    0,    0, 2526,    0,    0, 2522,
06650         0,    0,    0, 2527, 2526,    0, 2527,    0, 2523, 2526,
06651      2526,    0,    0, 2524, 2527, 2526,    0, 2526, 2528, 2527,
06652      2527, 2528,    0,    0,    0, 2527,    0, 2527, 2529, 2528,
06653 
06654         0, 2529,    0, 2525, 2528, 2528,    0,    0,    0, 2529,
06655      2528,    0, 2528, 2530, 2529, 2529, 2530,    0,    0, 2526,
06656      2529,    0, 2529,    0, 2530, 2536, 2536,    0, 2536, 2530,
06657      2530,    0,    0,    0,    0, 2530, 2536, 2530, 2527,    0,
06658         0, 2536, 2536,    0, 2528,    0,    0, 2536,    0, 2536,
06659         0, 2537, 2537, 2529, 2537, 2538, 2538,    0, 2538,    0,
06660         0,    0, 2537,    0,    0,    0, 2538, 2537, 2537, 2530,
06661         0, 2538, 2538, 2537,    0, 2537, 2536, 2538,    0, 2538,
06662      2539, 2539,    0, 2539, 2540, 2540,    0, 2540,    0,    0,
06663         0, 2539,    0,    0,    0, 2540, 2539, 2539,    0,    0,
06664 
06665      2540, 2540, 2539,    0, 2539,    0, 2540, 2537, 2540,    0,
06666      2541, 2541,    0, 2541,    0,    0,    0,    0,    0,    0,
06667         0, 2541,    0,    0,    0, 2538, 2541, 2541, 2542, 2542,
06668         0, 2542, 2541,    0, 2541,    0, 2539,    0,    0, 2542,
06669      2543, 2543,    0, 2543, 2542, 2542,    0,    0,    0,    0,
06670      2542, 2543, 2542,    0, 2540,    0, 2543, 2543, 2817, 2817,
06671      2817, 2817, 2543,    0, 2543,    0,    0, 2544, 2544, 2817,
06672      2544,    0,    0, 2541,    0,    0, 2545, 2545, 2544, 2545,
06673      2817,    0, 2542, 2544, 2544, 2546, 2546, 2545, 2546, 2544,
06674         0, 2544, 2545, 2545, 2547, 2547, 2546, 2547, 2545,    0,
06675 
06676      2545, 2546, 2546,    0,    0, 2547,    0, 2546, 2543, 2546,
06677      2547, 2547,    0,    0, 2548, 2548, 2547, 2548, 2547,    0,
06678         0,    0,    0, 2544,    0, 2548, 2549, 2549,    0, 2549,
06679      2548, 2548, 2545,    0,    0,    0, 2548, 2549, 2548,    0,
06680         0,    0, 2549, 2549, 2550, 2550,    0, 2550, 2549,    0,
06681      2549,    0,    0, 2546,    0, 2550,    0,    0,    0, 2547,
06682      2550, 2550, 2551, 2551,    0, 2551, 2550,    0, 2550,    0,
06683      2548, 2552, 2552, 2551, 2552,    0,    0,    0, 2551, 2551,
06684         0,    0, 2552,    0, 2551,    0, 2551, 2552, 2552,    0,
06685         0, 2549,    0, 2552,    0, 2552, 2569, 2569, 2569, 2569,
06686 
06687      2550, 2597, 2597, 2597, 2597,    0,    0,    0, 2598, 2598,
06688      2598, 2598, 2597, 2599, 2599, 2599, 2599, 2551, 2569, 2598,
06689      2569,    0,    0, 2597, 2599, 2597,    0, 2552,    0,    0,
06690      2598,    0, 2598,    0,    0, 2599,    0, 2599, 2607, 2607,
06691      2607, 2607,    0, 2608, 2608, 2608, 2608,    0,    0, 2607,
06692      2607,    0, 2569, 2607, 2608, 2608, 2710,    0, 2608, 2710,
06693      2607, 2607, 2607,    0, 2598, 2608, 2608, 2710, 2818, 2818,
06694      2818, 2818, 2710, 2710,    0,    0,    0,    0, 2710, 2818,
06695      2710, 2599,    0,    0,    0, 2710,    0, 2607,    0,    0,
06696      2818,    0, 2608, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06697 
06698      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06699      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06700      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06701      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06702      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06703      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06704      2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616,
06705      2616, 2616, 2616, 2616, 2616, 2617, 2617, 2617, 2617,    0,
06706      2618, 2618, 2618, 2618,    0,    0, 2617, 2617,    0,    0,
06707      2617, 2618, 2618,    0,    0, 2618,    0, 2617, 2617, 2617,
06708 
06709         0,    0, 2618, 2618, 2619, 2619, 2619, 2619,    0,    0,
06710      2675, 2675, 2675, 2675,    0, 2619, 2619,    0,    0, 2619,
06711      2636, 2675,    0, 2636, 2617,    0, 2619, 2619, 2619, 2618,
06712      2637, 2636, 2675, 2637, 2675,    0, 2636, 2636,    0,    0,
06713      2638, 2637, 2636, 2638, 2636,    0, 2637, 2637,    0,    0,
06714         0, 2638, 2637, 2619, 2637,    0, 2638, 2638, 2619, 2636,
06715      2640,    0, 2638, 2640, 2638,    0,    0,    0,    0, 2641,
06716         0, 2640, 2641,    0,    0,    0, 2640, 2640, 2675,    0,
06717      2641,    0, 2640,    0, 2640, 2641, 2641, 2642,    0,    0,
06718      2642, 2641,    0, 2641, 2638,    0,    0, 2643, 2642, 2637,
06719 
06720      2643,    0,    0, 2642, 2642,    0,    0,    0, 2643, 2642,
06721         0, 2642, 2644, 2643, 2643, 2644, 2640,    0,    0, 2643,
06722         0, 2643, 2645, 2644, 2641, 2645,    0,    0, 2644, 2644,
06723         0,    0,    0, 2645, 2644,    0, 2644,    0, 2645, 2645,
06724      2647, 2647,    0, 2647, 2645,    0, 2645,    0,    0, 2643,
06725         0, 2647,    0,    0,    0, 2642, 2647, 2647, 2648, 2648,
06726         0, 2648, 2647,    0, 2647,    0,    0, 2649, 2649, 2648,
06727      2649,    0, 2644,    0, 2648, 2648,    0,    0, 2649, 2647,
06728      2648,    0, 2648, 2649, 2649, 2650, 2650,    0, 2650, 2649,
06729         0, 2649, 2645,    0, 2651, 2651, 2650, 2651,    0,    0,
06730 
06731         0, 2650, 2650,    0,    0, 2651,    0, 2650,    0, 2650,
06732      2651, 2651,    0,    0, 2648,    0, 2651,    0, 2651,    0,
06733         0,    0, 2649,    0, 2676, 2676, 2676, 2676, 2684, 2684,
06734      2684, 2684,    0,    0,    0, 2676,    0,    0, 2711, 2684,
06735      2684, 2711,    0, 2684,    0, 2650, 2676,    0, 2676, 2711,
06736      2684, 2684, 2684,    0, 2711, 2711, 2690, 2690, 2690, 2690,
06737      2711,    0, 2711,    0, 2651,    0,    0, 2690, 2690,    0,
06738         0, 2690, 2691, 2691, 2691, 2691, 2676, 2684, 2690, 2690,
06739      2690,    0,    0, 2691, 2691,    0,    0, 2691,    0,    0,
06740      2712,    0,    0, 2712, 2691, 2691, 2882, 2882, 2882, 2882,
06741 
06742         0, 2712,    0, 2882,    0, 2690, 2712, 2712, 2711,    0,
06743         0,    0, 2712,    0, 2712,    0,    0,    0, 2882,    0,
06744         0, 2691, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
06745      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
06746      2694, 2694, 2712,    0,    0, 2694, 2694, 2694, 2694, 2694,
06747      2694,    0,    0,    0,    0,    0,    0,    0, 2736, 2736,
06748      2736, 2736,    0, 2707, 2707, 2707, 2707,    0,    0, 2736,
06749      2694, 2694, 2694, 2694, 2707, 2707, 2882,    0, 2707,    0,
06750      2736,    0, 2736,    0,    0, 2707, 2707, 2707, 2839, 2839,
06751      2839, 2839,    0, 2713,    0,    0, 2713,    0,    0,    0,
06752 
06753      2694, 2694, 2694, 2694, 2713, 2714,    0,    0, 2714, 2713,
06754      2713, 2839, 2707, 2839,    0, 2713, 2714, 2713,    0,    0,
06755      2715, 2714, 2714, 2715,    0,    0,    0, 2714, 2736, 2714,
06756         0, 2715,    0,    0,    0,    0, 2715, 2715,    0,    0,
06757      2716, 2716, 2715, 2716, 2715,    0,    0,    0,    0, 2713,
06758         0, 2716,    0,    0,    0,    0, 2716, 2716, 2839,    0,
06759      2717, 2717, 2716, 2717, 2716, 2839,    0,    0,    0, 2716,
06760         0, 2717,    0,    0, 2714,    0, 2717, 2717, 2735, 2735,
06761      2735, 2735, 2717,    0, 2717,    0,    0,    0,    0, 2735,
06762         0,    0, 2748, 2748, 2748, 2748, 2715,    0,    0,    0,
06763 
06764      2735,    0, 2735, 2748, 2748,    0,    0, 2748,    0, 2749,
06765      2749, 2749, 2749,    0, 2748, 2748, 2748,    0,    0,    0,
06766      2749, 2749,    0,    0, 2749,    0,    0,    0,    0,    0,
06767      2735, 2749, 2749,    0,    0,    0, 2717, 2756, 2756, 2756,
06768      2756, 2748, 2757, 2757, 2757, 2757,    0,    0, 2756, 2756,
06769         0,    0, 2756, 2757, 2757,    0,    0, 2757, 2749, 2756,
06770      2756, 2756,    0, 2781, 2757, 2757, 2781, 2819, 2819, 2819,
06771      2819,    0,    0,    0, 2781,    0,    0,    0, 2819, 2781,
06772      2781,    0,    0,    0,    0, 2781, 2756, 2781,    0, 2819,
06773         0, 2757, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06774 
06775      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06776      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06777      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06778      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06779      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06780      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06781      2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
06782      2760, 2760, 2760, 2760, 2761,    0,    0,    0,    0,    0,
06783      2761, 2761,    0,    0,    0, 2761, 2761, 2761, 2774, 2774,
06784      2774, 2774,    0,    0,    0, 2761,    0,    0, 2780, 2774,
06785 
06786      2774, 2780, 2782, 2774,    0, 2782,    0,    0,    0, 2780,
06787      2774, 2774, 2774, 2782, 2780, 2780,    0,    0, 2782, 2782,
06788      2780,    0, 2780,    0, 2782, 2783, 2782,    0, 2783,    0,
06789         0,    0,    0,    0, 2780,    0, 2783, 2774,    0,    0,
06790      2784, 2783, 2783, 2784,    0,    0, 2761, 2783, 2761, 2783,
06791      2785, 2784,    0, 2785,    0,    0, 2784, 2784,    0,    0,
06792         0, 2785, 2784,    0, 2784,    0, 2785, 2785,    0,    0,
06793         0, 2782, 2785,    0, 2785, 2786, 2786,    0, 2786, 2794,
06794      2794, 2794, 2794,    0,    0,    0, 2786, 2907, 2907, 2907,
06795      2907, 2786, 2786,    0,    0, 2783,    0, 2786, 2907, 2786,
06796 
06797         0, 2787, 2787,    0, 2787,    0, 2785,    0,    0, 2907,
06798      2784, 2786, 2787, 2801, 2801, 2801, 2801, 2787, 2787, 2802,
06799      2802, 2802, 2802, 2787, 2801, 2787,    0,    0,    0,    0,
06800      2802,    0,    0, 2794,    0, 2801, 2830, 2801,    0, 2830,
06801         0, 2802,    0, 2802,    0, 2794,    0, 2830, 2794,    0,
06802         0, 2794, 2830, 2830,    0,    0, 2794, 2787, 2830,    0,
06803      2830,    0, 2908, 2908, 2908, 2908, 2830,    0,    0,    0,
06804         0,    0,    0, 2908,    0,    0,    0,    0,    0,    0,
06805         0,    0,    0, 2801, 2908, 2802, 2816, 2816, 2816, 2816,
06806      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06807 
06808      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06809      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06810      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06811      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06812      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06813      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
06814      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2832,    0,
06815         0, 2832, 2833,    0,    0, 2833,    0,    0,    0, 2832,
06816         0,    0,    0, 2833, 2832, 2832,    0,    0, 2833, 2833,
06817      2832,    0, 2832,    0, 2833, 2834, 2833,    0, 2834,    0,
06818 
06819         0,    0,    0,    0, 2835, 2835, 2834, 2835,    0,    0,
06820         0, 2834, 2834, 2836, 2836, 2835, 2836, 2834,    0, 2834,
06821      2835, 2835,    0, 2833, 2836,    0, 2835,    0, 2835, 2836,
06822      2836,    0,    0,    0, 2835, 2836,    0, 2836, 2832,    0,
06823      2848, 2848, 2848, 2848,    0, 2850, 2850, 2850, 2850,    0,
06824      2834, 2848, 2848,    0,    0, 2848, 2850,    0,    0,    0,
06825         0,    0, 2848, 2848, 2848,    0,    0, 2850, 2836, 2850,
06826      2851, 2851, 2851, 2851, 2867,    0,    0, 2867,    0,    0,
06827         0, 2851,    0,    0, 2899, 2867,    0, 2899,    0, 2848,
06828      2867, 2867, 2851,    0, 2851, 2899, 2867,    0, 2867,    0,
06829 
06830      2899, 2899, 2924, 2924, 2924, 2924, 2899,    0, 2899,    0,
06831         0, 2850,    0, 2924,    0, 2934, 2934, 2934, 2934,    0,
06832         0,    0,    0,    0, 2924,    0, 2934,    0, 2867,    0,
06833         0,    0,    0,    0,    0,    0, 2899, 2934, 2851, 2855,
06834      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06835      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06836      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06837      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06838      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06839      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06840 
06841      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06842      2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
06843      2855, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06844      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06845      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06846      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06847      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06848      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06849      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06850      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
06851 
06852      2859, 2859, 2859, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06853      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06854      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06855      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06856      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06857      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06858      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06859      2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
06860      2861, 2861, 2861, 2861, 2861, 2877, 2877, 2877, 2877, 2886,
06861      2886, 2886, 2886,    0,    0,    0, 2877,    0,    0,    0,
06862 
06863      2886, 2886,    0,    0, 2886,    0,    0, 2877,    0, 2877,
06864         0,    0, 2886, 2886,    0,    0,    0,    0,    0,    0,
06865         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06866         0,    0,    0,    0,    0,    0,    0,    0, 2886,    0,
06867         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06868         0,    0,    0, 2877, 2878, 2878, 2878, 2878, 2878, 2878,
06869      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06870      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06871      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06872      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06873 
06874      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06875      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06876      2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878,
06877      2878, 2878, 2878, 2878, 2878, 2878, 2880, 2880,    0, 2880,
06878      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06879      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06880      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06881      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06882      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06883      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06884 
06885      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880,
06886      2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2883, 2883,
06887      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06888      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06889      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06890      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06891      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06892      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06893      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06894      2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
06895 
06896      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06897      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06898      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06899      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06900      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06901      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06902      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06903      2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
06904      2884, 2884, 2887, 2887, 2887, 2887,    0,    0,    0,    0,
06905         0,    0,    0, 2887, 2887,    0,    0, 2887,    0,    0,
06906 
06907         0,    0,    0,    0,    0, 2887,    0,    0,    0,    0,
06908         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06909         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06910         0, 2887, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06911      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06912      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06913      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06914      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06915      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06916      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06917 
06918      2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
06919      2889, 2889, 2889, 2889, 2894, 2894, 2894, 2894, 2894, 2894,
06920      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06921      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06922      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06923      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06924      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06925      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06926      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
06927      2894, 2894, 2894, 2894, 2894, 2894, 2906, 2906, 2906, 2906,
06928 
06929      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06930      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06931      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06932      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06933      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06934      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06935      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906,
06936      2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2913, 2913,
06937         0, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06938      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06939 
06940      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06941      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06942      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06943      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06944      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06945      2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
06946      2914, 2914, 2914, 2914,    0, 2915, 2915, 2915, 2915,    0,
06947         0, 2914, 2914,    0,    0, 2914, 2915, 2915,    0,    0,
06948      2915,    0, 2914, 2914, 2914,    0,    0, 2915, 2915,    0,
06949         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06950 
06951         0,    0,    0,    0,    0,    0,    0,    0,    0, 2914,
06952         0,    0,    0,    0, 2915, 2919, 2919, 2919, 2919, 2919,
06953      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06954      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06955      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06956      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06957      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06958      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06959      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
06960      2919, 2919, 2919, 2919, 2919, 2919, 2919, 2928, 2928, 2928,
06961 
06962      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06963      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06964      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06965      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06966      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06967      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06968      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
06969      2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2933,
06970         0,    0, 2933,    0,    0,    0,    0,    0,    0,    0,
06971      2933,    0,    0,    0,    0, 2933, 2933, 2938, 2938, 2938,
06972 
06973      2938, 2933,    0, 2933, 2939, 2939, 2939, 2939, 2938, 2938,
06974         0,    0, 2938,    0, 2949, 2939, 2939, 2949,    0, 2939,
06975      2938, 2938,    0,    0,    0, 2949,    0, 2939,    0,    0,
06976      2949, 2949, 2973, 2973, 2973, 2973, 2949,    0, 2949,    0,
06977         0,    0,    0, 2973, 2973,    0, 2938, 2973, 2933,    0,
06978         0,    0,    0, 2939, 2973, 2973, 2973,    0,    0,    0,
06979         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06980         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
06981         0, 2973,    0,    0, 2949, 2975, 2975, 2975, 2975, 2975,
06982      2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975,
06983 
06984      2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975,
06985      2975, 2975, 2975, 2975, 2976, 2976, 2976, 2976, 2976, 2976,
06986      2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976,
06987      2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976,
06988      2976, 2976, 2976, 2977, 2977, 2977, 2977, 2977, 2977, 2977,
06989      2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977,
06990      2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977,
06991      2977, 2977, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978,
06992      2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978,
06993      2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978,
06994 
06995      2978, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
06996      2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
06997      2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
06998      2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
06999      2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
07000      2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2981,
07001      2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981,
07002      2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981,
07003      2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2982, 2982,
07004      2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
07005 
07006      2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
07007      2982, 2982, 2982, 2982, 2982, 2982, 2982, 2983, 2983, 2983,
07008      2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983,
07009      2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983,
07010      2983, 2983, 2983, 2983, 2983, 2983, 2984, 2984,    0,    0,
07011      2984,    0, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984,
07012      2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984,    0,
07013      2984, 2984, 2984, 2984, 2984, 2985, 2985,    0, 2985, 2985,
07014      2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985,
07015      2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985,
07016 
07017      2985, 2985, 2985, 2985, 2986, 2986,    0,    0, 2986, 2986,
07018      2986,    0, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
07019      2986, 2986, 2986, 2986, 2986, 2986, 2986,    0, 2986, 2986,
07020      2986, 2986, 2986, 2987, 2987,    0, 2987, 2987,    0, 2987,
07021      2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987,
07022      2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987,
07023      2987, 2987, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988,
07024      2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988,
07025      2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988,
07026      2988, 2989, 2989,    0, 2989, 2989, 2989, 2989, 2989, 2989,
07027 
07028      2989,    0, 2989, 2989, 2989,    0, 2989, 2989, 2989, 2989,
07029      2989, 2989, 2989, 2989, 2989, 2989, 2989, 2989, 2989, 2989,
07030      2990, 2990,    0,    0, 2990, 2990, 2990, 2990, 2990, 2990,
07031      2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990,
07032      2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2991,
07033      2991,    0, 2991, 2991, 2991, 2991, 2991, 2991, 2991,    0,
07034      2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991,
07035      2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2992, 2992,
07036      2992, 2992,    0, 2992,    0,    0,    0,    0,    0,    0,
07037         0,    0,    0, 2992,    0,    0,    0, 2992, 2992,    0,
07038 
07039         0,    0, 2992,    0,    0, 2992, 2993, 2993,    0, 2993,
07040      2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993,
07041      2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993,
07042      2993, 2993, 2993, 2993, 2993, 2994, 2994, 2994, 2994,    0,
07043         0,    0, 2994, 2994,    0, 2994,    0,    0,    0, 2994,
07044      2994, 2994, 2994,    0, 2994, 2994,    0,    0, 2994, 2994,
07045      2995, 2995, 2995, 2995,    0, 2995,    0,    0,    0,    0,
07046         0,    0,    0,    0,    0,    0,    0,    0,    0, 2995,
07047      2995,    0,    0,    0, 2995, 2997,    0,    0, 2997,    0,
07048         0,    0, 2997,    0,    0,    0, 2997, 2997,    0, 2997,
07049 
07050      2997,    0, 2997,    0, 2997, 2997,    0,    0,    0, 2997,
07051      2998, 2998, 2998, 2998,    0, 2998,    0,    0,    0,    0,
07052         0,    0,    0,    0,    0, 2998,    0,    0,    0, 2998,
07053      2998,    0,    0,    0, 2998,    0,    0, 2998, 2999, 2999,
07054      2999, 2999,    0,    0,    0, 2999,    0,    0,    0,    0,
07055         0,    0, 2999, 2999,    0, 2999,    0, 2999, 2999,    0,
07056         0,    0, 2999, 3000, 3000, 3000, 3000,    0, 3000,    0,
07057         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07058         0,    0, 3000, 3000,    0,    0,    0, 3000, 3001, 3001,
07059         0, 3001,    0,    0,    0, 3001,    0,    0,    0, 3001,
07060 
07061      3001,    0, 3001, 3001,    0, 3001,    0, 3001, 3001,    0,
07062         0,    0, 3001, 3005, 3005,    0,    0,    0, 3005, 3005,
07063         0,    0,    0, 3005, 3007,    0, 3007,    0,    0,    0,
07064         0, 3007, 3007,    0,    0,    0, 3007, 3012, 3012,    0,
07065      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
07066      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
07067      3012, 3012, 3012, 3012, 3012, 3012, 3013, 3013, 3013, 3013,
07068         0, 3013,    0,    0,    0,    0,    0,    0,    0,    0,
07069         0, 3013,    0,    0,    0, 3013, 3013,    0,    0,    0,
07070      3013,    0,    0, 3013, 3014, 3014, 3014, 3014,    0,    0,
07071 
07072         0,    0,    0,    0,    0,    0,    0,    0, 3014, 3014,
07073         0, 3014,    0, 3014, 3014,    0,    0,    0, 3014, 3015,
07074      3015, 3015, 3015,    0, 3015,    0,    0,    0,    0,    0,
07075         0,    0,    0,    0,    0,    0,    0,    0, 3015, 3015,
07076         0,    0,    0, 3015, 3021,    0,    0, 3021,    0,    0,
07077         0,    0,    0,    0,    0,    0,    0,    0, 3021, 3021,
07078         0,    0,    0, 3021, 3021,    0,    0,    0, 3021, 3025,
07079      3025,    0, 3025,    0, 3025, 3025,    0, 3025, 3025, 3025,
07080      3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025,
07081      3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3028, 3028,
07082 
07083      3028, 3028,    0,    0,    0,    0,    0,    0,    0,    0,
07084         0,    0, 3028, 3028,    0,    0,    0, 3028, 3028,    0,
07085         0, 3028, 3028, 3029, 3029,    0, 3029, 3029,    0,    0,
07086      3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029,
07087      3029, 3029, 3029, 3029, 3029, 3029,    0, 3029, 3029, 3029,
07088      3029, 3029, 3031, 3031,    0, 3031, 3031,    0,    0, 3031,
07089      3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031,
07090      3031, 3031, 3031, 3031, 3031,    0, 3031, 3031, 3031, 3031,
07091      3031, 3032, 3032,    0, 3032, 3032, 3032, 3032, 3032, 3032,
07092      3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032,
07093 
07094      3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032,
07095      3036, 3036,    0,    0,    0, 3036, 3036,    0,    0,    0,
07096      3036, 3037, 3037,    0,    0, 3037,    0, 3037, 3037, 3037,
07097      3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
07098      3037, 3037, 3037, 3037,    0, 3037, 3037, 3037, 3037, 3037,
07099      3038, 3038,    0,    0, 3038, 3038, 3038,    0, 3038, 3038,
07100      3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038,
07101      3038, 3038, 3038,    0, 3038, 3038, 3038, 3038, 3038, 3039,
07102      3039,    0, 3039, 3039,    0, 3039, 3039, 3039, 3039, 3039,
07103      3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039,
07104 
07105      3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3040, 3040,
07106      3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040,
07107      3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040,
07108      3040, 3040, 3040, 3040, 3040, 3040, 3040, 3041, 3041,    0,
07109      3041, 3041, 3041, 3041, 3041, 3041, 3041,    0, 3041, 3041,
07110      3041,    0, 3041, 3041, 3041, 3041, 3041, 3041, 3041, 3041,
07111      3041, 3041, 3041, 3041, 3041, 3041, 3042, 3042,    0,    0,
07112      3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042,
07113      3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042,
07114      3042, 3042, 3042, 3042, 3042, 3043, 3043,    0, 3043, 3043,
07115 
07116      3043, 3043, 3043, 3043, 3043,    0, 3043, 3043, 3043, 3043,
07117      3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043,
07118      3043, 3043, 3043, 3043, 3045, 3045, 3045, 3045,    0,    0,
07119         0, 3045, 3045,    0, 3045,    0,    0,    0, 3045, 3045,
07120      3045, 3045,    0, 3045, 3045,    0,    0, 3045, 3045, 3046,
07121      3046, 3046, 3046,    0, 3046,    0,    0,    0,    0,    0,
07122         0,    0,    0,    0,    0,    0,    0,    0, 3046, 3046,
07123         0,    0,    0, 3046, 3047, 3047,    0, 3047, 3047, 3047,
07124      3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
07125      3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
07126 
07127      3047, 3047, 3047, 3048, 3048, 3048, 3048,    0, 3048,    0,
07128         0, 3048, 3048,    0,    0,    0,    0,    0, 3048,    0,
07129         0,    0, 3048, 3048,    0,    0,    0, 3048,    0,    0,
07130      3048, 3050, 3050,    0, 3050, 3050,    0, 3050, 3050, 3050,
07131      3050, 3050, 3050, 3050, 3050,    0, 3050, 3050, 3050, 3050,
07132      3050, 3050, 3050, 3050, 3050, 3050, 3050,    0, 3050, 3050,
07133      3051, 3051, 3051, 3051,    0, 3051,    0,    0,    0,    0,
07134         0,    0,    0,    0,    0,    0,    0,    0,    0, 3051,
07135      3051,    0,    0,    0, 3051, 3052, 3052, 3052, 3052,    0,
07136         0,    0, 3052, 3052,    0, 3052,    0,    0,    0, 3052,
07137 
07138         0, 3052, 3052,    0, 3052, 3052,    0,    0, 3052, 3052,
07139      3053,    0,    0, 3053,    0,    0,    0,    0,    0,    0,
07140         0,    0,    0,    0, 3053, 3053,    0, 3053,    0, 3053,
07141      3053,    0,    0,    0, 3053, 3054,    0,    0, 3054,    0,
07142         0,    0,    0,    0, 3054,    0,    0,    0,    0,    0,
07143         0,    0,    0,    0, 3054, 3054,    0,    0,    0, 3054,
07144      3055,    0,    0, 3055,    0,    0,    0, 3055,    0,    0,
07145         0, 3055, 3055,    0, 3055, 3055,    0, 3055,    0, 3055,
07146      3055,    0,    0,    0, 3055, 3056, 3056,    0, 3056, 3056,
07147      3056, 3056, 3056,    0,    0, 3056, 3056, 3056, 3056, 3056,
07148 
07149      3056, 3056, 3056,    0, 3056, 3056, 3056,    0, 3056,    0,
07150      3056,    0,    0, 3056, 3058, 3058, 3058, 3058,    0,    0,
07151         0, 3058,    0,    0,    0,    0,    0,    0, 3058, 3058,
07152         0, 3058,    0, 3058, 3058,    0,    0,    0, 3058, 3059,
07153      3059, 3059, 3059,    0, 3059,    0,    0,    0,    0,    0,
07154         0,    0,    0,    0,    0,    0,    0,    0, 3059, 3059,
07155         0,    0,    0, 3059, 3060, 3060,    0, 3060, 3060,    0,
07156      3060, 3060,    0,    0, 3060, 3060, 3060, 3060,    0, 3060,
07157      3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060,
07158         0,    0, 3060, 3061, 3061, 3061, 3061,    0, 3061,    0,
07159 
07160         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07161         0,    0, 3061, 3061,    0,    0,    0, 3061, 3062, 3062,
07162      3062, 3062,    0,    0,    0, 3062,    0,    0,    0,    0,
07163         0,    0, 3062,    0,    0,    0,    0, 3062, 3062,    0,
07164         0,    0, 3062, 3063, 3063,    0, 3063,    0,    0,    0,
07165      3063,    0,    0,    0, 3063, 3063,    0, 3063, 3063,    0,
07166      3063,    0, 3063, 3063,    0,    0,    0, 3063, 3065, 3065,
07167         0,    0,    0, 3065, 3065,    0,    0,    0, 3065, 3066,
07168         0, 3066,    0,    0,    0,    0, 3066, 3066,    0,    0,
07169         0, 3066, 3070, 3070,    0, 3070, 3070, 3070, 3070, 3070,
07170 
07171      3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
07172      3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
07173      3070, 3072, 3072, 3072, 3072,    0,    0,    0,    0,    0,
07174         0,    0,    0,    0,    0, 3072, 3072,    0, 3072,    0,
07175      3072, 3072,    0,    0,    0, 3072, 3073, 3073, 3073, 3073,
07176         0, 3073,    0,    0,    0,    0,    0,    0,    0,    0,
07177         0,    0,    0,    0,    0, 3073, 3073,    0,    0,    0,
07178      3073, 3074, 3074,    0, 3074, 3074,    0, 3074, 3074, 3074,
07179      3074, 3074, 3074,    0,    0,    0, 3074, 3074, 3074, 3074,
07180      3074, 3074, 3074, 3074, 3074, 3074, 3074,    0, 3074, 3074,
07181 
07182      3075,    0,    0, 3075,    0,    0,    0,    0,    0,    0,
07183         0,    0,    0,    0, 3075,    0,    0, 3075,    0, 3075,
07184      3075,    0,    0,    0, 3075, 3078,    0,    0, 3078,    0,
07185         0,    0,    0,    0,    0,    0,    0,    0,    0, 3078,
07186      3078,    0,    0,    0, 3078, 3078,    0,    0,    0, 3078,
07187      3081, 3081,    0, 3081,    0, 3081, 3081, 3081, 3081, 3081,
07188      3081, 3081, 3081, 3081, 3081, 3081, 3081, 3081, 3081, 3081,
07189      3081, 3081, 3081,    0, 3081, 3081, 3081, 3081, 3081, 3082,
07190      3082,    0, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082,
07191      3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082,
07192 
07193      3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3083, 3083,
07194      3083, 3083,    0,    0,    0,    0,    0,    0,    0,    0,
07195         0,    0, 3083, 3083,    0,    0,    0, 3083, 3083,    0,
07196         0, 3083, 3083, 3084, 3084,    0, 3084, 3084,    0,    0,
07197      3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
07198      3084, 3084, 3084, 3084, 3084, 3084,    0, 3084, 3084, 3084,
07199      3084, 3084, 3086, 3086,    0, 3086, 3086,    0,    0, 3086,
07200      3086, 3086, 3086, 3086, 3086, 3086, 3086, 3086, 3086, 3086,
07201      3086, 3086, 3086, 3086, 3086,    0, 3086, 3086, 3086, 3086,
07202      3086, 3088, 3088,    0,    0,    0, 3088, 3088,    0,    0,
07203 
07204         0, 3088, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089,
07205      3089, 3089, 3089, 3089, 3089, 3089,    0, 3089, 3089, 3089,
07206      3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089,
07207      3089, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090,
07208      3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090,
07209      3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090,
07210      3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091,
07211      3091, 3091, 3091, 3091,    0, 3091, 3091, 3091, 3091, 3091,
07212      3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3092,
07213      3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092,
07214 
07215      3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092,
07216      3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3093, 3093,
07217      3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093,
07218      3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093,
07219      3093, 3093, 3093, 3093, 3093, 3093, 3093, 3094, 3094, 3094,
07220      3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094,
07221      3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094,
07222      3094, 3094, 3094, 3094, 3094, 3094, 3095, 3095,    0,    0,
07223      3095,    0, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095,
07224      3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095,    0,
07225 
07226      3095, 3095, 3095, 3095, 3095, 3096, 3096, 3096, 3096, 3096,
07227      3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096,
07228      3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096,
07229      3096, 3096, 3096, 3096, 3097, 3097, 3097, 3097, 3097, 3097,
07230      3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097,
07231      3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097,
07232      3097, 3097, 3097, 3098, 3098, 3098, 3098, 3098, 3098, 3098,
07233      3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098,
07234      3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098,
07235      3098, 3098, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099,
07236 
07237      3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099,
07238      3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099,
07239      3099, 3100, 3100,    0,    0, 3100, 3100, 3100,    0, 3100,
07240      3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100,
07241      3100, 3100, 3100, 3100,    0, 3100, 3100, 3100, 3100, 3100,
07242      3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101,
07243      3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101,
07244      3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3102,
07245      3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102,
07246      3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102,
07247 
07248      3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3103, 3103,
07249      3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103,
07250      3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103,
07251      3103, 3103, 3103, 3103, 3103, 3103, 3103, 3104, 3104, 3104,
07252      3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104,
07253      3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104,
07254      3104, 3104, 3104, 3104, 3104, 3104, 3105, 3105,    0, 3105,
07255      3105,    0, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105,
07256      3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105,
07257      3105, 3105, 3105, 3105, 3105, 3106, 3106, 3106, 3106, 3106,
07258 
07259      3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106,
07260      3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106,
07261      3106, 3106, 3106, 3106, 3107, 3107, 3107, 3107, 3107, 3107,
07262      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
07263      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
07264      3107, 3107, 3107, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
07265      3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
07266      3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
07267      3108, 3108, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109,
07268      3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109,
07269 
07270      3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109,
07271      3109, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
07272      3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
07273      3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
07274      3111, 3111,    0,    0, 3111, 3111, 3111, 3111, 3111, 3111,
07275      3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111,
07276      3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3112,
07277      3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112,
07278      3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112,
07279      3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3113, 3113,
07280 
07281      3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
07282      3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
07283      3113, 3113, 3113, 3113, 3113, 3113, 3113, 3114, 3114, 3114,
07284      3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114,
07285      3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114,
07286      3114, 3114, 3114, 3114, 3114, 3114, 3115, 3115,    0, 3115,
07287      3115, 3115, 3115, 3115, 3115, 3115,    0, 3115, 3115, 3115,
07288      3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115,
07289      3115, 3115, 3115, 3115, 3115, 3116, 3116, 3116, 3116, 3116,
07290      3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116,
07291 
07292      3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116,
07293      3116, 3116, 3116, 3116, 3117, 3117, 3117, 3117,    0,    0,
07294         0,    0, 3117,    0, 3117,    0,    0,    0, 3117, 3117,
07295      3117, 3117,    0, 3117, 3117,    0,    0, 3117, 3117, 3118,
07296      3118, 3118, 3118,    0,    0,    0, 3118, 3118,    0, 3118,
07297         0,    0,    0, 3118, 3118, 3118, 3118,    0, 3118, 3118,
07298         0,    0, 3118, 3118, 3119, 3119, 3119, 3119,    0, 3119,
07299         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07300         0,    0,    0, 3119, 3119,    0,    0,    0, 3119, 3120,
07301      3120, 3120, 3120,    0,    0,    0,    0, 3120,    0, 3120,
07302 
07303         0,    0,    0, 3120,    0, 3120, 3120,    0, 3120, 3120,
07304         0,    0, 3120, 3120, 3121, 3121, 3121, 3121,    0, 3121,
07305         0,    0, 3121, 3121,    0,    0,    0,    0,    0, 3121,
07306         0,    0,    0, 3121, 3121,    0,    0,    0, 3121,    0,
07307         0, 3121, 3122, 3122, 3122, 3122,    0, 3122,    0,    0,
07308      3122,    0,    0,    0,    0,    0, 3122, 3122,    0,    0,
07309         0, 3122, 3122,    0,    0,    0, 3122,    0,    0, 3122,
07310      3123, 3123, 3123, 3123,    0, 3123,    0,    0,    0,    0,
07311         0,    0,    0,    0,    0,    0,    0,    0,    0, 3123,
07312      3123,    0,    0,    0, 3123, 3125, 3125, 3125, 3125,    0,
07313 
07314      3125,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07315      3125,    0,    0,    0, 3125, 3125,    0,    0,    0, 3125,
07316         0,    0, 3125, 3126, 3126, 3126, 3126,    0, 3126,    0,
07317         0,    0,    0,    0,    0,    0,    0,    0, 3126,    0,
07318         0,    0, 3126, 3126,    0,    0,    0, 3126,    0,    0,
07319      3126, 3127, 3127,    0, 3127, 3127,    0, 3127, 3127, 3127,
07320      3127, 3127, 3127, 3127, 3127,    0, 3127, 3127, 3127, 3127,
07321      3127, 3127, 3127, 3127, 3127, 3127, 3127,    0, 3127, 3127,
07322      3128, 3128,    0, 3128, 3128,    0, 3128, 3128, 3128, 3128,
07323      3128, 3128,    0,    0,    0, 3128, 3128, 3128, 3128, 3128,
07324 
07325      3128, 3128, 3128, 3128, 3128, 3128,    0, 3128, 3128, 3129,
07326      3129,    0, 3129, 3129,    0, 3129, 3129,    0,    0, 3129,
07327      3129, 3129, 3129,    0, 3129, 3129, 3129, 3129, 3129, 3129,
07328      3129, 3129, 3129, 3129, 3129,    0,    0, 3129, 3130, 3130,
07329      3130, 3130,    0,    0,    0, 3130, 3130,    0, 3130,    0,
07330         0,    0, 3130,    0, 3130, 3130,    0, 3130, 3130,    0,
07331         0, 3130, 3130, 3131,    0,    0, 3131,    0,    0,    0,
07332         0,    0,    0,    0,    0,    0,    0, 3131, 3131,    0,
07333      3131,    0, 3131, 3131,    0,    0,    0, 3131, 3132,    0,
07334         0, 3132,    0,    0,    0,    0,    0, 3132,    0,    0,
07335 
07336         0,    0,    0,    0,    0,    0,    0, 3132, 3132,    0,
07337         0,    0, 3132, 3133,    0,    0, 3133,    0,    0,    0,
07338         0, 3133,    0,    0,    0,    0,    0, 3133,    0,    0,
07339         0,    0, 3133, 3133,    0,    0,    0, 3133, 3134,    0,
07340         0, 3134,    0, 3134,    0,    0,    0,    0,    0,    0,
07341         0,    0,    0,    0,    0,    0,    0, 3134, 3134,    0,
07342         0,    0, 3134, 3135, 3135,    0, 3135, 3135, 3135, 3135,
07343      3135,    0,    0, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
07344      3135,    0, 3135, 3135, 3135,    0, 3135,    0, 3135,    0,
07345         0, 3135, 3136,    0,    0, 3136,    0,    0,    0, 3136,
07346 
07347         0,    0,    0, 3136, 3136,    0, 3136, 3136,    0, 3136,
07348         0, 3136, 3136,    0,    0,    0, 3136, 3137, 3137, 3137,
07349      3137,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07350         0, 3137, 3137,    0,    0,    0, 3137, 3137,    0,    0,
07351         0, 3137, 3138, 3138, 3138, 3138,    0, 3138,    0,    0,
07352         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07353         0, 3138, 3138,    0,    0,    0, 3138, 3139,    0,    0,
07354      3139,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07355         0, 3139,    0,    0,    0,    0, 3139, 3139,    0,    0,
07356         0, 3139, 3140, 3140, 3140, 3140,    0, 3140,    0,    0,
07357 
07358         0,    0,    0,    0,    0,    0,    0, 3140,    0,    0,
07359         0, 3140, 3140,    0,    0,    0, 3140,    0,    0, 3140,
07360      3141, 3141, 3141, 3141,    0, 3141,    0,    0,    0,    0,
07361         0,    0,    0,    0,    0, 3141,    0,    0,    0, 3141,
07362      3141,    0,    0,    0, 3141,    0,    0, 3141, 3142, 3142,
07363         0, 3142, 3142,    0, 3142, 3142,    0,    0, 3142, 3142,
07364      3142, 3142,    0, 3142, 3142, 3142, 3142, 3142, 3142, 3142,
07365      3142, 3142, 3142, 3142,    0,    0, 3142, 3143, 3143, 3143,
07366      3143,    0,    0,    0, 3143,    0,    0,    0,    0,    0,
07367         0, 3143,    0,    0,    0,    0, 3143, 3143,    0,    0,
07368 
07369         0, 3143, 3144, 3144,    0, 3144,    0,    0,    0, 3144,
07370         0,    0,    0, 3144, 3144,    0, 3144, 3144,    0, 3144,
07371         0, 3144, 3144,    0,    0,    0, 3144, 3146, 3146,    0,
07372         0,    0, 3146, 3146,    0,    0,    0, 3146, 3148,    0,
07373      3148,    0,    0,    0,    0, 3148, 3148,    0,    0,    0,
07374      3148, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151,
07375      3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151,
07376      3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151,
07377      3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152,
07378      3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152,
07379 
07380      3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3153,
07381      3153,    0, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153,
07382      3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153,
07383      3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3154, 3154,
07384      3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154,
07385      3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154,
07386      3154, 3154, 3154, 3154, 3154, 3154, 3154, 3155, 3155, 3155,
07387      3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
07388      3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
07389      3155, 3155, 3155, 3155, 3155, 3155, 3156, 3156, 3156, 3156,
07390 
07391         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07392      3156, 3156,    0, 3156,    0, 3156, 3156,    0,    0,    0,
07393      3156, 3157, 3157, 3157, 3157,    0, 3157,    0,    0,    0,
07394         0,    0,    0,    0,    0,    0, 3157,    0,    0,    0,
07395      3157, 3157,    0,    0,    0, 3157,    0,    0, 3157, 3158,
07396      3158, 3158, 3158,    0, 3158,    0,    0,    0,    0,    0,
07397         0,    0,    0,    0, 3158,    0,    0,    0, 3158, 3158,
07398         0,    0,    0, 3158,    0,    0, 3158, 3159, 3159, 3159,
07399      3159,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07400         0, 3159, 3159,    0, 3159,    0, 3159, 3159,    0,    0,
07401 
07402         0, 3159, 3160, 3160,    0, 3160, 3160,    0, 3160, 3160,
07403      3160, 3160, 3160, 3160,    0,    0,    0, 3160, 3160, 3160,
07404      3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,    0, 3160,
07405      3160, 3161,    0,    0, 3161,    0,    0,    0,    0,    0,
07406         0,    0,    0,    0,    0, 3161,    0,    0, 3161,    0,
07407      3161, 3161,    0,    0,    0, 3161, 3165, 3165,    0, 3165,
07408         0, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165,
07409      3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165,    0,
07410      3165, 3165, 3165, 3165, 3165, 3167, 3167, 3167, 3167, 3167,
07411      3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167,
07412 
07413      3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167,
07414      3167, 3167, 3167, 3167, 3168, 3168, 3168, 3168, 3168, 3168,
07415      3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
07416      3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
07417      3168, 3168, 3168, 3169, 3169,    0, 3169, 3169,    0,    0,
07418      3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169,
07419      3169, 3169, 3169, 3169, 3169, 3169,    0, 3169, 3169, 3169,
07420      3169, 3169, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
07421      3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
07422      3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
07423 
07424      3170, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171,
07425      3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171,
07426      3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171,
07427      3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174,
07428         0, 3174, 3174, 3174,    0, 3174, 3174, 3174, 3174, 3174,
07429      3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3175,
07430      3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175,
07431      3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175,
07432      3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3176, 3176,
07433      3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176,
07434 
07435      3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176,
07436      3176, 3176, 3176, 3176, 3176, 3176, 3176, 3177, 3177, 3177,
07437      3177, 3177, 3177, 3177, 3177, 3177, 3177,    0, 3177, 3177,
07438      3177,    0, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
07439      3177, 3177, 3177, 3177, 3177, 3177, 3178, 3178, 3178, 3178,
07440      3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178,
07441      3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178,
07442      3178, 3178, 3178, 3178, 3178, 3179, 3179, 3179, 3179, 3179,
07443      3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179,
07444      3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179,
07445 
07446      3179, 3179, 3179, 3179, 3180, 3180, 3180, 3180, 3180, 3180,
07447      3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180,
07448      3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180,
07449      3180, 3180, 3180, 3181, 3181,    0,    0, 3181,    0, 3181,
07450      3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181,
07451      3181, 3181, 3181, 3181, 3181, 3181,    0, 3181, 3181, 3181,
07452      3181, 3181, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
07453      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
07454      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
07455      3182, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
07456 
07457      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
07458      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
07459      3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184,
07460      3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184,
07461      3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3185,
07462      3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185,
07463      3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185,
07464      3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3186, 3186,
07465      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
07466      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
07467 
07468      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3187, 3187,    0,
07469         0, 3187, 3187, 3187,    0, 3187, 3187, 3187, 3187, 3187,
07470      3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187,
07471         0, 3187, 3187, 3187, 3187, 3187, 3188, 3188, 3188, 3188,
07472      3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188,
07473      3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188,
07474      3188, 3188, 3188, 3188, 3188, 3189, 3189, 3189, 3189, 3189,
07475      3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189,
07476      3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189,
07477      3189, 3189, 3189, 3189, 3190, 3190, 3190, 3190, 3190, 3190,
07478 
07479      3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190,
07480      3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190,
07481      3190, 3190, 3190, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
07482      3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
07483      3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
07484      3191, 3191, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192,
07485      3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192,
07486      3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192,
07487      3192, 3193, 3193,    0, 3193, 3193,    0, 3193, 3193, 3193,
07488      3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193,
07489 
07490      3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193,
07491      3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194,
07492      3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194,
07493      3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3195,
07494      3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195,
07495      3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195,
07496      3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3196, 3196,
07497      3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196,
07498      3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196,
07499      3196, 3196, 3196, 3196, 3196, 3196, 3196, 3197, 3197, 3197,
07500 
07501      3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197,
07502      3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197,
07503      3197, 3197, 3197, 3197, 3197, 3197, 3198, 3198, 3198, 3198,
07504      3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198,
07505      3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198,
07506      3198, 3198, 3198, 3198, 3198, 3199, 3199, 3199, 3199, 3199,
07507      3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199,
07508      3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199,
07509      3199, 3199, 3199, 3199, 3200, 3200, 3200, 3200, 3200, 3200,
07510      3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200,
07511 
07512      3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200,
07513      3200, 3200, 3200, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
07514      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
07515      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
07516      3201, 3201, 3202, 3202,    0,    0, 3202, 3202, 3202, 3202,
07517      3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202,
07518      3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202,
07519      3202, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203,
07520      3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203,
07521      3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203,
07522 
07523      3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204,
07524      3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204,
07525      3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3205,
07526      3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205,
07527      3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205,
07528      3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3206, 3206,
07529      3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206,
07530      3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206,
07531      3206, 3206, 3206, 3206, 3206, 3206, 3206, 3207, 3207, 3207,
07532      3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207,
07533 
07534      3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207,
07535      3207, 3207, 3207, 3207, 3207, 3207, 3208, 3208, 3208, 3208,
07536      3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
07537      3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
07538      3208, 3208, 3208, 3208, 3208, 3209, 3209, 3209, 3209, 3209,
07539      3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
07540      3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
07541      3209, 3209, 3209, 3209, 3210, 3210, 3210, 3210, 3210, 3210,
07542      3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210,
07543      3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210,
07544 
07545      3210, 3210, 3210, 3211, 3211, 3211, 3211, 3211, 3211, 3211,
07546      3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211,
07547      3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211,
07548      3211, 3211, 3212, 3212, 3212, 3212,    0,    0,    0,    0,
07549      3212,    0, 3212,    0,    0,    0, 3212, 3212, 3212, 3212,
07550         0, 3212, 3212,    0,    0, 3212, 3212, 3213, 3213, 3213,
07551      3213,    0,    0,    0, 3213, 3213,    0, 3213,    0,    0,
07552         0, 3213, 3213, 3213, 3213,    0, 3213, 3213,    0,    0,
07553      3213, 3213, 3214, 3214, 3214, 3214,    0,    0,    0,    0,
07554      3214,    0, 3214,    0,    0,    0, 3214,    0, 3214, 3214,
07555 
07556         0, 3214, 3214,    0,    0, 3214, 3214, 3216, 3216, 3216,
07557      3216,    0, 3216,    0,    0, 3216,    0,    0,    0,    0,
07558         0, 3216, 3216,    0,    0,    0, 3216, 3216,    0,    0,
07559         0, 3216,    0,    0, 3216, 3217, 3217, 3217, 3217,    0,
07560      3217,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07561         0,    0,    0,    0, 3217, 3217,    0,    0,    0, 3217,
07562      3218, 3218, 3218, 3218,    0, 3218,    0,    0, 3218,    0,
07563         0,    0,    0,    0, 3218, 3218,    0,    0,    0, 3218,
07564      3218,    0,    0,    0, 3218,    0,    0, 3218, 3219, 3219,
07565      3219, 3219,    0, 3219,    0,    0,    0,    0,    0,    0,
07566 
07567         0,    0,    0, 3219,    0,    0,    0, 3219, 3219,    0,
07568         0,    0, 3219,    0,    0, 3219, 3220, 3220, 3220, 3220,
07569         0, 3220,    0,    0,    0,    0,    0,    0,    0,    0,
07570         0,    0,    0,    0,    0, 3220, 3220,    0,    0,    0,
07571      3220, 3221, 3221,    0, 3221, 3221,    0, 3221, 3221, 3221,
07572      3221, 3221, 3221, 3221, 3221,    0, 3221, 3221, 3221, 3221,
07573      3221, 3221, 3221, 3221, 3221, 3221, 3221,    0, 3221, 3221,
07574      3222,    0,    0, 3222,    0,    0,    0,    0,    0,    0,
07575         0,    0,    0,    0, 3222, 3222,    0, 3222,    0, 3222,
07576      3222,    0,    0,    0, 3222, 3223,    0,    0, 3223,    0,
07577 
07578         0,    0,    0, 3223,    0,    0,    0,    0,    0, 3223,
07579         0,    0,    0,    0, 3223, 3223,    0,    0,    0, 3223,
07580      3224,    0,    0, 3224,    0, 3224,    0,    0,    0,    0,
07581         0,    0,    0,    0,    0,    0,    0,    0,    0, 3224,
07582      3224,    0,    0,    0, 3224, 3225,    0,    0, 3225,    0,
07583         0,    0,    0,    0,    0,    0,    0,    0,    0, 3225,
07584      3225,    0, 3225,    0, 3225, 3225,    0,    0,    0, 3225,
07585      3226,    0,    0, 3226,    0,    0,    0, 3226,    0,    0,
07586         0, 3226, 3226,    0, 3226, 3226,    0, 3226,    0, 3226,
07587      3226,    0,    0,    0, 3226, 3227, 3227,    0, 3227, 3227,
07588 
07589      3227, 3227, 3227,    0,    0, 3227, 3227, 3227, 3227, 3227,
07590      3227, 3227, 3227,    0, 3227, 3227, 3227,    0, 3227,    0,
07591      3227,    0,    0, 3227, 3228, 3228, 3228, 3228,    0,    0,
07592         0,    0,    0,    0,    0,    0,    0,    0, 3228, 3228,
07593         0,    0,    0, 3228, 3228,    0,    0,    0, 3228, 3229,
07594         0,    0, 3229,    0,    0,    0,    0,    0,    0,    0,
07595         0,    0,    0, 3229,    0,    0,    0,    0, 3229, 3229,
07596         0,    0,    0, 3229, 3230, 3230, 3230, 3230,    0, 3230,
07597         0,    0,    0,    0,    0,    0,    0,    0,    0, 3230,
07598         0,    0,    0, 3230, 3230,    0,    0,    0, 3230,    0,
07599 
07600         0, 3230, 3231, 3231, 3231, 3231,    0, 3231,    0,    0,
07601         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07602         0, 3231, 3231,    0,    0,    0, 3231, 3232, 3232,    0,
07603      3232,    0,    0,    0, 3232,    0,    0,    0, 3232, 3232,
07604         0, 3232, 3232,    0, 3232,    0, 3232, 3232,    0,    0,
07605         0, 3232, 3234, 3234,    0,    0,    0, 3234, 3234,    0,
07606         0,    0, 3234, 3235, 3235,    0,    0,    0, 3235, 3235,
07607         0,    0,    0, 3235, 3236,    0, 3236,    0,    0,    0,
07608         0, 3236, 3236,    0,    0,    0, 3236, 3239, 3239,    0,
07609      3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239,
07610 
07611      3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239,
07612      3239, 3239, 3239, 3239, 3239, 3239, 3240, 3240, 3240, 3240,
07613      3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
07614      3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
07615      3240, 3240, 3240, 3240, 3240, 3241, 3241, 3241, 3241, 3241,
07616      3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241,
07617      3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241,
07618      3241, 3241, 3241, 3241, 3242, 3242, 3242, 3242, 3242, 3242,
07619      3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242,
07620      3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242,
07621 
07622      3242, 3242, 3242, 3243, 3243, 3243, 3243, 3243, 3243, 3243,
07623      3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243,
07624      3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243,
07625      3243, 3243, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244,
07626      3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244,
07627      3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244,
07628      3244, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
07629      3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
07630      3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
07631      3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
07632 
07633      3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
07634      3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3247,
07635      3247, 3247, 3247,    0,    0,    0,    0,    0,    0,    0,
07636         0,    0,    0, 3247, 3247,    0, 3247,    0, 3247, 3247,
07637         0,    0,    0, 3247, 3249, 3249, 3249, 3249,    0,    0,
07638         0,    0,    0,    0,    0,    0,    0,    0, 3249, 3249,
07639         0, 3249,    0, 3249, 3249,    0,    0,    0, 3249, 3250,
07640      3250, 3250, 3250,    0,    0,    0,    0,    0,    0,    0,
07641         0,    0,    0, 3250, 3250,    0, 3250,    0, 3250, 3250,
07642         0,    0,    0, 3250, 3252,    0,    0, 3252,    0,    0,
07643 
07644         0,    0,    0,    0,    0,    0,    0,    0, 3252,    0,
07645         0,    0,    0, 3252, 3252,    0,    0,    0, 3252, 3254,
07646      3254,    0, 3254,    0, 3254, 3254, 3254, 3254, 3254, 3254,
07647      3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254,
07648      3254, 3254,    0, 3254, 3254, 3254, 3254, 3254, 3255, 3255,
07649         0, 3255, 3255,    0,    0, 3255, 3255, 3255, 3255, 3255,
07650      3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255,
07651      3255,    0, 3255, 3255, 3255, 3255, 3255, 3256, 3256, 3256,
07652      3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256,
07653      3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256,
07654 
07655      3256, 3256, 3256, 3256, 3256, 3256, 3257, 3257, 3257, 3257,
07656      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
07657      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
07658      3257, 3257, 3257, 3257, 3257, 3258, 3258, 3258, 3258, 3258,
07659      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
07660      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
07661      3258, 3258, 3258, 3258, 3259, 3259, 3259, 3259, 3259, 3259,
07662      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
07663      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
07664      3259, 3259, 3259, 3260, 3260, 3260, 3260, 3260, 3260, 3260,
07665 
07666      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260,
07667      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260,
07668      3260, 3260, 3263, 3263,    0,    0,    0, 3263, 3263,    0,
07669         0,    0, 3263, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
07670      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
07671      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
07672      3264, 3264, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
07673      3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
07674      3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
07675      3265, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266,
07676 
07677      3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266,
07678      3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266,
07679      3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
07680      3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
07681      3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3268,
07682      3268,    0,    0, 3268,    0, 3268, 3268, 3268, 3268, 3268,
07683      3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268,
07684      3268, 3268,    0, 3268, 3268, 3268, 3268, 3268, 3269, 3269,
07685      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
07686      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
07687 
07688      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270, 3270,
07689      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
07690      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
07691      3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271,    0,    0,
07692      3271, 3271, 3271,    0, 3271, 3271, 3271, 3271, 3271, 3271,
07693      3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271,    0,
07694      3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272, 3272,
07695      3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272,
07696      3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272,
07697      3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273, 3273, 3273,
07698 
07699      3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273,
07700      3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273,
07701      3273, 3273, 3273, 3274, 3274,    0, 3274, 3274,    0, 3274,
07702      3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274,
07703      3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274,
07704      3274, 3274, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275,
07705      3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275,
07706      3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275,
07707      3275, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276,
07708      3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276,
07709 
07710      3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276,
07711      3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277,
07712      3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277,
07713      3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3278,
07714      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
07715      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
07716      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3279, 3279,
07717      3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279,
07718      3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279,
07719      3279, 3279, 3279, 3279, 3279, 3279, 3279, 3280, 3280,    0,
07720 
07721         0, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280,
07722      3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280,
07723      3280, 3280, 3280, 3280, 3280, 3280, 3281, 3281, 3281, 3281,
07724      3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281,
07725      3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281,
07726      3281, 3281, 3281, 3281, 3281, 3282, 3282, 3282, 3282, 3282,
07727      3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282,
07728      3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282,
07729      3282, 3282, 3282, 3282, 3283, 3283, 3283, 3283, 3283, 3283,
07730      3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
07731 
07732      3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
07733      3283, 3283, 3283, 3284, 3284, 3284, 3284, 3284, 3284, 3284,
07734      3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284,
07735      3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284,
07736      3284, 3284, 3285, 3285, 3285, 3285,    0,    0,    0, 3285,
07737      3285,    0, 3285, 3285,    0,    0, 3285, 3285, 3285, 3285,
07738         0, 3285, 3285,    0,    0, 3285, 3285, 3286, 3286, 3286,
07739      3286,    0, 3286,    0,    0,    0,    0,    0,    0,    0,
07740         0,    0, 3286,    0,    0,    0, 3286, 3286,    0,    0,
07741         0, 3286,    0,    0, 3286, 3287, 3287, 3287, 3287,    0,
07742 
07743      3287,    0,    0, 3287,    0,    0,    0,    0,    0, 3287,
07744      3287,    0,    0,    0, 3287, 3287,    0,    0,    0, 3287,
07745         0,    0, 3287, 3288, 3288, 3288, 3288,    0, 3288,    0,
07746         0, 3288,    0,    0,    0,    0,    0, 3288, 3288,    0,
07747         0,    0, 3288, 3288,    0,    0,    0, 3288,    0,    0,
07748      3288, 3289, 3289, 3289, 3289,    0, 3289,    0,    0,    0,
07749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07750      3289, 3289,    0,    0,    0, 3289,    0,    0, 3289, 3290,
07751         0,    0, 3290,    0,    0,    0,    0,    0,    0,    0,
07752      3290,    0,    0, 3290, 3290,    0, 3290,    0, 3290, 3290,
07753 
07754         0,    0,    0, 3290, 3291,    0,    0, 3291,    0,    0,
07755         0,    0,    0,    0,    0,    0,    0,    0, 3291, 3291,
07756         0, 3291,    0, 3291, 3291,    0,    0,    0, 3291, 3292,
07757         0,    0, 3292,    0,    0,    0, 3292,    0,    0,    0,
07758      3292, 3292,    0, 3292, 3292,    0, 3292,    0, 3292, 3292,
07759         0,    0,    0, 3292, 3293, 3293, 3293, 3293,    0, 3293,
07760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07761         0,    0,    0, 3293, 3293,    0,    0,    0, 3293,    0,
07762         0, 3293, 3294, 3294,    0, 3294,    0,    0,    0, 3294,
07763         0,    0,    0, 3294, 3294,    0, 3294, 3294,    0, 3294,
07764 
07765         0, 3294, 3294,    0,    0,    0, 3294, 3295, 3295,    0,
07766         0,    0, 3295, 3295,    0,    0,    0, 3295, 3296, 3296,
07767         0,    0,    0, 3296, 3296,    0,    0,    0, 3296, 3299,
07768      3299,    0, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
07769      3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
07770      3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3300, 3300,
07771      3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300,
07772      3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300,
07773      3300, 3300, 3300, 3300, 3300, 3300, 3300, 3301, 3301, 3301,
07774      3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301,
07775 
07776      3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301,
07777      3301, 3301, 3301, 3301, 3301, 3301, 3302, 3302, 3302, 3302,
07778      3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
07779      3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
07780      3302, 3302, 3302, 3302, 3302, 3303, 3303, 3303, 3303, 3303,
07781      3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
07782      3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
07783      3303, 3303, 3303, 3303, 3304, 3304, 3304, 3304,    0,    0,
07784         0,    0,    0,    0,    0,    0,    0,    0, 3304, 3304,
07785         0, 3304,    0, 3304, 3304,    0,    0,    0, 3304, 3306,
07786 
07787      3306, 3306, 3306,    0,    0,    0,    0,    0,    0,    0,
07788         0,    0,    0, 3306, 3306,    0, 3306,    0, 3306, 3306,
07789         0,    0,    0, 3306, 3307, 3307, 3307, 3307,    0,    0,
07790         0,    0,    0,    0,    0,    0,    0,    0, 3307,    0,
07791      3307,    0, 3307, 3307, 3307,    0,    0,    0, 3307, 3307,
07792      3310, 3310,    0, 3310, 3310,    0,    0, 3310, 3310, 3310,
07793      3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310,
07794      3310, 3310, 3310,    0, 3310, 3310, 3310, 3310, 3310, 3311,
07795      3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
07796      3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
07797 
07798      3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3312, 3312,
07799      3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
07800      3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
07801      3312, 3312, 3312, 3312, 3312, 3312, 3312, 3314, 3314,    0,
07802         0,    0, 3314, 3314,    0,    0,    0, 3314, 3315, 3315,
07803      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315,
07804      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315,
07805      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316, 3316, 3316,
07806      3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316,
07807      3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316,
07808 
07809      3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317, 3317, 3317,
07810      3317, 3317, 3317, 3317, 3317, 3317,    0, 3317, 3317, 3317,
07811         0, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317,
07812      3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318, 3318,    0,
07813         0,    0, 3318, 3318,    0, 3318,    0,    0,    0, 3318,
07814      3318, 3318, 3318,    0, 3318, 3318,    0,    0, 3318, 3318,
07815      3319, 3319, 3319, 3319,    0, 3319,    0,    0,    0,    0,
07816         0,    0,    0,    0,    0,    0,    0,    0,    0, 3319,
07817      3319,    0,    0,    0, 3319,    0,    0, 3319, 3321, 3321,
07818      3321, 3321,    0,    0,    0, 3321,    0,    0,    0,    0,
07819 
07820         0,    0, 3321, 3321,    0, 3321,    0, 3321, 3321,    0,
07821         0,    0, 3321, 3322, 3322, 3322, 3322,    0, 3322,    0,
07822         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07823         0,    0, 3322, 3322,    0,    0,    0, 3322, 3323,    0,
07824         0, 3323,    0,    0,    0, 3323,    0,    0,    0, 3323,
07825      3323,    0, 3323, 3323,    0, 3323,    0, 3323, 3323,    0,
07826         0,    0, 3323, 3324, 3324, 3324, 3324,    0, 3324,    0,
07827         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07828         0,    0, 3324, 3324,    0,    0,    0, 3324,    0,    0,
07829      3324, 3325, 3325, 3325, 3325,    0,    0,    0, 3325,    0,
07830 
07831         0,    0,    0,    0,    0, 3325, 3325,    0, 3325,    0,
07832      3325, 3325,    0,    0,    0, 3325, 3326, 3326, 3326, 3326,
07833         0, 3326,    0,    0,    0,    0,    0,    0,    0,    0,
07834         0,    0,    0,    0,    0, 3326, 3326,    0,    0,    0,
07835      3326, 3327, 3327,    0, 3327,    0,    0,    0, 3327,    0,
07836         0,    0, 3327, 3327,    0, 3327, 3327,    0, 3327,    0,
07837      3327, 3327,    0,    0,    0, 3327, 3328, 3328,    0,    0,
07838         0, 3328, 3328,    0,    0,    0, 3328, 3332,    0,    0,
07839      3332,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07840         0, 3332, 3332,    0,    0,    0, 3332, 3332,    0,    0,
07841 
07842         0, 3332, 3333, 3333, 3333, 3333,    0,    0,    0,    0,
07843         0,    0,    0,    0,    0,    0, 3333, 3333,    0, 3333,
07844         0, 3333, 3333,    0,    0,    0, 3333, 3338, 3338, 3338,
07845      3338,    0,    0,    0, 3338,    0,    0,    0,    0,    0,
07846         0, 3338, 3338,    0, 3338,    0, 3338, 3338,    0,    0,
07847         0, 3338, 3339, 3339,    0, 3339, 3339,    0, 3339, 3339,
07848         0,    0, 3339, 3339, 3339, 3339,    0, 3339, 3339, 3339,
07849      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,    0,    0,
07850      3339, 3340, 3340, 3340, 3340,    0, 3340,    0,    0,    0,
07851         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07852 
07853      3340, 3340,    0,    0,    0, 3340, 3341, 3341, 3341, 3341,
07854         0,    0,    0, 3341,    0,    0,    0,    0,    0,    0,
07855      3341,    0,    0,    0,    0, 3341, 3341,    0,    0,    0,
07856      3341, 3342, 3342, 3342, 3342,    0,    0,    0, 3342,    0,
07857         0,    0,    0,    0,    0, 3342,    0,    0,    0,    0,
07858      3342, 3342,    0,    0,    0, 3342, 3343, 3343, 3343, 3343,
07859      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
07860      3343,    0, 3343, 3343, 3343, 3343,    0,    0, 3343, 3343,
07861      3343, 3343, 3343, 3343, 3343, 3344, 3344, 3344, 3344, 3344,
07862      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
07863 
07864         0, 3344, 3344, 3344, 3344,    0,    0, 3344, 3344, 3344,
07865         0, 3344, 3344, 3344, 3345, 3345,    0, 3345, 3345,    0,
07866      3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,    0, 3345,
07867      3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
07868         0, 3345, 3345, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
07869      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,    0, 3346,
07870      3346, 3346, 3346,    0,    0, 3346, 3346, 3346,    0, 3346,
07871      3346, 3346, 3347, 3347,    0, 3347, 3347,    0, 3347, 3347,
07872      3347, 3347, 3347, 3347,    0,    0,    0, 3347, 3347, 3347,
07873      3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347,    0, 3347,
07874 
07875      3347, 3348, 3348,    0, 3348, 3348, 3348, 3348, 3348, 3348,
07876      3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348,
07877      3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348,
07878      3349, 3349,    0, 3349, 3349, 3349, 3349, 3349, 3349, 3349,
07879      3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349,
07880      3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3350,
07881      3350,    0, 3350, 3350,    0, 3350, 3350, 3350, 3350, 3350,
07882      3350, 3350, 3350,    0, 3350, 3350, 3350, 3350, 3350, 3350,
07883      3350, 3350, 3350, 3350, 3350,    0, 3350, 3350, 3351, 3351,
07884         0, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351,
07885 
07886      3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351,
07887      3351, 3351, 3351, 3351, 3351, 3351, 3351, 3352, 3352,    0,
07888      3352, 3352,    0, 3352, 3352, 3352, 3352, 3352, 3352,    0,
07889         0,    0, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
07890      3352, 3352, 3352,    0, 3352, 3352, 3353, 3353,    0, 3353,
07891      3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
07892      3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
07893      3353, 3353, 3353, 3353, 3353, 3354, 3354,    0, 3354, 3354,
07894         0, 3354, 3354, 3354, 3354, 3354, 3354,    0,    0,    0,
07895      3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354,
07896 
07897      3354,    0, 3354, 3354, 3355, 3355,    0, 3355, 3355,    0,
07898      3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,    0, 3355,
07899      3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
07900         0, 3355, 3355, 3356, 3356,    0, 3356, 3356, 3356, 3356,
07901      3356,    0,    0, 3356, 3356, 3356, 3356, 3356, 3356, 3356,
07902      3356,    0, 3356, 3356, 3356,    0, 3356,    0, 3356,    0,
07903         0, 3356, 3357,    0,    0, 3357,    0, 3357,    0,    0,
07904         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
07905         0, 3357, 3357,    0,    0,    0, 3357, 3358,    0,    0,
07906      3358,    0,    0,    0,    0, 3358,    0,    0,    0,    0,
07907 
07908         0, 3358,    0,    0,    0,    0, 3358, 3358,    0,    0,
07909         0, 3358, 3359, 3359,    0, 3359, 3359, 3359, 3359, 3359,
07910      3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359,
07911      3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359,
07912      3359, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07913      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07914      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07915      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07916      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07917      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07918 
07919      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07920      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
07921      2974, 2974, 2974, 2974
07922     } ;
07923 
07924 extern int codeYY_flex_debug;
07925 int codeYY_flex_debug = 0;
07926 
07927 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
07928 static char *yy_full_match;
07929 static int yy_lp;
07930 static int yy_looking_for_trail_begin = 0;
07931 static int yy_full_lp;
07932 static int *yy_full_state;
07933 #define YY_TRAILING_MASK 0x2000
07934 #define YY_TRAILING_HEAD_MASK 0x4000
07935 #define REJECT \
07936 { \
07937 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ \
07938 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
07939 (yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \
07940 (yy_state_ptr) = yy_full_state; /* restore orig. state */ \
07941 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
07942 ++(yy_lp); \
07943 goto find_rule; \
07944 }
07945 
07946 #define yymore() yymore_used_but_not_detected
07947 #define YY_MORE_ADJ 0
07948 #define YY_RESTORE_YY_MORE_OFFSET
07949 char *codeYYtext;
07950 #line 1 "code.l"
07951 /******************************************************************************
07952  *
07953  * 
07954  *
07955  * Copyright (C) 1997-2008 by Dimitri van Heesch.
07956  *
07957  * Permission to use, copy, modify, and distribute this software and its
07958  * documentation under the terms of the GNU General Public License is hereby 
07959  * granted. No representations are made about the suitability of this software 
07960  * for any purpose. It is provided "as is" without express or implied warranty.
07961  * See the GNU General Public License for more details.
07962  *
07963  * Documents produced by Doxygen are derivative works derived from the
07964  * input used in their production; they are not affected by this license.
07965  *
07966  */
07967 #line 19 "code.l"
07968 
07969 /*
07970  *      includes
07971  */
07972 #include <stdio.h>
07973 #include <assert.h>
07974 #include <ctype.h>
07975 #include <qregexp.h>
07976 #include <qdir.h>
07977 
07978 #include "qtbc.h"
07979 #include "entry.h"
07980 #include "doxygen.h"
07981 #include "message.h"
07982 #include "outputlist.h"
07983 #include "util.h"
07984 #include "membername.h"
07985 #include "searchindex.h"
07986 
07987 #define YY_NEVER_INTERACTIVE 1
07988   
07989 // Toggle for some debugging info
07990 //#define DBG_CTX(x) fprintf x
07991 #define DBG_CTX(x) do { } while(0)
07992   
07993 #define CLASSBLOCK (int *)4
07994 #define SCOPEBLOCK (int *)8
07995 #define INNERBLOCK (int *)12
07996 
07997 /* -----------------------------------------------------------------
07998  *      statics
07999  */
08000   
08001 static CodeOutputInterface * g_code;
08002 
08003 static ClassSDict    *g_codeClassSDict = 0;
08004 static QCString      g_curClassName;
08005 static QStrList      g_curClassBases;
08006 
08007 static QCString      g_parmType;
08008 static QCString      g_parmName;
08009 
08010 static const char *  g_inputString;     
08011 static int           g_inputPosition;   
08012 static int           g_inputLines;      
08013 static int           g_yyLineNr;        
08014 static bool          g_needsTermination;
08015 
08016 static bool          g_exampleBlock;
08017 static QCString      g_exampleName;
08018 static QCString      g_exampleFile;
08019 
08020 static bool          g_insideTemplate = FALSE;
08021 static QCString      g_type;
08022 static QCString      g_name;
08023 static QCString      g_args;
08024 static QCString      g_classScope;
08025 static QCString      g_realScope;
08026 static QStack<int>   g_scopeStack;      
08027                                         //   2 for internal blocks 
08028 static int           g_anchorCount;
08029 static FileDef *     g_sourceFileDef;
08030 static bool          g_lineNumbers;
08031 static Definition *  g_currentDefinition;
08032 static MemberDef *   g_currentMemberDef;
08033 static bool          g_includeCodeFragment;
08034 static const char *  g_currentFontClass;
08035 static bool          g_searchingForBody;
08036 static bool          g_insideBody;
08037 static int           g_bodyCurlyCount;
08038 static QCString      g_saveName;
08039 static QCString      g_saveType;
08040 
08041 static int           g_bracketCount = 0;
08042 static int           g_curlyCount   = 0;
08043 static int           g_sharpCount   = 0;
08044 static bool          g_inFunctionTryBlock = FALSE;
08045 static bool          g_inForEachExpression = FALSE;
08046 
08047 static int           g_lastTemplCastContext;
08048 static int           g_lastSpecialCContext;
08049 static int           g_lastStringContext;
08050 static int           g_lastSkipCppContext;
08051 static int           g_lastVerbStringContext;
08052 static int           g_memCallContext;
08053 static int           g_lastCContext;
08054 
08055 static bool          g_insideObjC;
08056 static bool          g_insideProtocolList;
08057 
08058 static bool          g_lexInit = FALSE;
08059 
08060 static QStack<int>   g_classScopeLengthStack;
08061 
08062 // context for an Objective-C method call
08063 struct ObjCCallCtx
08064 {
08065   int id;
08066   QCString methodName;
08067   QCString objectTypeOrName;
08068   ClassDef *objectType;
08069   MemberDef *objectVar;
08070   MemberDef *method;
08071   QCString format;
08072   int lexState;
08073   int braceCount;
08074 };
08075 
08076 // globals for objective-C method calls 
08077 static ObjCCallCtx *g_currentCtx=0;
08078 static int g_currentCtxId=0;
08079 static int g_currentNameId=0;
08080 static int g_currentObjId=0;
08081 static int g_currentWordId=0;
08082 static QStack<ObjCCallCtx> g_contextStack;
08083 static QIntDict<ObjCCallCtx> g_contextDict;
08084 static QIntDict<QCString> g_nameDict;
08085 static QIntDict<QCString> g_objectDict;
08086 static QIntDict<QCString> g_wordDict;
08087 static int g_braceCount=0;
08088   
08089 static void saveObjCContext();
08090 static void restoreObjCContext();
08091 
08092 
08093 
08094 //-------------------------------------------------------------------
08095 
08101 class VariableContext
08102 {
08103   public:
08104     static const ClassDef *dummyContext;
08105     
08106     class Scope : public SDict<ClassDef>
08107     {
08108       public:
08109         Scope() : SDict<ClassDef>(17) {}
08110     };
08111     
08112     VariableContext() 
08113     {
08114       m_scopes.setAutoDelete(TRUE);
08115     }
08116     virtual ~VariableContext()
08117     {
08118     }
08119     
08120     void pushScope()
08121     {
08122       m_scopes.append(new Scope);
08123       DBG_CTX((stderr,"** Push var context %d\n",m_scopes.count()));
08124     }
08125 
08126     void popScope()
08127     {
08128       if (m_scopes.count()>0)
08129       {
08130         DBG_CTX((stderr,"** Pop var context %d\n",m_scopes.count()));
08131         m_scopes.remove(m_scopes.count()-1);
08132       }
08133       else
08134       {
08135         DBG_CTX((stderr,"** ILLEGAL: Pop var context\n"));
08136       }
08137     }
08138 
08139     void clear()
08140     {
08141       m_scopes.clear();
08142       m_globalScope.clear();
08143     }
08144 
08145     void clearExceptGlobal()
08146     {
08147       DBG_CTX((stderr,"** Clear var context\n"));
08148       m_scopes.clear();
08149     }
08150 
08151     void addVariable(const QCString &type,const QCString &name);
08152     ClassDef *findVariable(const QCString &name);
08153 
08154     int count() const { return m_scopes.count(); }
08155     
08156   private:
08157     Scope        m_globalScope;
08158     QList<Scope> m_scopes;
08159 };
08160 
08161 void VariableContext::addVariable(const QCString &type,const QCString &name)
08162 {
08163   //printf("VariableContext::addVariable(%s,%s)\n",type.data(),name.data());
08164   QCString ltype = type.simplifyWhiteSpace();
08165   QCString lname = name.simplifyWhiteSpace();
08166   if (ltype.left(7)=="struct ") 
08167   {
08168     ltype = ltype.right(ltype.length()-7);
08169   }
08170   else if (ltype.left(6)=="union ")
08171   {
08172     ltype = ltype.right(ltype.length()-6);
08173   }
08174   if (ltype.isEmpty() || lname.isEmpty()) return;
08175   DBG_CTX((stderr,"** addVariable trying: type='%s' name='%s' g_currentDefinition=%s\n",
08176         ltype.data(),lname.data(),g_currentDefinition?g_currentDefinition->name().data():"<none>"));
08177   Scope *scope = m_scopes.count()==0 ? &m_globalScope : m_scopes.getLast();
08178   ClassDef *varType;
08179   int i=0;
08180   if (
08181       (varType=g_codeClassSDict->find(ltype)) ||  // look for class definitions inside the code block
08182       (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,ltype)) // look for global class definitions
08183      ) 
08184   {
08185     DBG_CTX((stderr,"** addVariable type='%s' name='%s'\n",ltype.data(),lname.data()));
08186     scope->append(lname,varType); // add it to a list
08187   }
08188   else if ((i=ltype.find('<'))!=-1)
08189   {
08190     // probably a template class
08191     QCString typeName(ltype.left(i));
08192     ClassDef* newDef = 0;
08193     QCString templateArgs(ltype.right(ltype.length() - i));
08194     if (  
08195          ( // look for class definitions inside the code block
08196            (varType=g_codeClassSDict->find(typeName)) ||
08197            // otherwise look for global class definitions
08198            (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,typeName))
08199          ) && // and it must be a template
08200          varType->templateArguments())
08201     {
08202       newDef = varType->getVariableInstance( templateArgs );
08203     }
08204     if (newDef)
08205     {
08206       DBG_CTX((stderr,"** addVariable type='%s' templ='%s' name='%s'\n",typeName.data(),templateArgs.data(),lname.data()));
08207       scope->append(lname, newDef);
08208     }
08209     else
08210     {
08211       // Doesn't seem to be a template. Try just the base name.
08212       addVariable(typeName,name);
08213     }
08214   }
08215   else 
08216   {
08217     if (m_scopes.count()>0) // for local variables add a dummy entry so the name 
08218                             // is hidden to avoid false links to global variables with the same name
08219                             // TODO: make this work for namespaces as well!
08220     {
08221       DBG_CTX((stderr,"** addVariable: dummy context for '%s'\n",lname.data()));
08222       scope->append(lname,dummyContext);
08223     }
08224     else
08225     {
08226       DBG_CTX((stderr,"** addVariable: not adding variable!\n"));
08227     }
08228   }
08229 }
08230 
08231 ClassDef *VariableContext::findVariable(const QCString &name)
08232 {
08233   if (name.isEmpty()) return 0;
08234   ClassDef *result = 0;
08235   QListIterator<Scope> sli(m_scopes);
08236   Scope *scope;
08237   QCString key = name;
08238   // search from inner to outer scope
08239   for (sli.toLast();(scope=sli.current());--sli)
08240   {
08241     result = scope->find(key);
08242     if (result) 
08243     {
08244       DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result));
08245       return result;
08246     }
08247   }
08248   // nothing found -> also try the global scope
08249   result=m_globalScope.find(name);
08250   DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result));
08251   return result;
08252 }
08253 
08254 static VariableContext g_theVarContext;
08255 const ClassDef *VariableContext::dummyContext = (ClassDef*)0x8;
08256 
08257 //-------------------------------------------------------------------
08258 
08259 class CallContext
08260 {
08261   public:
08262     struct Ctx
08263     {
08264       Ctx() : name(g_name), type(g_type), cd(0) {}
08265       QCString name;
08266       QCString type;
08267       ClassDef *cd;
08268     };
08269 
08270     CallContext() 
08271     {
08272       m_classList.append(new Ctx);
08273       m_classList.setAutoDelete(TRUE);
08274     }
08275     virtual ~CallContext() {}
08276     void setClass(ClassDef *cd)
08277     {
08278       Ctx *ctx = m_classList.getLast();
08279       if (ctx)
08280       {
08281         DBG_CTX((stderr,"** Set call context %s (%p)\n",cd==0 ? "<null>" : cd->name().data(),cd));
08282         ctx->cd=cd;
08283       }
08284     }
08285     void pushScope()
08286     {
08287       m_classList.append(new Ctx);
08288       DBG_CTX((stderr,"** Push call context %d\n",m_classList.count()));
08289     }
08290     void popScope()
08291     {
08292       if (m_classList.count()>1)
08293       {
08294         DBG_CTX((stderr,"** Pop call context %d\n",m_classList.count()));
08295         Ctx *ctx = m_classList.getLast();
08296         if (ctx)
08297         {
08298           g_name = ctx->name;
08299           g_type = ctx->type;
08300         }
08301         m_classList.removeLast();
08302       }
08303       else
08304       {
08305         DBG_CTX((stderr,"** ILLEGAL: Pop call context\n"));
08306       }
08307     }
08308     void clear()
08309     {
08310       DBG_CTX((stderr,"** Clear call context\n"));
08311       m_classList.clear();
08312       m_classList.append(new Ctx);
08313     }
08314     ClassDef *getClass() const
08315     {
08316       Ctx *ctx = m_classList.getLast();
08317       if (ctx) return ctx->cd; else return 0;
08318     }
08319 
08320   private:
08321     QList<Ctx> m_classList;    
08322 };
08323 
08324 static CallContext g_theCallContext;
08325 
08326 //-------------------------------------------------------------------
08327 
08329 static void pushScope(const char *s)
08330 {
08331   g_classScopeLengthStack.push(new int(g_classScope.length()));
08332   if (g_classScope.isEmpty())
08333   {
08334     g_classScope = s;
08335   }
08336   else
08337   {
08338     g_classScope += "::";
08339     g_classScope += s;
08340   }
08341   //printf("pushScope() result: `%s'\n",g_classScope.data());
08342 }
08343 
08345 static void popScope()
08346 {
08347   if (!g_classScopeLengthStack.isEmpty())
08348   {
08349     int *pLength = g_classScopeLengthStack.pop();
08350     g_classScope.truncate(*pLength);
08351     delete pLength;
08352   }
08353   else
08354   {
08355     //err("Error: Too many end of scopes found!\n");
08356   }
08357   //printf("popScope() result: `%s'\n",g_classScope.data());
08358 }
08359 
08360 static void setCurrentDoc(const QCString &name,const QCString &base,const QCString &anchor="")
08361 {
08362   static bool searchEngineEnabled=Config_getBool("SEARCHENGINE");
08363   if (searchEngineEnabled)
08364   {
08365     Doxygen::searchIndex->setCurrentDoc(name,base,anchor);
08366   }
08367 }
08368 
08369 static void addToSearchIndex(const char *text)
08370 {
08371   static bool searchEngineEnabled=Config_getBool("SEARCHENGINE");
08372   if (searchEngineEnabled)
08373   {
08374     Doxygen::searchIndex->addWord(text,FALSE);
08375   }
08376 }
08377 
08378 static void setClassScope(const QCString &name)
08379 {
08380   //printf("setClassScope(%s)\n",name.data());
08381   QCString n=name;
08382   n=n.simplifyWhiteSpace();
08383   int ts=n.find('<'); // start of template
08384   int te=n.findRev('>'); // end of template
08385   //printf("ts=%d te=%d\n",ts,te);
08386   if (ts!=-1 && te!=-1 && te>ts)
08387   {
08388     // remove template from scope
08389     n=n.left(ts)+n.right(n.length()-te-1);
08390   }
08391   g_classScope = n;
08392   //printf("--->New class scope `%s'\n",g_classScope.data());
08393 }
08394 
08399 static void startCodeLine()
08400 {
08401   //if (g_currentFontClass) { g_code->endFontClass(); }
08402   if (g_sourceFileDef && g_lineNumbers)
08403   {
08404     //QCString lineNumber,lineAnchor;
08405     //lineNumber.sprintf("%05d",g_yyLineNr);
08406     //lineAnchor.sprintf("l%05d",g_yyLineNr);
08407    
08408     Definition *d   = g_sourceFileDef->getSourceDefinition(g_yyLineNr);
08409     if (!g_includeCodeFragment && d)
08410     {
08411       g_currentDefinition = d;
08412       g_currentMemberDef = g_sourceFileDef->getSourceMember(g_yyLineNr);
08413       g_insideBody = FALSE;
08414       g_searchingForBody = TRUE;
08415       g_realScope = d->name().copy();
08416       g_type.resize(0);
08417       g_name.resize(0);
08418       g_args.resize(0);
08419       g_parmType.resize(0);
08420       g_parmName.resize(0);
08421       //printf("Real scope: `%s'\n",g_realScope.data());
08422       g_bodyCurlyCount = 0;
08423       QCString lineAnchor;
08424       lineAnchor.sprintf("l%05d",g_yyLineNr);
08425       if (g_currentMemberDef)
08426       {
08427         g_code->writeLineNumber(g_currentMemberDef->getReference(),
08428                                 g_currentMemberDef->getOutputFileBase(),
08429                                 g_currentMemberDef->anchor(),g_yyLineNr);
08430         setCurrentDoc(
08431                                 g_currentMemberDef->qualifiedName(),
08432                                 g_sourceFileDef->getSourceFileBase(),
08433                                 lineAnchor);
08434       }
08435       else if (d->isLinkableInProject())
08436       {
08437         g_code->writeLineNumber(d->getReference(),
08438                                 d->getOutputFileBase(),
08439                                 0,g_yyLineNr);
08440         setCurrentDoc(
08441                                 d->qualifiedName(),
08442                                 g_sourceFileDef->getSourceFileBase(),
08443                                 lineAnchor);
08444       }
08445     }
08446     else
08447     {
08448       g_code->writeLineNumber(0,0,0,g_yyLineNr);
08449     }
08450   }
08451   g_code->startCodeLine(); 
08452   if (g_currentFontClass)
08453   {
08454     g_code->startFontClass(g_currentFontClass);
08455   }
08456 }
08457 
08458 
08459 static void endFontClass();
08460 static void endCodeLine()
08461 {
08462   if (g_currentFontClass) { g_code->endFontClass(); }
08463   g_code->endCodeLine();
08464 }
08465 
08469 static void codifyLines(char *text)
08470 {
08471   //printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text);
08472   char *p=text,*sp=p;
08473   char c;
08474   bool done=FALSE;
08475   while (!done)
08476   {
08477     sp=p;
08478     while ((c=*p++) && c!='\n');
08479     if (c=='\n')
08480     {
08481       g_yyLineNr++;
08482       *(p-1)='\0';
08483       g_code->codify(sp);
08484       endCodeLine();
08485       if (g_yyLineNr<g_inputLines) 
08486       {
08487         startCodeLine();
08488       }
08489     }
08490     else
08491     {
08492       g_code->codify(sp);
08493       done=TRUE;
08494     }
08495   }
08496 }
08497 
08502 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
08503                   const char *ref,const char *file,
08504                   const char *anchor,const char *text,
08505                   const char *tooltip)
08506 {
08507   bool done=FALSE;
08508   char *p=(char *)text;
08509   while (!done)
08510   {
08511     char *sp=p;
08512     char c;
08513     while ((c=*p++) && c!='\n');
08514     if (c=='\n')
08515     {
08516       g_yyLineNr++;
08517       *(p-1)='\0';
08518       //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp);
08519       ol.writeCodeLink(ref,file,anchor,sp,tooltip);
08520       endCodeLine();
08521       if (g_yyLineNr<g_inputLines) 
08522       {
08523         startCodeLine();
08524       }
08525     }
08526     else
08527     {
08528       //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp);
08529       ol.writeCodeLink(ref,file,anchor,sp,tooltip);
08530       done=TRUE;
08531     }
08532   }
08533 }
08534 
08535 static void addType()
08536 {
08537   if (g_name=="const") { g_name.resize(0); return; }
08538   if (!g_type.isEmpty()) g_type += ' ' ;
08539   g_type += g_name ;
08540   g_name.resize(0) ;
08541   if (!g_type.isEmpty()) g_type += ' ' ;
08542   g_type += g_args ;
08543   g_args.resize(0) ;
08544 }
08545 
08546 static void addParmType()
08547 {
08548   if (g_parmName=="const") { g_parmName.resize(0); return; }
08549   if (!g_parmType.isEmpty()) g_parmType += ' ' ;
08550   g_parmType += g_parmName ;
08551   g_parmName.resize(0) ;
08552 }
08553 
08554 static void addUsingDirective(const char *name)
08555 {
08556   if (g_exampleBlock && g_sourceFileDef && name)
08557   {
08558     NamespaceDef *nd = Doxygen::namespaceSDict->find(name);
08559     if (nd)
08560     {
08561       g_sourceFileDef->addUsingDirective(nd);
08562     }
08563   }
08564 }
08565 
08566 static void setParameterList(MemberDef *md)
08567 {
08568   g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : "";
08569   LockingPtr<ArgumentList> al = md->argumentList();
08570   if (al==0) return; 
08571   Argument *a = al->first();
08572   while (a)
08573   {
08574     g_parmName = a->name.copy();
08575     g_parmType = a->type.copy();
08576     int i = g_parmType.find('*');
08577     if (i!=-1) g_parmType = g_parmType.left(i);
08578     i = g_parmType.find('&');
08579     if (i!=-1) g_parmType = g_parmType.left(i);
08580     g_parmType.stripPrefix("const ");
08581     g_parmType=g_parmType.stripWhiteSpace();
08582     g_theVarContext.addVariable(g_parmType,g_parmName);
08583     a = al->next();
08584   }
08585 }
08586 
08587 static ClassDef *stripClassName(const char *s)
08588 {
08589   int pos=0;
08590   QCString type = s;
08591   QCString className;
08592   QCString templSpec;
08593   while (extractClassNameFromType(type,pos,className,templSpec)!=-1)
08594   {
08595     QCString clName=className+templSpec;
08596     ClassDef *cd=0;
08597     if (!g_classScope.isEmpty())
08598     {
08599       cd=getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope+"::"+clName);
08600     }
08601     if (cd==0)
08602     {
08603       cd=getResolvedClass(g_currentDefinition,g_sourceFileDef,clName);
08604     }
08605     //printf("stripClass trying `%s' = %p\n",clName.data(),cd);
08606     if (cd)
08607     {
08608       return cd;
08609     }
08610   }
08611 
08612   return 0;
08613 }
08614 
08615 static MemberDef *setCallContextForVar(const QCString &name)
08616 {
08617   if (name.isEmpty()) return 0;
08618   //fprintf(stderr,"setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data());
08619 
08620   int scopeEnd = name.findRev("::");
08621   if (scopeEnd!=-1) // name with explicit scope
08622   {
08623     QCString scope   = name.left(scopeEnd);
08624     QCString locName = name.right(name.length()-scopeEnd-2);
08625     //printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data());
08626     ClassDef *mcd = getClass(scope); // TODO: check namespace as well
08627     if (mcd && !locName.isEmpty())
08628     {
08629       MemberDef *md=mcd->getMemberByName(locName);
08630       if (md)
08631       {
08632         //printf("name=%s scope=%s\n",locName.data(),scope.data());
08633         g_theCallContext.setClass(stripClassName(md->typeString()));
08634         return md;
08635       }
08636     }
08637   }
08638   
08639   MemberName *mn;
08640   ClassDef *mcd = g_theVarContext.findVariable(name);
08641   if (mcd) // local variable
08642   {
08643     //fprintf(stderr,"local variable\n");
08644     if (mcd!=VariableContext::dummyContext)
08645     {
08646       //fprintf(stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data());
08647       g_theCallContext.setClass(mcd);
08648     }
08649   }
08650   else
08651   {
08652     // look for a class member 
08653     mcd = getClass(g_classScope);
08654     if (mcd)
08655     {
08656       //fprintf(stderr,"Inside class %s\n",mcd->name().data());
08657       MemberDef *md=mcd->getMemberByName(name);
08658       if (md) 
08659       {
08660         //fprintf(stderr,"Found member %s\n",md->name().data());
08661         if (g_scopeStack.top()!=CLASSBLOCK)
08662         {
08663           //fprintf(stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data());
08664           g_theCallContext.setClass(stripClassName(md->typeString()));
08665         }
08666         return md;
08667       }
08668     }
08669   }
08670 
08671   // look for a global member
08672   if ((mn=Doxygen::functionNameSDict->find(name)))
08673   {
08674     //printf("global var `%s'\n",name.data());
08675     if (mn->count()==1) // global defined only once
08676     {
08677       MemberDef *md=mn->getFirst();
08678       if (!md->isStatic() || md->getBodyDef()==g_sourceFileDef)
08679       {
08680         g_theCallContext.setClass(stripClassName(md->typeString()));
08681         return md;
08682       }
08683       return 0;
08684     }
08685     else if (mn->count()>1) // global defined more than once
08686     {
08687       MemberDef *md=mn->first();
08688       while (md)
08689       {
08690         //printf("mn=%p md=%p md->getBodyDef()=%p g_sourceFileDef=%p\n",
08691         //    mn,md,
08692         //    md->getBodyDef(),g_sourceFileDef);
08693         
08694         // in case there are multiple members we could link to, we 
08695         // only link to members if defined in the same file or 
08696         // defined as external.
08697         if (!md->isStatic() || md->getBodyDef()==g_sourceFileDef)
08698         {
08699           g_theCallContext.setClass(stripClassName(md->typeString()));
08700           //printf("returning member %s in source file %s\n",md->name().data(),g_sourceFileDef->name().data());
08701           return md;
08702         }
08703         md=mn->next();
08704       }
08705       return 0;
08706     }
08707   }
08708   return 0;
08709 }
08710 
08711 static void addDocCrossReference(MemberDef *src,MemberDef *dst)
08712 {
08713   static bool referencedByRelation = Config_getBool("REFERENCED_BY_RELATION");
08714   static bool referencesRelation   = Config_getBool("REFERENCES_RELATION");
08715   static bool callerGraph          = Config_getBool("CALLER_GRAPH");
08716   static bool callGraph            = Config_getBool("CALL_GRAPH");
08717 
08718   //printf("--> addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data());
08719   if (dst->isTypedef() || dst->isEnumerate()) return; // don't add types
08720   if ((referencedByRelation || callerGraph || dst->hasCallerGraph()) && 
08721       (src->isFunction() || src->isSlot()) 
08722      )
08723   {
08724     dst->addSourceReferencedBy(src);
08725     MemberDef *mdDef = dst->memberDefinition();
08726     if (mdDef)
08727     {
08728       mdDef->addSourceReferencedBy(src);
08729     }
08730     MemberDef *mdDecl = dst->memberDeclaration();
08731     if (mdDecl)
08732     {
08733       mdDecl->addSourceReferencedBy(src);
08734     }
08735   }
08736   if ((referencesRelation || callGraph || src->hasCallGraph()) && 
08737       (src->isFunction() || src->isSlot())
08738      )
08739   {
08740     src->addSourceReferences(dst);
08741     MemberDef *mdDef = src->memberDefinition();
08742     if (mdDef)
08743     {
08744       mdDef->addSourceReferences(dst);
08745     }
08746     MemberDef *mdDecl = src->memberDeclaration();
08747     if (mdDecl)
08748     {
08749       mdDecl->addSourceReferences(dst);
08750     }
08751   }
08752 
08753 }
08754 
08755 static bool getLinkInScope(const QCString &c,  // scope
08756                            const QCString &m,  // member
08757                            const char *memberText, // exact text
08758                            CodeOutputInterface &ol,
08759                            const char *text
08760                           )
08761 {
08762   MemberDef    *md;
08763   ClassDef     *cd;
08764   FileDef      *fd;
08765   NamespaceDef *nd;
08766   GroupDef     *gd;
08767   //printf("getLinkInScope: trying `%s'::`%s'\n",c.data(),m.data());
08768   if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef) && 
08769       md->isLinkable())
08770   {
08771     //printf("Found!\n");
08772     if (g_exampleBlock)
08773     {
08774       QCString anchor;
08775       anchor.sprintf("a%d",g_anchorCount);
08776       //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(),
08777       //                                  g_exampleFile.data());
08778       if (md->addExample(anchor,g_exampleName,g_exampleFile))
08779       {
08780         ol.writeCodeAnchor(anchor);
08781         g_anchorCount++;
08782       }
08783     }
08784 
08785     Definition *d = md->getOuterScope()==Doxygen::globalScope ?
08786                     md->getBodyDef() : md->getOuterScope();
08787     if (md->getGroupDef()) d = md->getGroupDef();
08788     //printf("d=%p linkable=%d\n",d,d?d->isLinkable():0);
08789     if (d && d->isLinkable())
08790     {
08791       g_theCallContext.setClass(stripClassName(md->typeString()));
08792       //printf("g_currentDefinition=%p g_currentMemberDef=%p g_insideBody=%d\n",
08793       //        g_currentDefinition,g_currentMemberDef,g_insideBody);
08794 
08795       if (g_currentDefinition && g_currentMemberDef &&
08796           md!=g_currentMemberDef && g_insideBody)
08797       {
08798         addDocCrossReference(g_currentMemberDef,md);
08799       }
08800       //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data());
08801      
08802       ol.linkableSymbol(g_yyLineNr,md->name(),md,
08803                         g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
08804       writeMultiLineCodeLink(ol,md->getReference(),
08805                                 md->getOutputFileBase(),
08806                                 md->anchor(),
08807                                 text ? text : memberText,
08808                                 md->briefDescriptionAsTooltip());
08809       addToSearchIndex(text ? text : memberText);
08810       return TRUE;
08811     } 
08812   }
08813   return FALSE;
08814 }
08815 
08816 static bool getLink(const char *className,
08817                     const char *memberName,
08818                     CodeOutputInterface &ol,
08819                     const char *text=0)
08820 {
08821   //printf("getLink(%s,%s)\n",className,memberName);
08822   QCString m=removeRedundantWhiteSpace(memberName);
08823   QCString c=className;
08824   if (!getLinkInScope(c,m,memberName,ol,text))
08825   {
08826     if (!g_curClassName.isEmpty())
08827     {
08828       if (!c.isEmpty()) c.prepend("::");
08829       c.prepend(g_curClassName);
08830       return getLinkInScope(c,m,memberName,ol,text);
08831     }
08832     return FALSE;
08833   }
08834   return TRUE;
08835 }
08836 
08837 static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
08838                                       bool typeOnly=FALSE)
08839 {
08840   int i=0;
08841   if (*clName=='~') // correct for matching negated values i.s.o. destructors.
08842   {
08843     g_code->codify("~");
08844     clName++;
08845   }
08846   QCString className=clName;
08847   if (className.isEmpty()) return;
08848   if (g_insideProtocolList) // for Obj-C
08849   {
08850     className+="-p";
08851   }
08852   ClassDef *cd=0,*lcd=0;
08853   MemberDef *md=0;
08854   bool isLocal=FALSE;
08855 
08856   //printf("generateClassOrGlobalLink(className=%s)\n",className.data());
08857   if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable
08858   {
08859     Definition *d = g_currentDefinition;
08860     //printf("d=%p g_sourceFileDef=%p\n",d,g_currentDefinition);
08861     cd = getResolvedClass(d,g_sourceFileDef,className,&md);
08862     //fprintf(stderr,"non-local variable name=%s context=%d cd=%s md=%s!\n",
08863     //  className.data(),g_theVarContext.count(),cd?cd->name().data():"<none>",
08864     //  md?md->name().data():"<none>");
08865     if (cd==0 && md==0 && (i=className.find('<'))!=-1)
08866     {
08867       QCString bareName = className.left(i); //stripTemplateSpecifiersFromScope(className);
08868       //fprintf(stderr,"bareName=%s\n",bareName.data());
08869       if (bareName!=className)
08870       {
08871         cd=getResolvedClass(d,g_sourceFileDef,bareName,&md); // try unspecialized version
08872       }
08873     }
08874     //printf("md=%s\n",md?md->name().data():"<none>");
08875     //fprintf(stderr,"is found as a type %s\n",cd?cd->name().data():"<null>");
08876     if (cd==0 && md==0) // also see if it is variable or enum or enum value
08877     {
08878       if (getLink(g_classScope,clName,ol,clName))
08879       {
08880         return;
08881       }
08882     }
08883   }
08884   else
08885   {
08886     //printf("local variable!\n");
08887     if (lcd!=VariableContext::dummyContext) 
08888     {
08889       //printf("non-dummy context lcd=%s!\n",lcd->name().data());
08890       g_theCallContext.setClass(lcd);
08891 
08892       // to following is needed for links to a global variable, but is
08893       // no good for a link to a local variable that is also a global symbol.
08894        
08895       //if (getLink(g_classScope,clName,ol,clName))
08896       //{
08897         //return;
08898       //}
08899     }
08900     isLocal=TRUE;
08901     //fprintf(stderr,"is a local variable cd=%p!\n",cd);
08902   }
08903   if (cd && cd->isLinkable()) // is it a linkable class
08904   {
08905     //fprintf(stderr,"is linkable class %s\n",clName);
08906     if (g_exampleBlock)
08907     {
08908       QCString anchor;
08909       anchor.sprintf("_a%d",g_anchorCount);
08910       //printf("addExampleClass(%s,%s,%s)\n",anchor.data(),g_exampleName.data(),
08911       //                                   g_exampleFile.data());
08912       if (cd->addExample(anchor,g_exampleName,g_exampleFile))
08913       {
08914         ol.writeCodeAnchor(anchor);
08915         g_anchorCount++;
08916       }
08917     }
08918     ol.linkableSymbol(g_yyLineNr,cd->name(),cd,
08919                       g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
08920     writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),0,clName,cd->briefDescriptionAsTooltip());
08921     addToSearchIndex(className);
08922     if (md)
08923     {
08924       Definition *d = md->getOuterScope()==Doxygen::globalScope ?
08925                       md->getBodyDef() : md->getOuterScope();
08926       if (md->getGroupDef()) d = md->getGroupDef();
08927       if (d && d->isLinkable() && md->isLinkable() && g_currentMemberDef)
08928       {
08929         addDocCrossReference(g_currentMemberDef,md);
08930       }
08931     }
08932   }
08933   else // not a class, maybe a global member
08934   {
08935     //printf("class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly);
08936     if (!isLocal && (md!=0 || (cd==0 && !typeOnly))) // not a class, see if it is a global enum/variable/typedef.
08937     {
08938       if (md==0) // not found as a typedef
08939       {
08940         md = setCallContextForVar(clName);
08941         //printf("setCallContextForVar(%s) md=%p g_currentDefinition=%p\n",clName,md,g_currentDefinition);
08942         if (md && g_currentDefinition)
08943         {
08944           //fprintf(stderr,"%s accessible from %s? %d md->getOuterScope=%s\n",
08945           //    md->name().data(),g_currentDefinition->name().data(),
08946           //    isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md),
08947           //    md->getOuterScope()->name().data());
08948         }
08949              
08950         if (md && g_currentDefinition && 
08951             isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md)==-1)
08952         {
08953           md=0; // variable not accessible
08954         }
08955       }
08956       if (md)
08957       {
08958         //printf("is a global md=%p g_currentDefinition=%s\n",md,g_currentDefinition?g_currentDefinition->name().data():"<none>");
08959         if (md->isLinkable())
08960         {
08961           ol.linkableSymbol(g_yyLineNr,md->name(),md,
08962                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
08963           writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),clName,md->briefDescriptionAsTooltip());
08964           addToSearchIndex(clName);
08965           if (g_currentMemberDef)
08966           {
08967             addDocCrossReference(g_currentMemberDef,md);
08968           }
08969           return;
08970         }
08971       }
08972     }
08973     
08974     // nothing found, just write out the word
08975     ol.linkableSymbol(g_yyLineNr,clName,0,
08976                       g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
08977     codifyLines(clName);
08978     addToSearchIndex(clName);
08979   }
08980 }
08981 
08982 static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const char *memName)
08983 {
08984   if (mcd)
08985   {
08986     MemberDef *xmd = mcd->getMemberByName(memName);
08987     //printf("generateClassMemberLink(class=%s,member=%s)=%p\n",mcd->name().data(),memName,xmd);
08988     if (xmd)
08989     {
08990       // extract class definition of the return type in order to resolve
08991       // a->b()->c() like call chains
08992       
08993       //printf("type=`%s' args=`%s' class=%s\n",
08994       //  xmd->typeString(),xmd->argsString(),
08995       //  xmd->getClassDef()->name().data());
08996 
08997       if (g_exampleBlock)
08998       {
08999         QCString anchor;
09000         anchor.sprintf("a%d",g_anchorCount);
09001         //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(),
09002         //                                  g_exampleFile.data());
09003         if (xmd->addExample(anchor,g_exampleName,g_exampleFile))
09004         {
09005           ol.writeCodeAnchor(anchor);
09006           g_anchorCount++;
09007         }
09008       }
09009 
09010       ClassDef *typeClass = stripClassName(removeAnonymousScopes(xmd->typeString()));
09011       //fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass);
09012       g_theCallContext.setClass(typeClass);
09013 
09014       Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ?
09015                        xmd->getBodyDef() : xmd->getOuterScope();
09016       if (xmd->getGroupDef()) xd = xmd->getGroupDef();
09017       if (xd)
09018       {
09019 
09020         //printf("g_currentDefiniton=%p g_currentMemberDef=%p xmd=%p g_insideBody=%d\n",g_currentDefinition,g_currentMemberDef,xmd,g_insideBody);
09021 
09022         if (xmd->templateMaster()) xmd = xmd->templateMaster();
09023 
09024         // add usage reference
09025         if (g_currentDefinition && g_currentMemberDef &&
09026             /*xmd!=g_currentMemberDef &&*/ g_insideBody)
09027         {
09028           addDocCrossReference(g_currentMemberDef,xmd);
09029         }
09030 
09031         // write the actual link
09032         ol.linkableSymbol(g_yyLineNr,xmd->name(),xmd,
09033                           g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09034         writeMultiLineCodeLink(ol,xmd->getReference(),
09035             xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip());
09036         addToSearchIndex(memName);
09037         return TRUE;
09038       }
09039 
09040     }
09041   }
09042   
09043   return FALSE;
09044 }
09045 
09046 static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName,
09047             char *memName)
09048 {
09049   //printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
09050   //    varName.data(),memName,g_classScope.data());
09051 
09052   if (varName.isEmpty()) return;
09053 
09054   // look for the variable in the current context
09055   ClassDef *vcd = g_theVarContext.findVariable(varName);
09056   if (vcd) 
09057   {
09058     if (vcd!=VariableContext::dummyContext)
09059     {
09060       //printf("Class found!\n");
09061       if (getLink(vcd->name(),memName,ol)) 
09062       {
09063         //printf("Found result!\n");
09064         return;
09065       }
09066       if (vcd->baseClasses())
09067       {
09068         BaseClassListIterator bcli(*vcd->baseClasses());
09069         for ( ; bcli.current() ; ++bcli)
09070         {
09071           if (getLink(bcli.current()->classDef->name(),memName,ol)) 
09072           {
09073             //printf("Found result!\n");
09074             return;
09075           }
09076         }
09077       }
09078     }
09079   }
09080   else // variable not in current context, maybe it is in a parent context
09081   {
09082     vcd = getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope);
09083     if (vcd && vcd->isLinkable())
09084     {
09085       //printf("Found class %s for variable `%s'\n",g_classScope.data(),varName.data());
09086       MemberName *vmn=Doxygen::memberNameSDict->find(varName);
09087       if (vmn==0)
09088       {
09089         int vi;
09090         QCString vn=varName;
09091         QCString scope;
09092         if ((vi=vn.findRev("::"))!=-1 || (vi=vn.findRev('.'))!=-1)  // explicit scope A::b(), probably static member
09093         {
09094           ClassDef *jcd = getClass(vn.left(vi));
09095           vn=vn.right(vn.length()-vi-2);
09096           vmn=Doxygen::memberNameSDict->find(vn);
09097           //printf("Trying name `%s' scope=%s\n",vn.data(),scope.data());
09098           if (vmn)
09099           {
09100             MemberNameIterator vmni(*vmn);
09101             MemberDef *vmd;
09102             for (;(vmd=vmni.current());++vmni)
09103             {
09104               if (/*(vmd->isVariable() || vmd->isFunction()) && */
09105                   vmd->getClassDef()==jcd)
09106               {
09107                 //printf("Found variable type=%s\n",vmd->typeString());
09108                 ClassDef *mcd=stripClassName(vmd->typeString());
09109                 if (mcd && mcd->isLinkable())
09110                 {
09111                   if (generateClassMemberLink(ol,mcd,memName)) return;
09112                 }
09113               }
09114             }
09115           }
09116         }
09117       }
09118       if (vmn)
09119       {
09120         //printf("There is a variable with name `%s'\n",varName);
09121         MemberNameIterator vmni(*vmn);
09122         MemberDef *vmd;
09123         for (;(vmd=vmni.current());++vmni)
09124         {
09125           if (/*(vmd->isVariable() || vmd->isFunction()) && */
09126               vmd->getClassDef()==vcd)
09127           {
09128             //printf("Found variable type=%s\n",vmd->typeString());
09129             ClassDef *mcd=stripClassName(vmd->typeString());
09130             if (mcd && mcd->isLinkable())
09131             {
09132               if (generateClassMemberLink(ol,mcd,memName)) return;
09133             }
09134           }
09135         }
09136       }
09137     }
09138   }
09139   // nothing found -> write result as is
09140   ol.linkableSymbol(g_yyLineNr,memName,0,
09141                     g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
09142   codifyLines(memName);
09143   addToSearchIndex(memName);
09144   return;
09145 }
09146 
09147 static void generateFunctionLink(CodeOutputInterface &ol,char *funcName)
09148 {
09149   //CodeClassDef *ccd=0;
09150   ClassDef *ccd=0;
09151   QCString locScope=g_classScope.copy();
09152   QCString locFunc=removeRedundantWhiteSpace(funcName);
09153   //fprintf(stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data());
09154   int len=2;
09155   int i=locFunc.findRev("::");
09156   if (i==-1) i=locFunc.findRev("."),len=1;
09157   if (i>0)
09158   {
09159     locScope=locFunc.left(i);
09160     locFunc=locFunc.right(locFunc.length()-i-len).stripWhiteSpace();
09161     int ts=locScope.find('<'); // start of template
09162     int te=locScope.findRev('>'); // end of template
09163     //printf("ts=%d te=%d\n",ts,te);
09164     if (ts!=-1 && te!=-1 && te>ts)
09165     {
09166       // remove template from scope
09167       locScope=locScope.left(ts)+locScope.right(locScope.length()-te-1);
09168     }
09169   }
09170   //printf("generateFunctionLink(%s) classScope=`%s'\n",locFunc.data(),locScope.data());
09171   if (!locScope.isEmpty() && (ccd=g_codeClassSDict->find(locScope)))
09172   {
09173     //printf("using classScope %s\n",g_classScope.data());
09174     if (ccd->baseClasses())
09175     {
09176       BaseClassListIterator bcli(*ccd->baseClasses());
09177       for ( ; bcli.current() ; ++bcli)
09178       {
09179         if (getLink(bcli.current()->classDef->name(),locFunc,ol,funcName)) 
09180         {
09181           return;
09182         }
09183       }
09184     }
09185   }
09186   if (!getLink(locScope,locFunc,ol,funcName))
09187   {
09188     generateClassOrGlobalLink(ol,funcName);
09189   }
09190   return;
09191 }
09192 
09194 static int countLines()
09195 {
09196   const char *p=g_inputString;
09197   char c;
09198   int count=1;
09199   while ((c=*p)) 
09200   { 
09201     p++ ; 
09202     if (c=='\n') count++;  
09203   }
09204   if (p>g_inputString && *(p-1)!='\n') 
09205   { // last line does not end with a \n, so we add an extra
09206     // line and explicitly terminate the line after parsing.
09207     count++, 
09208     g_needsTermination=TRUE; 
09209   } 
09210   return count;
09211 }
09212 
09213 static void endFontClass()
09214 {
09215   if (g_currentFontClass)
09216   {
09217     g_code->endFontClass();
09218     g_currentFontClass=0;
09219   }
09220 }
09221 
09222 static void startFontClass(const char *s)
09223 {
09224   endFontClass();
09225   g_code->startFontClass(s);
09226   g_currentFontClass=s;
09227 }
09228 
09229 //----------------------------------------------------------------------------
09230 
09231 // recursively writes a linkified Objective-C method call
09232 static void writeObjCMethodCall(ObjCCallCtx *ctx)
09233 {
09234   if (ctx==0) return;
09235   if (ctx->methodName.isEmpty()) return;
09236   const char *p = ctx->format.data();
09237   //printf("writeObjCMethodCall(%s) obj=%s method=%s\n",
09238   //    ctx->format.data(),ctx->objectTypeOrName.data(),ctx->methodName.data());
09239   char c;
09240   if (!ctx->objectTypeOrName.isEmpty() && ctx->objectTypeOrName.at(0)!='$')
09241   {
09242     //printf("Looking for object=%s method=%s\n",ctx->objectTypeOrName.data(),
09243     //  ctx->methodName.data());
09244     ClassDef *cd = g_theVarContext.findVariable(ctx->objectTypeOrName);
09245     if (cd==0) // not a local variable
09246     {
09247       if (ctx->objectTypeOrName=="self")
09248       {
09249         if (g_currentDefinition && 
09250             g_currentDefinition->definitionType()==Definition::TypeClass)
09251         {
09252           ctx->objectType = (ClassDef *)g_currentDefinition;
09253         }
09254       }
09255       else
09256       {
09257         ctx->objectType = getResolvedClass(
09258           g_currentDefinition,
09259           g_sourceFileDef,
09260           ctx->objectTypeOrName,
09261           &ctx->method);
09262       }
09263       //printf("  object is class? %p\n",ctx->objectType);
09264       if (ctx->objectType) // found class
09265       {
09266         ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
09267         //printf("    yes->method=%s\n",ctx->method?ctx->method->name().data():"<none>");
09268       }
09269       else if (ctx->method==0) // search for class variable with the same name
09270       {
09271         //printf("    no\n");
09272         //printf("g_currentDefinition=%p\n",g_currentDefinition);
09273         if (g_currentDefinition && 
09274             g_currentDefinition->definitionType()==Definition::TypeClass)
09275         {
09276           ctx->objectVar = ((ClassDef *)g_currentDefinition)->getMemberByName(ctx->objectTypeOrName);
09277           //printf("      ctx->objectVar=%p\n",ctx->objectVar);
09278           if (ctx->objectVar)
09279           {
09280             ctx->objectType = stripClassName(ctx->objectVar->typeString());
09281             //printf("        ctx->objectType=%p\n",ctx->objectType);
09282             if (ctx->objectType)
09283             {
09284               ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
09285               //printf("          ctx->method=%p\n",ctx->method);
09286             }
09287           }
09288         }
09289       }
09290     }
09291     else // local variable
09292     {
09293       //printf("  object is local variable\n");
09294       if (cd!=VariableContext::dummyContext)
09295       {
09296         ctx->method = cd->getMemberByName(ctx->methodName);
09297         //printf("   class=%p method=%p\n",cd,ctx->method);
09298       }
09299     }
09300   }
09301 
09302   //printf("[");
09303   while ((c=*p++)) // for each character in ctx->format
09304   {
09305     if (c=='$')
09306     {
09307       char nc=*p++;
09308       if (nc=='$') // escaped $
09309       {
09310         g_code->codify("$");
09311       }
09312       else // name fragment or reference to a nested call 
09313       {
09314         if (nc=='n') // name fragment
09315         {
09316           nc=*p++;
09317           QCString refIdStr;
09318           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
09319           p--;
09320           int refId=refIdStr.toInt();
09321           QCString *pName = g_nameDict.find(refId);
09322           if (pName)
09323           {
09324             if (ctx->method && ctx->method->isLinkable())
09325             {
09326               g_code->linkableSymbol(g_yyLineNr,ctx->method->name(),ctx->method,
09327                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09328               writeMultiLineCodeLink(*g_code,
09329                                      ctx->method->getReference(),
09330                                      ctx->method->getOutputFileBase(),
09331                                      ctx->method->anchor(),
09332                                      pName->data(),
09333                                      ctx->method->briefDescriptionAsTooltip());
09334               if (g_currentMemberDef)
09335               {
09336                 addDocCrossReference(g_currentMemberDef,ctx->method);
09337               }
09338             }
09339             else
09340             {
09341               g_code->linkableSymbol(g_yyLineNr,pName->data(),0,
09342                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09343               codifyLines(pName->data());
09344             }
09345           }
09346           else
09347           {
09348             //printf("Invalid name: id=%d\n",refId);
09349           }
09350         }
09351         else if (nc=='o') // reference to potential object name
09352         {
09353           nc=*p++;
09354           QCString refIdStr;
09355           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
09356           p--;
09357           int refId=refIdStr.toInt();
09358           QCString *pObject = g_objectDict.find(refId);
09359           if (pObject)
09360           {
09361             if (*pObject=="self")
09362             {
09363               if (g_currentDefinition && 
09364                   g_currentDefinition->definitionType()==Definition::TypeClass)
09365               {
09366                 ctx->objectType = (ClassDef *)g_currentDefinition;
09367                 if (ctx->objectType->categoryOf()) 
09368                 {
09369                   ctx->objectType = ctx->objectType->categoryOf();
09370                 }
09371                 if (ctx->objectType)
09372                 {
09373                   ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
09374                 }
09375               }
09376               startFontClass("keyword");
09377               codifyLines(pObject->data());
09378               endFontClass();
09379             }
09380             else if (*pObject=="super")
09381             {
09382               if (g_currentDefinition &&
09383                   g_currentDefinition->definitionType()==Definition::TypeClass)
09384               {
09385                 ClassDef *cd = (ClassDef *)g_currentDefinition;
09386                 if (cd->categoryOf()) 
09387                 {
09388                   cd = cd->categoryOf();
09389                 }
09390                 BaseClassList *bcd = cd->baseClasses();
09391                 if (bcd) // get direct base class (there should be only one)
09392                 {
09393                   BaseClassListIterator bli(*bcd);
09394                   BaseClassDef *bclass;
09395                   for (bli.toFirst();(bclass=bli.current());++bli)
09396                   {
09397                     if (bclass->classDef->compoundType()!=ClassDef::Protocol)
09398                     {
09399                       ctx->objectType = bclass->classDef;
09400                       if (ctx->objectType)
09401                       {
09402                         ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
09403                       }
09404                     }
09405                   }
09406                 }
09407               }
09408               startFontClass("keyword");
09409               codifyLines(pObject->data());
09410               endFontClass();
09411             }
09412             else if (ctx->objectVar && ctx->objectVar->isLinkable()) // object is class variable
09413             {
09414               g_code->linkableSymbol(g_yyLineNr,ctx->objectVar->name(),ctx->objectVar,
09415                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09416               writeMultiLineCodeLink(*g_code,
09417                     ctx->objectVar->getReference(),
09418                     ctx->objectVar->getOutputFileBase(),
09419                     ctx->objectVar->anchor(),
09420                     pObject->data(),
09421                     ctx->objectVar->briefDescriptionAsTooltip());
09422               if (g_currentMemberDef)
09423               {
09424                 addDocCrossReference(g_currentMemberDef,ctx->objectVar);
09425               }
09426             }
09427             else if (ctx->objectType && 
09428                      ctx->objectType!=VariableContext::dummyContext && 
09429                      ctx->objectType->isLinkable()
09430                     ) // object is class name
09431             {
09432               ClassDef *cd = ctx->objectType;
09433               g_code->linkableSymbol(g_yyLineNr,cd->name(),cd,
09434                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09435               writeMultiLineCodeLink(*g_code,
09436                     cd->getReference(),
09437                     cd->getOutputFileBase(),
09438                     0,
09439                     pObject->data(),
09440                     cd->briefDescriptionAsTooltip());
09441             }
09442             else // object still needs to be resolved
09443             {
09444               ClassDef *cd = getResolvedClass(g_currentDefinition, 
09445                   g_sourceFileDef, *pObject);
09446               if (cd && cd->isLinkable())
09447               {
09448                 if (ctx->objectType==0) ctx->objectType=cd;
09449                 g_code->linkableSymbol(g_yyLineNr,cd->name(),cd,
09450                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09451                 writeMultiLineCodeLink(*g_code,
09452                     cd->getReference(),
09453                     cd->getOutputFileBase(),
09454                     0,
09455                     pObject->data(),
09456                     cd->briefDescriptionAsTooltip());
09457               }
09458               else
09459               {
09460                 g_code->linkableSymbol(g_yyLineNr,pObject->data(),0,
09461                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09462                 codifyLines(pObject->data());
09463               }
09464             }
09465           }
09466           else
09467           {
09468             //printf("Invalid object: id=%d\n",refId);
09469           }
09470         }
09471         else if (nc=='c') // reference to nested call
09472         {
09473           nc=*p++;
09474           QCString refIdStr;
09475           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
09476           p--;
09477           int refId=refIdStr.toInt();
09478           ObjCCallCtx *ictx = g_contextDict.find(refId);
09479           if (ictx) // recurse into nested call
09480           {
09481             writeObjCMethodCall(ictx);
09482             if (ictx->method) // link to nested call successfully
09483             {
09484               // get the ClassDef representing the method's return type
09485               if (QCString(ictx->method->typeString())=="id")
09486               {
09487                 // see if the method name is unique, if so we link to it
09488                 MemberName *mn=Doxygen::memberNameSDict->find(ctx->methodName);
09489                 //printf("mn->count=%d ictx->method=%s ctx->methodName=%s\n",
09490                 //    mn==0?-1:(int)mn->count(),
09491                 //    ictx->method->name().data(),
09492                 //    ctx->methodName.data());
09493                 if (mn && mn->count()==1) // member name unique
09494                 {
09495                   ctx->method = mn->getFirst();
09496                 }
09497               } 
09498               else
09499               {
09500                 ctx->objectType = stripClassName(ictx->method->typeString());
09501                 if (ctx->objectType)
09502                 {
09503                   ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
09504                 }
09505               }
09506               //printf("  ***** method=%s -> object=%p\n",ictx->method->name().data(),ctx->objectType);
09507             }
09508           }
09509           else
09510           {
09511             //printf("Invalid context: id=%d\n",refId);
09512           }
09513         }
09514         else if (nc=='w') // some word
09515         {
09516           nc=*p++;
09517           QCString refIdStr;
09518           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
09519           p--;
09520           int refId=refIdStr.toInt();
09521           QCString *pWord = g_wordDict.find(refId);
09522           if (pWord)
09523           {
09524             g_code->linkableSymbol(g_yyLineNr,pWord->data(),0,
09525                          g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
09526             codifyLines(pWord->data());
09527           }
09528         }
09529         else // illegal marker
09530         {
09531           ASSERT(!"invalid escape sequence");
09532         }
09533       }
09534     }
09535     else // normal non-marker character
09536     {
09537       char s[2];
09538       s[0]=c;s[1]=0;
09539       codifyLines(s);
09540     }
09541   }  
09542   //printf("%s %s]\n",ctx->objectTypeOrName.data(),ctx->methodName.data());
09543   //printf("}=(type='%s',name='%s')",
09544   //    ctx->objectTypeOrName.data(),
09545   //    ctx->methodName.data());
09546 }
09547 
09548 // Replaces an Objective-C method name fragment s by a marker of the form
09549 // $n12, the number (12) can later be used as a key for obtaining the name 
09550 // fragment, from g_nameDict
09551 static QCString escapeName(const char *s)
09552 {
09553   QCString result;
09554   result.sprintf("$n%d",g_currentNameId);
09555   g_nameDict.insert(g_currentNameId,new QCString(s));
09556   g_currentNameId++;
09557   return result;
09558 }
09559 
09560 static QCString escapeObject(const char *s)
09561 {
09562   QCString result;
09563   result.sprintf("$o%d",g_currentObjId);
09564   g_objectDict.insert(g_currentObjId,new QCString(s));
09565   g_currentObjId++;
09566   return result;
09567 }
09568 
09569 static QCString escapeWord(const char *s)
09570 {
09571   QCString result;
09572   result.sprintf("$w%d",g_currentWordId);
09573   g_wordDict.insert(g_currentWordId,new QCString(s));
09574   g_currentWordId++;
09575   return result;
09576 }
09577 
09578 /* -----------------------------------------------------------------
09579  */
09580 #undef  YY_INPUT
09581 #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size);
09582 
09583 static int yyread(char *buf,int max_size)
09584 {
09585     int c=0;
09586     while( c < max_size && g_inputString[g_inputPosition] )
09587     {
09588         *buf = g_inputString[g_inputPosition++] ;
09589         c++; buf++;
09590     }
09591     return c;
09592 }
09593 
09594 
09595 
09596 
09597 
09598 
09599 
09600 
09601 
09602 
09603 
09604 
09605 
09606 
09607 
09608 
09609 
09610 
09611 
09612 
09613 
09614 
09615 
09616 
09617 
09618 
09619 
09620 
09621 
09622 
09623 
09624 
09625 #line 9626 "<stdout>"
09626 
09627 #define INITIAL 0
09628 #define SkipString 1
09629 #define SkipStringS 2
09630 #define SkipVerbString 3
09631 #define SkipCPP 4
09632 #define SkipComment 5
09633 #define SkipCxxComment 6
09634 #define RemoveSpecialCComment 7
09635 #define StripSpecialCComment 8
09636 #define Body 9
09637 #define FuncCall 10
09638 #define MemberCall 11
09639 #define MemberCall2 12
09640 #define SkipInits 13
09641 #define ClassName 14
09642 #define PackageName 15
09643 #define ClassVar 16
09644 #define CppCliTypeModifierFollowup 17
09645 #define Bases 18
09646 #define SkipSharp 19
09647 #define ReadInclude 20
09648 #define TemplDecl 21
09649 #define TemplCast 22
09650 #define CallEnd 23
09651 #define ObjCMethod 24
09652 #define ObjCParams 25
09653 #define ObjCParamType 26
09654 #define ObjCCall 27
09655 #define ObjCMName 28
09656 #define ObjCSkipStr 29
09657 #define OldStyleArgs 30
09658 #define UsingName 31
09659 
09660 #ifndef YY_NO_UNISTD_H
09661 /* Special case for "unistd.h", since it is non-ANSI. We include it way
09662  * down here because we want the user's section 1 to have been scanned first.
09663  * The user has a chance to override it with an option.
09664  */
09665 #include <unistd.h>
09666 #endif
09667 
09668 #ifndef YY_EXTRA_TYPE
09669 #define YY_EXTRA_TYPE void *
09670 #endif
09671 
09672 static int yy_init_globals (void );
09673 
09674 /* Macros after this point can all be overridden by user definitions in
09675  * section 1.
09676  */
09677 
09678 #ifndef YY_SKIP_YYWRAP
09679 #ifdef __cplusplus
09680 extern "C" int codeYYwrap (void );
09681 #else
09682 extern int codeYYwrap (void );
09683 #endif
09684 #endif
09685 
09686     static void yyunput (int c,char *buf_ptr  );
09687     
09688 #ifndef yytext_ptr
09689 static void yy_flex_strncpy (char *,yyconst char *,int );
09690 #endif
09691 
09692 #ifdef YY_NEED_STRLEN
09693 static int yy_flex_strlen (yyconst char * );
09694 #endif
09695 
09696 #ifndef YY_NO_INPUT
09697 
09698 #ifdef __cplusplus
09699 static int yyinput (void );
09700 #else
09701 static int input (void );
09702 #endif
09703 
09704 #endif
09705 
09706 /* Amount of stuff to slurp up with each read. */
09707 #ifndef YY_READ_BUF_SIZE
09708 #define YY_READ_BUF_SIZE 8192
09709 #endif
09710 
09711 /* Copy whatever the last rule matched to the standard output. */
09712 #ifndef ECHO
09713 /* This used to be an fputs(), but since the string might contain NUL's,
09714  * we now use fwrite().
09715  */
09716 #define ECHO (void) fwrite( codeYYtext, codeYYleng, 1, codeYYout )
09717 #endif
09718 
09719 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
09720  * is returned in "result".
09721  */
09722 #ifndef YY_INPUT
09723 #define YY_INPUT(buf,result,max_size) \
09724         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
09725                 { \
09726                 int c = '*'; \
09727                 size_t n; \
09728                 for ( n = 0; n < max_size && \
09729                              (c = getc( codeYYin )) != EOF && c != '\n'; ++n ) \
09730                         buf[n] = (char) c; \
09731                 if ( c == '\n' ) \
09732                         buf[n++] = (char) c; \
09733                 if ( c == EOF && ferror( codeYYin ) ) \
09734                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
09735                 result = n; \
09736                 } \
09737         else \
09738                 { \
09739                 errno=0; \
09740                 while ( (result = fread(buf, 1, max_size, codeYYin))==0 && ferror(codeYYin)) \
09741                         { \
09742                         if( errno != EINTR) \
09743                                 { \
09744                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
09745                                 break; \
09746                                 } \
09747                         errno=0; \
09748                         clearerr(codeYYin); \
09749                         } \
09750                 }\
09751 \
09752 
09753 #endif
09754 
09755 /* No semi-colon after return; correct usage is to write "yyterminate();" -
09756  * we don't want an extra ';' after the "return" because that will cause
09757  * some compilers to complain about unreachable statements.
09758  */
09759 #ifndef yyterminate
09760 #define yyterminate() return YY_NULL
09761 #endif
09762 
09763 /* Number of entries by which start-condition stack grows. */
09764 #ifndef YY_START_STACK_INCR
09765 #define YY_START_STACK_INCR 25
09766 #endif
09767 
09768 /* Report a fatal error. */
09769 #ifndef YY_FATAL_ERROR
09770 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
09771 #endif
09772 
09773 /* end tables serialization structures and prototypes */
09774 
09775 /* Default declaration of generated scanner - a define so the user can
09776  * easily add parameters.
09777  */
09778 #ifndef YY_DECL
09779 #define YY_DECL_IS_OURS 1
09780 
09781 extern int codeYYlex (void);
09782 
09783 #define YY_DECL int codeYYlex (void)
09784 #endif /* !YY_DECL */
09785 
09786 /* Code executed at the beginning of each rule, after codeYYtext and codeYYleng
09787  * have been set up.
09788  */
09789 #ifndef YY_USER_ACTION
09790 #define YY_USER_ACTION
09791 #endif
09792 
09793 /* Code executed at the end of each rule. */
09794 #ifndef YY_BREAK
09795 #define YY_BREAK break;
09796 #endif
09797 
09798 #define YY_RULE_SETUP \
09799         if ( codeYYleng > 0 ) \
09800                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
09801                                 (codeYYtext[codeYYleng - 1] == '\n'); \
09802         YY_USER_ACTION
09803 
09806 YY_DECL
09807 {
09808         register yy_state_type yy_current_state;
09809         register char *yy_cp, *yy_bp;
09810         register int yy_act;
09811     
09812 #line 1699 "code.l"
09813 
09814 
09815 #line 9816 "<stdout>"
09816 
09817         if ( !(yy_init) )
09818                 {
09819                 (yy_init) = 1;
09820 
09821 #ifdef YY_USER_INIT
09822                 YY_USER_INIT;
09823 #endif
09824 
09825         /* Create the reject buffer large enough to save one state per allowed character. */
09826         if ( ! (yy_state_buf) )
09827             (yy_state_buf) = (yy_state_type *)codeYYalloc(YY_STATE_BUF_SIZE  );
09828 
09829                 if ( ! (yy_start) )
09830                         (yy_start) = 1; /* first start state */
09831 
09832                 if ( ! codeYYin )
09833                         codeYYin = stdin;
09834 
09835                 if ( ! codeYYout )
09836                         codeYYout = stdout;
09837 
09838                 if ( ! YY_CURRENT_BUFFER ) {
09839                         codeYYensure_buffer_stack ();
09840                         YY_CURRENT_BUFFER_LVALUE =
09841                                 codeYY_create_buffer(codeYYin,YY_BUF_SIZE );
09842                 }
09843 
09844                 codeYY_load_buffer_state( );
09845                 }
09846 
09847         while ( 1 )             /* loops until end-of-file is reached */
09848                 {
09849                 yy_cp = (yy_c_buf_p);
09850 
09851                 /* Support of codeYYtext. */
09852                 *yy_cp = (yy_hold_char);
09853 
09854                 /* yy_bp points to the position in yy_ch_buf of the start of
09855                  * the current run.
09856                  */
09857                 yy_bp = yy_cp;
09858 
09859                 yy_current_state = (yy_start);
09860                 yy_current_state += YY_AT_BOL();
09861 
09862                 (yy_state_ptr) = (yy_state_buf);
09863                 *(yy_state_ptr)++ = yy_current_state;
09864 
09865 yy_match:
09866                 do
09867                         {
09868                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
09869                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
09870                                 {
09871                                 yy_current_state = (int) yy_def[yy_current_state];
09872                                 if ( yy_current_state >= 2975 )
09873                                         yy_c = yy_meta[(unsigned int) yy_c];
09874                                 }
09875                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
09876                         *(yy_state_ptr)++ = yy_current_state;
09877                         ++yy_cp;
09878                         }
09879                 while ( yy_base[yy_current_state] != 26042 );
09880 
09881 yy_find_action:
09882                 yy_current_state = *--(yy_state_ptr);
09883                 (yy_lp) = yy_accept[yy_current_state];
09884 find_rule: /* we branch to this label when backing up */
09885                 for ( ; ; ) /* until we find what rule we matched */
09886                         {
09887                         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
09888                                 {
09889                                 yy_act = yy_acclist[(yy_lp)];
09890                                 if ( yy_act & YY_TRAILING_HEAD_MASK ||
09891                                      yy_looking_for_trail_begin )
09892                                         {
09893                                         if ( yy_act == yy_looking_for_trail_begin )
09894                                                 {
09895                                                 yy_looking_for_trail_begin = 0;
09896                                                 yy_act &= ~YY_TRAILING_HEAD_MASK;
09897                                                 break;
09898                                                 }
09899                                         }
09900                                 else if ( yy_act & YY_TRAILING_MASK )
09901                                         {
09902                                         yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
09903                                         yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
09904                                         (yy_full_match) = yy_cp;
09905                                         yy_full_state = (yy_state_ptr);
09906                                         yy_full_lp = (yy_lp);
09907                                         }
09908                                 else
09909                                         {
09910                                         (yy_full_match) = yy_cp;
09911                                         yy_full_state = (yy_state_ptr);
09912                                         yy_full_lp = (yy_lp);
09913                                         break;
09914                                         }
09915                                 ++(yy_lp);
09916                                 goto find_rule;
09917                                 }
09918                         --yy_cp;
09919                         yy_current_state = *--(yy_state_ptr);
09920                         (yy_lp) = yy_accept[yy_current_state];
09921                         }
09922 
09923                 YY_DO_BEFORE_ACTION;
09924 
09925 do_action:      /* This label is used only to access EOF actions. */
09926 
09927                 switch ( yy_act )
09928         { /* beginning of action switch */
09929 case 1:
09930 YY_RULE_SETUP
09931 #line 1701 "code.l"
09932 
09933         YY_BREAK
09934 case 2:
09935 YY_RULE_SETUP
09936 #line 1702 "code.l"
09937 {
09938                                           startFontClass("preprocessor");
09939                                           g_code->codify(codeYYtext);
09940                                           BEGIN( ReadInclude ); 
09941                                         }
09942         YY_BREAK
09943 case 3:
09944 /* rule 3 can match eol */
09945 YY_RULE_SETUP
09946 #line 1707 "code.l"
09947 { 
09948                                           g_insideObjC=TRUE;
09949                                           startFontClass("keyword");
09950                                           codifyLines(codeYYtext);
09951                                           endFontClass();
09952                                           if (!g_insideTemplate) 
09953                                             BEGIN( ClassName ); 
09954                                         }
09955         YY_BREAK
09956 case 4:
09957 YY_RULE_SETUP
09958 #line 1715 "code.l"
09959 {
09960                                           if (g_insideTemplate) REJECT;
09961                                           startFontClass("keyword");
09962                                           codifyLines(codeYYtext);
09963                                           endFontClass();
09964                                           BEGIN( ClassName ); 
09965                                         }
09966         YY_BREAK
09967 case 5:
09968 /* rule 5 can match eol */
09969 YY_RULE_SETUP
09970 #line 1722 "code.l"
09971 { 
09972                                           if (g_insideTemplate) REJECT;
09973                                           startFontClass("keyword");
09974                                           codifyLines(codeYYtext);
09975                                           endFontClass();
09976                                         }
09977         YY_BREAK
09978 case 6:
09979 YY_RULE_SETUP
09980 #line 1728 "code.l"
09981 { 
09982                                           startFontClass("keyword");
09983                                           codifyLines(codeYYtext);
09984                                           endFontClass();
09985                                           if (!g_insideTemplate) 
09986                                             BEGIN( ClassName ); 
09987                                         }
09988         YY_BREAK
09989 case 7:
09990 /* rule 7 can match eol */
09991 YY_RULE_SETUP
09992 #line 1735 "code.l"
09993 { 
09994                                           startFontClass("keyword");
09995                                           codifyLines(codeYYtext);
09996                                           endFontClass();
09997                                           BEGIN( PackageName ); 
09998                                         }
09999         YY_BREAK
10000 case 8:
10001 /* rule 8 can match eol */
10002 YY_RULE_SETUP
10003 #line 1741 "code.l"
10004 {
10005                                           if (!g_insideObjC) REJECT;
10006                                           codifyLines(codeYYtext);
10007                                           BEGIN(Body);
10008                                         }
10009         YY_BREAK
10010 case 9:
10011 YY_RULE_SETUP
10012 #line 1746 "code.l"
10013 {
10014                                           if (!g_insideObjC || g_insideBody)
10015                                           { 
10016                                             g_code->codify(codeYYtext);
10017                                           }
10018                                           else // Start of Objective-C method
10019                                           {
10020                                             //printf("Method!\n");
10021                                             g_code->codify(codeYYtext);
10022                                             BEGIN(ObjCMethod);
10023                                           }
10024                                         }
10025         YY_BREAK
10026 case 10:
10027 YY_RULE_SETUP
10028 #line 1758 "code.l"
10029 {
10030                                           g_code->codify(codeYYtext);
10031                                           BEGIN(ObjCParams);
10032                                         }
10033         YY_BREAK
10034 case 11:
10035 YY_RULE_SETUP
10036 #line 1762 "code.l"
10037 {
10038                                           g_code->codify(codeYYtext);
10039                                           BEGIN(ObjCParamType);
10040                                         }
10041         YY_BREAK
10042 case 12:
10043 YY_RULE_SETUP
10044 #line 1766 "code.l"
10045 {
10046                                           g_code->codify(codeYYtext);
10047                                           if (*codeYYtext=='{')
10048                                           {
10049                                             g_curlyCount++;
10050                                             if (g_searchingForBody)
10051                                             {
10052                                               g_searchingForBody=FALSE;
10053                                               g_insideBody=TRUE;
10054                                             }
10055                                             if (g_insideBody) g_bodyCurlyCount++;
10056                                             if (!g_curClassName.isEmpty()) // valid class name
10057                                             {
10058                                               pushScope(g_curClassName);
10059                                               DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n"));
10060                                               g_scopeStack.push(SCOPEBLOCK);
10061                                             }
10062                                           }
10063                                           g_type.resize(0);
10064                                           g_name.resize(0);
10065                                           BEGIN(Body);
10066                                         }
10067         YY_BREAK
10068 case 13:
10069 YY_RULE_SETUP
10070 #line 1788 "code.l"
10071 {
10072                                           g_code->codify(codeYYtext);
10073                                         }
10074         YY_BREAK
10075 case 14:
10076 YY_RULE_SETUP
10077 #line 1791 "code.l"
10078 {
10079                                           startFontClass("keywordtype");
10080                                           g_code->codify(codeYYtext);
10081                                           endFontClass();
10082                                           g_parmType=codeYYtext;
10083                                         }
10084         YY_BREAK
10085 case 15:
10086 YY_RULE_SETUP
10087 #line 1797 "code.l"
10088 {
10089                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10090                                           g_parmType=codeYYtext;
10091                                         }
10092         YY_BREAK
10093 case 16:
10094 YY_RULE_SETUP
10095 #line 1801 "code.l"
10096 {
10097                                           g_code->codify(codeYYtext);
10098                                           BEGIN(ObjCParams);
10099                                         }
10100         YY_BREAK
10101 case 17:
10102 YY_RULE_SETUP
10103 #line 1805 "code.l"
10104 {
10105                                           g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
10106                                              g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
10107                                           g_code->codify(codeYYtext);
10108                                           g_parmName=codeYYtext;
10109                                           g_theVarContext.addVariable(g_parmType,g_parmName);
10110                                           g_parmType.resize(0);g_parmName.resize(0);
10111                                         }
10112         YY_BREAK
10113 case 18:
10114 YY_RULE_SETUP
10115 #line 1813 "code.l"
10116 {
10117                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10118                                         }
10119         YY_BREAK
10120 case 19:
10121 YY_RULE_SETUP
10122 #line 1816 "code.l"
10123 {
10124                                           g_code->codify(codeYYtext);
10125                                         }
10126         YY_BREAK
10127 case 20:
10128 /* rule 20 can match eol */
10129 YY_RULE_SETUP
10130 #line 1819 "code.l"
10131 {
10132                                           codifyLines(codeYYtext);
10133                                         }
10134         YY_BREAK
10135 case 21:
10136 YY_RULE_SETUP
10137 #line 1822 "code.l"
10138 {
10139                                           //FileInfo *f;
10140                                           bool ambig;
10141                                           bool found=FALSE;
10142                                           FileDef *fd=0;
10143                                           //printf("looking for include %s\n",codeYYtext);
10144                                           if ((fd=findFileDef(Doxygen::inputNameDict,codeYYtext,ambig)) &&
10145                                               fd->isLinkable())
10146                                           {
10147                                             if (ambig) // multiple input files match the name
10148                                             {
10149                                               //printf("===== yes %s is ambigious\n",codeYYtext);
10150                                               QCString name = convertToQCString(QDir::cleanDirPath(codeYYtext));
10151                                               if (!name.isEmpty() && g_sourceFileDef)
10152                                               {
10153                                                 FileName *fn = Doxygen::inputNameDict->find(name);
10154                                                 if (fn)
10155                                                 {
10156                                                   FileNameIterator fni(*fn);
10157                                                   // for each include name
10158                                                   for (fni.toFirst();!found && (fd=fni.current());++fni)
10159                                                   {
10160                                                     // see if this source file actually includes the file
10161                                                     found = g_sourceFileDef->isIncluded(fd->absFilePath());
10162                                                     //printf("      include file %s found=%d\n",fd->absFilePath().data(),found);
10163                                                   }
10164                                                 }
10165                                               }
10166                                             }
10167                                             else // not ambiguous
10168                                             {
10169                                               found = TRUE;
10170                                             }
10171                                           }
10172                                           if (found)
10173                                           {
10174                                             //printf("      include file %s found=%d\n",fd->absFilePath().data(),found);
10175                                             g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,codeYYtext,fd->briefDescriptionAsTooltip());
10176                                           }
10177                                           else
10178                                           {
10179                                             g_code->codify(codeYYtext);
10180                                           }
10181                                           char c=yyinput();
10182                                           QCString text;
10183                                           text+=c;
10184                                           g_code->codify(text);
10185                                           endFontClass();
10186                                           BEGIN( Body );
10187                                         }
10188         YY_BREAK
10189 case 22:
10190 YY_RULE_SETUP
10191 #line 1872 "code.l"
10192 { 
10193                                           startFontClass("preprocessor");
10194                                           g_lastSkipCppContext = YY_START;
10195                                           g_code->codify(codeYYtext);
10196                                           BEGIN( SkipCPP ) ; 
10197                                         }
10198         YY_BREAK
10199 case 23:
10200 YY_RULE_SETUP
10201 #line 1878 "code.l"
10202 { 
10203                                           g_code->codify(codeYYtext);
10204                                         }
10205         YY_BREAK
10206 case 24:
10207 /* rule 24 can match eol */
10208 YY_RULE_SETUP
10209 #line 1881 "code.l"
10210 { 
10211                                           codifyLines(codeYYtext);
10212                                         }
10213         YY_BREAK
10214 case 25:
10215 YY_RULE_SETUP
10216 #line 1884 "code.l"
10217 { 
10218                                           g_code->codify(codeYYtext);
10219                                         }
10220         YY_BREAK
10221 case 26:
10222 YY_RULE_SETUP
10223 #line 1887 "code.l"
10224 { 
10225                                           g_theVarContext.pushScope();
10226 
10227                                           DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
10228                                           g_scopeStack.push(INNERBLOCK);
10229 
10230                                           if (g_searchingForBody)
10231                                           {
10232                                             g_searchingForBody=FALSE;
10233                                             g_insideBody=TRUE;
10234                                           }
10235                                           g_code->codify(codeYYtext);
10236                                           g_curlyCount++;
10237                                           if (g_insideBody) 
10238                                           {
10239                                             g_bodyCurlyCount++;
10240                                           }
10241                                           g_type.resize(0); 
10242                                           g_name.resize(0);
10243                                           BEGIN( Body );
10244                                         }
10245         YY_BREAK
10246 case 27:
10247 YY_RULE_SETUP
10248 #line 1908 "code.l"
10249 { 
10250                                           g_theVarContext.popScope();
10251                                           g_type.resize(0); 
10252                                           g_name.resize(0);
10253 
10254                                           int *scope = g_scopeStack.pop();
10255                                           DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK));
10256                                           if (scope==SCOPEBLOCK || scope==CLASSBLOCK) 
10257                                           {
10258                                             popScope();
10259                                           }
10260 
10261                                           g_code->codify(codeYYtext);
10262 
10263                                           //fprintf(stderr,"g_bodyCurlyCount=%d\n",g_bodyCurlyCount);
10264                                           if (--g_bodyCurlyCount<=0)
10265                                           {
10266                                             g_insideBody=FALSE;
10267                                             g_currentMemberDef=0;
10268                                             if (g_currentDefinition) 
10269                                               g_currentDefinition=g_currentDefinition->getOuterScope();
10270                                           }
10271                                           BEGIN(Body);
10272                                         }
10273         YY_BREAK
10274 case 28:
10275 YY_RULE_SETUP
10276 #line 1932 "code.l"
10277 { 
10278                                           //printf("End of objc scope fd=%s\n",g_sourceFileDef->name().data());
10279                                           if (g_sourceFileDef)
10280                                           {
10281                                             FileDef *fd=g_sourceFileDef;
10282                                             g_insideObjC = fd->name().lower().right(2)==".m" || 
10283                                                            fd->name().lower().right(3)==".mm"; 
10284                                             //printf("insideObjC=%d\n",g_insideObjC);
10285                                           }
10286                                           else
10287                                           {
10288                                             g_insideObjC = FALSE;
10289                                           }
10290                                           if (g_insideBody)
10291                                           {
10292                                             g_theVarContext.popScope();
10293 
10294                                             int *scope = g_scopeStack.pop();
10295                                             DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK));
10296                                             if (scope==SCOPEBLOCK || scope==CLASSBLOCK) 
10297                                             {
10298                                               popScope();
10299                                             }
10300                                             g_insideBody=FALSE;
10301                                           }
10302 
10303                                           startFontClass("keyword");
10304                                           g_code->codify(codeYYtext);
10305                                           endFontClass();
10306 
10307                                           g_currentMemberDef=0;
10308                                           if (g_currentDefinition) 
10309                                             g_currentDefinition=g_currentDefinition->getOuterScope();
10310                                           BEGIN(Body);
10311                                         }
10312         YY_BREAK
10313 case 29:
10314 YY_RULE_SETUP
10315 #line 1967 "code.l"
10316 { 
10317                                           g_code->codify(codeYYtext);
10318                                           g_searchingForBody=FALSE; 
10319                                           BEGIN( Body ); 
10320                                         }
10321         YY_BREAK
10322 case 30:
10323 YY_RULE_SETUP
10324 #line 1972 "code.l"
10325 {
10326                                           g_type=g_curClassName.copy();
10327                                           g_name.resize(0);
10328                                           g_code->codify(codeYYtext);
10329                                           BEGIN( Body ); // variable of type struct *
10330                                         }
10331         YY_BREAK
10332 case 31:
10333 YY_RULE_SETUP
10334 #line 1978 "code.l"
10335 {
10336                                           startFontClass("keyword");
10337                                           g_code->codify(codeYYtext);
10338                                           endFontClass();
10339                                         }
10340         YY_BREAK
10341 case 32:
10342 YY_RULE_SETUP
10343 #line 1983 "code.l"
10344 {
10345                                           g_curClassName=codeYYtext;
10346                                           addType();
10347                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10348                                           BEGIN( ClassVar );
10349                                         }
10350         YY_BREAK
10351 case 33:
10352 YY_RULE_SETUP
10353 #line 1989 "code.l"
10354 {
10355                                           g_curClassName=codeYYtext;
10356                                           g_curClassName=substitute(g_curClassName,".","::");
10357                                           //printf("found package: %s\n",g_curClassName.data());
10358                                           addType();
10359                                           codifyLines(codeYYtext);
10360                                         }
10361         YY_BREAK
10362 case 34:
10363 YY_RULE_SETUP
10364 #line 1996 "code.l"
10365 {
10366                                           unput(*codeYYtext);
10367                                           BEGIN( Body );
10368                                         }
10369         YY_BREAK
10370 case 35:
10371 YY_RULE_SETUP
10372 #line 2000 "code.l"
10373 { // Java
10374                                           startFontClass("keyword");
10375                                           codifyLines(codeYYtext);
10376                                           endFontClass();
10377                                           g_curClassBases.clear();
10378                                           BEGIN( Bases ); 
10379                                         }
10380         YY_BREAK
10381 case 36:
10382 /* rule 36 can match eol */
10383 YY_RULE_SETUP
10384 #line 2007 "code.l"
10385 {
10386                                           //fprintf(stderr,"***** C++/CLI modifier %s on g_curClassName=%s\n",codeYYtext,g_curClassName.data());
10387                                           startFontClass("keyword");
10388                                           codifyLines(codeYYtext);
10389                                           endFontClass();
10390                                           BEGIN( CppCliTypeModifierFollowup ); 
10391                                         }
10392         YY_BREAK
10393 case 37:
10394 YY_RULE_SETUP
10395 #line 2014 "code.l"
10396 {
10397                                           g_type = g_curClassName.copy();
10398                                           g_name = codeYYtext;
10399                                           if (g_insideBody)
10400                                           {
10401                                             g_theVarContext.addVariable(g_type,g_name);
10402                                           }
10403                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10404                                         }
10405         YY_BREAK
10406 case 38:
10407 YY_RULE_SETUP
10408 #line 2023 "code.l"
10409 {
10410                                           codifyLines(codeYYtext);
10411                                           g_curClassBases.clear();
10412                                           BEGIN( Bases ); 
10413                                         }
10414         YY_BREAK
10415 case 39:
10416 #line 2029 "code.l"
10417 case 40:
10418 YY_RULE_SETUP
10419 #line 2029 "code.l"
10420 {
10421                                           g_theVarContext.pushScope();
10422                                           g_code->codify(codeYYtext);
10423                                           g_curlyCount++;
10424                                           if (YY_START==ClassVar && g_curClassName.isEmpty())
10425                                           {
10426                                             g_curClassName = g_name.copy();
10427                                           }
10428                                           if (g_searchingForBody)
10429                                           {
10430                                             g_searchingForBody=FALSE;
10431                                             g_insideBody=TRUE;
10432                                           }
10433                                           if (g_insideBody) g_bodyCurlyCount++;
10434                                           if (!g_curClassName.isEmpty()) // valid class name
10435                                           {
10436                                             DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n"));
10437                                             g_scopeStack.push(CLASSBLOCK);
10438                                             pushScope(g_curClassName);
10439                                             //fprintf(stderr,"***** g_curClassName=%s\n",g_curClassName.data());
10440                                             if (getResolvedClass(g_currentDefinition,g_sourceFileDef,g_curClassName)==0)
10441                                             {
10442                                               //printf("Adding new class %s\n",g_curClassName.data());
10443                                               ClassDef *ncd=new ClassDef("<code>",1,
10444                                                   g_curClassName,ClassDef::Class,0,0,FALSE);
10445                                               g_codeClassSDict->append(g_curClassName,ncd);
10446                                               // insert base classes.
10447                                               char *s=g_curClassBases.first();
10448                                               while (s)
10449                                               {
10450                                                 ClassDef *bcd;
10451                                                 bcd=g_codeClassSDict->find(s);
10452                                                 if (bcd==0) bcd=getResolvedClass(g_currentDefinition,g_sourceFileDef,s);
10453                                                 if (bcd && bcd!=ncd)
10454                                                 {
10455                                                   ncd->insertBaseClass(bcd,s,Public,Normal);
10456                                                 }
10457                                                 s=g_curClassBases.next();
10458                                               }
10459                                             }
10460                                             //printf("g_codeClassList.count()=%d\n",g_codeClassList.count());
10461                                           }
10462                                           else // not a class name -> assume inner block
10463                                           {
10464                                             DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
10465                                             g_scopeStack.push(INNERBLOCK);
10466                                           }
10467                                           g_curClassName.resize(0);
10468                                           g_curClassBases.clear();
10469                                           BEGIN( Body );
10470                                         }
10471         YY_BREAK
10472 case 41:
10473 YY_RULE_SETUP
10474 #line 2080 "code.l"
10475 { 
10476                                           startFontClass("keyword");
10477                                           g_code->codify(codeYYtext);
10478                                           endFontClass();
10479                                         }
10480         YY_BREAK
10481 case 42:
10482 YY_RULE_SETUP
10483 #line 2085 "code.l"
10484 { 
10485                                           //printf("%s:addBase(%s)\n",g_ccd.name.data(),codeYYtext);
10486                                           g_curClassBases.inSort(codeYYtext); 
10487                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10488                                         }
10489         YY_BREAK
10490 case 43:
10491 YY_RULE_SETUP
10492 #line 2090 "code.l"
10493 { 
10494                                           g_code->codify(codeYYtext);
10495                                           if (!g_insideObjC)
10496                                           {
10497                                             g_sharpCount=1;
10498                                             BEGIN ( SkipSharp );
10499                                           }
10500                                           else
10501                                           {
10502                                             g_insideProtocolList=TRUE;
10503                                           }
10504                                         }
10505         YY_BREAK
10506 case 44:
10507 YY_RULE_SETUP
10508 #line 2102 "code.l"
10509 {
10510                                           g_code->codify(codeYYtext);
10511                                           g_insideProtocolList=FALSE;
10512                                         }
10513         YY_BREAK
10514 case 45:
10515 YY_RULE_SETUP
10516 #line 2106 "code.l"
10517 {
10518                                           g_code->codify(codeYYtext);
10519                                           ++g_sharpCount; 
10520                                         }
10521         YY_BREAK
10522 case 46:
10523 YY_RULE_SETUP
10524 #line 2110 "code.l"
10525 { 
10526                                           g_code->codify(codeYYtext);
10527                                           if (--g_sharpCount<=0)
10528                                           BEGIN ( Bases );
10529                                         }
10530         YY_BREAK
10531 case 47:
10532 YY_RULE_SETUP
10533 #line 2115 "code.l"
10534 {
10535                                           g_code->codify(codeYYtext);
10536                                           g_sharpCount=1;
10537                                           BEGIN ( SkipSharp );
10538                                         }
10539         YY_BREAK
10540 case 48:
10541 YY_RULE_SETUP
10542 #line 2120 "code.l"
10543 {
10544                                           g_code->codify(codeYYtext);
10545                                           ++g_sharpCount;
10546                                         }
10547         YY_BREAK
10548 case 49:
10549 YY_RULE_SETUP
10550 #line 2124 "code.l"
10551 {
10552                                           g_code->codify(codeYYtext);
10553                                           if (--g_sharpCount<=0)
10554                                             BEGIN ( Bases );
10555                                         }
10556         YY_BREAK
10557 case 50:
10558 YY_RULE_SETUP
10559 #line 2131 "code.l"
10560 { 
10561                                           g_code->codify(codeYYtext);
10562                                         }
10563         YY_BREAK
10564 case 51:
10565 /* rule 51 can match eol */
10566 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10567 (yy_c_buf_p) = yy_cp -= 1;
10568 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10569 YY_RULE_SETUP
10570 #line 2136 "code.l"
10571 {
10572                                           addType();
10573                                           generateFunctionLink(*g_code,codeYYtext);
10574                                           g_bracketCount=0;
10575                                           g_args.resize(0);
10576                                           g_name+=codeYYtext; 
10577                                           BEGIN( FuncCall );
10578                                         }
10579         YY_BREAK
10580 case 52:
10581 /* rule 52 can match eol */
10582 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10583 (yy_c_buf_p) = yy_cp -= 1;
10584 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10585 YY_RULE_SETUP
10586 #line 2144 "code.l"
10587 {
10588                                           addType();
10589                                           generateFunctionLink(*g_code,codeYYtext);
10590                                           g_bracketCount=0;
10591                                           g_args.resize(0);
10592                                           g_name+=codeYYtext; 
10593                                           BEGIN( FuncCall );
10594                                         }
10595         YY_BREAK
10596 case 53:
10597 /* rule 53 can match eol */
10598 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10599 (yy_c_buf_p) = yy_cp -= 1;
10600 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10601 YY_RULE_SETUP
10602 #line 2152 "code.l"
10603 {
10604                                           startFontClass("keyword");
10605                                           codifyLines(codeYYtext);
10606                                           endFontClass();
10607                                           g_insideTemplate=TRUE;
10608                                           g_sharpCount=0;
10609                                         }
10610         YY_BREAK
10611 case 54:
10612 /* rule 54 can match eol */
10613 YY_RULE_SETUP
10614 #line 2159 "code.l"
10615 {
10616                                           startFontClass("keyword");
10617                                           codifyLines(codeYYtext);
10618                                           endFontClass();
10619                                           BEGIN(UsingName);
10620                                         }
10621         YY_BREAK
10622 case 55:
10623 YY_RULE_SETUP
10624 #line 2165 "code.l"
10625 { addUsingDirective(codeYYtext);
10626                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10627                                           BEGIN(Body);
10628                                         }
10629         YY_BREAK
10630 case 56:
10631 /* rule 56 can match eol */
10632 YY_RULE_SETUP
10633 #line 2169 "code.l"
10634 { codifyLines(codeYYtext); BEGIN(Body); }
10635         YY_BREAK
10636 case 57:
10637 YY_RULE_SETUP
10638 #line 2170 "code.l"
10639 { codifyLines(codeYYtext); BEGIN(Body); }
10640         YY_BREAK
10641 case 58:
10642 /* rule 58 can match eol */
10643 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10644 (yy_c_buf_p) = yy_cp -= 1;
10645 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10646 YY_RULE_SETUP
10647 #line 2171 "code.l"
10648 {
10649                                           startFontClass("keyword");
10650                                           codifyLines(codeYYtext);
10651                                           if (QCString(codeYYtext)=="typedef")
10652                                           {
10653                                             addType();
10654                                             g_name+=codeYYtext; 
10655                                           }
10656                                           endFontClass();
10657                                         }
10658         YY_BREAK
10659 case 59:
10660 YY_RULE_SETUP
10661 #line 2181 "code.l"
10662 {
10663                                           startFontClass("keyword");
10664                                           codifyLines(codeYYtext);
10665                                           endFontClass();
10666                                         }
10667         YY_BREAK
10668 case 60:
10669 /* rule 60 can match eol */
10670 YY_RULE_SETUP
10671 #line 2186 "code.l"
10672 {
10673                                           startFontClass("keyword");
10674                                           codifyLines(codeYYtext);
10675                                           endFontClass();
10676                                           g_name.resize(0);g_type.resize(0);
10677                                         }
10678         YY_BREAK
10679 case 61:
10680 /* rule 61 can match eol */
10681 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10682 (yy_c_buf_p) = yy_cp = yy_bp + 2;
10683 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10684 YY_RULE_SETUP
10685 #line 2192 "code.l"
10686 {
10687                                           if (!g_inForEachExpression) REJECT;
10688                                           startFontClass("keywordflow");
10689                                           codifyLines(codeYYtext);
10690                                           endFontClass();
10691                                           g_name.resize(0);g_type.resize(0);
10692                                         }
10693         YY_BREAK
10694 case 62:
10695 /* rule 62 can match eol */
10696 YY_RULE_SETUP
10697 #line 2199 "code.l"
10698 {
10699                                           startFontClass("keywordflow");
10700                                           codifyLines(codeYYtext);
10701                                           endFontClass();
10702                                           g_name.resize(0);g_type.resize(0);
10703                                           g_inForEachExpression = (strcmp(codeYYtext,"for each")==0 || strcmp(codeYYtext, "foreach")==0);
10704                                           BEGIN(FuncCall);
10705                                         }
10706         YY_BREAK
10707 case 63:
10708 /* rule 63 can match eol */
10709 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10710 (yy_c_buf_p) = yy_cp -= 1;
10711 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10712 YY_RULE_SETUP
10713 #line 2207 "code.l"
10714 {
10715                                           startFontClass("keywordflow");
10716                                           codifyLines(codeYYtext);
10717                                           endFontClass();
10718                                           if (g_inFunctionTryBlock && (strcmp(codeYYtext,"catch")==0 || strcmp(codeYYtext,"finally")==0))
10719                                           {
10720                                             g_inFunctionTryBlock=FALSE;
10721                                           }
10722                                         }
10723         YY_BREAK
10724 case 64:
10725 YY_RULE_SETUP
10726 #line 2216 "code.l"
10727 {
10728                                           startFontClass("keywordflow");
10729                                           codifyLines(codeYYtext);
10730                                           endFontClass();
10731                                         }
10732         YY_BREAK
10733 case 65:
10734 YY_RULE_SETUP
10735 #line 2221 "code.l"
10736 {
10737                                           g_code->codify(codeYYtext);
10738                                           g_name.resize(0);g_type.resize(0);
10739                                           if (*codeYYtext==')')
10740                                           {
10741                                             g_theCallContext.popScope();
10742                                             g_bracketCount--;
10743                                             BEGIN(FuncCall);
10744                                           }
10745                                         }
10746         YY_BREAK
10747 case 66:
10748 YY_RULE_SETUP
10749 #line 2231 "code.l"
10750 {
10751                                           startFontClass("keywordtype");
10752                                           g_code->codify(codeYYtext);
10753                                           endFontClass();
10754                                           addType();
10755                                           g_name+=codeYYtext; 
10756                                         }
10757         YY_BREAK
10758 case 67:
10759 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10760 (yy_c_buf_p) = yy_cp = yy_bp + 7;
10761 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10762 YY_RULE_SETUP
10763 #line 2238 "code.l"
10764 {
10765                                           startFontClass("keyword");
10766                                           g_code->codify(codeYYtext);
10767                                           endFontClass();
10768                                           g_sharpCount=0;
10769                                           BEGIN(TemplDecl);
10770                                         }
10771         YY_BREAK
10772 case 68:
10773 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
10774 (yy_c_buf_p) = yy_cp = yy_bp + 8;
10775 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
10776 YY_RULE_SETUP
10777 #line 2245 "code.l"
10778 { // template<...>
10779                                           startFontClass("keyword");
10780                                           g_code->codify(codeYYtext);
10781                                           endFontClass();
10782                                           g_sharpCount=0;
10783                                           BEGIN(TemplDecl);
10784                                         }
10785         YY_BREAK
10786 case 69:
10787 YY_RULE_SETUP
10788 #line 2252 "code.l"
10789 {
10790                                           startFontClass("keyword");
10791                                           codifyLines(codeYYtext);
10792                                           endFontClass();
10793                                         }
10794         YY_BREAK
10795 case 70:
10796 YY_RULE_SETUP
10797 #line 2257 "code.l"
10798 {
10799                                           g_code->codify(codeYYtext);
10800                                           g_sharpCount++;
10801                                         }
10802         YY_BREAK
10803 case 71:
10804 YY_RULE_SETUP
10805 #line 2261 "code.l"
10806 {
10807                                           g_code->codify(codeYYtext);
10808                                           g_sharpCount--;
10809                                           if (g_sharpCount<=0)
10810                                           {
10811                                             BEGIN(Body);
10812                                           }
10813                                         }
10814         YY_BREAK
10815 case 72:
10816 YY_RULE_SETUP
10817 #line 2269 "code.l"
10818 {
10819                                           startFontClass("keyword");
10820                                           codifyLines(codeYYtext);
10821                                           endFontClass();
10822                                           BEGIN( g_lastTemplCastContext );
10823                                         }
10824         YY_BREAK
10825 case 73:
10826 YY_RULE_SETUP
10827 #line 2275 "code.l"
10828 {
10829                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10830                                         }
10831         YY_BREAK
10832 case 74:
10833 YY_RULE_SETUP
10834 #line 2278 "code.l"
10835 {
10836                                           startFontClass("keyword");
10837                                           codifyLines(codeYYtext);
10838                                           endFontClass();
10839                                         }
10840         YY_BREAK
10841 case 75:
10842 YY_RULE_SETUP
10843 #line 2283 "code.l"
10844 {
10845                                           codifyLines(codeYYtext);
10846                                         }
10847         YY_BREAK
10848 case 76:
10849 YY_RULE_SETUP
10850 #line 2286 "code.l"
10851 { // static_cast<T>(
10852                                           startFontClass("keyword");
10853                                           codifyLines(codeYYtext);
10854                                           endFontClass();
10855                                           g_lastTemplCastContext = YY_START;
10856                                           BEGIN(TemplCast);
10857                                         }
10858         YY_BREAK
10859 case 77:
10860 /* rule 77 can match eol */
10861 YY_RULE_SETUP
10862 #line 2293 "code.l"
10863 { // A<T> *pt;
10864                                           int i=QCString(codeYYtext).find('<');
10865                                           QCString kw = QCString(codeYYtext).left(i).stripWhiteSpace();
10866                                           if (kw.right(5)=="_cast" && YY_START==Body)
10867                                           {
10868                                             REJECT;
10869                                           }
10870                                           addType();
10871                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10872                                           g_name+=codeYYtext; 
10873                                         }
10874         YY_BREAK
10875 case 78:
10876 /* rule 78 can match eol */
10877 YY_RULE_SETUP
10878 #line 2304 "code.l"
10879 { // "int var;" or "var, var2" or "debug(f) macro" 
10880                                           addType();
10881                                           generateClassOrGlobalLink(*g_code,codeYYtext/*,TRUE*/);
10882                                           g_name+=codeYYtext; 
10883                                         }
10884         YY_BREAK
10885 case 79:
10886 /* rule 79 can match eol */
10887 YY_RULE_SETUP
10888 #line 2309 "code.l"
10889 { // p->func()
10890                                           addType();
10891                                           generateClassOrGlobalLink(*g_code,codeYYtext);
10892                                           g_name+=codeYYtext; 
10893                                         }
10894         YY_BREAK
10895 case 80:
10896 /* rule 80 can match eol */
10897 YY_RULE_SETUP
10898 #line 2314 "code.l"
10899 {  // (*p)->func() but not "if (p) ..."
10900                                           g_code->codify(codeYYtext);
10901                                           int s=0;while (s<codeYYleng && !isId(codeYYtext[s])) s++;
10902                                           int e=codeYYleng-1;while (e>=0 && !isId(codeYYtext[e])) e--;
10903                                           QCString varname = ((QCString)codeYYtext).mid(s,e-s+1); 
10904                                           addType();
10905                                           g_name=varname; 
10906                                         }
10907         YY_BREAK
10908 case 81:
10909 /* rule 81 can match eol */
10910 YY_RULE_SETUP
10911 #line 2322 "code.l"
10912 { // a() or c::a() or t<A,B>::a()
10913                                           addType();
10914                                           generateFunctionLink(*g_code,codeYYtext);
10915                                           //g_theVarContext.addVariable(g_type,codeYYtext);
10916                                           g_bracketCount=0;
10917                                           g_args.resize(0);
10918                                           g_name+=codeYYtext; 
10919                                           BEGIN( FuncCall );
10920                                         }
10921         YY_BREAK
10922 case 82:
10923 YY_RULE_SETUP
10924 #line 2331 "code.l"
10925 {
10926                                           startFontClass("stringliteral");
10927                                           g_code->codify(codeYYtext);
10928                                           g_lastStringContext=YY_START;
10929                                           g_inForEachExpression = FALSE;
10930                                           BEGIN( SkipString );
10931                                         }
10932         YY_BREAK
10933 case 83:
10934 YY_RULE_SETUP
10935 #line 2338 "code.l"
10936 {
10937                                           startFontClass("stringliteral");
10938                                           g_code->codify(codeYYtext);
10939                                           g_lastStringContext=YY_START;
10940                                           g_inForEachExpression = FALSE;
10941                                           BEGIN( SkipStringS );
10942                                         }
10943         YY_BREAK
10944 case 84:
10945 YY_RULE_SETUP
10946 #line 2345 "code.l"
10947 { 
10948                                           g_code->codify(codeYYtext);
10949                                         }
10950         YY_BREAK
10951 case 85:
10952 YY_RULE_SETUP
10953 #line 2348 "code.l"
10954 {
10955                                           g_code->codify(codeYYtext);
10956                                         }
10957         YY_BREAK
10958 case 86:
10959 YY_RULE_SETUP
10960 #line 2351 "code.l"
10961 {
10962                                           g_code->codify(codeYYtext);
10963                                         }
10964         YY_BREAK
10965 case 87:
10966 YY_RULE_SETUP
10967 #line 2354 "code.l"
10968 {
10969                                           g_code->codify(codeYYtext);
10970                                           endFontClass();
10971                                           BEGIN( g_lastStringContext );
10972                                         }
10973         YY_BREAK
10974 case 88:
10975 YY_RULE_SETUP
10976 #line 2359 "code.l"
10977 {
10978                                           g_code->codify(codeYYtext);
10979                                           endFontClass();
10980                                           BEGIN( g_lastStringContext );
10981                                         }
10982         YY_BREAK
10983 case 89:
10984 YY_RULE_SETUP
10985 #line 2364 "code.l"
10986 {
10987                                           g_code->codify(codeYYtext);
10988                                         }
10989         YY_BREAK
10990 case 90:
10991 YY_RULE_SETUP
10992 #line 2367 "code.l"
10993 {
10994                                           g_code->codify(codeYYtext);
10995                                         }
10996         YY_BREAK
10997 case 91:
10998 YY_RULE_SETUP
10999 #line 2370 "code.l"
11000 { // escaped quote
11001                                           g_code->codify(codeYYtext);
11002                                         }
11003         YY_BREAK
11004 case 92:
11005 YY_RULE_SETUP
11006 #line 2373 "code.l"
11007 { // end of string
11008                                           g_code->codify(codeYYtext);
11009                                           endFontClass();
11010                                           BEGIN( g_lastVerbStringContext );
11011                                         }
11012         YY_BREAK
11013 case 93:
11014 YY_RULE_SETUP
11015 #line 2378 "code.l"
11016 {
11017                                           g_code->codify(codeYYtext);
11018                                         }
11019         YY_BREAK
11020 case 94:
11021 /* rule 94 can match eol */
11022 YY_RULE_SETUP
11023 #line 2381 "code.l"
11024 {
11025                                           g_code->codify(codeYYtext);
11026                                         }
11027         YY_BREAK
11028 case 95:
11029 YY_RULE_SETUP
11030 #line 2384 "code.l"
11031 {
11032                                           g_code->codify(codeYYtext);
11033                                           g_name.resize(0);g_type.resize(0);
11034                                         }
11035         YY_BREAK
11036 case 96:
11037 YY_RULE_SETUP
11038 #line 2388 "code.l"
11039 {
11040                                           if (g_insideTemplate)
11041                                           {
11042                                             g_sharpCount++;
11043                                           }
11044                                           g_code->codify(codeYYtext);
11045                                         }
11046         YY_BREAK
11047 case 97:
11048 YY_RULE_SETUP
11049 #line 2395 "code.l"
11050 {
11051                                           if (g_insideTemplate)
11052                                           {
11053                                             if (--g_sharpCount<=0)
11054                                             {
11055                                               g_insideTemplate=FALSE;
11056                                             }
11057                                           }
11058                                           g_code->codify(codeYYtext);
11059                                         }
11060         YY_BREAK
11061 case 98:
11062 YY_RULE_SETUP
11063 #line 2405 "code.l"
11064 {
11065                                           startFontClass("charliteral"); 
11066                                           g_code->codify(codeYYtext);
11067                                           endFontClass();
11068                                         }
11069         YY_BREAK
11070 case 99:
11071 YY_RULE_SETUP
11072 #line 2410 "code.l"
11073 { g_code->codify(codeYYtext); }
11074         YY_BREAK
11075 case 100:
11076 YY_RULE_SETUP
11077 #line 2411 "code.l"
11078 { 
11079                                           g_code->codify(codeYYtext);
11080                                           g_memCallContext = YY_START;
11081                                           BEGIN( MemberCall ); 
11082                                         }
11083         YY_BREAK
11084 case 101:
11085 /* rule 101 can match eol */
11086 YY_RULE_SETUP
11087 #line 2416 "code.l"
11088 {
11089                                           if (g_theCallContext.getClass())
11090                                           {
11091                                             if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext))
11092                                             {
11093                                               g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
11094                                                                 g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
11095                                               g_code->codify(codeYYtext);
11096                                               addToSearchIndex(codeYYtext);
11097                                             }
11098                                             g_name.resize(0);
11099                                           }
11100                                           else
11101                                           {
11102                                             g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
11103                                                                 g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
11104                                             g_code->codify(codeYYtext);
11105                                             addToSearchIndex(codeYYtext);
11106                                             g_name.resize(0);
11107                                           }
11108                                           g_type.resize(0);
11109                                           g_bracketCount=0;
11110                                           if (g_memCallContext==Body)
11111                                           {
11112                                             BEGIN(FuncCall);
11113                                           }
11114                                           else
11115                                           {
11116                                             BEGIN(g_memCallContext);
11117                                           }
11118                                         }
11119         YY_BREAK
11120 case 102:
11121 /* rule 102 can match eol */
11122 YY_RULE_SETUP
11123 #line 2447 "code.l"
11124 {
11125                                           if (g_theCallContext.getClass())
11126                                           {
11127                                             //fprintf(stderr,"g_theCallContext.getClass()=%p\n",g_theCallContext.getClass());
11128                                             if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext))
11129                                             {
11130                                               g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
11131                                                                 g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
11132                                               g_code->codify(codeYYtext);
11133                                               addToSearchIndex(codeYYtext);
11134                                             }
11135                                             g_name.resize(0);
11136                                           }
11137                                           else
11138                                           {
11139                                             //fprintf(stderr,"no class context!\n");
11140                                             g_code->codify(codeYYtext);
11141                                             addToSearchIndex(codeYYtext);
11142                                             g_name.resize(0);
11143                                           }
11144                                           g_type.resize(0);
11145                                           BEGIN(g_memCallContext);
11146                                         }
11147         YY_BREAK
11148 case 103:
11149 YY_RULE_SETUP
11150 #line 2470 "code.l"
11151 {
11152                                           if (g_insideObjC && *codeYYtext=='[')
11153                                           {
11154                                             //printf("Found start of ObjC call!\n");
11155                                             // start of a method call
11156                                             g_contextDict.setAutoDelete(TRUE);
11157                                             g_nameDict.setAutoDelete(TRUE);
11158                                             g_objectDict.setAutoDelete(TRUE);
11159                                             g_wordDict.setAutoDelete(TRUE);
11160                                             g_contextDict.clear();
11161                                             g_nameDict.clear();
11162                                             g_objectDict.clear();
11163                                             g_wordDict.clear();
11164                                             g_currentCtxId  = 0;
11165                                             g_currentNameId  = 0;
11166                                             g_currentObjId  = 0;
11167                                             g_currentCtx = 0;
11168                                             g_braceCount = 0;
11169                                             unput('[');
11170                                             BEGIN(ObjCCall);
11171                                           }
11172                                           else
11173                                           {
11174                                             g_code->codify(codeYYtext);
11175                                             g_saveName = g_name.copy();
11176                                             g_saveType = g_type.copy();
11177                                             if (*codeYYtext!='[' && !g_type.isEmpty()) 
11178                                             {
11179                                               //printf("g_scopeStack.bottom()=%p\n",g_scopeStack.bottom());
11180                                               if (g_scopeStack.top()!=CLASSBLOCK)
11181                                               {
11182                                                 //printf("AddVariable: '%s' '%s' context=%d\n",
11183                                                 //    g_type.data(),g_name.data(),g_theVarContext.count());
11184                                                 g_theVarContext.addVariable(g_type,g_name);
11185                                               }
11186                                               g_name.resize(0);
11187                                             }
11188                                             if (*codeYYtext==';' || *codeYYtext=='=') 
11189                                             {
11190                                               g_type.resize(0);
11191                                               g_name.resize(0);
11192                                             }
11193                                             else if (*codeYYtext=='[')
11194                                             {
11195                                               g_theCallContext.pushScope();
11196                                             }
11197                                             g_args.resize(0);
11198                                             g_parmType.resize(0);
11199                                             g_parmName.resize(0);
11200                                           }
11201                                         }
11202         YY_BREAK
11203 /*
11204 <ObjCMemberCall>{ID}                    {
11205                                           if (strcmp(codeYYtext,"self")==0 || strcmp(codeYYtext,"super")==0)
11206                                           {
11207                                             // TODO: get proper base class for "super"
11208                                             g_theCallContext.setClass(getClass(g_curClassName));
11209                                             startFontClass("keyword");
11210                                             g_code->codify(codeYYtext); 
11211                                             endFontClass();
11212                                           }
11213                                           else
11214                                           {
11215                                             generateClassOrGlobalLink(*g_code,codeYYtext);
11216                                           }
11217                                           g_name.resize(0);
11218                                           BEGIN(ObjCMemberCall2);
11219                                         }
11220 <ObjCMemberCall>"["                     {
11221                                             g_code->codify(codeYYtext);
11222                                             g_theCallContext.pushScope();
11223                                         }
11224 <ObjCMemberCall2>{ID}":"?               {
11225                                           g_name+=codeYYtext;
11226                                           if (g_theCallContext.getClass())
11227                                           {
11228                                             //printf("Calling method %s\n",g_name.data());
11229                                             if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),g_name))
11230                                             {
11231                                               g_code->codify(codeYYtext);
11232                                               addToSearchIndex(g_name);
11233                                             }
11234                                           }
11235                                           else
11236                                           {
11237                                             g_code->codify(codeYYtext);
11238                                             addToSearchIndex(g_name);
11239                                           }
11240                                           g_name.resize(0);
11241                                           BEGIN(ObjCMemberCall3);
11242                                         }
11243 <ObjCMemberCall2,ObjCMemberCall3>"]"    {
11244                                           g_theCallContext.popScope();
11245                                           g_code->codify(codeYYtext);
11246                                           BEGIN(Body);
11247                                         }
11248   */
11249 case 104:
11250 YY_RULE_SETUP
11251 #line 2567 "code.l"
11252 { 
11253                                    saveObjCContext();
11254                                    g_currentCtx->format+=*codeYYtext;
11255                                    BEGIN(ObjCCall);
11256                                    //printf("open\n");
11257                                  }
11258         YY_BREAK
11259 case 105:
11260 YY_RULE_SETUP
11261 #line 2573 "code.l"
11262 { 
11263                                     g_currentCtx->format+=*codeYYtext;
11264                                     restoreObjCContext();
11265                                     BEGIN(ObjCMName);
11266                                     if (g_currentCtx==0)
11267                                     {
11268                                       // end of call
11269                                       writeObjCMethodCall(g_contextDict.find(0));
11270                                       BEGIN(Body);
11271                                     }
11272                                     //printf("close\n");
11273                                   }
11274         YY_BREAK
11275 case 106:
11276 YY_RULE_SETUP
11277 #line 2585 "code.l"
11278 {
11279                                     g_currentCtx->format+=escapeObject(codeYYtext);
11280                                     if (g_braceCount==0)
11281                                     {
11282                                       g_currentCtx->objectTypeOrName=codeYYtext;
11283                                       //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data());
11284                                       BEGIN(ObjCMName);
11285                                     }
11286                                   }
11287         YY_BREAK
11288 case 107:
11289 /* rule 107 can match eol */
11290 YY_RULE_SETUP
11291 #line 2594 "code.l"
11292 { 
11293                                     if (g_braceCount==0 && 
11294                                         g_currentCtx->methodName.isEmpty())
11295                                     {
11296                                       g_currentCtx->methodName=codeYYtext; 
11297                                       g_currentCtx->format+=escapeName(codeYYtext);
11298                                     }
11299                                     else
11300                                     {
11301                                       g_currentCtx->format+=escapeWord(codeYYtext);
11302                                     }
11303                                   }
11304         YY_BREAK
11305 case 108:
11306 /* rule 108 can match eol */
11307 YY_RULE_SETUP
11308 #line 2606 "code.l"
11309 { 
11310                                      if (g_braceCount==0)
11311                                      {
11312                                        g_currentCtx->methodName+=codeYYtext;
11313                                        g_currentCtx->methodName+=":";
11314                                      }
11315                                      g_currentCtx->format+=escapeName(codeYYtext);
11316                                    }
11317         YY_BREAK
11318 case 109:
11319 YY_RULE_SETUP
11320 #line 2614 "code.l"
11321 { g_currentCtx->format+=codeYYtext; }
11322         YY_BREAK
11323 case 110:
11324 YY_RULE_SETUP
11325 #line 2615 "code.l"
11326 { g_currentCtx->format+=codeYYtext; }
11327         YY_BREAK
11328 case 111:
11329 YY_RULE_SETUP
11330 #line 2616 "code.l"
11331 { g_currentCtx->format+=codeYYtext; 
11332                                       BEGIN(g_lastStringContext); 
11333                                    }
11334         YY_BREAK
11335 case 112:
11336 YY_RULE_SETUP
11337 #line 2619 "code.l"
11338 { g_currentCtx->format+=codeYYtext; }
11339         YY_BREAK
11340 case 113:
11341 YY_RULE_SETUP
11342 #line 2620 "code.l"
11343 { g_currentCtx->format+=codeYYtext; 
11344                                       g_lastStringContext=YY_START;
11345                                       BEGIN(ObjCSkipStr); 
11346                                    }
11347         YY_BREAK
11348 case 114:
11349 YY_RULE_SETUP
11350 #line 2624 "code.l"
11351 { g_currentCtx->format+="$$"; }
11352         YY_BREAK
11353 case 115:
11354 YY_RULE_SETUP
11355 #line 2625 "code.l"
11356 { g_currentCtx->format+=*codeYYtext; g_braceCount++; }
11357         YY_BREAK
11358 case 116:
11359 YY_RULE_SETUP
11360 #line 2626 "code.l"
11361 { g_currentCtx->format+=*codeYYtext; g_braceCount--; }
11362         YY_BREAK
11363 case 117:
11364 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11365 (yy_c_buf_p) = yy_cp = yy_bp + 1;
11366 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11367 YY_RULE_SETUP
11368 #line 2627 "code.l"
11369 { // needed to prevent matching the global rule (for C#)
11370                                      g_currentCtx->format+=codeYYtext;
11371                                    }
11372         YY_BREAK
11373 case 118:
11374 YY_RULE_SETUP
11375 #line 2630 "code.l"
11376 { g_currentCtx->format+=escapeWord(codeYYtext); }
11377         YY_BREAK
11378 case 119:
11379 YY_RULE_SETUP
11380 #line 2631 "code.l"
11381 { g_currentCtx->format+=*codeYYtext; }
11382         YY_BREAK
11383 case 120:
11384 /* rule 120 can match eol */
11385 YY_RULE_SETUP
11386 #line 2632 "code.l"
11387 { g_currentCtx->format+=*codeYYtext; }
11388         YY_BREAK
11389 case 121:
11390 YY_RULE_SETUP
11391 #line 2634 "code.l"
11392 {
11393                                           g_theCallContext.popScope();
11394                                           g_code->codify(codeYYtext);
11395                                           // TODO: nested arrays like: a[b[0]->func()]->func()
11396                                           g_name = g_saveName.copy();
11397                                           g_type = g_saveType.copy();
11398                                         }
11399         YY_BREAK
11400 case 122:
11401 YY_RULE_SETUP
11402 #line 2641 "code.l"
11403 {
11404                                           g_code->codify(codeYYtext);
11405                                         }
11406         YY_BREAK
11407 case 123:
11408 YY_RULE_SETUP
11409 #line 2644 "code.l"
11410 {
11411                                           g_code->codify(codeYYtext);
11412                                         }
11413         YY_BREAK
11414 case 124:
11415 /* rule 124 can match eol */
11416 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11417 (yy_c_buf_p) = yy_cp -= 1;
11418 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11419 YY_RULE_SETUP
11420 #line 2647 "code.l"
11421 {
11422                                           //addParmType();
11423                                           //g_parmName=codeYYtext; 
11424                                           startFontClass("keyword");
11425                                           g_code->codify(codeYYtext);
11426                                           endFontClass();
11427                                         }
11428         YY_BREAK
11429 case 125:
11430 /* rule 125 can match eol */
11431 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11432 (yy_c_buf_p) = yy_cp -= 1;
11433 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11434 YY_RULE_SETUP
11435 #line 2654 "code.l"
11436 {
11437                                           addParmType();
11438                                           g_parmName=codeYYtext; 
11439                                           startFontClass("keywordtype");
11440                                           g_code->codify(codeYYtext);
11441                                           endFontClass();
11442                                         }
11443         YY_BREAK
11444 case 126:
11445 /* rule 126 can match eol */
11446 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11447 (yy_c_buf_p) = yy_cp -= 1;
11448 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11449 YY_RULE_SETUP
11450 #line 2661 "code.l"
11451 {
11452                                           addParmType();
11453                                           g_parmName=codeYYtext; 
11454                                           startFontClass("keywordflow");
11455                                           g_code->codify(codeYYtext);
11456                                           endFontClass();
11457                                         }
11458         YY_BREAK
11459 case 127:
11460 YY_RULE_SETUP
11461 #line 2668 "code.l"
11462 {
11463                                           addParmType();
11464                                           g_parmName=codeYYtext; 
11465                                           generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody);
11466                                         }
11467         YY_BREAK
11468 case 128:
11469 YY_RULE_SETUP
11470 #line 2673 "code.l"
11471 { // probably a cast, not a function call
11472                                           g_code->codify(codeYYtext);
11473                                           g_inForEachExpression = FALSE;
11474                                           BEGIN( Body );
11475                                         }
11476         YY_BREAK
11477 case 129:
11478 YY_RULE_SETUP
11479 #line 2678 "code.l"
11480 {
11481                                           g_code->codify(codeYYtext);
11482                                           g_theVarContext.addVariable(g_parmType,g_parmName);
11483                                           g_parmType.resize(0);g_parmName.resize(0);
11484                                         }
11485         YY_BREAK
11486 case 130:
11487 YY_RULE_SETUP
11488 #line 2683 "code.l"
11489 {
11490                                           g_parmType.resize(0);g_parmName.resize(0);
11491                                           g_code->codify(codeYYtext);
11492                                           g_bracketCount++; 
11493                                           g_theCallContext.pushScope();
11494                                           if (YY_START==FuncCall && !g_insideBody)
11495                                           {
11496                                             g_theVarContext.pushScope();
11497                                           }
11498                                         }
11499         YY_BREAK
11500 case 131:
11501 YY_RULE_SETUP
11502 #line 2693 "code.l"
11503 { // operator
11504                                           if (strcmp(codeYYtext,"*") && 
11505                                               strcmp(codeYYtext,"&") &&
11506                                               strcmp(codeYYtext,"^") &&
11507                                               strcmp(codeYYtext,"%")) // typically a pointer or reference
11508                                           {
11509                                             // not a * or &, or C++/CLI's ^ or %
11510                                             g_parmType.resize(0);g_parmName.resize(0);
11511                                           }
11512                                           g_code->codify(codeYYtext);
11513                                         }
11514         YY_BREAK
11515 case 132:
11516 YY_RULE_SETUP
11517 #line 2704 "code.l"
11518 { 
11519                                           g_theVarContext.addVariable(g_parmType,g_parmName);
11520                                           g_theCallContext.popScope();
11521                                           g_inForEachExpression = FALSE;
11522                                           //g_theCallContext.setClass(0); // commented out, otherwise a()->b() does not work for b().
11523                                           g_code->codify(codeYYtext);
11524                                           if (--g_bracketCount<=0) 
11525                                           {
11526                                             if (g_name.isEmpty())
11527                                             {
11528                                               BEGIN( Body );
11529                                             }
11530                                             else
11531                                             {
11532                                               BEGIN( CallEnd ); 
11533                                             }
11534                                           }
11535                                         }
11536         YY_BREAK
11537 case 133:
11538 /* rule 133 can match eol */
11539 YY_RULE_SETUP
11540 #line 2722 "code.l"
11541 { codifyLines(codeYYtext); }
11542         YY_BREAK
11543 /*
11544 <MemberCall2,FuncCall>")"[ \t\n]*[;:]   {
11545   */
11546 case 134:
11547 YY_RULE_SETUP
11548 #line 2726 "code.l"
11549 {
11550                                           codifyLines(codeYYtext);
11551                                           g_bracketCount=0;
11552                                           if (*codeYYtext==';') g_searchingForBody=FALSE; 
11553                                           if (!g_type.isEmpty())
11554                                           {
11555                                             //fprintf(stderr,"add variable g_type=%s g_name=%s)\n",g_type.data(),g_name.data());
11556                                             g_theVarContext.addVariable(g_type,g_name);
11557                                           }
11558                                           g_parmType.resize(0);g_parmName.resize(0);
11559                                           g_theCallContext.setClass(0);
11560                                           if (*codeYYtext==';' || g_insideBody)
11561                                           {
11562                                             if (!g_insideBody)
11563                                             {
11564                                               g_theVarContext.popScope();
11565                                             }
11566                                             g_name.resize(0);g_type.resize(0);
11567                                             BEGIN( Body );
11568                                           }
11569                                           else
11570                                           {
11571                                             g_bracketCount=0;
11572                                             BEGIN( SkipInits );
11573                                           }
11574                                         }
11575         YY_BREAK
11576 case 135:
11577 /* rule 135 can match eol */
11578 YY_RULE_SETUP
11579 #line 2752 "code.l"
11580 {
11581                                           startFontClass("keyword");
11582                                           codifyLines(codeYYtext);
11583                                           endFontClass();
11584                                         }
11585         YY_BREAK
11586 case 136:
11587 /* rule 136 can match eol */
11588 YY_RULE_SETUP
11589 #line 2757 "code.l"
11590 {
11591                                           if (g_insideBody)
11592                                           {
11593                                             g_theVarContext.pushScope();
11594                                           }
11595                                           g_theVarContext.addVariable(g_parmType,g_parmName);
11596                                           //g_theCallContext.popScope();
11597                                           g_parmType.resize(0);g_parmName.resize(0);
11598                                           int index = g_name.findRev("::");
11599                                           if (index!=-1) 
11600                                           {
11601                                             ClassDef *cd=getResolvedClass(Doxygen::globalScope,g_sourceFileDef,g_name.left(index));
11602                                             if (cd)
11603                                             {
11604                                               setClassScope(cd->name());
11605                                             }
11606                                             else
11607                                             {
11608                                               setClassScope(g_realScope);
11609                                             }
11610                                             DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n"));
11611                                             g_scopeStack.push(SCOPEBLOCK);
11612                                           }
11613                                           else
11614                                           {
11615                                             DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
11616                                             g_scopeStack.push(INNERBLOCK);
11617                                           }
11618                                           codeYYtext[codeYYleng-1]='\0';
11619                                           QCString cv(codeYYtext);
11620                                           if (!cv.stripWhiteSpace().isEmpty())
11621                                           {
11622                                             startFontClass("keyword");
11623                                             codifyLines(codeYYtext);
11624                                             endFontClass();
11625                                           }
11626                                           else // just whitespace
11627                                           {
11628                                             codifyLines(codeYYtext);
11629                                           }
11630                                           g_code->codify("{");
11631                                           if (g_searchingForBody)
11632                                           {
11633                                             g_searchingForBody=FALSE;
11634                                             g_insideBody=TRUE;
11635                                           }
11636                                           if (g_insideBody) g_bodyCurlyCount++;
11637                                           g_curlyCount++;
11638                                           g_type.resize(0); g_name.resize(0);
11639                                           BEGIN( Body );
11640                                         }
11641         YY_BREAK
11642 case 137:
11643 YY_RULE_SETUP
11644 #line 2808 "code.l"
11645 { // function-try-block
11646                                           startFontClass("keyword");
11647                                           g_code->codify(codeYYtext);
11648                                           endFontClass();
11649                                           g_inFunctionTryBlock=TRUE;
11650                                         }
11651         YY_BREAK
11652 case 138:
11653 YY_RULE_SETUP
11654 #line 2814 "code.l"
11655 {
11656                                           if (g_insideBody || !g_parmType.isEmpty()) 
11657                                           {
11658                                             REJECT;
11659                                           }
11660                                           // could be K&R style definition
11661                                           addParmType();
11662                                           g_parmName=codeYYtext; 
11663                                           generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody);
11664                                           BEGIN(OldStyleArgs);
11665                                         }
11666         YY_BREAK
11667 case 139:
11668 YY_RULE_SETUP
11669 #line 2825 "code.l"
11670 {
11671                                           addParmType();
11672                                           g_parmName=codeYYtext; 
11673                                           generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody);
11674                                         }
11675         YY_BREAK
11676 case 140:
11677 YY_RULE_SETUP
11678 #line 2830 "code.l"
11679 {
11680                                           g_code->codify(codeYYtext);
11681                                           g_theVarContext.addVariable(g_parmType,g_parmName);
11682                                           if (*codeYYtext==';') g_parmType.resize(0);
11683                                           g_parmName.resize(0);
11684                                         }
11685         YY_BREAK
11686 case 141:
11687 YY_RULE_SETUP
11688 #line 2836 "code.l"
11689 {
11690                                           startFontClass("preprocessor");
11691                                           g_lastSkipCppContext = Body;
11692                                           g_code->codify(codeYYtext);
11693                                           BEGIN( SkipCPP );
11694                                         }
11695         YY_BREAK
11696 case 142:
11697 YY_RULE_SETUP
11698 #line 2842 "code.l"
11699 {
11700                                           unput(*codeYYtext);
11701                                           if (!g_insideBody) 
11702                                           {
11703                                             g_theVarContext.popScope();
11704                                           }
11705                                           g_name.resize(0);g_args.resize(0);
11706                                           g_parmType.resize(0);g_parmName.resize(0);
11707                                           BEGIN( Body ); 
11708                                         }
11709         YY_BREAK
11710 case 143:
11711 YY_RULE_SETUP
11712 #line 2852 "code.l"
11713 {
11714                                           g_code->codify(codeYYtext);
11715                                           g_type.resize(0); g_name.resize(0);
11716                                           BEGIN( Body );
11717                                         }
11718         YY_BREAK
11719 case 144:
11720 YY_RULE_SETUP
11721 #line 2857 "code.l"
11722 { 
11723                                           g_code->codify(codeYYtext);
11724                                           g_curlyCount++; 
11725                                           if (g_searchingForBody)
11726                                           {
11727                                             g_searchingForBody=FALSE;
11728                                             g_insideBody=TRUE;
11729                                           }
11730                                           if (g_insideBody) g_bodyCurlyCount++;
11731                                           if (g_name.find("::")!=-1) 
11732                                           {
11733                                             DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n"));
11734                                             g_scopeStack.push(SCOPEBLOCK);
11735                                             setClassScope(g_realScope);
11736                                           }
11737                                           else
11738                                           {
11739                                             DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
11740                                             g_scopeStack.push(INNERBLOCK);
11741                                           }
11742                                           g_type.resize(0); g_name.resize(0);
11743                                           BEGIN( Body ); 
11744                                         }
11745         YY_BREAK
11746 case 145:
11747 YY_RULE_SETUP
11748 #line 2880 "code.l"
11749 {
11750                                           generateClassOrGlobalLink(*g_code,codeYYtext);
11751                                         }
11752         YY_BREAK
11753 case 146:
11754 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11755 (yy_c_buf_p) = yy_cp -= 1;
11756 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11757 YY_RULE_SETUP
11758 #line 2883 "code.l"
11759 {
11760                                           generateFunctionLink(*g_code,codeYYtext);
11761                                         }
11762         YY_BREAK
11763 case 147:
11764 YY_RULE_SETUP
11765 #line 2886 "code.l"
11766 { 
11767                                           g_name=codeYYtext; 
11768                                           generateClassOrGlobalLink(*g_code,codeYYtext);
11769                                           BEGIN( MemberCall2 ); 
11770                                         }
11771         YY_BREAK
11772 case 148:
11773 YY_RULE_SETUP
11774 #line 2891 "code.l"
11775 { 
11776                                           g_code->codify(codeYYtext);
11777                                           int s=0;while (!isId(codeYYtext[s])) s++;
11778                                           int e=codeYYleng-1;while (!isId(codeYYtext[e])) e--;
11779                                           g_name=((QCString)codeYYtext).mid(s,e-s+1); 
11780                                           BEGIN( MemberCall2 ); 
11781                                         }
11782         YY_BREAK
11783 case 149:
11784 /* rule 149 can match eol */
11785 YY_RULE_SETUP
11786 #line 2898 "code.l"
11787 { 
11788                                           if (!g_args.isEmpty())
11789                                             generateMemberLink(*g_code,g_args,codeYYtext);
11790                                           else
11791                                             generateClassOrGlobalLink(*g_code,codeYYtext);
11792                                           g_args.resize(0);
11793                                           BEGIN( FuncCall );
11794                                         }
11795         YY_BREAK
11796 case 150:
11797 /* rule 150 can match eol */
11798 YY_RULE_SETUP
11799 #line 2906 "code.l"
11800 {
11801                                           //g_code->codify(codeYYtext);
11802                                           g_name=codeYYtext; 
11803                                           generateClassOrGlobalLink(*g_code,codeYYtext);
11804                                           BEGIN( MemberCall2 ); 
11805                                         }
11806         YY_BREAK
11807 case 151:
11808 YY_RULE_SETUP
11809 #line 2912 "code.l"
11810 {
11811                                           g_code->codify(codeYYtext);
11812                                           g_memCallContext = YY_START;
11813                                           BEGIN( MemberCall ); 
11814                                         }
11815         YY_BREAK
11816 case 152:
11817 YY_RULE_SETUP
11818 #line 2917 "code.l"
11819 { 
11820                                           g_code->codify(codeYYtext);
11821                                           endFontClass();
11822                                           BEGIN( g_lastCContext ) ; 
11823                                         }
11824         YY_BREAK
11825 case 153:
11826 YY_RULE_SETUP
11827 #line 2922 "code.l"
11828 {
11829                                           g_code->codify(codeYYtext);
11830                                         }
11831         YY_BREAK
11832 case 154:
11833 YY_RULE_SETUP
11834 #line 2925 "code.l"
11835 {
11836                                           g_code->codify(codeYYtext);
11837                                         }
11838         YY_BREAK
11839 case 155:
11840 YY_RULE_SETUP
11841 #line 2928 "code.l"
11842 { 
11843                                           g_code->codify(codeYYtext);
11844                                           endFontClass();
11845                                           BEGIN( g_lastCContext ) ; 
11846                                         }
11847         YY_BREAK
11848 case 156:
11849 YY_RULE_SETUP
11850 #line 2933 "code.l"
11851 { 
11852                                           g_code->codify(codeYYtext);
11853                                         }
11854         YY_BREAK
11855 case 157:
11856 YY_RULE_SETUP
11857 #line 2936 "code.l"
11858 
11859         YY_BREAK
11860 case 158:
11861 /* rule 158 can match eol */
11862 YY_RULE_SETUP
11863 #line 2937 "code.l"
11864 {
11865                                           unput('\n');
11866                                           endFontClass();
11867                                           BEGIN( g_lastCContext ) ;
11868                                         }
11869         YY_BREAK
11870 case 159:
11871 YY_RULE_SETUP
11872 #line 2942 "code.l"
11873 {
11874                                           g_code->codify(codeYYtext);
11875                                         }
11876         YY_BREAK
11877 case 160:
11878 /* rule 160 can match eol */
11879 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11880 (yy_c_buf_p) = yy_cp -= 1;
11881 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11882 YY_RULE_SETUP
11883 #line 2945 "code.l"
11884 {
11885                                           g_yyLineNr+=QCString(codeYYtext).contains('\n');
11886                                         }
11887         YY_BREAK
11888 case 161:
11889 /* rule 161 can match eol */
11890 YY_RULE_SETUP
11891 #line 2948 "code.l"
11892 {
11893                                           g_yyLineNr+=QCString(codeYYtext).contains('\n');
11894                                           endCodeLine();
11895                                           if (g_yyLineNr<g_inputLines) 
11896                                           {
11897                                             startCodeLine();
11898                                           }
11899                                           if (g_lastSpecialCContext==SkipCxxComment)
11900                                           { // force end of C++ comment here
11901                                             endFontClass();
11902                                             BEGIN( g_lastCContext ) ;
11903                                           }
11904                                           else
11905                                           {
11906                                             BEGIN(g_lastSpecialCContext);
11907                                           }
11908                                         }
11909         YY_BREAK
11910 case 162:
11911 YY_RULE_SETUP
11912 #line 2965 "code.l"
11913 {
11914                                           BEGIN(g_lastSpecialCContext);
11915                                         }
11916         YY_BREAK
11917 case 163:
11918 YY_RULE_SETUP
11919 #line 2968 "code.l"
11920 
11921         YY_BREAK
11922 case 164:
11923 YY_RULE_SETUP
11924 #line 2969 "code.l"
11925 
11926         YY_BREAK
11927 case 165:
11928 /* rule 165 can match eol */
11929 YY_RULE_SETUP
11930 #line 2970 "code.l"
11931 { g_yyLineNr++; }
11932         YY_BREAK
11933 case 166:
11934 YY_RULE_SETUP
11935 #line 2971 "code.l"
11936 
11937         YY_BREAK
11938 case 167:
11939 YY_RULE_SETUP
11940 #line 2972 "code.l"
11941 { 
11942                                           g_code->codify(codeYYtext);
11943                                           g_type.resize(0);
11944                                           g_name.resize(0);
11945                                           BEGIN(g_memCallContext); 
11946                                         }
11947         YY_BREAK
11948 case 168:
11949 /* rule 168 can match eol */
11950 YY_RULE_SETUP
11951 #line 2978 "code.l"
11952 { // remove special one-line comment
11953                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
11954                                           {
11955                                             g_yyLineNr+=((QCString)codeYYtext).contains('\n');
11956                                             endCodeLine();
11957                                             if (g_yyLineNr<g_inputLines) 
11958                                             {
11959                                               startCodeLine();
11960                                             }
11961                                           }
11962                                           else
11963                                           {
11964                                             startFontClass("comment");
11965                                             codifyLines(codeYYtext);
11966                                             endFontClass();
11967                                           }
11968                                           if (YY_START==SkipCxxComment)
11969                                           {
11970                                             endFontClass();
11971                                             BEGIN( g_lastCContext ) ;
11972                                           }
11973                                         }
11974         YY_BREAK
11975 case 169:
11976 /* rule 169 can match eol */
11977 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
11978 (yy_c_buf_p) = yy_cp = yy_bp + 1;
11979 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
11980 YY_RULE_SETUP
11981 #line 3000 "code.l"
11982 { 
11983                                           codifyLines(codeYYtext);
11984                                           endFontClass();
11985                                           BEGIN( g_lastSkipCppContext ) ;
11986                                         }
11987         YY_BREAK
11988 case 170:
11989 /* rule 170 can match eol */
11990 YY_RULE_SETUP
11991 #line 3005 "code.l"
11992 { // remove one-line group marker
11993                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
11994                                           {
11995                                             g_yyLineNr+=2;
11996                                             endCodeLine();
11997                                             if (g_yyLineNr<g_inputLines) 
11998                                             {
11999                                               startCodeLine();
12000                                             }
12001                                           }
12002                                           else
12003                                           {
12004                                             startFontClass("comment");
12005                                             codifyLines(codeYYtext);
12006                                             endFontClass();
12007                                           }
12008                                           if (YY_START==SkipCxxComment)
12009                                           {
12010                                             endFontClass();
12011                                             BEGIN( g_lastCContext ) ;
12012                                           }
12013                                         }
12014         YY_BREAK
12015 case 171:
12016 /* rule 171 can match eol */
12017 YY_RULE_SETUP
12018 #line 3027 "code.l"
12019 { // remove one-line group marker
12020                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12021                                           {
12022                                             g_lastSpecialCContext = YY_START;
12023                                             g_yyLineNr++;
12024                                             BEGIN(RemoveSpecialCComment);
12025                                           }
12026                                           else
12027                                           {
12028                                             // check is to prevent getting stuck in skipping C++ comments
12029                                             if (YY_START != SkipCxxComment)
12030                                             {
12031                                               g_lastCContext = YY_START ;
12032                                             }
12033                                             startFontClass("comment");
12034                                             codifyLines(codeYYtext);
12035                                             BEGIN(SkipComment);
12036                                           }
12037                                         }
12038         YY_BREAK
12039 case 172:
12040 /* rule 172 can match eol */
12041 YY_RULE_SETUP
12042 #line 3046 "code.l"
12043 { // remove one-line group marker
12044                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12045                                           {
12046                                             g_yyLineNr++;
12047                                             endCodeLine();
12048                                             if (g_yyLineNr<g_inputLines) 
12049                                             {
12050                                               startCodeLine();
12051                                             }
12052                                           }
12053                                           else
12054                                           {
12055                                             startFontClass("comment");
12056                                             codifyLines(codeYYtext);
12057                                             endFontClass();
12058                                           }
12059                                         }
12060         YY_BREAK
12061 case 173:
12062 YY_RULE_SETUP
12063 #line 3063 "code.l"
12064 { // remove multi-line group marker
12065                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12066                                           {
12067                                             g_lastSpecialCContext = YY_START;
12068                                             BEGIN(RemoveSpecialCComment);
12069                                           }
12070                                           else
12071                                           {
12072                                             // check is to prevent getting stuck in skipping C++ comments
12073                                             if (YY_START != SkipCxxComment)
12074                                             {
12075                                               g_lastCContext = YY_START ;
12076                                             }
12077                                             startFontClass("comment");
12078                                             g_code->codify(codeYYtext);
12079                                             BEGIN(SkipComment);
12080                                           }
12081                                         }
12082         YY_BREAK
12083 case 174:
12084 /* rule 174 can match eol */
12085 YY_RULE_SETUP
12086 #line 3081 "code.l"
12087 { // remove special one-line comment
12088                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12089                                           {
12090                                             g_yyLineNr++;
12091                                             endCodeLine();
12092                                             if (g_yyLineNr<g_inputLines) 
12093                                             {
12094                                               startCodeLine();
12095                                             }
12096                                           }
12097                                           else
12098                                           {
12099                                             startFontClass("comment");
12100                                             codifyLines(codeYYtext);
12101                                             endFontClass();
12102                                           }
12103                                         }
12104         YY_BREAK
12105 case 175:
12106 /* rule 175 can match eol */
12107 YY_RULE_SETUP
12108 #line 3098 "code.l"
12109 { // strip special one-line comment
12110                                           if (YY_START==SkipComment || YY_START==SkipString) REJECT;
12111                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12112                                           {
12113                                             char c[2]; c[0]='\n'; c[1]=0;
12114                                             codifyLines(c);
12115                                           }
12116                                           else
12117                                           {
12118                                             startFontClass("comment");
12119                                             codifyLines(codeYYtext);
12120                                             endFontClass();
12121                                           }
12122                                         }
12123         YY_BREAK
12124 case 176:
12125 /* rule 176 can match eol */
12126 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
12127 (yy_c_buf_p) = yy_cp -= 1;
12128 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
12129 YY_RULE_SETUP
12130 #line 3112 "code.l"
12131 {
12132                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12133                                           {
12134                                             g_lastSpecialCContext = YY_START;
12135                                             g_yyLineNr++;
12136                                             BEGIN(RemoveSpecialCComment);
12137                                           }
12138                                           else
12139                                           {
12140                                             // check is to prevent getting stuck in skipping C++ comments
12141                                             if (YY_START != SkipCxxComment)
12142                                             {
12143                                               g_lastCContext = YY_START ;
12144                                             }
12145                                             startFontClass("comment");
12146                                             codifyLines(codeYYtext);
12147                                             BEGIN(SkipComment);
12148                                           }
12149                                         }
12150         YY_BREAK
12151 case 177:
12152 /* rule 177 can match eol */
12153 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
12154 (yy_c_buf_p) = yy_cp -= 1;
12155 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
12156 YY_RULE_SETUP
12157 #line 3131 "code.l"
12158 { // special C comment block at a new line
12159                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12160                                           {
12161                                             g_lastSpecialCContext = YY_START;
12162                                             BEGIN(RemoveSpecialCComment);
12163                                           }
12164                                           else
12165                                           {
12166                                             // check is to prevent getting stuck in skipping C++ comments
12167                                             if (YY_START != SkipCxxComment)
12168                                             {
12169                                               g_lastCContext = YY_START ;
12170                                             }
12171                                             startFontClass("comment");
12172                                             g_code->codify(codeYYtext);
12173                                             BEGIN(SkipComment);
12174                                           }
12175                                         }
12176         YY_BREAK
12177 case 178:
12178 /* rule 178 can match eol */
12179 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
12180 (yy_c_buf_p) = yy_cp = yy_bp + 3;
12181 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
12182 YY_RULE_SETUP
12183 #line 3149 "code.l"
12184 { // special C comment block half way a line
12185                                           if (YY_START==SkipString) REJECT;
12186                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
12187                                           {
12188                                             g_lastSpecialCContext = YY_START;
12189                                             BEGIN(RemoveSpecialCComment);
12190                                           }
12191                                           else
12192                                           {
12193                                             // check is to prevent getting stuck in skipping C++ comments
12194                                             if (YY_START != SkipCxxComment)
12195                                             {
12196                                               g_lastCContext = YY_START ;
12197                                             }
12198                                             startFontClass("comment");
12199                                             g_code->codify(codeYYtext);
12200                                             BEGIN(SkipComment);
12201                                           }
12202                                         }
12203         YY_BREAK
12204 case 179:
12205 YY_RULE_SETUP
12206 #line 3168 "code.l"
12207 { 
12208                                           if (YY_START==SkipString) REJECT;
12209                                           if (!Config_getBool("STRIP_CODE_COMMENTS"))
12210                                           {
12211                                             startFontClass("comment");
12212                                             g_code->codify(codeYYtext);
12213                                             endFontClass();
12214                                           }
12215                                         }
12216         YY_BREAK
12217 case 180:
12218 YY_RULE_SETUP
12219 #line 3177 "code.l"
12220 { 
12221                                           startFontClass("comment");
12222                                           g_code->codify(codeYYtext);
12223                                           // check is to prevent getting stuck in skipping C++ comments
12224                                           if (YY_START != SkipCxxComment)
12225                                           {
12226                                             g_lastCContext = YY_START ;
12227                                           }
12228                                           BEGIN( SkipComment ) ;
12229                                         }
12230         YY_BREAK
12231 case 181:
12232 YY_RULE_SETUP
12233 #line 3187 "code.l"
12234 { // C# verbatim string
12235                                           startFontClass("stringliteral");
12236                                           g_code->codify(codeYYtext);
12237                                           g_lastVerbStringContext=YY_START;
12238                                           BEGIN(SkipVerbString);
12239                                         }
12240         YY_BREAK
12241 case 182:
12242 YY_RULE_SETUP
12243 #line 3193 "code.l"
12244 { 
12245                                           startFontClass("comment");
12246                                           g_code->codify(codeYYtext);
12247                                           g_lastCContext = YY_START ;
12248                                           BEGIN( SkipCxxComment ) ;
12249                                         }
12250         YY_BREAK
12251 case 183:
12252 YY_RULE_SETUP
12253 #line 3199 "code.l"
12254 {
12255                                           g_code->codify(codeYYtext);
12256                                           g_theCallContext.pushScope();
12257                                         }
12258         YY_BREAK
12259 case 184:
12260 YY_RULE_SETUP
12261 #line 3203 "code.l"
12262 {
12263                                           g_code->codify(codeYYtext);
12264                                           g_theCallContext.popScope();
12265                                         }
12266         YY_BREAK
12267 case 185:
12268 /* rule 185 can match eol */
12269 YY_RULE_SETUP
12270 #line 3207 "code.l"
12271 {
12272                                           codifyLines(codeYYtext); 
12273                                         }
12274         YY_BREAK
12275 case 186:
12276 YY_RULE_SETUP
12277 #line 3210 "code.l"
12278 {
12279                                           g_code->codify(codeYYtext);
12280                                         }
12281         YY_BREAK
12282 /*
12283 <*>([ \t\n]*"\n"){2,}                   { // combine multiple blank lines
12284                                           //QCString sepLine=codeYYtext;
12285                                           //g_code->codify("\n\n");
12286                                           //g_yyLineNr+=sepLine.contains('\n'); 
12287                                           //char sepLine[3]="\n\n";
12288                                           codifyLines(codeYYtext);
12289                                         }
12290   */
12291 case 187:
12292 YY_RULE_SETUP
12293 #line 3223 "code.l"
12294 ECHO;
12295         YY_BREAK
12296 #line 12297 "<stdout>"
12297                         case YY_STATE_EOF(INITIAL):
12298                         case YY_STATE_EOF(SkipString):
12299                         case YY_STATE_EOF(SkipStringS):
12300                         case YY_STATE_EOF(SkipVerbString):
12301                         case YY_STATE_EOF(SkipCPP):
12302                         case YY_STATE_EOF(SkipComment):
12303                         case YY_STATE_EOF(SkipCxxComment):
12304                         case YY_STATE_EOF(RemoveSpecialCComment):
12305                         case YY_STATE_EOF(StripSpecialCComment):
12306                         case YY_STATE_EOF(Body):
12307                         case YY_STATE_EOF(FuncCall):
12308                         case YY_STATE_EOF(MemberCall):
12309                         case YY_STATE_EOF(MemberCall2):
12310                         case YY_STATE_EOF(SkipInits):
12311                         case YY_STATE_EOF(ClassName):
12312                         case YY_STATE_EOF(PackageName):
12313                         case YY_STATE_EOF(ClassVar):
12314                         case YY_STATE_EOF(CppCliTypeModifierFollowup):
12315                         case YY_STATE_EOF(Bases):
12316                         case YY_STATE_EOF(SkipSharp):
12317                         case YY_STATE_EOF(ReadInclude):
12318                         case YY_STATE_EOF(TemplDecl):
12319                         case YY_STATE_EOF(TemplCast):
12320                         case YY_STATE_EOF(CallEnd):
12321                         case YY_STATE_EOF(ObjCMethod):
12322                         case YY_STATE_EOF(ObjCParams):
12323                         case YY_STATE_EOF(ObjCParamType):
12324                         case YY_STATE_EOF(ObjCCall):
12325                         case YY_STATE_EOF(ObjCMName):
12326                         case YY_STATE_EOF(ObjCSkipStr):
12327                         case YY_STATE_EOF(OldStyleArgs):
12328                         case YY_STATE_EOF(UsingName):
12329                                 yyterminate();
12330 
12331         case YY_END_OF_BUFFER:
12332                 {
12333                 /* Amount of text matched not including the EOB char. */
12334                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
12335 
12336                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
12337                 *yy_cp = (yy_hold_char);
12338                 YY_RESTORE_YY_MORE_OFFSET
12339 
12340                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
12341                         {
12342                         /* We're scanning a new file or input source.  It's
12343                          * possible that this happened because the user
12344                          * just pointed codeYYin at a new source and called
12345                          * codeYYlex().  If so, then we have to assure
12346                          * consistency between YY_CURRENT_BUFFER and our
12347                          * globals.  Here is the right place to do so, because
12348                          * this is the first action (other than possibly a
12349                          * back-up) that will match for the new input source.
12350                          */
12351                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
12352                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = codeYYin;
12353                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
12354                         }
12355 
12356                 /* Note that here we test for yy_c_buf_p "<=" to the position
12357                  * of the first EOB in the buffer, since yy_c_buf_p will
12358                  * already have been incremented past the NUL character
12359                  * (since all states make transitions on EOB to the
12360                  * end-of-buffer state).  Contrast this with the test
12361                  * in input().
12362                  */
12363                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
12364                         { /* This was really a NUL. */
12365                         yy_state_type yy_next_state;
12366 
12367                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
12368 
12369                         yy_current_state = yy_get_previous_state(  );
12370 
12371                         /* Okay, we're now positioned to make the NUL
12372                          * transition.  We couldn't have
12373                          * yy_get_previous_state() go ahead and do it
12374                          * for us because it doesn't know how to deal
12375                          * with the possibility of jamming (and we don't
12376                          * want to build jamming into it because then it
12377                          * will run more slowly).
12378                          */
12379 
12380                         yy_next_state = yy_try_NUL_trans( yy_current_state );
12381 
12382                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
12383 
12384                         if ( yy_next_state )
12385                                 {
12386                                 /* Consume the NUL. */
12387                                 yy_cp = ++(yy_c_buf_p);
12388                                 yy_current_state = yy_next_state;
12389                                 goto yy_match;
12390                                 }
12391 
12392                         else
12393                                 {
12394                                 yy_cp = (yy_c_buf_p);
12395                                 goto yy_find_action;
12396                                 }
12397                         }
12398 
12399                 else switch ( yy_get_next_buffer(  ) )
12400                         {
12401                         case EOB_ACT_END_OF_FILE:
12402                                 {
12403                                 (yy_did_buffer_switch_on_eof) = 0;
12404 
12405                                 if ( codeYYwrap( ) )
12406                                         {
12407                                         /* Note: because we've taken care in
12408                                          * yy_get_next_buffer() to have set up
12409                                          * codeYYtext, we can now set up
12410                                          * yy_c_buf_p so that if some total
12411                                          * hoser (like flex itself) wants to
12412                                          * call the scanner after we return the
12413                                          * YY_NULL, it'll still work - another
12414                                          * YY_NULL will get returned.
12415                                          */
12416                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
12417 
12418                                         yy_act = YY_STATE_EOF(YY_START);
12419                                         goto do_action;
12420                                         }
12421 
12422                                 else
12423                                         {
12424                                         if ( ! (yy_did_buffer_switch_on_eof) )
12425                                                 YY_NEW_FILE;
12426                                         }
12427                                 break;
12428                                 }
12429 
12430                         case EOB_ACT_CONTINUE_SCAN:
12431                                 (yy_c_buf_p) =
12432                                         (yytext_ptr) + yy_amount_of_matched_text;
12433 
12434                                 yy_current_state = yy_get_previous_state(  );
12435 
12436                                 yy_cp = (yy_c_buf_p);
12437                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
12438                                 goto yy_match;
12439 
12440                         case EOB_ACT_LAST_MATCH:
12441                                 (yy_c_buf_p) =
12442                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
12443 
12444                                 yy_current_state = yy_get_previous_state(  );
12445 
12446                                 yy_cp = (yy_c_buf_p);
12447                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
12448                                 goto yy_find_action;
12449                         }
12450                 break;
12451                 }
12452 
12453         default:
12454                 YY_FATAL_ERROR(
12455                         "fatal flex scanner internal error--no action found" );
12456         } /* end of action switch */
12457                 } /* end of scanning one token */
12458 } /* end of codeYYlex */
12459 
12460 /* yy_get_next_buffer - try to read in a new buffer
12461  *
12462  * Returns a code representing an action:
12463  *      EOB_ACT_LAST_MATCH -
12464  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
12465  *      EOB_ACT_END_OF_FILE - end of file
12466  */
12467 static int yy_get_next_buffer (void)
12468 {
12469         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
12470         register char *source = (yytext_ptr);
12471         register int number_to_move, i;
12472         int ret_val;
12473 
12474         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
12475                 YY_FATAL_ERROR(
12476                 "fatal flex scanner internal error--end of buffer missed" );
12477 
12478         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
12479                 { /* Don't try to fill the buffer, so this is an EOF. */
12480                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
12481                         {
12482                         /* We matched a single character, the EOB, so
12483                          * treat this as a final EOF.
12484                          */
12485                         return EOB_ACT_END_OF_FILE;
12486                         }
12487 
12488                 else
12489                         {
12490                         /* We matched some text prior to the EOB, first
12491                          * process it.
12492                          */
12493                         return EOB_ACT_LAST_MATCH;
12494                         }
12495                 }
12496 
12497         /* Try to read more data. */
12498 
12499         /* First move last chars to start of buffer. */
12500         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
12501 
12502         for ( i = 0; i < number_to_move; ++i )
12503                 *(dest++) = *(source++);
12504 
12505         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
12506                 /* don't do the read, it's not guaranteed to return an EOF,
12507                  * just force an EOF
12508                  */
12509                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
12510 
12511         else
12512                 {
12513                         int num_to_read =
12514                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
12515 
12516                 while ( num_to_read <= 0 )
12517                         { /* Not enough room in the buffer - grow it. */
12518 
12519                         YY_FATAL_ERROR(
12520 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
12521 
12522                         }
12523 
12524                 if ( num_to_read > YY_READ_BUF_SIZE )
12525                         num_to_read = YY_READ_BUF_SIZE;
12526 
12527                 /* Read in more data. */
12528                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
12529                         (yy_n_chars), num_to_read );
12530 
12531                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
12532                 }
12533 
12534         if ( (yy_n_chars) == 0 )
12535                 {
12536                 if ( number_to_move == YY_MORE_ADJ )
12537                         {
12538                         ret_val = EOB_ACT_END_OF_FILE;
12539                         codeYYrestart(codeYYin  );
12540                         }
12541 
12542                 else
12543                         {
12544                         ret_val = EOB_ACT_LAST_MATCH;
12545                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
12546                                 YY_BUFFER_EOF_PENDING;
12547                         }
12548                 }
12549 
12550         else
12551                 ret_val = EOB_ACT_CONTINUE_SCAN;
12552 
12553         (yy_n_chars) += number_to_move;
12554         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
12555         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
12556 
12557         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
12558 
12559         return ret_val;
12560 }
12561 
12562 /* yy_get_previous_state - get the state just before the EOB char was reached */
12563 
12564     static yy_state_type yy_get_previous_state (void)
12565 {
12566         register yy_state_type yy_current_state;
12567         register char *yy_cp;
12568     
12569         yy_current_state = (yy_start);
12570         yy_current_state += YY_AT_BOL();
12571 
12572         (yy_state_ptr) = (yy_state_buf);
12573         *(yy_state_ptr)++ = yy_current_state;
12574 
12575         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
12576                 {
12577                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
12578                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
12579                         {
12580                         yy_current_state = (int) yy_def[yy_current_state];
12581                         if ( yy_current_state >= 2975 )
12582                                 yy_c = yy_meta[(unsigned int) yy_c];
12583                         }
12584                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
12585                 *(yy_state_ptr)++ = yy_current_state;
12586                 }
12587 
12588         return yy_current_state;
12589 }
12590 
12591 /* yy_try_NUL_trans - try to make a transition on the NUL character
12592  *
12593  * synopsis
12594  *      next_state = yy_try_NUL_trans( current_state );
12595  */
12596     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
12597 {
12598         register int yy_is_jam;
12599     
12600         register YY_CHAR yy_c = 1;
12601         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
12602                 {
12603                 yy_current_state = (int) yy_def[yy_current_state];
12604                 if ( yy_current_state >= 2975 )
12605                         yy_c = yy_meta[(unsigned int) yy_c];
12606                 }
12607         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
12608         yy_is_jam = (yy_current_state == 2974);
12609         if ( ! yy_is_jam )
12610                 *(yy_state_ptr)++ = yy_current_state;
12611 
12612         return yy_is_jam ? 0 : yy_current_state;
12613 }
12614 
12615     static void yyunput (int c, register char * yy_bp )
12616 {
12617         register char *yy_cp;
12618     
12619     yy_cp = (yy_c_buf_p);
12620 
12621         /* undo effects of setting up codeYYtext */
12622         *yy_cp = (yy_hold_char);
12623 
12624         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
12625                 { /* need to shift things up to make room */
12626                 /* +2 for EOB chars. */
12627                 register int number_to_move = (yy_n_chars) + 2;
12628                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
12629                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
12630                 register char *source =
12631                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
12632 
12633                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
12634                         *--dest = *--source;
12635 
12636                 yy_cp += (int) (dest - source);
12637                 yy_bp += (int) (dest - source);
12638                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
12639                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
12640 
12641                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
12642                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
12643                 }
12644 
12645         *--yy_cp = (char) c;
12646 
12647         (yytext_ptr) = yy_bp;
12648         (yy_hold_char) = *yy_cp;
12649         (yy_c_buf_p) = yy_cp;
12650 }
12651 
12652 #ifndef YY_NO_INPUT
12653 #ifdef __cplusplus
12654     static int yyinput (void)
12655 #else
12656     static int input  (void)
12657 #endif
12658 
12659 {
12660         int c;
12661     
12662         *(yy_c_buf_p) = (yy_hold_char);
12663 
12664         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
12665                 {
12666                 /* yy_c_buf_p now points to the character we want to return.
12667                  * If this occurs *before* the EOB characters, then it's a
12668                  * valid NUL; if not, then we've hit the end of the buffer.
12669                  */
12670                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
12671                         /* This was really a NUL. */
12672                         *(yy_c_buf_p) = '\0';
12673 
12674                 else
12675                         { /* need more input */
12676                         int offset = (yy_c_buf_p) - (yytext_ptr);
12677                         ++(yy_c_buf_p);
12678 
12679                         switch ( yy_get_next_buffer(  ) )
12680                                 {
12681                                 case EOB_ACT_LAST_MATCH:
12682                                         /* This happens because yy_g_n_b()
12683                                          * sees that we've accumulated a
12684                                          * token and flags that we need to
12685                                          * try matching the token before
12686                                          * proceeding.  But for input(),
12687                                          * there's no matching to consider.
12688                                          * So convert the EOB_ACT_LAST_MATCH
12689                                          * to EOB_ACT_END_OF_FILE.
12690                                          */
12691 
12692                                         /* Reset buffer status. */
12693                                         codeYYrestart(codeYYin );
12694 
12695                                         /*FALLTHROUGH*/
12696 
12697                                 case EOB_ACT_END_OF_FILE:
12698                                         {
12699                                         if ( codeYYwrap( ) )
12700                                                 return 0;
12701 
12702                                         if ( ! (yy_did_buffer_switch_on_eof) )
12703                                                 YY_NEW_FILE;
12704 #ifdef __cplusplus
12705                                         return yyinput();
12706 #else
12707                                         return input();
12708 #endif
12709                                         }
12710 
12711                                 case EOB_ACT_CONTINUE_SCAN:
12712                                         (yy_c_buf_p) = (yytext_ptr) + offset;
12713                                         break;
12714                                 }
12715                         }
12716                 }
12717 
12718         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
12719         *(yy_c_buf_p) = '\0';   /* preserve codeYYtext */
12720         (yy_hold_char) = *++(yy_c_buf_p);
12721 
12722         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
12723 
12724         return c;
12725 }
12726 #endif  /* ifndef YY_NO_INPUT */
12727 
12733     void codeYYrestart  (FILE * input_file )
12734 {
12735     
12736         if ( ! YY_CURRENT_BUFFER ){
12737         codeYYensure_buffer_stack ();
12738                 YY_CURRENT_BUFFER_LVALUE =
12739             codeYY_create_buffer(codeYYin,YY_BUF_SIZE );
12740         }
12741 
12742         codeYY_init_buffer(YY_CURRENT_BUFFER,input_file );
12743         codeYY_load_buffer_state( );
12744 }
12745 
12750     void codeYY_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
12751 {
12752     
12753         /* TODO. We should be able to replace this entire function body
12754          * with
12755          *              codeYYpop_buffer_state();
12756          *              codeYYpush_buffer_state(new_buffer);
12757      */
12758         codeYYensure_buffer_stack ();
12759         if ( YY_CURRENT_BUFFER == new_buffer )
12760                 return;
12761 
12762         if ( YY_CURRENT_BUFFER )
12763                 {
12764                 /* Flush out information for old buffer. */
12765                 *(yy_c_buf_p) = (yy_hold_char);
12766                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
12767                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
12768                 }
12769 
12770         YY_CURRENT_BUFFER_LVALUE = new_buffer;
12771         codeYY_load_buffer_state( );
12772 
12773         /* We don't actually know whether we did this switch during
12774          * EOF (codeYYwrap()) processing, but the only time this flag
12775          * is looked at is after codeYYwrap() is called, so it's safe
12776          * to go ahead and always set it.
12777          */
12778         (yy_did_buffer_switch_on_eof) = 1;
12779 }
12780 
12781 static void codeYY_load_buffer_state  (void)
12782 {
12783         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
12784         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
12785         codeYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
12786         (yy_hold_char) = *(yy_c_buf_p);
12787 }
12788 
12795     YY_BUFFER_STATE codeYY_create_buffer  (FILE * file, int  size )
12796 {
12797         YY_BUFFER_STATE b;
12798     
12799         b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state )  );
12800         if ( ! b )
12801                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" );
12802 
12803         b->yy_buf_size = size;
12804 
12805         /* yy_ch_buf has to be 2 characters longer than the size given because
12806          * we need to put in 2 end-of-buffer characters.
12807          */
12808         b->yy_ch_buf = (char *) codeYYalloc(b->yy_buf_size + 2  );
12809         if ( ! b->yy_ch_buf )
12810                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" );
12811 
12812         b->yy_is_our_buffer = 1;
12813 
12814         codeYY_init_buffer(b,file );
12815 
12816         return b;
12817 }
12818 
12823     void codeYY_delete_buffer (YY_BUFFER_STATE  b )
12824 {
12825     
12826         if ( ! b )
12827                 return;
12828 
12829         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
12830                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
12831 
12832         if ( b->yy_is_our_buffer )
12833                 codeYYfree((void *) b->yy_ch_buf  );
12834 
12835         codeYYfree((void *) b  );
12836 }
12837 
12838 #ifndef __cplusplus
12839 extern int isatty (int );
12840 #endif /* __cplusplus */
12841     
12842 /* Initializes or reinitializes a buffer.
12843  * This function is sometimes called more than once on the same buffer,
12844  * such as during a codeYYrestart() or at EOF.
12845  */
12846     static void codeYY_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
12847 
12848 {
12849         int oerrno = errno;
12850     
12851         codeYY_flush_buffer(b );
12852 
12853         b->yy_input_file = file;
12854         b->yy_fill_buffer = 1;
12855 
12856     /* If b is the current buffer, then codeYY_init_buffer was _probably_
12857      * called from codeYYrestart() or through yy_get_next_buffer.
12858      * In that case, we don't want to reset the lineno or column.
12859      */
12860     if (b != YY_CURRENT_BUFFER){
12861         b->yy_bs_lineno = 1;
12862         b->yy_bs_column = 0;
12863     }
12864 
12865         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
12866     
12867         errno = oerrno;
12868 }
12869 
12874     void codeYY_flush_buffer (YY_BUFFER_STATE  b )
12875 {
12876         if ( ! b )
12877                 return;
12878 
12879         b->yy_n_chars = 0;
12880 
12881         /* We always need two end-of-buffer characters.  The first causes
12882          * a transition to the end-of-buffer state.  The second causes
12883          * a jam in that state.
12884          */
12885         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
12886         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
12887 
12888         b->yy_buf_pos = &b->yy_ch_buf[0];
12889 
12890         b->yy_at_bol = 1;
12891         b->yy_buffer_status = YY_BUFFER_NEW;
12892 
12893         if ( b == YY_CURRENT_BUFFER )
12894                 codeYY_load_buffer_state( );
12895 }
12896 
12903 void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer )
12904 {
12905         if (new_buffer == NULL)
12906                 return;
12907 
12908         codeYYensure_buffer_stack();
12909 
12910         /* This block is copied from codeYY_switch_to_buffer. */
12911         if ( YY_CURRENT_BUFFER )
12912                 {
12913                 /* Flush out information for old buffer. */
12914                 *(yy_c_buf_p) = (yy_hold_char);
12915                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
12916                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
12917                 }
12918 
12919         /* Only push if top exists. Otherwise, replace top. */
12920         if (YY_CURRENT_BUFFER)
12921                 (yy_buffer_stack_top)++;
12922         YY_CURRENT_BUFFER_LVALUE = new_buffer;
12923 
12924         /* copied from codeYY_switch_to_buffer. */
12925         codeYY_load_buffer_state( );
12926         (yy_did_buffer_switch_on_eof) = 1;
12927 }
12928 
12933 void codeYYpop_buffer_state (void)
12934 {
12935         if (!YY_CURRENT_BUFFER)
12936                 return;
12937 
12938         codeYY_delete_buffer(YY_CURRENT_BUFFER );
12939         YY_CURRENT_BUFFER_LVALUE = NULL;
12940         if ((yy_buffer_stack_top) > 0)
12941                 --(yy_buffer_stack_top);
12942 
12943         if (YY_CURRENT_BUFFER) {
12944                 codeYY_load_buffer_state( );
12945                 (yy_did_buffer_switch_on_eof) = 1;
12946         }
12947 }
12948 
12949 /* Allocates the stack if it does not exist.
12950  *  Guarantees space for at least one push.
12951  */
12952 static void codeYYensure_buffer_stack (void)
12953 {
12954         int num_to_alloc;
12955     
12956         if (!(yy_buffer_stack)) {
12957 
12958                 /* First allocation is just for 2 elements, since we don't know if this
12959                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
12960                  * immediate realloc on the next call.
12961          */
12962                 num_to_alloc = 1;
12963                 (yy_buffer_stack) = (struct yy_buffer_state**)codeYYalloc
12964                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
12965                                                                 );
12966                 
12967                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
12968                                 
12969                 (yy_buffer_stack_max) = num_to_alloc;
12970                 (yy_buffer_stack_top) = 0;
12971                 return;
12972         }
12973 
12974         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
12975 
12976                 /* Increase the buffer to prepare for a possible push. */
12977                 int grow_size = 8 /* arbitrary grow size */;
12978 
12979                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
12980                 (yy_buffer_stack) = (struct yy_buffer_state**)codeYYrealloc
12981                                                                 ((yy_buffer_stack),
12982                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
12983                                                                 );
12984 
12985                 /* zero only the new slots.*/
12986                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
12987                 (yy_buffer_stack_max) = num_to_alloc;
12988         }
12989 }
12990 
12997 YY_BUFFER_STATE codeYY_scan_buffer  (char * base, yy_size_t  size )
12998 {
12999         YY_BUFFER_STATE b;
13000     
13001         if ( size < 2 ||
13002              base[size-2] != YY_END_OF_BUFFER_CHAR ||
13003              base[size-1] != YY_END_OF_BUFFER_CHAR )
13004                 /* They forgot to leave room for the EOB's. */
13005                 return 0;
13006 
13007         b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state )  );
13008         if ( ! b )
13009                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_buffer()" );
13010 
13011         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
13012         b->yy_buf_pos = b->yy_ch_buf = base;
13013         b->yy_is_our_buffer = 0;
13014         b->yy_input_file = 0;
13015         b->yy_n_chars = b->yy_buf_size;
13016         b->yy_is_interactive = 0;
13017         b->yy_at_bol = 1;
13018         b->yy_fill_buffer = 0;
13019         b->yy_buffer_status = YY_BUFFER_NEW;
13020 
13021         codeYY_switch_to_buffer(b  );
13022 
13023         return b;
13024 }
13025 
13034 YY_BUFFER_STATE codeYY_scan_string (yyconst char * yystr )
13035 {
13036     
13037         return codeYY_scan_bytes(yystr,strlen(yystr) );
13038 }
13039 
13047 YY_BUFFER_STATE codeYY_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
13048 {
13049         YY_BUFFER_STATE b;
13050         char *buf;
13051         yy_size_t n;
13052         int i;
13053     
13054         /* Get memory for full buffer, including space for trailing EOB's. */
13055         n = _yybytes_len + 2;
13056         buf = (char *) codeYYalloc(n  );
13057         if ( ! buf )
13058                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_bytes()" );
13059 
13060         for ( i = 0; i < _yybytes_len; ++i )
13061                 buf[i] = yybytes[i];
13062 
13063         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
13064 
13065         b = codeYY_scan_buffer(buf,n );
13066         if ( ! b )
13067                 YY_FATAL_ERROR( "bad buffer in codeYY_scan_bytes()" );
13068 
13069         /* It's okay to grow etc. this buffer, and we should throw it
13070          * away when we're done.
13071          */
13072         b->yy_is_our_buffer = 1;
13073 
13074         return b;
13075 }
13076 
13077 #ifndef YY_EXIT_FAILURE
13078 #define YY_EXIT_FAILURE 2
13079 #endif
13080 
13081 static void yy_fatal_error (yyconst char* msg )
13082 {
13083         (void) fprintf( stderr, "%s\n", msg );
13084         exit( YY_EXIT_FAILURE );
13085 }
13086 
13087 /* Redefine yyless() so it works in section 3 code. */
13088 
13089 #undef yyless
13090 #define yyless(n) \
13091         do \
13092                 { \
13093                 /* Undo effects of setting up codeYYtext. */ \
13094         int yyless_macro_arg = (n); \
13095         YY_LESS_LINENO(yyless_macro_arg);\
13096                 codeYYtext[codeYYleng] = (yy_hold_char); \
13097                 (yy_c_buf_p) = codeYYtext + yyless_macro_arg; \
13098                 (yy_hold_char) = *(yy_c_buf_p); \
13099                 *(yy_c_buf_p) = '\0'; \
13100                 codeYYleng = yyless_macro_arg; \
13101                 } \
13102         while ( 0 )
13103 
13104 /* Accessor  methods (get/set functions) to struct members. */
13105 
13109 int codeYYget_lineno  (void)
13110 {
13111         
13112     return codeYYlineno;
13113 }
13114 
13118 FILE *codeYYget_in  (void)
13119 {
13120         return codeYYin;
13121 }
13122 
13126 FILE *codeYYget_out  (void)
13127 {
13128         return codeYYout;
13129 }
13130 
13134 int codeYYget_leng  (void)
13135 {
13136         return codeYYleng;
13137 }
13138 
13143 char *codeYYget_text  (void)
13144 {
13145         return codeYYtext;
13146 }
13147 
13152 void codeYYset_lineno (int  line_number )
13153 {
13154     
13155     codeYYlineno = line_number;
13156 }
13157 
13164 void codeYYset_in (FILE *  in_str )
13165 {
13166         codeYYin = in_str ;
13167 }
13168 
13169 void codeYYset_out (FILE *  out_str )
13170 {
13171         codeYYout = out_str ;
13172 }
13173 
13174 int codeYYget_debug  (void)
13175 {
13176         return codeYY_flex_debug;
13177 }
13178 
13179 void codeYYset_debug (int  bdebug )
13180 {
13181         codeYY_flex_debug = bdebug ;
13182 }
13183 
13184 static int yy_init_globals (void)
13185 {
13186         /* Initialization is the same as for the non-reentrant scanner.
13187      * This function is called from codeYYlex_destroy(), so don't allocate here.
13188      */
13189 
13190     (yy_buffer_stack) = 0;
13191     (yy_buffer_stack_top) = 0;
13192     (yy_buffer_stack_max) = 0;
13193     (yy_c_buf_p) = (char *) 0;
13194     (yy_init) = 0;
13195     (yy_start) = 0;
13196 
13197     (yy_state_buf) = 0;
13198     (yy_state_ptr) = 0;
13199     (yy_full_match) = 0;
13200     (yy_lp) = 0;
13201 
13202 /* Defined in main.c */
13203 #ifdef YY_STDINIT
13204     codeYYin = stdin;
13205     codeYYout = stdout;
13206 #else
13207     codeYYin = (FILE *) 0;
13208     codeYYout = (FILE *) 0;
13209 #endif
13210 
13211     /* For future reference: Set errno on error, since we are called by
13212      * codeYYlex_init()
13213      */
13214     return 0;
13215 }
13216 
13217 /* codeYYlex_destroy is for both reentrant and non-reentrant scanners. */
13218 int codeYYlex_destroy  (void)
13219 {
13220     
13221     /* Pop the buffer stack, destroying each element. */
13222         while(YY_CURRENT_BUFFER){
13223                 codeYY_delete_buffer(YY_CURRENT_BUFFER  );
13224                 YY_CURRENT_BUFFER_LVALUE = NULL;
13225                 codeYYpop_buffer_state();
13226         }
13227 
13228         /* Destroy the stack itself. */
13229         codeYYfree((yy_buffer_stack) );
13230         (yy_buffer_stack) = NULL;
13231 
13232     codeYYfree ( (yy_state_buf) );
13233     (yy_state_buf)  = NULL;
13234 
13235     /* Reset the globals. This is important in a non-reentrant scanner so the next time
13236      * codeYYlex() is called, initialization will occur. */
13237     yy_init_globals( );
13238 
13239     return 0;
13240 }
13241 
13242 /*
13243  * Internal utility routines.
13244  */
13245 
13246 #ifndef yytext_ptr
13247 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
13248 {
13249         register int i;
13250         for ( i = 0; i < n; ++i )
13251                 s1[i] = s2[i];
13252 }
13253 #endif
13254 
13255 #ifdef YY_NEED_STRLEN
13256 static int yy_flex_strlen (yyconst char * s )
13257 {
13258         register int n;
13259         for ( n = 0; s[n]; ++n )
13260                 ;
13261 
13262         return n;
13263 }
13264 #endif
13265 
13266 void *codeYYalloc (yy_size_t  size )
13267 {
13268         return (void *) malloc( size );
13269 }
13270 
13271 void *codeYYrealloc  (void * ptr, yy_size_t  size )
13272 {
13273         /* The cast to (char *) in the following accommodates both
13274          * implementations that use char* generic pointers, and those
13275          * that use void* generic pointers.  It works with the latter
13276          * because both ANSI C and C++ allow castless assignment from
13277          * any pointer type to void*, and deal with argument conversions
13278          * as though doing an assignment.
13279          */
13280         return (void *) realloc( (char *) ptr, size );
13281 }
13282 
13283 void codeYYfree (void * ptr )
13284 {
13285         free( (char *) ptr );   /* see codeYYrealloc() for (char *) cast */
13286 }
13287 
13288 #define YYTABLES_NAME "yytables"
13289 
13290 #line 3223 "code.l"
13291 
13292 
13293 
13294 /*@ ----------------------------------------------------------------------------
13295  */
13296 
13297 static void saveObjCContext()
13298 {
13299   if (g_currentCtx)
13300   {
13301     g_currentCtx->format+=QCString().sprintf("$c%d",g_currentCtxId);
13302     if (g_braceCount==0 && YY_START==ObjCCall)
13303     {
13304       g_currentCtx->objectTypeOrName=g_currentCtx->format.mid(1);
13305       //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data());
13306     }
13307     g_contextStack.push(g_currentCtx);
13308   }
13309   else
13310   {
13311     //printf("Trying to save NULL context!\n");
13312   }
13313   ObjCCallCtx *newCtx = new ObjCCallCtx;
13314   newCtx->id = g_currentCtxId;
13315   newCtx->lexState = YY_START;
13316   newCtx->braceCount = g_braceCount;
13317   newCtx->objectType = 0;
13318   newCtx->objectVar = 0;
13319   newCtx->method = 0;
13320   //printf("save state=%d\n",YY_START);
13321   g_contextDict.insert(g_currentCtxId,newCtx);
13322   g_currentCtx = newCtx;
13323   g_braceCount = 0;
13324   g_currentCtxId++;
13325 }
13326 
13327 static void restoreObjCContext()
13328 {
13329   //printf("restore state=%d->%d\n",YY_START,g_currentCtx->lexState);
13330   BEGIN(g_currentCtx->lexState);
13331   g_braceCount = g_currentCtx->braceCount;
13332   if (!g_contextStack.isEmpty())
13333   {
13334     g_currentCtx = g_contextStack.pop();
13335   }
13336   else
13337   {
13338     g_currentCtx = 0;
13339     //printf("Trying to pop context while g_contextStack is empty!\n");
13340   }
13341 }
13342 
13343 void resetCCodeParserState()
13344 {
13345   //printf("***initParseCodeContext()\n");
13346   g_theVarContext.clear();
13347   g_classScopeLengthStack.setAutoDelete(TRUE);
13348   g_classScopeLengthStack.clear();
13349   delete g_codeClassSDict;
13350   g_codeClassSDict = new ClassSDict(17);
13351   g_codeClassSDict->setAutoDelete(TRUE);
13352   g_codeClassSDict->clear();
13353   g_curClassBases.clear();
13354   g_anchorCount = 0;
13355 }
13356 
13357 void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s, 
13358                   bool exBlock, const char *exName,FileDef *fd,
13359                   int startLine,int endLine,bool inlineFragment,
13360                   MemberDef *memberDef)
13361 {
13362   //printf("***parseCode() exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd);
13363   if (s.isEmpty()) return;
13364   if (g_codeClassSDict==0)
13365   {
13366     resetCCodeParserState();
13367   }
13368   g_code = &od;
13369   g_inputString   = s;
13370   g_inputPosition = 0;
13371   g_currentFontClass = 0;
13372   g_needsTermination = FALSE;
13373   g_inFunctionTryBlock = FALSE;
13374   if (endLine!=-1)
13375     g_inputLines  = endLine+1;
13376   else
13377     g_inputLines  = countLines();
13378 
13379   if (startLine!=-1)
13380     g_yyLineNr    = startLine;
13381   else
13382     g_yyLineNr    = 1;
13383 
13384   g_curlyCount    = 0;
13385   g_bodyCurlyCount    = 0;
13386   g_bracketCount  = 0;
13387   g_sharpCount    = 0;
13388   g_insideTemplate = FALSE;
13389   g_theCallContext.clear();
13390   g_scopeStack.clear();
13391   g_classScope    = className;
13392   g_exampleBlock  = exBlock; 
13393   g_exampleName   = exName;
13394   g_sourceFileDef = fd;
13395   g_lineNumbers   = fd!=0;
13396   if (exBlock && fd==0)
13397   {
13398     // create a dummy filedef for the example
13399     g_sourceFileDef = new FileDef("",exName);
13400   }
13401   if (g_sourceFileDef) 
13402   {
13403     setCurrentDoc(g_sourceFileDef->name(),g_sourceFileDef->getSourceFileBase());
13404     g_insideObjC = g_sourceFileDef->name().lower().right(2)==".m" || 
13405                    g_sourceFileDef->name().lower().right(3)==".mm"; 
13406   }
13407   g_currentDefinition = 0;
13408   g_currentMemberDef = 0;
13409   g_searchingForBody = exBlock;
13410   g_insideBody = FALSE;
13411   g_bracketCount = 0;
13412   if (!g_exampleName.isEmpty())
13413   {
13414     g_exampleFile = convertNameToFile(g_exampleName+"-example");
13415   }
13416   g_includeCodeFragment = inlineFragment;
13417   //printf("** exBlock=%d exName=%s include=%d\n",exBlock,exName,inlineFragment);
13418   startCodeLine();
13419   g_type.resize(0);
13420   g_name.resize(0);
13421   g_args.resize(0);
13422   g_parmName.resize(0);
13423   g_parmType.resize(0);
13424   if (memberDef) setParameterList(memberDef);
13425   codeYYrestart( codeYYin );
13426   BEGIN( Body );
13427   codeYYlex();
13428   g_lexInit=TRUE;
13429   if (g_needsTermination)
13430   {
13431     endFontClass();
13432     g_code->endCodeLine();
13433   }
13434   if (exBlock && fd==0)
13435   {
13436     // delete the temporary file definition used for this example
13437     delete g_sourceFileDef;
13438     g_sourceFileDef=0;
13439   }
13440   return;
13441 }
13442 
13443 void codeFreeScanner()
13444 {
13445 #if defined(YY_FLEX_SUBMINOR_VERSION) 
13446   if (g_lexInit)
13447   {
13448     codeYYlex_destroy();
13449   }
13450 #endif
13451 }
13452 
13453 
13454 
13455 #if !defined(YY_FLEX_SUBMINOR_VERSION) 
13456 extern "C" { // some bogus code to keep the compiler happy
13457   void codeYYdummy() { yy_flex_realloc(0,0); } 
13458 }
13459 #elif YY_FLEX_SUBMINOR_VERSION<33
13460 #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!"
13461 #endif
13462 
13463 



Generated on Mon Mar 31 10:58:33 2008 by  doxygen 1.5.1