PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LTP GCOV extension - code coverage report
Current view: directory - var/php_gcov/PHP_5_2/Zend - zend_language_scanner.c
Test: PHP Code Coverage
Date: 2009-11-19 Instrumented lines: 302
Code covered: 73.5 % Executed lines: 222
Legend: not executed executed

       1                 : #define yy_create_buffer zend_create_buffer
       2                 : #define yy_delete_buffer zend_delete_buffer
       3                 : #define yy_scan_buffer zend_scan_buffer
       4                 : #define yy_scan_string zend_scan_string
       5                 : #define yy_scan_bytes zend_scan_bytes
       6                 : #define yy_flex_debug zend_flex_debug
       7                 : #define yy_init_buffer zend_init_buffer
       8                 : #define yy_flush_buffer zend_flush_buffer
       9                 : #define yy_load_buffer_state zend_load_buffer_state
      10                 : #define yy_switch_to_buffer zend_switch_to_buffer
      11                 : #define yyin zendin
      12                 : #define yyleng zendleng
      13                 : #define yylex zendlex
      14                 : #define yyout zendout
      15                 : #define yyrestart zendrestart
      16                 : #define yytext zendtext
      17                 : 
      18                 : #line 19 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.c"
      19                 : /* A Lexical scanner generated by flex */
      20                 : 
      21                 : /* Scanner skeleton version:
      22                 :  * $Header$
      23                 :  * vim:ft=lex:
      24                 :  */
      25                 : 
      26                 : #define FLEX_SCANNER
      27                 : #define YY_FLEX_MAJOR_VERSION 2
      28                 : #define YY_FLEX_MINOR_VERSION 5
      29                 : 
      30                 : #include <stdio.h>
      31                 : 
      32                 : 
      33                 : /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
      34                 : #ifdef c_plusplus
      35                 : #ifndef __cplusplus
      36                 : #define __cplusplus
      37                 : #endif
      38                 : #endif
      39                 : 
      40                 : 
      41                 : #ifdef __cplusplus
      42                 : 
      43                 : #include <stdlib.h>
      44                 : #if HAVE_UNISTD_H
      45                 : #include <unistd.h>
      46                 : #endif
      47                 : 
      48                 : /* Use prototypes in function declarations. */
      49                 : #define YY_USE_PROTOS
      50                 : 
      51                 : /* The "const" storage-class-modifier is valid. */
      52                 : #define YY_USE_CONST
      53                 : 
      54                 : #else   /* ! __cplusplus */
      55                 : 
      56                 : #if __STDC__
      57                 : 
      58                 : #define YY_USE_PROTOS
      59                 : #define YY_USE_CONST
      60                 : 
      61                 : #endif  /* __STDC__ */
      62                 : #endif  /* ! __cplusplus */
      63                 : 
      64                 : #ifdef __TURBOC__
      65                 :  #pragma warn -rch
      66                 :  #pragma warn -use
      67                 : #include <io.h>
      68                 : #include <stdlib.h>
      69                 : #define YY_USE_CONST
      70                 : #define YY_USE_PROTOS
      71                 : #endif
      72                 : 
      73                 : #ifdef YY_USE_CONST
      74                 : #define yyconst const
      75                 : #else
      76                 : #define yyconst
      77                 : #endif
      78                 : 
      79                 : #undef YY_USE_PROTOS
      80                 : #define YY_USE_PROTOS
      81                 : 
      82                 : #ifdef YY_USE_PROTOS
      83                 : #define YY_PROTO(proto) proto
      84                 : #else
      85                 : #define YY_PROTO(proto) ()
      86                 : #endif
      87                 : 
      88                 : /* Returned upon end-of-file. */
      89                 : #define YY_NULL 0
      90                 : 
      91                 : /* Promotes a possibly negative, possibly signed char to an unsigned
      92                 :  * integer for use as an array index.  If the signed char is negative,
      93                 :  * we want to instead treat it as an 8-bit unsigned char, hence the
      94                 :  * double cast.
      95                 :  */
      96                 : #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
      97                 : 
      98                 : /* Enter a start condition.  This macro really ought to take a parameter,
      99                 :  * but we do it the disgusting crufty way forced on us by the ()-less
     100                 :  * definition of BEGIN.
     101                 :  */
     102                 : #define BEGIN yy_start = 1 + 2 *
     103                 : 
     104                 : /* Translate the current start state into a value that can be later handed
     105                 :  * to BEGIN to return to the state.  The YYSTATE alias is for lex
     106                 :  * compatibility.
     107                 :  */
     108                 : #define YY_START ((yy_start - 1) / 2)
     109                 : #define YYSTATE YY_START
     110                 : 
     111                 : /* Action number for EOF rule of a given start state. */
     112                 : #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     113                 : 
     114                 : /* Special action meaning "start processing a new file". */
     115                 : #define YY_NEW_FILE yyrestart( SCNG(yy_in) TSRMLS_CC )
     116                 : 
     117                 : #define YY_END_OF_BUFFER_CHAR 0
     118                 : 
     119                 : /* Size of default input buffer. */
     120                 : #define YY_BUF_SIZE 16384
     121                 : 
     122                 : typedef struct yy_buffer_state *YY_BUFFER_STATE;
     123                 : 
     124                 : extern int yyleng;
     125                 : 
     126                 : 
     127                 : #define EOB_ACT_CONTINUE_SCAN 0
     128                 : #define EOB_ACT_END_OF_FILE 1
     129                 : #define EOB_ACT_LAST_MATCH 2
     130                 : 
     131                 : /* The funky do-while in the following #define is used to turn the definition
     132                 :  * int a single C statement (which needs a semi-colon terminator).  This
     133                 :  * avoids problems with code like:
     134                 :  *
     135                 :  *      if ( condition_holds )
     136                 :  *              yyless( 5 );
     137                 :  *      else
     138                 :  *              do_something_else();
     139                 :  *
     140                 :  * Prior to using the do-while the compiler would get upset at the
     141                 :  * "else" because it interpreted the "if" statement as being all
     142                 :  * done when it reached the ';' after the yyless() call.
     143                 :  */
     144                 : 
     145                 : /* Return all but the first 'n' matched characters back to the input stream. */
     146                 : 
     147                 : #define yyless(n) \
     148                 :         do \
     149                 :                 { \
     150                 :                 /* Undo effects of setting up yytext. */ \
     151                 :                 *yy_cp = yy_hold_char; \
     152                 :                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
     153                 :                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
     154                 :                 } \
     155                 :         while ( 0 )
     156                 : 
     157                 : #define unput(c) yyunput( c, yytext_ptr TSRMLS_CC )
     158                 : 
     159                 : /* The following is because we cannot portably get our hands on size_t
     160                 :  * (without autoconf's help, which isn't available because we want
     161                 :  * flex-generated scanners to compile on their own).
     162                 :  */
     163                 : typedef unsigned int yy_size_t;
     164                 : 
     165                 : 
     166                 : struct yy_buffer_state
     167                 :         {
     168                 :         struct _zend_file_handle *yy_input_file;
     169                 : 
     170                 :         char *yy_ch_buf;                /* input buffer */
     171                 :         char *yy_buf_pos;               /* current position in input buffer */
     172                 : 
     173                 :         /* Size of input buffer in bytes, not including room for EOB
     174                 :          * characters.
     175                 :          */
     176                 :         yy_size_t yy_buf_size;
     177                 : 
     178                 :         /* Number of characters read into yy_ch_buf, not including EOB
     179                 :          * characters.
     180                 :          */
     181                 :         int yy_n_chars;
     182                 : 
     183                 :         /* Whether we "own" the buffer - i.e., we know we created it,
     184                 :          * and can realloc() it to grow it, and should free() it to
     185                 :          * delete it.
     186                 :          */
     187                 :         int yy_is_our_buffer;
     188                 : 
     189                 :         /* Whether this is an "interactive" input source; if so, and
     190                 :          * if we're using stdio for input, then we want to use getc()
     191                 :          * instead of fread(), to make sure we stop fetching input after
     192                 :          * each newline.
     193                 :          */
     194                 :         int yy_is_interactive;
     195                 : 
     196                 :         /* Whether we're considered to be at the beginning of a line.
     197                 :          * If so, '^' rules will be active on the next match, otherwise
     198                 :          * not.
     199                 :          */
     200                 :         int yy_at_bol;
     201                 : 
     202                 :         /* Whether to try to fill the input buffer when we reach the
     203                 :          * end of it.
     204                 :          */
     205                 :         int yy_fill_buffer;
     206                 : 
     207                 :         int yy_buffer_status;
     208                 : #define YY_BUFFER_NEW 0
     209                 : #define YY_BUFFER_NORMAL 1
     210                 :         /* When an EOF's been seen but there's still some text to process
     211                 :          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
     212                 :          * shouldn't try reading from the input source any more.  We might
     213                 :          * still have a bunch of tokens to match, though, because of
     214                 :          * possible backing-up.
     215                 :          *
     216                 :          * When we actually see the EOF, we change the status to "new"
     217                 :          * (via yyrestart()), so that the user can continue scanning by
     218                 :          * just pointing yyin at a new input file.
     219                 :          */
     220                 : #define YY_BUFFER_EOF_PENDING 2
     221                 :         };
     222                 : 
     223                 : #define yy_current_buffer SCNG(current_buffer)
     224                 : #define yy_hold_char SCNG(_yy_hold_char)
     225                 : 
     226                 : /* We provide macros for accessing buffer states in case in the
     227                 :  * future we want to put the buffer states in a more general
     228                 :  * "scanner state".
     229                 :  */
     230                 : #define YY_CURRENT_BUFFER yy_current_buffer
     231                 : 
     232                 : 
     233                 : /* yy_hold_char holds the character lost when yytext is formed. */
     234                 : 
     235                 : #if 0
     236                 : static char yy_hold_char;
     237                 : 
     238                 : static int yy_n_chars;          /* number of characters read into yy_ch_buf */
     239                 : #endif
     240                 : 
     241                 : /* Points to current character in buffer. */
     242                 : #define yy_c_buf_p SCNG(c_buf_p)
     243                 : #define yy_init SCNG(init)
     244                 : #define yy_start SCNG(start)
     245                 : 
     246                 : #ifdef ZTS
     247                 : #define TSRMLS_D        void ***tsrm_ls
     248                 : #define TSRMLS_DC       , TSRMLS_D
     249                 : #define TSRMLS_C        tsrm_ls
     250                 : #define TSRMLS_CC       , TSRMLS_C
     251                 : #else
     252                 : #define TSRMLS_D
     253                 : #define TSRMLS_DC
     254                 : #define TSRMLS_C
     255                 : #define TSRMLS_CC
     256                 : #endif
     257                 : 
     258                 : /* Flag which is used to allow yywrap()'s to do buffer switches
     259                 :  * instead of setting up a fresh yyin.  A bit of a hack ...
     260                 :  */
     261                 : /* static int yy_did_buffer_switch_on_eof; */
     262                 : #define yy_did_buffer_switch_on_eof SCNG(_yy_did_buffer_switch_on_eof)
     263                 : 
     264                 : void yyrestart YY_PROTO(( struct _zend_file_handle *input_file TSRMLS_DC ));
     265                 : 
     266                 : void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer TSRMLS_DC ));
     267                 : void yy_load_buffer_state YY_PROTO(( TSRMLS_D ));
     268                 : YY_BUFFER_STATE yy_create_buffer YY_PROTO(( struct _zend_file_handle *file, int size TSRMLS_DC ));
     269                 : void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b TSRMLS_DC ));
     270                 : void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, struct _zend_file_handle *file TSRMLS_DC ));
     271                 : void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b TSRMLS_DC ));
     272                 : #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer TSRMLS_CC )
     273                 : 
     274                 : YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size TSRMLS_DC ));
     275                 : YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str TSRMLS_DC ));
     276                 : YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len TSRMLS_DC ));
     277                 : 
     278                 : 
     279                 : static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
     280                 : static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
     281                 : static void yy_flex_free YY_PROTO(( void * ));
     282                 : 
     283                 : #define yy_new_buffer yy_create_buffer
     284                 : 
     285                 : #define yy_set_interactive(is_interactive) \
     286                 :         { \
     287                 :         if ( ! yy_current_buffer ) \
     288                 :                 yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC ); \
     289                 :         yy_current_buffer->yy_is_interactive = is_interactive; \
     290                 :         }
     291                 : 
     292                 : #define yy_set_bol(at_bol) \
     293                 :         { \
     294                 :         if ( ! yy_current_buffer ) \
     295                 :                 yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC ); \
     296                 :         yy_current_buffer->yy_at_bol = at_bol; \
     297                 :         }
     298                 : 
     299                 : #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
     300                 : 
     301                 : 
     302                 : #define yywrap() 1
     303                 : #define YY_SKIP_YYWRAP
     304                 : typedef unsigned char YY_CHAR;
     305                 : FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
     306                 : typedef int yy_state_type;
     307                 : extern char *yytext;
     308                 : #define yytext_ptr yytext
     309                 : #undef yyleng
     310                 : #define yyleng SCNG(yy_leng)
     311                 : #undef yytext
     312                 : #define yytext SCNG(yy_text)
     313                 : #undef yytext_ptr
     314                 : #define yytext_ptr SCNG(yy_text)
     315                 : #undef yyin
     316                 : #define yyin SCNG(yy_in)
     317                 : #undef yyout
     318                 : #define yyout SCNG(yy_out)
     319                 : #undef yy_last_accepting_state
     320                 : #define yy_last_accepting_state SCNG(_yy_last_accepting_state)
     321                 : #undef yy_last_accepting_cpos
     322                 : #define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
     323                 : #undef yy_more_flag
     324                 : #define yy_more_flag SCNG(_yy_more_flag)
     325                 : #undef yy_more_len
     326                 : #define yy_more_len SCNG(_yy_more_len)
     327                 : 
     328                 : 
     329                 : static yy_state_type yy_get_previous_state YY_PROTO(( TSRMLS_D ));
     330                 : static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state TSRMLS_DC ));
     331                 : static int yy_get_next_buffer YY_PROTO(( TSRMLS_D ));
     332                 : static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
     333                 : 
     334                 : #undef TSRMLS_D
     335                 : #undef TSRMLS_DC
     336                 : #undef TSRMLS_C
     337                 : #undef TSRMLS_CC
     338                 : 
     339                 : /* Done after the current pattern has been matched and before the
     340                 :  * corresponding action - sets up yytext.
     341                 :  */
     342                 : #define YY_DO_BEFORE_ACTION \
     343                 :         yytext_ptr = yy_bp; \
     344                 :         yytext_ptr -= yy_more_len; \
     345                 :         yyleng = (int) (yy_cp - yytext_ptr); \
     346                 :         yy_hold_char = *yy_cp; \
     347                 :         *yy_cp = '\0'; \
     348                 :         yy_c_buf_p = yy_cp;
     349                 : 
     350                 : #undef yyleng
     351                 : #undef yytext
     352                 : #undef yytext_ptr
     353                 : #undef yyin
     354                 : #undef yyout
     355                 : #undef yy_last_accepting_state
     356                 : #undef yy_last_accepting_cpos
     357                 : #undef yy_more_flag
     358                 : #undef yy_more_len
     359                 : 
     360                 : 
     361                 : #define YY_NUM_RULES 159
     362                 : #define YY_END_OF_BUFFER 160
     363                 : static yyconst short int yy_accept[1493] =
     364                 :     {   0,
     365                 :         0,    0,    0,    0,    0,    0,    0,    0,  154,  154,
     366                 :         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     367                 :         0,    0,    0,    0,    0,    0,  160,  114,  114,  158,
     368                 :       126,   98,  142,  127,   98,   98,   98,  158,   98,   98,
     369                 :        98,   98,   98,   98,   98,  104,  104,   98,   98,   98,
     370                 :        98,   98,   98,  125,  144,  125,  125,  125,  125,  125,
     371                 :       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
     372                 :       125,  125,  125,  125,  125,   99,   98,  101,  150,  156,
     373                 :       159,  159,  159,  152,  159,  159,  157,  159,  154,  154,
     374                 :       154,  159,  159,  154,  159,  145,  145,  148,   39,   39,
     375                 : 
     376                 :        38,  103,  102,  124,  123,  123,  106,  106,  122,  134,
     377                 :       137,  137,  129,  129,  129,  128,  128,  128,  114,    0,
     378                 :       114,  117,  115,  114,  126,   77,    0,  140,    0,    0,
     379                 :         0,  119,   85,  139,   92,   88,    0,  141,    0,    0,
     380                 :         0,    0,    0,    0,    0,    0,    0,    0,    0,   82,
     381                 :        72,   80,   73,   81,   36,  108,   84,  133,  127,   83,
     382                 :       108,  104,    0,    0,   40,    0,   96,   78,   77,   76,
     383                 :        69,   79,   97,  138,   90,  125,  125,  125,  125,  125,
     384                 :        23,  142,    0,    0,  125,  125,  125,  125,  125,  125,
     385                 :        15,  125,  125,  125,  125,  125,  125,  125,  125,  125,
     386                 : 
     387                 :       125,    9,  125,  125,  125,  125,  125,   93,  125,  125,
     388                 :       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
     389                 :        89,   91,  150,    0,    0,    0,  150,  151,  151,    0,
     390                 :       119,  100,  149,  151,  152,    0,    0,    0,  152,  153,
     391                 :         0,  153,  153,  154,  154,  154,    0,    0,  154,    0,
     392                 :       154,    0,    0,  154,    0,  154,  154,  155,    0,    0,
     393                 :       154,  154,    0,  154,    0,  155,  146,    0,    0,   37,
     394                 :        38,  102,  107,    0,  106,  134,  136,  135,  129,  129,
     395                 :       130,  131,  114,    0,  116,    0,    0,   75,    0,    0,
     396                 :       119,  139,  139,    0,    0,    0,    0,    0,    0,    0,
     397                 : 
     398                 :         0,    0,    0,    0,  108,    0,  108,  105,    0,    0,
     399                 :        86,   74,   87,  138,  138,  125,  125,  125,  125,  125,
     400                 :       125,   94,  125,    0,  125,  125,  125,  125,  125,  125,
     401                 :       125,  125,    2,  125,  125,  125,  125,  125,  125,  125,
     402                 :       125,   16,  125,  125,  125,  125,  125,  125,  125,  125,
     403                 :        41,  125,  125,  125,  125,  125,  125,  125,  125,    6,
     404                 :       125,   57,   43,  125,   95,  151,    0,  119,  121,  151,
     405                 :       153,  153,  154,  155,    0,  154,  147,    0,  154,  154,
     406                 :         0,    0,  155,  155,  155,    0,  155,  155,  107,  114,
     407                 :         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     408                 : 
     409                 :         0,    0,    0,  132,    0,    0,    0,  125,  125,  125,
     410                 :       125,  125,  125,  125,  125,  125,   26,  125,  125,  125,
     411                 :       125,  125,  125,  125,   30,   12,  125,  125,  125,  125,
     412                 :       125,  125,   52,    1,  125,  125,  125,  125,  125,  125,
     413                 :       125,  125,  125,  125,   70,  125,  125,  125,  125,  125,
     414                 :       125,  125,  125,  125,  125,  125,    0,  155,  154,  155,
     415                 :         0,  154,  155,  155,  155,  155,  114,    0,    0,    0,
     416                 :         0,    0,    0,    0,    0,    0,   44,    0,    0,    0,
     417                 :         0,    0,    0,  143,  143,    0,  125,  125,  125,  125,
     418                 :       125,  125,  125,   71,   28,    7,   32,   42,    4,  125,
     419                 : 
     420                 :       125,  125,  125,   60,  125,  125,   11,  125,  125,  125,
     421                 :        64,  125,  125,  125,  125,  125,  125,  125,   59,   31,
     422                 :       125,  125,  125,  125,  125,  125,  125,    8,   68,   13,
     423                 :       120,  155,  155,  114,    0,  118,  118,    0,    0,    0,
     424                 :         0,   50,    0,    0,    0,    0,    0,   45,    0,    0,
     425                 :         0,  125,  125,  125,  125,  125,  125,  125,  125,  125,
     426                 :       125,   10,  125,   17,  125,  125,  125,  125,  125,   58,
     427                 :       125,  125,  125,  125,  125,  125,   67,  125,    5,   62,
     428                 :        24,  114,    0,    0,    0,   48,    0,    0,    0,    0,
     429                 :         0,    0,   51,    0,  125,  125,  125,  125,  125,  125,
     430                 : 
     431                 :       125,  125,   20,   27,  125,  125,  125,  125,   34,   18,
     432                 :       125,  125,   53,  125,  125,   65,  125,   55,  114,    0,
     433                 :         0,    0,   47,    0,    0,    0,   49,    0,   46,    0,
     434                 :       125,  113,  125,  125,  112,  125,   63,   29,  125,  125,
     435                 :       125,   14,    3,  125,  125,  125,  125,  125,  125,  114,
     436                 :         0,    0,    0,  109,  125,  125,  125,  125,  125,   25,
     437                 :       125,  125,  125,   33,   66,  125,  114,    0,    0,  125,
     438                 :       125,  111,   21,   19,   35,  125,   22,  125,  114,    0,
     439                 :         0,  125,  125,  125,  125,  114,    0,    0,  110,  125,
     440                 :        54,   56,  114,    0,    0,  125,  114,    0,    0,  125,
     441                 : 
     442                 :       114,    0,    0,   61,  114,    0,    0,  114,    0,    0,
     443                 :         0,  114,    0,    0,    0,    0,    0,  114,    0,    0,
     444                 :         0,    0,  114,    0,    0,    0,    0,  114,    0,    0,
     445                 :         0,    0,  115,  114,    0,  114,    0,  114,    0,  114,
     446                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     447                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     448                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     449                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     450                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     451                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     452                 : 
     453                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     454                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     455                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     456                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     457                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     458                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     459                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     460                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     461                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     462                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     463                 : 
     464                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     465                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     466                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     467                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     468                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     469                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     470                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     471                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     472                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     473                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     474                 : 
     475                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     476                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     477                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     478                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     479                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     480                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     481                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     482                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     483                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     484                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     485                 : 
     486                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     487                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     488                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     489                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     490                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     491                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     492                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     493                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     494                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     495                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     496                 : 
     497                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     498                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     499                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     500                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     501                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     502                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     503                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     504                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     505                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     506                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     507                 : 
     508                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     509                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     510                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     511                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     512                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     513                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     514                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     515                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     516                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     517                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     518                 : 
     519                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     520                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     521                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     522                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     523                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     524                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     525                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     526                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     527                 :         0,  114,    0,  114,    0,  114,    0,  114,    0,  114,
     528                 :         0,    0
     529                 : 
     530                 :     } ;
     531                 : 
     532                 : static yyconst int yy_ec[256] =
     533                 :     {   0,
     534                 :         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
     535                 :         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
     536                 :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     537                 :         1,    2,    5,    6,    7,    8,    9,   10,   11,   12,
     538                 :        13,   14,   15,   16,   17,   18,   19,   20,   21,   21,
     539                 :        21,   21,   21,   21,   21,   21,   21,   22,   23,   24,
     540                 :        25,   26,   27,   16,   34,   35,   36,   37,   38,   39,
     541                 :        40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
     542                 :        50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
     543                 :        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
     544                 : 
     545                 :        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
     546                 :        48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
     547                 :        58,   59,   60,   61,   62,   16,   59,   59,   59,   59,
     548                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     549                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     550                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     551                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     552                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     553                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     554                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     555                 : 
     556                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     557                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     558                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     559                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     560                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     561                 :        59,   59,   59,   59,   59
     562                 :     } ;
     563                 : 
     564                 : static yyconst int yy_meta[63] =
     565                 :     {   0,
     566                 :         1,    2,    3,    3,    1,    4,    1,    1,    1,    1,
     567                 :         1,    1,    1,    5,    1,    1,    6,    1,    1,    7,
     568                 :         7,    1,    8,    9,    1,    1,    1,    6,    1,    1,
     569                 :         1,   10,   11,   10,   10,   10,   10,   10,   10,   10,
     570                 :        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
     571                 :        10,   10,   10,   10,   10,   10,   10,   10,   10,   12,
     572                 :         1,    1
     573                 :     } ;
     574                 : 
     575                 : static yyconst short int yy_base[1922] =
     576                 :     {   0,
     577                 :      8941, 8940,    0,    0,   57,   58,   59,   60,  120,    0,
     578                 :       182,    0,    0,    0,  244,    0,  306,    0,  368,    0,
     579                 :      8949, 8948, 8947, 8946,   68,   70, 8959, 8934,  422, 8966,
     580                 :        78, 8932,  426, 8966,    0,   44,   65,   72,  485, 8966,
     581                 :      8931,   83,   59,   79,   88,  415,  419, 8933,   86,   89,
     582                 :       416, 8928, 8928, 8920, 8966,  409,  439,  414,  416,  434,
     583                 :       423, 8906,    0,  436, 8908, 8911, 8897,   52, 8909,  390,
     584                 :       425,  400, 8912, 8904, 8896, 8966,  442, 8966,  465, 8966,
     585                 :       539, 8937,  596,  470,  656, 8909, 8966,  595,  718,  780,
     586                 :      8938,  842,  897,  957, 1012, 8966,  481, 8966, 8966, 8914,
     587                 : 
     588                 :         0, 8966,    0, 8966, 8966,    0,  448,  472, 8966,    0,
     589                 :      8920, 8919,  505, 8966, 8934, 8910, 8966, 8909, 8910,  486,
     590                 :      8909, 8907,  472, 8895,  498, 8905, 1015, 8966,  600,    0,
     591                 :      1016,    0, 8966,  503, 8966, 8966,   80, 8966,    0,    0,
     592                 :      8878,  469, 8880, 8882, 8879, 8890, 8886, 8870, 8875, 8966,
     593                 :      8966, 8966, 8966, 8966, 8966,  589, 8966, 8907, 8966, 8966,
     594                 :       592,  596,  616,  886, 8966, 8868,  491, 8966, 8966, 8894,
     595                 :      8966, 8966, 8893,  525, 8966,    0,  599, 8865, 8879, 8864,
     596                 :         0, 1019,  594, 8890, 8875,  482,  464, 8865,  487, 8873,
     597                 :         0, 8869, 8857, 8859, 8870, 8872,  565, 8858, 8853, 8856,
     598                 : 
     599                 :      8854,    0, 8852,  590, 8848, 8847, 8842,    0,  573, 8862,
     600                 :       569, 8862, 8853, 8843, 8835, 8840, 8853, 8839, 8847, 8837,
     601                 :      8966, 8966, 1018, 1022, 8881, 1023, 1024, 8966, 1027, 1053,
     602                 :       622, 8966, 8966, 1057, 1106, 1026, 8853, 1107, 1108, 1028,
     603                 :      1137, 8966, 1110,    0,    0, 8882, 1035,    0,    0, 1190,
     604                 :         0, 1116, 1243, 1303, 1192,    0,    0, 1118, 1363, 1124,
     605                 :         0, 1193,    0,    0, 1194, 1195, 8966,  905,  643, 8966,
     606                 :         0,    0,  628, 1121,  631,    0, 8966, 8966, 1201, 8966,
     607                 :      8966, 8966, 8860, 1190, 8966, 8842, 8831, 8966, 1200, 1392,
     608                 :         0, 8966, 8878, 8829, 8832, 8830, 8823, 8828, 8822, 8831,
     609                 : 
     610                 :      8839, 8821, 8819,  908, 1029,  633,  893, 1210, 8834, 8867,
     611                 :      8966, 8966, 8966, 8966, 8865, 8822,  578, 8832, 8823, 8826,
     612                 :      8810,    0, 8828, 8837, 8826, 8821, 8822, 8805, 8809,  863,
     613                 :      8810, 8820,    0, 8805, 8814, 8798, 1092, 8805, 8796, 8810,
     614                 :      8813, 8808, 8809, 8809, 8798, 8797, 8788, 8802, 8801, 8785,
     615                 :         0,  872, 8784, 8791, 8781, 8780, 8780, 8779, 8783,    0,
     616                 :      8792,    0,    0, 8784,    0, 1052, 8802, 1045, 8966, 1203,
     617                 :      1117, 1204,    0, 1212, 1450,    0, 8966, 1232,    0, 1491,
     618                 :       914, 1365, 1205, 1367, 1452,    0, 1210, 1543, 1437, 8803,
     619                 :      1543, 8777, 8783, 8790, 8789, 8777, 8786, 8786, 1551, 8781,
     620                 : 
     621                 :      8773, 8775, 8778, 1066, 8764, 8812, 1148, 8779, 8767, 8764,
     622                 :      8765, 8762, 8755, 8756, 8748, 8761,    0, 8763, 8751, 8764,
     623                 :      8748, 8758, 8765, 8744,    0, 8755, 8738, 8757, 8746, 8754,
     624                 :      8736, 8750,    0,    0, 8743, 8744, 8754, 8734, 8752, 8747,
     625                 :      8730, 8749, 8731, 8728,    0, 8727, 8745, 8740, 8735, 8734,
     626                 :      8724, 8732, 8737, 8716, 8718, 8732,    0, 1551,    0, 1553,
     627                 :      1601,    0, 1565, 1550, 1573, 1554, 8745, 1566, 1159, 8719,
     628                 :      8709, 8715, 1558, 8720, 8711, 1064, 8966, 8723, 8726, 1069,
     629                 :      8714, 8707, 8717, 8966, 8755, 1161, 8705, 8718, 8719, 8701,
     630                 :      8715, 8711, 8717,    0,    0,    0,    0,    0,    0, 8703,
     631                 : 
     632                 :      8698, 8703, 8708,    0, 8710, 8694,    0, 8702, 8701, 8705,
     633                 :         0, 8705, 8698, 8694, 8692, 8700, 8689, 8696,    0,    0,
     634                 :      8681, 8697, 8696, 8680, 8683, 8693, 8687,    0,    0,    0,
     635                 :      8966, 1583, 1603, 8703, 1653, 8966, 8723, 8672, 1136, 8666,
     636                 :      1254, 8966, 8689, 8684, 8683, 8667, 1255, 8966, 8679, 1256,
     637                 :      8669, 8665, 8684, 8662, 8682, 8681, 8664, 8675, 8656, 8671,
     638                 :      8655,    0, 8662, 8668, 8652, 8659, 8651, 8661, 8653,    0,
     639                 :      8662, 8661, 8662, 8663, 8658, 8642,    0, 8656,    0,    0,
     640                 :         0, 8669, 1655, 1374, 1260, 8966, 1370, 8645, 8640, 1372,
     641                 :      1377, 1378, 8966, 8637, 8657, 8656, 8645, 8650, 8653, 8647,
     642                 : 
     643                 :      8630, 8644,    0,    0, 8647, 8646, 8643, 8640,    0,    0,
     644                 :      8630, 8629, 8643, 8636, 8637,    0, 8634, 8639, 8646, 1657,
     645                 :      1475, 1379, 8966, 1380, 1457, 1467, 8966, 1511, 8966, 1595,
     646                 :      8637,    0, 8620, 8619,    0, 8634,    0,    0, 8614, 8628,
     647                 :      8622,    0,    0, 3868, 3872, 3870, 3879, 3879, 3841, 3854,
     648                 :      1659, 3843, 1667,    0, 3829, 3829, 3842, 3835, 3831,    0,
     649                 :      3805, 3799, 3796,    0,    0, 3777, 3799, 1663, 3772, 3776,
     650                 :      3758,    0,    0,    0,    0, 3768,    0, 3727, 3733, 1664,
     651                 :      3716, 3721, 3710, 3711, 3708, 3721, 1665, 3690,    0, 3696,
     652                 :         0,    0, 3698, 1676, 3683, 3678, 3663, 1686, 3553, 3541,
     653                 : 
     654                 :      3567, 1695, 3552,    0, 3565, 1697, 1695, 3563, 1699, 1727,
     655                 :      1730, 3562, 1716, 1742, 3536, 3534, 3541, 3557, 1730, 3539,
     656                 :      3538, 3528, 3552, 1746, 3526, 3524, 1757, 3548, 1747, 3565,
     657                 :      3559, 1760, 8966, 3544, 1757, 3540, 1763, 3538, 1768, 3534,
     658                 :      1769, 3530, 1776, 3528, 1780, 3523, 1792, 3519, 1799, 3502,
     659                 :      1803, 3501, 1809, 3484, 1813, 3480, 1815, 3478, 1822, 3475,
     660                 :      1826, 3473, 1832, 3457, 1836, 3456, 1845, 3452, 1849, 3438,
     661                 :      1853, 3434, 1855, 3433, 1859, 3429, 1866, 3411, 1872, 3406,
     662                 :      1876, 3390, 1882, 3388, 1886, 3385, 1893, 3383, 1895, 3367,
     663                 :      1899, 3362, 1903, 3344, 1905, 3343, 1912, 3339, 1916, 3338,
     664                 : 
     665                 :      1922, 3335, 1926, 3321, 1932, 3317, 1939, 3316, 1943, 3300,
     666                 :      1945, 3298, 1949, 3293, 1953, 3289, 1962, 3272, 1966, 3271,
     667                 :      1972, 3254, 1976, 3250, 1983, 3248, 1985, 3245, 1989, 3243,
     668                 :      1993, 3227, 1995, 3226, 1999, 3222, 2006, 3208, 2012, 3204,
     669                 :      2016, 3203, 2022, 3199, 2029, 3181, 2033, 3176, 2035, 3160,
     670                 :      2039, 3158, 2043, 3155, 2045, 3153, 2052, 3137, 2056, 3132,
     671                 :      2062, 3114, 2066, 3113, 2075, 3109, 2079, 3108, 2083, 3105,
     672                 :      2085, 3091, 2089, 3087, 2096, 3086, 2102, 3070, 2106, 3068,
     673                 :      2112, 3063, 2116, 3059, 2123, 3042, 2125, 3041, 2129, 3024,
     674                 :      2133, 3020, 2135, 3018, 2142, 3015, 2146, 3013, 2152, 2997,
     675                 : 
     676                 :      2156, 2996, 2162, 2992, 2169, 2978, 2173, 2974, 2175, 2973,
     677                 :      2179, 2969, 2183, 2951, 2192, 2946, 2196, 2930, 2202, 2928,
     678                 :      2206, 2925, 2213, 2923, 2215, 2907, 2219, 2902, 2223, 2884,
     679                 :      2225, 2883, 2229, 2879, 2236, 2878, 2242, 2875, 2246, 2861,
     680                 :      2252, 2857, 2259, 2856, 2263, 2840, 2265, 2838, 2269, 2833,
     681                 :      2273, 2829, 2275, 2812, 2282, 2811, 2286, 2794, 2292, 2790,
     682                 :      2296, 2788, 2305, 2785, 2309, 2783, 2313, 2767, 2315, 2766,
     683                 :      2319, 2762, 2326, 2748, 2332, 2744, 2336, 2743, 2342, 2739,
     684                 :      2346, 2721, 2353, 2716, 2355, 2700, 2359, 2698, 2363, 2695,
     685                 :      2365, 2693, 2372, 2677, 2376, 2672, 2382, 2654, 2386, 2653,
     686                 : 
     687                 :      2392, 2649, 2399, 2648, 2403, 2645, 2405, 2631, 2409, 2627,
     688                 :      2413, 2626, 2422,   54, 2426,   92, 2432,  414, 2436,  427,
     689                 :      2443,  472, 2445,  494, 2449,  587, 2453,  617, 2455,  906,
     690                 :      2459, 1013, 2466, 1016, 2472, 1018, 2476, 1022, 2482, 1030,
     691                 :      2489, 1050, 2493, 1056, 2495, 1099, 2499, 1106, 2503, 1109,
     692                 :      2505, 1130, 2512, 1183, 2516, 1201, 2522, 1202, 2526, 1214,
     693                 :      2535, 1219, 2539, 1235, 2543, 1242, 2545, 1247, 2549, 1250,
     694                 :      2556, 1252, 2562, 1360, 2566, 1362, 2572, 1363, 2576, 1364,
     695                 :      2583, 1365, 2585, 1437, 2589, 1438, 2593, 1439, 2595, 1440,
     696                 :      2602, 1441, 2606, 1442, 2612, 1443, 2616, 1444, 2622, 1459,
     697                 : 
     698                 :      2629, 1491, 2633, 1492, 2635, 1493, 2639, 1494, 2643, 1495,
     699                 :      2652, 1497, 2656, 1498, 2662, 1539, 2666, 1541, 2673, 1542,
     700                 :      2675, 1550, 2679, 1554, 2683, 1560, 2685, 1561, 2689, 1564,
     701                 :      2696, 1568, 2702, 1576, 2706, 1577, 2712, 1584, 2719, 1585,
     702                 :      2723, 1589, 2725, 1591, 2729, 1592, 2733, 1593, 2735, 1595,
     703                 :      2742, 1596, 2746, 1598, 2752, 1599, 2756, 1600, 2765, 1602,
     704                 :      2769, 1603, 2773, 1604, 2775, 1605, 2779, 1606, 2786, 1607,
     705                 :      2792, 1610, 2796, 1641, 2802, 1643, 2806, 1651, 2813, 1652,
     706                 :      2815, 1654, 2819, 1670, 2823, 1672, 2825, 1677, 2832, 1678,
     707                 :      2836, 1688, 2842, 1690, 2846, 1694, 2852, 1703, 2859, 1711,
     708                 : 
     709                 :      2863, 1713, 2865, 1718, 2869, 1726, 2873, 1734, 2882, 1741,
     710                 :      2886, 1743, 2892, 1745, 2896, 1751, 2903, 1752, 2905, 1756,
     711                 :      2909, 1764, 2913, 1770, 2915, 1773, 2919, 1778, 2926, 1781,
     712                 :      2932, 1782, 2936, 1786, 2942, 1787, 2949, 1789, 2953, 1790,
     713                 :      2955, 1793, 2959, 1801, 2963, 1805, 2965, 1810, 2972, 1814,
     714                 :      2976, 1819, 2982, 1823, 2986, 1824, 2995, 1828, 2999, 1833,
     715                 :      3003, 1842, 3005, 1846, 3009, 1847, 3016, 1863, 3022, 1865,
     716                 :      3026, 1868, 3032, 1870, 3036, 1874, 3043, 1891, 3045, 1892,
     717                 :      3049, 1909, 3053, 1913, 3055, 1918, 3062, 1920, 3066, 1936,
     718                 :      3072, 1937, 3076, 1941, 3082, 1955, 3089, 1958, 3093, 1959,
     719                 : 
     720                 :      3095, 1963, 3099, 1964, 3103, 1982, 3112, 1987, 3116, 2003,
     721                 :      3122, 2005, 3126, 2008, 3133, 2010, 3135, 2026, 3139, 2031,
     722                 :      3143, 2049, 3145, 2053, 3149, 2054, 3156, 2058, 3162, 2072,
     723                 :      3166, 2076, 3172, 2077, 3179, 2093, 3183, 2095, 3185, 2098,
     724                 :      3189, 2100, 3193, 2104, 3195, 2121, 3202, 2122, 3206, 2139,
     725                 :      3212, 2143, 3216, 2148, 3225, 2150, 3229, 2166, 3233, 2167,
     726                 :      3235, 2171, 3239, 2185, 3246, 2188, 3252, 2189, 3256, 2193,
     727                 :      3262, 2194, 3266, 2212, 3273, 2217, 3275, 2233, 3279, 2235,
     728                 :      3283, 2238, 3285, 2240, 3292, 2256, 3296, 2261, 3302, 2279,
     729                 :      3306, 2283, 3312, 2284, 3319, 2288, 3323, 2302, 3325, 2306,
     730                 : 
     731                 :      3329, 2307, 3333, 2323, 3342, 2325, 3346, 2328, 3352, 2330,
     732                 :      3356, 2334, 3363, 2351, 3365, 2352, 3369, 2369, 3373, 2373,
     733                 :      3375, 2378, 3379, 2380, 3386, 2396, 3392, 2397, 3396, 2401,
     734                 :      3402, 2415, 3409, 2418, 3413, 2419, 3415, 2423, 3419, 2424,
     735                 :      3423, 2442, 3425, 2447, 3432, 2463, 3436, 2465, 3442, 2468,
     736                 :      3446, 2470, 3455, 2486, 3459, 2491, 3463, 2509, 3465, 2513,
     737                 :      3469, 2514, 3476, 2518, 3482, 2532, 3486, 2536, 3492, 2537,
     738                 :      3496, 2553, 3503, 2555, 3505, 2558, 3509, 2560, 3513, 2564,
     739                 :      3515, 2581, 3522, 2582, 3526, 2599, 3532, 2603, 3536, 8966,
     740                 :      3542, 8966, 3594, 3606, 3618, 3630, 3642, 3654, 3666, 3678,
     741                 : 
     742                 :      3690, 2622, 3702, 3708, 3718, 3730, 3740, 3744, 3748, 3758,
     743                 :      3770, 3782, 3794, 3799, 3809, 3815, 3825, 3836, 3847, 3858,
     744                 :      3869, 3879, 3890, 3902, 3912, 2624, 3922, 3934, 3946, 3958,
     745                 :      3970, 3982, 3994, 4006, 4018, 4030, 4042, 4054, 4066, 4078,
     746                 :      4090, 4102, 4114, 4126, 4138, 4150, 4162, 4174, 4186, 4198,
     747                 :      4210, 4222, 4234, 4246, 4258, 4270, 4282, 4294, 4306, 4318,
     748                 :      4330, 4342, 4354, 4366, 4378, 4390, 4402, 4414, 4426, 4438,
     749                 :      4450, 4462, 4474, 4486, 4498, 4510, 4522, 4534, 4546, 4558,
     750                 :      4570, 4582, 4594, 4606, 4618, 4630, 4642, 4654, 4666, 4678,
     751                 :      4690, 4702, 4714, 4726, 4738, 4750, 4762, 4774, 4786, 4798,
     752                 : 
     753                 :      4810, 4822, 4834, 4846, 4858, 4870, 4882, 4894, 4906, 4918,
     754                 :      4930, 4942, 4954, 4966, 4978, 4990, 5002, 5014, 5026, 5038,
     755                 :      5050, 5062, 5074, 5086, 5098, 5110, 5122, 5134, 5146, 5158,
     756                 :      5170, 5182, 5194, 5206, 5218, 5230, 5242, 5254, 5266, 5278,
     757                 :      5290, 5302, 5314, 5326, 5338, 5350, 5362, 5374, 5386, 5398,
     758                 :      5410, 5422, 5434, 5446, 5458, 5470, 5482, 5494, 5506, 5518,
     759                 :      5530, 5542, 5554, 5566, 5578, 5590, 5602, 5614, 5626, 5638,
     760                 :      5650, 5662, 5674, 5686, 5698, 5710, 5722, 5734, 5746, 5758,
     761                 :      5770, 5782, 5794, 5806, 5818, 5830, 5842, 5854, 5866, 5878,
     762                 :      5890, 5902, 5914, 5926, 5938, 5950, 5962, 5974, 5986, 5998,
     763                 : 
     764                 :      6010, 6022, 6034, 6046, 6058, 6070, 6082, 6094, 6106, 6118,
     765                 :      6130, 6142, 6154, 6166, 6178, 6190, 6202, 6214, 6226, 6238,
     766                 :      6250, 6262, 6274, 6286, 6298, 6310, 6322, 6334, 6346, 6358,
     767                 :      6370, 6382, 6394, 6406, 6418, 6430, 6442, 6454, 6466, 6478,
     768                 :      6490, 6502, 6514, 6526, 6538, 6550, 6562, 6574, 6586, 6598,
     769                 :      6610, 6622, 6634, 6646, 6658, 6670, 6682, 6694, 6706, 6718,
     770                 :      6730, 6742, 6754, 6766, 6778, 6790, 6802, 6814, 6826, 6838,
     771                 :      6850, 6862, 6874, 6886, 6898, 6910, 6922, 6934, 6946, 6958,
     772                 :      6970, 6982, 6994, 7006, 7018, 7030, 7042, 7054, 7066, 7078,
     773                 :      7090, 7102, 7114, 7126, 7138, 7150, 7162, 7174, 7186, 7198,
     774                 : 
     775                 :      7210, 7222, 7234, 7246, 7258, 7270, 7282, 7294, 7306, 7318,
     776                 :      7330, 7342, 7354, 7366, 7378, 7390, 7402, 7414, 7426, 7438,
     777                 :      7450, 7462, 7474, 7486, 7498, 7510, 7522, 7534, 7546, 7558,
     778                 :      7570, 7582, 7594, 7606, 7618, 7630, 7642, 7654, 7666, 7678,
     779                 :      7690, 7702, 7714, 7726, 7738, 7750, 7762, 7774, 7786, 7798,
     780                 :      7810, 7822, 7834, 7846, 7858, 7870, 7882, 7894, 7906, 7918,
     781                 :      7930, 7942, 7954, 7966, 7978, 7990, 8002, 8014, 8026, 8038,
     782                 :      8050, 8062, 8074, 8086, 8098, 8110, 8122, 8134, 8146, 8158,
     783                 :      8170, 8182, 8194, 8206, 8218, 8230, 8242, 8254, 8266, 8278,
     784                 :      8290, 8302, 8314, 8326, 8338, 8350, 8362, 8374, 8386, 8398,
     785                 : 
     786                 :      8410, 8422, 8434, 8446, 8458, 8470, 8482, 8494, 8506, 8518,
     787                 :      8530, 8542, 8554, 8566, 8578, 8590, 8602, 8614, 8626, 8638,
     788                 :      8650
     789                 :     } ;
     790                 : 
     791                 : static yyconst short int yy_def[1922] =
     792                 :     {   0,
     793                 :      1493, 1493, 1492,    3, 1494, 1494, 1495, 1495, 1492,    9,
     794                 :      1492,   11, 1496, 1496, 1492,   15, 1492,   17, 1492,   19,
     795                 :      1497, 1497, 1497, 1497, 1498, 1498, 1492, 1499, 1500, 1492,
     796                 :      1492, 1492, 1501, 1492, 1502, 1492, 1492, 1503, 1492, 1492,
     797                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     798                 :      1492, 1492, 1492, 1504, 1492, 1504, 1504, 1504, 1504, 1504,
     799                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     800                 :      1504, 1504, 1504, 1504, 1504, 1492, 1492, 1492, 1505, 1492,
     801                 :      1492, 1505, 1505, 1506, 1492, 1506, 1492, 1506, 1492, 1492,
     802                 :        90, 1492,   89, 1492,   93, 1492, 1507, 1492, 1492, 1492,
     803                 : 
     804                 :      1508, 1492, 1509, 1492, 1492, 1502, 1492, 1492, 1492, 1510,
     805                 :      1492, 1492, 1511, 1492, 1492, 1492, 1492, 1492, 1512, 1499,
     806                 :      1499, 1492, 1492, 1492, 1492, 1492, 1501, 1492, 1513, 1501,
     807                 :      1501, 1514, 1492, 1492, 1492, 1492, 1503, 1492, 1503,   39,
     808                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     809                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     810                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     811                 :      1492, 1492, 1492, 1492, 1492, 1504, 1504, 1504, 1504, 1504,
     812                 :      1504, 1501, 1503, 1492, 1504, 1504, 1504, 1504, 1504, 1504,
     813                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     814                 : 
     815                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     816                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     817                 :      1492, 1492, 1505, 1515, 1505, 1505, 1505, 1492, 1515, 1515,
     818                 :      1516, 1492, 1492, 1505, 1506, 1517, 1506, 1506, 1506, 1517,
     819                 :      1517, 1492, 1506,   89,   90,   90, 1518,   93,   94,   93,
     820                 :        89, 1519,   90, 1492,  253,   90,   89, 1518, 1518, 1518,
     821                 :        94,   89,   93,   94,   93,   93, 1492, 1507, 1492, 1492,
     822                 :      1508, 1509, 1492, 1492, 1492, 1510, 1492, 1492, 1511, 1492,
     823                 :      1492, 1492, 1520, 1512, 1492, 1492, 1492, 1492, 1501, 1513,
     824                 :      1514, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     825                 : 
     826                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1521,
     827                 :      1492, 1492, 1492, 1492, 1492, 1504, 1504, 1504, 1504, 1504,
     828                 :      1504, 1504, 1504, 1492, 1504, 1504, 1504, 1504, 1504, 1504,
     829                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     830                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     831                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     832                 :      1504, 1504, 1504, 1504, 1504, 1515, 1492, 1516, 1492, 1505,
     833                 :      1517, 1506,   89, 1519, 1519,   89, 1492, 1522,  254,  254,
     834                 :      1523, 1523,  253, 1518, 1518,  259,   93,   93, 1492, 1524,
     835                 :      1520, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     836                 : 
     837                 :      1492, 1492, 1492, 1492, 1492, 1521, 1525, 1504, 1504, 1504,
     838                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     839                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     840                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     841                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     842                 :      1504, 1504, 1504, 1504, 1504, 1504, 1526, 1519,   89, 1522,
     843                 :      1522,   89, 1523,  253, 1518,   93, 1527, 1524, 1492, 1492,
     844                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     845                 :      1492, 1492, 1492, 1492, 1492, 1525, 1504, 1504, 1504, 1504,
     846                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     847                 : 
     848                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     849                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     850                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     851                 :      1492, 1522, 1523, 1528, 1527, 1492, 1492, 1492, 1492, 1492,
     852                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     853                 :      1492, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     854                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     855                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     856                 :      1504, 1529, 1528, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     857                 :      1492, 1492, 1492, 1492, 1504, 1504, 1504, 1504, 1504, 1504,
     858                 : 
     859                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     860                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1530, 1529,
     861                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     862                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     863                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1531,
     864                 :      1530, 1492, 1492, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
     865                 :      1504, 1504, 1504, 1504, 1504, 1504, 1532, 1531, 1492, 1504,
     866                 :      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1533, 1532,
     867                 :      1492, 1504, 1504, 1504, 1504, 1534, 1533, 1492, 1504, 1504,
     868                 :      1504, 1504, 1535, 1534, 1492, 1504, 1536, 1535, 1492, 1504,
     869                 : 
     870                 :      1537, 1536, 1492, 1504, 1538, 1537, 1492, 1539, 1538, 1492,
     871                 :      1492, 1540, 1539, 1492, 1492, 1492, 1492, 1541, 1540, 1492,
     872                 :      1492, 1492, 1542, 1541, 1492, 1492, 1492, 1543, 1542, 1492,
     873                 :      1492, 1492, 1492, 1544, 1543, 1545, 1544, 1546, 1545, 1547,
     874                 :      1546, 1548, 1547, 1549, 1548, 1550, 1549, 1551, 1550, 1552,
     875                 :      1551, 1553, 1552, 1554, 1553, 1555, 1554, 1556, 1555, 1557,
     876                 :      1556, 1558, 1557, 1559, 1558, 1560, 1559, 1561, 1560, 1562,
     877                 :      1561, 1563, 1562, 1564, 1563, 1565, 1564, 1566, 1565, 1567,
     878                 :      1566, 1568, 1567, 1569, 1568, 1570, 1569, 1571, 1570, 1572,
     879                 :      1571, 1573, 1572, 1574, 1573, 1575, 1574, 1576, 1575, 1577,
     880                 : 
     881                 :      1576, 1578, 1577, 1579, 1578, 1580, 1579, 1581, 1580, 1582,
     882                 :      1581, 1583, 1582, 1584, 1583, 1585, 1584, 1586, 1585, 1587,
     883                 :      1586, 1588, 1587, 1589, 1588, 1590, 1589, 1591, 1590, 1592,
     884                 :      1591, 1593, 1592, 1594, 1593, 1595, 1594, 1596, 1595, 1597,
     885                 :      1596, 1598, 1597, 1599, 1598, 1600, 1599, 1601, 1600, 1602,
     886                 :      1601, 1603, 1602, 1604, 1603, 1605, 1604, 1606, 1605, 1607,
     887                 :      1606, 1608, 1607, 1609, 1608, 1610, 1609, 1611, 1610, 1612,
     888                 :      1611, 1613, 1612, 1614, 1613, 1615, 1614, 1616, 1615, 1617,
     889                 :      1616, 1618, 1617, 1619, 1618, 1620, 1619, 1621, 1620, 1622,
     890                 :      1621, 1623, 1622, 1624, 1623, 1625, 1624, 1626, 1625, 1627,
     891                 : 
     892                 :      1626, 1628, 1627, 1629, 1628, 1630, 1629, 1631, 1630, 1632,
     893                 :      1631, 1633, 1632, 1634, 1633, 1635, 1634, 1636, 1635, 1637,
     894                 :      1636, 1638, 1637, 1639, 1638, 1640, 1639, 1641, 1640, 1642,
     895                 :      1641, 1643, 1642, 1644, 1643, 1645, 1644, 1646, 1645, 1647,
     896                 :      1646, 1648, 1647, 1649, 1648, 1650, 1649, 1651, 1650, 1652,
     897                 :      1651, 1653, 1652, 1654, 1653, 1655, 1654, 1656, 1655, 1657,
     898                 :      1656, 1658, 1657, 1659, 1658, 1660, 1659, 1661, 1660, 1662,
     899                 :      1661, 1663, 1662, 1664, 1663, 1665, 1664, 1666, 1665, 1667,
     900                 :      1666, 1668, 1667, 1669, 1668, 1670, 1669, 1671, 1670, 1672,
     901                 :      1671, 1673, 1672, 1674, 1673, 1675, 1674, 1676, 1675, 1677,
     902                 : 
     903                 :      1676, 1678, 1677, 1679, 1678, 1680, 1679, 1681, 1680, 1682,
     904                 :      1681, 1683, 1682, 1684, 1683, 1685, 1684, 1686, 1685, 1687,
     905                 :      1686, 1688, 1687, 1689, 1688, 1690, 1689, 1691, 1690, 1692,
     906                 :      1691, 1693, 1692, 1694, 1693, 1695, 1694, 1696, 1695, 1697,
     907                 :      1696, 1698, 1697, 1699, 1698, 1700, 1699, 1701, 1700, 1702,
     908                 :      1701, 1703, 1702, 1704, 1703, 1705, 1704, 1706, 1705, 1707,
     909                 :      1706, 1708, 1707, 1709, 1708, 1710, 1709, 1711, 1710, 1712,
     910                 :      1711, 1713, 1712, 1714, 1713, 1715, 1714, 1716, 1715, 1717,
     911                 :      1716, 1718, 1717, 1719, 1718, 1720, 1719, 1721, 1720, 1722,
     912                 :      1721, 1723, 1722, 1724, 1723, 1725, 1724, 1726, 1725, 1727,
     913                 : 
     914                 :      1726, 1728, 1727, 1729, 1728, 1730, 1729, 1731, 1730, 1732,
     915                 :      1731, 1733, 1732, 1734, 1733, 1735, 1734, 1736, 1735, 1737,
     916                 :      1736, 1738, 1737, 1739, 1738, 1740, 1739, 1741, 1740, 1742,
     917                 :      1741, 1743, 1742, 1744, 1743, 1745, 1744, 1746, 1745, 1747,
     918                 :      1746, 1748, 1747, 1749, 1748, 1750, 1749, 1751, 1750, 1752,
     919                 :      1751, 1753, 1752, 1754, 1753, 1755, 1754, 1756, 1755, 1757,
     920                 :      1756, 1758, 1757, 1759, 1758, 1760, 1759, 1761, 1760, 1762,
     921                 :      1761, 1763, 1762, 1764, 1763, 1765, 1764, 1766, 1765, 1767,
     922                 :      1766, 1768, 1767, 1769, 1768, 1770, 1769, 1771, 1770, 1772,
     923                 :      1771, 1773, 1772, 1774, 1773, 1775, 1774, 1776, 1775, 1777,
     924                 : 
     925                 :      1776, 1778, 1777, 1779, 1778, 1780, 1779, 1781, 1780, 1782,
     926                 :      1781, 1783, 1782, 1784, 1783, 1785, 1784, 1786, 1785, 1787,
     927                 :      1786, 1788, 1787, 1789, 1788, 1790, 1789, 1791, 1790, 1792,
     928                 :      1791, 1793, 1792, 1794, 1793, 1795, 1794, 1796, 1795, 1797,
     929                 :      1796, 1798, 1797, 1799, 1798, 1800, 1799, 1801, 1800, 1802,
     930                 :      1801, 1803, 1802, 1804, 1803, 1805, 1804, 1806, 1805, 1807,
     931                 :      1806, 1808, 1807, 1809, 1808, 1810, 1809, 1811, 1810, 1812,
     932                 :      1811, 1813, 1812, 1814, 1813, 1815, 1814, 1816, 1815, 1817,
     933                 :      1816, 1818, 1817, 1819, 1818, 1820, 1819, 1821, 1820, 1822,
     934                 :      1821, 1823, 1822, 1824, 1823, 1825, 1824, 1826, 1825, 1827,
     935                 : 
     936                 :      1826, 1828, 1827, 1829, 1828, 1830, 1829, 1831, 1830, 1832,
     937                 :      1831, 1833, 1832, 1834, 1833, 1835, 1834, 1836, 1835, 1837,
     938                 :      1836, 1838, 1837, 1839, 1838, 1840, 1839, 1841, 1840, 1842,
     939                 :      1841, 1843, 1842, 1844, 1843, 1845, 1844, 1846, 1845, 1847,
     940                 :      1846, 1848, 1847, 1849, 1848, 1850, 1849, 1851, 1850, 1852,
     941                 :      1851, 1853, 1852, 1854, 1853, 1855, 1854, 1856, 1855, 1857,
     942                 :      1856, 1858, 1857, 1859, 1858, 1860, 1859, 1861, 1860, 1862,
     943                 :      1861, 1863, 1862, 1864, 1863, 1865, 1864, 1866, 1865, 1867,
     944                 :      1866, 1868, 1867, 1869, 1868, 1870, 1869, 1871, 1870, 1872,
     945                 :      1871, 1873, 1872, 1874, 1873, 1875, 1874, 1876, 1875, 1877,
     946                 : 
     947                 :      1876, 1878, 1877, 1879, 1878, 1880, 1879, 1881, 1880, 1882,
     948                 :      1881, 1883, 1882, 1884, 1883, 1885, 1884, 1886, 1885, 1887,
     949                 :      1886, 1888, 1887, 1889, 1888, 1890, 1889, 1891, 1890, 1892,
     950                 :      1891, 1893, 1892, 1894, 1893, 1895, 1894, 1896, 1895, 1897,
     951                 :      1896, 1898, 1897, 1899, 1898, 1900, 1899, 1901, 1900, 1902,
     952                 :      1901, 1903, 1902, 1904, 1903, 1905, 1904, 1906, 1905, 1907,
     953                 :      1906, 1908, 1907, 1909, 1908, 1910, 1909, 1911, 1910, 1912,
     954                 :      1911, 1913, 1912, 1914, 1913, 1915, 1914, 1916, 1915, 1917,
     955                 :      1916, 1918, 1917, 1919, 1918, 1920, 1919, 1921, 1920, 1492,
     956                 :      1921,    0, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     957                 : 
     958                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     959                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     960                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     961                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     962                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     963                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     964                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     965                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     966                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     967                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     968                 : 
     969                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     970                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     971                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     972                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     973                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     974                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     975                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     976                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     977                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     978                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     979                 : 
     980                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     981                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     982                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     983                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     984                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     985                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     986                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     987                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     988                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     989                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     990                 : 
     991                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     992                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     993                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     994                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     995                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     996                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     997                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     998                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
     999                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1000                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1001                 : 
    1002                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1003                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1004                 :      1492
    1005                 :     } ;
    1006                 : 
    1007                 : static yyconst short int yy_nxt[9029] =
    1008                 :     {   0,
    1009                 :        30,   31,   31,   31,   32,   33,   34,   35,   36,   37,
    1010                 :        38,   39,   40,   41,   42,   40,   43,   44,   45,   46,
    1011                 :        47,   48,   40,   49,   50,   51,   52,   40,   30,   40,
    1012                 :        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
    1013                 :        63,   64,   63,   63,   65,   63,   66,   67,   68,   63,
    1014                 :        69,   70,   71,   72,   73,   74,   75,   63,   63,   76,
    1015                 :        77,   78,   80,   80,   81,   81,   85,   85,  133,  134,
    1016                 :       114,  115,  114,  115,  135,  153,  116, 1017,  116,  125,
    1017                 :       125,  125,  138,  154,  155,   82,   82,   86,   86,  136,
    1018                 :       138,   87,   87,  117,  118,  117,  118,  151,  156,  156,
    1019                 : 
    1020                 :       139,  158,  209,  157,  166,  210,  159,  152,  139,  167,
    1021                 :       168,  169,  160,  170,  171, 1019,   83,   83,   88,   88,
    1022                 :        89,   89,   90,   91,   89,   89,   89,   92,   89,   89,
    1023                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    1024                 :        89,   89,   89,   89,   89,   89,   89,   89,   93,   89,
    1025                 :        89,   94,   89,   94,   94,   94,   94,   94,   94,   94,
    1026                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
    1027                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   95,
    1028                 :        89,   89,   96,   96,   96,   96,   96,   96,   96,   96,
    1029                 :        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
    1030                 : 
    1031                 :        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
    1032                 :        96,   96,   96,   97,   96,   97,   97,   97,   97,   97,
    1033                 :        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
    1034                 :        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
    1035                 :        97,   96,   96,   96,   99,   99,   99,   99,   99,   99,
    1036                 :        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
    1037                 :       100,   99,   99,   99,   99,   99,   99,   99,   99,   99,
    1038                 :        99,   99,   99,   99,   99,  101,   99,  101,  101,  101,
    1039                 :       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    1040                 :       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    1041                 : 
    1042                 :       101,  101,  101,   99,   99,   99,  102,  102,  102,  102,
    1043                 :       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    1044                 :       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    1045                 :       102,  102,  102,  102,  102,  102,  102,  103,  102,  103,
    1046                 :       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    1047                 :       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    1048                 :       103,  103,  103,  103,  103,  102,  102,  102,   30,  104,
    1049                 :       104,  104,  105,  105,  104,  106,  105,  105,  104,  105,
    1050                 :       105,  105,  105,  105,  105,  105,  105,  107,  108,  105,
    1051                 :       105,  105,  105,  105,  105,  105,  104,  109,  105,   63,
    1052                 : 
    1053                 :       105,   63,   63,   63,   63,   63,   63,   63,   63,   63,
    1054                 :        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
    1055                 :        63,   63,   63,   63,   63,   63,   63,  105,  105,  105,
    1056                 :       122,  128,  161,  129,  162,  162,  161, 1021,  162,  162,
    1057                 :       172,  173,  212,  178,  182,  213,  216,  186,  123,  183,
    1058                 :      1023,  217,  163,  189,  130,  179,  163,  190,  187,  180,
    1059                 :       181,  188,  184,  191,  198,  214,  221,  273,  273,  192,
    1060                 :       199,  164,  224,  124,  202,  215,  200,  236,  193,  194,
    1061                 :       195,  203,  204,  267,  267,  131,  140,  205,  196,  185,
    1062                 :       197,  275,  275,  225, 1492, 1025,  285,  328,  237,  125,
    1063                 : 
    1064                 :       125,  125,  222,  269,  274,  292,  293,  280,  280, 1492,
    1065                 :       295,  329, 1492,  280,  310,  311,  296, 1027,  141,  142,
    1066                 :       286,  143,  331,  144,  226,  332,  145,  314,  315,  238,
    1067                 :       280,  280,  146,  326,  327,  147,  148, 1492,  149,  227,
    1068                 :       227,  227,  227,  227,  228,  227,  229,  227,  227,  227,
    1069                 :       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
    1070                 :       227,  227,  227,  227,  227,  227,  227,  230,  227,  227,
    1071                 :       231,  227,  231,  231,  231,  231,  231,  231,  231,  231,
    1072                 :       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
    1073                 :       231,  231,  231,  231,  231,  231,  231,  231,  232,  227,
    1074                 : 
    1075                 :       227,  228,  233,  233,  138,  128,  339,  129,  156,  156,
    1076                 :      1029,  305,  305,  161,  352,  162,  162,  340,  355,  409,
    1077                 :       353,  356,  139,  237,  225,  346,  163,  242,  290,  163,
    1078                 :       306,  410,  306,  163,  316,  307,  307,  317,  367,  318,
    1079                 :      1031,  347,  348,  319,  320,  267,  267,  273,  273,  369,
    1080                 :       275,  275,  307,  307,  243,  234,  239,  239,  239,  239,
    1081                 :       239,  239,  239,  240,  239,  239,  239,  239,  239,  239,
    1082                 :       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
    1083                 :       239,  239,  239,  239,  241,  239,  239,  231,  242,  231,
    1084                 :       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
    1085                 : 
    1086                 :       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
    1087                 :       231,  231,  231,  231,  231,  232,  239,  239,  244,  244,
    1088                 :       245,  246,  244,  244,  244,  247,  244,  244,  244,  244,
    1089                 :       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
    1090                 :       244,  244,  244,  244,  244,  244,  248,  244,  244,  249,
    1091                 :       244,  249,  249,  249,  249,  249,  249,  249,  249,  249,
    1092                 :       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
    1093                 :       249,  249,  249,  249,  249,  249,  249,  250,  244,  244,
    1094                 :       251,  251,  245,  246,  251,  251,  251,  252,  251,  251,
    1095                 :       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
    1096                 : 
    1097                 :       251,  251,  251,  251,  251,  251,  251,  251,  253,  251,
    1098                 :       251,  254,  251,  254,  254,  254,  254,  254,  254,  254,
    1099                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
    1100                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  255,
    1101                 :       251,  251,  257,  257,  245,  246,  257,  257,  257,  258,
    1102                 :       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
    1103                 :       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
    1104                 :       259,  257,  257,  231,  257,  231,  231,  231,  231,  231,
    1105                 :       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
    1106                 :       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
    1107                 : 
    1108                 :       231,  232,  257,  257,  244,  308,  308,  267,  267,  404,
    1109                 :       404,  404,  307,  307,  421,  422,  245,  246,  446,  308,
    1110                 :       308,  308,  308,  308,  308,  244,  447,  269,  244, 1033,
    1111                 :       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
    1112                 :       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
    1113                 :       244,  244,  244,  244,  244,  244,  244,  244,  244,  245,
    1114                 :       246,  244,  244,  244,  260,  244,  244,  244,  244,  244,
    1115                 :       244,  244,  244,  244,  244,  244,  261,  261,  244,  262,
    1116                 :       244,  244,  244,  244,  244,  263,  244,  244,  264,  244,
    1117                 :       264,  264,  264,  264,  264,  264,  264,  264,  264,  264,
    1118                 : 
    1119                 :       264,  264,  264,  264,  264,  264,  264,  264,  264,  264,
    1120                 :       264,  264,  264,  264,  264,  264,  265,  244,  244,  233,
    1121                 :       128,  128,  129, 1492,  128,  224,  129,  228,  228,  229,
    1122                 :      1492,  224,  228,  240,  366,  371, 1035,  245,  246, 1037,
    1123                 :       248, 1039,  258,  130,  130, 1041,  225,  130,  305,  305,
    1124                 :       230,  225,  225, 1043,  241,  230,  241,  228,  242,  366,
    1125                 :       242,  367,  228,  259, 1492,  476,  163,  404,  404,  404,
    1126                 :       547,  266,  369, 1045,  131,  131,  477,  226,  131, 1047,
    1127                 :       230,  548,  234,  226,  227,  225,  227,  227,  227,  227,
    1128                 :       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
    1129                 : 
    1130                 :       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
    1131                 :       227,  227,  227,  236, 1492,  236,  370, 1492,  245,  246,
    1132                 :       245,  246, 1049,  374,  371,  384,  245,  246,  428, 1051,
    1133                 :       429,  385, 1053,  430,  237,  237,  237,  585,  237,  242,
    1134                 :       389,  389,  242,  431,  375,  241,  259,  432,  586,  242,
    1135                 :       484,  485,  386, 1055,  389,  389,  389,  389,  389,  389,
    1136                 :       536,  536,  537,  484,  485,  238,  243,  238,  239,  372,
    1137                 :       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
    1138                 :       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
    1139                 :       239,  239,  239,  239,  239,  239,  239, 1492, 1492, 1492,
    1140                 : 
    1141                 :       260, 1492, 1492,  280,  280,  128, 1057,  129,  228,  280,
    1142                 :      1492, 1492, 1492, 1492,  245,  246, 1492, 1492,  248,  458,
    1143                 :       253,  263,  263,  248, 1059, 1061,  280,  280,  130,  308,
    1144                 :       308,  225,  237,  253,  245,  246,  242, 1063,  263,  460,
    1145                 :       375, 1492, 1065,  308,  308,  308,  308,  308,  308,  266,
    1146                 :       251,  383,  265,  387,  388,  541,  547,  592, 1067,  131,
    1147                 :       461,  585,  370,  372,  464, 1069,  542,  548,  593,  466,
    1148                 :      1071,  251,  586, 1073,  251, 1075,  251,  251,  251,  251,
    1149                 :       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
    1150                 :       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
    1151                 : 
    1152                 :       251,  251,  251,  376,  376,  377,  377,  376,  376,  376,
    1153                 :       378,  376,  376,  376,  376,  376,  376,  376,  376,  376,
    1154                 :       376,  376,  379,  379,  376,  380,  376,  376,  376,  376,
    1155                 :       376,  381,  376,  376,  379,  376,  379,  379,  379,  379,
    1156                 :       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
    1157                 :       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
    1158                 :       379,  379,  382,  376,  376,  245,  246,  245,  246,  245,
    1159                 :       246,  622, 1492,  626,  384,  621,  621,  621,  628,  592,
    1160                 :       622,  541,  623, 1077,  627, 1079, 1081, 1083, 1085,  629,
    1161                 :       593,  623,  542,  381,  257,  259,  257,  257,  257,  257,
    1162                 : 
    1163                 :       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
    1164                 :       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
    1165                 :       257,  257,  257,  289,  463,  289,  289,  289,  289,  289,
    1166                 :       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
    1167                 :       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
    1168                 :       289,  289,  245,  246,  245,  246,  389,  389,  476,  465,
    1169                 :      1087, 1089, 1091, 1093, 1095, 1097, 1099, 1101,  626,  477,
    1170                 :       389,  389,  389,  389,  389,  389,  621,  621,  621,  627,
    1171                 :       386,  373, 1103,  373,  373,  373,  373,  373,  373,  373,
    1172                 :       373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
    1173                 : 
    1174                 :       373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
    1175                 :       376,  376,  628,  376, 1105, 1107, 1109, 1111, 1113,  652,
    1176                 :      1115, 1117,  376,  629,  376,  376,  376,  376,  376,  376,
    1177                 :       376,  376,  376,  376,  376,  376,  376,  376,  376,  376,
    1178                 :       376,  376,  376,  376,  376,  376,  376,  376,  376,  376,
    1179                 :      1492, 1492,  476,  245,  246,  245,  246, 1492,  458,  541,
    1180                 :       532, 1492, 1119,  477, 1121, 1123, 1492,  245,  246, 1492,
    1181                 :       542,  248, 1492, 1125, 1492,  245,  246, 1127,  253,  375,
    1182                 :       465,  461,  263, 1129, 1131,  245,  246, 1133,  478, 1492,
    1183                 :       532, 1135, 1492,  381, 1492,  543,  653,  653,  653, 1137,
    1184                 : 
    1185                 :      1139,  386,  388,  245,  246,  245,  246, 1141, 1143,  464,
    1186                 :      1492,  461, 1145,  466, 1147, 1149, 1151, 1492, 1153, 1155,
    1187                 :       174, 1157, 1159, 1161,  533, 1163, 1165, 1167, 1169, 1171,
    1188                 :      1173,  381,  459, 1175,  459,  459,  459,  459,  459,  459,
    1189                 :       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
    1190                 :       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
    1191                 :       459, 1492,  533, 1492, 1177, 1492, 1179, 1492,  653,  653,
    1192                 :       653, 1492, 1492, 1492, 1181, 1183, 1492, 1185, 1492, 1492,
    1193                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1194                 :      1492, 1492,  174, 1187, 1492, 1189,  710,  710,  710, 1492,
    1195                 : 
    1196                 :      1191, 1193, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1197                 :      1492, 1195, 1492, 1197, 1492, 1492, 1492, 1199, 1492,  711,
    1198                 :      1492, 1492, 1492, 1492, 1492, 1492, 1201, 1492,  710,  710,
    1199                 :       710,  714,  714,  714, 1203,  715, 1205, 1492, 1492, 1492,
    1200                 :       716, 1207, 1492,  714,  714,  714, 1492,  715, 1492, 1209,
    1201                 :      1492,  711,  716, 1492, 1492, 1492, 1492, 1211,  732,  732,
    1202                 :       732,  732,  732,  732, 1213, 1492, 1215, 1492, 1217, 1492,
    1203                 :      1492, 1492, 1492, 1492, 1219, 1221, 1492, 1492,  717, 1223,
    1204                 :      1492, 1492,  733, 1492, 1492,  733, 1492, 1225, 1492, 1492,
    1205                 :       717, 1492, 1492, 1227, 1492, 1492, 1229, 1492, 1492, 1492,
    1206                 : 
    1207                 :      1492, 1231, 1492, 1492, 1233, 1235, 1492, 1492, 1492, 1237,
    1208                 :      1239, 1492, 1241, 1243, 1492, 1492, 1245, 1492, 1492, 1492,
    1209                 :      1492, 1492, 1492, 1492, 1247, 1492, 1492, 1492, 1249, 1492,
    1210                 :      1492, 1492, 1492, 1251, 1492, 1492, 1492, 1253, 1492, 1492,
    1211                 :      1492, 1492, 1255, 1492, 1492, 1492, 1257, 1259, 1492, 1492,
    1212                 :      1492, 1261, 1492, 1492, 1492, 1492, 1263, 1492, 1492, 1492,
    1213                 :      1492, 1492, 1492, 1492, 1492, 1265, 1492, 1492, 1492, 1267,
    1214                 :      1269, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1215                 :      1492, 1492, 1492, 1492, 1492, 1492, 1271, 1492, 1273, 1492,
    1216                 :      1492, 1275, 1492, 1277, 1492, 1492, 1492, 1279, 1492, 1492,
    1217                 : 
    1218                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1219                 :      1492, 1492, 1492, 1492, 1281, 1283, 1492, 1492, 1492, 1492,
    1220                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1221                 :      1492, 1492, 1285, 1492, 1492, 1492, 1287, 1492, 1492, 1492,
    1222                 :      1492, 1289, 1492, 1291, 1492, 1492, 1492, 1492, 1492, 1492,
    1223                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1293,
    1224                 :      1295, 1492, 1492, 1492, 1297, 1492, 1492, 1492, 1492, 1492,
    1225                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1299, 1492,
    1226                 :      1492, 1301, 1303, 1492, 1492, 1492, 1305, 1307, 1492, 1492,
    1227                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1228                 : 
    1229                 :      1492, 1492, 1492, 1492, 1492, 1309, 1492, 1492, 1492, 1492,
    1230                 :      1311, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1231                 :      1492, 1492, 1492, 1492, 1492, 1492, 1313, 1492, 1315, 1492,
    1232                 :      1492, 1317, 1492, 1319, 1492, 1492, 1492, 1492, 1492, 1492,
    1233                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1321,
    1234                 :      1492, 1492, 1492, 1492, 1323, 1492, 1492, 1492, 1492, 1492,
    1235                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1236                 :      1492, 1492, 1325, 1492, 1492, 1492, 1327, 1329, 1492, 1492,
    1237                 :      1492, 1331, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1238                 :      1492, 1492, 1492, 1492, 1492, 1333, 1492, 1492, 1492, 1335,
    1239                 : 
    1240                 :      1337, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1241                 :      1492, 1492, 1492, 1492, 1492, 1492, 1339, 1492, 1341, 1492,
    1242                 :      1492, 1343, 1492, 1345, 1492, 1492, 1492, 1347, 1492, 1492,
    1243                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1244                 :      1492, 1492, 1492, 1492, 1349, 1351, 1492, 1492, 1492, 1492,
    1245                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1246                 :      1492, 1492, 1353, 1492, 1492, 1492, 1355, 1492, 1492, 1492,
    1247                 :      1492, 1357, 1492, 1359, 1492, 1492, 1492, 1492, 1492, 1492,
    1248                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1361,
    1249                 :      1363, 1492, 1492, 1492, 1365, 1492, 1492, 1492, 1492, 1492,
    1250                 : 
    1251                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1367, 1492,
    1252                 :      1492, 1369, 1371, 1492, 1492, 1492, 1373, 1375, 1492, 1492,
    1253                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1254                 :      1492, 1492, 1492, 1492, 1492, 1377, 1492, 1492, 1492, 1492,
    1255                 :      1379, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1256                 :      1492, 1492, 1492, 1492, 1492, 1492, 1381, 1492, 1383, 1492,
    1257                 :      1492, 1385, 1492, 1387, 1492, 1492, 1492, 1492, 1492, 1492,
    1258                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1389,
    1259                 :      1492, 1492, 1492, 1492, 1391, 1492, 1492, 1492, 1492, 1492,
    1260                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1261                 : 
    1262                 :      1492, 1492, 1393, 1492, 1492, 1492, 1395, 1397, 1492, 1492,
    1263                 :      1492, 1399, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1264                 :      1492, 1492, 1492, 1492, 1492, 1401, 1492, 1492, 1492, 1403,
    1265                 :      1405, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1266                 :      1492, 1492, 1492, 1492, 1492, 1492, 1407, 1492, 1409, 1492,
    1267                 :      1492, 1411, 1492, 1413, 1492, 1492, 1492, 1415, 1492, 1492,
    1268                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1269                 :      1492, 1492, 1492, 1492, 1417, 1419, 1492, 1492, 1492, 1492,
    1270                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1271                 :      1492, 1492, 1421, 1492, 1492, 1492, 1423, 1492, 1492, 1492,
    1272                 : 
    1273                 :      1492, 1425, 1492, 1427, 1492, 1492, 1492, 1492, 1492, 1492,
    1274                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1429,
    1275                 :      1431, 1492, 1492, 1492, 1433, 1492, 1492, 1492, 1492, 1492,
    1276                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1435, 1492,
    1277                 :      1492, 1437, 1439, 1492, 1492, 1492, 1441, 1443, 1492, 1492,
    1278                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1279                 :      1492, 1492, 1492, 1492, 1492, 1445, 1492, 1492, 1492, 1492,
    1280                 :      1447, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1281                 :      1492, 1492, 1492, 1492, 1492, 1492, 1449, 1492, 1451, 1492,
    1282                 :      1492, 1453, 1492, 1455, 1492, 1492, 1492, 1492, 1492, 1492,
    1283                 : 
    1284                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1457,
    1285                 :      1492, 1492, 1492, 1492, 1459, 1492, 1492, 1492, 1492, 1492,
    1286                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1287                 :      1492, 1492, 1461, 1492, 1492, 1492, 1463, 1465, 1492, 1492,
    1288                 :      1492, 1467, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1289                 :      1492, 1492, 1492, 1492, 1492, 1469, 1492, 1492, 1492, 1471,
    1290                 :      1473, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1291                 :      1492, 1492, 1492, 1492, 1492, 1492, 1475, 1492, 1477, 1492,
    1292                 :      1492, 1479, 1492, 1481, 1492, 1492, 1492, 1483, 1492, 1492,
    1293                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1294                 : 
    1295                 :      1492, 1492, 1492, 1492, 1485, 1487, 1492, 1492, 1492, 1492,
    1296                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1297                 :      1492, 1492, 1489, 1492, 1492, 1492, 1491, 1492, 1492, 1492,
    1298                 :      1492,  132, 1492,  531, 1492, 1492, 1492, 1492, 1492, 1492,
    1299                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1015,
    1300                 :      1013, 1492, 1492, 1492, 1011, 1492, 1492, 1492, 1492, 1492,
    1301                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1009, 1492,
    1302                 :      1492, 1007, 1005, 1492, 1492, 1492, 1003, 1001, 1492, 1492,
    1303                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1304                 :      1492, 1492, 1492, 1492, 1492,  999, 1492, 1492, 1492, 1492,
    1305                 : 
    1306                 :       997, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1307                 :      1492, 1492, 1492, 1492, 1492, 1492,  995, 1492,  993, 1492,
    1308                 :      1492,  991, 1492,  989, 1492, 1492, 1492, 1492, 1492, 1492,
    1309                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  987,
    1310                 :      1492, 1492, 1492, 1492,  985, 1492, 1492, 1492, 1492, 1492,
    1311                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1312                 :      1492, 1492,  983, 1492, 1492, 1492,  981,  979, 1492, 1492,
    1313                 :      1492,  977, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1314                 :      1492, 1492, 1492, 1492, 1492,  975, 1492, 1492, 1492,  973,
    1315                 :       971, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1316                 : 
    1317                 :      1492, 1492, 1492, 1492, 1492, 1492,  969, 1492,  967, 1492,
    1318                 :      1492,  965, 1492,  963, 1492, 1492, 1492,  961, 1492, 1492,
    1319                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1320                 :      1492, 1492, 1492, 1492,  959,  957, 1492, 1492, 1492, 1492,
    1321                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1322                 :      1492, 1492,  955, 1492, 1492, 1492,  953, 1492, 1492, 1492,
    1323                 :      1492,  951, 1492,  949, 1492, 1492, 1492, 1492, 1492, 1492,
    1324                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  947,
    1325                 :       945, 1492, 1492, 1492,  943, 1492, 1492, 1492, 1492, 1492,
    1326                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  941, 1492,
    1327                 : 
    1328                 :      1492,  939,  937, 1492, 1492, 1492,  935,  933, 1492, 1492,
    1329                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1330                 :      1492, 1492, 1492, 1492, 1492,  931, 1492, 1492, 1492, 1492,
    1331                 :       929, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1332                 :      1492, 1492, 1492, 1492, 1492, 1492,  927, 1492,  925, 1492,
    1333                 :      1492,  923, 1492,  921, 1492, 1492, 1492, 1492, 1492, 1492,
    1334                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  919,
    1335                 :      1492, 1492, 1492, 1492,  917, 1492, 1492, 1492, 1492, 1492,
    1336                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1337                 :      1492, 1492,  915, 1492, 1492, 1492,  913,  911, 1492, 1492,
    1338                 : 
    1339                 :      1492,  909, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1340                 :      1492, 1492, 1492, 1492, 1492,  907, 1492, 1492, 1492,  905,
    1341                 :       903, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1342                 :      1492, 1492, 1492, 1492, 1492, 1492,  901, 1492,  899, 1492,
    1343                 :      1492,  897, 1492,  895, 1492, 1492, 1492,  893, 1492, 1492,
    1344                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1345                 :      1492, 1492, 1492, 1492,  891,  889, 1492, 1492, 1492, 1492,
    1346                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1347                 :      1492, 1492,  887, 1492, 1492, 1492,  885, 1492, 1492, 1492,
    1348                 :      1492,  883, 1492,  881, 1492, 1492, 1492, 1492, 1492, 1492,
    1349                 : 
    1350                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  879,
    1351                 :       877, 1492, 1492, 1492,  875, 1492, 1492, 1492, 1492, 1492,
    1352                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  873, 1492,
    1353                 :      1492,  871,  869, 1492, 1492, 1492,  867,  865, 1492, 1492,
    1354                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1355                 :      1492, 1492, 1492, 1492, 1492,  863, 1492, 1492, 1492, 1492,
    1356                 :       861, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1357                 :      1492, 1492, 1492, 1492, 1492, 1492,  859, 1492,  857, 1492,
    1358                 :      1492,  855, 1492,  853, 1492, 1492, 1492, 1492, 1492, 1492,
    1359                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  851,
    1360                 : 
    1361                 :      1492, 1492, 1492, 1492,  849, 1492, 1492, 1492, 1492, 1492,
    1362                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1363                 :      1492, 1492,  847, 1492, 1492, 1492,  845,  843, 1492, 1492,
    1364                 :      1492,  841, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1365                 :      1492, 1492, 1492, 1492, 1492,  839, 1492, 1492, 1492,  837,
    1366                 :       835, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1367                 :      1492, 1492, 1492, 1492, 1492, 1492,  833, 1492,  831, 1492,
    1368                 :      1492,  829, 1492,  827, 1492, 1492, 1492,  825, 1492, 1492,
    1369                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1370                 :      1492, 1492, 1492, 1492,  823,  821, 1492, 1492, 1492, 1492,
    1371                 : 
    1372                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1373                 :      1492, 1492,  819, 1492, 1492, 1492,  817, 1492, 1492, 1492,
    1374                 :      1492,  815, 1492,  813, 1492, 1492, 1492, 1492, 1492, 1492,
    1375                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  811,
    1376                 :       809, 1492, 1492, 1492,  807, 1492, 1492, 1492, 1492, 1492,
    1377                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  805, 1492,
    1378                 :      1492,  803,  801, 1492, 1492, 1492,  799,  797, 1492, 1492,
    1379                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1380                 :      1492, 1492, 1492, 1492, 1492,  795, 1492, 1492, 1492, 1492,
    1381                 :       793, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1382                 : 
    1383                 :      1492, 1492, 1492, 1492, 1492, 1492,  791, 1492,  789, 1492,
    1384                 :      1492,  787, 1492,  785, 1492, 1492, 1492, 1492, 1492, 1492,
    1385                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,  783,
    1386                 :      1492, 1492, 1492, 1492,  781, 1492, 1492, 1492, 1492, 1492,
    1387                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1388                 :      1492, 1492,  779, 1492, 1492, 1492,  777,  775, 1492, 1492,
    1389                 :      1492,  773, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1390                 :      1492, 1492, 1492, 1492, 1492,  771, 1492, 1492, 1492,  769,
    1391                 :       767, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1392                 :      1492, 1492, 1492, 1492, 1492, 1492,  765, 1492,  763, 1492,
    1393                 : 
    1394                 :      1492,  761, 1492,  759, 1492, 1492, 1492,  757, 1492, 1492,
    1395                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1396                 :      1492, 1492, 1492, 1492,  755,  753, 1492, 1492, 1492, 1492,
    1397                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1398                 :      1492, 1492,  751, 1492, 1492, 1492,  749, 1492, 1492, 1492,
    1399                 :      1492,  747, 1492,  745, 1492, 1492, 1492,  743, 1492, 1492,
    1400                 :      1492,  741, 1492,  739, 1492, 1492, 1492,  737, 1492,  727,
    1401                 :       727,  735,  731, 1492,  730,  729,  727, 1492,  726,  725,
    1402                 :       724,  722,  721, 1492,  720,  719,  713, 1492,  709,  707,
    1403                 :       706,  704,  703, 1492,   28,   28,   28,   28,   28,   28,
    1404                 : 
    1405                 :        28,   28,   28,   28,   28,   28,   79,   79,   79,   79,
    1406                 :        79,   79,   79,   79,   79,   79,   79,   79,   84,   84,
    1407                 :        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
    1408                 :        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
    1409                 :        98,   98,  110,  110,  110,  110,  110,  110,  110,  110,
    1410                 :       110,  110,  110,  110,  113,  113,  113,  113,  113,  113,
    1411                 :       113,  113,  113,  113,  113,  113,  119,  119,  119,  119,
    1412                 :       119,  119,  119,  119,  119,  119,  119,  119,  121,  121,
    1413                 :       121,  121,  121,  121,  121,  121,  702,  121,  121,  121,
    1414                 :       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
    1415                 : 
    1416                 :       127,  127,  137,  137,  137,  137,  137,  137,  137,  137,
    1417                 :       137,  137,  137,  137,  176,  700,  699,  176,  223,  223,
    1418                 :       223,  698,  223,  223,  223,  223,  223,  223,  223,  223,
    1419                 :       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    1420                 :       696,  235,  268,  695,  694,  692,  268,  268,  691,  268,
    1421                 :       271,  690,  689,  271,  272,  688,  687,  272,  276,  276,
    1422                 :       276,  276,  685,  276,  276,  276,  276,  276,  276,  276,
    1423                 :       279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
    1424                 :       279,  279,  283,  283,  283,  283,  283,  283,  283,  283,
    1425                 :       283,  283,  283,  283,  289,  289,  289,  289,  289,  289,
    1426                 : 
    1427                 :       289,  289,  289,  684,  289,  291,  683,  682,  291,  227,
    1428                 :       227,  227,  227,  227,  227,  227,  227,  227,  681,  227,
    1429                 :       368,  368,  680,  678,  368,  239,  239,  239,  239,  239,
    1430                 :       239,  239,  239,  239,  677,  239,  257,  257,  257,  257,
    1431                 :       257,  257,  257,  257,  257,  676,  257,  373,  373,  373,
    1432                 :       373,  373,  373,  373,  373,  373,  675,  373,  390,  390,
    1433                 :       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
    1434                 :       407,  674,  673,  672,  671,  670,  669,  668,  407,  459,
    1435                 :       459,  459,  459,  459,  459,  459,  459,  459,  666,  459,
    1436                 :       462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
    1437                 : 
    1438                 :       462,  462,  467,  467,  467,  467,  467,  467,  467,  467,
    1439                 :       467,  467,  467,  467,  486,  665,  664,  663,  486,  662,
    1440                 :       661,  486,  534,  534,  534,  534,  534,  534,  534,  534,
    1441                 :       534,  534,  534,  534,  582,  582,  582,  582,  582,  582,
    1442                 :       582,  582,  582,  582,  582,  582,  619,  619,  619,  619,
    1443                 :       619,  619,  619,  619,  619,  619,  619,  619,  650,  650,
    1444                 :       650,  650,  650,  650,  650,  650,  650,  650,  650,  650,
    1445                 :       667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
    1446                 :       667,  667,  679,  679,  679,  679,  679,  679,  679,  679,
    1447                 :       679,  679,  679,  679,  686,  686,  686,  686,  686,  686,
    1448                 : 
    1449                 :       686,  686,  686,  686,  686,  686,  693,  693,  693,  693,
    1450                 :       693,  693,  693,  693,  693,  693,  693,  693,  697,  697,
    1451                 :       697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
    1452                 :       701,  701,  701,  701,  701,  701,  701,  701,  701,  701,
    1453                 :       701,  701,  705,  705,  705,  705,  705,  705,  705,  705,
    1454                 :       705,  705,  705,  705,  708,  708,  708,  708,  708,  708,
    1455                 :       708,  708,  708,  708,  708,  708,  712,  712,  712,  712,
    1456                 :       712,  712,  712,  712,  712,  712,  712,  712,  718,  718,
    1457                 :       718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
    1458                 :       723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
    1459                 : 
    1460                 :       723,  723,  728,  728,  728,  728,  728,  728,  728,  728,
    1461                 :       728,  728,  728,  728,  734,  734,  734,  734,  734,  734,
    1462                 :       734,  734,  734,  734,  734,  734,  736,  736,  736,  736,
    1463                 :       736,  736,  736,  736,  736,  736,  736,  736,  738,  738,
    1464                 :       738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
    1465                 :       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
    1466                 :       740,  740,  742,  742,  742,  742,  742,  742,  742,  742,
    1467                 :       742,  742,  742,  742,  744,  744,  744,  744,  744,  744,
    1468                 :       744,  744,  744,  744,  744,  744,  746,  746,  746,  746,
    1469                 :       746,  746,  746,  746,  746,  746,  746,  746,  748,  748,
    1470                 : 
    1471                 :       748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
    1472                 :       750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
    1473                 :       750,  750,  752,  752,  752,  752,  752,  752,  752,  752,
    1474                 :       752,  752,  752,  752,  754,  754,  754,  754,  754,  754,
    1475                 :       754,  754,  754,  754,  754,  754,  756,  756,  756,  756,
    1476                 :       756,  756,  756,  756,  756,  756,  756,  756,  758,  758,
    1477                 :       758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
    1478                 :       760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
    1479                 :       760,  760,  762,  762,  762,  762,  762,  762,  762,  762,
    1480                 :       762,  762,  762,  762,  764,  764,  764,  764,  764,  764,
    1481                 : 
    1482                 :       764,  764,  764,  764,  764,  764,  766,  766,  766,  766,
    1483                 :       766,  766,  766,  766,  766,  766,  766,  766,  768,  768,
    1484                 :       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
    1485                 :       770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
    1486                 :       770,  770,  772,  772,  772,  772,  772,  772,  772,  772,
    1487                 :       772,  772,  772,  772,  774,  774,  774,  774,  774,  774,
    1488                 :       774,  774,  774,  774,  774,  774,  776,  776,  776,  776,
    1489                 :       776,  776,  776,  776,  776,  776,  776,  776,  778,  778,
    1490                 :       778,  778,  778,  778,  778,  778,  778,  778,  778,  778,
    1491                 :       780,  780,  780,  780,  780,  780,  780,  780,  780,  780,
    1492                 : 
    1493                 :       780,  780,  782,  782,  782,  782,  782,  782,  782,  782,
    1494                 :       782,  782,  782,  782,  784,  784,  784,  784,  784,  784,
    1495                 :       784,  784,  784,  784,  784,  784,  786,  786,  786,  786,
    1496                 :       786,  786,  786,  786,  786,  786,  786,  786,  788,  788,
    1497                 :       788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
    1498                 :       790,  790,  790,  790,  790,  790,  790,  790,  790,  790,
    1499                 :       790,  790,  792,  792,  792,  792,  792,  792,  792,  792,
    1500                 :       792,  792,  792,  792,  794,  794,  794,  794,  794,  794,
    1501                 :       794,  794,  794,  794,  794,  794,  796,  796,  796,  796,
    1502                 :       796,  796,  796,  796,  796,  796,  796,  796,  798,  798,
    1503                 : 
    1504                 :       798,  798,  798,  798,  798,  798,  798,  798,  798,  798,
    1505                 :       800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
    1506                 :       800,  800,  802,  802,  802,  802,  802,  802,  802,  802,
    1507                 :       802,  802,  802,  802,  804,  804,  804,  804,  804,  804,
    1508                 :       804,  804,  804,  804,  804,  804,  806,  806,  806,  806,
    1509                 :       806,  806,  806,  806,  806,  806,  806,  806,  808,  808,
    1510                 :       808,  808,  808,  808,  808,  808,  808,  808,  808,  808,
    1511                 :       810,  810,  810,  810,  810,  810,  810,  810,  810,  810,
    1512                 :       810,  810,  812,  812,  812,  812,  812,  812,  812,  812,
    1513                 :       812,  812,  812,  812,  814,  814,  814,  814,  814,  814,
    1514                 : 
    1515                 :       814,  814,  814,  814,  814,  814,  816,  816,  816,  816,
    1516                 :       816,  816,  816,  816,  816,  816,  816,  816,  818,  818,
    1517                 :       818,  818,  818,  818,  818,  818,  818,  818,  818,  818,
    1518                 :       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1519                 :       820,  820,  822,  822,  822,  822,  822,  822,  822,  822,
    1520                 :       822,  822,  822,  822,  824,  824,  824,  824,  824,  824,
    1521                 :       824,  824,  824,  824,  824,  824,  826,  826,  826,  826,
    1522                 :       826,  826,  826,  826,  826,  826,  826,  826,  828,  828,
    1523                 :       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
    1524                 :       830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
    1525                 : 
    1526                 :       830,  830,  832,  832,  832,  832,  832,  832,  832,  832,
    1527                 :       832,  832,  832,  832,  834,  834,  834,  834,  834,  834,
    1528                 :       834,  834,  834,  834,  834,  834,  836,  836,  836,  836,
    1529                 :       836,  836,  836,  836,  836,  836,  836,  836,  838,  838,
    1530                 :       838,  838,  838,  838,  838,  838,  838,  838,  838,  838,
    1531                 :       840,  840,  840,  840,  840,  840,  840,  840,  840,  840,
    1532                 :       840,  840,  842,  842,  842,  842,  842,  842,  842,  842,
    1533                 :       842,  842,  842,  842,  844,  844,  844,  844,  844,  844,
    1534                 :       844,  844,  844,  844,  844,  844,  846,  846,  846,  846,
    1535                 :       846,  846,  846,  846,  846,  846,  846,  846,  848,  848,
    1536                 : 
    1537                 :       848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
    1538                 :       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1539                 :       850,  850,  852,  852,  852,  852,  852,  852,  852,  852,
    1540                 :       852,  852,  852,  852,  854,  854,  854,  854,  854,  854,
    1541                 :       854,  854,  854,  854,  854,  854,  856,  856,  856,  856,
    1542                 :       856,  856,  856,  856,  856,  856,  856,  856,  858,  858,
    1543                 :       858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
    1544                 :       860,  860,  860,  860,  860,  860,  860,  860,  860,  860,
    1545                 :       860,  860,  862,  862,  862,  862,  862,  862,  862,  862,
    1546                 :       862,  862,  862,  862,  864,  864,  864,  864,  864,  864,
    1547                 : 
    1548                 :       864,  864,  864,  864,  864,  864,  866,  866,  866,  866,
    1549                 :       866,  866,  866,  866,  866,  866,  866,  866,  868,  868,
    1550                 :       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    1551                 :       870,  870,  870,  870,  870,  870,  870,  870,  870,  870,
    1552                 :       870,  870,  872,  872,  872,  872,  872,  872,  872,  872,
    1553                 :       872,  872,  872,  872,  874,  874,  874,  874,  874,  874,
    1554                 :       874,  874,  874,  874,  874,  874,  876,  876,  876,  876,
    1555                 :       876,  876,  876,  876,  876,  876,  876,  876,  878,  878,
    1556                 :       878,  878,  878,  878,  878,  878,  878,  878,  878,  878,
    1557                 :       880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
    1558                 : 
    1559                 :       880,  880,  882,  882,  882,  882,  882,  882,  882,  882,
    1560                 :       882,  882,  882,  882,  884,  884,  884,  884,  884,  884,
    1561                 :       884,  884,  884,  884,  884,  884,  886,  886,  886,  886,
    1562                 :       886,  886,  886,  886,  886,  886,  886,  886,  888,  888,
    1563                 :       888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
    1564                 :       890,  890,  890,  890,  890,  890,  890,  890,  890,  890,
    1565                 :       890,  890,  892,  892,  892,  892,  892,  892,  892,  892,
    1566                 :       892,  892,  892,  892,  894,  894,  894,  894,  894,  894,
    1567                 :       894,  894,  894,  894,  894,  894,  896,  896,  896,  896,
    1568                 :       896,  896,  896,  896,  896,  896,  896,  896,  898,  898,
    1569                 : 
    1570                 :       898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
    1571                 :       900,  900,  900,  900,  900,  900,  900,  900,  900,  900,
    1572                 :       900,  900,  902,  902,  902,  902,  902,  902,  902,  902,
    1573                 :       902,  902,  902,  902,  904,  904,  904,  904,  904,  904,
    1574                 :       904,  904,  904,  904,  904,  904,  906,  906,  906,  906,
    1575                 :       906,  906,  906,  906,  906,  906,  906,  906,  908,  908,
    1576                 :       908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    1577                 :       910,  910,  910,  910,  910,  910,  910,  910,  910,  910,
    1578                 :       910,  910,  912,  912,  912,  912,  912,  912,  912,  912,
    1579                 :       912,  912,  912,  912,  914,  914,  914,  914,  914,  914,
    1580                 : 
    1581                 :       914,  914,  914,  914,  914,  914,  916,  916,  916,  916,
    1582                 :       916,  916,  916,  916,  916,  916,  916,  916,  918,  918,
    1583                 :       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
    1584                 :       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    1585                 :       920,  920,  922,  922,  922,  922,  922,  922,  922,  922,
    1586                 :       922,  922,  922,  922,  924,  924,  924,  924,  924,  924,
    1587                 :       924,  924,  924,  924,  924,  924,  926,  926,  926,  926,
    1588                 :       926,  926,  926,  926,  926,  926,  926,  926,  928,  928,
    1589                 :       928,  928,  928,  928,  928,  928,  928,  928,  928,  928,
    1590                 :       930,  930,  930,  930,  930,  930,  930,  930,  930,  930,
    1591                 : 
    1592                 :       930,  930,  932,  932,  932,  932,  932,  932,  932,  932,
    1593                 :       932,  932,  932,  932,  934,  934,  934,  934,  934,  934,
    1594                 :       934,  934,  934,  934,  934,  934,  936,  936,  936,  936,
    1595                 :       936,  936,  936,  936,  936,  936,  936,  936,  938,  938,
    1596                 :       938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
    1597                 :       940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
    1598                 :       940,  940,  942,  942,  942,  942,  942,  942,  942,  942,
    1599                 :       942,  942,  942,  942,  944,  944,  944,  944,  944,  944,
    1600                 :       944,  944,  944,  944,  944,  944,  946,  946,  946,  946,
    1601                 :       946,  946,  946,  946,  946,  946,  946,  946,  948,  948,
    1602                 : 
    1603                 :       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
    1604                 :       950,  950,  950,  950,  950,  950,  950,  950,  950,  950,
    1605                 :       950,  950,  952,  952,  952,  952,  952,  952,  952,  952,
    1606                 :       952,  952,  952,  952,  954,  954,  954,  954,  954,  954,
    1607                 :       954,  954,  954,  954,  954,  954,  956,  956,  956,  956,
    1608                 :       956,  956,  956,  956,  956,  956,  956,  956,  958,  958,
    1609                 :       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
    1610                 :       960,  960,  960,  960,  960,  960,  960,  960,  960,  960,
    1611                 :       960,  960,  962,  962,  962,  962,  962,  962,  962,  962,
    1612                 :       962,  962,  962,  962,  964,  964,  964,  964,  964,  964,
    1613                 : 
    1614                 :       964,  964,  964,  964,  964,  964,  966,  966,  966,  966,
    1615                 :       966,  966,  966,  966,  966,  966,  966,  966,  968,  968,
    1616                 :       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    1617                 :       970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
    1618                 :       970,  970,  972,  972,  972,  972,  972,  972,  972,  972,
    1619                 :       972,  972,  972,  972,  974,  974,  974,  974,  974,  974,
    1620                 :       974,  974,  974,  974,  974,  974,  976,  976,  976,  976,
    1621                 :       976,  976,  976,  976,  976,  976,  976,  976,  978,  978,
    1622                 :       978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
    1623                 :       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    1624                 : 
    1625                 :       980,  980,  982,  982,  982,  982,  982,  982,  982,  982,
    1626                 :       982,  982,  982,  982,  984,  984,  984,  984,  984,  984,
    1627                 :       984,  984,  984,  984,  984,  984,  986,  986,  986,  986,
    1628                 :       986,  986,  986,  986,  986,  986,  986,  986,  988,  988,
    1629                 :       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    1630                 :       990,  990,  990,  990,  990,  990,  990,  990,  990,  990,
    1631                 :       990,  990,  992,  992,  992,  992,  992,  992,  992,  992,
    1632                 :       992,  992,  992,  992,  994,  994,  994,  994,  994,  994,
    1633                 :       994,  994,  994,  994,  994,  994,  996,  996,  996,  996,
    1634                 :       996,  996,  996,  996,  996,  996,  996,  996,  998,  998,
    1635                 : 
    1636                 :       998,  998,  998,  998,  998,  998,  998,  998,  998,  998,
    1637                 :      1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
    1638                 :      1000, 1000, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    1639                 :      1002, 1002, 1002, 1002, 1004, 1004, 1004, 1004, 1004, 1004,
    1640                 :      1004, 1004, 1004, 1004, 1004, 1004, 1006, 1006, 1006, 1006,
    1641                 :      1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1008, 1008,
    1642                 :      1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
    1643                 :      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    1644                 :      1010, 1010, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
    1645                 :      1012, 1012, 1012, 1012, 1014, 1014, 1014, 1014, 1014, 1014,
    1646                 : 
    1647                 :      1014, 1014, 1014, 1014, 1014, 1014, 1016, 1016, 1016, 1016,
    1648                 :      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1018, 1018,
    1649                 :      1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
    1650                 :      1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
    1651                 :      1020, 1020, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
    1652                 :      1022, 1022, 1022, 1022, 1024, 1024, 1024, 1024, 1024, 1024,
    1653                 :      1024, 1024, 1024, 1024, 1024, 1024, 1026, 1026, 1026, 1026,
    1654                 :      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1028, 1028,
    1655                 :      1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
    1656                 :      1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
    1657                 : 
    1658                 :      1030, 1030, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
    1659                 :      1032, 1032, 1032, 1032, 1034, 1034, 1034, 1034, 1034, 1034,
    1660                 :      1034, 1034, 1034, 1034, 1034, 1034, 1036, 1036, 1036, 1036,
    1661                 :      1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1038, 1038,
    1662                 :      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    1663                 :      1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
    1664                 :      1040, 1040, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    1665                 :      1042, 1042, 1042, 1042, 1044, 1044, 1044, 1044, 1044, 1044,
    1666                 :      1044, 1044, 1044, 1044, 1044, 1044, 1046, 1046, 1046, 1046,
    1667                 :      1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1048, 1048,
    1668                 : 
    1669                 :      1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
    1670                 :      1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
    1671                 :      1050, 1050, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
    1672                 :      1052, 1052, 1052, 1052, 1054, 1054, 1054, 1054, 1054, 1054,
    1673                 :      1054, 1054, 1054, 1054, 1054, 1054, 1056, 1056, 1056, 1056,
    1674                 :      1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1058, 1058,
    1675                 :      1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058,
    1676                 :      1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
    1677                 :      1060, 1060, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
    1678                 :      1062, 1062, 1062, 1062, 1064, 1064, 1064, 1064, 1064, 1064,
    1679                 : 
    1680                 :      1064, 1064, 1064, 1064, 1064, 1064, 1066, 1066, 1066, 1066,
    1681                 :      1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1068, 1068,
    1682                 :      1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
    1683                 :      1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070,
    1684                 :      1070, 1070, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,
    1685                 :      1072, 1072, 1072, 1072, 1074, 1074, 1074, 1074, 1074, 1074,
    1686                 :      1074, 1074, 1074, 1074, 1074, 1074, 1076, 1076, 1076, 1076,
    1687                 :      1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078, 1078,
    1688                 :      1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
    1689                 :      1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
    1690                 : 
    1691                 :      1080, 1080, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
    1692                 :      1082, 1082, 1082, 1082, 1084, 1084, 1084, 1084, 1084, 1084,
    1693                 :      1084, 1084, 1084, 1084, 1084, 1084, 1086, 1086, 1086, 1086,
    1694                 :      1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1088, 1088,
    1695                 :      1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088,
    1696                 :      1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
    1697                 :      1090, 1090, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
    1698                 :      1092, 1092, 1092, 1092, 1094, 1094, 1094, 1094, 1094, 1094,
    1699                 :      1094, 1094, 1094, 1094, 1094, 1094, 1096, 1096, 1096, 1096,
    1700                 :      1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1098, 1098,
    1701                 : 
    1702                 :      1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
    1703                 :      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
    1704                 :      1100, 1100, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
    1705                 :      1102, 1102, 1102, 1102, 1104, 1104, 1104, 1104, 1104, 1104,
    1706                 :      1104, 1104, 1104, 1104, 1104, 1104, 1106, 1106, 1106, 1106,
    1707                 :      1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1108, 1108,
    1708                 :      1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
    1709                 :      1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
    1710                 :      1110, 1110, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
    1711                 :      1112, 1112, 1112, 1112, 1114, 1114, 1114, 1114, 1114, 1114,
    1712                 : 
    1713                 :      1114, 1114, 1114, 1114, 1114, 1114, 1116, 1116, 1116, 1116,
    1714                 :      1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1118, 1118,
    1715                 :      1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
    1716                 :      1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
    1717                 :      1120, 1120, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
    1718                 :      1122, 1122, 1122, 1122, 1124, 1124, 1124, 1124, 1124, 1124,
    1719                 :      1124, 1124, 1124, 1124, 1124, 1124, 1126, 1126, 1126, 1126,
    1720                 :      1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1128, 1128,
    1721                 :      1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
    1722                 :      1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
    1723                 : 
    1724                 :      1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
    1725                 :      1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134,
    1726                 :      1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136,
    1727                 :      1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1138, 1138,
    1728                 :      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
    1729                 :      1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
    1730                 :      1140, 1140, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
    1731                 :      1142, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1144,
    1732                 :      1144, 1144, 1144, 1144, 1144, 1144, 1146, 1146, 1146, 1146,
    1733                 :      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148,
    1734                 : 
    1735                 :      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
    1736                 :      1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
    1737                 :      1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
    1738                 :      1152, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1154, 1154,
    1739                 :      1154, 1154, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1156,
    1740                 :      1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1158, 1158,
    1741                 :      1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
    1742                 :      1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
    1743                 :      1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
    1744                 :      1162, 1162, 1162, 1162, 1164, 1164, 1164, 1164, 1164, 1164,
    1745                 : 
    1746                 :      1164, 1164, 1164, 1164, 1164, 1164, 1166, 1166, 1166, 1166,
    1747                 :      1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168,
    1748                 :      1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
    1749                 :      1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
    1750                 :      1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
    1751                 :      1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174,
    1752                 :      1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1176, 1176,
    1753                 :      1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1178, 1178,
    1754                 :      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
    1755                 :      1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
    1756                 : 
    1757                 :      1180, 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
    1758                 :      1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184,
    1759                 :      1184, 1184, 1184, 1184, 1184, 1184, 1186, 1186, 1186, 1186,
    1760                 :      1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1188, 1188,
    1761                 :      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
    1762                 :      1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
    1763                 :      1190, 1190, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
    1764                 :      1192, 1192, 1192, 1192, 1194, 1194, 1194, 1194, 1194, 1194,
    1765                 :      1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196,
    1766                 :      1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1198, 1198,
    1767                 : 
    1768                 :      1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
    1769                 :      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
    1770                 :      1200, 1200, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
    1771                 :      1202, 1202, 1202, 1202, 1204, 1204, 1204, 1204, 1204, 1204,
    1772                 :      1204, 1204, 1204, 1204, 1204, 1204, 1206, 1206, 1206, 1206,
    1773                 :      1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1208, 1208,
    1774                 :      1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
    1775                 :      1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
    1776                 :      1210, 1210, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
    1777                 :      1212, 1212, 1212, 1212, 1214, 1214, 1214, 1214, 1214, 1214,
    1778                 : 
    1779                 :      1214, 1214, 1214, 1214, 1214, 1214, 1216, 1216, 1216, 1216,
    1780                 :      1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1218, 1218,
    1781                 :      1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
    1782                 :      1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
    1783                 :      1220, 1220, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
    1784                 :      1222, 1222, 1222, 1222, 1224, 1224, 1224, 1224, 1224, 1224,
    1785                 :      1224, 1224, 1224, 1224, 1224, 1224, 1226, 1226, 1226, 1226,
    1786                 :      1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1228, 1228,
    1787                 :      1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228,
    1788                 :      1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
    1789                 : 
    1790                 :      1230, 1230, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
    1791                 :      1232, 1232, 1232, 1232, 1234, 1234, 1234, 1234, 1234, 1234,
    1792                 :      1234, 1234, 1234, 1234, 1234, 1234, 1236, 1236, 1236, 1236,
    1793                 :      1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1238, 1238,
    1794                 :      1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
    1795                 :      1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
    1796                 :      1240, 1240, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
    1797                 :      1242, 1242, 1242, 1242, 1244, 1244, 1244, 1244, 1244, 1244,
    1798                 :      1244, 1244, 1244, 1244, 1244, 1244, 1246, 1246, 1246, 1246,
    1799                 :      1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1248, 1248,
    1800                 : 
    1801                 :      1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
    1802                 :      1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
    1803                 :      1250, 1250, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
    1804                 :      1252, 1252, 1252, 1252, 1254, 1254, 1254, 1254, 1254, 1254,
    1805                 :      1254, 1254, 1254, 1254, 1254, 1254, 1256, 1256, 1256, 1256,
    1806                 :      1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1258, 1258,
    1807                 :      1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
    1808                 :      1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
    1809                 :      1260, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
    1810                 :      1262, 1262, 1262, 1262, 1264, 1264, 1264, 1264, 1264, 1264,
    1811                 : 
    1812                 :      1264, 1264, 1264, 1264, 1264, 1264, 1266, 1266, 1266, 1266,
    1813                 :      1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1268, 1268,
    1814                 :      1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
    1815                 :      1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
    1816                 :      1270, 1270, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
    1817                 :      1272, 1272, 1272, 1272, 1274, 1274, 1274, 1274, 1274, 1274,
    1818                 :      1274, 1274, 1274, 1274, 1274, 1274, 1276, 1276, 1276, 1276,
    1819                 :      1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1278, 1278,
    1820                 :      1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
    1821                 :      1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280,
    1822                 : 
    1823                 :      1280, 1280, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
    1824                 :      1282, 1282, 1282, 1282, 1284, 1284, 1284, 1284, 1284, 1284,
    1825                 :      1284, 1284, 1284, 1284, 1284, 1284, 1286, 1286, 1286, 1286,
    1826                 :      1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1288, 1288,
    1827                 :      1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
    1828                 :      1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290,
    1829                 :      1290, 1290, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
    1830                 :      1292, 1292, 1292, 1292, 1294, 1294, 1294, 1294, 1294, 1294,
    1831                 :      1294, 1294, 1294, 1294, 1294, 1294, 1296, 1296, 1296, 1296,
    1832                 :      1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1298, 1298,
    1833                 : 
    1834                 :      1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
    1835                 :      1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
    1836                 :      1300, 1300, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
    1837                 :      1302, 1302, 1302, 1302, 1304, 1304, 1304, 1304, 1304, 1304,
    1838                 :      1304, 1304, 1304, 1304, 1304, 1304, 1306, 1306, 1306, 1306,
    1839                 :      1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1308, 1308,
    1840                 :      1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
    1841                 :      1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310,
    1842                 :      1310, 1310, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312,
    1843                 :      1312, 1312, 1312, 1312, 1314, 1314, 1314, 1314, 1314, 1314,
    1844                 : 
    1845                 :      1314, 1314, 1314, 1314, 1314, 1314, 1316, 1316, 1316, 1316,
    1846                 :      1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1318, 1318,
    1847                 :      1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318,
    1848                 :      1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
    1849                 :      1320, 1320, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
    1850                 :      1322, 1322, 1322, 1322, 1324, 1324, 1324, 1324, 1324, 1324,
    1851                 :      1324, 1324, 1324, 1324, 1324, 1324, 1326, 1326, 1326, 1326,
    1852                 :      1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1328, 1328,
    1853                 :      1328, 1328, 1328, 1328, 1328, 1328, 1328, 1328, 1328, 1328,
    1854                 :      1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
    1855                 : 
    1856                 :      1330, 1330, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
    1857                 :      1332, 1332, 1332, 1332, 1334, 1334, 1334, 1334, 1334, 1334,
    1858                 :      1334, 1334, 1334, 1334, 1334, 1334, 1336, 1336, 1336, 1336,
    1859                 :      1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1338, 1338,
    1860                 :      1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338,
    1861                 :      1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340,
    1862                 :      1340, 1340, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
    1863                 :      1342, 1342, 1342, 1342, 1344, 1344, 1344, 1344, 1344, 1344,
    1864                 :      1344, 1344, 1344, 1344, 1344, 1344, 1346, 1346, 1346, 1346,
    1865                 :      1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1348, 1348,
    1866                 : 
    1867                 :      1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
    1868                 :      1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350,
    1869                 :      1350, 1350, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352,
    1870                 :      1352, 1352, 1352, 1352, 1354, 1354, 1354, 1354, 1354, 1354,
    1871                 :      1354, 1354, 1354, 1354, 1354, 1354, 1356, 1356, 1356, 1356,
    1872                 :      1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1358, 1358,
    1873                 :      1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
    1874                 :      1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
    1875                 :      1360, 1360, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
    1876                 :      1362, 1362, 1362, 1362, 1364, 1364, 1364, 1364, 1364, 1364,
    1877                 : 
    1878                 :      1364, 1364, 1364, 1364, 1364, 1364, 1366, 1366, 1366, 1366,
    1879                 :      1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1368, 1368,
    1880                 :      1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368,
    1881                 :      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
    1882                 :      1370, 1370, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
    1883                 :      1372, 1372, 1372, 1372, 1374, 1374, 1374, 1374, 1374, 1374,
    1884                 :      1374, 1374, 1374, 1374, 1374, 1374, 1376, 1376, 1376, 1376,
    1885                 :      1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1378, 1378,
    1886                 :      1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
    1887                 :      1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
    1888                 : 
    1889                 :      1380, 1380, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
    1890                 :      1382, 1382, 1382, 1382, 1384, 1384, 1384, 1384, 1384, 1384,
    1891                 :      1384, 1384, 1384, 1384, 1384, 1384, 1386, 1386, 1386, 1386,
    1892                 :      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1388, 1388,
    1893                 :      1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388,
    1894                 :      1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
    1895                 :      1390, 1390, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
    1896                 :      1392, 1392, 1392, 1392, 1394, 1394, 1394, 1394, 1394, 1394,
    1897                 :      1394, 1394, 1394, 1394, 1394, 1394, 1396, 1396, 1396, 1396,
    1898                 :      1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1398, 1398,
    1899                 : 
    1900                 :      1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
    1901                 :      1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
    1902                 :      1400, 1400, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402,
    1903                 :      1402, 1402, 1402, 1402, 1404, 1404, 1404, 1404, 1404, 1404,
    1904                 :      1404, 1404, 1404, 1404, 1404, 1404, 1406, 1406, 1406, 1406,
    1905                 :      1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1408, 1408,
    1906                 :      1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408,
    1907                 :      1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410,
    1908                 :      1410, 1410, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
    1909                 :      1412, 1412, 1412, 1412, 1414, 1414, 1414, 1414, 1414, 1414,
    1910                 : 
    1911                 :      1414, 1414, 1414, 1414, 1414, 1414, 1416, 1416, 1416, 1416,
    1912                 :      1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1418, 1418,
    1913                 :      1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
    1914                 :      1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
    1915                 :      1420, 1420, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
    1916                 :      1422, 1422, 1422, 1422, 1424, 1424, 1424, 1424, 1424, 1424,
    1917                 :      1424, 1424, 1424, 1424, 1424, 1424, 1426, 1426, 1426, 1426,
    1918                 :      1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1428, 1428,
    1919                 :      1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428,
    1920                 :      1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
    1921                 : 
    1922                 :      1430, 1430, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
    1923                 :      1432, 1432, 1432, 1432, 1434, 1434, 1434, 1434, 1434, 1434,
    1924                 :      1434, 1434, 1434, 1434, 1434, 1434, 1436, 1436, 1436, 1436,
    1925                 :      1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1438, 1438,
    1926                 :      1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438,
    1927                 :      1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
    1928                 :      1440, 1440, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
    1929                 :      1442, 1442, 1442, 1442, 1444, 1444, 1444, 1444, 1444, 1444,
    1930                 :      1444, 1444, 1444, 1444, 1444, 1444, 1446, 1446, 1446, 1446,
    1931                 :      1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1448, 1448,
    1932                 : 
    1933                 :      1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
    1934                 :      1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450,
    1935                 :      1450, 1450, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
    1936                 :      1452, 1452, 1452, 1452, 1454, 1454, 1454, 1454, 1454, 1454,
    1937                 :      1454, 1454, 1454, 1454, 1454, 1454, 1456, 1456, 1456, 1456,
    1938                 :      1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1458, 1458,
    1939                 :      1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
    1940                 :      1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460,
    1941                 :      1460, 1460, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462,
    1942                 :      1462, 1462, 1462, 1462, 1464, 1464, 1464, 1464, 1464, 1464,
    1943                 : 
    1944                 :      1464, 1464, 1464, 1464, 1464, 1464, 1466, 1466, 1466, 1466,
    1945                 :      1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1468, 1468,
    1946                 :      1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468,
    1947                 :      1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470,
    1948                 :      1470, 1470, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472,
    1949                 :      1472, 1472, 1472, 1472, 1474, 1474, 1474, 1474, 1474, 1474,
    1950                 :      1474, 1474, 1474, 1474, 1474, 1474, 1476, 1476, 1476, 1476,
    1951                 :      1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1478, 1478,
    1952                 :      1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478,
    1953                 :      1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
    1954                 : 
    1955                 :      1480, 1480, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482,
    1956                 :      1482, 1482, 1482, 1482, 1484, 1484, 1484, 1484, 1484, 1484,
    1957                 :      1484, 1484, 1484, 1484, 1484, 1484, 1486, 1486, 1486, 1486,
    1958                 :      1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1488, 1488,
    1959                 :      1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
    1960                 :      1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
    1961                 :      1490, 1490,  660,  659,  658,  657,  656,  655,  654,  651,
    1962                 :       649,  648,  647,  646,  645,  644,  643,  642,  641,  640,
    1963                 :       639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
    1964                 :       625,  624,  620,  618,  617,  616,  615,  614,  613,  612,
    1965                 : 
    1966                 :       611,  610,  609,  608,  607,  606,  605,  604,  603,  602,
    1967                 :       601,  600,  599,  598,  597,  596,  595,  594,  591,  590,
    1968                 :       589,  480,  588,  587,  584,  536,  583,  581,  580,  579,
    1969                 :       578,  577,  576,  575,  574,  573,  572,  571,  570,  569,
    1970                 :       568,  567,  566,  565,  564,  563,  562,  561,  560,  559,
    1971                 :       558,  557,  556,  555,  554,  553,  552,  484,  551,  550,
    1972                 :       549,  546,  545,  480,  544,  540,  539,  538,  535,  530,
    1973                 :       529,  528,  527,  526,  525,  524,  523,  522,  521,  520,
    1974                 :       519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
    1975                 :       509,  508,  507,  506,  505,  504,  503,  502,  501,  500,
    1976                 : 
    1977                 :       499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
    1978                 :       489,  488,  487,  406,  483,  482,  481,  480,  479,  475,
    1979                 :       474,  473,  472,  471,  470,  469,  468,  457,  456,  455,
    1980                 :       454,  453,  452,  451,  450,  449,  448,  445,  444,  443,
    1981                 :       442,  441,  440,  439,  438,  437,  436,  435,  434,  433,
    1982                 :       427,  426,  425,  424,  423,  420,  419,  418,  417,  416,
    1983                 :       310,  415,  414,  413,  412,  411,  408,  314,  406,  405,
    1984                 :       403,  402,  401,  400,  399,  398,  397,  396,  395,  394,
    1985                 :       292,  393,  392,  391,  256,  235,  223,  365,  364,  363,
    1986                 :       362,  361,  360,  359,  358,  357,  354,  351,  350,  349,
    1987                 : 
    1988                 :       345,  344,  343,  342,  341,  338,  337,  336,  335,  334,
    1989                 :       333,  330,  325,  324,  323,  322,  321,  313,  312,  309,
    1990                 :       304,  303,  302,  301,  300,  299,  298,  297,  294,  288,
    1991                 :       287,  285,  120,  284,  282,  282,  281,  278,  277,  270,
    1992                 :       256,  235,  223,  220,  219,  218,  211,  208,  207,  206,
    1993                 :       201,  177,  175,  174,  165,  150,  126,  120, 1492,  112,
    1994                 :       112,  111,  111,   29,   29,   27, 1492, 1492, 1492, 1492,
    1995                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1996                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1997                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    1998                 : 
    1999                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2000                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2001                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492
    2002                 :     } ;
    2003                 : 
    2004                 : static yyconst short int yy_chk[9029] =
    2005                 :     {   0,
    2006                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    2007                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    2008                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    2009                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    2010                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    2011                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    2012                 :         3,    3,    5,    6,    5,    6,    7,    8,   36,   36,
    2013                 :        25,   25,   26,   26,   37,   43,   25, 1014,   26,   31,
    2014                 :        31,   31,   38,   43,   43,    5,    6,    7,    8,   37,
    2015                 :       137,    7,    8,   25,   25,   26,   26,   42,   44,   44,
    2016                 : 
    2017                 :        38,   45,   68,   44,   49,   68,   45,   42,  137,   49,
    2018                 :        49,   49,   45,   50,   50, 1016,    5,    6,    7,    8,
    2019                 :         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
    2020                 :         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
    2021                 :         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
    2022                 :         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
    2023                 :         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
    2024                 :         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
    2025                 :         9,    9,   11,   11,   11,   11,   11,   11,   11,   11,
    2026                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
    2027                 : 
    2028                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
    2029                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
    2030                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
    2031                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
    2032                 :        11,   11,   11,   11,   15,   15,   15,   15,   15,   15,
    2033                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    2034                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    2035                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    2036                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    2037                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    2038                 : 
    2039                 :        15,   15,   15,   15,   15,   15,   17,   17,   17,   17,
    2040                 :        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
    2041                 :        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
    2042                 :        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
    2043                 :        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
    2044                 :        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
    2045                 :        17,   17,   17,   17,   17,   17,   17,   17,   19,   19,
    2046                 :        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    2047                 :        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    2048                 :        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    2049                 : 
    2050                 :        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    2051                 :        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    2052                 :        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    2053                 :        29,   33,   46,   33,   46,   46,   47, 1018,   47,   47,
    2054                 :        51,   51,   70,   56,   57,   70,   72,   58,   29,   57,
    2055                 :      1020,   72,   46,   59,   33,   56,   47,   59,   58,   56,
    2056                 :        56,   58,   57,   59,   61,   71,   77,  107,  107,   60,
    2057                 :        61,   46,   79,   29,   64,   71,   61,   84,   60,   60,
    2058                 :        60,   64,   64,   97,   97,   33,   39,   64,   60,   57,
    2059                 :        60,  108,  108,   79,  120, 1022,  123,  187,   84,  125,
    2060                 : 
    2061                 :       125,  125,   77,   97,  107,  134,  134,  113,  113,  120,
    2062                 :       142,  187,  120,  113,  167,  167,  142, 1024,   39,   39,
    2063                 :       123,   39,  189,   39,   79,  189,   39,  174,  174,   84,
    2064                 :       113,  113,   39,  186,  186,   39,   39,  120,   39,   81,
    2065                 :        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
    2066                 :        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
    2067                 :        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
    2068                 :        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
    2069                 :        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
    2070                 :        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
    2071                 : 
    2072                 :        81,   83,   88,   83,  183,  129,  197,  129,  156,  156,
    2073                 :      1026,  161,  161,  162,  209,  162,  162,  197,  211,  317,
    2074                 :       209,  211,  183,   88,   83,  204,  156,   88,  129,  161,
    2075                 :       163,  317,  163,  162,  177,  163,  163,  177,  231,  177,
    2076                 :      1028,  204,  204,  177,  177,  269,  269,  273,  273,  231,
    2077                 :       275,  275,  306,  306,   88,   83,   85,   85,   85,   85,
    2078                 :        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
    2079                 :        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
    2080                 :        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
    2081                 :        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
    2082                 : 
    2083                 :        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
    2084                 :        85,   85,   85,   85,   85,   85,   85,   85,   89,   89,
    2085                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    2086                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    2087                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    2088                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    2089                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    2090                 :        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
    2091                 :        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
    2092                 :        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
    2093                 : 
    2094                 :        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
    2095                 :        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
    2096                 :        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
    2097                 :        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
    2098                 :        90,   90,   92,   92,   92,   92,   92,   92,   92,   92,
    2099                 :        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
    2100                 :        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
    2101                 :        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
    2102                 :        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
    2103                 :        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
    2104                 : 
    2105                 :        92,   92,   92,   92,   93,  164,  164,  268,  268,  304,
    2106                 :       304,  304,  307,  307,  330,  330,  381,  381,  352,  164,
    2107                 :       164,  164,  164,  164,  164,   93,  352,  268,   93, 1030,
    2108                 :        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
    2109                 :        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
    2110                 :        93,   93,   93,   93,   93,   93,   93,   94,   94,   94,
    2111                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
    2112                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
    2113                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
    2114                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
    2115                 : 
    2116                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
    2117                 :        94,   94,   94,   94,   94,   94,   94,   94,   94,   95,
    2118                 :       127,  131,  127,  131,  182,  223,  182,  224,  226,  224,
    2119                 :       226,  227,  229,  236,  229,  240, 1032,  247,  247, 1034,
    2120                 :        95, 1036,  247,  127,  131, 1038,  223,  182,  305,  305,
    2121                 :       224,  226,  227, 1040,  236,  229,  240,  366,  236,  366,
    2122                 :       240,  368,  234,  247,  234,  476,  305,  404,  404,  404,
    2123                 :       480,   95,  368, 1042,  127,  131,  476,  223,  182, 1044,
    2124                 :       366,  480,  226,  227,  230,  234,  230,  230,  230,  230,
    2125                 :       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
    2126                 : 
    2127                 :       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
    2128                 :       230,  230,  230,  235,  238,  239,  234,  243,  252,  252,
    2129                 :       258,  258, 1046,  252,  371,  258,  260,  260,  337, 1048,
    2130                 :       337,  260, 1050,  337,  235,  238,  239,  539,  243,  238,
    2131                 :       274,  274,  243,  337,  252,  371,  258,  337,  539,  371,
    2132                 :       407,  407,  260, 1052,  274,  274,  274,  274,  274,  274,
    2133                 :       469,  469,  469,  486,  486,  235,  238,  239,  241,  243,
    2134                 :       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
    2135                 :       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
    2136                 :       241,  241,  241,  241,  241,  241,  241,  250,  284,  255,
    2137                 : 
    2138                 :       262,  265,  266,  279,  279,  289, 1054,  289,  370,  279,
    2139                 :       370,  372,  383,  284,  374,  374,  284,  387,  250,  374,
    2140                 :       255,  262,  265,  266, 1056, 1058,  279,  279,  289,  308,
    2141                 :       308,  370,  372,  383,  378,  378,  372, 1060,  387,  378,
    2142                 :       374,  284, 1062,  308,  308,  308,  308,  308,  308,  250,
    2143                 :       253,  255,  262,  265,  266,  541,  547,  550, 1064,  289,
    2144                 :       378,  585,  370,  372,  383, 1066,  541,  547,  550,  387,
    2145                 :      1068,  253,  585, 1070,  253, 1072,  253,  253,  253,  253,
    2146                 :       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
    2147                 :       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
    2148                 : 
    2149                 :       253,  253,  253,  254,  254,  254,  254,  254,  254,  254,
    2150                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
    2151                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
    2152                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
    2153                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
    2154                 :       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
    2155                 :       254,  254,  254,  254,  254,  259,  259,  382,  382,  384,
    2156                 :       384,  587,  382,  590,  384,  584,  584,  584,  591,  592,
    2157                 :       622,  624,  587, 1074,  590, 1076, 1078, 1080, 1082,  591,
    2158                 :       592,  622,  624,  382,  259,  384,  259,  259,  259,  259,
    2159                 : 
    2160                 :       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
    2161                 :       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
    2162                 :       259,  259,  259,  290,  382,  290,  290,  290,  290,  290,
    2163                 :       290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
    2164                 :       290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
    2165                 :       290,  290,  375,  375,  385,  385,  389,  389,  625,  385,
    2166                 :      1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098,  626,  625,
    2167                 :       389,  389,  389,  389,  389,  389,  621,  621,  621,  626,
    2168                 :       385,  375, 1100,  375,  375,  375,  375,  375,  375,  375,
    2169                 :       375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
    2170                 : 
    2171                 :       375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
    2172                 :       380,  380,  628,  380, 1102, 1104, 1106, 1108, 1110,  621,
    2173                 :      1112, 1114,  380,  628,  380,  380,  380,  380,  380,  380,
    2174                 :       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
    2175                 :       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
    2176                 :       388,  391,  399,  458,  458,  460,  460,  464,  458,  473,
    2177                 :       460,  466, 1116,  399, 1118, 1120,  391,  463,  463,  391,
    2178                 :       473,  388,  463, 1122,  468,  465,  465, 1124,  464,  458,
    2179                 :       465,  460,  466, 1126, 1128,  532,  532, 1130,  399,  468,
    2180                 :       532, 1132,  468,  463,  391,  473,  630,  630,  630, 1134,
    2181                 : 
    2182                 :      1136,  465,  388,  461,  461,  533,  533, 1138, 1140,  464,
    2183                 :       533,  532, 1142,  466, 1144, 1146, 1148,  468, 1150, 1152,
    2184                 :       630, 1154, 1156, 1158,  463, 1160, 1162, 1164, 1166, 1168,
    2185                 :      1170,  533,  461, 1172,  461,  461,  461,  461,  461,  461,
    2186                 :       461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
    2187                 :       461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
    2188                 :       461,  535,  533,  583, 1174,  620, 1176,  651,  653,  653,
    2189                 :       653,  668,  680,  687, 1178, 1180,  535, 1182,  583,  535,
    2190                 :       620,  583,  651,  620,  694,  651,  668,  680,  687,  668,
    2191                 :       680,  687,  653, 1184,  698, 1186,  707,  707,  707,  694,
    2192                 : 
    2193                 :      1188, 1190,  694,  702,  535,  706,  583,  709,  620,  698,
    2194                 :       651, 1192,  698, 1194,  668,  680,  687, 1196,  702,  707,
    2195                 :       706,  702,  709,  706,  713,  709, 1198,  694,  710,  710,
    2196                 :       710,  711,  711,  711, 1200,  711, 1202,  698,  719,  713,
    2197                 :       711, 1204,  713,  714,  714,  714,  702,  714,  706, 1206,
    2198                 :       709,  710,  714,  719,  724,  729,  719, 1208,  727,  727,
    2199                 :       727,  732,  732,  732, 1210,  735, 1212,  713, 1214,  724,
    2200                 :       729,  737,  724,  729, 1216, 1218,  739,  741,  711, 1220,
    2201                 :       735,  719,  727,  735,  743,  732,  737, 1222,  745,  737,
    2202                 :       714,  739,  741, 1224,  739,  741, 1226,  724,  729,  743,
    2203                 : 
    2204                 :       747, 1228,  743,  745, 1230, 1232,  745,  749,  735, 1234,
    2205                 :      1236,  751, 1238, 1240,  737,  747, 1242,  753,  747,  739,
    2206                 :       741,  755,  749,  757, 1244,  749,  751,  743, 1246,  751,
    2207                 :       759,  745,  753, 1248,  761,  753,  755, 1250,  757,  755,
    2208                 :       763,  757, 1252,  747,  765,  759, 1254, 1256,  759,  761,
    2209                 :       749, 1258,  761,  767,  751,  763, 1260,  769,  763,  765,
    2210                 :       753,  771,  765,  773,  755, 1262,  757,  775,  767, 1264,
    2211                 :      1266,  767,  769,  759,  777,  769,  771,  761,  773,  771,
    2212                 :       779,  773,  775,  763,  781,  775, 1268,  765, 1270,  777,
    2213                 :       783, 1272,  777, 1274,  785,  779,  767, 1276,  779,  781,
    2214                 : 
    2215                 :       769,  787,  781,  789,  771,  783,  773,  791,  783,  785,
    2216                 :       775,  793,  785,  795, 1278, 1280,  787,  777,  789,  787,
    2217                 :       797,  789,  791,  779,  799,  791,  793,  781,  795,  793,
    2218                 :       801,  795, 1282,  783,  803,  797, 1284,  785,  797,  799,
    2219                 :       805, 1286,  799, 1288,  787,  801,  789,  807,  801,  803,
    2220                 :       791,  809,  803,  811,  793,  805,  795,  813,  805, 1290,
    2221                 :      1292,  815,  807,  797, 1294,  807,  809,  799,  811,  809,
    2222                 :       817,  811,  813,  801,  819,  813,  815,  803, 1296,  815,
    2223                 :       821, 1298, 1300,  805,  823,  817, 1302, 1304,  817,  819,
    2224                 :       807,  825,  819,  827,  809,  821,  811,  829,  821,  823,
    2225                 : 
    2226                 :       813,  831,  823,  833,  815, 1306,  825,  835,  827,  825,
    2227                 :      1308,  827,  829,  817,  837,  829,  831,  819,  833,  831,
    2228                 :       839,  833,  835,  821,  841,  835, 1310,  823, 1312,  837,
    2229                 :       843, 1314,  837, 1316,  825,  839,  827,  845,  839,  841,
    2230                 :       829,  847,  841,  849,  831,  843,  833,  851,  843, 1318,
    2231                 :       835,  853,  845,  855, 1320,  845,  847,  837,  849,  847,
    2232                 :       857,  849,  851,  839,  859,  851,  853,  841,  855,  853,
    2233                 :       861,  855, 1322,  843,  863,  857, 1324, 1326,  857,  859,
    2234                 :       845, 1328,  859,  865,  847,  861,  849,  867,  861,  863,
    2235                 :       851,  869,  863,  871,  853, 1330,  855,  873,  865, 1332,
    2236                 : 
    2237                 :      1334,  865,  867,  857,  875,  867,  869,  859,  871,  869,
    2238                 :       877,  871,  873,  861,  879,  873, 1336,  863, 1338,  875,
    2239                 :       881, 1340,  875, 1342,  883,  877,  865, 1344,  877,  879,
    2240                 :       867,  885,  879,  887,  869,  881,  871,  889,  881,  883,
    2241                 :       873,  891,  883,  893, 1346, 1348,  885,  875,  887,  885,
    2242                 :       895,  887,  889,  877,  897,  889,  891,  879,  893,  891,
    2243                 :       899,  893, 1350,  881,  901,  895, 1352,  883,  895,  897,
    2244                 :       903, 1354,  897, 1356,  885,  899,  887,  905,  899,  901,
    2245                 :       889,  907,  901,  909,  891,  903,  893,  911,  903, 1358,
    2246                 :      1360,  913,  905,  895, 1362,  905,  907,  897,  909,  907,
    2247                 : 
    2248                 :       915,  909,  911,  899,  917,  911,  913,  901, 1364,  913,
    2249                 :       919, 1366, 1368,  903,  921,  915, 1370, 1372,  915,  917,
    2250                 :       905,  923,  917,  925,  907,  919,  909,  927,  919,  921,
    2251                 :       911,  929,  921,  931,  913, 1374,  923,  933,  925,  923,
    2252                 :      1376,  925,  927,  915,  935,  927,  929,  917,  931,  929,
    2253                 :       937,  931,  933,  919,  939,  933, 1378,  921, 1380,  935,
    2254                 :       941, 1382,  935, 1384,  923,  937,  925,  943,  937,  939,
    2255                 :       927,  945,  939,  947,  929,  941,  931,  949,  941, 1386,
    2256                 :       933,  951,  943,  953, 1388,  943,  945,  935,  947,  945,
    2257                 :       955,  947,  949,  937,  957,  949,  951,  939,  953,  951,
    2258                 : 
    2259                 :       959,  953, 1390,  941,  961,  955, 1392, 1394,  955,  957,
    2260                 :       943, 1396,  957,  963,  945,  959,  947,  965,  959,  961,
    2261                 :       949,  967,  961,  969,  951, 1398,  953,  971,  963, 1400,
    2262                 :      1402,  963,  965,  955,  973,  965,  967,  957,  969,  967,
    2263                 :       975,  969,  971,  959,  977,  971, 1404,  961, 1406,  973,
    2264                 :       979, 1408,  973, 1410,  981,  975,  963, 1412,  975,  977,
    2265                 :       965,  983,  977,  985,  967,  979,  969,  987,  979,  981,
    2266                 :       971,  989,  981,  991, 1414, 1416,  983,  973,  985,  983,
    2267                 :       993,  985,  987,  975,  995,  987,  989,  977,  991,  989,
    2268                 :       997,  991, 1418,  979,  999,  993, 1420,  981,  993,  995,
    2269                 : 
    2270                 :      1001, 1422,  995, 1424,  983,  997,  985, 1003,  997,  999,
    2271                 :       987, 1005,  999, 1007,  989, 1001,  991, 1009, 1001, 1426,
    2272                 :      1428, 1011, 1003,  993, 1430, 1003, 1005,  995, 1007, 1005,
    2273                 :      1013, 1007, 1009,  997, 1015, 1009, 1011,  999, 1432, 1011,
    2274                 :      1017, 1434, 1436, 1001, 1019, 1013, 1438, 1440, 1013, 1015,
    2275                 :      1003, 1021, 1015, 1023, 1005, 1017, 1007, 1025, 1017, 1019,
    2276                 :      1009, 1027, 1019, 1029, 1011, 1442, 1021, 1031, 1023, 1021,
    2277                 :      1444, 1023, 1025, 1013, 1033, 1025, 1027, 1015, 1029, 1027,
    2278                 :      1035, 1029, 1031, 1017, 1037, 1031, 1446, 1019, 1448, 1033,
    2279                 :      1039, 1450, 1033, 1452, 1021, 1035, 1023, 1041, 1035, 1037,
    2280                 : 
    2281                 :      1025, 1043, 1037, 1045, 1027, 1039, 1029, 1047, 1039, 1454,
    2282                 :      1031, 1049, 1041, 1051, 1456, 1041, 1043, 1033, 1045, 1043,
    2283                 :      1053, 1045, 1047, 1035, 1055, 1047, 1049, 1037, 1051, 1049,
    2284                 :      1057, 1051, 1458, 1039, 1059, 1053, 1460, 1462, 1053, 1055,
    2285                 :      1041, 1464, 1055, 1061, 1043, 1057, 1045, 1063, 1057, 1059,
    2286                 :      1047, 1065, 1059, 1067, 1049, 1466, 1051, 1069, 1061, 1468,
    2287                 :      1470, 1061, 1063, 1053, 1071, 1063, 1065, 1055, 1067, 1065,
    2288                 :      1073, 1067, 1069, 1057, 1075, 1069, 1472, 1059, 1474, 1071,
    2289                 :      1077, 1476, 1071, 1478, 1079, 1073, 1061, 1480, 1073, 1075,
    2290                 :      1063, 1081, 1075, 1083, 1065, 1077, 1067, 1085, 1077, 1079,
    2291                 : 
    2292                 :      1069, 1087, 1079, 1089, 1482, 1484, 1081, 1071, 1083, 1081,
    2293                 :      1091, 1083, 1085, 1073, 1093, 1085, 1087, 1075, 1089, 1087,
    2294                 :      1095, 1089, 1486, 1077, 1097, 1091, 1488, 1079, 1091, 1093,
    2295                 :      1099, 1502, 1093, 1526, 1081, 1095, 1083, 1101, 1095, 1097,
    2296                 :      1085, 1103, 1097, 1105, 1087, 1099, 1089, 1107, 1099, 1012,
    2297                 :      1010, 1109, 1101, 1091, 1008, 1101, 1103, 1093, 1105, 1103,
    2298                 :      1111, 1105, 1107, 1095, 1113, 1107, 1109, 1097, 1006, 1109,
    2299                 :      1115, 1004, 1002, 1099, 1117, 1111, 1000,  998, 1111, 1113,
    2300                 :      1101, 1119, 1113, 1121, 1103, 1115, 1105, 1123, 1115, 1117,
    2301                 :      1107, 1125, 1117, 1127, 1109,  996, 1119, 1129, 1121, 1119,
    2302                 : 
    2303                 :       994, 1121, 1123, 1111, 1131, 1123, 1125, 1113, 1127, 1125,
    2304                 :      1133, 1127, 1129, 1115, 1135, 1129,  992, 1117,  990, 1131,
    2305                 :      1137,  988, 1131,  986, 1119, 1133, 1121, 1139, 1133, 1135,
    2306                 :      1123, 1141, 1135, 1143, 1125, 1137, 1127, 1145, 1137,  984,
    2307                 :      1129, 1147, 1139, 1149,  982, 1139, 1141, 1131, 1143, 1141,
    2308                 :      1151, 1143, 1145, 1133, 1153, 1145, 1147, 1135, 1149, 1147,
    2309                 :      1155, 1149,  980, 1137, 1157, 1151,  978,  976, 1151, 1153,
    2310                 :      1139,  974, 1153, 1159, 1141, 1155, 1143, 1161, 1155, 1157,
    2311                 :      1145, 1163, 1157, 1165, 1147,  972, 1149, 1167, 1159,  970,
    2312                 :       968, 1159, 1161, 1151, 1169, 1161, 1163, 1153, 1165, 1163,
    2313                 : 
    2314                 :      1171, 1165, 1167, 1155, 1173, 1167,  966, 1157,  964, 1169,
    2315                 :      1175,  962, 1169,  960, 1177, 1171, 1159,  958, 1171, 1173,
    2316                 :      1161, 1179, 1173, 1181, 1163, 1175, 1165, 1183, 1175, 1177,
    2317                 :      1167, 1185, 1177, 1187,  956,  954, 1179, 1169, 1181, 1179,
    2318                 :      1189, 1181, 1183, 1171, 1191, 1183, 1185, 1173, 1187, 1185,
    2319                 :      1193, 1187,  952, 1175, 1195, 1189,  950, 1177, 1189, 1191,
    2320                 :      1197,  948, 1191,  946, 1179, 1193, 1181, 1199, 1193, 1195,
    2321                 :      1183, 1201, 1195, 1203, 1185, 1197, 1187, 1205, 1197,  944,
    2322                 :       942, 1207, 1199, 1189,  940, 1199, 1201, 1191, 1203, 1201,
    2323                 :      1209, 1203, 1205, 1193, 1211, 1205, 1207, 1195,  938, 1207,
    2324                 : 
    2325                 :      1213,  936,  934, 1197, 1215, 1209,  932,  930, 1209, 1211,
    2326                 :      1199, 1217, 1211, 1219, 1201, 1213, 1203, 1221, 1213, 1215,
    2327                 :      1205, 1223, 1215, 1225, 1207,  928, 1217, 1227, 1219, 1217,
    2328                 :       926, 1219, 1221, 1209, 1229, 1221, 1223, 1211, 1225, 1223,
    2329                 :      1231, 1225, 1227, 1213, 1233, 1227,  924, 1215,  922, 1229,
    2330                 :      1235,  920, 1229,  918, 1217, 1231, 1219, 1237, 1231, 1233,
    2331                 :      1221, 1239, 1233, 1241, 1223, 1235, 1225, 1243, 1235,  916,
    2332                 :      1227, 1245, 1237, 1247,  914, 1237, 1239, 1229, 1241, 1239,
    2333                 :      1249, 1241, 1243, 1231, 1251, 1243, 1245, 1233, 1247, 1245,
    2334                 :      1253, 1247,  912, 1235, 1255, 1249,  910,  908, 1249, 1251,
    2335                 : 
    2336                 :      1237,  906, 1251, 1257, 1239, 1253, 1241, 1259, 1253, 1255,
    2337                 :      1243, 1261, 1255, 1263, 1245,  904, 1247, 1265, 1257,  902,
    2338                 :       900, 1257, 1259, 1249, 1267, 1259, 1261, 1251, 1263, 1261,
    2339                 :      1269, 1263, 1265, 1253, 1271, 1265,  898, 1255,  896, 1267,
    2340                 :      1273,  894, 1267,  892, 1275, 1269, 1257,  890, 1269, 1271,
    2341                 :      1259, 1277, 1271, 1279, 1261, 1273, 1263, 1281, 1273, 1275,
    2342                 :      1265, 1283, 1275, 1285,  888,  886, 1277, 1267, 1279, 1277,
    2343                 :      1287, 1279, 1281, 1269, 1289, 1281, 1283, 1271, 1285, 1283,
    2344                 :      1291, 1285,  884, 1273, 1293, 1287,  882, 1275, 1287, 1289,
    2345                 :      1295,  880, 1289,  878, 1277, 1291, 1279, 1297, 1291, 1293,
    2346                 : 
    2347                 :      1281, 1299, 1293, 1301, 1283, 1295, 1285, 1303, 1295,  876,
    2348                 :       874, 1305, 1297, 1287,  872, 1297, 1299, 1289, 1301, 1299,
    2349                 :      1307, 1301, 1303, 1291, 1309, 1303, 1305, 1293,  870, 1305,
    2350                 :      1311,  868,  866, 1295, 1313, 1307,  864,  862, 1307, 1309,
    2351                 :      1297, 1315, 1309, 1317, 1299, 1311, 1301, 1319, 1311, 1313,
    2352                 :      1303, 1321, 1313, 1323, 1305,  860, 1315, 1325, 1317, 1315,
    2353                 :       858, 1317, 1319, 1307, 1327, 1319, 1321, 1309, 1323, 1321,
    2354                 :      1329, 1323, 1325, 1311, 1331, 1325,  856, 1313,  854, 1327,
    2355                 :      1333,  852, 1327,  850, 1315, 1329, 1317, 1335, 1329, 1331,
    2356                 :      1319, 1337, 1331, 1339, 1321, 1333, 1323, 1341, 1333,  848,
    2357                 : 
    2358                 :      1325, 1343, 1335, 1345,  846, 1335, 1337, 1327, 1339, 1337,
    2359                 :      1347, 1339, 1341, 1329, 1349, 1341, 1343, 1331, 1345, 1343,
    2360                 :      1351, 1345,  844, 1333, 1353, 1347,  842,  840, 1347, 1349,
    2361                 :      1335,  838, 1349, 1355, 1337, 1351, 1339, 1357, 1351, 1353,
    2362                 :      1341, 1359, 1353, 1361, 1343,  836, 1345, 1363, 1355,  834,
    2363                 :       832, 1355, 1357, 1347, 1365, 1357, 1359, 1349, 1361, 1359,
    2364                 :      1367, 1361, 1363, 1351, 1369, 1363,  830, 1353,  828, 1365,
    2365                 :      1371,  826, 1365,  824, 1373, 1367, 1355,  822, 1367, 1369,
    2366                 :      1357, 1375, 1369, 1377, 1359, 1371, 1361, 1379, 1371, 1373,
    2367                 :      1363, 1381, 1373, 1383,  820,  818, 1375, 1365, 1377, 1375,
    2368                 : 
    2369                 :      1385, 1377, 1379, 1367, 1387, 1379, 1381, 1369, 1383, 1381,
    2370                 :      1389, 1383,  816, 1371, 1391, 1385,  814, 1373, 1385, 1387,
    2371                 :      1393,  812, 1387,  810, 1375, 1389, 1377, 1395, 1389, 1391,
    2372                 :      1379, 1397, 1391, 1399, 1381, 1393, 1383, 1401, 1393,  808,
    2373                 :       806, 1403, 1395, 1385,  804, 1395, 1397, 1387, 1399, 1397,
    2374                 :      1405, 1399, 1401, 1389, 1407, 1401, 1403, 1391,  802, 1403,
    2375                 :      1409,  800,  798, 1393, 1411, 1405,  796,  794, 1405, 1407,
    2376                 :      1395, 1413, 1407, 1415, 1397, 1409, 1399, 1417, 1409, 1411,
    2377                 :      1401, 1419, 1411, 1421, 1403,  792, 1413, 1423, 1415, 1413,
    2378                 :       790, 1415, 1417, 1405, 1425, 1417, 1419, 1407, 1421, 1419,
    2379                 : 
    2380                 :      1427, 1421, 1423, 1409, 1429, 1423,  788, 1411,  786, 1425,
    2381                 :      1431,  784, 1425,  782, 1413, 1427, 1415, 1433, 1427, 1429,
    2382                 :      1417, 1435, 1429, 1437, 1419, 1431, 1421, 1439, 1431,  780,
    2383                 :      1423, 1441, 1433, 1443,  778, 1433, 1435, 1425, 1437, 1435,
    2384                 :      1445, 1437, 1439, 1427, 1447, 1439, 1441, 1429, 1443, 1441,
    2385                 :      1449, 1443,  776, 1431, 1451, 1445,  774,  772, 1445, 1447,
    2386                 :      1433,  770, 1447, 1453, 1435, 1449, 1437, 1455, 1449, 1451,
    2387                 :      1439, 1457, 1451, 1459, 1441,  768, 1443, 1461, 1453,  766,
    2388                 :       764, 1453, 1455, 1445, 1463, 1455, 1457, 1447, 1459, 1457,
    2389                 :      1465, 1459, 1461, 1449, 1467, 1461,  762, 1451,  760, 1463,
    2390                 : 
    2391                 :      1469,  758, 1463,  756, 1471, 1465, 1453,  754, 1465, 1467,
    2392                 :      1455, 1473, 1467, 1475, 1457, 1469, 1459, 1477, 1469, 1471,
    2393                 :      1461, 1479, 1471, 1481,  752,  750, 1473, 1463, 1475, 1473,
    2394                 :      1483, 1475, 1477, 1465, 1485, 1477, 1479, 1467, 1481, 1479,
    2395                 :      1487, 1481,  748, 1469, 1489, 1483,  746, 1471, 1483, 1485,
    2396                 :      1491,  744, 1485,  742, 1473, 1487, 1475,  740, 1487, 1489,
    2397                 :      1477,  738, 1489,  736, 1479, 1491, 1481,  734, 1491,  731,
    2398                 :       730,  728,  726, 1483,  725,  723,  722, 1485,  721,  720,
    2399                 :       718,  717,  716, 1487,  715,  712,  708, 1489,  705,  703,
    2400                 :       701,  700,  699, 1491, 1493, 1493, 1493, 1493, 1493, 1493,
    2401                 : 
    2402                 :      1493, 1493, 1493, 1493, 1493, 1493, 1494, 1494, 1494, 1494,
    2403                 :      1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1495, 1495,
    2404                 :      1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
    2405                 :      1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
    2406                 :      1496, 1496, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
    2407                 :      1497, 1497, 1497, 1497, 1498, 1498, 1498, 1498, 1498, 1498,
    2408                 :      1498, 1498, 1498, 1498, 1498, 1498, 1499, 1499, 1499, 1499,
    2409                 :      1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1500, 1500,
    2410                 :      1500, 1500, 1500, 1500, 1500, 1500,  697, 1500, 1500, 1500,
    2411                 :      1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
    2412                 : 
    2413                 :      1501, 1501, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
    2414                 :      1503, 1503, 1503, 1503, 1504,  696,  695, 1504, 1505, 1505,
    2415                 :      1505,  693, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
    2416                 :      1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
    2417                 :       690, 1506, 1507,  688,  686,  685, 1507, 1507,  684, 1507,
    2418                 :      1508,  683,  682, 1508, 1509,  681,  679, 1509, 1510, 1510,
    2419                 :      1510, 1510,  678, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
    2420                 :      1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511,
    2421                 :      1511, 1511, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
    2422                 :      1512, 1512, 1512, 1512, 1513, 1513, 1513, 1513, 1513, 1513,
    2423                 : 
    2424                 :      1513, 1513, 1513,  676, 1513, 1514,  671,  670, 1514, 1515,
    2425                 :      1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,  669, 1515,
    2426                 :      1516, 1516,  667,  666, 1516, 1517, 1517, 1517, 1517, 1517,
    2427                 :      1517, 1517, 1517, 1517,  663, 1517, 1518, 1518, 1518, 1518,
    2428                 :      1518, 1518, 1518, 1518, 1518,  662, 1518, 1519, 1519, 1519,
    2429                 :      1519, 1519, 1519, 1519, 1519, 1519,  661, 1519, 1520, 1520,
    2430                 :      1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
    2431                 :      1521,  659,  658,  657,  656,  655,  652,  650, 1521, 1522,
    2432                 :      1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522,  649, 1522,
    2433                 :      1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523,
    2434                 : 
    2435                 :      1523, 1523, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524,
    2436                 :      1524, 1524, 1524, 1524, 1525,  648,  647,  646, 1525,  645,
    2437                 :       644, 1525, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527,
    2438                 :      1527, 1527, 1527, 1527, 1528, 1528, 1528, 1528, 1528, 1528,
    2439                 :      1528, 1528, 1528, 1528, 1528, 1528, 1529, 1529, 1529, 1529,
    2440                 :      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1530, 1530,
    2441                 :      1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
    2442                 :      1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
    2443                 :      1531, 1531, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
    2444                 :      1532, 1532, 1532, 1532, 1533, 1533, 1533, 1533, 1533, 1533,
    2445                 : 
    2446                 :      1533, 1533, 1533, 1533, 1533, 1533, 1534, 1534, 1534, 1534,
    2447                 :      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1535, 1535,
    2448                 :      1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
    2449                 :      1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
    2450                 :      1536, 1536, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
    2451                 :      1537, 1537, 1537, 1537, 1538, 1538, 1538, 1538, 1538, 1538,
    2452                 :      1538, 1538, 1538, 1538, 1538, 1538, 1539, 1539, 1539, 1539,
    2453                 :      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1540, 1540,
    2454                 :      1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
    2455                 :      1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
    2456                 : 
    2457                 :      1541, 1541, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542,
    2458                 :      1542, 1542, 1542, 1542, 1543, 1543, 1543, 1543, 1543, 1543,
    2459                 :      1543, 1543, 1543, 1543, 1543, 1543, 1544, 1544, 1544, 1544,
    2460                 :      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1545, 1545,
    2461                 :      1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545,
    2462                 :      1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
    2463                 :      1546, 1546, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
    2464                 :      1547, 1547, 1547, 1547, 1548, 1548, 1548, 1548, 1548, 1548,
    2465                 :      1548, 1548, 1548, 1548, 1548, 1548, 1549, 1549, 1549, 1549,
    2466                 :      1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1550, 1550,
    2467                 : 
    2468                 :      1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
    2469                 :      1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
    2470                 :      1551, 1551, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552,
    2471                 :      1552, 1552, 1552, 1552, 1553, 1553, 1553, 1553, 1553, 1553,
    2472                 :      1553, 1553, 1553, 1553, 1553, 1553, 1554, 1554, 1554, 1554,
    2473                 :      1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1555, 1555,
    2474                 :      1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
    2475                 :      1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
    2476                 :      1556, 1556, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
    2477                 :      1557, 1557, 1557, 1557, 1558, 1558, 1558, 1558, 1558, 1558,
    2478                 : 
    2479                 :      1558, 1558, 1558, 1558, 1558, 1558, 1559, 1559, 1559, 1559,
    2480                 :      1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1560, 1560,
    2481                 :      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
    2482                 :      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
    2483                 :      1561, 1561, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
    2484                 :      1562, 1562, 1562, 1562, 1563, 1563, 1563, 1563, 1563, 1563,
    2485                 :      1563, 1563, 1563, 1563, 1563, 1563, 1564, 1564, 1564, 1564,
    2486                 :      1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1565, 1565,
    2487                 :      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
    2488                 :      1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
    2489                 : 
    2490                 :      1566, 1566, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567,
    2491                 :      1567, 1567, 1567, 1567, 1568, 1568, 1568, 1568, 1568, 1568,
    2492                 :      1568, 1568, 1568, 1568, 1568, 1568, 1569, 1569, 1569, 1569,
    2493                 :      1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1570, 1570,
    2494                 :      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
    2495                 :      1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571,
    2496                 :      1571, 1571, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
    2497                 :      1572, 1572, 1572, 1572, 1573, 1573, 1573, 1573, 1573, 1573,
    2498                 :      1573, 1573, 1573, 1573, 1573, 1573, 1574, 1574, 1574, 1574,
    2499                 :      1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1575, 1575,
    2500                 : 
    2501                 :      1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
    2502                 :      1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576,
    2503                 :      1576, 1576, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577,
    2504                 :      1577, 1577, 1577, 1577, 1578, 1578, 1578, 1578, 1578, 1578,
    2505                 :      1578, 1578, 1578, 1578, 1578, 1578, 1579, 1579, 1579, 1579,
    2506                 :      1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1580, 1580,
    2507                 :      1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580,
    2508                 :      1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581,
    2509                 :      1581, 1581, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582,
    2510                 :      1582, 1582, 1582, 1582, 1583, 1583, 1583, 1583, 1583, 1583,
    2511                 : 
    2512                 :      1583, 1583, 1583, 1583, 1583, 1583, 1584, 1584, 1584, 1584,
    2513                 :      1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1585, 1585,
    2514                 :      1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
    2515                 :      1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586,
    2516                 :      1586, 1586, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587,
    2517                 :      1587, 1587, 1587, 1587, 1588, 1588, 1588, 1588, 1588, 1588,
    2518                 :      1588, 1588, 1588, 1588, 1588, 1588, 1589, 1589, 1589, 1589,
    2519                 :      1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1590, 1590,
    2520                 :      1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590,
    2521                 :      1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591,
    2522                 : 
    2523                 :      1591, 1591, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592,
    2524                 :      1592, 1592, 1592, 1592, 1593, 1593, 1593, 1593, 1593, 1593,
    2525                 :      1593, 1593, 1593, 1593, 1593, 1593, 1594, 1594, 1594, 1594,
    2526                 :      1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1595, 1595,
    2527                 :      1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595,
    2528                 :      1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
    2529                 :      1596, 1596, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
    2530                 :      1597, 1597, 1597, 1597, 1598, 1598, 1598, 1598, 1598, 1598,
    2531                 :      1598, 1598, 1598, 1598, 1598, 1598, 1599, 1599, 1599, 1599,
    2532                 :      1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1600, 1600,
    2533                 : 
    2534                 :      1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
    2535                 :      1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
    2536                 :      1601, 1601, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
    2537                 :      1602, 1602, 1602, 1602, 1603, 1603, 1603, 1603, 1603, 1603,
    2538                 :      1603, 1603, 1603, 1603, 1603, 1603, 1604, 1604, 1604, 1604,
    2539                 :      1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1605, 1605,
    2540                 :      1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605,
    2541                 :      1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
    2542                 :      1606, 1606, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
    2543                 :      1607, 1607, 1607, 1607, 1608, 1608, 1608, 1608, 1608, 1608,
    2544                 : 
    2545                 :      1608, 1608, 1608, 1608, 1608, 1608, 1609, 1609, 1609, 1609,
    2546                 :      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1610, 1610,
    2547                 :      1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
    2548                 :      1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611,
    2549                 :      1611, 1611, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
    2550                 :      1612, 1612, 1612, 1612, 1613, 1613, 1613, 1613, 1613, 1613,
    2551                 :      1613, 1613, 1613, 1613, 1613, 1613, 1614, 1614, 1614, 1614,
    2552                 :      1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1615, 1615,
    2553                 :      1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615,
    2554                 :      1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
    2555                 : 
    2556                 :      1616, 1616, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
    2557                 :      1617, 1617, 1617, 1617, 1618, 1618, 1618, 1618, 1618, 1618,
    2558                 :      1618, 1618, 1618, 1618, 1618, 1618, 1619, 1619, 1619, 1619,
    2559                 :      1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1620, 1620,
    2560                 :      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
    2561                 :      1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
    2562                 :      1621, 1621, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622,
    2563                 :      1622, 1622, 1622, 1622, 1623, 1623, 1623, 1623, 1623, 1623,
    2564                 :      1623, 1623, 1623, 1623, 1623, 1623, 1624, 1624, 1624, 1624,
    2565                 :      1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1625, 1625,
    2566                 : 
    2567                 :      1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
    2568                 :      1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
    2569                 :      1626, 1626, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
    2570                 :      1627, 1627, 1627, 1627, 1628, 1628, 1628, 1628, 1628, 1628,
    2571                 :      1628, 1628, 1628, 1628, 1628, 1628, 1629, 1629, 1629, 1629,
    2572                 :      1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1630, 1630,
    2573                 :      1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
    2574                 :      1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
    2575                 :      1631, 1631, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
    2576                 :      1632, 1632, 1632, 1632, 1633, 1633, 1633, 1633, 1633, 1633,
    2577                 : 
    2578                 :      1633, 1633, 1633, 1633, 1633, 1633, 1634, 1634, 1634, 1634,
    2579                 :      1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1635, 1635,
    2580                 :      1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
    2581                 :      1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636,
    2582                 :      1636, 1636, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637,
    2583                 :      1637, 1637, 1637, 1637, 1638, 1638, 1638, 1638, 1638, 1638,
    2584                 :      1638, 1638, 1638, 1638, 1638, 1638, 1639, 1639, 1639, 1639,
    2585                 :      1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1640, 1640,
    2586                 :      1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
    2587                 :      1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
    2588                 : 
    2589                 :      1641, 1641, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
    2590                 :      1642, 1642, 1642, 1642, 1643, 1643, 1643, 1643, 1643, 1643,
    2591                 :      1643, 1643, 1643, 1643, 1643, 1643, 1644, 1644, 1644, 1644,
    2592                 :      1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1645, 1645,
    2593                 :      1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645,
    2594                 :      1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646,
    2595                 :      1646, 1646, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
    2596                 :      1647, 1647, 1647, 1647, 1648, 1648, 1648, 1648, 1648, 1648,
    2597                 :      1648, 1648, 1648, 1648, 1648, 1648, 1649, 1649, 1649, 1649,
    2598                 :      1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1650, 1650,
    2599                 : 
    2600                 :      1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650,
    2601                 :      1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
    2602                 :      1651, 1651, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
    2603                 :      1652, 1652, 1652, 1652, 1653, 1653, 1653, 1653, 1653, 1653,
    2604                 :      1653, 1653, 1653, 1653, 1653, 1653, 1654, 1654, 1654, 1654,
    2605                 :      1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1655, 1655,
    2606                 :      1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655,
    2607                 :      1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
    2608                 :      1656, 1656, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
    2609                 :      1657, 1657, 1657, 1657, 1658, 1658, 1658, 1658, 1658, 1658,
    2610                 : 
    2611                 :      1658, 1658, 1658, 1658, 1658, 1658, 1659, 1659, 1659, 1659,
    2612                 :      1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1660, 1660,
    2613                 :      1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660,
    2614                 :      1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661,
    2615                 :      1661, 1661, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662,
    2616                 :      1662, 1662, 1662, 1662, 1663, 1663, 1663, 1663, 1663, 1663,
    2617                 :      1663, 1663, 1663, 1663, 1663, 1663, 1664, 1664, 1664, 1664,
    2618                 :      1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1665, 1665,
    2619                 :      1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665,
    2620                 :      1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666,
    2621                 : 
    2622                 :      1666, 1666, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
    2623                 :      1667, 1667, 1667, 1667, 1668, 1668, 1668, 1668, 1668, 1668,
    2624                 :      1668, 1668, 1668, 1668, 1668, 1668, 1669, 1669, 1669, 1669,
    2625                 :      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1670, 1670,
    2626                 :      1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
    2627                 :      1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
    2628                 :      1671, 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
    2629                 :      1672, 1672, 1672, 1672, 1673, 1673, 1673, 1673, 1673, 1673,
    2630                 :      1673, 1673, 1673, 1673, 1673, 1673, 1674, 1674, 1674, 1674,
    2631                 :      1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1675, 1675,
    2632                 : 
    2633                 :      1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
    2634                 :      1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
    2635                 :      1676, 1676, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
    2636                 :      1677, 1677, 1677, 1677, 1678, 1678, 1678, 1678, 1678, 1678,
    2637                 :      1678, 1678, 1678, 1678, 1678, 1678, 1679, 1679, 1679, 1679,
    2638                 :      1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1680, 1680,
    2639                 :      1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
    2640                 :      1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681,
    2641                 :      1681, 1681, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
    2642                 :      1682, 1682, 1682, 1682, 1683, 1683, 1683, 1683, 1683, 1683,
    2643                 : 
    2644                 :      1683, 1683, 1683, 1683, 1683, 1683, 1684, 1684, 1684, 1684,
    2645                 :      1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1685, 1685,
    2646                 :      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
    2647                 :      1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686,
    2648                 :      1686, 1686, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
    2649                 :      1687, 1687, 1687, 1687, 1688, 1688, 1688, 1688, 1688, 1688,
    2650                 :      1688, 1688, 1688, 1688, 1688, 1688, 1689, 1689, 1689, 1689,
    2651                 :      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1690, 1690,
    2652                 :      1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
    2653                 :      1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
    2654                 : 
    2655                 :      1691, 1691, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
    2656                 :      1692, 1692, 1692, 1692, 1693, 1693, 1693, 1693, 1693, 1693,
    2657                 :      1693, 1693, 1693, 1693, 1693, 1693, 1694, 1694, 1694, 1694,
    2658                 :      1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1695, 1695,
    2659                 :      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
    2660                 :      1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
    2661                 :      1696, 1696, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697,
    2662                 :      1697, 1697, 1697, 1697, 1698, 1698, 1698, 1698, 1698, 1698,
    2663                 :      1698, 1698, 1698, 1698, 1698, 1698, 1699, 1699, 1699, 1699,
    2664                 :      1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1700, 1700,
    2665                 : 
    2666                 :      1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
    2667                 :      1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
    2668                 :      1701, 1701, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
    2669                 :      1702, 1702, 1702, 1702, 1703, 1703, 1703, 1703, 1703, 1703,
    2670                 :      1703, 1703, 1703, 1703, 1703, 1703, 1704, 1704, 1704, 1704,
    2671                 :      1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1705, 1705,
    2672                 :      1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
    2673                 :      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
    2674                 :      1706, 1706, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
    2675                 :      1707, 1707, 1707, 1707, 1708, 1708, 1708, 1708, 1708, 1708,
    2676                 : 
    2677                 :      1708, 1708, 1708, 1708, 1708, 1708, 1709, 1709, 1709, 1709,
    2678                 :      1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1710, 1710,
    2679                 :      1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710,
    2680                 :      1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
    2681                 :      1711, 1711, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
    2682                 :      1712, 1712, 1712, 1712, 1713, 1713, 1713, 1713, 1713, 1713,
    2683                 :      1713, 1713, 1713, 1713, 1713, 1713, 1714, 1714, 1714, 1714,
    2684                 :      1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1715, 1715,
    2685                 :      1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715,
    2686                 :      1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
    2687                 : 
    2688                 :      1716, 1716, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
    2689                 :      1717, 1717, 1717, 1717, 1718, 1718, 1718, 1718, 1718, 1718,
    2690                 :      1718, 1718, 1718, 1718, 1718, 1718, 1719, 1719, 1719, 1719,
    2691                 :      1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1720, 1720,
    2692                 :      1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
    2693                 :      1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721,
    2694                 :      1721, 1721, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
    2695                 :      1722, 1722, 1722, 1722, 1723, 1723, 1723, 1723, 1723, 1723,
    2696                 :      1723, 1723, 1723, 1723, 1723, 1723, 1724, 1724, 1724, 1724,
    2697                 :      1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1725, 1725,
    2698                 : 
    2699                 :      1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725,
    2700                 :      1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
    2701                 :      1726, 1726, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
    2702                 :      1727, 1727, 1727, 1727, 1728, 1728, 1728, 1728, 1728, 1728,
    2703                 :      1728, 1728, 1728, 1728, 1728, 1728, 1729, 1729, 1729, 1729,
    2704                 :      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1730, 1730,
    2705                 :      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
    2706                 :      1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731,
    2707                 :      1731, 1731, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732,
    2708                 :      1732, 1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733, 1733,
    2709                 : 
    2710                 :      1733, 1733, 1733, 1733, 1733, 1733, 1734, 1734, 1734, 1734,
    2711                 :      1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735, 1735,
    2712                 :      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
    2713                 :      1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
    2714                 :      1736, 1736, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
    2715                 :      1737, 1737, 1737, 1737, 1738, 1738, 1738, 1738, 1738, 1738,
    2716                 :      1738, 1738, 1738, 1738, 1738, 1738, 1739, 1739, 1739, 1739,
    2717                 :      1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1740, 1740,
    2718                 :      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
    2719                 :      1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741,
    2720                 : 
    2721                 :      1741, 1741, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
    2722                 :      1742, 1742, 1742, 1742, 1743, 1743, 1743, 1743, 1743, 1743,
    2723                 :      1743, 1743, 1743, 1743, 1743, 1743, 1744, 1744, 1744, 1744,
    2724                 :      1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1745, 1745,
    2725                 :      1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
    2726                 :      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
    2727                 :      1746, 1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
    2728                 :      1747, 1747, 1747, 1747, 1748, 1748, 1748, 1748, 1748, 1748,
    2729                 :      1748, 1748, 1748, 1748, 1748, 1748, 1749, 1749, 1749, 1749,
    2730                 :      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1750, 1750,
    2731                 : 
    2732                 :      1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
    2733                 :      1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751,
    2734                 :      1751, 1751, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
    2735                 :      1752, 1752, 1752, 1752, 1753, 1753, 1753, 1753, 1753, 1753,
    2736                 :      1753, 1753, 1753, 1753, 1753, 1753, 1754, 1754, 1754, 1754,
    2737                 :      1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1755, 1755,
    2738                 :      1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
    2739                 :      1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
    2740                 :      1756, 1756, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
    2741                 :      1757, 1757, 1757, 1757, 1758, 1758, 1758, 1758, 1758, 1758,
    2742                 : 
    2743                 :      1758, 1758, 1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759,
    2744                 :      1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1760, 1760,
    2745                 :      1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
    2746                 :      1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761,
    2747                 :      1761, 1761, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
    2748                 :      1762, 1762, 1762, 1762, 1763, 1763, 1763, 1763, 1763, 1763,
    2749                 :      1763, 1763, 1763, 1763, 1763, 1763, 1764, 1764, 1764, 1764,
    2750                 :      1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1765, 1765,
    2751                 :      1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
    2752                 :      1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
    2753                 : 
    2754                 :      1766, 1766, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
    2755                 :      1767, 1767, 1767, 1767, 1768, 1768, 1768, 1768, 1768, 1768,
    2756                 :      1768, 1768, 1768, 1768, 1768, 1768, 1769, 1769, 1769, 1769,
    2757                 :      1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1770, 1770,
    2758                 :      1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
    2759                 :      1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
    2760                 :      1771, 1771, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
    2761                 :      1772, 1772, 1772, 1772, 1773, 1773, 1773, 1773, 1773, 1773,
    2762                 :      1773, 1773, 1773, 1773, 1773, 1773, 1774, 1774, 1774, 1774,
    2763                 :      1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1775, 1775,
    2764                 : 
    2765                 :      1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775,
    2766                 :      1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
    2767                 :      1776, 1776, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777,
    2768                 :      1777, 1777, 1777, 1777, 1778, 1778, 1778, 1778, 1778, 1778,
    2769                 :      1778, 1778, 1778, 1778, 1778, 1778, 1779, 1779, 1779, 1779,
    2770                 :      1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1780, 1780,
    2771                 :      1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
    2772                 :      1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781,
    2773                 :      1781, 1781, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
    2774                 :      1782, 1782, 1782, 1782, 1783, 1783, 1783, 1783, 1783, 1783,
    2775                 : 
    2776                 :      1783, 1783, 1783, 1783, 1783, 1783, 1784, 1784, 1784, 1784,
    2777                 :      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1785, 1785,
    2778                 :      1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
    2779                 :      1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786,
    2780                 :      1786, 1786, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
    2781                 :      1787, 1787, 1787, 1787, 1788, 1788, 1788, 1788, 1788, 1788,
    2782                 :      1788, 1788, 1788, 1788, 1788, 1788, 1789, 1789, 1789, 1789,
    2783                 :      1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1790, 1790,
    2784                 :      1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
    2785                 :      1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791,
    2786                 : 
    2787                 :      1791, 1791, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
    2788                 :      1792, 1792, 1792, 1792, 1793, 1793, 1793, 1793, 1793, 1793,
    2789                 :      1793, 1793, 1793, 1793, 1793, 1793, 1794, 1794, 1794, 1794,
    2790                 :      1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1795, 1795,
    2791                 :      1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
    2792                 :      1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
    2793                 :      1796, 1796, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797,
    2794                 :      1797, 1797, 1797, 1797, 1798, 1798, 1798, 1798, 1798, 1798,
    2795                 :      1798, 1798, 1798, 1798, 1798, 1798, 1799, 1799, 1799, 1799,
    2796                 :      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1800, 1800,
    2797                 : 
    2798                 :      1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
    2799                 :      1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801,
    2800                 :      1801, 1801, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802,
    2801                 :      1802, 1802, 1802, 1802, 1803, 1803, 1803, 1803, 1803, 1803,
    2802                 :      1803, 1803, 1803, 1803, 1803, 1803, 1804, 1804, 1804, 1804,
    2803                 :      1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1805, 1805,
    2804                 :      1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
    2805                 :      1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
    2806                 :      1806, 1806, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
    2807                 :      1807, 1807, 1807, 1807, 1808, 1808, 1808, 1808, 1808, 1808,
    2808                 : 
    2809                 :      1808, 1808, 1808, 1808, 1808, 1808, 1809, 1809, 1809, 1809,
    2810                 :      1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1810, 1810,
    2811                 :      1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
    2812                 :      1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811,
    2813                 :      1811, 1811, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
    2814                 :      1812, 1812, 1812, 1812, 1813, 1813, 1813, 1813, 1813, 1813,
    2815                 :      1813, 1813, 1813, 1813, 1813, 1813, 1814, 1814, 1814, 1814,
    2816                 :      1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1815, 1815,
    2817                 :      1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
    2818                 :      1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
    2819                 : 
    2820                 :      1816, 1816, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
    2821                 :      1817, 1817, 1817, 1817, 1818, 1818, 1818, 1818, 1818, 1818,
    2822                 :      1818, 1818, 1818, 1818, 1818, 1818, 1819, 1819, 1819, 1819,
    2823                 :      1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1820, 1820,
    2824                 :      1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
    2825                 :      1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
    2826                 :      1821, 1821, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
    2827                 :      1822, 1822, 1822, 1822, 1823, 1823, 1823, 1823, 1823, 1823,
    2828                 :      1823, 1823, 1823, 1823, 1823, 1823, 1824, 1824, 1824, 1824,
    2829                 :      1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1825, 1825,
    2830                 : 
    2831                 :      1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
    2832                 :      1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
    2833                 :      1826, 1826, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
    2834                 :      1827, 1827, 1827, 1827, 1828, 1828, 1828, 1828, 1828, 1828,
    2835                 :      1828, 1828, 1828, 1828, 1828, 1828, 1829, 1829, 1829, 1829,
    2836                 :      1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1830, 1830,
    2837                 :      1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
    2838                 :      1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831,
    2839                 :      1831, 1831, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
    2840                 :      1832, 1832, 1832, 1832, 1833, 1833, 1833, 1833, 1833, 1833,
    2841                 : 
    2842                 :      1833, 1833, 1833, 1833, 1833, 1833, 1834, 1834, 1834, 1834,
    2843                 :      1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1835, 1835,
    2844                 :      1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
    2845                 :      1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836,
    2846                 :      1836, 1836, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837,
    2847                 :      1837, 1837, 1837, 1837, 1838, 1838, 1838, 1838, 1838, 1838,
    2848                 :      1838, 1838, 1838, 1838, 1838, 1838, 1839, 1839, 1839, 1839,
    2849                 :      1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1840, 1840,
    2850                 :      1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
    2851                 :      1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
    2852                 : 
    2853                 :      1841, 1841, 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
    2854                 :      1842, 1842, 1842, 1842, 1843, 1843, 1843, 1843, 1843, 1843,
    2855                 :      1843, 1843, 1843, 1843, 1843, 1843, 1844, 1844, 1844, 1844,
    2856                 :      1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1845, 1845,
    2857                 :      1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845,
    2858                 :      1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
    2859                 :      1846, 1846, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
    2860                 :      1847, 1847, 1847, 1847, 1848, 1848, 1848, 1848, 1848, 1848,
    2861                 :      1848, 1848, 1848, 1848, 1848, 1848, 1849, 1849, 1849, 1849,
    2862                 :      1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1850, 1850,
    2863                 : 
    2864                 :      1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850,
    2865                 :      1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
    2866                 :      1851, 1851, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
    2867                 :      1852, 1852, 1852, 1852, 1853, 1853, 1853, 1853, 1853, 1853,
    2868                 :      1853, 1853, 1853, 1853, 1853, 1853, 1854, 1854, 1854, 1854,
    2869                 :      1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1855, 1855,
    2870                 :      1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
    2871                 :      1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
    2872                 :      1856, 1856, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
    2873                 :      1857, 1857, 1857, 1857, 1858, 1858, 1858, 1858, 1858, 1858,
    2874                 : 
    2875                 :      1858, 1858, 1858, 1858, 1858, 1858, 1859, 1859, 1859, 1859,
    2876                 :      1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1860, 1860,
    2877                 :      1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
    2878                 :      1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861,
    2879                 :      1861, 1861, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
    2880                 :      1862, 1862, 1862, 1862, 1863, 1863, 1863, 1863, 1863, 1863,
    2881                 :      1863, 1863, 1863, 1863, 1863, 1863, 1864, 1864, 1864, 1864,
    2882                 :      1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1865, 1865,
    2883                 :      1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
    2884                 :      1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866,
    2885                 : 
    2886                 :      1866, 1866, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867,
    2887                 :      1867, 1867, 1867, 1867, 1868, 1868, 1868, 1868, 1868, 1868,
    2888                 :      1868, 1868, 1868, 1868, 1868, 1868, 1869, 1869, 1869, 1869,
    2889                 :      1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1870, 1870,
    2890                 :      1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870,
    2891                 :      1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
    2892                 :      1871, 1871, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
    2893                 :      1872, 1872, 1872, 1872, 1873, 1873, 1873, 1873, 1873, 1873,
    2894                 :      1873, 1873, 1873, 1873, 1873, 1873, 1874, 1874, 1874, 1874,
    2895                 :      1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1875, 1875,
    2896                 : 
    2897                 :      1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875,
    2898                 :      1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876,
    2899                 :      1876, 1876, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
    2900                 :      1877, 1877, 1877, 1877, 1878, 1878, 1878, 1878, 1878, 1878,
    2901                 :      1878, 1878, 1878, 1878, 1878, 1878, 1879, 1879, 1879, 1879,
    2902                 :      1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1880, 1880,
    2903                 :      1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
    2904                 :      1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881,
    2905                 :      1881, 1881, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
    2906                 :      1882, 1882, 1882, 1882, 1883, 1883, 1883, 1883, 1883, 1883,
    2907                 : 
    2908                 :      1883, 1883, 1883, 1883, 1883, 1883, 1884, 1884, 1884, 1884,
    2909                 :      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1885, 1885,
    2910                 :      1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885,
    2911                 :      1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
    2912                 :      1886, 1886, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
    2913                 :      1887, 1887, 1887, 1887, 1888, 1888, 1888, 1888, 1888, 1888,
    2914                 :      1888, 1888, 1888, 1888, 1888, 1888, 1889, 1889, 1889, 1889,
    2915                 :      1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1890, 1890,
    2916                 :      1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
    2917                 :      1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891,
    2918                 : 
    2919                 :      1891, 1891, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892,
    2920                 :      1892, 1892, 1892, 1892, 1893, 1893, 1893, 1893, 1893, 1893,
    2921                 :      1893, 1893, 1893, 1893, 1893, 1893, 1894, 1894, 1894, 1894,
    2922                 :      1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1895, 1895,
    2923                 :      1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895,
    2924                 :      1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896,
    2925                 :      1896, 1896, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897,
    2926                 :      1897, 1897, 1897, 1897, 1898, 1898, 1898, 1898, 1898, 1898,
    2927                 :      1898, 1898, 1898, 1898, 1898, 1898, 1899, 1899, 1899, 1899,
    2928                 :      1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1900, 1900,
    2929                 : 
    2930                 :      1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900,
    2931                 :      1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901,
    2932                 :      1901, 1901, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902,
    2933                 :      1902, 1902, 1902, 1902, 1903, 1903, 1903, 1903, 1903, 1903,
    2934                 :      1903, 1903, 1903, 1903, 1903, 1903, 1904, 1904, 1904, 1904,
    2935                 :      1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1905, 1905,
    2936                 :      1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
    2937                 :      1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906,
    2938                 :      1906, 1906, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
    2939                 :      1907, 1907, 1907, 1907, 1908, 1908, 1908, 1908, 1908, 1908,
    2940                 : 
    2941                 :      1908, 1908, 1908, 1908, 1908, 1908, 1909, 1909, 1909, 1909,
    2942                 :      1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1910, 1910,
    2943                 :      1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910,
    2944                 :      1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
    2945                 :      1911, 1911, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
    2946                 :      1912, 1912, 1912, 1912, 1913, 1913, 1913, 1913, 1913, 1913,
    2947                 :      1913, 1913, 1913, 1913, 1913, 1913, 1914, 1914, 1914, 1914,
    2948                 :      1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1915, 1915,
    2949                 :      1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915,
    2950                 :      1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916,
    2951                 : 
    2952                 :      1916, 1916, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
    2953                 :      1917, 1917, 1917, 1917, 1918, 1918, 1918, 1918, 1918, 1918,
    2954                 :      1918, 1918, 1918, 1918, 1918, 1918, 1919, 1919, 1919, 1919,
    2955                 :      1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1920, 1920,
    2956                 :      1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
    2957                 :      1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
    2958                 :      1921, 1921,  641,  640,  639,  636,  634,  633,  631,  619,
    2959                 :       618,  617,  615,  614,  613,  612,  611,  608,  607,  606,
    2960                 :       605,  602,  601,  600,  599,  598,  597,  596,  595,  594,
    2961                 :       589,  588,  582,  578,  576,  575,  574,  573,  572,  571,
    2962                 : 
    2963                 :       569,  568,  567,  566,  565,  564,  563,  561,  560,  559,
    2964                 :       558,  557,  556,  555,  554,  553,  552,  551,  549,  546,
    2965                 :       545,  544,  543,  540,  538,  537,  534,  527,  526,  525,
    2966                 :       524,  523,  522,  521,  518,  517,  516,  515,  514,  513,
    2967                 :       512,  510,  509,  508,  506,  505,  503,  502,  501,  500,
    2968                 :       493,  492,  491,  490,  489,  488,  487,  485,  483,  482,
    2969                 :       481,  479,  478,  475,  474,  472,  471,  470,  467,  456,
    2970                 :       455,  454,  453,  452,  451,  450,  449,  448,  447,  446,
    2971                 :       444,  443,  442,  441,  440,  439,  438,  437,  436,  435,
    2972                 :       432,  431,  430,  429,  428,  427,  426,  424,  423,  422,
    2973                 : 
    2974                 :       421,  420,  419,  418,  416,  415,  414,  413,  412,  411,
    2975                 :       410,  409,  408,  406,  405,  403,  402,  401,  400,  398,
    2976                 :       397,  396,  395,  394,  393,  392,  390,  367,  364,  361,
    2977                 :       359,  358,  357,  356,  355,  354,  353,  350,  349,  348,
    2978                 :       347,  346,  345,  344,  343,  342,  341,  340,  339,  338,
    2979                 :       336,  335,  334,  332,  331,  329,  328,  327,  326,  325,
    2980                 :       324,  323,  321,  320,  319,  318,  316,  315,  310,  309,
    2981                 :       303,  302,  301,  300,  299,  298,  297,  296,  295,  294,
    2982                 :       293,  287,  286,  283,  246,  237,  225,  220,  219,  218,
    2983                 :       217,  216,  215,  214,  213,  212,  210,  207,  206,  205,
    2984                 : 
    2985                 :       203,  201,  200,  199,  198,  196,  195,  194,  193,  192,
    2986                 :       190,  188,  185,  184,  180,  179,  178,  173,  170,  166,
    2987                 :       158,  149,  148,  147,  146,  145,  144,  143,  141,  126,
    2988                 :       124,  122,  121,  119,  118,  116,  115,  112,  111,  100,
    2989                 :        91,   86,   82,   75,   74,   73,   69,   67,   66,   65,
    2990                 :        62,   54,   53,   52,   48,   41,   32,   28,   27,   24,
    2991                 :        23,   22,   21,    2,    1, 1492, 1492, 1492, 1492, 1492,
    2992                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2993                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2994                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2995                 : 
    2996                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2997                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2998                 :      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492
    2999                 :     } ;
    3000                 : 
    3001                 : static yy_state_type yy_last_accepting_state;
    3002                 : static char *yy_last_accepting_cpos;
    3003                 : 
    3004                 : /* The intent behind this definition is that it'll catch
    3005                 :  * any uses of REJECT which flex missed.
    3006                 :  */
    3007                 : #define REJECT reject_used_but_not_detected
    3008                 : static int yy_more_flag = 0;
    3009                 : static int yy_more_len = 0;
    3010                 : #define yymore() (yy_more_flag = 1)
    3011                 : #define YY_MORE_ADJ yy_more_len
    3012                 : #define YY_RESTORE_YY_MORE_OFFSET
    3013                 : char *yytext;
    3014                 : #line 1 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    3015                 : #define INITIAL 0
    3016                 : #line 2 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    3017                 : 
    3018                 : /*
    3019                 :    +----------------------------------------------------------------------+
    3020                 :    | Zend Engine                                                          |
    3021                 :    +----------------------------------------------------------------------+
    3022                 :    | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
    3023                 :    +----------------------------------------------------------------------+
    3024                 :    | This source file is subject to version 2.00 of the Zend license,     |
    3025                 :    | that is bundled with this package in the file LICENSE, and is        |
    3026                 :    | available through the world-wide-web at the following url:           |
    3027                 :    | http://www.zend.com/license/2_00.txt.                                |
    3028                 :    | If you did not receive a copy of the Zend license and are unable to  |
    3029                 :    | obtain it through the world-wide-web, please send a note to          |
    3030                 :    | license@zend.com so we can mail you a copy immediately.              |
    3031                 :    +----------------------------------------------------------------------+
    3032                 :    | Authors: Andi Gutmans <andi@zend.com>                                |
    3033                 :    |          Zeev Suraski <zeev@zend.com>                                |
    3034                 :    +----------------------------------------------------------------------+
    3035                 : */
    3036                 : 
    3037                 : /* $Id: zend_language_scanner.l 280170 2009-05-08 17:50:58Z mattwil $ */
    3038                 : 
    3039                 : #define yyleng SCNG(yy_leng)
    3040                 : #define yytext SCNG(yy_text)
    3041                 : #define yytext_ptr SCNG(yy_text)
    3042                 : #define yyin SCNG(yy_in)
    3043                 : #define yyout SCNG(yy_out)
    3044                 : #define yy_last_accepting_state SCNG(_yy_last_accepting_state)
    3045                 : #define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
    3046                 : #define yy_more_flag SCNG(_yy_more_flag)
    3047                 : #define yy_more_len SCNG(_yy_more_len)
    3048                 : 
    3049                 : #define ST_IN_SCRIPTING 1
    3050                 : 
    3051                 : #define ST_DOUBLE_QUOTES 2
    3052                 : 
    3053                 : #define ST_BACKQUOTE 3
    3054                 : 
    3055                 : #define ST_HEREDOC 4
    3056                 : 
    3057                 : #define ST_START_HEREDOC 5
    3058                 : 
    3059                 : #define ST_END_HEREDOC 6
    3060                 : 
    3061                 : #define ST_LOOKING_FOR_PROPERTY 7
    3062                 : 
    3063                 : #define ST_LOOKING_FOR_VARNAME 8
    3064                 : 
    3065                 : #define ST_VAR_OFFSET 9
    3066                 : 
    3067                 : #define ST_COMMENT 10
    3068                 : 
    3069                 : #define ST_DOC_COMMENT 11
    3070                 : 
    3071                 : #define ST_ONE_LINE_COMMENT 12
    3072                 : 
    3073                 : #define YY_STACK_USED 1
    3074                 : #line 51 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    3075                 : 
    3076                 : #include <errno.h>
    3077                 : #include "zend.h"
    3078                 : #include "zend_alloc.h"
    3079                 : #include <zend_language_parser.h>
    3080                 : #include "zend_compile.h"
    3081                 : #include "zend_language_scanner.h"
    3082                 : #include "zend_highlight.h"
    3083                 : #include "zend_constants.h"
    3084                 : #include "zend_variables.h"
    3085                 : #include "zend_operators.h"
    3086                 : #include "zend_API.h"
    3087                 : #include "zend_strtod.h"
    3088                 : #include "zend_exceptions.h"
    3089                 : 
    3090                 : #ifdef HAVE_STDARG_H
    3091                 : # include <stdarg.h>
    3092                 : #endif
    3093                 : 
    3094                 : #ifdef HAVE_UNISTD_H
    3095                 : # include <unistd.h>
    3096                 : #endif
    3097                 : 
    3098                 : #define YY_DECL int lex_scan(zval *zendlval TSRMLS_DC)
    3099                 : 
    3100                 : #define ECHO { ZEND_WRITE( yytext, yyleng ); }
    3101                 : 
    3102                 : #ifdef ZTS
    3103                 : #  define MY_INPUT yyinput
    3104                 : #else
    3105                 : #  define MY_INPUT input
    3106                 : #endif
    3107                 : 
    3108                 : 
    3109                 : /* Globals Macros */
    3110                 : #define SCNG    LANG_SCNG
    3111                 : #ifdef ZTS
    3112                 : ZEND_API ts_rsrc_id language_scanner_globals_id;
    3113                 : #else
    3114                 : ZEND_API zend_scanner_globals language_scanner_globals;
    3115                 : #endif
    3116                 : 
    3117                 : 
    3118                 : #define YY_FATAL_ERROR zend_fatal_scanner_error
    3119                 : 
    3120                 : #define HANDLE_NEWLINES(s, l)                                                                                                   \
    3121                 : do {                                                                                                                                                    \
    3122                 :         char *p = (s), *boundary = p+(l);                                                                                       \
    3123                 :                                                                                                                                                                 \
    3124                 :         while (p<boundary) {                                                                                                         \
    3125                 :                 if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {                                   \
    3126                 :                         CG(zend_lineno)++;                                                                                                      \
    3127                 :                 }                                                                                                                                               \
    3128                 :                 p++;                                                                                                                                    \
    3129                 :         }                                                                                                                                                       \
    3130                 : } while (0)
    3131                 : 
    3132                 : #define HANDLE_NEWLINE(c) \
    3133                 : { \
    3134                 :         if (c == '\n' || c == '\r') { \
    3135                 :                 CG(zend_lineno)++; \
    3136                 :         } \
    3137                 : }
    3138                 : 
    3139                 : 
    3140                 : #define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
    3141                 : #define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
    3142                 : 
    3143                 : 
    3144                 : void zend_fatal_scanner_error(char *message)
    3145                 : {
    3146                 :         zend_error(E_COMPILE_ERROR, "%s", message);
    3147                 : }
    3148                 : 
    3149                 : BEGIN_EXTERN_C()
    3150                 : void startup_scanner(TSRMLS_D)
    3151                 : {
    3152                 :         CG(heredoc) = NULL;
    3153                 :         CG(heredoc_len) = 0;
    3154                 :         CG(doc_comment) = NULL;
    3155                 :         CG(doc_comment_len) = 0;
    3156                 :         SCNG(yy_start_stack_ptr) = 0;
    3157                 :         SCNG(yy_start_stack_depth) = 0;
    3158                 :         SCNG(current_buffer) = NULL;
    3159                 : #ifdef ZEND_MULTIBYTE
    3160                 :         SCNG(script_org) = NULL;
    3161                 :         SCNG(script_org_size) = 0;
    3162                 :         SCNG(script_filtered) = NULL;
    3163                 :         SCNG(script_filtered_size) = 0;
    3164                 :         SCNG(input_filter) = NULL;
    3165                 :         SCNG(output_filter) = NULL;
    3166                 :         SCNG(script_encoding) = NULL;
    3167                 :         SCNG(internal_encoding) = NULL;
    3168                 : #endif /* ZEND_MULTIBYTE */
    3169                 : }
    3170                 : 
    3171                 : 
    3172                 : void shutdown_scanner(TSRMLS_D)
    3173                 : {
    3174                 :         if (CG(heredoc)) {
    3175                 :                 efree(CG(heredoc));
    3176                 :                 CG(heredoc_len)=0;
    3177                 :         }
    3178                 :         if (SCNG(yy_start_stack)) {
    3179                 :                 yy_flex_free(SCNG(yy_start_stack));
    3180                 :                 SCNG(yy_start_stack) = NULL;
    3181                 :         }
    3182                 :         RESET_DOC_COMMENT();
    3183                 :         
    3184                 : #ifdef ZEND_MULTIBYTE
    3185                 :         if (SCNG(script_org)) {
    3186                 :                 efree(SCNG(script_org));
    3187                 :                 SCNG(script_org) = NULL;
    3188                 :         }
    3189                 :         if (SCNG(script_filtered)) {
    3190                 :                 efree(SCNG(script_filtered));
    3191                 :                 SCNG(script_filtered) = NULL;
    3192                 :         }
    3193                 :         SCNG(script_org_size) = 0;
    3194                 :         SCNG(script_filtered_size) = 0;
    3195                 :         SCNG(input_filter) = NULL;
    3196                 :         SCNG(output_filter) = NULL;
    3197                 :         SCNG(script_encoding) = NULL;
    3198                 :         SCNG(internal_encoding) = NULL;
    3199                 : #endif /* ZEND_MULTIBYTE */
    3200                 : }
    3201                 : END_EXTERN_C()
    3202                 : 
    3203                 : 
    3204                 : ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
    3205                 : {
    3206                 :         memcpy(&lex_state->buffer_state, &YY_CURRENT_BUFFER, sizeof(YY_BUFFER_STATE));
    3207                 :         lex_state->in = SCNG(yy_in);
    3208                 :         lex_state->state = YYSTATE;
    3209                 :         lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
    3210                 :         lex_state->lineno = CG(zend_lineno);
    3211                 : 
    3212                 : #ifdef ZEND_MULTIBYTE
    3213                 :         lex_state->script_org = SCNG(script_org);
    3214                 :         lex_state->script_org_size = SCNG(script_org_size);
    3215                 :         lex_state->script_filtered = SCNG(script_filtered);
    3216                 :         lex_state->script_filtered_size = SCNG(script_filtered_size);
    3217                 :         lex_state->input_filter = SCNG(input_filter);
    3218                 :         lex_state->output_filter = SCNG(output_filter);
    3219                 :         lex_state->script_encoding = SCNG(script_encoding);
    3220                 :         lex_state->internal_encoding = SCNG(internal_encoding);
    3221                 : #endif /* ZEND_MULTIBYTE */
    3222                 : }
    3223                 : 
    3224                 : ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
    3225                 : {
    3226                 :         YY_BUFFER_STATE original_buffer_state = YY_CURRENT_BUFFER;
    3227                 : 
    3228                 :         if (lex_state->buffer_state) {
    3229                 :                 yy_switch_to_buffer(lex_state->buffer_state TSRMLS_CC);
    3230                 :         } else {
    3231                 :                 YY_CURRENT_BUFFER = NULL;
    3232                 :         }
    3233                 : 
    3234                 :         yy_delete_buffer(original_buffer_state TSRMLS_CC);
    3235                 :         SCNG(yy_in) = lex_state->in;
    3236                 :         BEGIN(lex_state->state);
    3237                 :         CG(zend_lineno) = lex_state->lineno;
    3238                 :         zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);
    3239                 : 
    3240                 : #ifdef ZEND_MULTIBYTE
    3241                 :         if (SCNG(script_org)) {
    3242                 :                 efree(SCNG(script_org));
    3243                 :                 SCNG(script_org) = NULL;
    3244                 :         }
    3245                 :         if (SCNG(script_filtered)) {
    3246                 :                 efree(SCNG(script_filtered));
    3247                 :                 SCNG(script_filtered) = NULL;
    3248                 :         }
    3249                 :         SCNG(script_org) = lex_state->script_org;
    3250                 :         SCNG(script_org_size) = lex_state->script_org_size;
    3251                 :         SCNG(script_filtered) = lex_state->script_filtered;
    3252                 :         SCNG(script_filtered_size) = lex_state->script_filtered_size;
    3253                 :         SCNG(input_filter) = lex_state->input_filter;
    3254                 :         SCNG(output_filter) = lex_state->output_filter;
    3255                 :         SCNG(script_encoding) = lex_state->script_encoding;
    3256                 :         SCNG(internal_encoding) = lex_state->internal_encoding;
    3257                 : #endif /* ZEND_MULTIBYTE */
    3258                 : }
    3259                 : 
    3260                 : 
    3261                 : BEGIN_EXTERN_C()
    3262                 : 
    3263                 : 
    3264                 : ZEND_API void zend_file_handle_dtor(zend_file_handle *fh)
    3265                 : {
    3266                 :         TSRMLS_FETCH();
    3267                 :         
    3268                 :         switch (fh->type) {
    3269                 :                 case ZEND_HANDLE_FP:
    3270                 :                         fclose(fh->handle.fp);
    3271                 :                         break;
    3272                 :                 case ZEND_HANDLE_STREAM:
    3273                 :                         if (fh->handle.stream.closer) {
    3274                 :                                 fh->handle.stream.closer(fh->handle.stream.handle TSRMLS_CC);
    3275                 :                         }
    3276                 :                         break;
    3277                 :                 case ZEND_HANDLE_FILENAME:
    3278                 :                         /* We're only supposed to get here when destructing the used_files hash,
    3279                 :                          * which doesn't really contain open files, but references to their names/paths
    3280                 :                          */
    3281                 :                         break;
    3282                 :         }
    3283                 :         if (fh->opened_path) {
    3284                 :                 efree(fh->opened_path);
    3285                 :                 fh->opened_path = NULL;
    3286                 :         }
    3287                 :         if (fh->free_filename && fh->filename) {
    3288                 :                 efree(fh->filename);
    3289                 :                 fh->filename = NULL;
    3290                 :         }
    3291                 : }
    3292                 : 
    3293                 : 
    3294                 : int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2)
    3295                 : {
    3296                 :         if (fh1->type != fh2->type) {
    3297                 :                 return 0;
    3298                 :         }
    3299                 :         switch (fh1->type) {
    3300                 :                 case ZEND_HANDLE_FP:
    3301                 :                         return fh1->handle.fp==fh2->handle.fp;
    3302                 :                         break;
    3303                 :                 case ZEND_HANDLE_STREAM:
    3304                 :                         return fh1->handle.stream.handle == fh2->handle.stream.handle;
    3305                 :                         break;
    3306                 :         }
    3307                 :         return 0;
    3308                 : }
    3309                 : 
    3310                 : 
    3311                 : ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
    3312                 : {
    3313                 :         zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
    3314                 :         /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
    3315                 :         file_handle->opened_path = NULL;
    3316                 :         if (file_handle->free_filename) {
    3317                 :                 file_handle->filename = NULL;
    3318                 :         }
    3319                 : }
    3320                 : 
    3321                 : 
    3322                 : ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
    3323                 : {
    3324                 :         char *file_path=NULL;
    3325                 : 
    3326                 :         if (FAILURE == zend_stream_fixup(file_handle TSRMLS_CC)) {
    3327                 :                 return FAILURE;
    3328                 :         }
    3329                 : 
    3330                 :         zend_llist_add_element(&CG(open_files), file_handle);
    3331                 :         
    3332                 :         /* Reset the scanner for scanning the new file */
    3333                 :         SCNG(yy_in) = file_handle;
    3334                 : 
    3335                 : #ifdef ZEND_MULTIBYTE
    3336                 :         if (file_handle->handle.stream.interactive == 0) {
    3337                 :                 if (zend_multibyte_read_script(TSRMLS_C) != 0) {
    3338                 :                         return FAILURE;
    3339                 :                 }
    3340                 : 
    3341                 :                 /* force flex to use buffer only */
    3342                 :                 SCNG(yy_in) = NULL;
    3343                 :                 SCNG(init) = 0;
    3344                 :                 SCNG(start) = 1;
    3345                 : 
    3346                 :                 zend_multibyte_set_filter(NULL TSRMLS_CC);
    3347                 : 
    3348                 :                 if (!SCNG(input_filter)) {
    3349                 :                         SCNG(script_filtered) = (char*)emalloc(SCNG(script_org_size)+1);
    3350                 :                         memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
    3351                 :                         SCNG(script_filtered_size) = SCNG(script_org_size);
    3352                 :                 } else {
    3353                 :                         SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
    3354                 :                 }
    3355                 : 
    3356                 :                 /* flex requires doubled null */
    3357                 :                 SCNG(script_filtered) = (char*)erealloc(SCNG(script_filtered), SCNG(script_filtered_size)+2);
    3358                 :                 *(SCNG(script_filtered)+SCNG(script_filtered_size)) = (char)NULL;
    3359                 :                 *(SCNG(script_filtered)+SCNG(script_filtered_size)+1) = (char)NULL;
    3360                 :                 yy_scan_buffer(SCNG(script_filtered), SCNG(script_filtered_size)+2 TSRMLS_CC);
    3361                 :         } else {
    3362                 :                 yy_switch_to_buffer(yy_create_buffer(SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
    3363                 :         }
    3364                 : #else  /* !ZEND_MULTIBYTE */
    3365                 :         yy_switch_to_buffer(yy_create_buffer(SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
    3366                 : #endif /* ZEND_MULTIBYTE */
    3367                 : 
    3368                 :         BEGIN(INITIAL);
    3369                 : 
    3370                 :         if (file_handle->opened_path) {
    3371                 :                 file_path = file_handle->opened_path;
    3372                 :         } else {
    3373                 :                 file_path = file_handle->filename;
    3374                 :         }
    3375                 : 
    3376                 :         zend_set_compiled_filename(file_path TSRMLS_CC);
    3377                 : 
    3378                 :         if (CG(start_lineno)) {
    3379                 :                 CG(zend_lineno) = CG(start_lineno);
    3380                 :                 CG(start_lineno) = 0;
    3381                 :         } else {
    3382                 :                 CG(zend_lineno) = 1;
    3383                 :         }
    3384                 : 
    3385                 :         CG(increment_lineno) = 0;
    3386                 :         return SUCCESS;
    3387                 : }
    3388                 : END_EXTERN_C()
    3389                 : 
    3390                 : 
    3391                 : ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
    3392                 : {
    3393                 :         zend_lex_state original_lex_state;
    3394                 :         zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
    3395                 :         zend_op_array *original_active_op_array = CG(active_op_array);
    3396                 :         zend_op_array *retval=NULL;
    3397                 :         int compiler_result;
    3398                 :         zend_bool compilation_successful=0;
    3399                 :         znode retval_znode;
    3400                 :         zend_bool original_in_compilation = CG(in_compilation);
    3401                 : 
    3402                 :         retval_znode.op_type = IS_CONST;
    3403                 :         retval_znode.u.constant.type = IS_LONG;
    3404                 :         retval_znode.u.constant.value.lval = 1;
    3405                 :         retval_znode.u.constant.is_ref = 0;
    3406                 :         retval_znode.u.constant.refcount = 1;
    3407                 : 
    3408                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3409                 : 
    3410                 :         retval = op_array; /* success oriented */
    3411                 : 
    3412                 :         if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {
    3413                 :                 if (type==ZEND_REQUIRE) {
    3414                 :                         zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
    3415                 :                         zend_bailout();
    3416                 :                 } else {
    3417                 :                         zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
    3418                 :                 }
    3419                 :                 compilation_successful=0;
    3420                 :         } else {
    3421                 :                 init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
    3422                 :                 CG(in_compilation) = 1;
    3423                 :                 CG(active_op_array) = op_array;
    3424                 :                 compiler_result = zendparse(TSRMLS_C);
    3425                 :                 zend_do_return(&retval_znode, 0 TSRMLS_CC);
    3426                 :                 zend_do_handle_exception(TSRMLS_C);
    3427                 :                 CG(in_compilation) = original_in_compilation;
    3428                 :                 if (compiler_result==1) { /* parser error */
    3429                 :                         zend_bailout();
    3430                 :                 }
    3431                 :                 compilation_successful=1;
    3432                 :         }
    3433                 : 
    3434                 :         if (retval) {
    3435                 :                 CG(active_op_array) = original_active_op_array;
    3436                 :                 if (compilation_successful) {
    3437                 :                         pass_two(op_array TSRMLS_CC);
    3438                 :                 } else {
    3439                 :                         efree(op_array);
    3440                 :                         retval = NULL;
    3441                 :                 }
    3442                 :         }
    3443                 :         if (compilation_successful) {
    3444                 :                 zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3445                 :         }
    3446                 :         return retval;
    3447                 : }
    3448                 : 
    3449                 : 
    3450                 : zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
    3451                 : {
    3452                 :         zend_file_handle file_handle;
    3453                 :         zval tmp;
    3454                 :         zend_op_array *retval;
    3455                 :         char *opened_path = NULL;
    3456                 : 
    3457                 :         if (filename->type != IS_STRING) {
    3458                 :                 tmp = *filename;
    3459                 :                 zval_copy_ctor(&tmp);
    3460                 :                 convert_to_string(&tmp);
    3461                 :                 filename = &tmp;
    3462                 :         }
    3463                 :         file_handle.filename = filename->value.str.val;
    3464                 :         file_handle.free_filename = 0;
    3465                 :         file_handle.type = ZEND_HANDLE_FILENAME;
    3466                 :         file_handle.opened_path = NULL;
    3467                 :         file_handle.handle.fp = NULL;
    3468                 : 
    3469                 :         retval = zend_compile_file(&file_handle, type TSRMLS_CC);
    3470                 :         if (retval && file_handle.handle.stream.handle) {
    3471                 :                 int dummy = 1;
    3472                 : 
    3473                 :                 if (!file_handle.opened_path) {
    3474                 :                         file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
    3475                 :                 }
    3476                 : 
    3477                 :                 zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
    3478                 : 
    3479                 :                 if (opened_path) {
    3480                 :                         efree(opened_path);
    3481                 :                 }
    3482                 :         }
    3483                 :         zend_destroy_file_handle(&file_handle TSRMLS_CC);
    3484                 : 
    3485                 :         if (filename==&tmp) {
    3486                 :                 zval_dtor(&tmp);
    3487                 :         }
    3488                 :         return retval;
    3489                 : }
    3490                 : 
    3491                 : ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
    3492                 : {
    3493                 :         /* enforce two trailing NULLs for flex... */
    3494                 :         STR_REALLOC(str->value.str.val, str->value.str.len+2);
    3495                 : 
    3496                 :         str->value.str.val[str->value.str.len+1]=0;
    3497                 : 
    3498                 :         SCNG(yy_in)=NULL;
    3499                 : 
    3500                 : #ifdef ZEND_MULTIBYTE
    3501                 :         SCNG(script_org) = estrdup(str->value.str.val);
    3502                 :         SCNG(script_org_size) = str->value.str.len;
    3503                 : 
    3504                 :         zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC);
    3505                 : 
    3506                 :         if (!SCNG(input_filter)) {
    3507                 :                 SCNG(script_filtered) = (char*)emalloc(SCNG(script_org_size)+1);
    3508                 :                 memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
    3509                 :                 SCNG(script_filtered_size) = SCNG(script_org_size);
    3510                 :         } else {
    3511                 :                 SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
    3512                 :         }
    3513                 : 
    3514                 :         /* flex requires doubled null */
    3515                 :         SCNG(script_filtered) = (char*)erealloc(SCNG(script_filtered), SCNG(script_filtered_size)+2);
    3516                 :         *(SCNG(script_filtered)+SCNG(script_filtered_size)) = (char)NULL;
    3517                 :         *(SCNG(script_filtered)+SCNG(script_filtered_size)+1) = (char)NULL;
    3518                 :         yy_scan_buffer(SCNG(script_filtered), SCNG(script_filtered_size)+2 TSRMLS_CC);
    3519                 : #else /* !ZEND_MULTIBYTE */
    3520                 :         yy_scan_buffer(str->value.str.val, str->value.str.len+2 TSRMLS_CC);
    3521                 : #endif /* ZEND_MULTIBYTE */
    3522                 : 
    3523                 :         zend_set_compiled_filename(filename TSRMLS_CC);
    3524                 :         CG(zend_lineno) = 1;
    3525                 :         CG(increment_lineno) = 0;
    3526                 :         return SUCCESS;
    3527                 : }
    3528                 : 
    3529                 : 
    3530                 : ZEND_API int zend_get_scanned_file_offset(TSRMLS_D)
    3531                 : {
    3532                 :         if (yyin) {
    3533                 :                 int offset_in_buffer = (yy_c_buf_p - (YY_CURRENT_BUFFER)->yy_ch_buf);
    3534                 :                 int read_bytes = SCNG(yy_n_chars);
    3535                 :                 int offset_from_the_end = read_bytes - offset_in_buffer;
    3536                 : 
    3537                 :                 return zend_stream_ftell(yyin TSRMLS_CC) - offset_from_the_end;
    3538                 :         } else {
    3539                 :                 /* The entire file is in the buffer; probably zend multibyte
    3540                 :                    is enabled */
    3541                 :                 return (yy_c_buf_p - (YY_CURRENT_BUFFER)->yy_ch_buf);
    3542                 :         }
    3543                 : }
    3544                 : 
    3545                 : 
    3546                 : zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
    3547                 : {
    3548                 :         zend_lex_state original_lex_state;
    3549                 :         zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
    3550                 :         zend_op_array *original_active_op_array = CG(active_op_array);
    3551                 :         zend_op_array *retval;
    3552                 :         zval tmp;
    3553                 :         int compiler_result;
    3554                 :         zend_bool original_in_compilation = CG(in_compilation);
    3555                 : 
    3556                 :         if (source_string->value.str.len==0) {
    3557                 :                 efree(op_array);
    3558                 :                 return NULL;
    3559                 :         }
    3560                 : 
    3561                 :         CG(in_compilation) = 1;
    3562                 : 
    3563                 :         tmp = *source_string;
    3564                 :         zval_copy_ctor(&tmp);
    3565                 :         convert_to_string(&tmp);
    3566                 :         source_string = &tmp;
    3567                 : 
    3568                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3569                 :         if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
    3570                 :                 efree(op_array);
    3571                 :                 retval = NULL;
    3572                 :         } else {
    3573                 :                 zend_bool orig_interactive = CG(interactive);
    3574                 :         
    3575                 :                 CG(interactive) = 0;
    3576                 :                 init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
    3577                 :                 CG(interactive) = orig_interactive;
    3578                 :                 CG(active_op_array) = op_array;
    3579                 :                 BEGIN(ST_IN_SCRIPTING);
    3580                 :                 compiler_result = zendparse(TSRMLS_C);
    3581                 : 
    3582                 : #ifdef ZEND_MULTIBYTE
    3583                 :                 if (SCNG(script_org)) {
    3584                 :                         efree(SCNG(script_org));
    3585                 :                         SCNG(script_org) = NULL;
    3586                 :                 }
    3587                 :                 if (SCNG(script_filtered)) {
    3588                 :                         efree(SCNG(script_filtered));
    3589                 :                         SCNG(script_filtered) = NULL;
    3590                 :                 }
    3591                 : #endif /* ZEND_MULTIBYTE */
    3592                 : 
    3593                 :                 if (compiler_result==1) {
    3594                 :                         CG(active_op_array) = original_active_op_array;
    3595                 :                         CG(unclean_shutdown)=1;
    3596                 :                         retval = NULL;
    3597                 :                 } else {
    3598                 :                         zend_do_return(NULL, 0 TSRMLS_CC);
    3599                 :                         zend_do_handle_exception(TSRMLS_C);
    3600                 :                         CG(active_op_array) = original_active_op_array;
    3601                 :                         pass_two(op_array TSRMLS_CC);
    3602                 :                         retval = op_array;
    3603                 :                 }
    3604                 :                 zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3605                 :         }
    3606                 :         zval_dtor(&tmp);
    3607                 :         CG(in_compilation) = original_in_compilation;
    3608                 :         return retval;
    3609                 : }
    3610                 : 
    3611                 : 
    3612                 : BEGIN_EXTERN_C()
    3613                 : int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
    3614                 : {
    3615                 :         zend_lex_state original_lex_state;
    3616                 :         zend_file_handle file_handle;
    3617                 : 
    3618                 :         file_handle.type = ZEND_HANDLE_FILENAME;
    3619                 :         file_handle.filename = filename;
    3620                 :         file_handle.free_filename = 0;
    3621                 :         file_handle.opened_path = NULL;
    3622                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3623                 :         if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
    3624                 :                 zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
    3625                 :                 return FAILURE;
    3626                 :         }
    3627                 :         zend_highlight(syntax_highlighter_ini TSRMLS_CC);
    3628                 : #ifdef ZEND_MULTIBYTE
    3629                 :         if (SCNG(script_org)) {
    3630                 :                 efree(SCNG(script_org));
    3631                 :                 SCNG(script_org) = NULL;
    3632                 :         }
    3633                 :         if (SCNG(script_filtered)) {
    3634                 :                 efree(SCNG(script_filtered));
    3635                 :                 SCNG(script_filtered) = NULL;
    3636                 :         }
    3637                 : #endif /* ZEND_MULTIBYTE */
    3638                 :         zend_destroy_file_handle(&file_handle TSRMLS_CC);
    3639                 :         zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3640                 :         return SUCCESS;
    3641                 : }
    3642                 : 
    3643                 : int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)
    3644                 : {
    3645                 :         zend_lex_state original_lex_state;
    3646                 :         zval tmp = *str;
    3647                 : 
    3648                 :         str = &tmp;
    3649                 :         zval_copy_ctor(str);
    3650                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3651                 :         if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
    3652                 :                 return FAILURE;
    3653                 :         }
    3654                 :         BEGIN(INITIAL);
    3655                 :         zend_highlight(syntax_highlighter_ini TSRMLS_CC);
    3656                 : #ifdef ZEND_MULTIBYTE
    3657                 :         if (SCNG(script_org)) {
    3658                 :                 efree(SCNG(script_org));
    3659                 :                 SCNG(script_org) = NULL;
    3660                 :         }
    3661                 :         if (SCNG(script_filtered)) {
    3662                 :                 efree(SCNG(script_filtered));
    3663                 :                 SCNG(script_filtered) = NULL;
    3664                 :         }
    3665                 : #endif /* ZEND_MULTIBYTE */
    3666                 :         zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3667                 :         zval_dtor(str);
    3668                 :         return SUCCESS;
    3669                 : }
    3670                 : END_EXTERN_C()
    3671                 : 
    3672                 : #ifdef ZEND_MULTIBYTE
    3673                 : BEGIN_EXTERN_C()
    3674                 : ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
    3675                 : {
    3676                 :         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
    3677                 :         int offset, original_offset, length, free_flag;
    3678                 :         char *p;
    3679                 :         zend_encoding *new_encoding;
    3680                 : 
    3681                 :         /* calculate current position */
    3682                 :         offset = original_offset = yy_c_buf_p - b->yy_ch_buf;
    3683                 :         if (old_input_filter && original_offset > 0) {
    3684                 :                 new_encoding = SCNG(script_encoding);
    3685                 :                 SCNG(script_encoding) = old_encoding;
    3686                 :                 do {
    3687                 :                         (old_input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC);
    3688                 :                         if (!p) {
    3689                 :                                 SCNG(script_encoding) = new_encoding;
    3690                 :                                 return;
    3691                 :                         }
    3692                 :                         efree(p);
    3693                 :                         if (length > original_offset) {
    3694                 :                                 offset--;
    3695                 :                         } else if (length < original_offset) {
    3696                 :                                 offset++;
    3697                 :                         }
    3698                 :                 } while (original_offset != length);
    3699                 :                 SCNG(script_encoding) = new_encoding;
    3700                 :         }
    3701                 : 
    3702                 :         /* convert and set */
    3703                 :         if (!SCNG(input_filter)) {
    3704                 :                 length = SCNG(script_org_size)-offset-1;
    3705                 :                 p = SCNG(script_org)+offset+1;
    3706                 :                 free_flag = 0;
    3707                 :         } else {
    3708                 :                 SCNG(input_filter)(&p, &length, SCNG(script_org)+offset+1, SCNG(script_org_size)-offset-1 TSRMLS_CC);
    3709                 :                 free_flag = 1;
    3710                 :         }
    3711                 :         if (original_offset+length+1 > (int)b->yy_buf_size) {
    3712                 :                 b->yy_buf_size = original_offset+length+1;
    3713                 :                 b->yy_ch_buf = (char*)erealloc(b->yy_ch_buf, b->yy_buf_size+2);
    3714                 :                 SCNG(script_filtered) = b->yy_ch_buf;
    3715                 :                 SCNG(script_filtered_size) = b->yy_buf_size;
    3716                 :         }
    3717                 :         yy_c_buf_p = b->yy_ch_buf + original_offset;
    3718                 :         strncpy(yy_c_buf_p+1, p, length);
    3719                 :         b->yy_n_chars = original_offset + length + 1;
    3720                 :         SCNG(yy_n_chars) = b->yy_n_chars;
    3721                 :         b->yy_ch_buf[SCNG(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
    3722                 :         b->yy_ch_buf[SCNG(yy_n_chars)+1] = YY_END_OF_BUFFER_CHAR;
    3723                 : 
    3724                 :         if (free_flag) {
    3725                 :                 efree(p);
    3726                 :         }
    3727                 : }
    3728                 : 
    3729                 : 
    3730                 : ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC)
    3731                 : {
    3732                 :         int c = '*', n;
    3733                 : 
    3734                 :         if (file_handle->handle.stream.interactive == 0) {
    3735                 :                 return zend_stream_read(file_handle, buf, len TSRMLS_CC);
    3736                 :         }
    3737                 : 
    3738                 :         /* interactive */
    3739                 :         if (SCNG(script_org)) {
    3740                 :                 efree(SCNG(script_org));
    3741                 :         }
    3742                 :         if (SCNG(script_filtered)) {
    3743                 :                 efree(SCNG(script_filtered));
    3744                 :         }
    3745                 :         SCNG(script_org) = NULL;
    3746                 :         SCNG(script_org_size) = 0;
    3747                 : 
    3748                 :         /* TODO: support widechars */
    3749                 : 
    3750                 :         for (n = 0; n < len && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) {
    3751                 :                 buf[n] = (char)c;
    3752                 :         }
    3753                 :         if (c == '\n') {
    3754                 :                 buf[n++] = (char) c;
    3755                 :         }
    3756                 : 
    3757                 :         SCNG(script_org_size) = n;
    3758                 :         SCNG(script_org) = (char*)emalloc(SCNG(script_org_size) + 1);
    3759                 :         memcpy(SCNG(script_org), buf, n);
    3760                 : 
    3761                 :         return n;
    3762                 : }
    3763                 : 
    3764                 : 
    3765                 : ZEND_API int zend_multibyte_read_script(TSRMLS_D)
    3766                 : {
    3767                 :         char buf[8192];
    3768                 :         int n;
    3769                 : 
    3770                 :         if (SCNG(script_org)) {
    3771                 :                 efree(SCNG(script_org));
    3772                 :         }
    3773                 :         SCNG(script_org) = NULL;
    3774                 :         SCNG(script_org_size) = 0;
    3775                 : 
    3776                 :         for (; (n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC)) > 0; ) {
    3777                 :                 SCNG(script_org_size) += n;
    3778                 :                 SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size));
    3779                 :                 memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n);
    3780                 :         }
    3781                 : 
    3782                 :         if (n < 0) {
    3783                 :                 return -1;
    3784                 :         }
    3785                 : 
    3786                 :         SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1);
    3787                 :         *(SCNG(script_org)+SCNG(script_org_size)) = '\0';
    3788                 : 
    3789                 :         return 0;
    3790                 : }
    3791                 : 
    3792                 : 
    3793                 : # define zend_copy_value(zendlval, yytext, yyleng) \
    3794                 :         if (SCNG(output_filter)) { \
    3795                 :                 SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), yytext, yyleng TSRMLS_CC); \
    3796                 :         } else { \
    3797                 :                 zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
    3798                 :                 zendlval->value.str.len = yyleng; \
    3799                 :         }
    3800                 : #else /* ZEND_MULTIBYTE */
    3801                 : # define zend_copy_value(zendlval, yytext, yyleng) \
    3802                 :         zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \
    3803                 :         zendlval->value.str.len = yyleng;
    3804                 : #endif /* ZEND_MULTIBYTE */
    3805                 : 
    3806                 : static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)
    3807                 : {
    3808                 :         register char *s, *t;
    3809                 :         char *end;
    3810                 : 
    3811                 :         ZVAL_STRINGL(zendlval, str, len, 1);
    3812                 : 
    3813                 :         /* convert escape sequences */
    3814                 :         s = t = zendlval->value.str.val;
    3815                 :         end = s+zendlval->value.str.len;
    3816                 :         while (s<end) {
    3817                 :                 if (*s=='\\') {
    3818                 :                         s++;
    3819                 :                         if (s >= end) {
    3820                 :                                 *t++ = '\\';
    3821                 :                                 break;
    3822                 :                         }
    3823                 : 
    3824                 :                         switch(*s) {
    3825                 :                                 case 'n':
    3826                 :                                         *t++ = '\n';
    3827                 :                                         zendlval->value.str.len--;
    3828                 :                                         break;
    3829                 :                                 case 'r':
    3830                 :                                         *t++ = '\r';
    3831                 :                                         zendlval->value.str.len--;
    3832                 :                                         break;
    3833                 :                                 case 't':
    3834                 :                                         *t++ = '\t';
    3835                 :                                         zendlval->value.str.len--;
    3836                 :                                         break;
    3837                 :                                 case 'f':
    3838                 :                                         *t++ = '\f';
    3839                 :                                         zendlval->value.str.len--;
    3840                 :                                         break;
    3841                 :                                 case 'v':
    3842                 :                                         *t++ = '\v';
    3843                 :                                         zendlval->value.str.len--;
    3844                 :                                         break;
    3845                 :                                 case '"':
    3846                 :                                 case '`':
    3847                 :                                         if (*s != quote_type) {
    3848                 :                                                 *t++ = '\\';
    3849                 :                                                 *t++ = *s;
    3850                 :                                                 break;
    3851                 :                                         }
    3852                 :                                 case '\\':
    3853                 :                                 case '$':
    3854                 :                                         *t++ = *s;
    3855                 :                                         zendlval->value.str.len--;
    3856                 :                                         break;
    3857                 :                                 case 'x':
    3858                 :                                 case 'X':
    3859                 :                                         if (ZEND_IS_HEX(*(s+1))) {
    3860                 :                                                 char hex_buf[3] = { 0, 0, 0 };
    3861                 : 
    3862                 :                                                 zendlval->value.str.len--; /* for the 'x' */
    3863                 : 
    3864                 :                                                 hex_buf[0] = *(++s);
    3865                 :                                                 zendlval->value.str.len--;
    3866                 :                                                 if (ZEND_IS_HEX(*(s+1))) {
    3867                 :                                                         hex_buf[1] = *(++s);
    3868                 :                                                         zendlval->value.str.len--;
    3869                 :                                                 }
    3870                 :                                                 *t++ = (char) strtol(hex_buf, NULL, 16);
    3871                 :                                         } else {
    3872                 :                                                 *t++ = '\\';
    3873                 :                                                 *t++ = *s;
    3874                 :                                         }
    3875                 :                                         break;
    3876                 :                                 default:
    3877                 :                                         /* check for an octal */
    3878                 :                                         if (ZEND_IS_OCT(*s)) {
    3879                 :                                                 char octal_buf[4] = { 0, 0, 0, 0 };
    3880                 : 
    3881                 :                                                 octal_buf[0] = *s;
    3882                 :                                                 zendlval->value.str.len--;
    3883                 :                                                 if (ZEND_IS_OCT(*(s+1))) {
    3884                 :                                                         octal_buf[1] = *(++s);
    3885                 :                                                         zendlval->value.str.len--;
    3886                 :                                                         if (ZEND_IS_OCT(*(s+1))) {
    3887                 :                                                                 octal_buf[2] = *(++s);
    3888                 :                                                                 zendlval->value.str.len--;
    3889                 :                                                         }
    3890                 :                                                 }
    3891                 :                                                 *t++ = (char) strtol(octal_buf, NULL, 8);
    3892                 :                                         } else {
    3893                 :                                                 *t++ = '\\';
    3894                 :                                                 *t++ = *s;
    3895                 :                                         }
    3896                 :                                         break;
    3897                 :                         }
    3898                 :                 } else {
    3899                 :                         *t++ = *s;
    3900                 :                 }
    3901                 : 
    3902                 :                 if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
    3903                 :                         CG(zend_lineno)++;
    3904                 :                 }
    3905                 :                 s++;
    3906                 :         }
    3907                 :         *t = 0;
    3908                 : 
    3909                 : #ifdef ZEND_MULTIBYTE
    3910                 :         if (SCNG(output_filter)) {
    3911                 :                 s = zendlval->value.str.val;
    3912                 :                 SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), s, zendlval->value.str.len TSRMLS_CC);
    3913                 :                 efree(s);
    3914                 :         }
    3915                 : #endif /* ZEND_MULTIBYTE */
    3916                 : }
    3917                 : 
    3918                 : /*
    3919                 :  * LITERAL_DOLLAR matches unescaped $ that aren't followed by a label character
    3920                 :  * or a { and therefore will be taken literally. The case of literal $ before
    3921                 :  * a variable or "${" is handled in a rule for each string type
    3922                 :  */
    3923                 : /*
    3924                 :  * Usually, HEREDOC_NEWLINE will just function like a simple NEWLINE, but some
    3925                 :  * special cases need to be handled. HEREDOC_CHARS doesn't allow a line to
    3926                 :  * match when { or $, and/or \ is at the end. (("{"*|"$"*)"\\"?) handles that,
    3927                 :  * along with cases where { or $, and/or \ is the ONLY thing on a line
    3928                 :  *
    3929                 :  * The other case is when a line contains a label, followed by ONLY
    3930                 :  * { or $, and/or \  Handled by ({LABEL}";"?((("{"+|"$"+)"\\"?)|"\\"))
    3931                 :  */
    3932                 : /*
    3933                 :  * This pattern is just used in the next 2 for matching { or literal $, and/or
    3934                 :  * \ escape sequence immediately at the beginning of a line or after a label
    3935                 :  */
    3936                 : /*
    3937                 :  * These 2 label-related patterns allow HEREDOC_CHARS to continue "regular"
    3938                 :  * matching after a newline that starts with either a non-label character or a
    3939                 :  * label that isn't followed by a newline. Like HEREDOC_CHARS, they won't match
    3940                 :  * a variable or "{$"  Matching a newline, and possibly label, up TO a variable
    3941                 :  * or "{$", is handled in the heredoc rules
    3942                 :  *
    3943                 :  * The HEREDOC_LABEL_NO_NEWLINE pattern (";"[^$\n\r\\{]) handles cases where ;
    3944                 :  * follows a label. [^a-zA-Z0-9_\x7f-\xff;$\n\r\\{] is needed to prevent a label
    3945                 :  * character or ; from matching on a possible (real) ending label
    3946                 :  */
    3947                 : /*
    3948                 :  * CHARS matches everything up to a variable or "{$"
    3949                 :  * {'s are matched as long as they aren't followed by a $
    3950                 :  * The case of { before "{$" is handled in a rule for each string type
    3951                 :  *
    3952                 :  * For heredocs, matching continues across/after newlines if/when it's known
    3953                 :  * that the next line doesn't contain a possible ending label
    3954                 :  */
    3955                 : #line 3956 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.c"
    3956                 : 
    3957                 : /* Macros after this point can all be overridden by user definitions in
    3958                 :  * section 1.
    3959                 :  */
    3960                 : 
    3961                 : #ifndef YY_SKIP_YYWRAP
    3962                 : #ifdef __cplusplus
    3963                 : extern "C" int yywrap YY_PROTO(( void ));
    3964                 : #else
    3965                 : extern int yywrap YY_PROTO(( void ));
    3966                 : #endif
    3967                 : #endif
    3968                 : 
    3969                 : #ifndef YY_NO_UNPUT
    3970                 : static void yyunput YY_PROTO(( int c, char *buf_ptr TSRMLS_DC ));
    3971                 : #endif
    3972                 : 
    3973                 : #ifndef yytext_ptr
    3974                 : static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
    3975                 : #endif
    3976                 : 
    3977                 : #ifdef YY_NEED_STRLEN
    3978                 : static int yy_flex_strlen YY_PROTO(( yyconst char * ));
    3979                 : #endif
    3980                 : 
    3981                 : #ifndef YY_NO_INPUT
    3982                 : #ifdef __cplusplus
    3983                 : static int 3 YY_PROTO(( TSRMLS_D ));
    3984                 : #else
    3985                 : static int input YY_PROTO(( TSRMLS_D ));
    3986                 : #endif
    3987                 : #endif
    3988                 : 
    3989                 : #if YY_STACK_USED
    3990                 : #define yy_start_stack_ptr SCNG(yy_start_stack_ptr)
    3991                 : #define yy_start_stack_depth SCNG(yy_start_stack_depth)
    3992                 : #define yy_start_stack SCNG(yy_start_stack)
    3993                 : /*
    3994                 : static int yy_start_stack_ptr = 0;
    3995                 : static int yy_start_stack_depth = 0;
    3996                 : static int *yy_start_stack = 0;
    3997                 : */
    3998                 : #ifndef YY_NO_PUSH_STATE
    3999                 : static void yy_push_state YY_PROTO(( int new_state TSRMLS_DC ));
    4000                 : #endif
    4001                 : #ifndef YY_NO_POP_STATE
    4002                 : static void yy_pop_state YY_PROTO(( TSRMLS_D ));
    4003                 : #endif
    4004                 : #ifndef YY_NO_TOP_STATE
    4005                 : static int yy_top_state YY_PROTO(( TSRMLS_D ));
    4006                 : #endif
    4007                 : 
    4008                 : #else
    4009                 : #define YY_NO_PUSH_STATE 1
    4010                 : #define YY_NO_POP_STATE 1
    4011                 : #define YY_NO_TOP_STATE 1
    4012                 : #endif
    4013                 : 
    4014                 : #ifdef YY_MALLOC_DECL
    4015                 : YY_MALLOC_DECL
    4016                 : #else
    4017                 : #if __STDC__
    4018                 : #ifndef __cplusplus
    4019                 : #include <stdlib.h>
    4020                 : #endif
    4021                 : #else
    4022                 : /* Just try to get by without declaring the routines.  This will fail
    4023                 :  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
    4024                 :  * or sizeof(void*) != sizeof(int).
    4025                 :  */
    4026                 : #endif
    4027                 : #endif
    4028                 : 
    4029                 : /* Amount of stuff to slurp up with each read. */
    4030                 : #ifndef YY_READ_BUF_SIZE
    4031                 : #define YY_READ_BUF_SIZE 8192
    4032                 : #endif
    4033                 : 
    4034                 : /* Copy whatever the last rule matched to the standard output. */
    4035                 : 
    4036                 : /* Zend file handle reading */
    4037                 : #ifndef ECHO
    4038                 : #define ECHO /* There is no output */
    4039                 : #endif
    4040                 : 
    4041                 : #ifdef ZEND_MULTIBYTE
    4042                 : # define YY_INPUT(buf, result, max_size) \
    4043                 :         if ( ((result = zend_multibyte_yyinput(yyin, buf, max_size TSRMLS_CC)) == 0) \
    4044                 :                 && zend_stream_ferror( yyin TSRMLS_CC) ) \
    4045                 :                 YY_FATAL_ERROR( "input in flex scanner failed" );
    4046                 : #else
    4047                 : # define YY_INPUT(buf, result, max_size) \
    4048                 :         if ( ((result = zend_stream_read(yyin, buf, max_size TSRMLS_CC)) == 0) \
    4049                 :                   && zend_stream_ferror( yyin TSRMLS_CC) ) \
    4050                 :                 YY_FATAL_ERROR( "input in flex scanner failed" );
    4051                 : #endif
    4052                 : 
    4053                 : #ifndef ECHO
    4054                 : /* This used to be an fputs(), but since the string might contain NUL's,
    4055                 :  * we now use fwrite().
    4056                 :  */
    4057                 : #define ECHO (void) fwrite( yytext, yyleng, 1, SCNG(yy_out) )
    4058                 : #endif
    4059                 : 
    4060                 : /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
    4061                 :  * is returned in "result".
    4062                 :  */
    4063                 : #ifndef YY_INPUT
    4064                 : #define YY_INPUT(buf,result,max_size) \
    4065                 :         if ( yy_current_buffer->yy_is_interactive ) \
    4066                 :                 { \
    4067                 :                 int c = '*', n; \
    4068                 :                 for ( n = 0; n < max_size && \
    4069                 :                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
    4070                 :                         buf[n] = (char) c; \
    4071                 :                 if ( c == '\n' ) \
    4072                 :                         buf[n++] = (char) c; \
    4073                 :                 if ( c == EOF && ferror( yyin ) ) \
    4074                 :                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
    4075                 :                 result = n; \
    4076                 :                 } \
    4077                 :         else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
    4078                 :                   && ferror( yyin ) ) \
    4079                 :                 YY_FATAL_ERROR( "input in flex scanner failed" );
    4080                 : #endif
    4081                 : 
    4082                 : /* No semi-colon after return; correct usage is to write "yyterminate();" -
    4083                 :  * we don't want an extra ';' after the "return" because that will cause
    4084                 :  * some compilers to complain about unreachable statements.
    4085                 :  */
    4086                 : #ifndef yyterminate
    4087                 : #define yyterminate() return YY_NULL
    4088                 : #endif
    4089                 : 
    4090                 : /* Number of entries by which start-condition stack grows. */
    4091                 : #ifndef YY_START_STACK_INCR
    4092                 : #define YY_START_STACK_INCR 25
    4093                 : #endif
    4094                 : 
    4095                 : /* Report a fatal error. */
    4096                 : #ifndef YY_FATAL_ERROR
    4097                 : #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
    4098                 : #endif
    4099                 : 
    4100                 : 
    4101                 : /* Default declaration of generated scanner - a define so the user can
    4102                 :  * easily add parameters.
    4103                 :  */
    4104                 : #ifndef YY_DECL
    4105                 : #define YY_DECL int yylex YY_PROTO(( void ))
    4106                 : #endif
    4107                 : 
    4108                 : /* Code executed at the beginning of each rule, after yytext and yyleng
    4109                 :  * have been set up.
    4110                 :  */
    4111                 : #ifndef YY_USER_ACTION
    4112                 : #define YY_USER_ACTION
    4113                 : #endif
    4114                 : 
    4115                 : /* Code executed at the end of each rule. */
    4116                 : #ifndef YY_BREAK
    4117                 : #define YY_BREAK break;
    4118                 : #endif
    4119                 : 
    4120                 : #define YY_RULE_SETUP \
    4121                 :         YY_USER_ACTION
    4122                 : 
    4123                 : YY_DECL
    4124         3071924 :         {
    4125                 :         register yy_state_type yy_current_state;
    4126                 :         register char *yy_cp, *yy_bp;
    4127                 :         register int yy_act;
    4128                 : 
    4129                 : #line 961 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4130                 : 
    4131                 : 
    4132                 : #line 4133 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.c"
    4133                 : 
    4134         3071924 :         if ( yy_init )
    4135                 :                 {
    4136           13510 :                 yy_init = 0;
    4137                 : 
    4138                 : #ifdef YY_USER_INIT
    4139                 :                 YY_USER_INIT;
    4140                 : #endif
    4141                 : 
    4142           13510 :                 if ( ! yy_start )
    4143               0 :                         yy_start = 1;   /* first start state */
    4144                 : 
    4145                 : #if 0
    4146                 :                 if ( ! SCNG(yy_in) )
    4147                 :                         SCNG(yy_in) = stdin;
    4148                 : 
    4149                 :                 if ( ! SCNG(yy_out) )
    4150                 :                         SCNG(yy_out) = stdout;
    4151                 : #endif
    4152                 : 
    4153           13510 :                 if ( ! yy_current_buffer )
    4154               0 :                         yy_current_buffer =
    4155                 :                                 yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC );
    4156                 : 
    4157           13510 :                 yy_load_buffer_state(TSRMLS_C);
    4158                 :                 }
    4159                 : 
    4160                 :         while ( 1 )             /* loops until end-of-file is reached */
    4161                 :                 {
    4162         3159499 :                 yy_more_len = 0;
    4163         3159499 :                 if ( yy_more_flag )
    4164                 :                         {
    4165           86376 :                         yy_more_len = yy_c_buf_p - yytext_ptr;
    4166           86376 :                         yy_more_flag = 0;
    4167                 :                         }
    4168         3159499 :                 yy_cp = yy_c_buf_p;
    4169                 : 
    4170                 :                 /* Support of yytext. */
    4171         3159499 :                 *yy_cp = yy_hold_char;
    4172                 : 
    4173                 :                 /* yy_bp points to the position in yy_ch_buf of the start of
    4174                 :                  * the current run.
    4175                 :                  */
    4176         3159499 :                 yy_bp = yy_cp;
    4177                 : 
    4178         3159499 :                 yy_current_state = yy_start;
    4179        27542290 : yy_match:
    4180                 :                 do
    4181                 :                         {
    4182        27542290 :                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
    4183        27542290 :                         if ( yy_accept[yy_current_state] )
    4184                 :                                 {
    4185        21887825 :                                 yy_last_accepting_state = yy_current_state;
    4186        21887825 :                                 yy_last_accepting_cpos = yy_cp;
    4187                 :                                 }
    4188        77673443 :                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    4189                 :                                 {
    4190        22588863 :                                 yy_current_state = (int) yy_def[yy_current_state];
    4191        22588863 :                                 if ( yy_current_state >= 1493 )
    4192        20152372 :                                         yy_c = yy_meta[(unsigned int) yy_c];
    4193                 :                                 }
    4194        27542290 :                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    4195        27542290 :                         ++yy_cp;
    4196                 :                         }
    4197        27542290 :                 while ( yy_base[yy_current_state] != 8966 );
    4198                 : 
    4199         3181264 : yy_find_action:
    4200         3181264 :                 yy_act = yy_accept[yy_current_state];
    4201         3181264 :                 if ( yy_act == 0 )
    4202                 :                         { /* have to back up */
    4203         2115260 :                         yy_cp = yy_last_accepting_cpos;
    4204         2115260 :                         yy_current_state = yy_last_accepting_state;
    4205         2115260 :                         yy_act = yy_accept[yy_current_state];
    4206                 :                         }
    4207                 : 
    4208         3181264 :                 YY_DO_BEFORE_ACTION;
    4209                 : 
    4210                 : 
    4211         3199637 : do_action:      /* This label is used only to access EOF actions. */
    4212                 : 
    4213                 : 
    4214         3199637 :                 switch ( yy_act )
    4215                 :         { /* beginning of action switch */
    4216                 :                         case 0: /* must back up */
    4217                 :                         /* undo the effects of YY_DO_BEFORE_ACTION */
    4218               0 :                         *yy_cp = yy_hold_char;
    4219               0 :                         yy_cp = yy_last_accepting_cpos;
    4220               0 :                         yy_current_state = yy_last_accepting_state;
    4221               0 :                         goto yy_find_action;
    4222                 : 
    4223                 : case 1:
    4224                 : YY_RULE_SETUP
    4225                 : #line 963 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4226                 : {
    4227                 :         return T_EXIT;
    4228                 : }
    4229                 :         YY_BREAK
    4230                 : case 2:
    4231                 : YY_RULE_SETUP
    4232                 : #line 967 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4233                 : {
    4234                 :         return T_EXIT;
    4235                 : }
    4236                 :         YY_BREAK
    4237                 : case 3:
    4238                 : YY_RULE_SETUP
    4239                 : #line 971 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4240                 : {
    4241                 :         return T_FUNCTION;
    4242                 : }
    4243                 :         YY_BREAK
    4244                 : case 4:
    4245                 : YY_RULE_SETUP
    4246                 : #line 975 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4247                 : {
    4248                 :         return T_CONST;
    4249                 : }
    4250                 :         YY_BREAK
    4251                 : case 5:
    4252                 : YY_RULE_SETUP
    4253                 : #line 979 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4254                 : {
    4255                 :         return T_RETURN;
    4256                 : }
    4257                 :         YY_BREAK
    4258                 : case 6:
    4259                 : YY_RULE_SETUP
    4260                 : #line 983 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4261                 : {
    4262                 :         return T_TRY;
    4263                 : }
    4264                 :         YY_BREAK
    4265                 : case 7:
    4266                 : YY_RULE_SETUP
    4267                 : #line 987 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4268                 : {
    4269                 :         return T_CATCH;
    4270                 : }
    4271                 :         YY_BREAK
    4272                 : case 8:
    4273                 : YY_RULE_SETUP
    4274                 : #line 991 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4275                 : {
    4276                 :         return T_THROW;
    4277                 : }
    4278                 :         YY_BREAK
    4279                 : case 9:
    4280                 : YY_RULE_SETUP
    4281                 : #line 995 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4282                 : {
    4283                 :         return T_IF;
    4284                 : }
    4285                 :         YY_BREAK
    4286                 : case 10:
    4287                 : YY_RULE_SETUP
    4288                 : #line 999 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4289                 : {
    4290                 :         return T_ELSEIF;
    4291                 : }
    4292                 :         YY_BREAK
    4293                 : case 11:
    4294                 : YY_RULE_SETUP
    4295                 : #line 1003 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4296                 : {
    4297                 :         return T_ENDIF;
    4298                 : }
    4299                 :         YY_BREAK
    4300                 : case 12:
    4301                 : YY_RULE_SETUP
    4302                 : #line 1007 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4303                 : {
    4304                 :         return T_ELSE;
    4305                 : }
    4306                 :         YY_BREAK
    4307                 : case 13:
    4308                 : YY_RULE_SETUP
    4309                 : #line 1011 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4310                 : {
    4311                 :         return T_WHILE;
    4312                 : }
    4313                 :         YY_BREAK
    4314                 : case 14:
    4315                 : YY_RULE_SETUP
    4316                 : #line 1015 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4317                 : {
    4318                 :         return T_ENDWHILE;
    4319                 : }
    4320                 :         YY_BREAK
    4321                 : case 15:
    4322                 : YY_RULE_SETUP
    4323                 : #line 1019 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4324                 : {
    4325                 :         return T_DO;
    4326                 : }
    4327                 :         YY_BREAK
    4328                 : case 16:
    4329                 : YY_RULE_SETUP
    4330                 : #line 1023 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4331                 : {
    4332                 :         return T_FOR;
    4333                 : }
    4334                 :         YY_BREAK
    4335                 : case 17:
    4336                 : YY_RULE_SETUP
    4337                 : #line 1027 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4338                 : {
    4339                 :         return T_ENDFOR;
    4340                 : }
    4341                 :         YY_BREAK
    4342                 : case 18:
    4343                 : YY_RULE_SETUP
    4344                 : #line 1031 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4345                 : {
    4346                 :         return T_FOREACH;
    4347                 : }
    4348                 :         YY_BREAK
    4349                 : case 19:
    4350                 : YY_RULE_SETUP
    4351                 : #line 1035 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4352                 : {
    4353                 :         return T_ENDFOREACH;
    4354                 : }
    4355                 :         YY_BREAK
    4356                 : case 20:
    4357                 : YY_RULE_SETUP
    4358                 : #line 1039 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4359                 : {
    4360                 :         return T_DECLARE;
    4361                 : }
    4362                 :         YY_BREAK
    4363                 : case 21:
    4364                 : YY_RULE_SETUP
    4365                 : #line 1043 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4366                 : {
    4367                 :         return T_ENDDECLARE;
    4368                 : }
    4369                 :         YY_BREAK
    4370                 : case 22:
    4371                 : YY_RULE_SETUP
    4372                 : #line 1047 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4373                 : {
    4374                 :         return T_INSTANCEOF;
    4375                 : }
    4376                 :         YY_BREAK
    4377                 : case 23:
    4378                 : YY_RULE_SETUP
    4379                 : #line 1051 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4380                 : {
    4381                 :         return T_AS;
    4382                 : }
    4383                 :         YY_BREAK
    4384                 : case 24:
    4385                 : YY_RULE_SETUP
    4386                 : #line 1055 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4387                 : {
    4388                 :         return T_SWITCH;
    4389                 : }
    4390                 :         YY_BREAK
    4391                 : case 25:
    4392                 : YY_RULE_SETUP
    4393                 : #line 1059 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4394                 : {
    4395                 :         return T_ENDSWITCH;
    4396                 : }
    4397                 :         YY_BREAK
    4398                 : case 26:
    4399                 : YY_RULE_SETUP
    4400                 : #line 1063 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4401                 : {
    4402                 :         return T_CASE;
    4403                 : }
    4404                 :         YY_BREAK
    4405                 : case 27:
    4406                 : YY_RULE_SETUP
    4407                 : #line 1067 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4408                 : {
    4409                 :         return T_DEFAULT;
    4410                 : }
    4411                 :         YY_BREAK
    4412                 : case 28:
    4413                 : YY_RULE_SETUP
    4414                 : #line 1071 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4415                 : {
    4416                 :         return T_BREAK;
    4417                 : }
    4418                 :         YY_BREAK
    4419                 : case 29:
    4420                 : YY_RULE_SETUP
    4421                 : #line 1075 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4422                 : {
    4423                 :         return T_CONTINUE;
    4424                 : }
    4425                 :         YY_BREAK
    4426                 : case 30:
    4427                 : YY_RULE_SETUP
    4428                 : #line 1079 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4429                 : {
    4430                 :         return T_ECHO;
    4431                 : }
    4432                 :         YY_BREAK
    4433                 : case 31:
    4434                 : YY_RULE_SETUP
    4435                 : #line 1083 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4436                 : {
    4437                 :         return T_PRINT;
    4438                 : }
    4439                 :         YY_BREAK
    4440                 : case 32:
    4441                 : YY_RULE_SETUP
    4442                 : #line 1087 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4443                 : {
    4444                 :         return T_CLASS;
    4445                 : }
    4446                 :         YY_BREAK
    4447                 : case 33:
    4448                 : YY_RULE_SETUP
    4449                 : #line 1091 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4450                 : {
    4451                 :         return T_INTERFACE;
    4452                 : }
    4453                 :         YY_BREAK
    4454                 : case 34:
    4455                 : YY_RULE_SETUP
    4456                 : #line 1095 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4457                 : {
    4458                 :         return T_EXTENDS;
    4459                 : }
    4460                 :         YY_BREAK
    4461                 : case 35:
    4462                 : YY_RULE_SETUP
    4463                 : #line 1099 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4464                 : {
    4465                 :         return T_IMPLEMENTS;
    4466                 : }
    4467                 :         YY_BREAK
    4468                 : case 36:
    4469                 : YY_RULE_SETUP
    4470                 : #line 1103 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4471                 : {
    4472                 :         yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
    4473                 :         return T_OBJECT_OPERATOR;
    4474                 : }
    4475                 :         YY_BREAK
    4476                 : case 37:
    4477                 : YY_RULE_SETUP
    4478                 : #line 1108 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4479                 : {
    4480                 :         return T_OBJECT_OPERATOR;
    4481                 : }
    4482                 :         YY_BREAK
    4483                 : case 38:
    4484                 : YY_RULE_SETUP
    4485                 : #line 1112 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4486                 : {
    4487                 :         yy_pop_state(TSRMLS_C);
    4488                 :         zend_copy_value(zendlval, yytext, yyleng);
    4489                 :         zendlval->type = IS_STRING;
    4490                 :         return T_STRING;
    4491                 : }
    4492                 :         YY_BREAK
    4493                 : case 39:
    4494                 : YY_RULE_SETUP
    4495                 : #line 1119 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4496                 : {
    4497                 :         yyless(0);
    4498                 :         yy_pop_state(TSRMLS_C);
    4499                 : }
    4500                 :         YY_BREAK
    4501                 : case 40:
    4502                 : YY_RULE_SETUP
    4503                 : #line 1124 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4504                 : {
    4505                 :         return T_PAAMAYIM_NEKUDOTAYIM;
    4506                 : }
    4507                 :         YY_BREAK
    4508                 : case 41:
    4509                 : YY_RULE_SETUP
    4510                 : #line 1128 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4511                 : {
    4512                 :         return T_NEW;
    4513                 : }
    4514                 :         YY_BREAK
    4515                 : case 42:
    4516                 : YY_RULE_SETUP
    4517                 : #line 1132 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4518                 : {
    4519                 :         return T_CLONE;
    4520                 : }
    4521                 :         YY_BREAK
    4522                 : case 43:
    4523                 : YY_RULE_SETUP
    4524                 : #line 1136 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4525                 : {
    4526                 :         return T_VAR;
    4527                 : }
    4528                 :         YY_BREAK
    4529                 : case 44:
    4530                 : YY_RULE_SETUP
    4531                 : #line 1140 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4532                 : {
    4533                 :         return T_INT_CAST;
    4534                 : }
    4535                 :         YY_BREAK
    4536                 : case 45:
    4537                 : YY_RULE_SETUP
    4538                 : #line 1144 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4539                 : {
    4540                 :         return T_DOUBLE_CAST;
    4541                 : }
    4542                 :         YY_BREAK
    4543                 : case 46:
    4544                 : YY_RULE_SETUP
    4545                 : #line 1148 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4546                 : {
    4547                 :         return T_STRING_CAST;
    4548                 : }
    4549                 :         YY_BREAK
    4550                 : case 47:
    4551                 : YY_RULE_SETUP
    4552                 : #line 1152 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4553                 : {
    4554                 :         return T_STRING_CAST;
    4555                 : }
    4556                 :         YY_BREAK
    4557                 : case 48:
    4558                 : YY_RULE_SETUP
    4559                 : #line 1156 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4560                 : {
    4561                 :         return T_ARRAY_CAST;
    4562                 : }
    4563                 :         YY_BREAK
    4564                 : case 49:
    4565                 : YY_RULE_SETUP
    4566                 : #line 1160 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4567                 : {
    4568                 :         return T_OBJECT_CAST;
    4569                 : }
    4570                 :         YY_BREAK
    4571                 : case 50:
    4572                 : YY_RULE_SETUP
    4573                 : #line 1164 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4574                 : {
    4575                 :         return T_BOOL_CAST;
    4576                 : }
    4577                 :         YY_BREAK
    4578                 : case 51:
    4579                 : YY_RULE_SETUP
    4580                 : #line 1168 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4581                 : {
    4582                 :         return T_UNSET_CAST;
    4583                 : }
    4584                 :         YY_BREAK
    4585                 : case 52:
    4586                 : YY_RULE_SETUP
    4587                 : #line 1172 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4588                 : {
    4589                 :         return T_EVAL;
    4590                 : }
    4591                 :         YY_BREAK
    4592                 : case 53:
    4593                 : YY_RULE_SETUP
    4594                 : #line 1176 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4595                 : {
    4596                 :         return T_INCLUDE;
    4597                 : }
    4598                 :         YY_BREAK
    4599                 : case 54:
    4600                 : YY_RULE_SETUP
    4601                 : #line 1180 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4602                 : {
    4603                 :         return T_INCLUDE_ONCE;
    4604                 : }
    4605                 :         YY_BREAK
    4606                 : case 55:
    4607                 : YY_RULE_SETUP
    4608                 : #line 1184 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4609                 : {
    4610                 :         return T_REQUIRE;
    4611                 : }
    4612                 :         YY_BREAK
    4613                 : case 56:
    4614                 : YY_RULE_SETUP
    4615                 : #line 1188 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4616                 : {
    4617                 :         return T_REQUIRE_ONCE;
    4618                 : }
    4619                 :         YY_BREAK
    4620                 : case 57:
    4621                 : YY_RULE_SETUP
    4622                 : #line 1192 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4623                 : {
    4624                 :         return T_USE;
    4625                 : }
    4626                 :         YY_BREAK
    4627                 : case 58:
    4628                 : YY_RULE_SETUP
    4629                 : #line 1196 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4630                 : {
    4631                 :         return T_GLOBAL;
    4632                 : }
    4633                 :         YY_BREAK
    4634                 : case 59:
    4635                 : YY_RULE_SETUP
    4636                 : #line 1200 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4637                 : {
    4638                 :         return T_ISSET;
    4639                 : }
    4640                 :         YY_BREAK
    4641                 : case 60:
    4642                 : YY_RULE_SETUP
    4643                 : #line 1204 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4644                 : {
    4645                 :         return T_EMPTY;
    4646                 : }
    4647                 :         YY_BREAK
    4648                 : case 61:
    4649                 : YY_RULE_SETUP
    4650                 : #line 1208 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4651                 : {
    4652                 :         return T_HALT_COMPILER;
    4653                 : }
    4654                 :         YY_BREAK
    4655                 : case 62:
    4656                 : YY_RULE_SETUP
    4657                 : #line 1212 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4658                 : {
    4659                 :         return T_STATIC;
    4660                 : }
    4661                 :         YY_BREAK
    4662                 : case 63:
    4663                 : YY_RULE_SETUP
    4664                 : #line 1216 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4665                 : {
    4666                 :         return T_ABSTRACT;
    4667                 : }
    4668                 :         YY_BREAK
    4669                 : case 64:
    4670                 : YY_RULE_SETUP
    4671                 : #line 1220 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4672                 : {
    4673                 :         return T_FINAL;
    4674                 : }
    4675                 :         YY_BREAK
    4676                 : case 65:
    4677                 : YY_RULE_SETUP
    4678                 : #line 1224 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4679                 : {
    4680                 :         return T_PRIVATE;
    4681                 : }
    4682                 :         YY_BREAK
    4683                 : case 66:
    4684                 : YY_RULE_SETUP
    4685                 : #line 1228 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4686                 : {
    4687                 :         return T_PROTECTED;
    4688                 : }
    4689                 :         YY_BREAK
    4690                 : case 67:
    4691                 : YY_RULE_SETUP
    4692                 : #line 1232 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4693                 : {
    4694                 :         return T_PUBLIC;
    4695                 : }
    4696                 :         YY_BREAK
    4697                 : case 68:
    4698                 : YY_RULE_SETUP
    4699                 : #line 1236 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4700                 : {
    4701                 :         return T_UNSET;
    4702                 : }
    4703                 :         YY_BREAK
    4704                 : case 69:
    4705                 : YY_RULE_SETUP
    4706                 : #line 1240 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4707                 : {
    4708                 :         return T_DOUBLE_ARROW;
    4709                 : }
    4710                 :         YY_BREAK
    4711                 : case 70:
    4712                 : YY_RULE_SETUP
    4713                 : #line 1244 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4714                 : {
    4715                 :         return T_LIST;
    4716                 : }
    4717                 :         YY_BREAK
    4718                 : case 71:
    4719                 : YY_RULE_SETUP
    4720                 : #line 1248 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4721                 : {
    4722                 :         return T_ARRAY;
    4723                 : }
    4724                 :         YY_BREAK
    4725                 : case 72:
    4726                 : YY_RULE_SETUP
    4727                 : #line 1252 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4728                 : {
    4729                 :         return T_INC;
    4730                 : }
    4731                 :         YY_BREAK
    4732                 : case 73:
    4733                 : YY_RULE_SETUP
    4734                 : #line 1256 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4735                 : {
    4736                 :         return T_DEC;
    4737                 : }
    4738                 :         YY_BREAK
    4739                 : case 74:
    4740                 : YY_RULE_SETUP
    4741                 : #line 1260 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4742                 : {
    4743                 :         return T_IS_IDENTICAL;
    4744                 : }
    4745                 :         YY_BREAK
    4746                 : case 75:
    4747                 : YY_RULE_SETUP
    4748                 : #line 1264 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4749                 : {
    4750                 :         return T_IS_NOT_IDENTICAL;
    4751                 : }
    4752                 :         YY_BREAK
    4753                 : case 76:
    4754                 : YY_RULE_SETUP
    4755                 : #line 1268 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4756                 : {
    4757                 :         return T_IS_EQUAL;
    4758                 : }
    4759                 :         YY_BREAK
    4760                 : case 77:
    4761                 : YY_RULE_SETUP
    4762                 : #line 1272 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4763                 : {
    4764                 :         return T_IS_NOT_EQUAL;
    4765                 : }
    4766                 :         YY_BREAK
    4767                 : case 78:
    4768                 : YY_RULE_SETUP
    4769                 : #line 1276 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4770                 : {
    4771                 :         return T_IS_SMALLER_OR_EQUAL;
    4772                 : }
    4773                 :         YY_BREAK
    4774                 : case 79:
    4775                 : YY_RULE_SETUP
    4776                 : #line 1280 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4777                 : {
    4778                 :         return T_IS_GREATER_OR_EQUAL;
    4779                 : }
    4780                 :         YY_BREAK
    4781                 : case 80:
    4782                 : YY_RULE_SETUP
    4783                 : #line 1284 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4784                 : {
    4785                 :         return T_PLUS_EQUAL;
    4786                 : }
    4787                 :         YY_BREAK
    4788                 : case 81:
    4789                 : YY_RULE_SETUP
    4790                 : #line 1288 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4791                 : {
    4792                 :         return T_MINUS_EQUAL;
    4793                 : }
    4794                 :         YY_BREAK
    4795                 : case 82:
    4796                 : YY_RULE_SETUP
    4797                 : #line 1292 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4798                 : {
    4799                 :         return T_MUL_EQUAL;
    4800                 : }
    4801                 :         YY_BREAK
    4802                 : case 83:
    4803                 : YY_RULE_SETUP
    4804                 : #line 1296 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4805                 : {
    4806                 :         return T_DIV_EQUAL;
    4807                 : }
    4808                 :         YY_BREAK
    4809                 : case 84:
    4810                 : YY_RULE_SETUP
    4811                 : #line 1300 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4812                 : {
    4813                 :         return T_CONCAT_EQUAL;
    4814                 : }
    4815                 :         YY_BREAK
    4816                 : case 85:
    4817                 : YY_RULE_SETUP
    4818                 : #line 1304 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4819                 : {
    4820                 :         return T_MOD_EQUAL;
    4821                 : }
    4822                 :         YY_BREAK
    4823                 : case 86:
    4824                 : YY_RULE_SETUP
    4825                 : #line 1308 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4826                 : {
    4827                 :         return T_SL_EQUAL;
    4828                 : }
    4829                 :         YY_BREAK
    4830                 : case 87:
    4831                 : YY_RULE_SETUP
    4832                 : #line 1312 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4833                 : {
    4834                 :         return T_SR_EQUAL;
    4835                 : }
    4836                 :         YY_BREAK
    4837                 : case 88:
    4838                 : YY_RULE_SETUP
    4839                 : #line 1316 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4840                 : {
    4841                 :         return T_AND_EQUAL;
    4842                 : }
    4843                 :         YY_BREAK
    4844                 : case 89:
    4845                 : YY_RULE_SETUP
    4846                 : #line 1320 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4847                 : {
    4848                 :         return T_OR_EQUAL;
    4849                 : }
    4850                 :         YY_BREAK
    4851                 : case 90:
    4852                 : YY_RULE_SETUP
    4853                 : #line 1324 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4854                 : {
    4855                 :         return T_XOR_EQUAL;
    4856                 : }
    4857                 :         YY_BREAK
    4858                 : case 91:
    4859                 : YY_RULE_SETUP
    4860                 : #line 1328 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4861                 : {
    4862                 :         return T_BOOLEAN_OR;
    4863                 : }
    4864                 :         YY_BREAK
    4865                 : case 92:
    4866                 : YY_RULE_SETUP
    4867                 : #line 1332 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4868                 : {
    4869                 :         return T_BOOLEAN_AND;
    4870                 : }
    4871                 :         YY_BREAK
    4872                 : case 93:
    4873                 : YY_RULE_SETUP
    4874                 : #line 1336 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4875                 : {
    4876                 :         return T_LOGICAL_OR;
    4877                 : }
    4878                 :         YY_BREAK
    4879                 : case 94:
    4880                 : YY_RULE_SETUP
    4881                 : #line 1340 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4882                 : {
    4883                 :         return T_LOGICAL_AND;
    4884                 : }
    4885                 :         YY_BREAK
    4886                 : case 95:
    4887                 : YY_RULE_SETUP
    4888                 : #line 1344 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4889                 : {
    4890                 :         return T_LOGICAL_XOR;
    4891                 : }
    4892                 :         YY_BREAK
    4893                 : case 96:
    4894                 : YY_RULE_SETUP
    4895                 : #line 1348 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4896                 : {
    4897                 :         return T_SL;
    4898                 : }
    4899                 :         YY_BREAK
    4900                 : case 97:
    4901                 : YY_RULE_SETUP
    4902                 : #line 1352 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4903                 : {
    4904                 :         return T_SR;
    4905                 : }
    4906                 :         YY_BREAK
    4907                 : case 98:
    4908                 : YY_RULE_SETUP
    4909                 : #line 1356 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4910                 : {
    4911                 :         return yytext[0];
    4912                 : }
    4913                 :         YY_BREAK
    4914                 : case 99:
    4915                 : YY_RULE_SETUP
    4916                 : #line 1361 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4917                 : {
    4918                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    4919                 :         return '{';
    4920                 : }
    4921                 :         YY_BREAK
    4922                 : case 100:
    4923                 : YY_RULE_SETUP
    4924                 : #line 1367 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4925                 : {
    4926                 :         yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
    4927                 :         return T_DOLLAR_OPEN_CURLY_BRACES;
    4928                 : }
    4929                 :         YY_BREAK
    4930                 : case 101:
    4931                 : YY_RULE_SETUP
    4932                 : #line 1373 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4933                 : {
    4934                 :         RESET_DOC_COMMENT();
    4935                 :         /* This is a temporary fix which is dependant on flex and it's implementation */
    4936                 :         if (yy_start_stack_ptr) {
    4937                 :                 yy_pop_state(TSRMLS_C);
    4938                 :         }
    4939                 :         return '}';
    4940                 : }
    4941                 :         YY_BREAK
    4942                 : case 102:
    4943                 : YY_RULE_SETUP
    4944                 : #line 1383 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4945                 : {
    4946                 :         zend_copy_value(zendlval, yytext, yyleng);
    4947                 :         zendlval->type = IS_STRING;
    4948                 :         yy_pop_state(TSRMLS_C);
    4949                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    4950                 :         return T_STRING_VARNAME;
    4951                 : }
    4952                 :         YY_BREAK
    4953                 : case 103:
    4954                 : YY_RULE_SETUP
    4955                 : #line 1392 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4956                 : {
    4957                 :         yyless(0);
    4958                 :         yy_pop_state(TSRMLS_C);
    4959                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    4960                 : }
    4961                 :         YY_BREAK
    4962                 : case 104:
    4963                 : YY_RULE_SETUP
    4964                 : #line 1399 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4965                 : {
    4966                 :         if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
    4967                 :                 zendlval->value.lval = strtol(yytext, NULL, 0);
    4968                 :         } else {
    4969                 :                 errno = 0;
    4970                 :                 zendlval->value.lval = strtol(yytext, NULL, 0);
    4971                 :                 if (errno == ERANGE) { /* Overflow */
    4972                 :                         if (yytext[0] == '0') { /* octal overflow */
    4973                 :                                 zendlval->value.dval = zend_oct_strtod(yytext, NULL);
    4974                 :                         } else {
    4975                 :                                 zendlval->value.dval = zend_strtod(yytext, NULL);
    4976                 :                         }
    4977                 :                         zendlval->type = IS_DOUBLE;
    4978                 :                         return T_DNUMBER;
    4979                 :                 }
    4980                 :         }
    4981                 : 
    4982                 :         zendlval->type = IS_LONG;
    4983                 :         return T_LNUMBER;
    4984                 : }
    4985                 :         YY_BREAK
    4986                 : case 105:
    4987                 : YY_RULE_SETUP
    4988                 : #line 1420 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    4989                 : {
    4990                 :         char *hex = yytext + 2; /* Skip "0x" */
    4991                 :         int len = yyleng - 2;
    4992                 : 
    4993                 :         /* Skip any leading 0s */
    4994                 :         while (*hex == '0') {
    4995                 :                 hex++;
    4996                 :                 len--;
    4997                 :         }
    4998                 : 
    4999                 :         if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
    5000                 :                 zendlval->value.lval = strtol(hex, NULL, 16);
    5001                 :                 zendlval->type = IS_LONG;
    5002                 :                 return T_LNUMBER;
    5003                 :         } else {
    5004                 :                 zendlval->value.dval = zend_hex_strtod(hex, NULL);
    5005                 :                 zendlval->type = IS_DOUBLE;
    5006                 :                 return T_DNUMBER;
    5007                 :         }
    5008                 : }
    5009                 :         YY_BREAK
    5010                 : case 106:
    5011                 : YY_RULE_SETUP
    5012                 : #line 1441 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5013                 : { /* Offset could be treated as a long */
    5014                 :         if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
    5015                 :                 zendlval->value.lval = strtol(yytext, NULL, 10);
    5016                 :                 zendlval->type = IS_LONG;
    5017                 :         } else {
    5018                 :                 zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
    5019                 :                 zendlval->value.str.len = yyleng;
    5020                 :                 zendlval->type = IS_STRING;
    5021                 :         }
    5022                 :         return T_NUM_STRING;
    5023                 : }
    5024                 :         YY_BREAK
    5025                 : case 107:
    5026                 : YY_RULE_SETUP
    5027                 : #line 1453 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5028                 : { /* Offset must be treated as a string */
    5029                 :         zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
    5030                 :         zendlval->value.str.len = yyleng;
    5031                 :         zendlval->type = IS_STRING;
    5032                 :         return T_NUM_STRING;
    5033                 : }
    5034                 :         YY_BREAK
    5035                 : case 108:
    5036                 : YY_RULE_SETUP
    5037                 : #line 1460 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5038                 : {
    5039                 :         zendlval->value.dval = zend_strtod(yytext, NULL);
    5040                 :         zendlval->type = IS_DOUBLE;
    5041                 :         return T_DNUMBER;
    5042                 : }
    5043                 :         YY_BREAK
    5044                 : case 109:
    5045                 : YY_RULE_SETUP
    5046                 : #line 1466 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5047                 : {
    5048                 :         char *class_name = NULL;
    5049                 : 
    5050                 :         if (CG(active_class_entry)) {
    5051                 :                 class_name = CG(active_class_entry)->name;
    5052                 :         }
    5053                 : 
    5054                 :         if (!class_name) {
    5055                 :                 class_name = "";
    5056                 :         }
    5057                 :         zendlval->value.str.len = strlen(class_name);
    5058                 :         zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
    5059                 :         zendlval->type = IS_STRING;
    5060                 :         return T_CLASS_C;
    5061                 : }
    5062                 :         YY_BREAK
    5063                 : case 110:
    5064                 : YY_RULE_SETUP
    5065                 : #line 1482 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5066                 : {
    5067                 :         char *func_name = NULL;
    5068                 : 
    5069                 :         if (CG(active_op_array)) {
    5070                 :                 func_name = CG(active_op_array)->function_name;
    5071                 :         }
    5072                 : 
    5073                 :         if (!func_name) {
    5074                 :                 func_name = "";
    5075                 :         }
    5076                 :         zendlval->value.str.len = strlen(func_name);
    5077                 :         zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
    5078                 :         zendlval->type = IS_STRING;
    5079                 :         return T_FUNC_C;
    5080                 : }
    5081                 :         YY_BREAK
    5082                 : case 111:
    5083                 : YY_RULE_SETUP
    5084                 : #line 1498 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5085                 : {
    5086                 :         char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
    5087                 :         char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
    5088                 :         size_t len = 0;
    5089                 : 
    5090                 :         if (class_name) {
    5091                 :                 len += strlen(class_name) + 2;
    5092                 :         }
    5093                 :         if (func_name) {
    5094                 :                 len += strlen(func_name);
    5095                 :         }
    5096                 : 
    5097                 :         zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s", 
    5098                 :                 class_name ? class_name : "",
    5099                 :                 class_name && func_name ? "::" : "",
    5100                 :                 func_name ? func_name : ""
    5101                 :                 );
    5102                 :         zendlval->type = IS_STRING;
    5103                 :         return T_METHOD_C;
    5104                 : }
    5105                 :         YY_BREAK
    5106                 : case 112:
    5107                 : YY_RULE_SETUP
    5108                 : #line 1519 "/var/php_gcov/PHP_5_2/Zend/zend_language_scanner.l"
    5109                 : {
    5110