#-h- dc.all 115907 ascii 05Jan84 08:28:12 #-h- dc.doc 6971 ascii 05Jan84 08:24:45 .pl 64 .m1 2 .m2 3 .m3 3 .m4 3 .po 10 .rm 62 .bp 1 .in 0 .he ^dc(1)^%^dc(1)^ .fo ^^- # -^^ .in 5 .sp .ne 2 .fi .ti -5 NAME .br dc - desk calculator .sp .ne 2 .fi .ti -5 SYNOPSIS .br .nf dc [files ...] .sp .ne 2 .fi .ti -5 DESCRIPTION .br Dc evaluates arithmetic expressions from the source files, an arbitrary number of expressions separated by semicolons or newlines. If no input files are given, or the filename '-' is specified, dc reads from the standard input. .ne 3 .sp Ordinarily dc operates on decimal arithmetic expressions, but the user may specify an input base and output base other than decimal (but real numbers are converted to integers in bases other than 10, e.g., '1.5' will print as '1' in base 16). All numbers must begin with an integer, no matter what the base. .ne 3 .sp An expression is a normal arithmetic expression using numbers, variables, parentheses, operators, and functions. Below is a list of the legal dc functions, followed by the list of legal operators listed in order of precedence: .ce 99 .sp --------------------------------------------- | min(a1, a2, .., an) - minimum value of | | a1, a2, .., an. | | max(a1, a2, .., an) - maximum value of | | a1, a2, .., an. | | log( a ) - logarithm of 'a' | | | | ln( a ) - natural logaritm of 'a' | | | | sin( a ) - sine of 'a' | | | | cos( a ) - cosine of 'a' | | | | tan( a ) - tangent of 'a' | | | | exp( a ) - expontential of a | | | | asin( a ) - arcsine of 'a' | | | | acos( a ) - arccosine of 'a' | | | | atan( a ) - arctangent of 'a' | | | | sinh( a ) - hyperbolic sine of 'a' | | | | cosh( a ) - hyperbolic cosine of 'a' | | | | tanh( a ) - hyperbolic tangent of 'a' | --------------------------------------------- .ce 0 .ne 30 .ce 99 .sp --------------------------------------- | + - unary plus and negation | | | | ^ exponentiation | | | | * / % multiplication, division, | | remainder | | | | + - add, subtract | | | | == != Relations (have value of | | > >= '0' for 'false' and '1' | | < <= for 'true') | | | | ! Unary boolean 'Not' | | | | | & Boolean or, and | | | | : Rounding (1.5:1 is 2, | | 123:10 is 120, -1.43:0.1 | | is -1.4) | | | | ? conditional evaluation | | ("aint .sp .fi .in -4 .sp .ne 2 .fi .ti -5 FILES .br None. .sp .ne 2 .fi .ti -5 SEE ALSO .br .nf macro(1) the UNIX M4 macro package The UNIX tools dc and bc .sp .ne 2 .fi .ti -5 DIAGNOSTICS .br .ul assignment error - means the thing of the left of an '=' wasn't a name. .ne 3 .sp .ul Tried to associate non-associating operator - means an attempt was made to associate a relational operator. .ne 3 .sp .ul expression stack overflow - arithmetic expressions have been nested too deeply. .ne 3 .sp .ul number error - an input number has a number/character bigger than the current radix. .sp .ne 2 .fi .ti -5 AUTHOR(S) .br Philip H. Scherrer (Stanford U.) .br Van Jacobson added real number arithmetic, the 'round' operator, changed & | and ! to be boolean rather than logical, rewrote the assignment handling and changed expression processor to allow multiple expressions per line. Theresa Breckon converted the source to yacc input form and added the conditional operator and the functions. .sp .ne 2 .fi .ti -5 BUGS/DEFICIENCIES .br Dc won't recognize a number of the form '.dd' (e.g., '.09') so you must either put a leading zero (e.g., 0.09) or use scientific notation (e.g., 9e-2). .ne 3 .sp When the output radix is not 10, numbers larger than the host machine's default integer size will not be output correctly. #-t- dc.doc 6971 ascii 05Jan84 08:24:45 #-h- dc.inc 3465 ascii 05Jan84 08:24:46 #-h- cexp 176 ascii 05Jan84 08:24:24 integer ibptr, obptr, ibase, obase real rarray character dcline integer rptr, dcind common /cexp/ ibptr, obptr, ibase, obase, rptr, rarray(200), dcind, dcline(MAXLINE) #-t- cexp 176 ascii 05Jan84 08:24:24 #-h- memsym 1879 ascii 05Jan84 08:24:24 ## memsym - symbols definitions for memory allocation #nolist # revision history # # 01e 08Nov83 mam .Removed the data types(word,pointer). # 01d 12jul83 jc .Ratfixed # 01c 09aug82 th .Changed INSUFFICIENTMEMORY to 0 on the vax # (this is what an uninitialized variable is likely to have # in it) # .Added definitions for PDP_10 # 01b 05Nov81 cal .Added revision history and turned off listing # portability note: # dmlb.t assumes that the minimum unit is a character, # and that all the 'MEMWORD', ...., definitions are in terms of # characters ifdef (VAX) # these are defined as the number of 'words' in the given item define(MEMWORD,1) define(MEMPOINTER,4) define(MEMINTEGER,4) define(MEMCHARACTER,1) define(MEMLOGICAL,4) define(MEMREAL,4) define(MEMDOUBLEPRECISION,8) define(MEMCOMPLEX,8) # returned if there is not enough memory define(INSUFFICIENTMEMORY,0) enddef ifdef (MODCOMP) # these are defined as the number of 'words' in the given item define(MEMWORD,1) define(MEMPOINTER,1) define(MEMINTEGER,1) define(MEMCHARACTER,1) define(MEMLOGICAL,1) define(MEMREAL,2) define(MEMDOUBLEPRECISION,4) define(MEMCOMPLEX,4) # returned if there is not enough memory define(INSUFFICIENTMEMORY,-1) enddef ifdef (PDP_10) # these are defined as the number of 'words' in the given item define(MEMWORD,1) define(MEMPOINTER,1) define(MEMINTEGER,1) # MEMCHARACTER could probably be -7 except for rat4sym, which # tries to store things larger than seven bits in a character. define(MEMCHARACTER,1) define(MEMLOGICAL,1) define(MEMREAL,1) define(MEMDOUBLEPRECISION,2) define(MEMCOMPLEX,2) # returned if there is not enough memory define(INSUFFICIENTMEMORY,0) enddef #list #-t- memsym 1879 ascii 05Jan84 08:24:24 #-h- yypcom 1020 ascii 05Jan84 08:24:25 ### yypcom - common for yacc parse driver routines # integer yyval #token value from yysem integer yylexval #token value from yylex integer yytok #token number integer yymaxstack #parse stack sizes integer yyerrok #error recovery flag integer yyerct #recovery error count integer yysta #current state integer yysstk #state stack integer yyvstk #value stack integer yytstk #token stack integer yystkp #stack pointer common /yysscm/ yysstk(1) common /yytscm/ yytstk(1) common /yyvscm/ yyvstk(1) common /yymicm/ yyval, yytok, yyerrok, yysta, yystkp, yymaxstack, yylexval, yyerct #-t- yypcom 1020 ascii 05Jan84 08:24:25 #-t- dc.inc 3465 ascii 05Jan84 08:24:46 #-h- dc 24758 ascii 05Jan84 08:24:48 #### dc - desk calculator # # synopsis # # dc [file] ... # # revision history # ---------------- # # 04e 02Dec83 sd .Changed error messages to start with "dc:" rather than # "-". Modified to give error message when setting ibase # or obase to value less than 2, and then ibase or obase # is reset to 10. # .Token ';' was defined twice, deleted one. # .Incorporated ibase and obase as yacc definitions. # .Deleted undefine(abs) and escaped ratfor lines # that used abs. # .Added fourth parameter "name" to addname to return # word from dcline. # 04d 16Sep83 rm .Added exp() function. # 04c 31Aug83 vp .Ratfixed. # Modified to trap attempted division by zero - a warning # message is written to ERROUT and a missing value ('-1.0') # is assigned as the division result. # 04b 23may83 ant .Renamed tty to isatty. # 04a 20Aug82 tab .Changed to use yacc. Made exponentiation and # assignment be right associative and relational # operators be non-associative. Added functions # ###### D C G R A M M A R S P E C I F I C A T I O N ###### %token '(' 3 ')' 4 %right '=' 23 %right ',' 38 %right '?' 40 %token MIN 24 MAX 25 %token LOG 26 LN 27 %token SIN 29 COS 30 TAN 31 %token ASIN 32 ACOS 33 ATAN 34 %token SINH 35 COSH 36 TANH 37 %token EXP 41 %token NAME 1 NUM 2 %token IBAS 42 OBAS 43 %left ';' 39 %left ':' 22 %left '|' 5 '&' 6 %right '!' 7 %nonassoc EQ 8 NEQ 9 GTE 11 LTE 13 '<' 12 '>' 10 %left '+' 14 '-' 15 %left '*' 16 '/' 17 '%' 19 %right '^' 20 %right POS 21 NEG 18 %{ define(MISSING_VALUE,1e30) ifdef(MODCOMP) define(asin,arsin) define(acos,arcos) enddef real l, r, result, float real nameval integer ir, ifix, mod, i integer numtoc character cresult(MAXLINE), name( MAXLINE ) real alog, alog10, sin, cos, tan, exp real asin, acos, atan, sinh, cosh, tanh include "cexp" %} %% dc : exp %{ call putresult( $1 ) %} | dc ';' exp %{ call putc( '@t' ) call putresult( $3 ) %} | ; exp : NUM | NAME %{ rptr = rptr + 1 rarray(rptr) = nameval($1) $$ = rptr %} | IBAS %{ rptr = rptr + 1 rarray(rptr) = ibase $$ = rptr %} | OBAS %{ rptr = rptr + 1 rarray(rptr) = obase $$ = rptr %} | minhead ')' | maxhead ')' | LOG '(' exp ')' %{ i = $3 rarray(i) = alog10( rarray(i) ) $$ = i %} | LN '(' exp ')' %{ i = $3 rarray(i) = alog( rarray(i) ) $$ = i %} | SIN '(' exp ')' %{ i = $3 rarray(i) = sin( rarray(i) ) $$ = i %} | COS '(' exp ')' %{ i = $3 rarray(i) = cos( rarray(i) ) $$ = i %} | TAN '(' exp ')' %{ i = $3 rarray(i) = tan( rarray(i) ) $$ = i %} | ASIN '(' exp ')' %{ i = $3 rarray(i) = asin( rarray(i) ) $$ = i %} | ACOS '(' exp ')' %{ i = $3 rarray(i) = acos( rarray(i) ) $$ = i %} | ATAN '(' exp ')' %{ i = $3 rarray(i) = atan( rarray(i) ) $$ = i %} | SINH '(' exp ')' %{ i = $3 rarray(i) = sinh( rarray(i) ) $$ = i %} | COSH '(' exp ')' %{ i = $3 rarray(i) = cosh( rarray(i) ) $$ = i %} | TANH '(' exp ')' %{ i = $3 rarray(i) = tanh( rarray(i) ) $$ = i %} | EXP '(' exp ')' %{ i = $3 rarray(i) = exp( rarray(i) ) $$ = i %} | '(' exp ')' %{ $$ = $2 %} | exp '|' exp %{ i = $1 rarray(i) = ior ( ifix(rarray(i)), ifix (rarray($3))) %} | yyerror %{ rptr = rptr + 1 rarray(rptr) = 0 $$ = rptr %} | exp '&' exp %{ i = $1 rarray(i) = iand ( ifix (rarray(i)), ifix (rarray($3))) %} | '!' exp %{ i = $2 rarray(i) = not( ifix(rarray(i)) ) $$ = i %} | exp EQ exp %{ i = $1 if ( rarray(i) == rarray($3) ) rarray(i) = 1 else rarray(i) = 0 %} | exp NEQ exp %{ i = $1 if ( rarray(i) != rarray($3) ) rarray(i) = 1 else rarray(i) = 0 %} | exp '>' exp %{ i = $1 if ( rarray(i) > rarray($3) ) rarray(i) = 1 else rarray(i) = 0 %} | exp GTE exp %{ i = $1 if ( rarray(i) >= rarray($3) ) rarray(i) = 1 else rarray(i) = 0 %} | exp '?' exp ',' exp %{ i = $1 if ( rarray(i) == 1 ) rarray(i) = rarray($3) else rarray(i) = rarray($5) %} | exp '<' exp %{ i = $1 if ( rarray(i) < rarray($3) ) rarray(i) = 1 else rarray(i) = 0 %} | exp LTE exp %{ i = $1 if ( rarray(i) <= rarray($3) ) rarray(i) = 1 else rarray(i) = 0 %} | exp '+' exp %{ i = $1 rarray(i) = rarray(i) + rarray($3) %} | exp '-' exp %{ i = $1 rarray(i) = rarray(i) - rarray($3) %} | NEG exp %{ i = $2 rarray(i) = - rarray(i) $$ = i %} | exp '*' exp %{ i = $1 rarray(i) = rarray(i) * rarray($3) %} | exp '/' exp %{ i = $1 if ( rarray($3) == 0 ) { call remark( "dc: attempt to divide by zero" ) rarray(i) = MISSING_VALUE } else rarray(i) = rarray(i) / rarray($3) %} | exp '%' exp %{ i = $1 rarray(i) = amod(rarray(i), rarray($3)) %} | exp ':' exp %{ i = $1 r = rarray($3) if ( r != 0.0 ) { % r = abs ( r ) if ( rarray(i) < 0.0 ) rarray(i) = ( rarray(i) / r ) - 0.500001 else rarray(i) = ( rarray(i) / r ) + 0.500001 rarray(i) = aint ( rarray(i) ) * r } %} | exp '^' exp %{ i = $1 r = rarray($3) if (( rarray(i) == 0.0 ) & ( r == 0.0 )) rarray(i) = 1.0 else { ir = ifix ( r ) if ( r == float ( ir )) # integer exponent { % result = abs ( rarray(i) ) ** ir if (( rarray(i) < 0.0 ) & ( mod ( ir, 2 ) == 1 )) rarray(i) = - result else rarray(i) = result } else rarray(i) = rarray(i) ** r } %} | POS exp %{ $$ = $2 %} | NAME '=' exp %{ i = $3 call numtoc ( rarray(i), cresult, MAXLINE, 10 ) call nmcopy ( $1, name ) call instal ( name, cresult ) $$ = i %} | IBAS '=' exp %{ i = $3 ibase = rarray(i) # get new ibase value $$ = i if ( ibase < 2 ) # check validity { call remark ( "dc: illegal input base, reset to 10.") ibase = 10 rarray(i) = 10.0 } %} | OBAS '=' exp %{ i = $3 obase = rarray(i) # get new obase value $$ = i if ( obase < 2 ) # check validity { call remark ( "dc: illegal output base, reset to 10.") obase = 10 rarray(i) = 10.0 } %} ; minhead : MIN '(' exp %{ $$ = $3 %} | minhead ',' exp %{ i = $3 if ( rarray($1) > rarray(i) ) $$ = i %} ; maxhead : MAX '(' exp %{ $$ = $3 %} | maxhead ',' exp %{ i = $3 if ( rarray($1) < rarray(i) ) $$ = i %} ; %% ###### D C R O U T I N E S ####### DRIVER(dcyacc) ### definitions for routines # include "memsym" define(OPND,2) define(OPERR,-5) define(NAME,1) define(OPLP,3) define(OPRP,4) define(OPOR,5) define(OPAND,6) define(OPNOT,7) define(OPEQ,8) define(OPNE,9) define(OPGT,10) define(OPGE,11) define(OPLT,12) define(OPLE,13) define(OPADD,14) define(OPSUB,15) define(OPMUL,16) define(OPDIV,17) define(OPNEG,18) define(OPMOD,19) define(OPEXP,20) define(OPPLUS,21) define(OPROUND,22) define(OPASSIGN,23) define(MIN,24) define(MAX,25) define(LOG,26) define(LN,27) define(SIN,29) define(COS,30) define(TAN,31) define(ASIN,32) define(ACOS,33) define(ATAN,34) define(SINH,35) define(COSH,36) define(TANH,37) define(COMA,38) define(SEP,39) define(IFOP,40) define(EXP,41) define(IBAS,42) define(OBAS,43) call dc DRETURN(OK) stop end ### addkeywords - add all keywords to symbol table # # call addkeywords # # The definitions for keywords will be '#' followed by the lexical # value of the keyword. # subroutine addkeywords character dmin(3) #definition for min character dmax(3) #definition for max character dlog(3) #definition for log character dln(3) #definition for ln character dsin(3) #definition for sin character dcos(3) #definition for cos character dtan(3) #definition for tan character dasin(3) #definition for asin character dacos(3) #definition for acos character datan(3) #definition for atan character dsinh(3) #definition for sinh character dcosh(3) #definition for cosh character dtanh(3) #definition for tanh character dexp(3) #definition for exp data dmin /'#',MIN,EOS/ data dmax /'#',MAX,EOS/ data dlog /'#',LOG,EOS/ data dln /'#',LN,EOS/ data dsin /'#',SIN,EOS/ data dcos /'#',COS,EOS/ data dtan /'#',TAN,EOS/ data dasin /'#',ASIN,EOS/ data dacos /'#',ACOS,EOS/ data datan /'#',ATAN,EOS/ data dsinh /'#',SINH,EOS/ data dcosh /'#',COSH,EOS/ data dtanh /'#',TANH,EOS/ data dexp /'#',EXP,EOS/ string smin "min" #minimum value function string smax "max" #maximum value function string slog "log" #logarithm function string sln "ln" #natural log string ssin "sin" #sin function string scos "cos" #cosine function string stan "tan" #tangent function string sasin "asin" #arcsine funtion string sacos "acos" #arccosine function string satan "atan" #arctangent function string ssinh "sinh" #hyperbolic sine function string scosh "cosh" #hyperbolic cosine function string stanh "tanh" #hyperbolic tangent function string sexp "exp" #exponent function call instal( smin, dmin ) call instal( smax, dmax ) call instal( slog, dlog ) call instal( sln, dln ) call instal( ssin, dsin ) call instal( scos, dcos ) call instal( stan, dtan ) call instal( sasin, dasin ) call instal( sacos, dacos ) call instal( satan, datan ) call instal( ssinh, dsinh ) call instal( scosh, dcosh ) call instal( stanh, dtanh ) call instal( sexp, dexp ) return end ### addname - find or add name # # synopsis # # status = addname ( exp, k, def, name ) # # exp - ratfor character string with command line # k - pointer to begining of name # def - initial definition of name # name - name from expression # status - return status is the index of name # # black magic # # Because the indices may change every time a definition is changed, # as noted in tbllb(2), names are entered as "name" which is defined # to be "name*" and "name*" is entered to be defined as the string that # corresponds to the numeric value of "name." In this way, the index # assigned to "name" is never redefined, and therefore never changes, # but the index assigned to "name*" may change freely. # integer function addname ( exp, k, def, name ) character exp ( ARB ) integer k character def ( ARB ) character name ( ARB ) character type, named (MAXLINE) integer nmfind, i, indx i = 1 while ( type ( exp ( k )) == LETTER | type ( exp ( k )) == DIGIT ) { name ( i ) = exp ( k ) k = k + 1 i = i + 1 } name ( i ) = EOS indx = nmfind ( name ) if ( indx == 0 ) { # not defined yet call scopy ( name, 1, named, 1 ) named ( i ) = '*' named ( i + 1 ) = EOS call instal ( name, named ) call instal ( named, def ) indx = nmfind ( name ) } return indx end ### ctonum - string to number with radix control # # synopsis # # status = ctonum ( buf, i, dradix ) # # buf - input ratfor character string # i - pointer to next character in string # dradix - output radix # status - returned real value # real function ctonum ( buf, i, dradix ) character buf ( ARB ) integer i, dradix real ctor integer ctoi character tmp ( MAXLINE ) integer j, c, n, val, radix, m string digits "0123456789abcdef" string numerr "dc: number error." # if there's no embedded radix, treat the number as a real. if ( dradix == 10 ) { for ( j=i; index ( digits, buf ( j )) != 0; j = j + 1 ) ; if ( buf ( j ) != '_' ) return ctor ( buf, i ) } for ( n = 0; ; i = i + 1 ) { #collect digits c = index ( digits, buf ( i )) if ( c == 0 ) break n = n + 1 tmp ( n ) = c - 1 # save digit value } if ( buf ( i ) == '_' ) { # get new radix, default radix is 10. radix = 0 i = i + 1 radix = ctoi ( buf, i ) } else radix = dradix val = 0 for ( j = 1; j <= n; j = j + 1 ) { c = tmp ( j ) if ( c >= iabs ( radix ) ) call experr ( numerr ) val = val * radix + c } return float ( val ) end ### dc - main subroutine # # synopsis # # call dc # subroutine dc character name ( FILENAMESIZE ) integer getarg, open integer fd, i fd = ERR for ( i = 1; getarg ( i, name, FILENAMESIZE ) != EOF; i = i + 1 ) { if ( name ( 1 ) == '-' & name ( 2 ) == EOS ) fd = STDIN else if ( name ( 1 ) != '-' ) { fd = open( name, READ ) if ( fd == ERR ) call cant( name ) } if ( fd != ERR ) { call dcexp ( fd ) if ( fd != STDIN ) call close ( fd ) } } if ( fd == ERR ) call dcexp ( STDIN ) return end ### dcexp - read file and process desk calculator expressions # # synopsis # # call dcexp ( fd ) # # fd - file descriptor # subroutine dcexp ( fd ) integer fd include "cexp" integer getlin, yyparse, sts real nameval ibase = 10 obase = 10 call addkeywords while ( getlin ( dcline, fd ) != EOF ) { rptr = 0 # convert the line to lower case and output any leading # spaces, then convert expressions until we run into a # the end of the line. call fold ( dcline ) dcind = 1 call prspace ( dcline, dcind ) while ( dcline ( dcind ) != '@n' & dcline ( dcind ) != EOS ) if ( yyparse( sts ) == OK ) call prspace ( dcline, dcind ) if ( dcline(dcind) == '@n' ) call putc ( '@n' ) } return end ### experr - output error messages only to terminals # # synopsis # # call experr ( msg ) # # msg - ratfor character string # subroutine experr ( msg ) character msg ( ARB ) integer isatty if ( isatty ( STDOUT ) == YES ) call remark ( msg ) else call error ( msg ) return end ### nameval - look up name and return it's value # # synopsis # # status = nameval ( indx ) # # indx - integer index (see tbllb(2)) # status - real value of name pointed to by "indx" # # This routine returns the value assigned to the name that the index # points to. See routine addname. # real function nameval ( indx ) integer indx integer i, status, lookup real val, ctonum character def ( MAXLINE ) call nmcopy ( indx, def ) status = lookup ( def, def ) i = 1 val = ctonum ( def, i, 10 ) return val end ### numtoc - convert real number to ratfor character string # # synopsis # # status = numtoc ( val, str, size, radix ) # # val - real number to convert # str - output ratfor character string # size - width of field # radix - radix of output string # integer function numtoc ( val, str, size, radix ) real val character str ( ARB ) integer size, radix integer i, j, k, d, int, intval string digits "0123456789ABCDEF" str ( 1 ) = EOS i = 1 if ( radix == 10 ) call rtoc ( val, str, size ) else { int = val if ( radix > 0 ) intval = iabs ( int ) else # negative radix intval = int repeat { # generate digits i = i + 1 # what we want to do is basically # mod ( intval, iabs ( radix ) ) # but we want a number 0 <= d < r # the 'mod' function doesn't seem to keep # d in this range if intval is negative if ( intval > 0 ) d = mod ( intval, iabs ( radix ) ) else { d = - mod ( - intval, iabs ( radix ) ) + iabs ( radix ) if( d == iabs ( radix ) ) d = 0 } str ( i ) = digits ( d + 1 ) # this is so we handle negative radixes correctly intval = ( intval - d ) / radix } until ( intval == 0 | i >= size ) if ( int < 0 & i < size & radix > 0 ) { # then sign i = i + 1 str ( i ) = '-' } numtoc = i - 1 for ( j = 1; j < i; j = j + 1 ) { # reverse digits k = str ( i ) str ( i ) = str ( j ) str ( j ) = k i = i - 1 } } return end ### putresult - output result of expression # # call putresult( index ) # index - pointer to real expression result # subroutine putresult( index ) integer index integer junk, numtoc character cresult(MAXLINE) include "cexp" junk = numtoc( rarray(index), cresult, MAXLINE, obase ) call putlin( cresult, STDOUT ) #output character result rptr = 0 #init expression stack return end ### prspace - skip over the SPACE's and TAB's and print them on STDOUT # # synopsis # # call prspace ( line, i ) # # line - ratfor character string # i - pointer to next character in string # subroutine prspace ( line, i ) character line ( ARB ) integer i while ( line ( i ) == ' ' | line ( i ) == '@t' ) { call putc ( line ( i )) i = i + 1 } return end ### skspace - skip over BLANK's and TAB's in string # # synopsis # # call prspace ( line, i ) # # line - ratfor character string # i - pointer to next character in string # subroutine skspace ( line, i ) character line ( ARB ) integer i while ( line ( i ) == ' ' | line ( i ) == '@t' ) i = i + 1 return end ### yylex - get expression token for evaluation # # synopsis # # token = yylex( value ) # # token - return token found # value - return value of token # integer function yylex( value ) integer value include "yypcom" include "cexp" real ctonum integer addname, equal, dumi character name(MAXLINE) character str(ARB) character type, c, cn string zero "0" string gaberr "dc: garbage in expression." yylex = OPERR while ( yylex == OPERR ) { c = type ( dcline(dcind) ) if ( c == DIGIT ) { rptr = rptr + 1 rarray(rptr) = ctonum ( dcline, dcind, ibase ) value = rptr yylex = OPND } else if ( c == LETTER ) { value = addname ( dcline, dcind, zero, str ) if ( equal ( str, "ibase" ) == YES ) { yylex = IBAS } else if ( equal ( str, "obase" ) == YES ) { yylex = OBAS } else { call nmcopy( value, name ) #check if keyword if ( name(1) == '#' ) #found a keyword yylex = name(2) #get keyword's def else yylex = NAME #not a keyword } } else #c is symbol { dcind = dcind + 1 cn = dcline ( dcind ) switch ( c ) { case ',': yylex = COMA case '?': yylex = IFOP case ';': yylex = SEP case '!': if ( cn == '=' ) { yylex = OPNE dcind = dcind + 1 } else { yylex = OPNOT } case '<': if ( cn == '=' ) { yylex = OPLE dcind = dcind + 1 } else yylex = OPLT case '>': if ( cn == '=' ) { yylex = OPGE dcind = dcind + 1 } else yylex = OPGT case '=': if ( cn == '=' ) { yylex = OPEQ dcind = dcind + 1 } else yylex = OPASSIGN case '|': yylex = OPOR case '&': yylex = OPAND case '+': if ( yytok == OPND | yytok == NAME | yytok == OPRP | yytok == YYERROR ) yylex = OPADD else yylex = OPPLUS case '-': if ( yytok == OPND | yytok == NAME | yytok == OPRP | yytok == YYERROR ) yylex = OPSUB else yylex = OPNEG case '^': yylex = OPEXP case ':': yylex = OPROUND case '*': yylex = OPMUL case '/': yylex = OPDIV case '%': yylex = OPMOD case '(': yylex = OPLP case ')': yylex = OPRP case ' ', '@t':; case '@n', EOS: yylex = 0 dcind = dcind - 1 default: call experr( gaberr ) } } } return end #-t- dc 24758 ascii 05Jan84 08:24:48 #-h- dc.r 80193 ascii 05Jan84 08:24:51 include yypdef subroutine yysem( yyprod ) integer yyprod define(MISSING_VALUE,1e30) ifdef(MODCOMP) define(asin,arsin) define(acos,arcos) enddef real l, r, result, float real nameval integer ir, ifix, mod, i integer numtoc character cresult(MAXLINE), name( MAXLINE ) real alog, alog10, sin, cos, tan, exp real asin, acos, atan, sinh, cosh, tanh include "cexp" integer yysta, yytok, yyval, yyerrok, yyerct, yylexval integer yymaxstack, yystkp, yysstk, yyvstk, yytstk common /yymicm/ yyval, yytok, yyerrok, yysta, yystkp, yymaxstack, yylexval, yyerct common /yysscm/ yysstk( 25) common /yytscm/ yytstk( 25) common /yyvscm/ yyvstk( 25) switch ( yyprod ) { case 2: call putresult( yyvstk(yystkp) ) case 3: call putc( '@t' ) call putresult( yyvstk(yystkp) ) case 6: rptr = rptr + 1 rarray(rptr) = nameval(yyvstk(yystkp) ) yyval = rptr case 7: rptr = rptr + 1 rarray(rptr) = ibase yyval = rptr case 8: rptr = rptr + 1 rarray(rptr) = obase yyval = rptr case 11: i = yyvstk(yystkp -1) rarray(i) = alog10( rarray(i) ) yyval = i case 12: i = yyvstk(yystkp -1) rarray(i) = alog( rarray(i) ) yyval = i case 13: i = yyvstk(yystkp -1) rarray(i) = sin( rarray(i) ) yyval = i case 14: i = yyvstk(yystkp -1) rarray(i) = cos( rarray(i) ) yyval = i case 15: i = yyvstk(yystkp -1) rarray(i) = tan( rarray(i) ) yyval = i case 16: i = yyvstk(yystkp -1) rarray(i) = asin( rarray(i) ) yyval = i case 17: i = yyvstk(yystkp -1) rarray(i) = acos( rarray(i) ) yyval = i case 18: i = yyvstk(yystkp -1) rarray(i) = atan( rarray(i) ) yyval = i case 19: i = yyvstk(yystkp -1) rarray(i) = sinh( rarray(i) ) yyval = i case 20: i = yyvstk(yystkp -1) rarray(i) = cosh( rarray(i) ) yyval = i case 21: i = yyvstk(yystkp -1) rarray(i) = tanh( rarray(i) ) yyval = i case 22: i = yyvstk(yystkp -1) rarray(i) = exp( rarray(i) ) yyval = i case 23: yyval = yyvstk(yystkp -1) case 24: i = yyvstk(yystkp -2) rarray(i) = ior ( ifix(rarray(i)), ifix (rarray(yyvstk(yystkp) ))) case 25: rptr = rptr + 1 rarray(rptr) = 0 yyval = rptr case 26: i = yyvstk(yystkp -2) rarray(i) = iand ( ifix (rarray(i)), ifix (rarray(yyvstk(yystkp) ))) case 27: i = yyvstk(yystkp) rarray(i) = not( ifix(rarray(i)) ) yyval = i case 28: i = yyvstk(yystkp -2) if ( rarray(i) == rarray(yyvstk(yystkp) ) ) rarray(i) = 1 else rarray(i) = 0 case 29: i = yyvstk(yystkp -2) if ( rarray(i) != rarray(yyvstk(yystkp) ) ) rarray(i) = 1 else rarray(i) = 0 case 30: i = yyvstk(yystkp -2) if ( rarray(i) > rarray(yyvstk(yystkp) ) ) rarray(i) = 1 else rarray(i) = 0 case 31: i = yyvstk(yystkp -2) if ( rarray(i) >= rarray(yyvstk(yystkp) ) ) rarray(i) = 1 else rarray(i) = 0 case 32: i = yyvstk(yystkp -4) if ( rarray(i) == 1 ) rarray(i) = rarray(yyvstk(yystkp -2) ) else rarray(i) = rarray(yyvstk(yystkp) ) case 33: i = yyvstk(yystkp -2) if ( rarray(i) < rarray(yyvstk(yystkp) ) ) rarray(i) = 1 else rarray(i) = 0 case 34: i = yyvstk(yystkp -2) if ( rarray(i) <= rarray(yyvstk(yystkp) ) ) rarray(i) = 1 else rarray(i) = 0 case 35: i = yyvstk(yystkp -2) rarray(i) = rarray(i) + rarray(yyvstk(yystkp) ) case 36: i = yyvstk(yystkp -2) rarray(i) = rarray(i) - rarray(yyvstk(yystkp) ) case 37: i = yyvstk(yystkp) rarray(i) = - rarray(i) yyval = i case 38: i = yyvstk(yystkp -2) rarray(i) = rarray(i) * rarray(yyvstk(yystkp) ) case 39: i = yyvstk(yystkp -2) if ( rarray(yyvstk(yystkp) ) == 0 ) { call remark( "dc: attempt to divide by zero" ) rarray(i) = MISSING_VALUE } else rarray(i) = rarray(i) / rarray(yyvstk(yystkp) ) case 40: i = yyvstk(yystkp -2) rarray(i) = amod(rarray(i), rarray(yyvstk(yystkp) )) case 41: i = yyvstk(yystkp -2) r = rarray(yyvstk(yystkp) ) if ( r != 0.0 ) { % r = abs ( r ) if ( rarray(i) < 0.0 ) rarray(i) = ( rarray(i) / r ) - 0.500001 else rarray(i) = ( rarray(i) / r ) + 0.500001 rarray(i) = aint ( rarray(i) ) * r } case 42: i = yyvstk(yystkp -2) r = rarray(yyvstk(yystkp) ) if (( rarray(i) == 0.0 ) & ( r == 0.0 )) rarray(i) = 1.0 else { ir = ifix ( r ) if ( r == float ( ir )) # integer exponent { % result = abs ( rarray(i) ) ** ir if (( rarray(i) < 0.0 ) & ( mod ( ir, 2 ) == 1 )) rarray(i) = - result else rarray(i) = result } else rarray(i) = rarray(i) ** r } case 43: yyval = yyvstk(yystkp) case 44: i = yyvstk(yystkp) call numtoc ( rarray(i), cresult, MAXLINE, 10 ) call nmcopy ( yyvstk(yystkp -2) , name ) call instal ( name, cresult ) yyval = i case 45: i = yyvstk(yystkp) ibase = rarray(i) # get new ibase value yyval = i if ( ibase < 2 ) # check validity { call remark ( "dc: illegal input base, reset to 10.") ibase = 10 rarray(i) = 10.0 } case 46: i = yyvstk(yystkp) obase = rarray(i) # get new obase value yyval = i if ( obase < 2 ) # check validity { call remark ( "dc: illegal output base, reset to 10.") obase = 10 rarray(i) = 10.0 } case 47: yyval = yyvstk(yystkp) case 48: i = yyvstk(yystkp) if ( rarray(yyvstk(yystkp -2) ) > rarray(i) ) yyval = i case 49: yyval = yyvstk(yystkp) case 50: i = yyvstk(yystkp) if ( rarray(yyvstk(yystkp -2) ) < rarray(i) ) yyval = i default:; } return end ###### D C R O U T I N E S ####### DRIVER(dcyacc) ### definitions for routines # include "memsym" define(OPND,2) define(OPERR,-5) define(NAME,1) define(OPLP,3) define(OPRP,4) define(OPOR,5) define(OPAND,6) define(OPNOT,7) define(OPEQ,8) define(OPNE,9) define(OPGT,10) define(OPGE,11) define(OPLT,12) define(OPLE,13) define(OPADD,14) define(OPSUB,15) define(OPMUL,16) define(OPDIV,17) define(OPNEG,18) define(OPMOD,19) define(OPEXP,20) define(OPPLUS,21) define(OPROUND,22) define(OPASSIGN,23) define(MIN,24) define(MAX,25) define(LOG,26) define(LN,27) define(SIN,29) define(COS,30) define(TAN,31) define(ASIN,32) define(ACOS,33) define(ATAN,34) define(SINH,35) define(COSH,36) define(TANH,37) define(COMA,38) define(SEP,39) define(IFOP,40) define(EXP,41) define(IBAS,42) define(OBAS,43) call dc DRETURN(OK) stop end ### addkeywords - add all keywords to symbol table # # call addkeywords # # The definitions for keywords will be '#' followed by the lexical # value of the keyword. # subroutine addkeywords character dmin(3) #definition for min character dmax(3) #definition for max character dlog(3) #definition for log character dln(3) #definition for ln character dsin(3) #definition for sin character dcos(3) #definition for cos character dtan(3) #definition for tan character dasin(3) #definition for asin character dacos(3) #definition for acos character datan(3) #definition for atan character dsinh(3) #definition for sinh character dcosh(3) #definition for cosh character dtanh(3) #definition for tanh character dexp(3) #definition for exp data dmin /'#',MIN,EOS/ data dmax /'#',MAX,EOS/ data dlog /'#',LOG,EOS/ data dln /'#',LN,EOS/ data dsin /'#',SIN,EOS/ data dcos /'#',COS,EOS/ data dtan /'#',TAN,EOS/ data dasin /'#',ASIN,EOS/ data dacos /'#',ACOS,EOS/ data datan /'#',ATAN,EOS/ data dsinh /'#',SINH,EOS/ data dcosh /'#',COSH,EOS/ data dtanh /'#',TANH,EOS/ data dexp /'#',EXP,EOS/ string smin "min" #minimum value function string smax "max" #maximum value function string slog "log" #logarithm function string sln "ln" #natural log string ssin "sin" #sin function string scos "cos" #cosine function string stan "tan" #tangent function string sasin "asin" #arcsine funtion string sacos "acos" #arccosine function string satan "atan" #arctangent function string ssinh "sinh" #hyperbolic sine function string scosh "cosh" #hyperbolic cosine function string stanh "tanh" #hyperbolic tangent function string sexp "exp" #exponent function call instal( smin, dmin ) call instal( smax, dmax ) call instal( slog, dlog ) call instal( sln, dln ) call instal( ssin, dsin ) call instal( scos, dcos ) call instal( stan, dtan ) call instal( sasin, dasin ) call instal( sacos, dacos ) call instal( satan, datan ) call instal( ssinh, dsinh ) call instal( scosh, dcosh ) call instal( stanh, dtanh ) call instal( sexp, dexp ) return end ### addname - find or add name # # synopsis # # status = addname ( exp, k, def, name ) # # exp - ratfor character string with command line # k - pointer to begining of name # def - initial definition of name # name - name from expression # status - return status is the index of name # # black magic # # Because the indices may change every time a definition is changed, # as noted in tbllb(2), names are entered as "name" which is defined # to be "name*" and "name*" is entered to be defined as the string that # corresponds to the numeric value of "name." In this way, the index # assigned to "name" is never redefined, and therefore never changes, # but the index assigned to "name*" may change freely. # integer function addname ( exp, k, def, name ) character exp ( ARB ) integer k character def ( ARB ) character name ( ARB ) character type, named (MAXLINE) integer nmfind, i, indx i = 1 while ( type ( exp ( k )) == LETTER | type ( exp ( k )) == DIGIT ) { name ( i ) = exp ( k ) k = k + 1 i = i + 1 } name ( i ) = EOS indx = nmfind ( name ) if ( indx == 0 ) { # not defined yet call scopy ( name, 1, named, 1 ) named ( i ) = '*' named ( i + 1 ) = EOS call instal ( name, named ) call instal ( named, def ) indx = nmfind ( name ) } return indx end ### ctonum - string to number with radix control # # synopsis # # status = ctonum ( buf, i, dradix ) # # buf - input ratfor character string # i - pointer to next character in string # dradix - output radix # status - returned real value # real function ctonum ( buf, i, dradix ) character buf ( ARB ) integer i, dradix real ctor integer ctoi character tmp ( MAXLINE ) integer j, c, n, val, radix, m string digits "0123456789abcdef" string numerr "dc: number error." # if there's no embedded radix, treat the number as a real. if ( dradix == 10 ) { for ( j=i; index ( digits, buf ( j )) != 0; j = j + 1 ) ; if ( buf ( j ) != '_' ) return ctor ( buf, i ) } for ( n = 0; ; i = i + 1 ) { #collect digits c = index ( digits, buf ( i )) if ( c == 0 ) break n = n + 1 tmp ( n ) = c - 1 # save digit value } if ( buf ( i ) == '_' ) { # get new radix, default radix is 10. radix = 0 i = i + 1 radix = ctoi ( buf, i ) } else radix = dradix val = 0 for ( j = 1; j <= n; j = j + 1 ) { c = tmp ( j ) if ( c >= iabs ( radix ) ) call experr ( numerr ) val = val * radix + c } return float ( val ) end ### dc - main subroutine # # synopsis # # call dc # subroutine dc character name ( FILENAMESIZE ) integer getarg, open integer fd, i fd = ERR for ( i = 1; getarg ( i, name, FILENAMESIZE ) != EOF; i = i + 1 ) { if ( name ( 1 ) == '-' & name ( 2 ) == EOS ) fd = STDIN else if ( name ( 1 ) != '-' ) { fd = open( name, READ ) if ( fd == ERR ) call cant( name ) } if ( fd != ERR ) { call dcexp ( fd ) if ( fd != STDIN ) call close ( fd ) } } if ( fd == ERR ) call dcexp ( STDIN ) return end ### dcexp - read file and process desk calculator expressions # # synopsis # # call dcexp ( fd ) # # fd - file descriptor # subroutine dcexp ( fd ) integer fd include "cexp" integer getlin, yyparse, sts real nameval ibase = 10 obase = 10 call addkeywords while ( getlin ( dcline, fd ) != EOF ) { rptr = 0 # convert the line to lower case and output any leading # spaces, then convert expressions until we run into a # the end of the line. call fold ( dcline ) dcind = 1 call prspace ( dcline, dcind ) while ( dcline ( dcind ) != '@n' & dcline ( dcind ) != EOS ) if ( yyparse( sts ) == OK ) call prspace ( dcline, dcind ) if ( dcline(dcind) == '@n' ) call putc ( '@n' ) } return end ### experr - output error messages only to terminals # # synopsis # # call experr ( msg ) # # msg - ratfor character string # subroutine experr ( msg ) character msg ( ARB ) integer isatty if ( isatty ( STDOUT ) == YES ) call remark ( msg ) else call error ( msg ) return end ### nameval - look up name and return it's value # # synopsis # # status = nameval ( indx ) # # indx - integer index (see tbllb(2)) # status - real value of name pointed to by "indx" # # This routine returns the value assigned to the name that the index # points to. See routine addname. # real function nameval ( indx ) integer indx integer i, status, lookup real val, ctonum character def ( MAXLINE ) call nmcopy ( indx, def ) status = lookup ( def, def ) i = 1 val = ctonum ( def, i, 10 ) return val end ### numtoc - convert real number to ratfor character string # # synopsis # # status = numtoc ( val, str, size, radix ) # # val - real number to convert # str - output ratfor character string # size - width of field # radix - radix of output string # integer function numtoc ( val, str, size, radix ) real val character str ( ARB ) integer size, radix integer i, j, k, d, int, intval string digits "0123456789ABCDEF" str ( 1 ) = EOS i = 1 if ( radix == 10 ) call rtoc ( val, str, size ) else { int = val if ( radix > 0 ) intval = iabs ( int ) else # negative radix intval = int repeat { # generate digits i = i + 1 # what we want to do is basically # mod ( intval, iabs ( radix ) ) # but we want a number 0 <= d < r # the 'mod' function doesn't seem to keep # d in this range if intval is negative if ( intval > 0 ) d = mod ( intval, iabs ( radix ) ) else { d = - mod ( - intval, iabs ( radix ) ) + iabs ( radix ) if( d == iabs ( radix ) ) d = 0 } str ( i ) = digits ( d + 1 ) # this is so we handle negative radixes correctly intval = ( intval - d ) / radix } until ( intval == 0 | i >= size ) if ( int < 0 & i < size & radix > 0 ) { # then sign i = i + 1 str ( i ) = '-' } numtoc = i - 1 for ( j = 1; j < i; j = j + 1 ) { # reverse digits k = str ( i ) str ( i ) = str ( j ) str ( j ) = k i = i - 1 } } return end ### putresult - output result of expression # # call putresult( index ) # index - pointer to real expression result # subroutine putresult( index ) integer index integer junk, numtoc character cresult(MAXLINE) include "cexp" junk = numtoc( rarray(index), cresult, MAXLINE, obase ) call putlin( cresult, STDOUT ) #output character result rptr = 0 #init expression stack return end ### prspace - skip over the SPACE's and TAB's and print them on STDOUT # # synopsis # # call prspace ( line, i ) # # line - ratfor character string # i - pointer to next character in string # subroutine prspace ( line, i ) character line ( ARB ) integer i while ( line ( i ) == ' ' | line ( i ) == '@t' ) { call putc ( line ( i )) i = i + 1 } return end ### skspace - skip over BLANK's and TAB's in string # # synopsis # # call prspace ( line, i ) # # line - ratfor character string # i - pointer to next character in string # subroutine skspace ( line, i ) character line ( ARB ) integer i while ( line ( i ) == ' ' | line ( i ) == '@t' ) i = i + 1 return end ### yylex - get expression token for evaluation # # synopsis # # token = yylex( value ) # # token - return token found # value - return value of token # integer function yylex( value ) integer value include "yypcom" include "cexp" real ctonum integer addname, equal, dumi character name(MAXLINE) character str(ARB) character type, c, cn string zero "0" string gaberr "dc: garbage in expression." yylex = OPERR while ( yylex == OPERR ) { c = type ( dcline(dcind) ) if ( c == DIGIT ) { rptr = rptr + 1 rarray(rptr) = ctonum ( dcline, dcind, ibase ) value = rptr yylex = OPND } else if ( c == LETTER ) { value = addname ( dcline, dcind, zero, str ) if ( equal ( str, "ibase" ) == YES ) { yylex = IBAS } else if ( equal ( str, "obase" ) == YES ) { yylex = OBAS } else { call nmcopy( value, name ) #check if keyword if ( name(1) == '#' ) #found a keyword yylex = name(2) #get keyword's def else yylex = NAME #not a keyword } } else #c is symbol { dcind = dcind + 1 cn = dcline ( dcind ) switch ( c ) { case ',': yylex = COMA case '?': yylex = IFOP case ';': yylex = SEP case '!': if ( cn == '=' ) { yylex = OPNE dcind = dcind + 1 } else { yylex = OPNOT } case '<': if ( cn == '=' ) { yylex = OPLE dcind = dcind + 1 } else yylex = OPLT case '>': if ( cn == '=' ) { yylex = OPGE dcind = dcind + 1 } else yylex = OPGT case '=': if ( cn == '=' ) { yylex = OPEQ dcind = dcind + 1 } else yylex = OPASSIGN case '|': yylex = OPOR case '&': yylex = OPAND case '+': if ( yytok == OPND | yytok == NAME | yytok == OPRP | yytok == YYERROR ) yylex = OPADD else yylex = OPPLUS case '-': if ( yytok == OPND | yytok == NAME | yytok == OPRP | yytok == YYERROR ) yylex = OPSUB else yylex = OPNEG case '^': yylex = OPEXP case ':': yylex = OPROUND case '*': yylex = OPMUL case '/': yylex = OPDIV case '%': yylex = OPMOD case '(': yylex = OPLP case ')': yylex = OPRP case ' ', '@t':; case '@n', EOS: yylex = 0 dcind = dcind - 1 default: call experr( gaberr ) } } } return end block data integer yyerrok, yylexval, yymaxstack, yystkp integer yysta, yytok, yyval, yyerct common /yymicm/ yyval, yytok, yyerrok, yysta, yystkp, yymaxstack, yylexval, yyerct data yystkp, yymaxstack /1, 25/ data yyerrok, yyval, yytok, yysta /NO, 0, YYENDTOK, 1/ end % block data % integer tran, ftrn, ent, fred, nset, dbg % integer prod, lhs, len, lset, finalstate, ls % common /yyfrcm/ fred( 124) % common /yynscm/ nset( 50) % common /yyltcm/ lset( 7) % common /yyprcm/ prod( 50) % common /yylncm/ len( 50) % common /yylhcm/ lhs( 50) % common /yyftcm/ ftrn( 124) % common /yytrcm/ finalstate, tran( 1803) % common /yyencm/ dbg, ent( 124) % common /yylscm/ ls( 62) % data finalstate, dbg/ 52, 0/ % data tran(1 )/2 /,tran(2 )/3 /,tran(3 )/4 / % data tran(4 )/5 /,tran(5 )/6 /,tran(6 )/7 / % data tran(7 )/8 /,tran(8 )/9 /,tran(9 )/10 / % data tran(10 )/11 /,tran(11 )/12 /,tran(12 )/13 / % data tran(13 )/14 /,tran(14 )/15 /,tran(15 )/16 / % data tran(16 )/17 /,tran(17 )/18 /,tran(18 )/19 / % data tran(19 )/20 /,tran(20 )/21 /,tran(21 )/22 / % data tran(22 )/23 /,tran(23 )/24 /,tran(24 )/25 / % data tran(25 )/26 /,tran(26 )/27 /,tran(27 )/28 / % data tran(28 )/29 /,tran(29 )/3 /,tran(30 )/4 / % data tran(31 )/5 /,tran(32 )/6 /,tran(33 )/7 / % data tran(34 )/8 /,tran(35 )/9 /,tran(36 )/10 / % data tran(37 )/11 /,tran(38 )/12 /,tran(39 )/13 / % data tran(40 )/14 /,tran(41 )/15 /,tran(42 )/16 / % data tran(43 )/17 /,tran(44 )/18 /,tran(45 )/19 / % data tran(46 )/20 /,tran(47 )/21 /,tran(48 )/22 / % data tran(49 )/23 /,tran(50 )/24 /,tran(51 )/25 / % data tran(52 )/30 /,tran(53 )/28 /,tran(54 )/29 / % data tran(55 )/3 /,tran(56 )/4 /,tran(57 )/5 / % data tran(58 )/6 /,tran(59 )/7 /,tran(60 )/8 / % data tran(61 )/9 /,tran(62 )/10 /,tran(63 )/11 / % data tran(64 )/12 /,tran(65 )/13 /,tran(66 )/14 / % data tran(67 )/15 /,tran(68 )/16 /,tran(69 )/17 / % data tran(70 )/18 /,tran(71 )/19 /,tran(72 )/20 / % data tran(73 )/21 /,tran(74 )/22 /,tran(75 )/23 / % data tran(76 )/24 /,tran(77 )/25 /,tran(78 )/31 / % data tran(79 )/28 /,tran(80 )/29 /,tran(81 )/32 / % data tran(82 )/33 /,tran(83 )/34 /,tran(84 )/35 / % data tran(85 )/36 /,tran(86 )/37 /,tran(87 )/38 / % data tran(88 )/39 /,tran(89 )/40 /,tran(90 )/41 / % data tran(91 )/42 /,tran(92 )/43 /,tran(93 )/3 / % data tran(94 )/4 /,tran(95 )/5 /,tran(96 )/6 / % data tran(97 )/7 /,tran(98 )/8 /,tran(99 )/9 / % data tran(100 )/10 /,tran(101 )/11 /,tran(102 )/12 / % data tran(103 )/13 /,tran(104 )/14 /,tran(105 )/15 / % data tran(106 )/16 /,tran(107 )/17 /,tran(108 )/18 / % data tran(109 )/19 /,tran(110 )/20 /,tran(111 )/21 / % data tran(112 )/22 /,tran(113 )/23 /,tran(114 )/24 / % data tran(115 )/25 /,tran(116 )/44 /,tran(117 )/28 / % data tran(118 )/29 /,tran(119 )/45 /,tran(120 )/3 / % data tran(121 )/4 /,tran(122 )/5 /,tran(123 )/6 / % data tran(124 )/7 /,tran(125 )/8 /,tran(126 )/9 / % data tran(127 )/10 /,tran(128 )/11 /,tran(129 )/12 / % data tran(130 )/13 /,tran(131 )/14 /,tran(132 )/15 / % data tran(133 )/16 /,tran(134 )/17 /,tran(135 )/18 / % data tran(136 )/19 /,tran(137 )/20 /,tran(138 )/21 / % data tran(139 )/22 /,tran(140 )/23 /,tran(141 )/24 / % data tran(142 )/25 /,tran(143 )/46 /,tran(144 )/28 / % data tran(145 )/29 /,tran(146 )/47 /,tran(147 )/48 / % data tran(148 )/49 /,tran(149 )/50 /,tran(150 )/51 / % data tran(151 )/52 /,tran(152 )/53 /,tran(153 )/54 / % data tran(154 )/55 /,tran(155 )/56 /,tran(156 )/57 / % data tran(157 )/58 /,tran(158 )/59 /,tran(159 )/60 / % data tran(160 )/61 /,tran(161 )/62 /,tran(162 )/63 / % data tran(163 )/64 /,tran(164 )/65 /,tran(165 )/66 / % data tran(166 )/67 /,tran(167 )/68 /,tran(168 )/69 / % data tran(169 )/70 /,tran(170 )/71 /,tran(171 )/72 / % data tran(172 )/124 /,tran(173 )/54 /,tran(174 )/55 / % data tran(175 )/56 /,tran(176 )/57 /,tran(177 )/58 / % data tran(178 )/59 /,tran(179 )/124 /,tran(180 )/124 / % data tran(181 )/62 /,tran(182 )/124 /,tran(183 )/64 / % data tran(184 )/65 /,tran(185 )/66 /,tran(186 )/67 / % data tran(187 )/68 /,tran(188 )/53 /,tran(189 )/54 / % data tran(190 )/55 /,tran(191 )/73 /,tran(192 )/56 / % data tran(193 )/57 /,tran(194 )/58 /,tran(195 )/59 / % data tran(196 )/60 /,tran(197 )/61 /,tran(198 )/62 / % data tran(199 )/63 /,tran(200 )/64 /,tran(201 )/65 / % data tran(202 )/66 /,tran(203 )/67 /,tran(204 )/68 / % data tran(205 )/3 /,tran(206 )/4 /,tran(207 )/5 / % data tran(208 )/6 /,tran(209 )/7 /,tran(210 )/8 / % data tran(211 )/9 /,tran(212 )/10 /,tran(213 )/11 / % data tran(214 )/12 /,tran(215 )/13 /,tran(216 )/14 / % data tran(217 )/15 /,tran(218 )/16 /,tran(219 )/17 / % data tran(220 )/18 /,tran(221 )/19 /,tran(222 )/20 / % data tran(223 )/21 /,tran(224 )/22 /,tran(225 )/23 / % data tran(226 )/24 /,tran(227 )/25 /,tran(228 )/74 / % data tran(229 )/28 /,tran(230 )/29 /,tran(231 )/3 / % data tran(232 )/4 /,tran(233 )/5 /,tran(234 )/6 / % data tran(235 )/7 /,tran(236 )/8 /,tran(237 )/9 / % data tran(238 )/10 /,tran(239 )/11 /,tran(240 )/12 / % data tran(241 )/13 /,tran(242 )/14 /,tran(243 )/15 / % data tran(244 )/16 /,tran(245 )/17 /,tran(246 )/18 / % data tran(247 )/19 /,tran(248 )/20 /,tran(249 )/21 / % data tran(250 )/22 /,tran(251 )/23 /,tran(252 )/24 / % data tran(253 )/25 /,tran(254 )/75 /,tran(255 )/28 / % data tran(256 )/29 /,tran(257 )/3 /,tran(258 )/4 / % data tran(259 )/5 /,tran(260 )/6 /,tran(261 )/7 / % data tran(262 )/8 /,tran(263 )/9 /,tran(264 )/10 / % data tran(265 )/11 /,tran(266 )/12 /,tran(267 )/13 / % data tran(268 )/14 /,tran(269 )/15 /,tran(270 )/16 / % data tran(271 )/17 /,tran(272 )/18 /,tran(273 )/19 / % data tran(274 )/20 /,tran(275 )/21 /,tran(276 )/22 / % data tran(277 )/23 /,tran(278 )/24 /,tran(279 )/25 / % data tran(280 )/76 /,tran(281 )/28 /,tran(282 )/29 / % data tran(283 )/3 /,tran(284 )/4 /,tran(285 )/5 / % data tran(286 )/6 /,tran(287 )/7 /,tran(288 )/8 / % data tran(289 )/9 /,tran(290 )/10 /,tran(291 )/11 / % data tran(292 )/12 /,tran(293 )/13 /,tran(294 )/14 / % data tran(295 )/15 /,tran(296 )/16 /,tran(297 )/17 / % data tran(298 )/18 /,tran(299 )/19 /,tran(300 )/20 / % data tran(301 )/21 /,tran(302 )/22 /,tran(303 )/23 / % data tran(304 )/24 /,tran(305 )/25 /,tran(306 )/77 / % data tran(307 )/28 /,tran(308 )/29 /,tran(309 )/3 / % data tran(310 )/4 /,tran(311 )/5 /,tran(312 )/6 / % data tran(313 )/7 /,tran(314 )/8 /,tran(315 )/9 / % data tran(316 )/10 /,tran(317 )/11 /,tran(318 )/12 / % data tran(319 )/13 /,tran(320 )/14 /,tran(321 )/15 / % data tran(322 )/16 /,tran(323 )/17 /,tran(324 )/18 / % data tran(325 )/19 /,tran(326 )/20 /,tran(327 )/21 / % data tran(328 )/22 /,tran(329 )/23 /,tran(330 )/24 / % data tran(331 )/25 /,tran(332 )/78 /,tran(333 )/28 / % data tran(334 )/29 /,tran(335 )/3 /,tran(336 )/4 / % data tran(337 )/5 /,tran(338 )/6 /,tran(339 )/7 / % data tran(340 )/8 /,tran(341 )/9 /,tran(342 )/10 / % data tran(343 )/11 /,tran(344 )/12 /,tran(345 )/13 / % data tran(346 )/14 /,tran(347 )/15 /,tran(348 )/16 / % data tran(349 )/17 /,tran(350 )/18 /,tran(351 )/19 / % data tran(352 )/20 /,tran(353 )/21 /,tran(354 )/22 / % data tran(355 )/23 /,tran(356 )/24 /,tran(357 )/25 / % data tran(358 )/79 /,tran(359 )/28 /,tran(360 )/29 / % data tran(361 )/3 /,tran(362 )/4 /,tran(363 )/5 / % data tran(364 )/6 /,tran(365 )/7 /,tran(366 )/8 / % data tran(367 )/9 /,tran(368 )/10 /,tran(369 )/11 / % data tran(370 )/12 /,tran(371 )/13 /,tran(372 )/14 / % data tran(373 )/15 /,tran(374 )/16 /,tran(375 )/17 / % data tran(376 )/18 /,tran(377 )/19 /,tran(378 )/20 / % data tran(379 )/21 /,tran(380 )/22 /,tran(381 )/23 / % data tran(382 )/24 /,tran(383 )/25 /,tran(384 )/80 / % data tran(385 )/28 /,tran(386 )/29 /,tran(387 )/3 / % data tran(388 )/4 /,tran(389 )/5 /,tran(390 )/6 / % data tran(391 )/7 /,tran(392 )/8 /,tran(393 )/9 / % data tran(394 )/10 /,tran(395 )/11 /,tran(396 )/12 / % data tran(397 )/13 /,tran(398 )/14 /,tran(399 )/15 / % data tran(400 )/16 /,tran(401 )/17 /,tran(402 )/18 / % data tran(403 )/19 /,tran(404 )/20 /,tran(405 )/21 / % data tran(406 )/22 /,tran(407 )/23 /,tran(408 )/24 / % data tran(409 )/25 /,tran(410 )/81 /,tran(411 )/28 / % data tran(412 )/29 /,tran(413 )/3 /,tran(414 )/4 / % data tran(415 )/5 /,tran(416 )/6 /,tran(417 )/7 / % data tran(418 )/8 /,tran(419 )/9 /,tran(420 )/10 / % data tran(421 )/11 /,tran(422 )/12 /,tran(423 )/13 / % data tran(424 )/14 /,tran(425 )/15 /,tran(426 )/16 / % data tran(427 )/17 /,tran(428 )/18 /,tran(429 )/19 / % data tran(430 )/20 /,tran(431 )/21 /,tran(432 )/22 / % data tran(433 )/23 /,tran(434 )/24 /,tran(435 )/25 / % data tran(436 )/82 /,tran(437 )/28 /,tran(438 )/29 / % data tran(439 )/3 /,tran(440 )/4 /,tran(441 )/5 / % data tran(442 )/6 /,tran(443 )/7 /,tran(444 )/8 / % data tran(445 )/9 /,tran(446 )/10 /,tran(447 )/11 / % data tran(448 )/12 /,tran(449 )/13 /,tran(450 )/14 / % data tran(451 )/15 /,tran(452 )/16 /,tran(453 )/17 / % data tran(454 )/18 /,tran(455 )/19 /,tran(456 )/20 / % data tran(457 )/21 /,tran(458 )/22 /,tran(459 )/23 / % data tran(460 )/24 /,tran(461 )/25 /,tran(462 )/83 / % data tran(463 )/28 /,tran(464 )/29 /,tran(465 )/3 / % data tran(466 )/4 /,tran(467 )/5 /,tran(468 )/6 / % data tran(469 )/7 /,tran(470 )/8 /,tran(471 )/9 / % data tran(472 )/10 /,tran(473 )/11 /,tran(474 )/12 / % data tran(475 )/13 /,tran(476 )/14 /,tran(477 )/15 / % data tran(478 )/16 /,tran(479 )/17 /,tran(480 )/18 / % data tran(481 )/19 /,tran(482 )/20 /,tran(483 )/21 / % data tran(484 )/22 /,tran(485 )/23 /,tran(486 )/24 / % data tran(487 )/25 /,tran(488 )/84 /,tran(489 )/28 / % data tran(490 )/29 /,tran(491 )/3 /,tran(492 )/4 / % data tran(493 )/5 /,tran(494 )/6 /,tran(495 )/7 / % data tran(496 )/8 /,tran(497 )/9 /,tran(498 )/10 / % data tran(499 )/11 /,tran(500 )/12 /,tran(501 )/13 / % data tran(502 )/14 /,tran(503 )/15 /,tran(504 )/16 / % data tran(505 )/17 /,tran(506 )/18 /,tran(507 )/19 / % data tran(508 )/20 /,tran(509 )/21 /,tran(510 )/22 / % data tran(511 )/23 /,tran(512 )/24 /,tran(513 )/25 / % data tran(514 )/85 /,tran(515 )/28 /,tran(516 )/29 / % data tran(517 )/124 /,tran(518 )/124 /,tran(519 )/124 / % data tran(520 )/124 /,tran(521 )/124 /,tran(522 )/124 / % data tran(523 )/124 /,tran(524 )/124 /,tran(525 )/124 / % data tran(526 )/124 /,tran(527 )/124 /,tran(528 )/124 / % data tran(529 )/124 /,tran(530 )/124 /,tran(531 )/124 / % data tran(532 )/124 /,tran(533 )/3 /,tran(534 )/4 / % data tran(535 )/5 /,tran(536 )/6 /,tran(537 )/7 / % data tran(538 )/8 /,tran(539 )/9 /,tran(540 )/10 / % data tran(541 )/11 /,tran(542 )/12 /,tran(543 )/13 / % data tran(544 )/14 /,tran(545 )/15 /,tran(546 )/16 / % data tran(547 )/17 /,tran(548 )/18 /,tran(549 )/19 / % data tran(550 )/20 /,tran(551 )/21 /,tran(552 )/22 / % data tran(553 )/23 /,tran(554 )/24 /,tran(555 )/25 / % data tran(556 )/86 /,tran(557 )/28 /,tran(558 )/29 / % data tran(559 )/124 /,tran(560 )/124 /,tran(561 )/124 / % data tran(562 )/124 /,tran(563 )/124 /,tran(564 )/124 / % data tran(565 )/124 /,tran(566 )/124 /,tran(567 )/124 / % data tran(568 )/124 /,tran(569 )/124 /,tran(570 )/124 / % data tran(571 )/124 /,tran(572 )/124 /,tran(573 )/124 / % data tran(574 )/124 /,tran(575 )/3 /,tran(576 )/4 / % data tran(577 )/5 /,tran(578 )/6 /,tran(579 )/7 / % data tran(580 )/8 /,tran(581 )/9 /,tran(582 )/10 / % data tran(583 )/11 /,tran(584 )/12 /,tran(585 )/13 / % data tran(586 )/14 /,tran(587 )/15 /,tran(588 )/16 / % data tran(589 )/17 /,tran(590 )/18 /,tran(591 )/19 / % data tran(592 )/20 /,tran(593 )/21 /,tran(594 )/22 / % data tran(595 )/23 /,tran(596 )/24 /,tran(597 )/25 / % data tran(598 )/87 /,tran(599 )/28 /,tran(600 )/29 / % data tran(601 )/3 /,tran(602 )/4 /,tran(603 )/5 / % data tran(604 )/6 /,tran(605 )/7 /,tran(606 )/8 / % data tran(607 )/9 /,tran(608 )/10 /,tran(609 )/11 / % data tran(610 )/12 /,tran(611 )/13 /,tran(612 )/14 / % data tran(613 )/15 /,tran(614 )/16 /,tran(615 )/17 / % data tran(616 )/18 /,tran(617 )/19 /,tran(618 )/20 / % data tran(619 )/21 /,tran(620 )/22 /,tran(621 )/23 / % data tran(622 )/24 /,tran(623 )/25 /,tran(624 )/88 / % data tran(625 )/28 /,tran(626 )/29 /,tran(627 )/3 / % data tran(628 )/4 /,tran(629 )/5 /,tran(630 )/6 / % data tran(631 )/7 /,tran(632 )/8 /,tran(633 )/9 / % data tran(634 )/10 /,tran(635 )/11 /,tran(636 )/12 / % data tran(637 )/13 /,tran(638 )/14 /,tran(639 )/15 / % data tran(640 )/16 /,tran(641 )/17 /,tran(642 )/18 / % data tran(643 )/19 /,tran(644 )/20 /,tran(645 )/21 / % data tran(646 )/22 /,tran(647 )/23 /,tran(648 )/24 / % data tran(649 )/25 /,tran(650 )/89 /,tran(651 )/28 / % data tran(652 )/29 /,tran(653 )/3 /,tran(654 )/4 / % data tran(655 )/5 /,tran(656 )/6 /,tran(657 )/7 / % data tran(658 )/8 /,tran(659 )/9 /,tran(660 )/10 / % data tran(661 )/11 /,tran(662 )/12 /,tran(663 )/13 / % data tran(664 )/14 /,tran(665 )/15 /,tran(666 )/16 / % data tran(667 )/17 /,tran(668 )/18 /,tran(669 )/19 / % data tran(670 )/20 /,tran(671 )/21 /,tran(672 )/22 / % data tran(673 )/23 /,tran(674 )/24 /,tran(675 )/25 / % data tran(676 )/90 /,tran(677 )/28 /,tran(678 )/29 / % data tran(679 )/3 /,tran(680 )/4 /,tran(681 )/5 / % data tran(682 )/6 /,tran(683 )/7 /,tran(684 )/8 / % data tran(685 )/9 /,tran(686 )/10 /,tran(687 )/11 / % data tran(688 )/12 /,tran(689 )/13 /,tran(690 )/14 / % data tran(691 )/15 /,tran(692 )/16 /,tran(693 )/17 / % data tran(694 )/18 /,tran(695 )/19 /,tran(696 )/20 / % data tran(697 )/21 /,tran(698 )/22 /,tran(699 )/23 / % data tran(700 )/24 /,tran(701 )/25 /,tran(702 )/91 / % data tran(703 )/28 /,tran(704 )/29 /,tran(705 )/3 / % data tran(706 )/4 /,tran(707 )/5 /,tran(708 )/6 / % data tran(709 )/7 /,tran(710 )/8 /,tran(711 )/9 / % data tran(712 )/10 /,tran(713 )/11 /,tran(714 )/12 / % data tran(715 )/13 /,tran(716 )/14 /,tran(717 )/15 / % data tran(718 )/16 /,tran(719 )/17 /,tran(720 )/18 / % data tran(721 )/19 /,tran(722 )/20 /,tran(723 )/21 / % data tran(724 )/22 /,tran(725 )/23 /,tran(726 )/24 / % data tran(727 )/25 /,tran(728 )/92 /,tran(729 )/28 / % data tran(730 )/29 /,tran(731 )/3 /,tran(732 )/4 / % data tran(733 )/5 /,tran(734 )/6 /,tran(735 )/7 / % data tran(736 )/8 /,tran(737 )/9 /,tran(738 )/10 / % data tran(739 )/11 /,tran(740 )/12 /,tran(741 )/13 / % data tran(742 )/14 /,tran(743 )/15 /,tran(744 )/16 / % data tran(745 )/17 /,tran(746 )/18 /,tran(747 )/19 / % data tran(748 )/20 /,tran(749 )/21 /,tran(750 )/22 / % data tran(751 )/23 /,tran(752 )/24 /,tran(753 )/25 / % data tran(754 )/93 /,tran(755 )/28 /,tran(756 )/29 / % data tran(757 )/3 /,tran(758 )/4 /,tran(759 )/5 / % data tran(760 )/6 /,tran(761 )/7 /,tran(762 )/8 / % data tran(763 )/9 /,tran(764 )/10 /,tran(765 )/11 / % data tran(766 )/12 /,tran(767 )/13 /,tran(768 )/14 / % data tran(769 )/15 /,tran(770 )/16 /,tran(771 )/17 / % data tran(772 )/18 /,tran(773 )/19 /,tran(774 )/20 / % data tran(775 )/21 /,tran(776 )/22 /,tran(777 )/23 / % data tran(778 )/24 /,tran(779 )/25 /,tran(780 )/94 / % data tran(781 )/28 /,tran(782 )/29 /,tran(783 )/3 / % data tran(784 )/4 /,tran(785 )/5 /,tran(786 )/6 / % data tran(787 )/7 /,tran(788 )/8 /,tran(789 )/9 / % data tran(790 )/10 /,tran(791 )/11 /,tran(792 )/12 / % data tran(793 )/13 /,tran(794 )/14 /,tran(795 )/15 / % data tran(796 )/16 /,tran(797 )/17 /,tran(798 )/18 / % data tran(799 )/19 /,tran(800 )/20 /,tran(801 )/21 / % data tran(802 )/22 /,tran(803 )/23 /,tran(804 )/24 / % data tran(805 )/25 /,tran(806 )/95 /,tran(807 )/28 / % data tran(808 )/29 /,tran(809 )/3 /,tran(810 )/4 / % data tran(811 )/5 /,tran(812 )/6 /,tran(813 )/7 / % data tran(814 )/8 /,tran(815 )/9 /,tran(816 )/10 / % data tran(817 )/11 /,tran(818 )/12 /,tran(819 )/13 / % data tran(820 )/14 /,tran(821 )/15 /,tran(822 )/16 / % data tran(823 )/17 /,tran(824 )/18 /,tran(825 )/19 / % data tran(826 )/20 /,tran(827 )/21 /,tran(828 )/22 / % data tran(829 )/23 /,tran(830 )/24 /,tran(831 )/25 / % data tran(832 )/96 /,tran(833 )/28 /,tran(834 )/29 / % data tran(835 )/3 /,tran(836 )/4 /,tran(837 )/5 / % data tran(838 )/6 /,tran(839 )/7 /,tran(840 )/8 / % data tran(841 )/9 /,tran(842 )/10 /,tran(843 )/11 / % data tran(844 )/12 /,tran(845 )/13 /,tran(846 )/14 / % data tran(847 )/15 /,tran(848 )/16 /,tran(849 )/17 / % data tran(850 )/18 /,tran(851 )/19 /,tran(852 )/20 / % data tran(853 )/21 /,tran(854 )/22 /,tran(855 )/23 / % data tran(856 )/24 /,tran(857 )/25 /,tran(858 )/97 / % data tran(859 )/28 /,tran(860 )/29 /,tran(861 )/3 / % data tran(862 )/4 /,tran(863 )/5 /,tran(864 )/6 / % data tran(865 )/7 /,tran(866 )/8 /,tran(867 )/9 / % data tran(868 )/10 /,tran(869 )/11 /,tran(870 )/12 / % data tran(871 )/13 /,tran(872 )/14 /,tran(873 )/15 / % data tran(874 )/16 /,tran(875 )/17 /,tran(876 )/18 / % data tran(877 )/19 /,tran(878 )/20 /,tran(879 )/21 / % data tran(880 )/22 /,tran(881 )/23 /,tran(882 )/24 / % data tran(883 )/25 /,tran(884 )/98 /,tran(885 )/28 / % data tran(886 )/29 /,tran(887 )/3 /,tran(888 )/4 / % data tran(889 )/5 /,tran(890 )/6 /,tran(891 )/7 / % data tran(892 )/8 /,tran(893 )/9 /,tran(894 )/10 / % data tran(895 )/11 /,tran(896 )/12 /,tran(897 )/13 / % data tran(898 )/14 /,tran(899 )/15 /,tran(900 )/16 / % data tran(901 )/17 /,tran(902 )/18 /,tran(903 )/19 / % data tran(904 )/20 /,tran(905 )/21 /,tran(906 )/22 / % data tran(907 )/23 /,tran(908 )/24 /,tran(909 )/25 / % data tran(910 )/99 /,tran(911 )/28 /,tran(912 )/29 / % data tran(913 )/3 /,tran(914 )/4 /,tran(915 )/5 / % data tran(916 )/6 /,tran(917 )/7 /,tran(918 )/8 / % data tran(919 )/9 /,tran(920 )/10 /,tran(921 )/11 / % data tran(922 )/12 /,tran(923 )/13 /,tran(924 )/14 / % data tran(925 )/15 /,tran(926 )/16 /,tran(927 )/17 / % data tran(928 )/18 /,tran(929 )/19 /,tran(930 )/20 / % data tran(931 )/21 /,tran(932 )/22 /,tran(933 )/23 / % data tran(934 )/24 /,tran(935 )/25 /,tran(936 )/100 / % data tran(937 )/28 /,tran(938 )/29 /,tran(939 )/3 / % data tran(940 )/4 /,tran(941 )/5 /,tran(942 )/6 / % data tran(943 )/7 /,tran(944 )/8 /,tran(945 )/9 / % data tran(946 )/10 /,tran(947 )/11 /,tran(948 )/12 / % data tran(949 )/13 /,tran(950 )/14 /,tran(951 )/15 / % data tran(952 )/16 /,tran(953 )/17 /,tran(954 )/18 / % data tran(955 )/19 /,tran(956 )/20 /,tran(957 )/21 / % data tran(958 )/22 /,tran(959 )/23 /,tran(960 )/24 / % data tran(961 )/25 /,tran(962 )/101 /,tran(963 )/28 / % data tran(964 )/29 /,tran(965 )/3 /,tran(966 )/4 / % data tran(967 )/5 /,tran(968 )/6 /,tran(969 )/7 / % data tran(970 )/8 /,tran(971 )/9 /,tran(972 )/10 / % data tran(973 )/11 /,tran(974 )/12 /,tran(975 )/13 / % data tran(976 )/14 /,tran(977 )/15 /,tran(978 )/16 / % data tran(979 )/17 /,tran(980 )/18 /,tran(981 )/19 / % data tran(982 )/20 /,tran(983 )/21 /,tran(984 )/22 / % data tran(985 )/23 /,tran(986 )/24 /,tran(987 )/25 / % data tran(988 )/102 /,tran(989 )/28 /,tran(990 )/29 / % data tran(991 )/3 /,tran(992 )/4 /,tran(993 )/5 / % data tran(994 )/6 /,tran(995 )/7 /,tran(996 )/8 / % data tran(997 )/9 /,tran(998 )/10 /,tran(999 )/11 / % data tran(1000 )/12 /,tran(1001 )/13 /,tran(1002 )/14 / % data tran(1003 )/15 /,tran(1004 )/16 /,tran(1005 )/17 / % data tran(1006 )/18 /,tran(1007 )/19 /,tran(1008 )/20 / % data tran(1009 )/21 /,tran(1010 )/22 /,tran(1011 )/23 / % data tran(1012 )/24 /,tran(1013 )/25 /,tran(1014 )/103 / % data tran(1015 )/28 /,tran(1016 )/29 /,tran(1017 )/3 / % data tran(1018 )/4 /,tran(1019 )/5 /,tran(1020 )/6 / % data tran(1021 )/7 /,tran(1022 )/8 /,tran(1023 )/9 / % data tran(1024 )/10 /,tran(1025 )/11 /,tran(1026 )/12 / % data tran(1027 )/13 /,tran(1028 )/14 /,tran(1029 )/15 / % data tran(1030 )/16 /,tran(1031 )/17 /,tran(1032 )/18 / % data tran(1033 )/19 /,tran(1034 )/20 /,tran(1035 )/21 / % data tran(1036 )/22 /,tran(1037 )/23 /,tran(1038 )/24 / % data tran(1039 )/25 /,tran(1040 )/104 /,tran(1041 )/28 / % data tran(1042 )/29 /,tran(1043 )/3 /,tran(1044 )/4 / % data tran(1045 )/5 /,tran(1046 )/6 /,tran(1047 )/7 / % data tran(1048 )/8 /,tran(1049 )/9 /,tran(1050 )/10 / % data tran(1051 )/11 /,tran(1052 )/12 /,tran(1053 )/13 / % data tran(1054 )/14 /,tran(1055 )/15 /,tran(1056 )/16 / % data tran(1057 )/17 /,tran(1058 )/18 /,tran(1059 )/19 / % data tran(1060 )/20 /,tran(1061 )/21 /,tran(1062 )/22 / % data tran(1063 )/23 /,tran(1064 )/24 /,tran(1065 )/25 / % data tran(1066 )/105 /,tran(1067 )/28 /,tran(1068 )/29 / % data tran(1069 )/3 /,tran(1070 )/4 /,tran(1071 )/5 / % data tran(1072 )/6 /,tran(1073 )/7 /,tran(1074 )/8 / % data tran(1075 )/9 /,tran(1076 )/10 /,tran(1077 )/11 / % data tran(1078 )/12 /,tran(1079 )/13 /,tran(1080 )/14 / % data tran(1081 )/15 /,tran(1082 )/16 /,tran(1083 )/17 / % data tran(1084 )/18 /,tran(1085 )/19 /,tran(1086 )/20 / % data tran(1087 )/21 /,tran(1088 )/22 /,tran(1089 )/23 / % data tran(1090 )/24 /,tran(1091 )/25 /,tran(1092 )/106 / % data tran(1093 )/28 /,tran(1094 )/29 /,tran(1095 )/3 / % data tran(1096 )/4 /,tran(1097 )/5 /,tran(1098 )/6 / % data tran(1099 )/7 /,tran(1100 )/8 /,tran(1101 )/9 / % data tran(1102 )/10 /,tran(1103 )/11 /,tran(1104 )/12 / % data tran(1105 )/13 /,tran(1106 )/14 /,tran(1107 )/15 / % data tran(1108 )/16 /,tran(1109 )/17 /,tran(1110 )/18 / % data tran(1111 )/19 /,tran(1112 )/20 /,tran(1113 )/21 / % data tran(1114 )/22 /,tran(1115 )/23 /,tran(1116 )/24 / % data tran(1117 )/25 /,tran(1118 )/107 /,tran(1119 )/28 / % data tran(1120 )/29 /,tran(1121 )/3 /,tran(1122 )/4 / % data tran(1123 )/5 /,tran(1124 )/6 /,tran(1125 )/7 / % data tran(1126 )/8 /,tran(1127 )/9 /,tran(1128 )/10 / % data tran(1129 )/11 /,tran(1130 )/12 /,tran(1131 )/13 / % data tran(1132 )/14 /,tran(1133 )/15 /,tran(1134 )/16 / % data tran(1135 )/17 /,tran(1136 )/18 /,tran(1137 )/19 / % data tran(1138 )/20 /,tran(1139 )/21 /,tran(1140 )/22 / % data tran(1141 )/23 /,tran(1142 )/24 /,tran(1143 )/25 / % data tran(1144 )/108 /,tran(1145 )/28 /,tran(1146 )/29 / % data tran(1147 )/3 /,tran(1148 )/4 /,tran(1149 )/5 / % data tran(1150 )/6 /,tran(1151 )/7 /,tran(1152 )/8 / % data tran(1153 )/9 /,tran(1154 )/10 /,tran(1155 )/11 / % data tran(1156 )/12 /,tran(1157 )/13 /,tran(1158 )/14 / % data tran(1159 )/15 /,tran(1160 )/16 /,tran(1161 )/17 / % data tran(1162 )/18 /,tran(1163 )/19 /,tran(1164 )/20 / % data tran(1165 )/21 /,tran(1166 )/22 /,tran(1167 )/23 / % data tran(1168 )/24 /,tran(1169 )/25 /,tran(1170 )/109 / % data tran(1171 )/28 /,tran(1172 )/29 /,tran(1173 )/53 / % data tran(1174 )/54 /,tran(1175 )/55 /,tran(1176 )/110 / % data tran(1177 )/56 /,tran(1178 )/57 /,tran(1179 )/58 / % data tran(1180 )/59 /,tran(1181 )/60 /,tran(1182 )/61 / % data tran(1183 )/62 /,tran(1184 )/63 /,tran(1185 )/64 / % data tran(1186 )/65 /,tran(1187 )/66 /,tran(1188 )/67 / % data tran(1189 )/68 /,tran(1190 )/53 /,tran(1191 )/54 / % data tran(1192 )/55 /,tran(1193 )/111 /,tran(1194 )/56 / % data tran(1195 )/57 /,tran(1196 )/58 /,tran(1197 )/59 / % data tran(1198 )/60 /,tran(1199 )/61 /,tran(1200 )/62 / % data tran(1201 )/63 /,tran(1202 )/64 /,tran(1203 )/65 / % data tran(1204 )/66 /,tran(1205 )/67 /,tran(1206 )/68 / % data tran(1207 )/53 /,tran(1208 )/54 /,tran(1209 )/55 / % data tran(1210 )/112 /,tran(1211 )/56 /,tran(1212 )/57 / % data tran(1213 )/58 /,tran(1214 )/59 /,tran(1215 )/60 / % data tran(1216 )/61 /,tran(1217 )/62 /,tran(1218 )/63 / % data tran(1219 )/64 /,tran(1220 )/65 /,tran(1221 )/66 / % data tran(1222 )/67 /,tran(1223 )/68 /,tran(1224 )/53 / % data tran(1225 )/54 /,tran(1226 )/55 /,tran(1227 )/113 / % data tran(1228 )/56 /,tran(1229 )/57 /,tran(1230 )/58 / % data tran(1231 )/59 /,tran(1232 )/60 /,tran(1233 )/61 / % data tran(1234 )/62 /,tran(1235 )/63 /,tran(1236 )/64 / % data tran(1237 )/65 /,tran(1238 )/66 /,tran(1239 )/67 / % data tran(1240 )/68 /,tran(1241 )/53 /,tran(1242 )/54 / % data tran(1243 )/55 /,tran(1244 )/114 /,tran(1245 )/56 / % data tran(1246 )/57 /,tran(1247 )/58 /,tran(1248 )/59 / % data tran(1249 )/60 /,tran(1250 )/61 /,tran(1251 )/62 / % data tran(1252 )/63 /,tran(1253 )/64 /,tran(1254 )/65 / % data tran(1255 )/66 /,tran(1256 )/67 /,tran(1257 )/68 / % data tran(1258 )/53 /,tran(1259 )/54 /,tran(1260 )/55 / % data tran(1261 )/115 /,tran(1262 )/56 /,tran(1263 )/57 / % data tran(1264 )/58 /,tran(1265 )/59 /,tran(1266 )/60 / % data tran(1267 )/61 /,tran(1268 )/62 /,tran(1269 )/63 / % data tran(1270 )/64 /,tran(1271 )/65 /,tran(1272 )/66 / % data tran(1273 )/67 /,tran(1274 )/68 /,tran(1275 )/53 / % data tran(1276 )/54 /,tran(1277 )/55 /,tran(1278 )/56 / % data tran(1279 )/57 /,tran(1280 )/58 /,tran(1281 )/59 / % data tran(1282 )/60 /,tran(1283 )/61 /,tran(1284 )/62 / % data tran(1285 )/63 /,tran(1286 )/64 /,tran(1287 )/65 / % data tran(1288 )/66 /,tran(1289 )/67 /,tran(1290 )/68 / % data tran(1291 )/53 /,tran(1292 )/54 /,tran(1293 )/55 / % data tran(1294 )/116 /,tran(1295 )/56 /,tran(1296 )/57 / % data tran(1297 )/58 /,tran(1298 )/59 /,tran(1299 )/60 / % data tran(1300 )/61 /,tran(1301 )/62 /,tran(1302 )/63 / % data tran(1303 )/64 /,tran(1304 )/65 /,tran(1305 )/66 / % data tran(1306 )/67 /,tran(1307 )/68 /,tran(1308 )/53 / % data tran(1309 )/54 /,tran(1310 )/55 /,tran(1311 )/117 / % data tran(1312 )/56 /,tran(1313 )/57 /,tran(1314 )/58 / % data tran(1315 )/59 /,tran(1316 )/60 /,tran(1317 )/61 / % data tran(1318 )/62 /,tran(1319 )/63 /,tran(1320 )/64 / % data tran(1321 )/65 /,tran(1322 )/66 /,tran(1323 )/67 / % data tran(1324 )/68 /,tran(1325 )/53 /,tran(1326 )/54 / % data tran(1327 )/55 /,tran(1328 )/56 /,tran(1329 )/57 / % data tran(1330 )/58 /,tran(1331 )/59 /,tran(1332 )/60 / % data tran(1333 )/61 /,tran(1334 )/62 /,tran(1335 )/63 / % data tran(1336 )/64 /,tran(1337 )/65 /,tran(1338 )/66 / % data tran(1339 )/67 /,tran(1340 )/68 /,tran(1341 )/53 / % data tran(1342 )/54 /,tran(1343 )/55 /,tran(1344 )/56 / % data tran(1345 )/57 /,tran(1346 )/58 /,tran(1347 )/59 / % data tran(1348 )/60 /,tran(1349 )/61 /,tran(1350 )/62 / % data tran(1351 )/63 /,tran(1352 )/64 /,tran(1353 )/65 / % data tran(1354 )/66 /,tran(1355 )/67 /,tran(1356 )/68 / % data tran(1357 )/53 /,tran(1358 )/54 /,tran(1359 )/55 / % data tran(1360 )/56 /,tran(1361 )/57 /,tran(1362 )/58 / % data tran(1363 )/59 /,tran(1364 )/60 /,tran(1365 )/61 / % data tran(1366 )/62 /,tran(1367 )/63 /,tran(1368 )/64 / % data tran(1369 )/65 /,tran(1370 )/66 /,tran(1371 )/67 / % data tran(1372 )/68 /,tran(1373 )/53 /,tran(1374 )/54 / % data tran(1375 )/55 /,tran(1376 )/56 /,tran(1377 )/57 / % data tran(1378 )/58 /,tran(1379 )/59 /,tran(1380 )/60 / % data tran(1381 )/61 /,tran(1382 )/62 /,tran(1383 )/63 / % data tran(1384 )/64 /,tran(1385 )/65 /,tran(1386 )/66 / % data tran(1387 )/67 /,tran(1388 )/68 /,tran(1389 )/53 / % data tran(1390 )/54 /,tran(1391 )/55 /,tran(1392 )/118 / % data tran(1393 )/56 /,tran(1394 )/57 /,tran(1395 )/58 / % data tran(1396 )/59 /,tran(1397 )/60 /,tran(1398 )/61 / % data tran(1399 )/62 /,tran(1400 )/63 /,tran(1401 )/64 / % data tran(1402 )/65 /,tran(1403 )/66 /,tran(1404 )/67 / % data tran(1405 )/68 /,tran(1406 )/53 /,tran(1407 )/54 / % data tran(1408 )/55 /,tran(1409 )/119 /,tran(1410 )/56 / % data tran(1411 )/57 /,tran(1412 )/58 /,tran(1413 )/59 / % data tran(1414 )/60 /,tran(1415 )/61 /,tran(1416 )/62 / % data tran(1417 )/63 /,tran(1418 )/64 /,tran(1419 )/65 / % data tran(1420 )/66 /,tran(1421 )/67 /,tran(1422 )/68 / % data tran(1423 )/53 /,tran(1424 )/54 /,tran(1425 )/55 / % data tran(1426 )/120 /,tran(1427 )/56 /,tran(1428 )/57 / % data tran(1429 )/58 /,tran(1430 )/59 /,tran(1431 )/60 / % data tran(1432 )/61 /,tran(1433 )/62 /,tran(1434 )/63 / % data tran(1435 )/64 /,tran(1436 )/65 /,tran(1437 )/66 / % data tran(1438 )/67 /,tran(1439 )/68 /,tran(1440 )/53 / % data tran(1441 )/54 /,tran(1442 )/55 /,tran(1443 )/121 / % data tran(1444 )/56 /,tran(1445 )/57 /,tran(1446 )/58 / % data tran(1447 )/59 /,tran(1448 )/60 /,tran(1449 )/61 / % data tran(1450 )/62 /,tran(1451 )/63 /,tran(1452 )/64 / % data tran(1453 )/65 /,tran(1454 )/66 /,tran(1455 )/67 / % data tran(1456 )/68 /,tran(1457 )/53 /,tran(1458 )/54 / % data tran(1459 )/55 /,tran(1460 )/56 /,tran(1461 )/57 / % data tran(1462 )/58 /,tran(1463 )/59 /,tran(1464 )/60 / % data tran(1465 )/61 /,tran(1466 )/62 /,tran(1467 )/63 / % data tran(1468 )/64 /,tran(1469 )/65 /,tran(1470 )/66 / % data tran(1471 )/67 /,tran(1472 )/68 /,tran(1473 )/124 / % data tran(1474 )/54 /,tran(1475 )/55 /,tran(1476 )/56 / % data tran(1477 )/57 /,tran(1478 )/58 /,tran(1479 )/59 / % data tran(1480 )/124 /,tran(1481 )/124 /,tran(1482 )/62 / % data tran(1483 )/124 /,tran(1484 )/64 /,tran(1485 )/65 / % data tran(1486 )/66 /,tran(1487 )/67 /,tran(1488 )/68 / % data tran(1489 )/124 /,tran(1490 )/-54 /,tran(1491 )/55 / % data tran(1492 )/56 /,tran(1493 )/57 /,tran(1494 )/58 / % data tran(1495 )/59 /,tran(1496 )/124 /,tran(1497 )/124 / % data tran(1498 )/62 /,tran(1499 )/124 /,tran(1500 )/-64 / % data tran(1501 )/-65 /,tran(1502 )/-66 /,tran(1503 )/-67 / % data tran(1504 )/-68 /,tran(1505 )/124 /,tran(1506 )/124 / % data tran(1507 )/124 /,tran(1508 )/124 /,tran(1509 )/124 / % data tran(1510 )/124 /,tran(1511 )/124 /,tran(1512 )/124 / % data tran(1513 )/124 /,tran(1514 )/62 /,tran(1515 )/124 / % data tran(1516 )/124 /,tran(1517 )/124 /,tran(1518 )/124 / % data tran(1519 )/124 /,tran(1520 )/124 /,tran(1521 )/124 / % data tran(1522 )/124 /,tran(1523 )/124 /,tran(1524 )/124 / % data tran(1525 )/124 /,tran(1526 )/124 /,tran(1527 )/124 / % data tran(1528 )/124 /,tran(1529 )/124 /,tran(1530 )/62 / % data tran(1531 )/124 /,tran(1532 )/124 /,tran(1533 )/124 / % data tran(1534 )/124 /,tran(1535 )/124 /,tran(1536 )/124 / % data tran(1537 )/124 /,tran(1538 )/124 /,tran(1539 )/55 / % data tran(1540 )/56 /,tran(1541 )/124 /,tran(1542 )/124 / % data tran(1543 )/59 /,tran(1544 )/124 /,tran(1545 )/124 / % data tran(1546 )/62 /,tran(1547 )/124 /,tran(1548 )/124 / % data tran(1549 )/124 /,tran(1550 )/124 /,tran(1551 )/124 / % data tran(1552 )/124 /,tran(1553 )/124 /,tran(1554 )/124 / % data tran(1555 )/55 /,tran(1556 )/56 /,tran(1557 )/124 / % data tran(1558 )/124 /,tran(1559 )/59 /,tran(1560 )/124 / % data tran(1561 )/124 /,tran(1562 )/62 /,tran(1563 )/124 / % data tran(1564 )/124 /,tran(1565 )/124 /,tran(1566 )/124 / % data tran(1567 )/124 /,tran(1568 )/124 /,tran(1569 )/124 / % data tran(1570 )/124 /,tran(1571 )/124 /,tran(1572 )/124 / % data tran(1573 )/124 /,tran(1574 )/124 /,tran(1575 )/124 / % data tran(1576 )/124 /,tran(1577 )/124 /,tran(1578 )/62 / % data tran(1579 )/124 /,tran(1580 )/124 /,tran(1581 )/124 / % data tran(1582 )/124 /,tran(1583 )/124 /,tran(1584 )/124 / % data tran(1585 )/53 /,tran(1586 )/54 /,tran(1587 )/55 / % data tran(1588 )/56 /,tran(1589 )/57 /,tran(1590 )/58 / % data tran(1591 )/59 /,tran(1592 )/124 /,tran(1593 )/124 / % data tran(1594 )/62 /,tran(1595 )/63 /,tran(1596 )/64 / % data tran(1597 )/65 /,tran(1598 )/66 /,tran(1599 )/67 / % data tran(1600 )/68 /,tran(1601 )/53 /,tran(1602 )/54 / % data tran(1603 )/55 /,tran(1604 )/56 /,tran(1605 )/57 / % data tran(1606 )/122 /,tran(1607 )/58 /,tran(1608 )/59 / % data tran(1609 )/60 /,tran(1610 )/61 /,tran(1611 )/62 / % data tran(1612 )/63 /,tran(1613 )/64 /,tran(1614 )/65 / % data tran(1615 )/66 /,tran(1616 )/67 /,tran(1617 )/68 / % data tran(1618 )/124 /,tran(1619 )/124 /,tran(1620 )/124 / % data tran(1621 )/124 /,tran(1622 )/124 /,tran(1623 )/124 / % data tran(1624 )/124 /,tran(1625 )/124 /,tran(1626 )/124 / % data tran(1627 )/62 /,tran(1628 )/124 /,tran(1629 )/124 / % data tran(1630 )/124 /,tran(1631 )/124 /,tran(1632 )/124 / % data tran(1633 )/124 /,tran(1634 )/124 /,tran(1635 )/54 / % data tran(1636 )/55 /,tran(1637 )/56 /,tran(1638 )/57 / % data tran(1639 )/58 /,tran(1640 )/59 /,tran(1641 )/124 / % data tran(1642 )/124 /,tran(1643 )/62 /,tran(1644 )/124 / % data tran(1645 )/64 /,tran(1646 )/65 /,tran(1647 )/66 / % data tran(1648 )/67 /,tran(1649 )/68 /,tran(1650 )/124 / % data tran(1651 )/-54 /,tran(1652 )/55 /,tran(1653 )/56 / % data tran(1654 )/57 /,tran(1655 )/58 /,tran(1656 )/59 / % data tran(1657 )/124 /,tran(1658 )/124 /,tran(1659 )/62 / % data tran(1660 )/124 /,tran(1661 )/-64 /,tran(1662 )/-65 / % data tran(1663 )/-66 /,tran(1664 )/-67 /,tran(1665 )/-68 / % data tran(1666 )/124 /,tran(1667 )/-54 /,tran(1668 )/55 / % data tran(1669 )/56 /,tran(1670 )/57 /,tran(1671 )/58 / % data tran(1672 )/59 /,tran(1673 )/124 /,tran(1674 )/124 / % data tran(1675 )/62 /,tran(1676 )/124 /,tran(1677 )/-64 / % data tran(1678 )/-65 /,tran(1679 )/-66 /,tran(1680 )/-67 / % data tran(1681 )/-68 /,tran(1682 )/124 /,tran(1683 )/-54 / % data tran(1684 )/55 /,tran(1685 )/56 /,tran(1686 )/57 / % data tran(1687 )/58 /,tran(1688 )/59 /,tran(1689 )/124 / % data tran(1690 )/124 /,tran(1691 )/62 /,tran(1692 )/124 / % data tran(1693 )/-64 /,tran(1694 )/-65 /,tran(1695 )/-66 / % data tran(1696 )/-67 /,tran(1697 )/-68 /,tran(1698 )/124 / % data tran(1699 )/-54 /,tran(1700 )/55 /,tran(1701 )/56 / % data tran(1702 )/57 /,tran(1703 )/58 /,tran(1704 )/59 / % data tran(1705 )/124 /,tran(1706 )/124 /,tran(1707 )/62 / % data tran(1708 )/124 /,tran(1709 )/-64 /,tran(1710 )/-65 / % data tran(1711 )/-66 /,tran(1712 )/-67 /,tran(1713 )/-68 / % data tran(1714 )/124 /,tran(1715 )/-54 /,tran(1716 )/55 / % data tran(1717 )/56 /,tran(1718 )/57 /,tran(1719 )/58 / % data tran(1720 )/59 /,tran(1721 )/124 /,tran(1722 )/124 / % data tran(1723 )/62 /,tran(1724 )/124 /,tran(1725 )/-64 / % data tran(1726 )/-65 /,tran(1727 )/-66 /,tran(1728 )/-67 / % data tran(1729 )/-68 /,tran(1730 )/53 /,tran(1731 )/54 / % data tran(1732 )/55 /,tran(1733 )/56 /,tran(1734 )/57 / % data tran(1735 )/58 /,tran(1736 )/59 /,tran(1737 )/60 / % data tran(1738 )/61 /,tran(1739 )/62 /,tran(1740 )/63 / % data tran(1741 )/64 /,tran(1742 )/65 /,tran(1743 )/66 / % data tran(1744 )/67 /,tran(1745 )/68 /,tran(1746 )/53 / % data tran(1747 )/54 /,tran(1748 )/55 /,tran(1749 )/56 / % data tran(1750 )/57 /,tran(1751 )/58 /,tran(1752 )/59 / % data tran(1753 )/60 /,tran(1754 )/61 /,tran(1755 )/62 / % data tran(1756 )/63 /,tran(1757 )/64 /,tran(1758 )/65 / % data tran(1759 )/66 /,tran(1760 )/67 /,tran(1761 )/68 / % data tran(1762 )/3 /,tran(1763 )/4 /,tran(1764 )/5 / % data tran(1765 )/6 /,tran(1766 )/7 /,tran(1767 )/8 / % data tran(1768 )/9 /,tran(1769 )/10 /,tran(1770 )/11 / % data tran(1771 )/12 /,tran(1772 )/13 /,tran(1773 )/14 / % data tran(1774 )/15 /,tran(1775 )/16 /,tran(1776 )/17 / % data tran(1777 )/18 /,tran(1778 )/19 /,tran(1779 )/20 / % data tran(1780 )/21 /,tran(1781 )/22 /,tran(1782 )/23 / % data tran(1783 )/24 /,tran(1784 )/25 /,tran(1785 )/123 / % data tran(1786 )/28 /,tran(1787 )/29 /,tran(1788 )/53 / % data tran(1789 )/54 /,tran(1790 )/55 /,tran(1791 )/56 / % data tran(1792 )/57 /,tran(1793 )/58 /,tran(1794 )/59 / % data tran(1795 )/60 /,tran(1796 )/61 /,tran(1797 )/62 / % data tran(1798 )/63 /,tran(1799 )/64 /,tran(1800 )/65 / % data tran(1801 )/66 /,tran(1802 )/67 /,tran(1803 )/68 / % data ftrn(1 )/1 /,ftrn(2 )/2 /,ftrn(3 )/29 / % data ftrn(4 )/55 /,ftrn(5 )/81 /,ftrn(6 )/82 / % data ftrn(7 )/83 /,ftrn(8 )/84 /,ftrn(9 )/85 / % data ftrn(10 )/86 /,ftrn(11 )/87 /,ftrn(12 )/88 / % data ftrn(13 )/89 /,ftrn(14 )/90 /,ftrn(15 )/91 / % data ftrn(16 )/92 /,ftrn(17 )/93 /,ftrn(18 )/119 / % data ftrn(19 )/119 /,ftrn(20 )/120 /,ftrn(21 )/146 / % data ftrn(22 )/147 /,ftrn(23 )/148 /,ftrn(24 )/149 / % data ftrn(25 )/150 /,ftrn(26 )/150 /,ftrn(27 )/152 / % data ftrn(28 )/168 /,ftrn(29 )/170 /,ftrn(30 )/172 / % data ftrn(31 )/188 /,ftrn(32 )/205 /,ftrn(33 )/231 / % data ftrn(34 )/257 /,ftrn(35 )/283 /,ftrn(36 )/309 / % data ftrn(37 )/335 /,ftrn(38 )/361 /,ftrn(39 )/387 / % data ftrn(40 )/413 /,ftrn(41 )/439 /,ftrn(42 )/465 / % data ftrn(43 )/491 /,ftrn(44 )/517 /,ftrn(45 )/533 / % data ftrn(46 )/559 /,ftrn(47 )/575 /,ftrn(48 )/601 / % data ftrn(49 )/627 /,ftrn(50 )/653 /,ftrn(51 )/679 / % data ftrn(52 )/705 /,ftrn(53 )/705 /,ftrn(54 )/731 / % data ftrn(55 )/757 /,ftrn(56 )/783 /,ftrn(57 )/809 / % data ftrn(58 )/835 /,ftrn(59 )/861 /,ftrn(60 )/887 / % data ftrn(61 )/913 /,ftrn(62 )/939 /,ftrn(63 )/965 / % data ftrn(64 )/991 /,ftrn(65 )/1017 /,ftrn(66 )/1043 / % data ftrn(67 )/1069 /,ftrn(68 )/1095 /,ftrn(69 )/1121 / % data ftrn(70 )/1121 /,ftrn(71 )/1147 /,ftrn(72 )/1147 / % data ftrn(73 )/1173 /,ftrn(74 )/1173 /,ftrn(75 )/1190 / % data ftrn(76 )/1207 /,ftrn(77 )/1224 /,ftrn(78 )/1241 / % data ftrn(79 )/1258 /,ftrn(80 )/1275 /,ftrn(81 )/1291 / % data ftrn(82 )/1308 /,ftrn(83 )/1325 /,ftrn(84 )/1341 / % data ftrn(85 )/1357 /,ftrn(86 )/1373 /,ftrn(87 )/1389 / % data ftrn(88 )/1406 /,ftrn(89 )/1423 /,ftrn(90 )/1440 / % data ftrn(91 )/1457 /,ftrn(92 )/1473 /,ftrn(93 )/1489 / % data ftrn(94 )/1505 /,ftrn(95 )/1521 /,ftrn(96 )/1537 / % data ftrn(97 )/1553 /,ftrn(98 )/1569 /,ftrn(99 )/1585 / % data ftrn(100 )/1601 /,ftrn(101 )/1618 /,ftrn(102 )/1634 / % data ftrn(103 )/1650 /,ftrn(104 )/1666 /,ftrn(105 )/1682 / % data ftrn(106 )/1698 /,ftrn(107 )/1714 /,ftrn(108 )/1730 / % data ftrn(109 )/1746 /,ftrn(110 )/1762 /,ftrn(111 )/1762 / % data ftrn(112 )/1762 /,ftrn(113 )/1762 /,ftrn(114 )/1762 / % data ftrn(115 )/1762 /,ftrn(116 )/1762 /,ftrn(117 )/1762 / % data ftrn(118 )/1762 /,ftrn(119 )/1762 /,ftrn(120 )/1762 / % data ftrn(121 )/1762 /,ftrn(122 )/1762 /,ftrn(123 )/1788 / % data ftrn(124 )/1804 / % data ent(1 )/7 /,ent(2 )/0 /,ent(3 )/7 / % data ent(4 )/3 /,ent(5 )/33 /,ent(6 )/32 / % data ent(7 )/34 /,ent(8 )/30 /,ent(9 )/36 / % data ent(10 )/41 /,ent(11 )/42 /,ent(12 )/27 / % data ent(13 )/26 /,ent(14 )/25 /,ent(15 )/24 / % data ent(16 )/1 /,ent(17 )/18 /,ent(18 )/2 / % data ent(19 )/43 /,ent(20 )/21 /,ent(21 )/29 / % data ent(22 )/35 /,ent(23 )/31 /,ent(24 )/37 / % data ent(25 )/-1 /,ent(26 )/261/,ent(27 )/262/ % data ent(28 )/264/,ent(29 )/263/,ent(30 )/262/ % data ent(31 )/262/,ent(32 )/3 /,ent(33 )/3 / % data ent(34 )/3 /,ent(35 )/3 /,ent(36 )/3 / % data ent(37 )/3 /,ent(38 )/23 /,ent(39 )/3 / % data ent(40 )/3 /,ent(41 )/3 /,ent(42 )/3 / % data ent(43 )/23 /,ent(44 )/262/,ent(45 )/23 / % data ent(46 )/262/,ent(47 )/3 /,ent(48 )/3 / % data ent(49 )/3 /,ent(50 )/3 /,ent(51 )/39 / % data ent(52 )/0 /,ent(53 )/6 /,ent(54 )/12 / % data ent(55 )/19 /,ent(56 )/16 /,ent(57 )/14 / % data ent(58 )/15 /,ent(59 )/17 /,ent(60 )/22 / % data ent(61 )/40 /,ent(62 )/20 /,ent(63 )/5 / % data ent(64 )/10 /,ent(65 )/8 /,ent(66 )/11 / % data ent(67 )/13 /,ent(68 )/9 /,ent(69 )/4 / % data ent(70 )/38 /,ent(71 )/4 /,ent(72 )/38 / % data ent(73 )/4 /,ent(74 )/262/,ent(75 )/262/ % data ent(76 )/262/,ent(77 )/262/,ent(78 )/262/ % data ent(79 )/262/,ent(80 )/262/,ent(81 )/262/ % data ent(82 )/262/,ent(83 )/262/,ent(84 )/262/ % data ent(85 )/262/,ent(86 )/262/,ent(87 )/262/ % data ent(88 )/262/,ent(89 )/262/,ent(90 )/262/ % data ent(91 )/262/,ent(92 )/262/,ent(93 )/262/ % data ent(94 )/262/,ent(95 )/262/,ent(96 )/262/ % data ent(97 )/262/,ent(98 )/262/,ent(99 )/262/ % data ent(100 )/262/,ent(101 )/262/,ent(102 )/262/ % data ent(103 )/262/,ent(104 )/262/,ent(105 )/262/ % data ent(106 )/262/,ent(107 )/262/,ent(108 )/262/ % data ent(109 )/262/,ent(110 )/4 /,ent(111 )/4 / % data ent(112 )/4 /,ent(113 )/4 /,ent(114 )/4 / % data ent(115 )/4 /,ent(116 )/4 /,ent(117 )/4 / % data ent(118 )/4 /,ent(119 )/4 /,ent(120 )/4 / % data ent(121 )/4 /,ent(122 )/38 /,ent(123 )/262/ % data ent(124 )/759/ % data fred(1 )/1 /,fred(2 )/1 /,fred(3 )/2 / % data fred(4 )/2 /,fred(5 )/2 /,fred(6 )/2 / % data fred(7 )/2 /,fred(8 )/2 /,fred(9 )/2 / % data fred(10 )/2 /,fred(11 )/2 /,fred(12 )/3 / % data fred(13 )/3 /,fred(14 )/3 /,fred(15 )/3 / % data fred(16 )/3 /,fred(17 )/4 /,fred(18 )/4 / % data fred(19 )/5 /,fred(20 )/6 /,fred(21 )/6 / % data fred(22 )/6 /,fred(23 )/6 /,fred(24 )/6 / % data fred(25 )/6 /,fred(26 )/7 /,fred(27 )/7 / % data fred(28 )/8 /,fred(29 )/8 /,fred(30 )/8 / % data fred(31 )/9 /,fred(32 )/9 /,fred(33 )/9 / % data fred(34 )/9 /,fred(35 )/9 /,fred(36 )/9 / % data fred(37 )/9 /,fred(38 )/9 /,fred(39 )/9 / % data fred(40 )/9 /,fred(41 )/9 /,fred(42 )/9 / % data fred(43 )/9 /,fred(44 )/9 /,fred(45 )/10 / % data fred(46 )/10 /,fred(47 )/11 /,fred(48 )/11 / % data fred(49 )/11 /,fred(50 )/11 /,fred(51 )/11 / % data fred(52 )/11 /,fred(53 )/12 /,fred(54 )/12 / % data fred(55 )/12 /,fred(56 )/12 /,fred(57 )/12 / % data fred(58 )/12 /,fred(59 )/12 /,fred(60 )/12 / % data fred(61 )/12 /,fred(62 )/12 /,fred(63 )/12 / % data fred(64 )/12 /,fred(65 )/12 /,fred(66 )/12 / % data fred(67 )/12 /,fred(68 )/12 /,fred(69 )/12 / % data fred(70 )/13 /,fred(71 )/13 /,fred(72 )/14 / % data fred(73 )/14 /,fred(74 )/15 /,fred(75 )/15 / % data fred(76 )/15 /,fred(77 )/15 /,fred(78 )/15 / % data fred(79 )/15 /,fred(80 )/15 /,fred(81 )/16 / % data fred(82 )/16 /,fred(83 )/16 /,fred(84 )/17 / % data fred(85 )/18 /,fred(86 )/19 /,fred(87 )/20 / % data fred(88 )/20 /,fred(89 )/20 /,fred(90 )/20 / % data fred(91 )/20 /,fred(92 )/21 /,fred(93 )/22 / % data fred(94 )/23 /,fred(95 )/24 /,fred(96 )/25 / % data fred(97 )/26 /,fred(98 )/27 /,fred(99 )/28 / % data fred(100 )/29 /,fred(101 )/29 /,fred(102 )/30 / % data fred(103 )/31 /,fred(104 )/32 /,fred(105 )/33 / % data fred(106 )/34 /,fred(107 )/35 /,fred(108 )/36 / % data fred(109 )/37 /,fred(110 )/38 /,fred(111 )/39 / % data fred(112 )/40 /,fred(113 )/41 /,fred(114 )/42 / % data fred(115 )/43 /,fred(116 )/44 /,fred(117 )/45 / % data fred(118 )/46 /,fred(119 )/47 /,fred(120 )/48 / % data fred(121 )/49 /,fred(122 )/50 /,fred(123 )/50 / % data fred(124 )/51 / % data nset(1 )/5 /,nset(2 )/1 /,nset(3 )/1 / % data nset(4 )/1 /,nset(5 )/1 /,nset(6 )/1 / % data nset(7 )/5 /,nset(8 )/1 /,nset(9 )/1 / % data nset(10 )/1 /,nset(11 )/6 /,nset(12 )/1 / % data nset(13 )/1 /,nset(14 )/1 /,nset(15 )/1 / % data nset(16 )/4 /,nset(17 )/4 /,nset(18 )/1 / % data nset(19 )/1 /,nset(20 )/5 /,nset(21 )/1 / % data nset(22 )/1 /,nset(23 )/1 /,nset(24 )/1 / % data nset(25 )/1 /,nset(26 )/1 /,nset(27 )/1 / % data nset(28 )/1 /,nset(29 )/1 /,nset(30 )/1 / % data nset(31 )/1 /,nset(32 )/1 /,nset(33 )/1 / % data nset(34 )/1 /,nset(35 )/1 /,nset(36 )/4 / % data nset(37 )/4 /,nset(38 )/1 /,nset(39 )/1 / % data nset(40 )/1 /,nset(41 )/1 /,nset(42 )/1 / % data nset(43 )/1 /,nset(44 )/1 /,nset(45 )/1 / % data nset(46 )/1 /,nset(47 )/1 /,nset(48 )/1 / % data nset(49 )/1 /,nset(50 )/1 / % data prod(1 )/4 /,prod(2 )/7 /,prod(3 )/6 / % data prod(4 )/5 /,prod(5 )/8 /,prod(6 )/25 / % data prod(7 )/2 /,prod(8 )/27 /,prod(9 )/37 / % data prod(10 )/43 /,prod(11 )/1 /,prod(12 )/10 / % data prod(13 )/9 /,prod(14 )/23 /,prod(15 )/45 / % data prod(16 )/49 /,prod(17 )/47 /,prod(18 )/44 / % data prod(19 )/46 /,prod(20 )/3 /,prod(21 )/26 / % data prod(22 )/33 /,prod(23 )/40 /,prod(24 )/38 / % data prod(25 )/35 /,prod(26 )/36 /,prod(27 )/39 / % data prod(28 )/41 /,prod(29 )/42 /,prod(30 )/24 / % data prod(31 )/30 /,prod(32 )/28 /,prod(33 )/31 / % data prod(34 )/34 /,prod(35 )/29 /,prod(36 )/50 / % data prod(37 )/48 /,prod(38 )/17 /,prod(39 )/16 / % data prod(40 )/18 /,prod(41 )/14 /,prod(42 )/20 / % data prod(43 )/22 /,prod(44 )/12 /,prod(45 )/11 / % data prod(46 )/13 /,prod(47 )/19 /,prod(48 )/15 / % data prod(49 )/21 /,prod(50 )/32 / % data lhs(1 )/260/,lhs(2 )/261/,lhs(3 )/261/,lhs(4 )/261/ % data lhs(5 )/262/,lhs(6 )/262/,lhs(7 )/262/,lhs(8 )/262/ % data lhs(9 )/262/,lhs(10 )/262/,lhs(11 )/262/,lhs(12 )/262/ % data lhs(13 )/262/,lhs(14 )/262/,lhs(15 )/262/,lhs(16 )/262/ % data lhs(17 )/262/,lhs(18 )/262/,lhs(19 )/262/,lhs(20 )/262/ % data lhs(21 )/262/,lhs(22 )/262/,lhs(23 )/262/,lhs(24 )/262/ % data lhs(25 )/262/,lhs(26 )/262/,lhs(27 )/262/,lhs(28 )/262/ % data lhs(29 )/262/,lhs(30 )/262/,lhs(31 )/262/,lhs(32 )/262/ % data lhs(33 )/262/,lhs(34 )/262/,lhs(35 )/262/,lhs(36 )/262/ % data lhs(37 )/262/,lhs(38 )/262/,lhs(39 )/262/,lhs(40 )/262/ % data lhs(41 )/262/,lhs(42 )/262/,lhs(43 )/262/,lhs(44 )/262/ % data lhs(45 )/262/,lhs(46 )/262/,lhs(47 )/263/,lhs(48 )/263/ % data lhs(49 )/264/,lhs(50 )/264/ % data len(1 )/3 /,len(2 )/1 /,len(3 )/3 /,len(4 )/0 / % data len(5 )/1 /,len(6 )/1 /,len(7 )/1 /,len(8 )/1 / % data len(9 )/2 /,len(10 )/2 /,len(11 )/4 /,len(12 )/4 / % data len(13 )/4 /,len(14 )/4 /,len(15 )/4 /,len(16 )/4 / % data len(17 )/4 /,len(18 )/4 /,len(19 )/4 /,len(20 )/4 / % data len(21 )/4 /,len(22 )/4 /,len(23 )/3 /,len(24 )/3 / % data len(25 )/1 /,len(26 )/3 /,len(27 )/2 /,len(28 )/3 / % data len(29 )/3 /,len(30 )/3 /,len(31 )/3 /,len(32 )/5 / % data len(33 )/3 /,len(34 )/3 /,len(35 )/3 /,len(36 )/3 / % data len(37 )/2 /,len(38 )/3 /,len(39 )/3 /,len(40 )/3 / % data len(41 )/3 /,len(42 )/3 /,len(43 )/2 /,len(44 )/3 / % data len(45 )/3 /,len(46 )/3 /,len(47 )/3 /,len(48 )/3 / % data len(49 )/3 /,len(50 )/3 / % data lset( 1)/ 1/ % data lset(2 )/21 /,lset(3 )/40 /,lset(4 )/58 / % data lset(5 )/60 /,lset(6 )/62 /,lset(7 )/63 / % data ls(1 )/6 /,ls(2 )/12 /,ls(3 )/19 / % data ls(4 )/4 /,ls(5 )/16 /,ls(6 )/14 / % data ls(7 )/38 /,ls(8 )/15 /,ls(9 )/17 / % data ls(10 )/22 /,ls(11 )/39 /,ls(12 )/40 / % data ls(13 )/20 /,ls(14 )/5 /,ls(15 )/10 / % data ls(16 )/8 /,ls(17 )/11 /,ls(18 )/13 / % data ls(19 )/9 /,ls(20 )/0 /,ls(21 )/6 / % data ls(22 )/12 /,ls(23 )/19 /,ls(24 )/4 / % data ls(25 )/16 /,ls(26 )/14 /,ls(27 )/15 / % data ls(28 )/17 /,ls(29 )/22 /,ls(30 )/39 / % data ls(31 )/40 /,ls(32 )/20 /,ls(33 )/5 / % data ls(34 )/10 /,ls(35 )/8 /,ls(36 )/11 / % data ls(37 )/13 /,ls(38 )/9 /,ls(39 )/0 / % data ls(40 )/6 /,ls(41 )/12 /,ls(42 )/19 / % data ls(43 )/16 /,ls(44 )/14 /,ls(45 )/15 / % data ls(46 )/17 /,ls(47 )/22 /,ls(48 )/39 / % data ls(49 )/40 /,ls(50 )/20 /,ls(51 )/5 / % data ls(52 )/10 /,ls(53 )/8 /,ls(54 )/11 / % data ls(55 )/13 /,ls(56 )/9 /,ls(57 )/0 / % data ls(58 )/4 /,ls(59 )/38 /,ls(60 )/39 / % data ls(61 )/0 /,ls(62 )/0 / % end #-t- dc.r 80193 ascii 05Jan84 08:24:51 #-t- dc.all 115907 ascii 05Jan84 08:28:12 #-h- ratfix.all 135312 ascii 05Jan84 08:28:23 #-h- ratfix.doc 1428 ascii 05Jan84 08:27:11 .pl 64 .m1 2 .m2 3 .m3 3 .m4 3 .po 10 .rm 62 .bp 1 .in 0 .he ^ratfix(1)^%^ratfix(1)^ .fo ^^- # -^^ .in 5 .sp .ne 2 .fi .ti -5 NAME .br ratfix - fix a source file for the new ratfor .sp .ne 2 .fi .ti -5 SYNOPSIS .br .nf ratfix < oldsrc > newsrc .sp .ne 2 .fi .ti -5 DESCRIPTION .br .ul Ratfix is a filter that converts old-style ratfor source into the new STUG standard ratfor. It handles quoted string conversion, LETA -> 'a', inserts DRIVER and DRETURN calls, and more! .ul Ratfix was specifically written for RTSG ratfor but should not have any difficulties with files from other sources. .sp .ne 2 .fi .ti -5 SEE ALSO .br .nf ratp1(1), ratp2(1), rat4(1), rc(1) .sp .ne 2 .fi .ti -5 DIAGNOSTICS .br "warning - initr4 called on line %d." .ne 3 .sp "Conditional compilation code detected on line %d, requires manual clean-up." (%equal, %or, %not, %and) .ne 3 .sp "%if detected on line %d - almost certainly will not work anymore." .ne 3 .sp "%elseif detected on line %d - almost certainly will not work anymore." .sp .ne 2 .fi .ti -5 AUTHOR(S) .br Vern Paxson and Marshall Spight .sp .ne 2 .fi .ti -5 BUGS/DEFICIENCIES .br Handling of conditional compilation is not perfect. The old style conditionals checked to see if the macro given was defined as YES, and the new style just check to see if the macro is defined at all. Code that makes significant use of conditional compilation may require significant changes by a human. #-t- ratfix.doc 1428 ascii 05Jan84 08:27:11 #-h- ratfix.inc 648 ascii 05Jan84 08:27:11 #-h- lexskcom 518 ascii 05Jan84 08:26:40 # incl/lexskcom - common block for lib/lexskel define(BUFSIZE,1000) integer buffer(BUFSIZE) # circular buffer integer begbufp # char before first char in this run integer curbufp # last char processed integer endbufp # last char read in integer machcond # current start condition integer lexminsc # minimum value of start condition integer lexmaxsc # maximum value of start condition common /lexskl/ buffer, begbufp, curbufp, endbufp, machcond, lexminsc, lexmaxsc #-t- lexskcom 518 ascii 05Jan84 08:26:40 #-t- ratfix.inc 648 ascii 05Jan84 08:27:11 #-h- ratfix 7369 ascii 05Jan84 08:27:12 #### ratfix - convert ratfor into standard ratfor # # 01e 20Oct83 tab .Split long fprintf lines into continued lines for # porting purposes. # 01d 24Sep83 cal .Changed string escaping to not escape old style # escape sequences. # 01c 13Sep83 cal .Fixed a bug in the rules for handling literal # toggles. Fixed bug in the rule for %undefine. # Added a rule for %skip. Modified to escape the # ESCAPE character in strings. # 01b 27Aug83 cal .Modified to preserve white space in include statements. # 01a ?????83 ms # && # vp .Written # # Lex input for ratfix tool. Boy was this work. # # White space WS [ @t] ALPHA [A-Za-z] ALPHANUM [A-Za-z0-9] ID [A-Za-z][A-Za-z0-9_$]* NOIDCHAR ([!A-Za-z0-9_$]|@n) CALL [Cc][aA][lL][lL] OPTCOMMENT {WS}*(#?*)\ ~S PROG LIT character buf( MAXLINE ) character clower integer line, length, i, ctoi include ratfix # site dependent symbols line = 1 ~~ %{WS}*@%{WS}*$ BEGIN(0) # line with just a % on it, exit LIT %{WS}*@%{WS}*$ BEGIN(LIT) # line with just a % on it, enter LIT %?*$ { # Pass literal lines through with a '%'. call putc(PERCENT) call lexecho } #?*$ call lexecho # pass comments through @"[!"]*@" { # Escape escapes in strings. call lexgtext( buf, MAXLINE ) for ( i = 1; buf(i) != EOS; i = i + 1 ) { call putc ( buf(i) ) if ( buf(i) == ESCAPE ) switch ( buf(i+1) ) { case 'b', 't', 'f', 'n', EOS: # do nothing. default: call putc ( buf(i) ) } } } @'[!']*@' { call lexgtext( buf, MAXLINE ) call putc(DQUOTE) for ( i = 2 ; buf(i+1) != EOS ; i = i + 1 ) { # It's currently wrong to escape " inside ' if ( buf(i) == DQUOTE ) call putc(ESCAPE) call putc( buf(i) ) } call putc(DQUOTE) } [BD]IG{ALPHANUM} { # BIGx -> 'x', DIGx -> 'x' call lexgtext( buf, MAXLINE ) call printf("'%c'", buf(4) ) } ACCENT call printf( "'%c'", ACCENT ) AMPER call printf( "'%c'", AMPER ) AMPERSAND call printf( "'%c'", AMPER ) AND call printf( "'%c'", AND ) ATSIGN call printf( "'@@@@'" ) BACKSLASH call printf( "'%c'", BACKSLASH ) BACKSPACE call printf( "'@@b'" ) BANG call printf( "'%c'", BANG ) BAR call printf( "'%c'", BAR ) BLANK call printf( "'%c'", BLANK ) CARET call printf( "'%c'", CARET ) COLON call printf( "'%c'", COLON ) COMMA call printf( "'%c'", COMMA ) DASH call printf( "'%c'", DASH ) DOLLAR call printf( "'%c'", DOLLAR ) DQUOTE call printf( "'%c'", DQUOTE ) EQUALS call printf( "'%c'", EQUALS ) ESCAPE call printf( "'%c%c'", ESCAPE, ESCAPE ) GRAVE call printf( "'%c'", GRAVE ) GREATER call printf( "'%c'", GREATER ) LBRACE call printf( "'%c'", LBRACE ) LBRACK call printf( "'%c'", LBRACK ) LESS call printf( "'%c'", LESS ) LPAREN call printf( "'%c'", LPAREN ) MINUS call printf( "'%c'", MINUS ) NEWLINE call printf( "'@@n'" ) NOT call printf( "'%c'", NOT ) OR call printf( "'%c'", OR ) PERCENT call printf( "'%c'", PERCENT ) PERIOD call printf( "'%c'", PERIOD ) PLUS call printf( "'%c'", PLUS ) QMARK call printf( "'%c'", QMARK ) RBRACE call printf( "'%c'", RBRACE ) RBRACK call printf( "'%c'", RBRACK ) RPAREN call printf( "'%c'", RPAREN ) SEMICOL call printf( "'%c'", SEMICOL ) SHARP call printf( "'%c'", SHARP ) SLASH call printf( "'%c'", SLASH ) SQUOTE call printf( "'@@''" ) STAR call printf( "'%c'", STAR ) TAB call printf( "'@@t'" ) TILDE call printf( "'%c'", TILDE ) UNDERLINE call printf( "'%c'", UNDERLINE ) LET[A-Z] { # LETx -> 'x' call lexgtext( buf, MAXLINE ) call printf("'%c'", clower( buf(4) ) ) } %{WS}*{CALL}{WS}+[iI][nN][iI][tT][rR]4{OPTCOMMENT}@n { line = line + 1 } %({WS}|[0-9])*{CALL}{WS}+[eE][nN][dD][rR]4{OPTCOMMENT}@n { call chklbl line = line + 1 call printf( "DRETURN@n" ) } %{WS}*[Ss][Tt][Oo][Pp]{OPTCOMMENT}@n { line = line + 1 } %{WS}*[eE][nN][dD] { call lexecho BEGIN(0) } {CALL}{WS}+[iI][nN][iI][tT][rR]4 { call lexecho call fprintf(ERROUT,"warning - initr4 called _ on line %d.@n", line ) } %{WS}*include{WS}+symbols{OPTCOMMENT}@n line = line + 1 %{WS}*[pP][rR][oO][gG][rR][aA][mM]{WS}+{ID} { call printf("DRIVER(") call outid call putc(RPAREN) BEGIN(PROG) } @%(and|or|equal|not) { call fprintf( ERROUT, "Conditional compilation _ code detected on line %d,@n", line ) call fprintf( ERROUT, " requires manual _ clean-up.@n" ) } @%[iI][fF]{WS}+{ID} { call fprintf( ERROUT, "%%if detected on line _ %d - almost certainly will not work anymore.@n", line ) call printf( "ifdef (" ) call outid call putc( RPAREN ) } @%[eE][lL][sS][eE][iI][fF]{WS}+{ID} { call fprintf( ERROUT, "%%elseif detected on _ line %d - almost certainly will not work _ anymore.@n", line ) call printf( "enddef@n" ) call printf( "ifdef (" ) call outid call putc( RPAREN ) } @%[eE][lL][sS][eE] call printf("elsedef") @%[eE][nN][dD][iI][fF] call printf("enddef") @%undefine@(@[{ID}@]@) { call printf("undefine(") call outdef(line) call putc( RPAREN ) } @%skip { call fprintf( ERROUT, "%%skip detected on line _ %d - almost certainly will not work anymore.@n", line ) call lexecho } %{WS}*include{WS}+[A-Za-z][A-Za-z0-9.]* { call doinclude } {ID} call lexecho @n { call lexecho line = line + 1 } ~~ ### main program # DRIVER(ratfix) integer lexscan, stat call lexinit stat = lexscan(0) DRETURN end ### doinclude - outputs a include line with double quotes subroutine doinclude integer i, length character buf(MAXLINE) call lexgtext( buf, MAXLINE ) i = length(buf) while ( buf(i) != ' ' & buf(i) != '@t' ) i = i - 1 buf(i+1) = EOS call putlin ( buf, STDOUT ) call putc ( '"' ) call outid call putc ( '"' ) return end ### outid - outputs an {ID} as found by a rule. subroutine outid integer i, length character buf( MAXLINE ) call lexgtext( buf, MAXLINE ) i = length(buf) while ( ( buf(i) != ' ' ) & ( buf(i) != '@t' ) ) i = i - 1 i = i + 1 while ( buf(i) != EOS ) { call putc( buf(i) ) i = i + 1 } return end ### chklbl - Checks the current line for a label. subroutine chklbl # If it finds one, it outputs the label and a continue statement. integer i, ctoi, j character buf( MAXLINE ) call lexgtext( buf, MAXLINE ) j = 1 i = ctoi(buf,j) if ( i > 0 ) call printf( "%d continue@n", i ) return end ### outdef - looks into a %undefine([]) subroutine outdef(line) integer line integer i, index character buf( MAXLINE ) call lexgtext( buf, MAXLINE ) i = index( buf, '[' ) if ( i <= 0 ) { call fprintf(ERROUT, "Missing [ in %%undefine at line %d.", line ) return } i = i + 1 # skip over [ while ( ( buf(i) != ']' ) & ( buf(i) != EOS ) ) { call putc( buf(i) ) i = i + 1 } if ( buf(i) == EOS ) call fprintf(ERROUT, "Missing ] in %%undefine at line %d.", line ) return end #-t- ratfix 7369 ascii 05Jan84 08:27:12 #-h- ratfix.r 125347 ascii 05Jan84 08:27:14 ############################################################################### # # # A lexical scanner generated by lex. # # # ############################################################################### # # version date initials remarks # ------- ---- -------- ------------------------------------------------------- # 01b 06sep83 VP .modified to use 'match' table of meta-equivalence # classes when indexing nxt/chk entries of templates # .added revision history # #define(DEBUG,) # comment this line in to get Debug-Output define(NIL,0) # don't change this value without changing it in lex define(BEGIN,call lexbegin(YYLEX_SC_$1)) define(ECHO,call lexecho) define(YYLEX_SC_0,0) integer function lexscan ( scanarg ) integer scanarg integer lexinterp, lextoken include "lexskcom" define(YYLEX_SC_PROG,131) define(YYLEX_SC_LIT,132) character buf( MAXLINE ) character clower integer line, length, i, ctoi include ratfix # site dependent symbols line = 1 lexminsc = 131 lexmaxsc = 132 define(SYM_BOL,130) define(SYM_EOF,129) repeat { lextoken = lexinterp ( 0 ) ifdef(DEBUG) call fprintf( ERROUT, "--accepting %d--@n", lextoken ) enddef switch ( lextoken ) { case 1: curbufp = mod( curbufp+BUFSIZE-2, BUFSIZE ) + 1 BEGIN(0) # line with just a % on it, exit LIT case 2: curbufp = mod( curbufp+BUFSIZE-2, BUFSIZE ) + 1 BEGIN(LIT) # line with just a % on it, enter LIT case 3: curbufp = mod( curbufp+BUFSIZE-2, BUFSIZE ) + 1 { # Pass literal lines through with a '%'. call putc(PERCENT) call lexecho } case 4: curbufp = mod( curbufp+BUFSIZE-2, BUFSIZE ) + 1 call lexecho # pass comments through case 5: { # Escape escapes in strings. call lexgtext( buf, MAXLINE ) for ( i = 1; buf(i) != EOS; i = i + 1 ) { call putc ( buf(i) ) if ( buf(i) == ESCAPE ) switch ( buf(i+1) ) { case 'b', 't', 'f', 'n', EOS: # do nothing. default: call putc ( buf(i) ) } } } case 6: { call lexgtext( buf, MAXLINE ) call putc(DQUOTE) for ( i = 2 ; buf(i+1) != EOS ; i = i + 1 ) { # It's currently wrong to escape " inside ' if ( buf(i) == DQUOTE ) call putc(ESCAPE) call putc( buf(i) ) } call putc(DQUOTE) } case 7: { # BIGx -> 'x', DIGx -> 'x' call lexgtext( buf, MAXLINE ) call printf("'%c'", buf(4) ) } case 8: call printf( "'%c'", ACCENT ) case 9: call printf( "'%c'", AMPER ) case 10: call printf( "'%c'", AMPER ) case 11: call printf( "'%c'", AND ) case 12: call printf( "'@@@@'" ) case 13: call printf( "'%c'", BACKSLASH ) case 14: call printf( "'@@b'" ) case 15: call printf( "'%c'", BANG ) case 16: call printf( "'%c'", BAR ) case 17: call printf( "'%c'", BLANK ) case 18: call printf( "'%c'", CARET ) case 19: call printf( "'%c'", COLON ) case 20: call printf( "'%c'", COMMA ) case 21: call printf( "'%c'", DASH ) case 22: call printf( "'%c'", DOLLAR ) case 23: call printf( "'%c'", DQUOTE ) case 24: call printf( "'%c'", EQUALS ) case 25: call printf( "'%c%c'", ESCAPE, ESCAPE ) case 26: call printf( "'%c'", GRAVE ) case 27: call printf( "'%c'", GREATER ) case 28: call printf( "'%c'", LBRACE ) case 29: call printf( "'%c'", LBRACK ) case 30: call printf( "'%c'", LESS ) case 31: call printf( "'%c'", LPAREN ) case 32: call printf( "'%c'", MINUS ) case 33: call printf( "'@@n'" ) case 34: call printf( "'%c'", NOT ) case 35: call printf( "'%c'", OR ) case 36: call printf( "'%c'", PERCENT ) case 37: call printf( "'%c'", PERIOD ) case 38: call printf( "'%c'", PLUS ) case 39: call printf( "'%c'", QMARK ) case 40: call printf( "'%c'", RBRACE ) case 41: call printf( "'%c'", RBRACK ) case 42: call printf( "'%c'", RPAREN ) case 43: call printf( "'%c'", SEMICOL ) case 44: call printf( "'%c'", SHARP ) case 45: call printf( "'%c'", SLASH ) case 46: call printf( "'@@''" ) case 47: call printf( "'%c'", STAR ) case 48: call printf( "'@@t'" ) case 49: call printf( "'%c'", TILDE ) case 50: call printf( "'%c'", UNDERLINE ) case 51: { # LETx -> 'x' call lexgtext( buf, MAXLINE ) call printf("'%c'", clower( buf(4) ) ) } case 52: { line = line + 1 } case 53: { call chklbl line = line + 1 call printf( "DRETURN@n" ) } case 54: { line = line + 1 } case 55: { call lexecho BEGIN(0) } case 56: { call lexecho call fprintf(ERROUT,"warning - initr4 called _ on line %d.@n", line ) } case 57: line = line + 1 case 58: { call printf("DRIVER(") call outid call putc(RPAREN) BEGIN(PROG) } case 59: { call fprintf( ERROUT, "Conditional compilation _ code detected on line %d,@n", line ) call fprintf( ERROUT, " requires manual _ clean-up.@n" ) } case 60: { call fprintf( ERROUT, "%%if detected on line _ %d - almost certainly will not work anymore.@n", line ) call printf( "ifdef (" ) call outid call putc( RPAREN ) } case 61: { call fprintf( ERROUT, "%%elseif detected on _ line %d - almost certainly will not work _ anymore.@n", line ) call printf( "enddef@n" ) call printf( "ifdef (" ) call outid call putc( RPAREN ) } case 62: call printf("elsedef") case 63: call printf("enddef") case 64: { call printf("undefine(") call outdef(line) call putc( RPAREN ) } case 65: { call fprintf( ERROUT, "%%skip detected on line _ %d - almost certainly will not work anymore.@n", line ) call lexecho } case 66: { call doinclude } case 67: call lexecho case 68: { call lexecho line = line + 1 } case 69: ECHO case 70: return( EOF ) } } return end ### lexinterp - run the machine to recognize a token # integer function lexinterp ( dummy ) integer dummy integer curstate, sym integer statebuf(BUFSIZE) # parallel to buffer, storing state numbers include "lexskcom" character lexinput integer bufp # the state machine is represented by several arrays. 'l' is indexed # by state number and gives a pointer into the 'a' array, which has # a list of those accepting numbers for the given state, terminated # by a 0 (NIL) value. 'b' and 'd' implement a base/default pair # which is indexed by state number. 'b' gives an index into the # next/check array, and 'd' gives a default base value (index into # 'b') to use if the index given by 'b' does not have the transition # information associated with it. 'n' and 'c' are the next/check # data structures. 'n' is indexed by the sum of the base index # given by 'b' for a given state and the equivalence class of the # input character, given by indexing the 'e' array with the character # read. If indexing 'c' with the same value as 'n' was indexed by # reveals that the Check value does not equal the value the base # array ('b') was index with, then that means that the Next value # given by 'n' is invalid. It is in this latter case that the default # value given by 'd' is used to determine a new base. 'm' is used # only for base values which correspond to Templates (those base # addresses indexed by numbers greater than FIRST_TEMPLATE_BASE). # It provides a mapping of equivalence class to meta-equivalence # class; the next/check pair for a template is determined by adding # the template's base value ( 'b(x)' where x is the template number ) # to the meta-equivalence class number ( 'm(e(inputchar))' ). This # somewhat weird 2-level equivalence class provides compression of # templates. integer L(710) integer A(1192) integer E(132) integer M(63) integer B(741) integer D(741) integer N(2379) integer C(2379) define(JAMBASE,2316) define(STARTSTATE,1) define(FIRST_TEMPLATE_BASE,712) % DATA L(1)/0/,L(2)/1/,A(1)/69/,A(2)/0/,L(3)/3/,A(3)/68/,A(4)/69/ % DATA A(5)/0/,L(4)/6/,A(6)/69/,A(7)/0/,L(5)/8/,A(8)/69/,A(9)/0/ % DATA L(6)/10/,A(10)/69/,A(11)/0/,L(7)/12/,A(12)/69/,A(13)/0/ % DATA L(8)/14/,A(14)/67/,A(15)/69/,A(16)/0/,L(9)/17/,A(17)/67/ % DATA A(18)/69/,A(19)/0/,L(10)/20/,A(20)/67/,A(21)/69/,A(22)/0/ % DATA L(11)/23/,A(23)/67/,A(24)/69/,A(25)/0/,L(12)/26/,A(26)/67/ % DATA A(27)/69/,A(28)/0/,L(13)/29/,A(29)/67/,A(30)/69/,A(31)/0/ % DATA L(14)/32/,A(32)/67/,A(33)/69/,A(34)/0/,L(15)/35/,A(35)/67/ % DATA A(36)/69/,A(37)/0/,L(16)/38/,A(38)/67/,A(39)/69/,A(40)/0/ % DATA L(17)/41/,A(41)/67/,A(42)/69/,A(43)/0/,L(18)/44/,A(44)/67/ % DATA A(45)/69/,A(46)/0/,L(19)/47/,A(47)/67/,A(48)/69/,A(49)/0/ % DATA L(20)/50/,A(50)/67/,A(51)/69/,A(52)/0/,L(21)/53/,A(53)/67/ % DATA A(54)/69/,A(55)/0/,L(22)/56/,A(56)/67/,A(57)/69/,A(58)/0/ % DATA L(23)/59/,A(59)/67/,A(60)/69/,A(61)/0/,L(24)/62/,A(62)/67/ % DATA A(63)/69/,A(64)/0/,L(25)/65/,A(65)/67/,A(66)/69/,A(67)/0/ % DATA L(26)/68/,A(68)/70/,A(69)/0/,L(27)/0/,L(28)/0/,L(29)/0/ % DATA L(30)/0/,L(31)/70/,A(70)/5/,A(71)/0/,L(32)/0/,L(33)/72/ % DATA A(72)/4/,A(73)/0/,L(34)/0/,L(35)/0/,L(36)/0/,L(37)/0/ % DATA L(38)/0/,L(39)/0/,L(40)/0/,L(41)/0/,L(42)/0/,L(43)/74/ % DATA A(74)/6/,A(75)/0/,L(44)/76/,A(76)/67/,A(77)/0/,L(45)/78/ % DATA A(78)/67/,A(79)/0/,L(46)/80/,A(80)/67/,A(81)/0/,L(47)/82/ % DATA A(82)/67/,A(83)/0/,L(48)/84/,A(84)/67/,A(85)/0/,L(49)/86/ % DATA A(86)/67/,A(87)/0/,L(50)/88/,A(88)/67/,A(89)/0/,L(51)/90/ % DATA A(90)/67/,A(91)/0/,L(52)/92/,A(92)/67/,A(93)/0/,L(53)/94/ % DATA A(94)/67/,A(95)/0/,L(54)/96/,A(96)/67/,A(97)/0/,L(55)/98/ % DATA A(98)/67/,A(99)/0/,L(56)/100/,A(100)/67/,A(101)/0/ % DATA L(57)/102/,A(102)/67/,A(103)/0/,L(58)/104/,A(104)/67/ % DATA A(105)/0/,L(59)/106/,A(106)/67/,A(107)/0/,L(60)/108/ % DATA A(108)/67/,A(109)/0/,L(61)/110/,A(110)/67/,A(111)/0/ % DATA L(62)/112/,A(112)/67/,A(113)/0/,L(63)/114/,A(114)/67/ % DATA A(115)/0/,L(64)/116/,A(116)/67/,A(117)/0/,L(65)/118/ % DATA A(118)/67/,A(119)/0/,L(66)/120/,A(120)/67/,A(121)/0/ % DATA L(67)/122/,A(122)/35/,A(123)/67/,A(124)/0/,L(68)/125/ % DATA A(125)/67/,A(126)/0/,L(69)/127/,A(127)/67/,A(128)/0/ % DATA L(70)/129/,A(129)/67/,A(130)/0/,L(71)/131/,A(131)/67/ % DATA A(132)/0/,L(72)/133/,A(133)/67/,A(134)/0/,L(73)/135/ % DATA A(135)/67/,A(136)/0/,L(74)/137/,A(137)/67/,A(138)/0/ % DATA L(75)/139/,A(139)/67/,A(140)/0/,L(76)/141/,A(141)/67/ % DATA A(142)/0/,L(77)/143/,A(143)/67/,A(144)/0/,L(78)/145/ % DATA A(145)/67/,A(146)/0/,L(79)/147/,A(147)/67/,A(148)/0/ % DATA L(80)/149/,A(149)/67/,A(150)/0/,L(81)/151/,A(151)/69/ % DATA A(152)/0/,L(82)/153/,A(153)/69/,A(154)/0/,L(83)/155/ % DATA A(155)/69/,A(156)/0/,L(84)/157/,A(157)/67/,A(158)/69/ % DATA A(159)/0/,L(85)/160/,A(160)/67/,A(161)/69/,A(162)/0/ % DATA L(86)/163/,A(163)/67/,A(164)/69/,A(165)/0/,L(87)/166/ % DATA A(166)/67/,A(167)/69/,A(168)/0/,L(88)/169/,A(169)/67/ % DATA A(170)/69/,A(171)/0/,L(89)/0/,L(90)/0/,L(91)/0/,L(92)/0/ % DATA L(93)/0/,L(94)/0/,L(95)/0/,L(96)/0/,L(97)/172/,A(172)/59/ % DATA A(173)/0/,L(98)/0/,L(99)/0/,L(100)/174/,A(174)/67/ % DATA A(175)/0/,L(101)/176/,A(176)/67/,A(177)/0/,L(102)/178/ % DATA A(178)/11/,A(179)/67/,A(180)/0/,L(103)/181/,A(181)/67/ % DATA A(182)/0/,L(104)/183/,A(183)/67/,A(184)/0/,L(105)/185/ % DATA A(185)/67/,A(186)/0/,L(106)/187/,A(187)/16/,A(188)/67/ % DATA A(189)/0/,L(107)/190/,A(190)/67/,A(191)/0/,L(108)/192/ % DATA A(192)/67/,A(193)/0/,L(109)/194/,A(194)/67/,A(195)/0/ % DATA L(110)/196/,A(196)/67/,A(197)/0/,L(111)/198/,A(198)/67/ % DATA A(199)/0/,L(112)/200/,A(200)/67/,A(201)/0/,L(113)/202/ % DATA A(202)/67/,A(203)/0/,L(114)/204/,A(204)/67/,A(205)/0/ % DATA L(115)/206/,A(206)/67/,A(207)/0/,L(116)/208/,A(208)/67/ % DATA A(209)/0/,L(117)/210/,A(210)/67/,A(211)/0/,L(118)/212/ % DATA A(212)/67/,A(213)/0/,L(119)/214/,A(214)/67/,A(215)/0/ % DATA L(120)/216/,A(216)/67/,A(217)/0/,L(121)/218/,A(218)/67/ % DATA A(219)/0/,L(122)/220/,A(220)/67/,A(221)/0/,L(123)/222/ % DATA A(222)/67/,A(223)/0/,L(124)/224/,A(224)/67/,A(225)/0/ % DATA L(125)/226/,A(226)/67/,A(227)/0/,L(126)/228/,A(228)/34/ % DATA A(229)/67/,A(230)/0/,L(127)/231/,A(231)/67/,A(232)/0/ % DATA L(128)/233/,A(233)/67/,A(234)/0/,L(129)/235/,A(235)/67/ % DATA A(236)/0/,L(130)/237/,A(237)/67/,A(238)/0/,L(131)/239/ % DATA A(239)/67/,A(240)/0/,L(132)/241/,A(241)/67/,A(242)/0/ % DATA L(133)/243/,A(243)/67/,A(244)/0/,L(134)/245/,A(245)/67/ % DATA A(246)/0/,L(135)/247/,A(247)/67/,A(248)/0/,L(136)/249/ % DATA A(249)/67/,A(250)/0/,L(137)/251/,A(251)/48/,A(252)/67/ % DATA A(253)/0/,L(138)/254/,A(254)/67/,A(255)/0/,L(139)/256/ % DATA A(256)/67/,A(257)/0/,L(140)/0/,L(141)/0/,L(142)/0/ % DATA L(143)/0/,L(144)/0/,L(145)/0/,L(146)/258/,A(258)/2/ % DATA A(259)/0/,L(147)/260/,A(260)/67/,A(261)/0/,L(148)/262/ % DATA A(262)/67/,A(263)/0/,L(149)/264/,A(264)/67/,A(265)/0/ % DATA L(150)/266/,A(266)/67/,A(267)/0/,L(151)/268/,A(268)/69/ % DATA A(269)/0/,L(152)/270/,A(270)/67/,A(271)/69/,A(272)/0/ % DATA L(153)/273/,A(273)/67/,A(274)/69/,A(275)/0/,L(154)/276/ % DATA A(276)/67/,A(277)/69/,A(278)/0/,L(155)/279/,A(279)/67/ % DATA A(280)/69/,A(281)/0/,L(156)/282/,A(282)/67/,A(283)/69/ % DATA A(284)/0/,L(157)/285/,A(285)/67/,A(286)/69/,A(287)/0/ % DATA L(158)/288/,A(288)/69/,A(289)/0/,L(159)/290/,A(290)/69/ % DATA A(291)/0/,L(160)/292/,A(292)/3/,A(293)/68/,A(294)/69/ % DATA A(295)/0/,L(161)/296/,A(296)/69/,A(297)/0/,L(162)/298/ % DATA A(298)/69/,A(299)/0/,L(163)/300/,A(300)/69/,A(301)/0/ % DATA L(164)/302/,A(302)/69/,A(303)/0/,L(165)/304/,A(304)/69/ % DATA A(305)/0/,L(166)/306/,A(306)/67/,A(307)/69/,A(308)/0/ % DATA L(167)/309/,A(309)/67/,A(310)/69/,A(311)/0/,L(168)/312/ % DATA A(312)/67/,A(313)/69/,A(314)/0/,L(169)/315/,A(315)/67/ % DATA A(316)/69/,A(317)/0/,L(170)/318/,A(318)/67/,A(319)/69/ % DATA A(320)/0/,L(171)/321/,A(321)/67/,A(322)/69/,A(323)/0/ % DATA L(172)/324/,A(324)/67/,A(325)/69/,A(326)/0/,L(173)/327/ % DATA A(327)/67/,A(328)/69/,A(329)/0/,L(174)/330/,A(330)/67/ % DATA A(331)/69/,A(332)/0/,L(175)/333/,A(333)/67/,A(334)/69/ % DATA A(335)/0/,L(176)/336/,A(336)/67/,A(337)/69/,A(338)/0/ % DATA L(177)/339/,A(339)/67/,A(340)/69/,A(341)/0/,L(178)/342/ % DATA A(342)/67/,A(343)/69/,A(344)/0/,L(179)/345/,A(345)/67/ % DATA A(346)/69/,A(347)/0/,L(180)/348/,A(348)/67/,A(349)/69/ % DATA A(350)/0/,L(181)/351/,A(351)/67/,A(352)/69/,A(353)/0/ % DATA L(182)/354/,A(354)/67/,A(355)/69/,A(356)/0/,L(183)/357/ % DATA A(357)/67/,A(358)/69/,A(359)/0/,L(184)/360/,A(360)/67/ % DATA A(361)/69/,A(362)/0/,L(185)/363/,A(363)/67/,A(364)/69/ % DATA A(365)/0/,L(186)/0/,L(187)/0/,L(188)/0/,L(189)/0/ % DATA L(190)/0/,L(191)/0/,L(192)/366/,A(366)/67/,A(367)/0/ % DATA L(193)/368/,A(368)/67/,A(369)/0/,L(194)/370/,A(370)/67/ % DATA A(371)/0/,L(195)/372/,A(372)/67/,A(373)/0/,L(196)/374/ % DATA A(374)/15/,A(375)/67/,A(376)/0/,L(197)/377/,A(377)/7/ % DATA A(378)/67/,A(379)/0/,L(198)/380/,A(380)/67/,A(381)/0/ % DATA L(199)/382/,A(382)/67/,A(383)/0/,L(200)/384/,A(384)/67/ % DATA A(385)/0/,L(201)/386/,A(386)/67/,A(387)/0/,L(202)/388/ % DATA A(388)/67/,A(389)/0/,L(203)/390/,A(390)/21/,A(391)/67/ % DATA A(392)/0/,L(204)/393/,A(393)/67/,A(394)/0/,L(205)/395/ % DATA A(395)/67/,A(396)/0/,L(206)/397/,A(397)/67/,A(398)/0/ % DATA L(207)/399/,A(399)/67/,A(400)/0/,L(208)/401/,A(401)/67/ % DATA A(402)/0/,L(209)/403/,A(403)/67/,A(404)/0/,L(210)/405/ % DATA A(405)/67/,A(406)/0/,L(211)/407/,A(407)/30/,A(408)/67/ % DATA A(409)/0/,L(212)/410/,A(410)/51/,A(411)/67/,A(412)/0/ % DATA L(213)/413/,A(413)/67/,A(414)/0/,L(214)/415/,A(415)/67/ % DATA A(416)/0/,L(215)/417/,A(417)/67/,A(418)/0/,L(216)/419/ % DATA A(419)/67/,A(420)/0/,L(217)/421/,A(421)/67/,A(422)/0/ % DATA L(218)/423/,A(423)/38/,A(424)/67/,A(425)/0/,L(219)/426/ % DATA A(426)/67/,A(427)/0/,L(220)/428/,A(428)/67/,A(429)/0/ % DATA L(221)/430/,A(430)/67/,A(431)/0/,L(222)/432/,A(432)/67/ % DATA A(433)/0/,L(223)/434/,A(434)/67/,A(435)/0/,L(224)/436/ % DATA A(436)/67/,A(437)/0/,L(225)/438/,A(438)/67/,A(439)/0/ % DATA L(226)/440/,A(440)/47/,A(441)/67/,A(442)/0/,L(227)/443/ % DATA A(443)/67/,A(444)/0/,L(228)/445/,A(445)/67/,A(446)/0/ % DATA L(229)/0/,L(230)/0/,L(231)/0/,L(232)/447/,A(447)/67/ % DATA A(448)/0/,L(233)/449/,A(449)/67/,A(450)/0/,L(234)/451/ % DATA A(451)/67/,A(452)/0/,L(235)/0/,L(236)/0/,L(237)/0/ % DATA L(238)/0/,L(239)/453/,A(453)/67/,A(454)/0/,L(240)/455/ % DATA A(455)/67/,A(456)/0/,L(241)/457/,A(457)/67/,A(458)/0/ % DATA L(242)/459/,A(459)/67/,A(460)/0/,L(243)/461/,A(461)/67/ % DATA A(462)/0/,L(244)/0/,L(245)/463/,A(463)/3/,A(464)/0/ % DATA L(246)/0/,L(247)/0/,L(248)/0/,L(249)/0/,L(250)/0/ % DATA L(251)/0/,L(252)/0/,L(253)/465/,A(465)/5/,A(466)/0/ % DATA L(254)/0/,L(255)/467/,A(467)/3/,A(468)/4/,A(469)/0/ % DATA L(256)/470/,A(470)/1/,A(471)/2/,A(472)/3/,A(473)/0/ % DATA L(257)/0/,L(258)/0/,L(259)/0/,L(260)/0/,L(261)/0/ % DATA L(262)/0/,L(263)/0/,L(264)/0/,L(265)/0/,L(266)/474/ % DATA A(474)/6/,A(475)/0/,L(267)/476/,A(476)/67/,A(477)/0/ % DATA L(268)/478/,A(478)/67/,A(479)/0/,L(269)/480/,A(480)/67/ % DATA A(481)/0/,L(270)/482/,A(482)/67/,A(483)/0/,L(271)/484/ % DATA A(484)/67/,A(485)/0/,L(272)/486/,A(486)/67/,A(487)/0/ % DATA L(273)/488/,A(488)/67/,A(489)/0/,L(274)/490/,A(490)/67/ % DATA A(491)/0/,L(275)/492/,A(492)/67/,A(493)/0/,L(276)/494/ % DATA A(494)/67/,A(495)/0/,L(277)/496/,A(496)/67/,A(497)/0/ % DATA L(278)/498/,A(498)/67/,A(499)/0/,L(279)/500/,A(500)/67/ % DATA A(501)/0/,L(280)/502/,A(502)/67/,A(503)/0/,L(281)/504/ % DATA A(504)/67/,A(505)/0/,L(282)/506/,A(506)/67/,A(507)/0/ % DATA L(283)/508/,A(508)/67/,A(509)/0/,L(284)/510/,A(510)/67/ % DATA A(511)/0/,L(285)/512/,A(512)/67/,A(513)/0/,L(286)/514/ % DATA A(514)/67/,A(515)/0/,L(287)/516/,A(516)/67/,A(517)/0/ % DATA L(288)/518/,A(518)/67/,A(519)/0/,L(289)/520/,A(520)/67/ % DATA A(521)/0/,L(290)/522/,A(522)/35/,A(523)/67/,A(524)/0/ % DATA L(291)/525/,A(525)/67/,A(526)/0/,L(292)/527/,A(527)/67/ % DATA A(528)/0/,L(293)/529/,A(529)/67/,A(530)/0/,L(294)/531/ % DATA A(531)/67/,A(532)/0/,L(295)/533/,A(533)/67/,A(534)/0/ % DATA L(296)/535/,A(535)/67/,A(536)/0/,L(297)/537/,A(537)/67/ % DATA A(538)/0/,L(298)/539/,A(539)/67/,A(540)/0/,L(299)/541/ % DATA A(541)/67/,A(542)/0/,L(300)/543/,A(543)/67/,A(544)/0/ % DATA L(301)/545/,A(545)/67/,A(546)/0/,L(302)/547/,A(547)/67/ % DATA A(548)/0/,L(303)/549/,A(549)/67/,A(550)/0/,L(304)/551/ % DATA A(551)/67/,A(552)/0/,L(305)/553/,A(553)/67/,A(554)/0/ % DATA L(306)/555/,A(555)/62/,A(556)/0/,L(307)/0/,L(308)/557/ % DATA A(557)/60/,A(558)/0/,L(309)/0/,L(310)/559/,A(559)/65/ % DATA A(560)/0/,L(311)/0/,L(312)/561/,A(561)/67/,A(562)/0/ % DATA L(313)/563/,A(563)/9/,A(564)/67/,A(565)/0/,L(314)/566/ % DATA A(566)/67/,A(567)/0/,L(315)/568/,A(568)/67/,A(569)/0/ % DATA L(316)/570/,A(570)/17/,A(571)/67/,A(572)/0/,L(317)/0/ % DATA L(318)/573/,A(573)/18/,A(574)/67/,A(575)/0/,L(319)/576/ % DATA A(576)/19/,A(577)/67/,A(578)/0/,L(320)/579/,A(579)/20/ % DATA A(580)/67/,A(581)/0/,L(321)/582/,A(582)/67/,A(583)/0/ % DATA L(322)/584/,A(584)/67/,A(585)/0/,L(323)/586/,A(586)/67/ % DATA A(587)/0/,L(324)/588/,A(588)/67/,A(589)/0/,L(325)/590/ % DATA A(590)/26/,A(591)/67/,A(592)/0/,L(326)/593/,A(593)/67/ % DATA A(594)/0/,L(327)/595/,A(595)/67/,A(596)/0/,L(328)/597/ % DATA A(597)/67/,A(598)/0/,L(329)/599/,A(599)/32/,A(600)/67/ % DATA A(601)/0/,L(330)/602/,A(602)/67/,A(603)/0/,L(331)/604/ % DATA A(604)/67/,A(605)/0/,L(332)/606/,A(606)/67/,A(607)/0/ % DATA L(333)/608/,A(608)/39/,A(609)/67/,A(610)/0/,L(334)/611/ % DATA A(611)/67/,A(612)/0/,L(335)/613/,A(613)/67/,A(614)/0/ % DATA L(336)/615/,A(615)/67/,A(616)/0/,L(337)/617/,A(617)/44/ % DATA A(618)/67/,A(619)/0/,L(338)/620/,A(620)/45/,A(621)/67/ % DATA A(622)/0/,L(339)/623/,A(623)/67/,A(624)/0/,L(340)/625/ % DATA A(625)/49/,A(626)/67/,A(627)/0/,L(341)/628/,A(628)/67/ % DATA A(629)/0/,L(342)/0/,L(343)/0/,L(344)/0/,L(345)/630/ % DATA A(630)/67/,A(631)/0/,L(346)/632/,A(632)/67/,A(633)/0/ % DATA L(347)/634/,A(634)/67/,A(635)/0/,L(348)/0/,L(349)/0/ % DATA L(350)/0/,L(351)/636/,A(636)/67/,A(637)/0/,L(352)/638/ % DATA A(638)/55/,A(639)/67/,A(640)/0/,L(353)/641/,A(641)/67/ % DATA A(642)/0/,L(354)/0/,L(355)/0/,L(356)/0/,L(357)/0/ % DATA L(358)/0/,L(359)/0/,L(360)/0/,L(361)/0/,L(362)/0/ % DATA L(363)/643/,A(643)/59/,A(644)/0/,L(364)/0/,L(365)/0/ % DATA L(366)/645/,A(645)/67/,A(646)/0/,L(367)/647/,A(647)/67/ % DATA A(648)/0/,L(368)/649/,A(649)/11/,A(650)/67/,A(651)/0/ % DATA L(369)/652/,A(652)/67/,A(653)/0/,L(370)/654/,A(654)/67/ % DATA A(655)/0/,L(371)/656/,A(656)/67/,A(657)/0/,L(372)/658/ % DATA A(658)/16/,A(659)/67/,A(660)/0/,L(373)/661/,A(661)/67/ % DATA A(662)/0/,L(374)/663/,A(663)/67/,A(664)/0/,L(375)/665/ % DATA A(665)/67/,A(666)/0/,L(376)/667/,A(667)/67/,A(668)/0/ % DATA L(377)/669/,A(669)/67/,A(670)/0/,L(378)/671/,A(671)/67/ % DATA A(672)/0/,L(379)/673/,A(673)/67/,A(674)/0/,L(380)/675/ % DATA A(675)/67/,A(676)/0/,L(381)/677/,A(677)/67/,A(678)/0/ % DATA L(382)/679/,A(679)/67/,A(680)/0/,L(383)/681/,A(681)/67/ % DATA A(682)/0/,L(384)/683/,A(683)/67/,A(684)/0/,L(385)/685/ % DATA A(685)/67/,A(686)/0/,L(386)/687/,A(687)/67/,A(688)/0/ % DATA L(387)/689/,A(689)/67/,A(690)/0/,L(388)/691/,A(691)/67/ % DATA A(692)/0/,L(389)/693/,A(693)/67/,A(694)/0/,L(390)/695/ % DATA A(695)/67/,A(696)/0/,L(391)/697/,A(697)/67/,A(698)/0/ % DATA L(392)/699/,A(699)/34/,A(700)/67/,A(701)/0/,L(393)/702/ % DATA A(702)/67/,A(703)/0/,L(394)/704/,A(704)/67/,A(705)/0/ % DATA L(395)/706/,A(706)/67/,A(707)/0/,L(396)/708/,A(708)/67/ % DATA A(709)/0/,L(397)/710/,A(710)/67/,A(711)/0/,L(398)/712/ % DATA A(712)/67/,A(713)/0/,L(399)/714/,A(714)/67/,A(715)/0/ % DATA L(400)/716/,A(716)/67/,A(717)/0/,L(401)/718/,A(718)/67/ % DATA A(719)/0/,L(402)/720/,A(720)/67/,A(721)/0/,L(403)/722/ % DATA A(722)/67/,A(723)/0/,L(404)/724/,A(724)/48/,A(725)/67/ % DATA A(726)/0/,L(405)/727/,A(727)/67/,A(728)/0/,L(406)/729/ % DATA A(729)/67/,A(730)/0/,L(407)/731/,A(731)/67/,A(732)/0/ % DATA L(408)/0/,L(409)/733/,A(733)/63/,A(734)/0/,L(410)/0/ % DATA L(411)/735/,A(735)/8/,A(736)/67/,A(737)/0/,L(412)/738/ % DATA A(738)/67/,A(739)/0/,L(413)/740/,A(740)/12/,A(741)/67/ % DATA A(742)/0/,L(414)/743/,A(743)/67/,A(744)/0/,L(415)/745/ % DATA A(745)/67/,A(746)/0/,L(416)/0/,L(417)/747/,A(747)/22/ % DATA A(748)/67/,A(749)/0/,L(418)/750/,A(750)/23/,A(751)/67/ % DATA A(752)/0/,L(419)/753/,A(753)/24/,A(754)/67/,A(755)/0/ % DATA L(420)/756/,A(756)/25/,A(757)/67/,A(758)/0/,L(421)/759/ % DATA A(759)/67/,A(760)/0/,L(422)/761/,A(761)/28/,A(762)/67/ % DATA A(763)/0/,L(423)/764/,A(764)/29/,A(765)/67/,A(766)/0/ % DATA L(424)/767/,A(767)/31/,A(768)/67/,A(769)/0/,L(425)/770/ % DATA A(770)/67/,A(771)/0/,L(426)/772/,A(772)/67/,A(773)/0/ % DATA L(427)/774/,A(774)/37/,A(775)/67/,A(776)/0/,L(428)/777/ % DATA A(777)/40/,A(778)/67/,A(779)/0/,L(429)/780/,A(780)/41/ % DATA A(781)/67/,A(782)/0/,L(430)/783/,A(783)/42/,A(784)/67/ % DATA A(785)/0/,L(431)/786/,A(786)/67/,A(787)/0/,L(432)/788/ % DATA A(788)/46/,A(789)/67/,A(790)/0/,L(433)/791/,A(791)/67/ % DATA A(792)/0/,L(434)/0/,L(435)/0/,L(436)/0/,L(437)/0/ % DATA L(438)/793/,A(793)/67/,A(794)/0/,L(439)/795/,A(795)/67/ % DATA A(796)/0/,L(440)/0/,L(441)/797/,A(797)/55/,A(798)/0/ % DATA L(442)/0/,L(443)/799/,A(799)/67/,A(800)/0/,L(444)/801/ % DATA A(801)/67/,A(802)/0/,L(445)/0/,L(446)/0/,L(447)/0/ % DATA L(448)/0/,L(449)/0/,L(450)/0/,L(451)/0/,L(452)/0/ % DATA L(453)/0/,L(454)/803/,A(803)/67/,A(804)/0/,L(455)/805/ % DATA A(805)/67/,A(806)/0/,L(456)/807/,A(807)/67/,A(808)/0/ % DATA L(457)/809/,A(809)/67/,A(810)/0/,L(458)/811/,A(811)/15/ % DATA A(812)/67/,A(813)/0/,L(459)/814/,A(814)/7/,A(815)/67/ % DATA A(816)/0/,L(460)/817/,A(817)/67/,A(818)/0/,L(461)/819/ % DATA A(819)/67/,A(820)/0/,L(462)/821/,A(821)/67/,A(822)/0/ % DATA L(463)/823/,A(823)/67/,A(824)/0/,L(464)/825/,A(825)/67/ % DATA A(826)/0/,L(465)/827/,A(827)/21/,A(828)/67/,A(829)/0/ % DATA L(466)/830/,A(830)/67/,A(831)/0/,L(467)/832/,A(832)/67/ % DATA A(833)/0/,L(468)/834/,A(834)/67/,A(835)/0/,L(469)/836/ % DATA A(836)/67/,A(837)/0/,L(470)/838/,A(838)/67/,A(839)/0/ % DATA L(471)/840/,A(840)/67/,A(841)/0/,L(472)/842/,A(842)/67/ % DATA A(843)/0/,L(473)/844/,A(844)/30/,A(845)/67/,A(846)/0/ % DATA L(474)/847/,A(847)/51/,A(848)/67/,A(849)/0/,L(475)/850/ % DATA A(850)/67/,A(851)/0/,L(476)/852/,A(852)/67/,A(853)/0/ % DATA L(477)/854/,A(854)/67/,A(855)/0/,L(478)/856/,A(856)/67/ % DATA A(857)/0/,L(479)/858/,A(858)/67/,A(859)/0/,L(480)/860/ % DATA A(860)/38/,A(861)/67/,A(862)/0/,L(481)/863/,A(863)/67/ % DATA A(864)/0/,L(482)/865/,A(865)/67/,A(866)/0/,L(483)/867/ % DATA A(867)/67/,A(868)/0/,L(484)/869/,A(869)/67/,A(870)/0/ % DATA L(485)/871/,A(871)/67/,A(872)/0/,L(486)/873/,A(873)/67/ % DATA A(874)/0/,L(487)/875/,A(875)/67/,A(876)/0/,L(488)/877/ % DATA A(877)/67/,A(878)/0/,L(489)/879/,A(879)/47/,A(880)/67/ % DATA A(881)/0/,L(490)/882/,A(882)/67/,A(883)/0/,L(491)/884/ % DATA A(884)/67/,A(885)/0/,L(492)/886/,A(886)/67/,A(887)/0/ % DATA L(493)/0/,L(494)/0/,L(495)/888/,A(888)/67/,A(889)/0/ % DATA L(496)/890/,A(890)/67/,A(891)/0/,L(497)/892/,A(892)/67/ % DATA A(893)/0/,L(498)/0/,L(499)/894/,A(894)/27/,A(895)/67/ % DATA A(896)/0/,L(500)/897/,A(897)/33/,A(898)/67/,A(899)/0/ % DATA L(501)/900/,A(900)/36/,A(901)/67/,A(902)/0/,L(502)/903/ % DATA A(903)/43/,A(904)/67/,A(905)/0/,L(503)/906/,A(906)/67/ % DATA A(907)/0/,L(504)/0/,L(505)/0/,L(506)/0/,L(507)/0/ % DATA L(508)/908/,A(908)/67/,A(909)/0/,L(509)/910/,A(910)/67/ % DATA A(911)/0/,L(510)/0/,L(511)/0/,L(512)/0/,L(513)/0/ % DATA L(514)/912/,A(912)/54/,A(913)/0/,L(515)/914/,A(914)/67/ % DATA A(915)/0/,L(516)/0/,L(517)/0/,L(518)/0/,L(519)/916/ % DATA A(916)/62/,A(917)/0/,L(520)/0/,L(521)/918/,A(918)/60/ % DATA A(919)/0/,L(522)/0/,L(523)/920/,A(920)/65/,A(921)/0/ % DATA L(524)/0/,L(525)/922/,A(922)/67/,A(923)/0/,L(526)/924/ % DATA A(924)/9/,A(925)/67/,A(926)/0/,L(527)/927/,A(927)/67/ % DATA A(928)/0/,L(528)/929/,A(929)/67/,A(930)/0/,L(529)/931/ % DATA A(931)/17/,A(932)/67/,A(933)/0/,L(530)/0/,L(531)/934/ % DATA A(934)/18/,A(935)/67/,A(936)/0/,L(532)/937/,A(937)/19/ % DATA A(938)/67/,A(939)/0/,L(533)/940/,A(940)/20/,A(941)/67/ % DATA A(942)/0/,L(534)/943/,A(943)/67/,A(944)/0/,L(535)/945/ % DATA A(945)/67/,A(946)/0/,L(536)/947/,A(947)/67/,A(948)/0/ % DATA L(537)/949/,A(949)/67/,A(950)/0/,L(538)/951/,A(951)/26/ % DATA A(952)/67/,A(953)/0/,L(539)/954/,A(954)/67/,A(955)/0/ % DATA L(540)/956/,A(956)/67/,A(957)/0/,L(541)/958/,A(958)/67/ % DATA A(959)/0/,L(542)/960/,A(960)/32/,A(961)/67/,A(962)/0/ % DATA L(543)/963/,A(963)/67/,A(964)/0/,L(544)/965/,A(965)/67/ % DATA A(966)/0/,L(545)/967/,A(967)/67/,A(968)/0/,L(546)/969/ % DATA A(969)/67/,A(970)/0/,L(547)/971/,A(971)/39/,A(972)/67/ % DATA A(973)/0/,L(548)/974/,A(974)/67/,A(975)/0/,L(549)/976/ % DATA A(976)/67/,A(977)/0/,L(550)/978/,A(978)/67/,A(979)/0/ % DATA L(551)/980/,A(980)/44/,A(981)/67/,A(982)/0/,L(552)/983/ % DATA A(983)/45/,A(984)/67/,A(985)/0/,L(553)/986/,A(986)/67/ % DATA A(987)/0/,L(554)/988/,A(988)/49/,A(989)/67/,A(990)/0/ % DATA L(555)/991/,A(991)/67/,A(992)/0/,L(556)/993/,A(993)/67/ % DATA A(994)/0/,L(557)/0/,L(558)/0/,L(559)/995/,A(995)/67/ % DATA A(996)/0/,L(560)/997/,A(997)/67/,A(998)/0/,L(561)/999/ % DATA A(999)/67/,A(1000)/0/,L(562)/0/,L(563)/1001/,A(1001)/67/ % DATA A(1002)/0/,L(564)/0/,L(565)/0/,L(566)/0/,L(567)/1003/ % DATA A(1003)/67/,A(1004)/0/,L(568)/1005/,A(1005)/67/,A(1006)/0/ % DATA L(569)/0/,L(570)/0/,L(571)/0/,L(572)/0/,L(573)/0/ % DATA L(574)/0/,L(575)/1007/,A(1007)/63/,A(1008)/0/,L(576)/0/ % DATA L(577)/1009/,A(1009)/8/,A(1010)/67/,A(1011)/0/ % DATA L(578)/1012/,A(1012)/67/,A(1013)/0/,L(579)/1014/ % DATA A(1014)/12/,A(1015)/67/,A(1016)/0/,L(580)/1017/ % DATA A(1017)/67/,A(1018)/0/,L(581)/1019/,A(1019)/67/,A(1020)/0/ % DATA L(582)/0/,L(583)/0/,L(584)/1021/,A(1021)/22/,A(1022)/67/ % DATA A(1023)/0/,L(585)/1024/,A(1024)/23/,A(1025)/67/,A(1026)/0/ % DATA L(586)/1027/,A(1027)/24/,A(1028)/67/,A(1029)/0/ % DATA L(587)/1030/,A(1030)/25/,A(1031)/67/,A(1032)/0/ % DATA L(588)/1033/,A(1033)/67/,A(1034)/0/,L(589)/1035/ % DATA A(1035)/28/,A(1036)/67/,A(1037)/0/,L(590)/1038/ % DATA A(1038)/29/,A(1039)/67/,A(1040)/0/,L(591)/1041/ % DATA A(1041)/31/,A(1042)/67/,A(1043)/0/,L(592)/1044/ % DATA A(1044)/67/,A(1045)/0/,L(593)/1046/,A(1046)/67/,A(1047)/0/ % DATA L(594)/1048/,A(1048)/37/,A(1049)/67/,A(1050)/0/ % DATA L(595)/1051/,A(1051)/67/,A(1052)/0/,L(596)/1053/ % DATA A(1053)/40/,A(1054)/67/,A(1055)/0/,L(597)/1056/ % DATA A(1056)/41/,A(1057)/67/,A(1058)/0/,L(598)/1059/ % DATA A(1059)/42/,A(1060)/67/,A(1061)/0/,L(599)/1062/ % DATA A(1062)/67/,A(1063)/0/,L(600)/1064/,A(1064)/46/ % DATA A(1065)/67/,A(1066)/0/,L(601)/1067/,A(1067)/67/,A(1068)/0/ % DATA L(602)/1069/,A(1069)/67/,A(1070)/0/,L(603)/1071/ % DATA A(1071)/61/,A(1072)/0/,L(604)/0/,L(605)/1073/,A(1073)/10/ % DATA A(1074)/67/,A(1075)/0/,L(606)/1076/,A(1076)/13/ % DATA A(1077)/67/,A(1078)/0/,L(607)/1079/,A(1079)/14/ % DATA A(1080)/67/,A(1081)/0/,L(608)/0/,L(609)/1082/,A(1082)/50/ % DATA A(1083)/67/,A(1084)/0/,L(610)/0/,L(611)/0/,L(612)/0/ % DATA L(613)/0/,L(614)/0/,L(615)/0/,L(616)/0/,L(617)/0/ % DATA L(618)/0/,L(619)/0/,L(620)/0/,L(621)/1085/,A(1085)/67/ % DATA A(1086)/0/,L(622)/1087/,A(1087)/67/,A(1088)/0/ % DATA L(623)/1089/,A(1089)/67/,A(1090)/0/,L(624)/0/,L(625)/0/ % DATA L(626)/1091/,A(1091)/27/,A(1092)/67/,A(1093)/0/ % DATA L(627)/1094/,A(1094)/33/,A(1095)/67/,A(1096)/0/ % DATA L(628)/1097/,A(1097)/36/,A(1098)/67/,A(1099)/0/ % DATA L(629)/1100/,A(1100)/67/,A(1101)/0/,L(630)/1102/ % DATA A(1102)/43/,A(1103)/67/,A(1104)/0/,L(631)/1105/ % DATA A(1105)/67/,A(1106)/0/,L(632)/1107/,A(1107)/67/,A(1108)/0/ % DATA L(633)/0/,L(634)/0/,L(635)/0/,L(636)/1109/,A(1109)/58/ % DATA A(1110)/0/,L(637)/1111/,A(1111)/66/,A(1112)/0/ % DATA L(638)/1113/,A(1113)/66/,A(1114)/0/,L(639)/0/,L(640)/0/ % DATA L(641)/0/,L(642)/0/,L(643)/0/,L(644)/0/,L(645)/1115/ % DATA A(1115)/67/,A(1116)/0/,L(646)/1117/,A(1117)/67/,A(1118)/0/ % DATA L(647)/1119/,A(1119)/67/,A(1120)/0/,L(648)/0/,L(649)/0/ % DATA L(650)/0/,L(651)/1121/,A(1121)/67/,A(1122)/0/,L(652)/0/ % DATA L(653)/0/,L(654)/1123/,A(1123)/56/,A(1124)/0/,L(655)/0/ % DATA L(656)/1125/,A(1125)/66/,A(1126)/0/,L(657)/0/,L(658)/0/ % DATA L(659)/1127/,A(1127)/61/,A(1128)/0/,L(660)/0/,L(661)/1129/ % DATA A(1129)/10/,A(1130)/67/,A(1131)/0/,L(662)/1132/ % DATA A(1132)/13/,A(1133)/67/,A(1134)/0/,L(663)/1135/ % DATA A(1135)/14/,A(1136)/67/,A(1137)/0/,L(664)/0/,L(665)/0/ % DATA L(666)/1138/,A(1138)/58/,A(1139)/0/,L(667)/1140/ % DATA A(1140)/50/,A(1141)/67/,A(1142)/0/,L(668)/1143/ % DATA A(1143)/66/,A(1144)/0/,L(669)/1145/,A(1145)/66/,A(1146)/0/ % DATA L(670)/0/,L(671)/0/,L(672)/1147/,A(1147)/53/,A(1148)/0/ % DATA L(673)/1149/,A(1149)/66/,A(1150)/0/,L(674)/0/,L(675)/0/ % DATA L(676)/0/,L(677)/0/,L(678)/0/,L(679)/1151/,A(1151)/66/ % DATA A(1152)/0/,L(680)/0/,L(681)/1153/,A(1153)/66/,A(1154)/0/ % DATA L(682)/0/,L(683)/1155/,A(1155)/56/,A(1156)/0/,L(684)/0/ % DATA L(685)/0/,L(686)/1157/,A(1157)/3/,A(1158)/53/,A(1159)/0/ % DATA L(687)/1160/,A(1160)/56/,A(1161)/0/,L(688)/1162/ % DATA A(1162)/66/,A(1163)/0/,L(689)/1164/,A(1164)/64/,A(1165)/0/ % DATA L(690)/1166/,A(1166)/66/,A(1167)/0/,L(691)/0/,L(692)/0/ % DATA L(693)/1168/,A(1168)/52/,A(1169)/0/,L(694)/0/,L(695)/1170/ % DATA A(1170)/66/,A(1171)/0/,L(696)/1172/,A(1172)/66/,A(1173)/0/ % DATA L(697)/0/,L(698)/1174/,A(1174)/66/,A(1175)/0/,L(699)/1176/ % DATA A(1176)/66/,A(1177)/0/,L(700)/1178/,A(1178)/64/,A(1179)/0/ % DATA L(701)/1180/,A(1180)/66/,A(1181)/0/,L(702)/0/,L(703)/0/ % DATA L(704)/1182/,A(1182)/57/,A(1183)/0/,L(705)/1184/ % DATA A(1184)/66/,A(1185)/0/,L(706)/1186/,A(1186)/66/,A(1187)/0/ % DATA L(707)/0/,L(708)/0/,L(709)/1188/,A(1188)/3/,A(1189)/57/ % DATA A(1190)/0/,L(710)/1191/,A(1191)/66/,A(1192)/0/ % DATA E(1)/1/,E(2)/1/,E(3)/1/,E(4)/1/,E(5)/1/,E(6)/1/,E(7)/1/ % DATA E(8)/1/,E(9)/2/,E(10)/3/,E(11)/1/,E(12)/1/,E(13)/1/ % DATA E(14)/1/,E(15)/1/,E(16)/1/,E(17)/1/,E(18)/1/,E(19)/1/ % DATA E(20)/1/,E(21)/1/,E(22)/1/,E(23)/1/,E(24)/1/,E(25)/1/ % DATA E(26)/1/,E(27)/1/,E(28)/1/,E(29)/1/,E(30)/1/,E(31)/1/ % DATA E(32)/2/,E(33)/1/,E(34)/4/,E(35)/5/,E(36)/6/,E(37)/7/ % DATA E(38)/1/,E(39)/8/,E(40)/9/,E(41)/10/,E(42)/1/,E(43)/1/ % DATA E(44)/1/,E(45)/1/,E(46)/11/,E(47)/1/,E(48)/12/,E(49)/12/ % DATA E(50)/12/,E(51)/12/,E(52)/13/,E(53)/12/,E(54)/12/ % DATA E(55)/12/,E(56)/12/,E(57)/12/,E(58)/1/,E(59)/1/,E(60)/1/ % DATA E(61)/1/,E(62)/1/,E(63)/1/,E(64)/1/,E(65)/14/,E(66)/15/ % DATA E(67)/16/,E(68)/17/,E(69)/18/,E(70)/19/,E(71)/20/ % DATA E(72)/21/,E(73)/22/,E(74)/23/,E(75)/24/,E(76)/25/ % DATA E(77)/26/,E(78)/27/,E(79)/28/,E(80)/29/,E(81)/30/ % DATA E(82)/31/,E(83)/32/,E(84)/33/,E(85)/34/,E(86)/35/ % DATA E(87)/36/,E(88)/23/,E(89)/23/,E(90)/23/,E(91)/37/,E(92)/1/ % DATA E(93)/38/,E(94)/1/,E(95)/6/,E(96)/1/,E(97)/39/,E(98)/40/ % DATA E(99)/41/,E(100)/42/,E(101)/43/,E(102)/44/,E(103)/45/ % DATA E(104)/46/,E(105)/47/,E(106)/46/,E(107)/48/,E(108)/49/ % DATA E(109)/50/,E(110)/51/,E(111)/52/,E(112)/53/,E(113)/54/ % DATA E(114)/55/,E(115)/56/,E(116)/57/,E(117)/58/,E(118)/46/ % DATA E(119)/46/,E(120)/46/,E(121)/59/,E(122)/46/,E(123)/1/ % DATA E(124)/1/,E(125)/1/,E(126)/1/,E(127)/1/,E(128)/127/ % DATA E(129)/60/,E(130)/61/,E(131)/62/,E(132)/63/ % DATA M(1)/1/,M(2)/2/,M(3)/3/,M(4)/1/,M(5)/1/,M(6)/4/,M(7)/1/ % DATA M(8)/1/,M(9)/1/,M(10)/1/,M(11)/1/,M(12)/4/,M(13)/4/ % DATA M(14)/5/,M(15)/5/,M(16)/5/,M(17)/5/,M(18)/5/,M(19)/5/ % DATA M(20)/5/,M(21)/5/,M(22)/5/,M(23)/5/,M(24)/5/,M(25)/5/ % DATA M(26)/5/,M(27)/5/,M(28)/5/,M(29)/5/,M(30)/5/,M(31)/5/ % DATA M(32)/5/,M(33)/5/,M(34)/5/,M(35)/5/,M(36)/5/,M(37)/1/ % DATA M(38)/1/,M(39)/5/,M(40)/5/,M(41)/5/,M(42)/5/,M(43)/5/ % DATA M(44)/5/,M(45)/5/,M(46)/5/,M(47)/5/,M(48)/5/,M(49)/5/ % DATA M(50)/5/,M(51)/5/,M(52)/5/,M(53)/5/,M(54)/5/,M(55)/5/ % DATA M(56)/5/,M(57)/5/,M(58)/5/,M(59)/5/,M(60)/6/,M(61)/6/ % DATA M(62)/6/,M(63)/6/ % DATA B(1)/0/,D(1)/711/,B(2)/2316/,D(2)/711/,B(3)/2316/ % DATA D(3)/711/,B(4)/1929/,D(4)/712/,B(5)/1929/,D(5)/713/ % DATA B(6)/46/,D(6)/711/,B(7)/1923/,D(7)/714/,B(8)/49/,D(8)/715/ % DATA B(9)/52/,D(9)/715/,B(10)/53/,D(10)/715/,B(11)/56/ % DATA D(11)/715/,B(12)/39/,D(12)/715/,B(13)/0/,D(13)/715/ % DATA B(14)/1899/,D(14)/715/,B(15)/65/,D(15)/715/,B(16)/1907/ % DATA D(16)/715/,B(17)/72/,D(17)/715/,B(18)/1897/,D(18)/715/ % DATA B(19)/54/,D(19)/715/,B(20)/1901/,D(20)/715/,B(21)/58/ % DATA D(21)/715/,B(22)/78/,D(22)/715/,B(23)/87/,D(23)/715/ % DATA B(24)/1899/,D(24)/715/,B(25)/74/,D(25)/715/,B(26)/2316/ % DATA D(26)/711/,B(27)/112/,D(27)/1/,B(28)/44/,D(28)/1/ % DATA B(29)/54/,D(29)/1/,B(30)/1921/,D(30)/712/,B(31)/2316/ % DATA D(31)/711/,B(32)/1909/,D(32)/713/,B(33)/2316/,D(33)/711/ % DATA B(34)/85/,D(34)/711/,B(35)/76/,D(35)/711/,B(36)/1860/ % DATA D(36)/711/,B(37)/96/,D(37)/711/,B(38)/1858/,D(38)/711/ % DATA B(39)/1854/,D(39)/711/,B(40)/1860/,D(40)/711/,B(41)/1856/ % DATA D(41)/711/,B(42)/1898/,D(42)/714/,B(43)/2316/,D(43)/711/ % DATA B(44)/0/,D(44)/715/,B(45)/1889/,D(45)/715/,B(46)/1875/ % DATA D(46)/715/,B(47)/1886/,D(47)/715/,B(48)/1870/,D(48)/715/ % DATA B(49)/102/,D(49)/715/,B(50)/1881/,D(50)/715/,B(51)/1886/ % DATA D(51)/715/,B(52)/106/,D(52)/715/,B(53)/101/,D(53)/715/ % DATA B(54)/97/,D(54)/715/,B(55)/1867/,D(55)/715/,B(56)/1873/ % DATA D(56)/715/,B(57)/1863/,D(57)/715/,B(58)/1862/,D(58)/715/ % DATA B(59)/1879/,D(59)/715/,B(60)/121/,D(60)/715/,B(61)/1863/ % DATA D(61)/715/,B(62)/110/,D(62)/715/,B(63)/1879/,D(63)/715/ % DATA B(64)/1865/,D(64)/715/,B(65)/1855/,D(65)/715/,B(66)/1857/ % DATA D(66)/715/,B(67)/0/,D(67)/715/,B(68)/1858/,D(68)/715/ % DATA B(69)/1854/,D(69)/715/,B(70)/1868/,D(70)/715/,B(71)/1843/ % DATA D(71)/715/,B(72)/1859/,D(72)/715/,B(73)/1846/,D(73)/715/ % DATA B(74)/1857/,D(74)/715/,B(75)/1856/,D(75)/715/,B(76)/1835/ % DATA D(76)/715/,B(77)/1854/,D(77)/715/,B(78)/1852/,D(78)/715/ % DATA B(79)/1841/,D(79)/715/,B(80)/1848/,D(80)/715/,B(81)/150/ % DATA D(81)/711/,B(82)/202/,D(82)/711/,B(83)/165/,D(83)/711/ % DATA B(84)/130/,D(84)/715/,B(85)/158/,D(85)/715/,B(86)/146/ % DATA D(86)/715/,B(87)/1813/,D(87)/715/,B(88)/99/,D(88)/715/ % DATA B(89)/166/,D(89)/27/,B(90)/260/,D(90)/711/,B(91)/100/ % DATA D(91)/711/,B(92)/144/,D(92)/711/,B(93)/1861/,D(93)/711/ % DATA B(94)/1820/,D(94)/711/,B(95)/1803/,D(95)/711/,B(96)/1803/ % DATA D(96)/711/,B(97)/2316/,D(97)/711/,B(98)/1812/,D(98)/711/ % DATA B(99)/1816/,D(99)/711/,B(100)/1839/,D(100)/715/ % DATA B(101)/1838/,D(101)/715/,B(102)/0/,D(102)/715/ % DATA B(103)/1833/,D(103)/715/,B(104)/1830/,D(104)/715/ % DATA B(105)/1833/,D(105)/715/,B(106)/0/,D(106)/715/ % DATA B(107)/1846/,D(107)/716/,B(108)/1824/,D(108)/715/ % DATA B(109)/115/,D(109)/715/,B(110)/1832/,D(110)/715/ % DATA B(111)/1816/,D(111)/715/,B(112)/1811/,D(112)/715/ % DATA B(113)/1815/,D(113)/715/,B(114)/1810/,D(114)/715/ % DATA B(115)/1806/,D(115)/715/,B(116)/1819/,D(116)/715/ % DATA B(117)/1818/,D(117)/715/,B(118)/1796/,D(118)/715/ % DATA B(119)/1816/,D(119)/715/,B(120)/1815/,D(120)/715/ % DATA B(121)/1796/,D(121)/715/,B(122)/307/,D(122)/715/ % DATA B(123)/1796/,D(123)/715/,B(124)/1792/,D(124)/715/ % DATA B(125)/1800/,D(125)/715/,B(126)/0/,D(126)/715/,B(127)/171/ % DATA D(127)/715/,B(128)/1792/,D(128)/715/,B(129)/1792/ % DATA D(129)/715/,B(130)/1808/,D(130)/715/,B(131)/1786/ % DATA D(131)/715/,B(132)/1794/,D(132)/715/,B(133)/1784/ % DATA D(133)/715/,B(134)/1782/,D(134)/715/,B(135)/1785/ % DATA D(135)/715/,B(136)/1781/,D(136)/715/,B(137)/0/,D(137)/715/ % DATA B(138)/1794/,D(138)/715/,B(139)/1792/,D(139)/715/ % DATA B(140)/342/,D(140)/711/,B(141)/146/,D(141)/711/ % DATA B(142)/198/,D(142)/711/,B(143)/156/,D(143)/711/ % DATA B(144)/141/,D(144)/711/,B(145)/1758/,D(145)/711/ % DATA B(146)/2316/,D(146)/711/,B(147)/163/,D(147)/715/ % DATA B(148)/167/,D(148)/715/,B(149)/171/,D(149)/715/ % DATA B(150)/1766/,D(150)/715/,B(151)/394/,D(151)/711/ % DATA B(152)/187/,D(152)/715/,B(153)/200/,D(153)/715/ % DATA B(154)/327/,D(154)/715/,B(155)/194/,D(155)/715/ % DATA B(156)/191/,D(156)/715/,B(157)/186/,D(157)/715/ % DATA B(158)/1803/,D(158)/717/,B(159)/449/,D(159)/717/ % DATA B(160)/2316/,D(160)/711/,B(161)/225/,D(161)/718/ % DATA B(162)/1802/,D(162)/719/,B(163)/501/,D(163)/717/ % DATA B(164)/228/,D(164)/720/,B(165)/361/,D(165)/717/ % DATA B(166)/559/,D(166)/721/,B(167)/597/,D(167)/721/ % DATA B(168)/337/,D(168)/167/,B(169)/342/,D(169)/167/ % DATA B(170)/368/,D(170)/167/,B(171)/230/,D(171)/167/ % DATA B(172)/366/,D(172)/167/,B(173)/399/,D(173)/167/ % DATA B(174)/234/,D(174)/167/,B(175)/397/,D(175)/167/ % DATA B(176)/417/,D(176)/167/,B(177)/418/,D(177)/167/ % DATA B(178)/432/,D(178)/167/,B(179)/445/,D(179)/167/ % DATA B(180)/450/,D(180)/167/,B(181)/441/,D(181)/167/ % DATA B(182)/462/,D(182)/167/,B(183)/472/,D(183)/167/ % DATA B(184)/463/,D(184)/167/,B(185)/484/,D(185)/167/ % DATA B(186)/203/,D(186)/711/,B(187)/203/,D(187)/711/ % DATA B(188)/1802/,D(188)/722/,B(189)/1764/,D(189)/711/ % DATA B(190)/1749/,D(190)/711/,B(191)/1758/,D(191)/711/ % DATA B(192)/1773/,D(192)/715/,B(193)/1768/,D(193)/715/ % DATA B(194)/1778/,D(194)/715/,B(195)/1764/,D(195)/715/ % DATA B(196)/0/,D(196)/715/,B(197)/0/,D(197)/715/,B(198)/1756/ % DATA D(198)/715/,B(199)/1777/,D(199)/715/,B(200)/1745/ % DATA D(200)/715/,B(201)/1749/,D(201)/715/,B(202)/1754/ % DATA D(202)/715/,B(203)/0/,D(203)/715/,B(204)/1753/,D(204)/715/ % DATA B(205)/1733/,D(205)/715/,B(206)/1740/,D(206)/715/ % DATA B(207)/1734/,D(207)/715/,B(208)/1742/,D(208)/715/ % DATA B(209)/1726/,D(209)/715/,B(210)/1742/,D(210)/715/ % DATA B(211)/0/,D(211)/715/,B(212)/0/,D(212)/715/,B(213)/1724/ % DATA D(213)/715/,B(214)/1709/,D(214)/715/,B(215)/1681/ % DATA D(215)/715/,B(216)/1679/,D(216)/715/,B(217)/1654/ % DATA D(217)/715/,B(218)/0/,D(218)/715/,B(219)/1656/,D(219)/715/ % DATA B(220)/1649/,D(220)/715/,B(221)/1639/,D(221)/715/ % DATA B(222)/1634/,D(222)/715/,B(223)/1618/,D(223)/715/ % DATA B(224)/1610/,D(224)/715/,B(225)/1596/,D(225)/715/ % DATA B(226)/0/,D(226)/715/,B(227)/1607/,D(227)/715/ % DATA B(228)/1591/,D(228)/715/,B(229)/336/,D(229)/711/ % DATA B(230)/340/,D(230)/711/,B(231)/1569/,D(231)/711/ % DATA B(232)/350/,D(232)/715/,B(233)/333/,D(233)/715/ % DATA B(234)/1559/,D(234)/715/,B(235)/0/,D(235)/151/,B(236)/355/ % DATA D(236)/711/,B(237)/352/,D(237)/711/,B(238)/348/ % DATA D(238)/711/,B(239)/468/,D(239)/715/,B(240)/384/ % DATA D(240)/715/,B(241)/387/,D(241)/715/,B(242)/477/ % DATA D(242)/715/,B(243)/392/,D(243)/715/,B(244)/1600/ % DATA D(244)/717/,B(245)/2316/,D(245)/711/,B(246)/634/ % DATA D(246)/717/,B(247)/232/,D(247)/717/,B(248)/530/ % DATA D(248)/717/,B(249)/498/,D(249)/717/,B(250)/476/ % DATA D(250)/717/,B(251)/187/,D(251)/717/,B(252)/343/ % DATA D(252)/718/,B(253)/1593/,D(253)/717/,B(254)/1586/ % DATA D(254)/719/,B(255)/2316/,D(255)/711/,B(256)/2316/ % DATA D(256)/711/,B(257)/531/,D(257)/717/,B(258)/497/ % DATA D(258)/717/,B(259)/383/,D(259)/717/,B(260)/591/ % DATA D(260)/717/,B(261)/466/,D(261)/717/,B(262)/363/ % DATA D(262)/717/,B(263)/199/,D(263)/717/,B(264)/479/ % DATA D(264)/717/,B(265)/505/,D(265)/720/,B(266)/1584/ % DATA D(266)/717/,B(267)/513/,D(267)/167/,B(268)/562/ % DATA D(268)/167/,B(269)/595/,D(269)/167/,B(270)/634/ % DATA D(270)/167/,B(271)/601/,D(271)/167/,B(272)/639/ % DATA D(272)/167/,B(273)/607/,D(273)/167/,B(274)/635/ % DATA D(274)/167/,B(275)/640/,D(275)/167/,B(276)/654/ % DATA D(276)/167/,B(277)/660/,D(277)/167/,B(278)/669/ % DATA D(278)/167/,B(279)/670/,D(279)/167/,B(280)/674/ % DATA D(280)/167/,B(281)/688/,D(281)/167/,B(282)/689/ % DATA D(282)/167/,B(283)/698/,D(283)/167/,B(284)/693/ % DATA D(284)/167/,B(285)/703/,D(285)/167/,B(286)/705/ % DATA D(286)/167/,B(287)/707/,D(287)/167/,B(288)/717/ % DATA D(288)/167/,B(289)/719/,D(289)/167/,B(290)/723/ % DATA D(290)/167/,B(291)/724/,D(291)/167/,B(292)/729/ % DATA D(292)/167/,B(293)/736/,D(293)/167/,B(294)/743/ % DATA D(294)/167/,B(295)/745/,D(295)/167/,B(296)/752/ % DATA D(296)/167/,B(297)/757/,D(297)/167/,B(298)/759/ % DATA D(298)/167/,B(299)/764/,D(299)/167/,B(300)/771/ % DATA D(300)/167/,B(301)/773/,D(301)/167/,B(302)/777/ % DATA D(302)/167/,B(303)/786/,D(303)/167/,B(304)/787/ % DATA D(304)/167/,B(305)/792/,D(305)/167/,B(306)/473/ % DATA D(306)/711/,B(307)/503/,D(307)/711/,B(308)/577/ % DATA D(308)/722/,B(309)/1496/,D(309)/711/,B(310)/2316/ % DATA D(310)/711/,B(311)/1489/,D(311)/711/,B(312)/1496/ % DATA D(312)/715/,B(313)/1495/,D(313)/715/,B(314)/1493/ % DATA D(314)/715/,B(315)/496/,D(315)/715/,B(316)/0/,D(316)/715/ % DATA B(317)/591/,D(317)/711/,B(318)/0/,D(318)/715/,B(319)/0/ % DATA D(319)/715/,B(320)/0/,D(320)/715/,B(321)/1486/,D(321)/715/ % DATA B(322)/1493/,D(322)/715/,B(323)/1476/,D(323)/715/ % DATA B(324)/1480/,D(324)/715/,B(325)/0/,D(325)/715/ % DATA B(326)/1470/,D(326)/715/,B(327)/527/,D(327)/715/ % DATA B(328)/1459/,D(328)/715/,B(329)/0/,D(329)/715/ % DATA B(330)/1433/,D(330)/715/,B(331)/1431/,D(331)/715/ % DATA B(332)/1432/,D(332)/715/,B(333)/0/,D(333)/715/,B(334)/531/ % DATA D(334)/715/,B(335)/1404/,D(335)/715/,B(336)/1400/ % DATA D(336)/715/,B(337)/0/,D(337)/715/,B(338)/0/,D(338)/715/ % DATA B(339)/1397/,D(339)/715/,B(340)/0/,D(340)/715/ % DATA B(341)/1387/,D(341)/715/,B(342)/501/,D(342)/711/ % DATA B(343)/583/,D(343)/711/,B(344)/1354/,D(344)/711/ % DATA B(345)/1399/,D(345)/715/,B(346)/557/,D(346)/715/ % DATA B(347)/1341/,D(347)/715/,B(348)/618/,D(348)/711/ % DATA B(349)/597/,D(349)/711/,B(350)/641/,D(350)/711/ % DATA B(351)/648/,D(351)/715/,B(352)/0/,D(352)/715/,B(353)/727/ % DATA D(353)/715/,B(354)/769/,D(354)/717/,B(355)/787/ % DATA D(355)/717/,B(356)/533/,D(356)/717/,B(357)/794/ % DATA D(357)/717/,B(358)/804/,D(358)/717/,B(359)/570/ % DATA D(359)/717/,B(360)/450/,D(360)/717/,B(361)/507/ % DATA D(361)/717/,B(362)/424/,D(362)/717/,B(363)/1379/ % DATA D(363)/717/,B(364)/578/,D(364)/717/,B(365)/588/ % DATA D(365)/717/,B(366)/802/,D(366)/167/,B(367)/816/ % DATA D(367)/167/,B(368)/815/,D(368)/167/,B(369)/822/ % DATA D(369)/167/,B(370)/829/,D(370)/167/,B(371)/835/ % DATA D(371)/167/,B(372)/834/,D(372)/167/,B(373)/860/ % DATA D(373)/723/,B(374)/858/,D(374)/167/,B(375)/859/ % DATA D(375)/167/,B(376)/864/,D(376)/167/,B(377)/865/ % DATA D(377)/167/,B(378)/874/,D(378)/167/,B(379)/880/ % DATA D(379)/167/,B(380)/881/,D(380)/167/,B(381)/890/ % DATA D(381)/167/,B(382)/895/,D(382)/167/,B(383)/897/ % DATA D(383)/167/,B(384)/899/,D(384)/167/,B(385)/911/ % DATA D(385)/167/,B(386)/913/,D(386)/167/,B(387)/915/ % DATA D(387)/167/,B(388)/934/,D(388)/167/,B(389)/957/ % DATA D(389)/167/,B(390)/958/,D(390)/167/,B(391)/917/ % DATA D(391)/167/,B(392)/959/,D(392)/167/,B(393)/971/ % DATA D(393)/167/,B(394)/972/,D(394)/167/,B(395)/981/ % DATA D(395)/167/,B(396)/977/,D(396)/167/,B(397)/991/ % DATA D(397)/167/,B(398)/993/,D(398)/167/,B(399)/995/ % DATA D(399)/167/,B(400)/997/,D(400)/167/,B(401)/1007/ % DATA D(401)/167/,B(402)/1009/,D(402)/167/,B(403)/1011/ % DATA D(403)/167/,B(404)/1013/,D(404)/167/,B(405)/1026/ % DATA D(405)/167/,B(406)/1027/,D(406)/167/,B(407)/1032/ % DATA D(407)/167/,B(408)/633/,D(408)/711/,B(409)/2316/ % DATA D(409)/711/,B(410)/1304/,D(410)/711/,B(411)/0/,D(411)/715/ % DATA B(412)/1316/,D(412)/715/,B(413)/0/,D(413)/715/ % DATA B(414)/1312/,D(414)/715/,B(415)/1303/,D(415)/715/ % DATA B(416)/801/,D(416)/711/,B(417)/0/,D(417)/715/,B(418)/0/ % DATA D(418)/715/,B(419)/0/,D(419)/715/,B(420)/0/,D(420)/715/ % DATA B(421)/1282/,D(421)/715/,B(422)/0/,D(422)/715/,B(423)/0/ % DATA D(423)/715/,B(424)/0/,D(424)/715/,B(425)/1277/,D(425)/715/ % DATA B(426)/1258/,D(426)/715/,B(427)/0/,D(427)/715/,B(428)/0/ % DATA D(428)/715/,B(429)/0/,D(429)/715/,B(430)/0/,D(430)/715/ % DATA B(431)/1229/,D(431)/715/,B(432)/0/,D(432)/715/ % DATA B(433)/1210/,D(433)/715/,B(434)/1223/,D(434)/711/ % DATA B(435)/861/,D(435)/711/,B(436)/1159/,D(436)/711/ % DATA B(437)/1042/,D(437)/711/,B(438)/796/,D(438)/715/ % DATA B(439)/1171/,D(439)/715/,B(440)/949/,D(440)/711/ % DATA B(441)/2316/,D(441)/711/,B(442)/947/,D(442)/711/ % DATA B(443)/1203/,D(443)/715/,B(444)/1089/,D(444)/724/ % DATA B(445)/1052/,D(445)/717/,B(446)/1027/,D(446)/717/ % DATA B(447)/168/,D(447)/717/,B(448)/1060/,D(448)/717/ % DATA B(449)/1058/,D(449)/717/,B(450)/1127/,D(450)/725/ % DATA B(451)/592/,D(451)/717/,B(452)/687/,D(452)/717/ % DATA B(453)/655/,D(453)/717/,B(454)/1044/,D(454)/167/ % DATA B(455)/1045/,D(455)/167/,B(456)/1088/,D(456)/167/ % DATA B(457)/1090/,D(457)/167/,B(458)/1061/,D(458)/167/ % DATA B(459)/1092/,D(459)/167/,B(460)/1127/,D(460)/167/ % DATA B(461)/1141/,D(461)/167/,B(462)/1128/,D(462)/167/ % DATA B(463)/1132/,D(463)/167/,B(464)/1146/,D(464)/167/ % DATA B(465)/1148/,D(465)/167/,B(466)/1153/,D(466)/167/ % DATA B(467)/1155/,D(467)/167/,B(468)/1160/,D(468)/167/ % DATA B(469)/1162/,D(469)/167/,B(470)/1172/,D(470)/167/ % DATA B(471)/1167/,D(471)/167/,B(472)/1179/,D(472)/167/ % DATA B(473)/1184/,D(473)/167/,B(474)/1185/,D(474)/167/ % DATA B(475)/1194/,D(475)/167/,B(476)/1189/,D(476)/167/ % DATA B(477)/1201/,D(477)/167/,B(478)/1206/,D(478)/167/ % DATA B(479)/1208/,D(479)/167/,B(480)/1213/,D(480)/167/ % DATA B(481)/1215/,D(481)/167/,B(482)/1220/,D(482)/167/ % DATA B(483)/1225/,D(483)/167/,B(484)/1234/,D(484)/167/ % DATA B(485)/1235/,D(485)/167/,B(486)/1239/,D(486)/167/ % DATA B(487)/1241/,D(487)/167/,B(488)/1251/,D(488)/167/ % DATA B(489)/1253/,D(489)/167/,B(490)/1263/,D(490)/167/ % DATA B(491)/1258/,D(491)/167/,B(492)/1257/,D(492)/167/ % DATA B(493)/1177/,D(493)/711/,B(494)/1074/,D(494)/711/ % DATA B(495)/1091/,D(495)/715/,B(496)/1056/,D(496)/715/ % DATA B(497)/1057/,D(497)/715/,B(498)/885/,D(498)/711/,B(499)/0/ % DATA D(499)/715/,B(500)/0/,D(500)/715/,B(501)/0/,D(501)/715/ % DATA B(502)/0/,D(502)/715/,B(503)/1038/,D(503)/715/ % DATA B(504)/1066/,D(504)/711/,B(505)/975/,D(505)/711/ % DATA B(506)/1020/,D(506)/711/,B(507)/1023/,D(507)/711/ % DATA B(508)/1061/,D(508)/715/,B(509)/1013/,D(509)/715/ % DATA B(510)/1051/,D(510)/711/,B(511)/820/,D(511)/726/ % DATA B(512)/1284/,D(512)/711/,B(513)/1009/,D(513)/726/ % DATA B(514)/2316/,D(514)/711/,B(515)/1331/,D(515)/724/ % DATA B(516)/829/,D(516)/717/,B(517)/1092/,D(517)/717/ % DATA B(518)/800/,D(518)/717/,B(519)/1271/,D(519)/717/ % DATA B(520)/1199/,D(520)/717/,B(521)/1369/,D(521)/725/ % DATA B(522)/842/,D(522)/717/,B(523)/1007/,D(523)/717/ % DATA B(524)/703/,D(524)/717/,B(525)/1276/,D(525)/167/ % DATA B(526)/1278/,D(526)/167/,B(527)/1294/,D(527)/167/ % DATA B(528)/1282/,D(528)/167/,B(529)/1298/,D(529)/167/ % DATA B(530)/1341/,D(530)/717/,B(531)/1300/,D(531)/167/ % DATA B(532)/1323/,D(532)/167/,B(533)/1332/,D(533)/167/ % DATA B(534)/1333/,D(534)/167/,B(535)/1367/,D(535)/167/ % DATA B(536)/1361/,D(536)/167/,B(537)/1373/,D(537)/167/ % DATA B(538)/1380/,D(538)/167/,B(539)/1386/,D(539)/167/ % DATA B(540)/1395/,D(540)/167/,B(541)/1396/,D(541)/167/ % DATA B(542)/1400/,D(542)/167/,B(543)/1402/,D(543)/167/ % DATA B(544)/1412/,D(544)/167/,B(545)/1416/,D(545)/167/ % DATA B(546)/1418/,D(546)/167/,B(547)/1422/,D(547)/167/ % DATA B(548)/1428/,D(548)/167/,B(549)/1434/,D(549)/167/ % DATA B(550)/1440/,D(550)/167/,B(551)/1441/,D(551)/167/ % DATA B(552)/1450/,D(552)/167/,B(553)/1455/,D(553)/167/ % DATA B(554)/1456/,D(554)/167/,B(555)/1457/,D(555)/167/ % DATA B(556)/1462/,D(556)/167/,B(557)/988/,D(557)/727/ % DATA B(558)/934/,D(558)/711/,B(559)/958/,D(559)/715/ % DATA B(560)/920/,D(560)/715/,B(561)/910/,D(561)/715/ % DATA B(562)/1087/,D(562)/711/,B(563)/908/,D(563)/715/ % DATA B(564)/1095/,D(564)/711/,B(565)/880/,D(565)/711/ % DATA B(566)/1065/,D(566)/711/,B(567)/908/,D(567)/715/ % DATA B(568)/872/,D(568)/715/,B(569)/1472/,D(569)/711/ % DATA B(570)/1097/,D(570)/711/,B(571)/1347/,D(571)/717/ % DATA B(572)/1255/,D(572)/717/,B(573)/872/,D(573)/717/ % DATA B(574)/1448/,D(574)/717/,B(575)/839/,D(575)/717/ % DATA B(576)/766/,D(576)/717/,B(577)/1471/,D(577)/167/ % DATA B(578)/1475/,D(578)/167/,B(579)/1477/,D(579)/167/ % DATA B(580)/1481/,D(580)/167/,B(581)/1487/,D(581)/167/ % DATA B(582)/1302/,D(582)/717/,B(583)/1480/,D(583)/717/ % DATA B(584)/1491/,D(584)/167/,B(585)/1496/,D(585)/167/ % DATA B(586)/1500/,D(586)/167/,B(587)/1510/,D(587)/167/ % DATA B(588)/1512/,D(588)/167/,B(589)/1514/,D(589)/167/ % DATA B(590)/1516/,D(590)/167/,B(591)/1526/,D(591)/167/ % DATA B(592)/1528/,D(592)/167/,B(593)/1530/,D(593)/167/ % DATA B(594)/1535/,D(594)/167/,B(595)/1540/,D(595)/167/ % DATA B(596)/1542/,D(596)/167/,B(597)/1547/,D(597)/167/ % DATA B(598)/1554/,D(598)/167/,B(599)/1556/,D(599)/167/ % DATA B(600)/1560/,D(600)/167/,B(601)/1561/,D(601)/167/ % DATA B(602)/1566/,D(602)/167/,B(603)/1354/,D(603)/727/ % DATA B(604)/766/,D(604)/711/,B(605)/0/,D(605)/715/,B(606)/0/ % DATA D(606)/715/,B(607)/0/,D(607)/715/,B(608)/1141/,D(608)/711/ % DATA B(609)/0/,D(609)/715/,B(610)/760/,D(610)/711/,B(611)/758/ % DATA D(611)/711/,B(612)/1297/,D(612)/711/,B(613)/702/ % DATA D(613)/728/,B(614)/670/,D(614)/729/,B(615)/1496/ % DATA D(615)/711/,B(616)/1136/,D(616)/711/,B(617)/1568/ % DATA D(617)/717/,B(618)/1076/,D(618)/717/,B(619)/874/ % DATA D(619)/717/,B(620)/927/,D(620)/717/,B(621)/1570/ % DATA D(621)/167/,B(622)/1579/,D(622)/167/,B(623)/1591/ % DATA D(623)/167/,B(624)/1556/,D(624)/717/,B(625)/1555/ % DATA D(625)/717/,B(626)/1592/,D(626)/167/,B(627)/1598/ % DATA D(627)/167/,B(628)/1605/,D(628)/167/,B(629)/1619/ % DATA D(629)/167/,B(630)/1610/,D(630)/167/,B(631)/1612/ % DATA D(631)/167/,B(632)/1626/,D(632)/167/,B(633)/663/ % DATA D(633)/711/,B(634)/673/,D(634)/711/,B(635)/665/ % DATA D(635)/711/,B(636)/1640/,D(636)/728/,B(637)/1643/ % DATA D(637)/729/,B(638)/1647/,D(638)/729/,B(639)/1277/ % DATA D(639)/711/,B(640)/1605/,D(640)/711/,B(641)/941/ % DATA D(641)/717/,B(642)/943/,D(642)/717/,B(643)/1706/ % DATA D(643)/730/,B(644)/1113/,D(644)/717/,B(645)/1647/ % DATA D(645)/167/,B(646)/1649/,D(646)/167/,B(647)/1659/ % DATA D(647)/167/,B(648)/1612/,D(648)/717/,B(649)/1633/ % DATA D(649)/717/,B(650)/1744/,D(650)/731/,B(651)/1661/ % DATA D(651)/167/,B(652)/1782/,D(652)/732/,B(653)/0/,D(653)/733/ % DATA B(654)/2316/,D(654)/711/,B(655)/1359/,D(655)/734/ % DATA B(656)/1676/,D(656)/729/,B(657)/1635/,D(657)/711/ % DATA B(658)/1645/,D(658)/711/,B(659)/1838/,D(659)/730/ % DATA B(660)/816/,D(660)/717/,B(661)/1671/,D(661)/167/ % DATA B(662)/1677/,D(662)/167/,B(663)/1706/,D(663)/167/ % DATA B(664)/1284/,D(664)/717/,B(665)/1766/,D(665)/717/ % DATA B(666)/1876/,D(666)/731/,B(667)/1707/,D(667)/167/ % DATA B(668)/1914/,D(668)/732/,B(669)/518/,D(669)/668/ % DATA B(670)/1692/,D(670)/733/,B(671)/551/,D(671)/734/ % DATA B(672)/2316/,D(672)/711/,B(673)/1722/,D(673)/729/ % DATA B(674)/1670/,D(674)/711/,B(675)/515/,D(675)/711/ % DATA B(676)/607/,D(676)/717/,B(677)/1394/,D(677)/735/ % DATA B(678)/1432/,D(678)/717/,B(679)/474/,D(679)/668/ % DATA B(680)/420/,D(680)/711/,B(681)/1725/,D(681)/729/ % DATA B(682)/403/,D(682)/711/,B(683)/1597/,D(683)/736/ % DATA B(684)/1952/,D(684)/737/,B(685)/405/,D(685)/735/ % DATA B(686)/2316/,D(686)/711/,B(687)/384/,D(687)/717/ % DATA B(688)/310/,D(688)/668/,B(689)/2316/,D(689)/711/ % DATA B(690)/1759/,D(690)/729/,B(691)/1692/,D(691)/736/ % DATA B(692)/254/,D(692)/736/,B(693)/2316/,D(693)/711/ % DATA B(694)/1990/,D(694)/737/,B(695)/188/,D(695)/668/ % DATA B(696)/1762/,D(696)/729/,B(697)/435/,D(697)/717/ % DATA B(698)/188/,D(698)/668/,B(699)/2028/,D(699)/738/ % DATA B(700)/177/,D(700)/717/,B(701)/95/,D(701)/668/,B(702)/135/ % DATA D(702)/739/,B(703)/1720/,D(703)/739/,B(704)/2316/ % DATA D(704)/711/,B(705)/2066/,D(705)/738/,B(706)/2104/ % DATA D(706)/740/,B(707)/88/,D(707)/741/,B(708)/1737/ % DATA D(708)/741/,B(709)/2316/,D(709)/711/,B(710)/2142/ % DATA D(710)/740/,B(711)/2316/,D(711)/-1/,B(712)/2311/ % DATA D(712)/711/,B(713)/2306/,D(713)/711/,B(714)/2301/ % DATA D(714)/711/,B(715)/2296/,D(715)/711/,B(716)/2294/ % DATA D(716)/711/,B(717)/2292/,D(717)/711/,B(718)/2287/ % DATA D(718)/711/,B(719)/2282/,D(719)/711/,B(720)/2277/ % DATA D(720)/711/,B(721)/2272/,D(721)/711/,B(722)/2267/ % DATA D(722)/711/,B(723)/2263/,D(723)/711/,B(724)/2258/ % DATA D(724)/711/,B(725)/2253/,D(725)/711/,B(726)/2248/ % DATA D(726)/711/,B(727)/2243/,D(727)/711/,B(728)/2239/ % DATA D(728)/711/,B(729)/2235/,D(729)/711/,B(730)/2231/ % DATA D(730)/711/,B(731)/2226/,D(731)/711/,B(732)/2221/ % DATA D(732)/711/,B(733)/2216/,D(733)/711/,B(734)/2215/ % DATA D(734)/711/,B(735)/2210/,D(735)/711/,B(736)/2205/ % DATA D(736)/711/,B(737)/2200/,D(737)/711/,B(738)/2195/ % DATA D(738)/711/,B(739)/2190/,D(739)/711/,B(740)/2185/ % DATA D(740)/711/,B(741)/2180/,D(741)/711/ % DATA N(1)/2/,C(1)/1/,N(2)/2/,C(2)/1/,N(3)/3/,C(3)/1/,N(4)/4/ % DATA C(4)/1/,N(5)/5/,C(5)/1/,N(6)/2/,C(6)/1/,N(7)/6/,C(7)/1/ % DATA N(8)/7/,C(8)/1/,N(9)/2/,C(9)/1/,N(10)/2/,C(10)/1/,N(11)/2/ % DATA C(11)/1/,N(12)/2/,C(12)/1/,N(13)/2/,C(13)/1/,N(14)/8/ % DATA C(14)/1/,N(15)/9/,C(15)/1/,N(16)/10/,C(16)/1/,N(17)/11/ % DATA C(17)/1/,N(18)/12/,C(18)/1/,N(19)/13/,C(19)/1/,N(20)/14/ % DATA C(20)/1/,N(21)/13/,C(21)/1/,N(22)/13/,C(22)/1/,N(23)/13/ % DATA C(23)/1/,N(24)/13/,C(24)/1/,N(25)/15/,C(25)/1/,N(26)/16/ % DATA C(26)/1/,N(27)/17/,C(27)/1/,N(28)/18/,C(28)/1/,N(29)/19/ % DATA C(29)/1/,N(30)/20/,C(30)/1/,N(31)/21/,C(31)/1/,N(32)/22/ % DATA C(32)/1/,N(33)/23/,C(33)/1/,N(34)/24/,C(34)/1/,N(35)/13/ % DATA C(35)/1/,N(36)/13/,C(36)/1/,N(37)/2/,C(37)/1/,N(38)/2/ % DATA C(38)/1/,N(39)/13/,C(39)/1/,N(40)/13/,C(40)/1/,N(41)/25/ % DATA C(41)/1/,N(42)/13/,C(42)/1/,N(43)/13/,C(43)/1/,N(44)/13/ % DATA C(44)/1/,N(45)/13/,C(45)/1/,N(46)/13/,C(46)/1/,N(47)/13/ % DATA C(47)/1/,N(48)/13/,C(48)/1/,N(49)/13/,C(49)/1/,N(50)/13/ % DATA C(50)/1/,N(51)/13/,C(51)/1/,N(52)/13/,C(52)/1/,N(53)/13/ % DATA C(53)/1/,N(54)/13/,C(54)/1/,N(55)/13/,C(55)/1/,N(56)/13/ % DATA C(56)/1/,N(57)/13/,C(57)/1/,N(58)/13/,C(58)/1/,N(59)/13/ % DATA C(59)/1/,N(60)/26/,C(60)/1/,N(61)/27/,C(61)/1/,N(62)/28/ % DATA C(62)/1/,N(63)/29/,C(63)/1/,N(64)/34/,C(64)/6/,N(65)/45/ % DATA C(65)/8/,N(66)/49/,C(66)/9/,N(67)/52/,C(67)/10/,N(68)/35/ % DATA C(68)/6/,N(69)/58/,C(69)/12/,N(70)/55/,C(70)/11/,N(71)/59/ % DATA C(71)/12/,N(72)/68/,C(72)/19/,N(73)/71/,C(73)/21/ % DATA N(74)/50/,C(74)/9/,N(75)/46/,C(75)/8/,N(76)/47/,C(76)/8/ % DATA N(77)/51/,C(77)/9/,N(78)/50/,C(78)/11/,N(79)/69/,C(79)/19/ % DATA N(80)/61/,C(80)/15/,N(81)/53/,C(81)/10/,N(82)/48/,C(82)/8/ % DATA N(83)/62/,C(83)/15/,N(84)/56/,C(84)/11/,N(85)/36/,C(85)/6/ % DATA N(86)/57/,C(86)/11/,N(87)/72/,C(87)/21/,N(88)/54/ % DATA C(88)/25/,N(89)/37/,C(89)/6/,N(90)/65/,C(90)/17/ % DATA N(91)/709/,C(91)/707/,N(92)/54/,C(92)/10/,N(93)/35/ % DATA C(93)/6/,N(94)/63/,C(94)/15/,N(95)/93/,C(95)/35/,N(96)/73/ % DATA C(96)/22/,N(97)/38/,C(97)/6/,N(98)/39/,C(98)/6/,N(99)/74/ % DATA C(99)/22/,N(100)/66/,C(100)/17/,N(101)/78/,C(101)/23/ % DATA N(102)/40/,C(102)/6/,N(103)/75/,C(103)/22/,N(104)/41/ % DATA C(104)/6/,N(105)/89/,C(105)/28/,N(106)/0/,C(106)/28/ % DATA N(107)/0/,C(107)/28/,N(108)/76/,C(108)/22/,N(109)/79/ % DATA C(109)/23/,N(110)/91/,C(110)/34/,N(111)/77/,C(111)/22/ % DATA N(112)/92/,C(112)/34/,N(113)/54/,C(113)/25/,N(114)/81/ % DATA C(114)/27/,N(115)/90/,C(115)/29/,N(116)/0/,C(116)/29/ % DATA N(117)/0/,C(117)/29/,N(118)/104/,C(118)/49/,N(119)/82/ % DATA C(119)/27/,N(120)/93/,C(120)/35/,N(121)/91/,C(121)/37/ % DATA N(122)/109/,C(122)/54/,N(123)/92/,C(123)/37/,N(124)/83/ % DATA C(124)/27/,N(125)/83/,C(125)/27/,N(126)/111/,C(126)/53/ % DATA N(127)/112/,C(127)/53/,N(128)/84/,C(128)/27/,N(129)/105/ % DATA C(129)/49/,N(130)/149/,C(130)/88/,N(131)/109/,C(131)/52/ % DATA N(132)/186/,C(132)/91/,N(133)/106/,C(133)/49/,N(134)/91/ % DATA C(134)/34/,N(135)/118/,C(135)/60/,N(136)/92/,C(136)/34/ % DATA N(137)/110/,C(137)/52/,N(138)/704/,C(138)/702/,N(139)/119/ % DATA C(139)/60/,N(140)/199/,C(140)/109/,N(141)/85/,C(141)/27/ % DATA N(142)/121/,C(142)/62/,N(143)/122/,C(143)/62/,N(144)/147/ % DATA C(144)/84/,N(145)/91/,C(145)/37/,N(146)/109/,C(146)/54/ % DATA N(147)/92/,C(147)/37/,N(148)/141/,C(148)/141/,N(149)/146/ % DATA C(149)/141/,N(150)/95/,C(150)/37/,N(151)/706/,C(151)/701/ % DATA N(152)/140/,C(152)/81/,N(153)/86/,C(153)/27/,N(154)/149/ % DATA C(154)/88/,N(155)/109/,C(155)/52/,N(156)/186/,C(156)/91/ % DATA N(157)/141/,C(157)/81/,N(158)/53/,C(158)/84/,N(159)/87/ % DATA C(159)/27/,N(160)/148/,C(160)/86/,N(161)/187/,C(161)/92/ % DATA N(162)/142/,C(162)/81/,N(163)/142/,C(163)/81/,N(164)/199/ % DATA C(164)/109/,N(165)/88/,C(165)/27/,N(166)/143/,C(166)/81/ % DATA N(167)/142/,C(167)/83/,N(168)/151/,C(168)/89/,N(169)/148/ % DATA C(169)/84/,N(170)/229/,C(170)/143/,N(171)/245/,C(171)/447/ % DATA N(172)/230/,C(172)/144/,N(173)/0/,C(173)/27/,N(174)/0/ % DATA C(174)/27/,N(175)/0/,C(175)/27/,N(176)/68/,C(176)/85/ % DATA N(177)/142/,C(177)/83/,N(178)/142/,C(178)/83/,N(179)/144/ % DATA C(179)/81/,N(180)/245/,C(180)/700/,N(181)/143/,C(181)/83/ % DATA N(182)/152/,C(182)/89/,N(183)/69/,C(183)/85/,N(184)/153/ % DATA C(184)/89/,N(185)/148/,C(185)/86/,N(186)/187/,C(186)/92/ % DATA N(187)/216/,C(187)/127/,N(188)/232/,C(188)/147/ % DATA N(189)/149/,C(189)/85/,N(190)/245/,C(190)/251/,N(191)/143/ % DATA C(191)/81/,N(192)/232/,C(192)/148/,N(193)/217/,C(193)/127/ % DATA N(194)/110/,C(194)/147/,N(195)/229/,C(195)/143/ % DATA N(196)/230/,C(196)/144/,N(197)/145/,C(197)/81/,N(198)/154/ % DATA C(198)/89/,N(199)/233/,C(199)/149/,N(200)/142/,C(200)/142/ % DATA N(201)/239/,C(201)/152/,N(202)/245/,C(202)/263/ % DATA N(203)/144/,C(203)/81/,N(204)/141/,C(204)/82/,N(205)/146/ % DATA C(205)/82/,N(206)/143/,C(206)/83/,N(207)/155/,C(207)/89/ % DATA N(208)/240/,C(208)/155/,N(209)/156/,C(209)/89/,N(210)/142/ % DATA C(210)/142/,N(211)/142/,C(211)/142/,N(212)/232/ % DATA C(212)/147/,N(213)/149/,C(213)/85/,N(214)/143/,C(214)/142/ % DATA N(215)/53/,C(215)/152/,N(216)/232/,C(216)/148/,N(217)/518/ % DATA C(217)/447/,N(218)/241/,C(218)/156/,N(219)/243/ % DATA C(219)/157/,N(220)/34/,C(220)/82/,N(221)/306/,C(221)/186/ % DATA N(222)/157/,C(222)/89/,N(223)/233/,C(223)/149/,N(224)/35/ % DATA C(224)/82/,N(225)/307/,C(225)/187/,N(226)/240/,C(226)/152/ % DATA N(227)/241/,C(227)/153/,N(228)/245/,C(228)/161/ % DATA N(229)/253/,C(229)/161/,N(230)/58/,C(230)/153/,N(231)/245/ % DATA C(231)/164/,N(232)/59/,C(232)/153/,N(233)/240/,C(233)/155/ % DATA N(234)/247/,C(234)/247/,N(235)/256/,C(235)/247/ % DATA N(236)/266/,C(236)/164/,N(237)/701/,C(237)/698/ % DATA N(238)/356/,C(238)/251/,N(239)/143/,C(239)/142/ % DATA N(240)/698/,C(240)/695/,N(241)/36/,C(241)/82/,N(242)/241/ % DATA C(242)/156/,N(243)/243/,C(243)/157/,N(244)/267/ % DATA C(244)/171/,N(245)/37/,C(245)/82/,N(246)/306/,C(246)/186/ % DATA N(247)/364/,C(247)/263/,N(248)/267/,C(248)/174/,N(249)/35/ % DATA C(249)/82/,N(250)/307/,C(250)/187/,N(251)/241/,C(251)/153/ % DATA N(252)/267/,C(252)/171/,N(253)/38/,C(253)/82/,N(254)/39/ % DATA C(254)/82/,N(255)/267/,C(255)/171/,N(256)/287/,C(256)/174/ % DATA N(257)/693/,C(257)/692/,N(258)/40/,C(258)/82/,N(259)/267/ % DATA C(259)/174/,N(260)/41/,C(260)/82/,N(261)/158/,C(261)/90/ % DATA N(262)/159/,C(262)/90/,N(263)/160/,C(263)/90/,N(264)/161/ % DATA C(264)/90/,N(265)/162/,C(265)/90/,N(266)/158/,C(266)/90/ % DATA N(267)/163/,C(267)/90/,N(268)/164/,C(268)/90/,N(269)/158/ % DATA C(269)/90/,N(270)/158/,C(270)/90/,N(271)/158/,C(271)/90/ % DATA N(272)/165/,C(272)/90/,N(273)/165/,C(273)/90/,N(274)/166/ % DATA C(274)/90/,N(275)/167/,C(275)/90/,N(276)/168/,C(276)/90/ % DATA N(277)/169/,C(277)/90/,N(278)/170/,C(278)/90/,N(279)/171/ % DATA C(279)/90/,N(280)/172/,C(280)/90/,N(281)/171/,C(281)/90/ % DATA N(282)/171/,C(282)/90/,N(283)/171/,C(283)/90/,N(284)/171/ % DATA C(284)/90/,N(285)/173/,C(285)/90/,N(286)/174/,C(286)/90/ % DATA N(287)/175/,C(287)/90/,N(288)/176/,C(288)/90/,N(289)/177/ % DATA C(289)/90/,N(290)/178/,C(290)/90/,N(291)/179/,C(291)/90/ % DATA N(292)/180/,C(292)/90/,N(293)/181/,C(293)/90/,N(294)/182/ % DATA C(294)/90/,N(295)/171/,C(295)/90/,N(296)/171/,C(296)/90/ % DATA N(297)/158/,C(297)/90/,N(298)/158/,C(298)/90/,N(299)/171/ % DATA C(299)/90/,N(300)/171/,C(300)/90/,N(301)/183/,C(301)/90/ % DATA N(302)/171/,C(302)/90/,N(303)/171/,C(303)/90/,N(304)/171/ % DATA C(304)/90/,N(305)/171/,C(305)/90/,N(306)/171/,C(306)/90/ % DATA N(307)/184/,C(307)/90/,N(308)/171/,C(308)/90/,N(309)/171/ % DATA C(309)/90/,N(310)/171/,C(310)/90/,N(311)/171/,C(311)/90/ % DATA N(312)/171/,C(312)/90/,N(313)/185/,C(313)/90/,N(314)/171/ % DATA C(314)/90/,N(315)/171/,C(315)/90/,N(316)/171/,C(316)/90/ % DATA N(317)/171/,C(317)/90/,N(318)/171/,C(318)/90/,N(319)/171/ % DATA C(319)/90/,N(320)/26/,C(320)/90/,N(321)/212/,C(321)/122/ % DATA N(322)/212/,C(322)/122/,N(323)/212/,C(323)/122/ % DATA N(324)/212/,C(324)/122/,N(325)/212/,C(325)/122/ % DATA N(326)/212/,C(326)/122/,N(327)/212/,C(327)/122/ % DATA N(328)/212/,C(328)/122/,N(329)/212/,C(329)/122/ % DATA N(330)/212/,C(330)/122/,N(331)/212/,C(331)/122/ % DATA N(332)/212/,C(332)/122/,N(333)/212/,C(333)/122/ % DATA N(334)/212/,C(334)/122/,N(335)/212/,C(335)/122/ % DATA N(336)/212/,C(336)/122/,N(337)/212/,C(337)/122/ % DATA N(338)/212/,C(338)/122/,N(339)/212/,C(339)/122/ % DATA N(340)/212/,C(340)/122/,N(341)/212/,C(341)/122/ % DATA N(342)/212/,C(342)/122/,N(343)/212/,C(343)/122/ % DATA N(344)/140/,C(344)/140/,N(345)/73/,C(345)/154/,N(346)/245/ % DATA C(346)/252/,N(347)/253/,C(347)/252/,N(348)/74/,C(348)/154/ % DATA N(349)/141/,C(349)/140/,N(350)/695/,C(350)/688/ % DATA N(351)/275/,C(351)/168/,N(352)/75/,C(352)/154/,N(353)/346/ % DATA C(353)/233/,N(354)/142/,C(354)/140/,N(355)/142/ % DATA C(355)/140/,N(356)/278/,C(356)/169/,N(357)/76/,C(357)/154/ % DATA N(358)/143/,C(358)/140/,N(359)/267/,C(359)/168/ % DATA N(360)/242/,C(360)/154/,N(361)/342/,C(361)/229/ % DATA N(362)/267/,C(362)/168/,N(363)/248/,C(363)/165/ % DATA N(364)/245/,C(364)/165/,N(365)/276/,C(365)/168/ % DATA N(366)/245/,C(366)/262/,N(367)/267/,C(367)/169/ % DATA N(368)/343/,C(368)/230/,N(369)/348/,C(369)/236/ % DATA N(370)/279/,C(370)/169/,N(371)/144/,C(371)/140/ % DATA N(372)/280/,C(372)/169/,N(373)/248/,C(373)/165/ % DATA N(374)/248/,C(374)/165/,N(375)/345/,C(375)/232/ % DATA N(376)/277/,C(376)/168/,N(377)/249/,C(377)/165/ % DATA N(378)/346/,C(378)/233/,N(379)/349/,C(379)/237/ % DATA N(380)/267/,C(380)/172/,N(381)/350/,C(381)/238/ % DATA N(382)/267/,C(382)/170/,N(383)/143/,C(383)/140/ % DATA N(384)/243/,C(384)/154/,N(385)/342/,C(385)/229/ % DATA N(386)/245/,C(386)/259/,N(387)/245/,C(387)/687/ % DATA N(388)/267/,C(388)/172/,N(389)/145/,C(389)/140/ % DATA N(390)/267/,C(390)/170/,N(391)/267/,C(391)/172/ % DATA N(392)/343/,C(392)/230/,N(393)/267/,C(393)/170/ % DATA N(394)/348/,C(394)/236/,N(395)/144/,C(395)/140/ % DATA N(396)/235/,C(396)/151/,N(397)/283/,C(397)/172/ % DATA N(398)/281/,C(398)/170/,N(399)/345/,C(399)/232/ % DATA N(400)/282/,C(400)/170/,N(401)/141/,C(401)/151/ % DATA N(402)/249/,C(402)/165/,N(403)/349/,C(403)/237/ % DATA N(404)/352/,C(404)/241/,N(405)/350/,C(405)/238/ % DATA N(406)/142/,C(406)/151/,N(407)/142/,C(407)/151/ % DATA N(408)/686/,C(408)/685/,N(409)/351/,C(409)/240/ % DATA N(410)/236/,C(410)/151/,N(411)/267/,C(411)/175/ % DATA N(412)/237/,C(412)/151/,N(413)/267/,C(413)/173/ % DATA N(414)/284/,C(414)/173/,N(415)/288/,C(415)/175/ % DATA N(416)/691/,C(416)/682/,N(417)/285/,C(417)/173/ % DATA N(418)/363/,C(418)/262/,N(419)/267/,C(419)/175/ % DATA N(420)/353/,C(420)/243/,N(421)/267/,C(421)/173/ % DATA N(422)/267/,C(422)/175/,N(423)/144/,C(423)/151/ % DATA N(424)/267/,C(424)/173/,N(425)/289/,C(425)/175/ % DATA N(426)/238/,C(426)/151/,N(427)/245/,C(427)/362/ % DATA N(428)/286/,C(428)/173/,N(429)/352/,C(429)/241/ % DATA N(430)/689/,C(430)/680/,N(431)/267/,C(431)/176/ % DATA N(432)/267/,C(432)/177/,N(433)/351/,C(433)/240/ % DATA N(434)/360/,C(434)/259/,N(435)/236/,C(435)/151/ % DATA N(436)/291/,C(436)/177/,N(437)/237/,C(437)/151/ % DATA N(438)/245/,C(438)/697/,N(439)/267/,C(439)/176/ % DATA N(440)/267/,C(440)/177/,N(441)/145/,C(441)/151/ % DATA N(442)/267/,C(442)/176/,N(443)/292/,C(443)/177/ % DATA N(444)/353/,C(444)/243/,N(445)/700/,C(445)/697/ % DATA N(446)/267/,C(446)/178/,N(447)/144/,C(447)/151/ % DATA N(448)/290/,C(448)/176/,N(449)/293/,C(449)/177/ % DATA N(450)/238/,C(450)/151/,N(451)/246/,C(451)/159/ % DATA N(452)/245/,C(452)/159/,N(453)/245/,C(453)/360/ % DATA N(454)/267/,C(454)/178/,N(455)/302/,C(455)/181/ % DATA N(456)/247/,C(456)/159/,N(457)/267/,C(457)/178/ % DATA N(458)/294/,C(458)/178/,N(459)/267/,C(459)/179/ % DATA N(460)/295/,C(460)/179/,N(461)/248/,C(461)/159/ % DATA N(462)/248/,C(462)/159/,N(463)/303/,C(463)/181/ % DATA N(464)/267/,C(464)/180/,N(465)/249/,C(465)/159/ % DATA N(466)/267/,C(466)/181/,N(467)/267/,C(467)/179/ % DATA N(468)/297/,C(468)/180/,N(469)/245/,C(469)/261/ % DATA N(470)/267/,C(470)/179/,N(471)/298/,C(471)/180/ % DATA N(472)/267/,C(472)/180/,N(473)/293/,C(473)/177/ % DATA N(474)/296/,C(474)/179/,N(475)/299/,C(475)/180/ % DATA N(476)/267/,C(476)/182/,N(477)/267/,C(477)/184/ % DATA N(478)/250/,C(478)/159/,N(479)/245/,C(479)/250/ % DATA N(480)/300/,C(480)/180/,N(481)/363/,C(481)/362/ % DATA N(482)/245/,C(482)/264/,N(483)/301/,C(483)/180/ % DATA N(484)/267/,C(484)/182/,N(485)/267/,C(485)/184/ % DATA N(486)/277/,C(486)/183/,N(487)/267/,C(487)/182/ % DATA N(488)/267/,C(488)/184/,N(489)/304/,C(489)/182/ % DATA N(490)/249/,C(490)/159/,N(491)/136/,C(491)/242/ % DATA N(492)/363/,C(492)/360/,N(493)/351/,C(493)/239/ % DATA N(494)/267/,C(494)/183/,N(495)/408/,C(495)/306/ % DATA N(496)/251/,C(496)/159/,N(497)/267/,C(497)/183/ % DATA N(498)/267/,C(498)/185/,N(499)/110/,C(499)/239/ % DATA N(500)/245/,C(500)/258/,N(501)/245/,C(501)/249/ % DATA N(502)/250/,C(502)/159/,N(503)/247/,C(503)/163/ % DATA N(504)/256/,C(504)/163/,N(505)/353/,C(505)/242/ % DATA N(506)/267/,C(506)/185/,N(507)/355/,C(507)/250/ % DATA N(508)/245/,C(508)/265/,N(509)/267/,C(509)/185/ % DATA N(510)/245/,C(510)/361/,N(511)/277/,C(511)/183/ % DATA N(512)/354/,C(512)/249/,N(513)/266/,C(513)/265/ % DATA N(514)/305/,C(514)/184/,N(515)/293/,C(515)/185/ % DATA N(516)/359/,C(516)/258/,N(517)/351/,C(517)/239/ % DATA N(518)/362/,C(518)/261/,N(519)/257/,C(519)/163/ % DATA N(520)/408/,C(520)/306/,N(521)/414/,C(521)/315/ % DATA N(522)/409/,C(522)/307/,N(523)/258/,C(523)/163/ % DATA N(524)/688/,C(524)/679/,N(525)/415/,C(525)/315/ % DATA N(526)/434/,C(526)/342/,N(527)/267/,C(527)/267/ % DATA N(528)/683/,C(528)/675/,N(529)/353/,C(529)/242/ % DATA N(530)/365/,C(530)/264/,N(531)/355/,C(531)/250/ % DATA N(532)/248/,C(532)/248/,N(533)/245/,C(533)/248/ % DATA N(534)/245/,C(534)/257/,N(535)/267/,C(535)/267/ % DATA N(536)/245/,C(536)/356/,N(537)/354/,C(537)/249/ % DATA N(538)/267/,C(538)/267/,N(539)/293/,C(539)/185/ % DATA N(540)/259/,C(540)/163/,N(541)/359/,C(541)/258/ % DATA N(542)/248/,C(542)/248/,N(543)/248/,C(543)/248/ % DATA N(544)/260/,C(544)/163/,N(545)/422/,C(545)/327/ % DATA N(546)/249/,C(546)/248/,N(547)/409/,C(547)/307/ % DATA N(548)/258/,C(548)/163/,N(549)/428/,C(549)/334/ % DATA N(550)/434/,C(550)/342/,N(551)/423/,C(551)/327/ % DATA N(552)/261/,C(552)/163/,N(553)/262/,C(553)/163/ % DATA N(554)/672/,C(554)/671/,N(555)/429/,C(555)/334/ % DATA N(556)/357/,C(556)/257/,N(557)/263/,C(557)/163/ % DATA N(558)/358/,C(558)/257/,N(559)/264/,C(559)/163/ % DATA N(560)/244/,C(560)/166/,N(561)/244/,C(561)/166/ % DATA N(562)/245/,C(562)/166/,N(563)/244/,C(563)/166/ % DATA N(564)/244/,C(564)/166/,N(565)/451/,C(565)/361/ % DATA N(566)/244/,C(566)/166/,N(567)/244/,C(567)/166/ % DATA N(568)/244/,C(568)/166/,N(569)/244/,C(569)/166/ % DATA N(570)/244/,C(570)/166/,N(571)/249/,C(571)/248/ % DATA N(572)/450/,C(572)/359/,N(573)/245/,C(573)/359/ % DATA N(574)/447/,C(574)/356/,N(575)/268/,C(575)/166/ % DATA N(576)/267/,C(576)/268/,N(577)/679/,C(577)/669/ % DATA N(578)/366/,C(578)/268/,N(579)/0/,C(579)/308/,N(580)/357/ % DATA C(580)/257/,N(581)/245/,C(581)/364/,N(582)/358/ % DATA C(582)/257/,N(583)/308/,C(583)/308/,N(584)/267/ % DATA C(584)/268/,N(585)/269/,C(585)/166/,N(586)/270/ % DATA C(586)/166/,N(587)/267/,C(587)/268/,N(588)/438/ % DATA C(588)/346/,N(589)/308/,C(589)/308/,N(590)/308/ % DATA C(590)/308/,N(591)/245/,C(591)/365/,N(592)/271/ % DATA C(592)/166/,N(593)/317/,C(593)/317/,N(594)/245/ % DATA C(594)/260/,N(595)/245/,C(595)/451/,N(596)/244/ % DATA C(596)/166/,N(597)/244/,C(597)/166/,N(598)/244/ % DATA C(598)/167/,N(599)/244/,C(599)/167/,N(600)/245/ % DATA C(600)/167/,N(601)/244/,C(601)/167/,N(602)/244/ % DATA C(602)/167/,N(603)/435/,C(603)/343/,N(604)/244/ % DATA C(604)/167/,N(605)/244/,C(605)/167/,N(606)/244/ % DATA C(606)/167/,N(607)/244/,C(607)/167/,N(608)/244/ % DATA C(608)/167/,N(609)/267/,C(609)/269/,N(610)/245/ % DATA C(610)/676/,N(611)/272/,C(611)/167/,N(612)/438/ % DATA C(612)/346/,N(613)/416/,C(613)/317/,N(614)/441/ % DATA C(614)/349/,N(615)/267/,C(615)/271/,N(616)/357/ % DATA C(616)/260/,N(617)/267/,C(617)/269/,N(618)/358/ % DATA C(618)/260/,N(619)/273/,C(619)/167/,N(620)/267/ % DATA C(620)/269/,N(621)/267/,C(621)/273/,N(622)/274/ % DATA C(622)/167/,N(623)/267/,C(623)/271/,N(624)/367/ % DATA C(624)/269/,N(625)/452/,C(625)/364/,N(626)/267/ % DATA C(626)/271/,N(627)/373/,C(627)/273/,N(628)/435/ % DATA C(628)/343/,N(629)/267/,C(629)/273/,N(630)/453/ % DATA C(630)/365/,N(631)/522/,C(631)/451/,N(632)/267/ % DATA C(632)/273/,N(633)/369/,C(633)/271/,N(634)/244/ % DATA C(634)/167/,N(635)/244/,C(635)/167/,N(636)/246/ % DATA C(636)/246/,N(637)/245/,C(637)/246/,N(638)/416/ % DATA C(638)/317/,N(639)/441/,C(639)/349/,N(640)/357/ % DATA C(640)/260/,N(641)/247/,C(641)/246/,N(642)/358/ % DATA C(642)/260/,N(643)/440/,C(643)/348/,N(644)/684/ % DATA C(644)/676/,N(645)/361/,C(645)/260/,N(646)/248/ % DATA C(646)/246/,N(647)/248/,C(647)/246/,N(648)/267/ % DATA C(648)/270/,N(649)/374/,C(649)/274/,N(650)/249/ % DATA C(650)/246/,N(651)/368/,C(651)/270/,N(652)/493/ % DATA C(652)/408/,N(653)/267/,C(653)/272/,N(654)/267/ % DATA C(654)/275/,N(655)/370/,C(655)/272/,N(656)/267/ % DATA C(656)/270/,N(657)/267/,C(657)/274/,N(658)/245/ % DATA C(658)/453/,N(659)/267/,C(659)/270/,N(660)/267/ % DATA C(660)/274/,N(661)/267/,C(661)/272/,N(662)/267/ % DATA C(662)/275/,N(663)/250/,C(663)/246/,N(664)/267/ % DATA C(664)/272/,N(665)/375/,C(665)/275/,N(666)/371/ % DATA C(666)/272/,N(667)/440/,C(667)/348/,N(668)/267/ % DATA C(668)/276/,N(669)/442/,C(669)/350/,N(670)/372/ % DATA C(670)/272/,N(671)/376/,C(671)/275/,N(672)/614/ % DATA C(672)/614/,N(673)/443/,C(673)/351/,N(674)/267/ % DATA C(674)/277/,N(675)/249/,C(675)/246/,N(676)/267/ % DATA C(676)/276/,N(677)/493/,C(677)/408/,N(678)/655/ % DATA C(678)/635/,N(679)/377/,C(679)/276/,N(680)/378/ % DATA C(680)/276/,N(681)/251/,C(681)/246/,N(682)/267/ % DATA C(682)/277/,N(683)/267/,C(683)/278/,N(684)/267/ % DATA C(684)/279/,N(685)/375/,C(685)/277/,N(686)/654/ % DATA C(686)/634/,N(687)/250/,C(687)/246/,N(688)/267/ % DATA C(688)/280/,N(689)/375/,C(689)/275/,N(690)/245/ % DATA C(690)/452/,N(691)/267/,C(691)/278/,N(692)/267/ % DATA C(692)/279/,N(693)/442/,C(693)/350/,N(694)/267/ % DATA C(694)/278/,N(695)/380/,C(695)/279/,N(696)/267/ % DATA C(696)/280/,N(697)/443/,C(697)/351/,N(698)/524/ % DATA C(698)/453/,N(699)/267/,C(699)/280/,N(700)/653/ % DATA C(700)/633/,N(701)/379/,C(701)/278/,N(702)/267/ % DATA C(702)/281/,N(703)/267/,C(703)/282/,N(704)/613/ % DATA C(704)/613/,N(705)/383/,C(705)/282/,N(706)/245/ % DATA C(706)/524/,N(707)/267/,C(707)/284/,N(708)/381/ % DATA C(708)/280/,N(709)/375/,C(709)/277/,N(710)/267/ % DATA C(710)/281/,N(711)/267/,C(711)/282/,N(712)/384/ % DATA C(712)/283/,N(713)/267/,C(713)/281/,N(714)/267/ % DATA C(714)/282/,N(715)/267/,C(715)/284/,N(716)/385/ % DATA C(716)/283/,N(717)/267/,C(717)/285/,N(718)/267/ % DATA C(718)/284/,N(719)/389/,C(719)/286/,N(720)/267/ % DATA C(720)/283/,N(721)/267/,C(721)/287/,N(722)/382/ % DATA C(722)/281/,N(723)/267/,C(723)/283/,N(724)/386/ % DATA C(724)/284/,N(725)/267/,C(725)/285/,N(726)/638/ % DATA C(726)/614/,N(727)/267/,C(727)/286/,N(728)/267/ % DATA C(728)/285/,N(729)/267/,C(729)/287/,N(730)/267/ % DATA C(730)/286/,N(731)/267/,C(731)/288/,N(732)/267/ % DATA C(732)/287/,N(733)/267/,C(733)/289/,N(734)/390/ % DATA C(734)/287/,N(735)/387/,C(735)/285/,N(736)/388/ % DATA C(736)/285/,N(737)/267/,C(737)/290/,N(738)/267/ % DATA C(738)/291/,N(739)/267/,C(739)/288/,N(740)/523/ % DATA C(740)/452/,N(741)/267/,C(741)/289/,N(742)/267/ % DATA C(742)/288/,N(743)/267/,C(743)/292/,N(744)/267/ % DATA C(744)/289/,N(745)/267/,C(745)/290/,N(746)/267/ % DATA C(746)/291/,N(747)/576/,C(747)/524/,N(748)/267/ % DATA C(748)/290/,N(749)/267/,C(749)/291/,N(750)/267/ % DATA C(750)/293/,N(751)/267/,C(751)/292/,N(752)/392/ % DATA C(752)/289/,N(753)/391/,C(753)/288/,N(754)/267/ % DATA C(754)/292/,N(755)/393/,C(755)/291/,N(756)/444/ % DATA C(756)/353/,N(757)/396/,C(757)/294/,N(758)/267/ % DATA C(758)/293/,N(759)/267/,C(759)/295/,N(760)/614/ % DATA C(760)/611/,N(761)/267/,C(761)/293/,N(762)/613/ % DATA C(762)/610/,N(763)/394/,C(763)/292/,N(764)/395/ % DATA C(764)/293/,N(765)/267/,C(765)/294/,N(766)/398/ % DATA C(766)/296/,N(767)/267/,C(767)/295/,N(768)/267/ % DATA C(768)/294/,N(769)/245/,C(769)/576/,N(770)/267/ % DATA C(770)/295/,N(771)/267/,C(771)/297/,N(772)/245/ % DATA C(772)/354/,N(773)/400/,C(773)/298/,N(774)/267/ % DATA C(774)/296/,N(775)/633/,C(775)/604/,N(776)/397/ % DATA C(776)/295/,N(777)/267/,C(777)/296/,N(778)/401/ % DATA C(778)/299/,N(779)/267/,C(779)/297/,N(780)/444/ % DATA C(780)/353/,N(781)/267/,C(781)/298/,N(782)/267/ % DATA C(782)/297/,N(783)/399/,C(783)/297/,N(784)/267/ % DATA C(784)/298/,N(785)/267/,C(785)/300/,N(786)/267/ % DATA C(786)/299/,N(787)/403/,C(787)/301/,N(788)/395/ % DATA C(788)/293/,N(789)/267/,C(789)/299/,N(790)/245/ % DATA C(790)/355/,N(791)/267/,C(791)/302/,N(792)/404/ % DATA C(792)/302/,N(793)/267/,C(793)/300/,N(794)/445/ % DATA C(794)/354/,N(795)/267/,C(795)/301/,N(796)/267/ % DATA C(796)/300/,N(797)/245/,C(797)/357/,N(798)/267/ % DATA C(798)/301/,N(799)/267/,C(799)/302/,N(800)/267/ % DATA C(800)/303/,N(801)/267/,C(801)/304/,N(802)/267/ % DATA C(802)/302/,N(803)/245/,C(803)/518/,N(804)/406/ % DATA C(804)/304/,N(805)/402/,C(805)/300/,N(806)/267/ % DATA C(806)/305/,N(807)/245/,C(807)/358/,N(808)/267/ % DATA C(808)/303/,N(809)/267/,C(809)/304/,N(810)/508/ % DATA C(810)/438/,N(811)/405/,C(811)/303/,N(812)/267/ % DATA C(812)/304/,N(813)/620/,C(813)/576/,N(814)/267/ % DATA C(814)/305/,N(815)/446/,C(815)/355/,N(816)/267/ % DATA C(816)/366/,N(817)/267/,C(817)/305/,N(818)/445/ % DATA C(818)/354/,N(819)/245/,C(819)/660/,N(820)/454/ % DATA C(820)/366/,N(821)/449/,C(821)/358/,N(822)/511/ % DATA C(822)/511/,N(823)/514/,C(823)/511/,N(824)/267/ % DATA C(824)/366/,N(825)/676/,C(825)/660/,N(826)/448/ % DATA C(826)/357/,N(827)/267/,C(827)/366/,N(828)/498/ % DATA C(828)/416/,N(829)/267/,C(829)/368/,N(830)/267/ % DATA C(830)/367/,N(831)/571/,C(831)/516/,N(832)/245/ % DATA C(832)/516/,N(833)/407/,C(833)/305/,N(834)/455/ % DATA C(834)/367/,N(835)/508/,C(835)/438/,N(836)/267/ % DATA C(836)/369/,N(837)/267/,C(837)/368/,N(838)/267/ % DATA C(838)/367/,N(839)/446/,C(839)/355/,N(840)/267/ % DATA C(840)/368/,N(841)/267/,C(841)/367/,N(842)/245/ % DATA C(842)/575/,N(843)/267/,C(843)/370/,N(844)/456/ % DATA C(844)/369/,N(845)/245/,C(845)/522/,N(846)/449/ % DATA C(846)/358/,N(847)/267/,C(847)/369/,N(848)/267/ % DATA C(848)/372/,N(849)/267/,C(849)/371/,N(850)/448/ % DATA C(850)/357/,N(851)/267/,C(851)/370/,N(852)/498/ % DATA C(852)/416/,N(853)/457/,C(853)/370/,N(854)/267/ % DATA C(854)/370/,N(855)/458/,C(855)/371/,N(856)/267/ % DATA C(856)/372/,N(857)/267/,C(857)/371/,N(858)/573/ % DATA C(858)/518/,N(859)/267/,C(859)/372/,N(860)/267/ % DATA C(860)/371/,N(861)/244/,C(861)/373/,N(862)/244/ % DATA C(862)/373/,N(863)/245/,C(863)/373/,N(864)/244/ % DATA C(864)/373/,N(865)/244/,C(865)/373/,N(866)/267/ % DATA C(866)/373/,N(867)/244/,C(867)/373/,N(868)/244/ % DATA C(868)/373/,N(869)/244/,C(869)/373/,N(870)/244/ % DATA C(870)/373/,N(871)/244/,C(871)/373/,N(872)/267/ % DATA C(872)/374/,N(873)/267/,C(873)/375/,N(874)/614/ % DATA C(874)/568/,N(875)/245/,C(875)/573/,N(876)/643/ % DATA C(876)/619/,N(877)/245/,C(877)/619/,N(878)/267/ % DATA C(878)/376/,N(879)/267/,C(879)/377/,N(880)/267/ % DATA C(880)/374/,N(881)/267/,C(881)/375/,N(882)/462/ % DATA C(882)/376/,N(883)/267/,C(883)/374/,N(884)/461/ % DATA C(884)/375/,N(885)/460/,C(885)/374/,N(886)/267/ % DATA C(886)/376/,N(887)/267/,C(887)/377/,N(888)/267/ % DATA C(888)/378/,N(889)/267/,C(889)/376/,N(890)/267/ % DATA C(890)/377/,N(891)/363/,C(891)/522/,N(892)/505/ % DATA C(892)/435/,N(893)/463/,C(893)/377/,N(894)/267/ % DATA C(894)/379/,N(895)/267/,C(895)/380/,N(896)/267/ % DATA C(896)/378/,N(897)/244/,C(897)/373/,N(898)/244/ % DATA C(898)/373/,N(899)/267/,C(899)/378/,N(900)/464/ % DATA C(900)/378/,N(901)/465/,C(901)/379/,N(902)/267/ % DATA C(902)/379/,N(903)/267/,C(903)/380/,N(904)/267/ % DATA C(904)/381/,N(905)/267/,C(905)/379/,N(906)/466/ % DATA C(906)/380/,N(907)/562/,C(907)/498/,N(908)/461/ % DATA C(908)/375/,N(909)/468/,C(909)/382/,N(910)/613/ % DATA C(910)/567/,N(911)/469/,C(911)/383/,N(912)/267/ % DATA C(912)/381/,N(913)/267/,C(913)/384/,N(914)/618/ % DATA C(914)/573/,N(915)/267/,C(915)/381/,N(916)/505/ % DATA C(916)/435/,N(917)/267/,C(917)/382/,N(918)/467/ % DATA C(918)/381/,N(919)/267/,C(919)/383/,N(920)/267/ % DATA C(920)/382/,N(921)/267/,C(921)/384/,N(922)/267/ % DATA C(922)/383/,N(923)/611/,C(923)/565/,N(924)/267/ % DATA C(924)/384/,N(925)/471/,C(925)/385/,N(926)/609/ % DATA C(926)/563/,N(927)/472/,C(927)/386/,N(928)/607/ % DATA C(928)/561/,N(929)/267/,C(929)/387/,N(930)/245/ % DATA C(930)/620/,N(931)/267/,C(931)/391/,N(932)/562/ % DATA C(932)/498/,N(933)/267/,C(933)/385/,N(934)/470/ % DATA C(934)/384/,N(935)/267/,C(935)/386/,N(936)/267/ % DATA C(936)/385/,N(937)/267/,C(937)/387/,N(938)/267/ % DATA C(938)/386/,N(939)/267/,C(939)/391/,N(940)/267/ % DATA C(940)/387/,N(941)/606/,C(941)/560/,N(942)/477/ % DATA C(942)/391/,N(943)/650/,C(943)/641/,N(944)/245/ % DATA C(944)/641/,N(945)/652/,C(945)/642/,N(946)/245/ % DATA C(946)/642/,N(947)/473/,C(947)/387/,N(948)/474/ % DATA C(948)/388/,N(949)/474/,C(949)/388/,N(950)/474/ % DATA C(950)/388/,N(951)/474/,C(951)/388/,N(952)/474/ % DATA C(952)/388/,N(953)/474/,C(953)/388/,N(954)/474/ % DATA C(954)/388/,N(955)/474/,C(955)/388/,N(956)/474/ % DATA C(956)/388/,N(957)/474/,C(957)/388/,N(958)/474/ % DATA C(958)/388/,N(959)/474/,C(959)/388/,N(960)/474/ % DATA C(960)/388/,N(961)/474/,C(961)/388/,N(962)/474/ % DATA C(962)/388/,N(963)/474/,C(963)/388/,N(964)/474/ % DATA C(964)/388/,N(965)/474/,C(965)/388/,N(966)/474/ % DATA C(966)/388/,N(967)/474/,C(967)/388/,N(968)/474/ % DATA C(968)/388/,N(969)/474/,C(969)/388/,N(970)/474/ % DATA C(970)/388/,N(971)/267/,C(971)/389/,N(972)/267/ % DATA C(972)/390/,N(973)/267/,C(973)/392/,N(974)/510/ % DATA C(974)/440/,N(975)/605/,C(975)/559/,N(976)/511/ % DATA C(976)/442/,N(977)/604/,C(977)/558/,N(978)/644/ % DATA C(978)/620/,N(979)/267/,C(979)/389/,N(980)/267/ % DATA C(980)/390/,N(981)/267/,C(981)/392/,N(982)/267/ % DATA C(982)/389/,N(983)/267/,C(983)/390/,N(984)/267/ % DATA C(984)/392/,N(985)/267/,C(985)/393/,N(986)/267/ % DATA C(986)/394/,N(987)/478/,C(987)/393/,N(988)/475/ % DATA C(988)/389/,N(989)/564/,C(989)/505/,N(990)/557/ % DATA C(990)/557/,N(991)/267/,C(991)/396/,N(992)/476/ % DATA C(992)/390/,N(993)/479/,C(993)/393/,N(994)/267/ % DATA C(994)/394/,N(995)/267/,C(995)/395/,N(996)/267/ % DATA C(996)/393/,N(997)/267/,C(997)/394/,N(998)/510/ % DATA C(998)/440/,N(999)/267/,C(999)/396/,N(1000)/511/ % DATA C(1000)/442/,N(1001)/481/,C(1001)/395/,N(1002)/267/ % DATA C(1002)/396/,N(1003)/267/,C(1003)/395/,N(1004)/480/ % DATA C(1004)/394/,N(1005)/483/,C(1005)/397/,N(1006)/267/ % DATA C(1006)/395/,N(1007)/267/,C(1007)/398/,N(1008)/482/ % DATA C(1008)/396/,N(1009)/267/,C(1009)/399/,N(1010)/245/ % DATA C(1010)/523/,N(1011)/267/,C(1011)/400/,N(1012)/514/ % DATA C(1012)/513/,N(1013)/267/,C(1013)/397/,N(1014)/564/ % DATA C(1014)/505/,N(1015)/267/,C(1015)/398/,N(1016)/267/ % DATA C(1016)/397/,N(1017)/485/,C(1017)/399/,N(1018)/267/ % DATA C(1018)/398/,N(1019)/267/,C(1019)/400/,N(1020)/267/ % DATA C(1020)/399/,N(1021)/267/,C(1021)/401/,N(1022)/267/ % DATA C(1022)/400/,N(1023)/267/,C(1023)/402/,N(1024)/484/ % DATA C(1024)/398/,N(1025)/267/,C(1025)/403/,N(1026)/481/ % DATA C(1026)/395/,N(1027)/267/,C(1027)/404/,N(1028)/486/ % DATA C(1028)/400/,N(1029)/267/,C(1029)/401/,N(1030)/245/ % DATA C(1030)/446/,N(1031)/267/,C(1031)/402/,N(1032)/267/ % DATA C(1032)/401/,N(1033)/267/,C(1033)/403/,N(1034)/267/ % DATA C(1034)/402/,N(1035)/267/,C(1035)/404/,N(1036)/267/ % DATA C(1036)/403/,N(1037)/488/,C(1037)/402/,N(1038)/267/ % DATA C(1038)/404/,N(1039)/487/,C(1039)/401/,N(1040)/267/ % DATA C(1040)/405/,N(1041)/267/,C(1041)/406/,N(1042)/489/ % DATA C(1042)/403/,N(1043)/490/,C(1043)/405/,N(1044)/437/ % DATA C(1044)/437/,N(1045)/491/,C(1045)/406/,N(1046)/267/ % DATA C(1046)/407/,N(1047)/517/,C(1047)/446/,N(1048)/267/ % DATA C(1048)/405/,N(1049)/267/,C(1049)/406/,N(1050)/566/ % DATA C(1050)/507/,N(1051)/267/,C(1051)/405/,N(1052)/267/ % DATA C(1052)/406/,N(1053)/569/,C(1053)/510/,N(1054)/267/ % DATA C(1054)/407/,N(1055)/245/,C(1055)/445/,N(1056)/568/ % DATA C(1056)/509/,N(1057)/267/,C(1057)/407/,N(1058)/267/ % DATA C(1058)/454/,N(1059)/267/,C(1059)/455/,N(1060)/507/ % DATA C(1060)/437/,N(1061)/245/,C(1061)/449/,N(1062)/565/ % DATA C(1062)/506/,N(1063)/245/,C(1063)/448/,N(1064)/416/ % DATA C(1064)/437/,N(1065)/563/,C(1065)/503/,N(1066)/267/ % DATA C(1066)/454/,N(1067)/267/,C(1067)/455/,N(1068)/504/ % DATA C(1068)/504/,N(1069)/267/,C(1069)/454/,N(1070)/267/ % DATA C(1070)/455/,N(1071)/525/,C(1071)/454/,N(1072)/517/ % DATA C(1072)/446/,N(1073)/561/,C(1073)/497/,N(1074)/566/ % DATA C(1074)/507/,N(1075)/267/,C(1075)/458/,N(1076)/526/ % DATA C(1076)/455/,N(1077)/516/,C(1077)/445/,N(1078)/519/ % DATA C(1078)/448/,N(1079)/245/,C(1079)/618/,N(1080)/520/ % DATA C(1080)/449/,N(1081)/492/,C(1081)/407/,N(1082)/612/ % DATA C(1082)/566/,N(1083)/267/,C(1083)/458/,N(1084)/507/ % DATA C(1084)/504/,N(1085)/507/,C(1085)/437/,N(1086)/267/ % DATA C(1086)/458/,N(1087)/567/,C(1087)/508/,N(1088)/560/ % DATA C(1088)/496/,N(1089)/416/,C(1089)/437/,N(1090)/513/ % DATA C(1090)/444/,N(1091)/511/,C(1091)/444/,N(1092)/514/ % DATA C(1092)/444/,N(1093)/513/,C(1093)/444/,N(1094)/513/ % DATA C(1094)/444/,N(1095)/245/,C(1095)/517/,N(1096)/513/ % DATA C(1096)/444/,N(1097)/513/,C(1097)/444/,N(1098)/513/ % DATA C(1098)/444/,N(1099)/513/,C(1099)/444/,N(1100)/513/ % DATA C(1100)/444/,N(1101)/516/,C(1101)/445/,N(1102)/267/ % DATA C(1102)/456/,N(1103)/519/,C(1103)/448/,N(1104)/267/ % DATA C(1104)/457/,N(1105)/520/,C(1105)/449/,N(1106)/267/ % DATA C(1106)/459/,N(1107)/612/,C(1107)/566/,N(1108)/527/ % DATA C(1108)/456/,N(1109)/507/,C(1109)/504/,N(1110)/267/ % DATA C(1110)/456/,N(1111)/567/,C(1111)/508/,N(1112)/267/ % DATA C(1112)/457/,N(1113)/267/,C(1113)/456/,N(1114)/267/ % DATA C(1114)/459/,N(1115)/267/,C(1115)/457/,N(1116)/245/ % DATA C(1116)/644/,N(1117)/267/,C(1117)/459/,N(1118)/559/ % DATA C(1118)/495/,N(1119)/642/,C(1119)/618/,N(1120)/608/ % DATA C(1120)/562/,N(1121)/610/,C(1121)/564/,N(1122)/528/ % DATA C(1122)/457/,N(1123)/572/,C(1123)/517/,N(1124)/616/ % DATA C(1124)/570/,N(1125)/558/,C(1125)/494/,N(1126)/513/ % DATA C(1126)/444/,N(1127)/513/,C(1127)/444/,N(1128)/244/ % DATA C(1128)/450/,N(1129)/450/,C(1129)/450/,N(1130)/245/ % DATA C(1130)/450/,N(1131)/244/,C(1131)/450/,N(1132)/244/ % DATA C(1132)/450/,N(1133)/244/,C(1133)/450/,N(1134)/244/ % DATA C(1134)/450/,N(1135)/244/,C(1135)/450/,N(1136)/244/ % DATA C(1136)/450/,N(1137)/244/,C(1137)/450/,N(1138)/244/ % DATA C(1138)/450/,N(1139)/244/,C(1139)/450/,N(1140)/244/ % DATA C(1140)/450/,N(1141)/267/,C(1141)/460/,N(1142)/267/ % DATA C(1142)/462/,N(1143)/530/,C(1143)/461/,N(1144)/608/ % DATA C(1144)/562/,N(1145)/610/,C(1145)/564/,N(1146)/267/ % DATA C(1146)/463/,N(1147)/572/,C(1147)/517/,N(1148)/616/ % DATA C(1148)/570/,N(1149)/267/,C(1149)/460/,N(1150)/267/ % DATA C(1150)/462/,N(1151)/529/,C(1151)/460/,N(1152)/267/ % DATA C(1152)/460/,N(1153)/267/,C(1153)/462/,N(1154)/267/ % DATA C(1154)/463/,N(1155)/267/,C(1155)/461/,N(1156)/660/ % DATA C(1156)/644/,N(1157)/267/,C(1157)/463/,N(1158)/640/ % DATA C(1158)/616/,N(1159)/532/,C(1159)/463/,N(1160)/533/ % DATA C(1160)/464/,N(1161)/531/,C(1161)/462/,N(1162)/267/ % DATA C(1162)/465/,N(1163)/267/,C(1163)/461/,N(1164)/244/ % DATA C(1164)/450/,N(1165)/244/,C(1165)/450/,N(1166)/267/ % DATA C(1166)/461/,N(1167)/534/,C(1167)/466/,N(1168)/267/ % DATA C(1168)/464/,N(1169)/267/,C(1169)/467/,N(1170)/267/ % DATA C(1170)/465/,N(1171)/267/,C(1171)/464/,N(1172)/634/ % DATA C(1172)/608/,N(1173)/267/,C(1173)/465/,N(1174)/267/ % DATA C(1174)/468/,N(1175)/267/,C(1175)/466/,N(1176)/267/ % DATA C(1176)/469/,N(1177)/267/,C(1177)/467/,N(1178)/267/ % DATA C(1178)/466/,N(1179)/557/,C(1179)/493/,N(1180)/267/ % DATA C(1180)/467/,N(1181)/267/,C(1181)/471/,N(1182)/267/ % DATA C(1182)/468/,N(1183)/640/,C(1183)/616/,N(1184)/267/ % DATA C(1184)/469/,N(1185)/536/,C(1185)/468/,N(1186)/267/ % DATA C(1186)/470/,N(1187)/267/,C(1187)/469/,N(1188)/535/ % DATA C(1188)/467/,N(1189)/267/,C(1189)/471/,N(1190)/538/ % DATA C(1190)/470/,N(1191)/537/,C(1191)/469/,N(1192)/267/ % DATA C(1192)/471/,N(1193)/267/,C(1193)/472/,N(1194)/267/ % DATA C(1194)/470/,N(1195)/540/,C(1195)/472/,N(1196)/634/ % DATA C(1196)/608/,N(1197)/267/,C(1197)/470/,N(1198)/267/ % DATA C(1198)/473/,N(1199)/267/,C(1199)/474/,N(1200)/539/ % DATA C(1200)/471/,N(1201)/267/,C(1201)/472/,N(1202)/245/ % DATA C(1202)/520/,N(1203)/267/,C(1203)/476/,N(1204)/267/ % DATA C(1204)/472/,N(1205)/512/,C(1205)/443/,N(1206)/267/ % DATA C(1206)/473/,N(1207)/267/,C(1207)/474/,N(1208)/267/ % DATA C(1208)/475/,N(1209)/267/,C(1209)/473/,N(1210)/267/ % DATA C(1210)/474/,N(1211)/267/,C(1211)/476/,N(1212)/541/ % DATA C(1212)/475/,N(1213)/509/,C(1213)/439/,N(1214)/267/ % DATA C(1214)/476/,N(1215)/267/,C(1215)/477/,N(1216)/267/ % DATA C(1216)/475/,N(1217)/506/,C(1217)/436/,N(1218)/575/ % DATA C(1218)/520/,N(1219)/267/,C(1219)/475/,N(1220)/267/ % DATA C(1220)/478/,N(1221)/542/,C(1221)/476/,N(1222)/267/ % DATA C(1222)/479/,N(1223)/543/,C(1223)/477/,N(1224)/544/ % DATA C(1224)/478/,N(1225)/504/,C(1225)/434/,N(1226)/267/ % DATA C(1226)/477/,N(1227)/267/,C(1227)/480/,N(1228)/267/ % DATA C(1228)/478/,N(1229)/267/,C(1229)/481/,N(1230)/267/ % DATA C(1230)/479/,N(1231)/267/,C(1231)/478/,N(1232)/503/ % DATA C(1232)/433/,N(1233)/267/,C(1233)/479/,N(1234)/267/ % DATA C(1234)/482/,N(1235)/267/,C(1235)/480/,N(1236)/545/ % DATA C(1236)/479/,N(1237)/267/,C(1237)/481/,N(1238)/267/ % DATA C(1238)/480/,N(1239)/267/,C(1239)/483/,N(1240)/267/ % DATA C(1240)/481/,N(1241)/548/,C(1241)/483/,N(1242)/267/ % DATA C(1242)/482/,N(1243)/575/,C(1243)/520/,N(1244)/547/ % DATA C(1244)/482/,N(1245)/267/,C(1245)/482/,N(1246)/546/ % DATA C(1246)/481/,N(1247)/267/,C(1247)/483/,N(1248)/267/ % DATA C(1248)/484/,N(1249)/267/,C(1249)/485/,N(1250)/267/ % DATA C(1250)/483/,N(1251)/550/,C(1251)/485/,N(1252)/549/ % DATA C(1252)/484/,N(1253)/267/,C(1253)/486/,N(1254)/502/ % DATA C(1254)/431/,N(1255)/267/,C(1255)/487/,N(1256)/267/ % DATA C(1256)/484/,N(1257)/267/,C(1257)/485/,N(1258)/245/ % DATA C(1258)/572/,N(1259)/267/,C(1259)/484/,N(1260)/267/ % DATA C(1260)/485/,N(1261)/267/,C(1261)/486/,N(1262)/552/ % DATA C(1262)/487/,N(1263)/267/,C(1263)/487/,N(1264)/267/ % DATA C(1264)/486/,N(1265)/267/,C(1265)/488/,N(1266)/267/ % DATA C(1266)/487/,N(1267)/267/,C(1267)/489/,N(1268)/551/ % DATA C(1268)/486/,N(1269)/617/,C(1269)/572/,N(1270)/546/ % DATA C(1270)/481/,N(1271)/267/,C(1271)/492/,N(1272)/267/ % DATA C(1272)/491/,N(1273)/267/,C(1273)/488/,N(1274)/245/ % DATA C(1274)/519/,N(1275)/267/,C(1275)/489/,N(1276)/267/ % DATA C(1276)/488/,N(1277)/267/,C(1277)/490/,N(1278)/267/ % DATA C(1278)/489/,N(1279)/267/,C(1279)/492/,N(1280)/267/ % DATA C(1280)/491/,N(1281)/554/,C(1281)/490/,N(1282)/267/ % DATA C(1282)/492/,N(1283)/267/,C(1283)/491/,N(1284)/553/ % DATA C(1284)/488/,N(1285)/267/,C(1285)/490/,N(1286)/512/ % DATA C(1286)/512/,N(1287)/245/,C(1287)/664/,N(1288)/267/ % DATA C(1288)/490/,N(1289)/555/,C(1289)/491/,N(1290)/267/ % DATA C(1290)/525/,N(1291)/501/,C(1291)/426/,N(1292)/267/ % DATA C(1292)/526/,N(1293)/574/,C(1293)/519/,N(1294)/617/ % DATA C(1294)/572/,N(1295)/500/,C(1295)/425/,N(1296)/267/ % DATA C(1296)/528/,N(1297)/677/,C(1297)/664/,N(1298)/267/ % DATA C(1298)/525/,N(1299)/657/,C(1299)/639/,N(1300)/267/ % DATA C(1300)/526/,N(1301)/267/,C(1301)/525/,N(1302)/507/ % DATA C(1302)/512/,N(1303)/267/,C(1303)/526/,N(1304)/267/ % DATA C(1304)/528/,N(1305)/245/,C(1305)/582/,N(1306)/570/ % DATA C(1306)/512/,N(1307)/580/,C(1307)/528/,N(1308)/267/ % DATA C(1308)/527/,N(1309)/577/,C(1309)/525/,N(1310)/578/ % DATA C(1310)/526/,N(1311)/581/,C(1311)/528/,N(1312)/267/ % DATA C(1312)/529/,N(1313)/499/,C(1313)/421/,N(1314)/267/ % DATA C(1314)/531/,N(1315)/556/,C(1315)/492/,N(1316)/267/ % DATA C(1316)/527/,N(1317)/497/,C(1317)/415/,N(1318)/574/ % DATA C(1318)/519/,N(1319)/267/,C(1319)/527/,N(1320)/267/ % DATA C(1320)/529/,N(1321)/579/,C(1321)/527/,N(1322)/267/ % DATA C(1322)/531/,N(1323)/267/,C(1323)/529/,N(1324)/657/ % DATA C(1324)/639/,N(1325)/267/,C(1325)/531/,N(1326)/496/ % DATA C(1326)/414/,N(1327)/507/,C(1327)/512/,N(1328)/635/ % DATA C(1328)/612/,N(1329)/624/,C(1329)/582/,N(1330)/495/ % DATA C(1330)/412/,N(1331)/570/,C(1331)/512/,N(1332)/513/ % DATA C(1332)/515/,N(1333)/513/,C(1333)/515/,N(1334)/514/ % DATA C(1334)/515/,N(1335)/513/,C(1335)/515/,N(1336)/513/ % DATA C(1336)/515/,N(1337)/267/,C(1337)/532/,N(1338)/513/ % DATA C(1338)/515/,N(1339)/513/,C(1339)/515/,N(1340)/513/ % DATA C(1340)/515/,N(1341)/513/,C(1341)/515/,N(1342)/513/ % DATA C(1342)/515/,N(1343)/530/,C(1343)/530/,N(1344)/245/ % DATA C(1344)/530/,N(1345)/267/,C(1345)/532/,N(1346)/267/ % DATA C(1346)/533/,N(1347)/267/,C(1347)/534/,N(1348)/267/ % DATA C(1348)/532/,N(1349)/571/,C(1349)/571/,N(1350)/245/ % DATA C(1350)/571/,N(1351)/494/,C(1351)/410/,N(1352)/635/ % DATA C(1352)/612/,N(1353)/624/,C(1353)/582/,N(1354)/267/ % DATA C(1354)/533/,N(1355)/267/,C(1355)/534/,N(1356)/0/ % DATA C(1356)/603/,N(1357)/267/,C(1357)/533/,N(1358)/267/ % DATA C(1358)/534/,N(1359)/582/,C(1359)/530/,N(1360)/603/ % DATA C(1360)/603/,N(1361)/655/,C(1361)/655/,N(1362)/672/ % DATA C(1362)/655/,N(1363)/583/,C(1363)/530/,N(1364)/584/ % DATA C(1364)/534/,N(1365)/582/,C(1365)/571/,N(1366)/603/ % DATA C(1366)/603/,N(1367)/603/,C(1367)/603/,N(1368)/513/ % DATA C(1368)/515/,N(1369)/513/,C(1369)/515/,N(1370)/244/ % DATA C(1370)/521/,N(1371)/244/,C(1371)/521/,N(1372)/245/ % DATA C(1372)/521/,N(1373)/244/,C(1373)/521/,N(1374)/244/ % DATA C(1374)/521/,N(1375)/267/,C(1375)/536/,N(1376)/244/ % DATA C(1376)/521/,N(1377)/244/,C(1377)/521/,N(1378)/244/ % DATA C(1378)/521/,N(1379)/244/,C(1379)/521/,N(1380)/244/ % DATA C(1380)/521/,N(1381)/267/,C(1381)/535/,N(1382)/245/ % DATA C(1382)/363/,N(1383)/267/,C(1383)/536/,N(1384)/582/ % DATA C(1384)/530/,N(1385)/585/,C(1385)/535/,N(1386)/267/ % DATA C(1386)/536/,N(1387)/267/,C(1387)/537/,N(1388)/583/ % DATA C(1388)/530/,N(1389)/267/,C(1389)/535/,N(1390)/582/ % DATA C(1390)/571/,N(1391)/587/,C(1391)/537/,N(1392)/267/ % DATA C(1392)/535/,N(1393)/586/,C(1393)/536/,N(1394)/267/ % DATA C(1394)/538/,N(1395)/267/,C(1395)/537/,N(1396)/677/ % DATA C(1396)/677/,N(1397)/686/,C(1397)/677/,N(1398)/267/ % DATA C(1398)/537/,N(1399)/439/,C(1399)/347/,N(1400)/267/ % DATA C(1400)/539/,N(1401)/437/,C(1401)/345/,N(1402)/267/ % DATA C(1402)/538/,N(1403)/436/,C(1403)/344/,N(1404)/588/ % DATA C(1404)/539/,N(1405)/267/,C(1405)/538/,N(1406)/244/ % DATA C(1406)/521/,N(1407)/244/,C(1407)/521/,N(1408)/267/ % DATA C(1408)/539/,N(1409)/267/,C(1409)/540/,N(1410)/267/ % DATA C(1410)/541/,N(1411)/267/,C(1411)/539/,N(1412)/433/ % DATA C(1412)/341/,N(1413)/589/,C(1413)/540/,N(1414)/267/ % DATA C(1414)/542/,N(1415)/432/,C(1415)/339/,N(1416)/267/ % DATA C(1416)/543/,N(1417)/267/,C(1417)/540/,N(1418)/267/ % DATA C(1418)/541/,N(1419)/590/,C(1419)/540/,N(1420)/267/ % DATA C(1420)/540/,N(1421)/267/,C(1421)/541/,N(1422)/267/ % DATA C(1422)/542/,N(1423)/591/,C(1423)/541/,N(1424)/267/ % DATA C(1424)/543/,N(1425)/267/,C(1425)/542/,N(1426)/267/ % DATA C(1426)/544/,N(1427)/267/,C(1427)/543/,N(1428)/431/ % DATA C(1428)/336/,N(1429)/592/,C(1429)/543/,N(1430)/267/ % DATA C(1430)/545/,N(1431)/430/,C(1431)/335/,N(1432)/595/ % DATA C(1432)/546/,N(1433)/594/,C(1433)/545/,N(1434)/267/ % DATA C(1434)/544/,N(1435)/245/,C(1435)/678/,N(1436)/267/ % DATA C(1436)/547/,N(1437)/267/,C(1437)/544/,N(1438)/267/ % DATA C(1438)/545/,N(1439)/593/,C(1439)/544/,N(1440)/267/ % DATA C(1440)/546/,N(1441)/267/,C(1441)/545/,N(1442)/267/ % DATA C(1442)/548/,N(1443)/267/,C(1443)/546/,N(1444)/267/ % DATA C(1444)/547/,N(1445)/687/,C(1445)/678/,N(1446)/596/ % DATA C(1446)/548/,N(1447)/267/,C(1447)/547/,N(1448)/267/ % DATA C(1448)/549/,N(1449)/427/,C(1449)/332/,N(1450)/267/ % DATA C(1450)/548/,N(1451)/245/,C(1451)/574/,N(1452)/597/ % DATA C(1452)/548/,N(1453)/267/,C(1453)/548/,N(1454)/267/ % DATA C(1454)/550/,N(1455)/267/,C(1455)/551/,N(1456)/267/ % DATA C(1456)/549/,N(1457)/595/,C(1457)/546/,N(1458)/426/ % DATA C(1458)/331/,N(1459)/267/,C(1459)/549/,N(1460)/425/ % DATA C(1460)/330/,N(1461)/598/,C(1461)/549/,N(1462)/267/ % DATA C(1462)/550/,N(1463)/267/,C(1463)/551/,N(1464)/267/ % DATA C(1464)/552/,N(1465)/267/,C(1465)/550/,N(1466)/267/ % DATA C(1466)/551/,N(1467)/619/,C(1467)/574/,N(1468)/599/ % DATA C(1468)/550/,N(1469)/267/,C(1469)/553/,N(1470)/267/ % DATA C(1470)/554/,N(1471)/267/,C(1471)/555/,N(1472)/267/ % DATA C(1472)/552/,N(1473)/600/,C(1473)/553/,N(1474)/569/ % DATA C(1474)/569/,N(1475)/267/,C(1475)/552/,N(1476)/267/ % DATA C(1476)/556/,N(1477)/267/,C(1477)/553/,N(1478)/267/ % DATA C(1478)/554/,N(1479)/267/,C(1479)/555/,N(1480)/267/ % DATA C(1480)/553/,N(1481)/267/,C(1481)/554/,N(1482)/601/ % DATA C(1482)/555/,N(1483)/245/,C(1483)/583/,N(1484)/267/ % DATA C(1484)/556/,N(1485)/267/,C(1485)/577/,N(1486)/424/ % DATA C(1486)/328/,N(1487)/267/,C(1487)/556/,N(1488)/421/ % DATA C(1488)/326/,N(1489)/621/,C(1489)/578/,N(1490)/507/ % DATA C(1490)/569/,N(1491)/267/,C(1491)/579/,N(1492)/619/ % DATA C(1492)/574/,N(1493)/267/,C(1493)/577/,N(1494)/615/ % DATA C(1494)/569/,N(1495)/622/,C(1495)/580/,N(1496)/267/ % DATA C(1496)/577/,N(1497)/267/,C(1497)/578/,N(1498)/420/ % DATA C(1498)/324/,N(1499)/267/,C(1499)/579/,N(1500)/267/ % DATA C(1500)/578/,N(1501)/623/,C(1501)/581/,N(1502)/267/ % DATA C(1502)/579/,N(1503)/267/,C(1503)/580/,N(1504)/602/ % DATA C(1504)/556/,N(1505)/267/,C(1505)/584/,N(1506)/267/ % DATA C(1506)/580/,N(1507)/625/,C(1507)/583/,N(1508)/419/ % DATA C(1508)/323/,N(1509)/267/,C(1509)/581/,N(1510)/267/ % DATA C(1510)/585/,N(1511)/418/,C(1511)/322/,N(1512)/267/ % DATA C(1512)/581/,N(1513)/267/,C(1513)/584/,N(1514)/267/ % DATA C(1514)/586/,N(1515)/507/,C(1515)/569/,N(1516)/267/ % DATA C(1516)/584/,N(1517)/417/,C(1517)/321/,N(1518)/267/ % DATA C(1518)/585/,N(1519)/615/,C(1519)/569/,N(1520)/413/ % DATA C(1520)/314/,N(1521)/267/,C(1521)/585/,N(1522)/267/ % DATA C(1522)/586/,N(1523)/639/,C(1523)/615/,N(1524)/267/ % DATA C(1524)/587/,N(1525)/267/,C(1525)/586/,N(1526)/267/ % DATA C(1526)/588/,N(1527)/412/,C(1527)/313/,N(1528)/267/ % DATA C(1528)/589/,N(1529)/411/,C(1529)/312/,N(1530)/267/ % DATA C(1530)/590/,N(1531)/625/,C(1531)/583/,N(1532)/267/ % DATA C(1532)/587/,N(1533)/410/,C(1533)/311/,N(1534)/267/ % DATA C(1534)/588/,N(1535)/267/,C(1535)/587/,N(1536)/267/ % DATA C(1536)/589/,N(1537)/267/,C(1537)/588/,N(1538)/267/ % DATA C(1538)/590/,N(1539)/267/,C(1539)/589/,N(1540)/267/ % DATA C(1540)/591/,N(1541)/267/,C(1541)/590/,N(1542)/267/ % DATA C(1542)/592/,N(1543)/626/,C(1543)/588/,N(1544)/267/ % DATA C(1544)/593/,N(1545)/97/,C(1545)/309/,N(1546)/627/ % DATA C(1546)/592/,N(1547)/639/,C(1547)/615/,N(1548)/267/ % DATA C(1548)/591/,N(1549)/267/,C(1549)/594/,N(1550)/267/ % DATA C(1550)/592/,N(1551)/267/,C(1551)/591/,N(1552)/267/ % DATA C(1552)/593/,N(1553)/267/,C(1553)/592/,N(1554)/267/ % DATA C(1554)/595/,N(1555)/267/,C(1555)/593/,N(1556)/267/ % DATA C(1556)/596/,N(1557)/267/,C(1557)/594/,N(1558)/245/ % DATA C(1558)/625/,N(1559)/245/,C(1559)/624/,N(1560)/267/ % DATA C(1560)/594/,N(1561)/267/,C(1561)/597/,N(1562)/267/ % DATA C(1562)/595/,N(1563)/628/,C(1563)/593/,N(1564)/267/ % DATA C(1564)/596/,N(1565)/267/,C(1565)/595/,N(1566)/629/ % DATA C(1566)/595/,N(1567)/267/,C(1567)/596/,N(1568)/267/ % DATA C(1568)/598/,N(1569)/267/,C(1569)/597/,N(1570)/267/ % DATA C(1570)/599/,N(1571)/245/,C(1571)/617/,N(1572)/267/ % DATA C(1572)/597/,N(1573)/648/,C(1573)/624/,N(1574)/267/ % DATA C(1574)/600/,N(1575)/267/,C(1575)/601/,N(1576)/267/ % DATA C(1576)/598/,N(1577)/649/,C(1577)/625/,N(1578)/267/ % DATA C(1578)/599/,N(1579)/267/,C(1579)/598/,N(1580)/267/ % DATA C(1580)/602/,N(1581)/630/,C(1581)/599/,N(1582)/267/ % DATA C(1582)/600/,N(1583)/631/,C(1583)/601/,N(1584)/267/ % DATA C(1584)/621/,N(1585)/267/,C(1585)/600/,N(1586)/267/ % DATA C(1586)/601/,N(1587)/245/,C(1587)/266/,N(1588)/267/ % DATA C(1588)/602/,N(1589)/255/,C(1589)/254/,N(1590)/629/ % DATA C(1590)/595/,N(1591)/267/,C(1591)/602/,N(1592)/267/ % DATA C(1592)/621/,N(1593)/267/,C(1593)/622/,N(1594)/641/ % DATA C(1594)/617/,N(1595)/267/,C(1595)/621/,N(1596)/245/ % DATA C(1596)/253/,N(1597)/645/,C(1597)/621/,N(1598)/648/ % DATA C(1598)/624/,N(1599)/691/,C(1599)/683/,N(1600)/693/ % DATA C(1600)/683/,N(1601)/267/,C(1601)/622/,N(1602)/649/ % DATA C(1602)/625/,N(1603)/245/,C(1603)/244/,N(1604)/267/ % DATA C(1604)/622/,N(1605)/267/,C(1605)/623/,N(1606)/267/ % DATA C(1606)/626/,N(1607)/647/,C(1607)/623/,N(1608)/347/ % DATA C(1608)/234/,N(1609)/632/,C(1609)/602/,N(1610)/344/ % DATA C(1610)/231/,N(1611)/646/,C(1611)/622/,N(1612)/267/ % DATA C(1612)/627/,N(1613)/267/,C(1613)/623/,N(1614)/267/ % DATA C(1614)/626/,N(1615)/245/,C(1615)/648/,N(1616)/267/ % DATA C(1616)/623/,N(1617)/267/,C(1617)/626/,N(1618)/641/ % DATA C(1618)/617/,N(1619)/267/,C(1619)/628/,N(1620)/267/ % DATA C(1620)/627/,N(1621)/650/,C(1621)/629/,N(1622)/341/ % DATA C(1622)/228/,N(1623)/267/,C(1623)/627/,N(1624)/267/ % DATA C(1624)/630/,N(1625)/340/,C(1625)/227/,N(1626)/267/ % DATA C(1626)/631/,N(1627)/267/,C(1627)/628/,N(1628)/652/ % DATA C(1628)/632/,N(1629)/339/,C(1629)/225/,N(1630)/267/ % DATA C(1630)/628/,N(1631)/338/,C(1631)/224/,N(1632)/267/ % DATA C(1632)/630/,N(1633)/267/,C(1633)/629/,N(1634)/267/ % DATA C(1634)/631/,N(1635)/267/,C(1635)/630/,N(1636)/245/ % DATA C(1636)/649/,N(1637)/267/,C(1637)/631/,N(1638)/658/ % DATA C(1638)/640/,N(1639)/651/,C(1639)/631/,N(1640)/267/ % DATA C(1640)/632/,N(1641)/267/,C(1641)/629/,N(1642)/0/ % DATA C(1642)/636/,N(1643)/664/,C(1643)/648/,N(1644)/267/ % DATA C(1644)/629/,N(1645)/0/,C(1645)/637/,N(1646)/636/ % DATA C(1646)/636/,N(1647)/337/,C(1647)/223/,N(1648)/267/ % DATA C(1648)/632/,N(1649)/0/,C(1649)/638/,N(1650)/336/ % DATA C(1650)/222/,N(1651)/267/,C(1651)/632/,N(1652)/636/ % DATA C(1652)/636/,N(1653)/636/,C(1653)/636/,N(1654)/637/ % DATA C(1654)/637/,N(1655)/637/,C(1655)/637/,N(1656)/637/ % DATA C(1656)/637/,N(1657)/335/,C(1657)/221/,N(1658)/637/ % DATA C(1658)/638/,N(1659)/637/,C(1659)/638/,N(1660)/637/ % DATA C(1660)/638/,N(1661)/267/,C(1661)/645/,N(1662)/658/ % DATA C(1662)/640/,N(1663)/267/,C(1663)/646/,N(1664)/661/ % DATA C(1664)/645/,N(1665)/334/,C(1665)/220/,N(1666)/665/ % DATA C(1666)/649/,N(1667)/664/,C(1667)/648/,N(1668)/674/ % DATA C(1668)/657/,N(1669)/267/,C(1669)/645/,N(1670)/662/ % DATA C(1670)/646/,N(1671)/267/,C(1671)/646/,N(1672)/267/ % DATA C(1672)/645/,N(1673)/267/,C(1673)/647/,N(1674)/267/ % DATA C(1674)/646/,N(1675)/267/,C(1675)/651/,N(1676)/675/ % DATA C(1676)/658/,N(1677)/663/,C(1677)/647/,N(1678)/0/ % DATA C(1678)/656/,N(1679)/667/,C(1679)/651/,N(1680)/333/ % DATA C(1680)/219/,N(1681)/267/,C(1681)/647/,N(1682)/332/ % DATA C(1682)/217/,N(1683)/267/,C(1683)/651/,N(1684)/267/ % DATA C(1684)/647/,N(1685)/267/,C(1685)/661/,N(1686)/267/ % DATA C(1686)/651/,N(1687)/637/,C(1687)/656/,N(1688)/637/ % DATA C(1688)/656/,N(1689)/637/,C(1689)/656/,N(1690)/665/ % DATA C(1690)/649/,N(1691)/267/,C(1691)/662/,N(1692)/674/ % DATA C(1692)/657/,N(1693)/267/,C(1693)/661/,N(1694)/691/ % DATA C(1694)/691/,N(1695)/693/,C(1695)/691/,N(1696)/267/ % DATA C(1696)/661/,N(1697)/331/,C(1697)/216/,N(1698)/670/ % DATA C(1698)/670/,N(1699)/267/,C(1699)/662/,N(1700)/675/ % DATA C(1700)/658/,N(1701)/682/,C(1701)/674/,N(1702)/267/ % DATA C(1702)/662/,N(1703)/330/,C(1703)/215/,N(1704)/670/ % DATA C(1704)/670/,N(1705)/670/,C(1705)/670/,N(1706)/656/ % DATA C(1706)/638/,N(1707)/244/,C(1707)/643/,N(1708)/643/ % DATA C(1708)/643/,N(1709)/245/,C(1709)/643/,N(1710)/244/ % DATA C(1710)/643/,N(1711)/244/,C(1711)/643/,N(1712)/244/ % DATA C(1712)/643/,N(1713)/244/,C(1713)/643/,N(1714)/244/ % DATA C(1714)/643/,N(1715)/244/,C(1715)/643/,N(1716)/244/ % DATA C(1716)/643/,N(1717)/244/,C(1717)/643/,N(1718)/244/ % DATA C(1718)/643/,N(1719)/244/,C(1719)/643/,N(1720)/267/ % DATA C(1720)/663/,N(1721)/267/,C(1721)/667/,N(1722)/703/ % DATA C(1722)/703/,N(1723)/704/,C(1723)/703/,N(1724)/0/ % DATA C(1724)/673/,N(1725)/682/,C(1725)/674/,N(1726)/673/ % DATA C(1726)/656/,N(1727)/0/,C(1727)/681/,N(1728)/267/ % DATA C(1728)/663/,N(1729)/267/,C(1729)/667/,N(1730)/680/ % DATA C(1730)/670/,N(1731)/267/,C(1731)/663/,N(1732)/267/ % DATA C(1732)/667/,N(1733)/637/,C(1733)/673/,N(1734)/637/ % DATA C(1734)/673/,N(1735)/637/,C(1735)/673/,N(1736)/637/ % DATA C(1736)/681/,N(1737)/637/,C(1737)/681/,N(1738)/637/ % DATA C(1738)/681/,N(1739)/708/,C(1739)/708/,N(1740)/709/ % DATA C(1740)/708/,N(1741)/329/,C(1741)/214/,N(1742)/328/ % DATA C(1742)/213/,N(1743)/244/,C(1743)/643/,N(1744)/244/ % DATA C(1744)/643/,N(1745)/244/,C(1745)/650/,N(1746)/650/ % DATA C(1746)/650/,N(1747)/245/,C(1747)/650/,N(1748)/244/ % DATA C(1748)/650/,N(1749)/244/,C(1749)/650/,N(1750)/244/ % DATA C(1750)/650/,N(1751)/244/,C(1751)/650/,N(1752)/244/ % DATA C(1752)/650/,N(1753)/244/,C(1753)/650/,N(1754)/244/ % DATA C(1754)/650/,N(1755)/244/,C(1755)/650/,N(1756)/244/ % DATA C(1756)/650/,N(1757)/244/,C(1757)/650/,N(1758)/327/ % DATA C(1758)/210/,N(1759)/326/,C(1759)/209/,N(1760)/325/ % DATA C(1760)/208/,N(1761)/0/,C(1761)/690/,N(1762)/681/ % DATA C(1762)/673/,N(1763)/324/,C(1763)/207/,N(1764)/0/ % DATA C(1764)/696/,N(1765)/323/,C(1765)/206/,N(1766)/322/ % DATA C(1766)/205/,N(1767)/321/,C(1767)/204/,N(1768)/320/ % DATA C(1768)/202/,N(1769)/245/,C(1769)/665/,N(1770)/637/ % DATA C(1770)/690/,N(1771)/637/,C(1771)/690/,N(1772)/637/ % DATA C(1772)/690/,N(1773)/637/,C(1773)/696/,N(1774)/637/ % DATA C(1774)/696/,N(1775)/637/,C(1775)/696/,N(1776)/319/ % DATA C(1776)/201/,N(1777)/690/,C(1777)/681/,N(1778)/318/ % DATA C(1778)/200/,N(1779)/317/,C(1779)/199/,N(1780)/316/ % DATA C(1780)/198/,N(1781)/244/,C(1781)/650/,N(1782)/244/ % DATA C(1782)/650/,N(1783)/244/,C(1783)/652/,N(1784)/652/ % DATA C(1784)/652/,N(1785)/245/,C(1785)/652/,N(1786)/244/ % DATA C(1786)/652/,N(1787)/244/,C(1787)/652/,N(1788)/244/ % DATA C(1788)/652/,N(1789)/244/,C(1789)/652/,N(1790)/244/ % DATA C(1790)/652/,N(1791)/244/,C(1791)/652/,N(1792)/244/ % DATA C(1792)/652/,N(1793)/244/,C(1793)/652/,N(1794)/244/ % DATA C(1794)/652/,N(1795)/244/,C(1795)/652/,N(1796)/315/ % DATA C(1796)/195/,N(1797)/678/,C(1797)/665/,N(1798)/314/ % DATA C(1798)/194/,N(1799)/313/,C(1799)/193/,N(1800)/312/ % DATA C(1800)/192/,N(1801)/311/,C(1801)/191/,N(1802)/310/ % DATA C(1802)/190/,N(1803)/309/,C(1803)/189/,N(1804)/188/ % DATA C(1804)/188/,N(1805)/255/,C(1805)/162/,N(1806)/245/ % DATA C(1806)/158/,N(1807)/234/,C(1807)/150/,N(1808)/696/ % DATA C(1808)/690/,N(1809)/231/,C(1809)/145/,N(1810)/228/ % DATA C(1810)/139/,N(1811)/227/,C(1811)/138/,N(1812)/226/ % DATA C(1812)/136/,N(1813)/225/,C(1813)/135/,N(1814)/224/ % DATA C(1814)/134/,N(1815)/223/,C(1815)/133/,N(1816)/222/ % DATA C(1816)/132/,N(1817)/221/,C(1817)/131/,N(1818)/699/ % DATA C(1818)/696/,N(1819)/244/,C(1819)/652/,N(1820)/244/ % DATA C(1820)/652/,N(1821)/678/,C(1821)/665/,N(1822)/220/ % DATA C(1822)/130/,N(1823)/219/,C(1823)/129/,N(1824)/218/ % DATA C(1824)/128/,N(1825)/215/,C(1825)/125/,N(1826)/214/ % DATA C(1826)/124/,N(1827)/213/,C(1827)/123/,N(1828)/211/ % DATA C(1828)/121/,N(1829)/210/,C(1829)/120/,N(1830)/209/ % DATA C(1830)/119/,N(1831)/208/,C(1831)/118/,N(1832)/207/ % DATA C(1832)/117/,N(1833)/206/,C(1833)/116/,N(1834)/205/ % DATA C(1834)/115/,N(1835)/204/,C(1835)/114/,N(1836)/203/ % DATA C(1836)/113/,N(1837)/202/,C(1837)/112/,N(1838)/669/ % DATA C(1838)/652/,N(1839)/244/,C(1839)/659/,N(1840)/244/ % DATA C(1840)/659/,N(1841)/245/,C(1841)/659/,N(1842)/244/ % DATA C(1842)/659/,N(1843)/244/,C(1843)/659/,N(1844)/201/ % DATA C(1844)/111/,N(1845)/244/,C(1845)/659/,N(1846)/244/ % DATA C(1846)/659/,N(1847)/244/,C(1847)/659/,N(1848)/244/ % DATA C(1848)/659/,N(1849)/244/,C(1849)/659/,N(1850)/200/ % DATA C(1850)/110/,N(1851)/198/,C(1851)/108/,N(1852)/44/ % DATA C(1852)/107/,N(1853)/196/,C(1853)/105/,N(1854)/195/ % DATA C(1854)/104/,N(1855)/194/,C(1855)/103/,N(1856)/193/ % DATA C(1856)/101/,N(1857)/192/,C(1857)/100/,N(1858)/191/ % DATA C(1858)/99/,N(1859)/190/,C(1859)/98/,N(1860)/97/ % DATA C(1860)/96/,N(1861)/189/,C(1861)/95/,N(1862)/97/ % DATA C(1862)/94/,N(1863)/188/,C(1863)/93/,N(1864)/150/ % DATA C(1864)/87/,N(1865)/139/,C(1865)/80/,N(1866)/138/ % DATA C(1866)/79/,N(1867)/137/,C(1867)/78/,N(1868)/136/ % DATA C(1868)/77/,N(1869)/135/,C(1869)/76/,N(1870)/134/ % DATA C(1870)/75/,N(1871)/133/,C(1871)/74/,N(1872)/132/ % DATA C(1872)/73/,N(1873)/131/,C(1873)/72/,N(1874)/130/ % DATA C(1874)/71/,N(1875)/244/,C(1875)/659/,N(1876)/244/ % DATA C(1876)/659/,N(1877)/244/,C(1877)/666/,N(1878)/244/ % DATA C(1878)/666/,N(1879)/245/,C(1879)/666/,N(1880)/244/ % DATA C(1880)/666/,N(1881)/244/,C(1881)/666/,N(1882)/129/ % DATA C(1882)/70/,N(1883)/244/,C(1883)/666/,N(1884)/244/ % DATA C(1884)/666/,N(1885)/244/,C(1885)/666/,N(1886)/244/ % DATA C(1886)/666/,N(1887)/244/,C(1887)/666/,N(1888)/128/ % DATA C(1888)/69/,N(1889)/127/,C(1889)/68/,N(1890)/126/ % DATA C(1890)/66/,N(1891)/125/,C(1891)/65/,N(1892)/124/ % DATA C(1892)/64/,N(1893)/123/,C(1893)/63/,N(1894)/120/ % DATA C(1894)/61/,N(1895)/117/,C(1895)/59/,N(1896)/116/ % DATA C(1896)/58/,N(1897)/115/,C(1897)/57/,N(1898)/114/ % DATA C(1898)/56/,N(1899)/113/,C(1899)/55/,N(1900)/108/ % DATA C(1900)/51/,N(1901)/107/,C(1901)/50/,N(1902)/103/ % DATA C(1902)/48/,N(1903)/102/,C(1903)/47/,N(1904)/101/ % DATA C(1904)/46/,N(1905)/100/,C(1905)/45/,N(1906)/43/ % DATA C(1906)/42/,N(1907)/99/,C(1907)/41/,N(1908)/98/ % DATA C(1908)/40/,N(1909)/97/,C(1909)/39/,N(1910)/96/ % DATA C(1910)/38/,N(1911)/94/,C(1911)/36/,N(1912)/33/ % DATA C(1912)/32/,N(1913)/244/,C(1913)/666/,N(1914)/244/ % DATA C(1914)/666/,N(1915)/244/,C(1915)/668/,N(1916)/244/ % DATA C(1916)/668/,N(1917)/245/,C(1917)/668/,N(1918)/244/ % DATA C(1918)/668/,N(1919)/244/,C(1919)/668/,N(1920)/244/ % DATA C(1920)/668/,N(1921)/244/,C(1921)/668/,N(1922)/244/ % DATA C(1922)/668/,N(1923)/244/,C(1923)/668/,N(1924)/244/ % DATA C(1924)/668/,N(1925)/31/,C(1925)/30/,N(1926)/80/ % DATA C(1926)/24/,N(1927)/70/,C(1927)/20/,N(1928)/67/ % DATA C(1928)/18/,N(1929)/64/,C(1929)/16/,N(1930)/60/ % DATA C(1930)/14/,N(1931)/43/,C(1931)/7/,N(1932)/33/,C(1932)/5/ % DATA N(1933)/31/,C(1933)/4/,N(1934)/0/,C(1934)/0/,N(1935)/0/ % DATA C(1935)/0/,N(1936)/0/,C(1936)/0/,N(1937)/0/,C(1937)/0/ % DATA N(1938)/0/,C(1938)/0/,N(1939)/0/,C(1939)/0/,N(1940)/0/ % DATA C(1940)/0/,N(1941)/0/,C(1941)/0/,N(1942)/0/,C(1942)/0/ % DATA N(1943)/0/,C(1943)/0/,N(1944)/0/,C(1944)/0/,N(1945)/0/ % DATA C(1945)/0/,N(1946)/0/,C(1946)/0/,N(1947)/0/,C(1947)/0/ % DATA N(1948)/0/,C(1948)/0/,N(1949)/0/,C(1949)/0/,N(1950)/0/ % DATA C(1950)/0/,N(1951)/244/,C(1951)/668/,N(1952)/244/ % DATA C(1952)/668/,N(1953)/244/,C(1953)/684/,N(1954)/244/ % DATA C(1954)/684/,N(1955)/245/,C(1955)/684/,N(1956)/244/ % DATA C(1956)/684/,N(1957)/244/,C(1957)/684/,N(1958)/244/ % DATA C(1958)/684/,N(1959)/244/,C(1959)/684/,N(1960)/244/ % DATA C(1960)/684/,N(1961)/244/,C(1961)/684/,N(1962)/244/ % DATA C(1962)/684/,N(1963)/244/,C(1963)/684/,N(1964)/244/ % DATA C(1964)/684/,N(1965)/244/,C(1965)/684/,N(1966)/0/ % DATA C(1966)/0/,N(1967)/0/,C(1967)/0/,N(1968)/0/,C(1968)/0/ % DATA N(1969)/0/,C(1969)/0/,N(1970)/0/,C(1970)/0/,N(1971)/0/ % DATA C(1971)/0/,N(1972)/0/,C(1972)/0/,N(1973)/0/,C(1973)/0/ % DATA N(1974)/0/,C(1974)/0/,N(1975)/0/,C(1975)/0/,N(1976)/0/ % DATA C(1976)/0/,N(1977)/0/,C(1977)/0/,N(1978)/0/,C(1978)/0/ % DATA N(1979)/0/,C(1979)/0/,N(1980)/0/,C(1980)/0/,N(1981)/0/ % DATA C(1981)/0/,N(1982)/0/,C(1982)/0/,N(1983)/0/,C(1983)/0/ % DATA N(1984)/0/,C(1984)/0/,N(1985)/0/,C(1985)/0/,N(1986)/0/ % DATA C(1986)/0/,N(1987)/0/,C(1987)/0/,N(1988)/0/,C(1988)/0/ % DATA N(1989)/244/,C(1989)/684/,N(1990)/244/,C(1990)/684/ % DATA N(1991)/244/,C(1991)/694/,N(1992)/244/,C(1992)/694/ % DATA N(1993)/245/,C(1993)/694/,N(1994)/244/,C(1994)/694/ % DATA N(1995)/244/,C(1995)/694/,N(1996)/0/,C(1996)/0/ % DATA N(1997)/244/,C(1997)/694/,N(1998)/244/,C(1998)/694/ % DATA N(1999)/244/,C(1999)/694/,N(2000)/244/,C(2000)/694/ % DATA N(2001)/244/,C(2001)/694/,N(2002)/0/,C(2002)/0/,N(2003)/0/ % DATA C(2003)/0/,N(2004)/0/,C(2004)/0/,N(2005)/0/,C(2005)/0/ % DATA N(2006)/0/,C(2006)/0/,N(2007)/0/,C(2007)/0/,N(2008)/0/ % DATA C(2008)/0/,N(2009)/0/,C(2009)/0/,N(2010)/0/,C(2010)/0/ % DATA N(2011)/0/,C(2011)/0/,N(2012)/0/,C(2012)/0/,N(2013)/0/ % DATA C(2013)/0/,N(2014)/0/,C(2014)/0/,N(2015)/0/,C(2015)/0/ % DATA N(2016)/0/,C(2016)/0/,N(2017)/0/,C(2017)/0/,N(2018)/0/ % DATA C(2018)/0/,N(2019)/0/,C(2019)/0/,N(2020)/0/,C(2020)/0/ % DATA N(2021)/0/,C(2021)/0/,N(2022)/0/,C(2022)/0/,N(2023)/0/ % DATA C(2023)/0/,N(2024)/0/,C(2024)/0/,N(2025)/0/,C(2025)/0/ % DATA N(2026)/0/,C(2026)/0/,N(2027)/244/,C(2027)/694/ % DATA N(2028)/697/,C(2028)/694/,N(2029)/702/,C(2029)/699/ % DATA N(2030)/703/,C(2030)/699/,N(2031)/704/,C(2031)/699/ % DATA N(2032)/702/,C(2032)/699/,N(2033)/702/,C(2033)/699/ % DATA N(2034)/702/,C(2034)/699/,N(2035)/702/,C(2035)/699/ % DATA N(2036)/702/,C(2036)/699/,N(2037)/702/,C(2037)/699/ % DATA N(2038)/702/,C(2038)/699/,N(2039)/0/,C(2039)/0/,N(2040)/0/ % DATA C(2040)/0/,N(2041)/0/,C(2041)/0/,N(2042)/0/,C(2042)/0/ % DATA N(2043)/0/,C(2043)/0/,N(2044)/0/,C(2044)/0/,N(2045)/0/ % DATA C(2045)/0/,N(2046)/0/,C(2046)/0/,N(2047)/0/,C(2047)/0/ % DATA N(2048)/0/,C(2048)/0/,N(2049)/0/,C(2049)/0/,N(2050)/0/ % DATA C(2050)/0/,N(2051)/0/,C(2051)/0/,N(2052)/0/,C(2052)/0/ % DATA N(2053)/0/,C(2053)/0/,N(2054)/0/,C(2054)/0/,N(2055)/0/ % DATA C(2055)/0/,N(2056)/0/,C(2056)/0/,N(2057)/0/,C(2057)/0/ % DATA N(2058)/0/,C(2058)/0/,N(2059)/0/,C(2059)/0/,N(2060)/0/ % DATA C(2060)/0/,N(2061)/0/,C(2061)/0/,N(2062)/0/,C(2062)/0/ % DATA N(2063)/0/,C(2063)/0/,N(2064)/0/,C(2064)/0/,N(2065)/702/ % DATA C(2065)/699/,N(2066)/702/,C(2066)/699/,N(2067)/702/ % DATA C(2067)/705/,N(2068)/702/,C(2068)/705/,N(2069)/704/ % DATA C(2069)/705/,N(2070)/702/,C(2070)/705/,N(2071)/702/ % DATA C(2071)/705/,N(2072)/702/,C(2072)/705/,N(2073)/702/ % DATA C(2073)/705/,N(2074)/702/,C(2074)/705/,N(2075)/702/ % DATA C(2075)/705/,N(2076)/702/,C(2076)/705/,N(2077)/0/ % DATA C(2077)/0/,N(2078)/0/,C(2078)/0/,N(2079)/0/,C(2079)/0/ % DATA N(2080)/0/,C(2080)/0/,N(2081)/0/,C(2081)/0/,N(2082)/0/ % DATA C(2082)/0/,N(2083)/0/,C(2083)/0/,N(2084)/0/,C(2084)/0/ % DATA N(2085)/0/,C(2085)/0/,N(2086)/0/,C(2086)/0/,N(2087)/0/ % DATA C(2087)/0/,N(2088)/0/,C(2088)/0/,N(2089)/0/,C(2089)/0/ % DATA N(2090)/0/,C(2090)/0/,N(2091)/0/,C(2091)/0/,N(2092)/0/ % DATA C(2092)/0/,N(2093)/0/,C(2093)/0/,N(2094)/0/,C(2094)/0/ % DATA N(2095)/0/,C(2095)/0/,N(2096)/0/,C(2096)/0/,N(2097)/0/ % DATA C(2097)/0/,N(2098)/0/,C(2098)/0/,N(2099)/0/,C(2099)/0/ % DATA N(2100)/0/,C(2100)/0/,N(2101)/0/,C(2101)/0/,N(2102)/0/ % DATA C(2102)/0/,N(2103)/702/,C(2103)/705/,N(2104)/702/ % DATA C(2104)/705/,N(2105)/707/,C(2105)/706/,N(2106)/708/ % DATA C(2106)/706/,N(2107)/709/,C(2107)/706/,N(2108)/707/ % DATA C(2108)/706/,N(2109)/707/,C(2109)/706/,N(2110)/707/ % DATA C(2110)/706/,N(2111)/707/,C(2111)/706/,N(2112)/707/ % DATA C(2112)/706/,N(2113)/707/,C(2113)/706/,N(2114)/707/ % DATA C(2114)/706/,N(2115)/0/,C(2115)/0/,N(2116)/0/,C(2116)/0/ % DATA N(2117)/0/,C(2117)/0/,N(2118)/0/,C(2118)/0/,N(2119)/0/ % DATA C(2119)/0/,N(2120)/0/,C(2120)/0/,N(2121)/0/,C(2121)/0/ % DATA N(2122)/0/,C(2122)/0/,N(2123)/0/,C(2123)/0/,N(2124)/0/ % DATA C(2124)/0/,N(2125)/0/,C(2125)/0/,N(2126)/0/,C(2126)/0/ % DATA N(2127)/0/,C(2127)/0/,N(2128)/0/,C(2128)/0/,N(2129)/0/ % DATA C(2129)/0/,N(2130)/0/,C(2130)/0/,N(2131)/0/,C(2131)/0/ % DATA N(2132)/0/,C(2132)/0/,N(2133)/0/,C(2133)/0/,N(2134)/0/ % DATA C(2134)/0/,N(2135)/0/,C(2135)/0/,N(2136)/0/,C(2136)/0/ % DATA N(2137)/0/,C(2137)/0/,N(2138)/0/,C(2138)/0/,N(2139)/0/ % DATA C(2139)/0/,N(2140)/0/,C(2140)/0/,N(2141)/707/,C(2141)/706/ % DATA N(2142)/707/,C(2142)/706/,N(2143)/707/,C(2143)/710/ % DATA N(2144)/707/,C(2144)/710/,N(2145)/709/,C(2145)/710/ % DATA N(2146)/707/,C(2146)/710/,N(2147)/707/,C(2147)/710/ % DATA N(2148)/707/,C(2148)/710/,N(2149)/707/,C(2149)/710/ % DATA N(2150)/707/,C(2150)/710/,N(2151)/707/,C(2151)/710/ % DATA N(2152)/707/,C(2152)/710/,N(2153)/0/,C(2153)/0/,N(2154)/0/ % DATA C(2154)/0/,N(2155)/0/,C(2155)/0/,N(2156)/0/,C(2156)/0/ % DATA N(2157)/0/,C(2157)/0/,N(2158)/0/,C(2158)/0/,N(2159)/0/ % DATA C(2159)/0/,N(2160)/0/,C(2160)/0/,N(2161)/0/,C(2161)/0/ % DATA N(2162)/0/,C(2162)/0/,N(2163)/0/,C(2163)/0/,N(2164)/0/ % DATA C(2164)/0/,N(2165)/0/,C(2165)/0/,N(2166)/0/,C(2166)/0/ % DATA N(2167)/0/,C(2167)/0/,N(2168)/0/,C(2168)/0/,N(2169)/0/ % DATA C(2169)/0/,N(2170)/0/,C(2170)/0/,N(2171)/0/,C(2171)/0/ % DATA N(2172)/0/,C(2172)/0/,N(2173)/0/,C(2173)/0/,N(2174)/0/ % DATA C(2174)/0/,N(2175)/0/,C(2175)/0/,N(2176)/0/,C(2176)/0/ % DATA N(2177)/0/,C(2177)/0/,N(2178)/0/,C(2178)/0/,N(2179)/707/ % DATA C(2179)/710/,N(2180)/707/,C(2180)/710/,N(2181)/707/ % DATA C(2181)/741/,N(2182)/707/,C(2182)/741/,N(2183)/707/ % DATA C(2183)/741/,N(2184)/707/,C(2184)/741/,N(2185)/707/ % DATA C(2185)/741/,N(2186)/710/,C(2186)/740/,N(2187)/710/ % DATA C(2187)/740/,N(2188)/710/,C(2188)/740/,N(2189)/710/ % DATA C(2189)/740/,N(2190)/710/,C(2190)/740/,N(2191)/702/ % DATA C(2191)/739/,N(2192)/702/,C(2192)/739/,N(2193)/702/ % DATA C(2193)/739/,N(2194)/702/,C(2194)/739/,N(2195)/702/ % DATA C(2195)/739/,N(2196)/705/,C(2196)/738/,N(2197)/705/ % DATA C(2197)/738/,N(2198)/705/,C(2198)/738/,N(2199)/705/ % DATA C(2199)/738/,N(2200)/705/,C(2200)/738/,N(2201)/694/ % DATA C(2201)/737/,N(2202)/694/,C(2202)/737/,N(2203)/694/ % DATA C(2203)/737/,N(2204)/694/,C(2204)/737/,N(2205)/694/ % DATA C(2205)/737/,N(2206)/692/,C(2206)/736/,N(2207)/692/ % DATA C(2207)/736/,N(2208)/692/,C(2208)/736/,N(2209)/692/ % DATA C(2209)/736/,N(2210)/692/,C(2210)/736/,N(2211)/685/ % DATA C(2211)/735/,N(2212)/685/,C(2212)/735/,N(2213)/685/ % DATA C(2213)/735/,N(2214)/685/,C(2214)/735/,N(2215)/685/ % DATA C(2215)/735/,N(2216)/671/,C(2216)/734/,N(2217)/671/ % DATA C(2217)/734/,N(2218)/671/,C(2218)/734/,N(2219)/671/ % DATA C(2219)/734/,N(2220)/671/,C(2220)/734/,N(2221)/670/ % DATA C(2221)/733/,N(2222)/668/,C(2222)/732/,N(2223)/668/ % DATA C(2223)/732/,N(2224)/668/,C(2224)/732/,N(2225)/668/ % DATA C(2225)/732/,N(2226)/668/,C(2226)/732/,N(2227)/666/ % DATA C(2227)/731/,N(2228)/666/,C(2228)/731/,N(2229)/666/ % DATA C(2229)/731/,N(2230)/666/,C(2230)/731/,N(2231)/666/ % DATA C(2231)/731/,N(2232)/659/,C(2232)/730/,N(2233)/659/ % DATA C(2233)/730/,N(2234)/659/,C(2234)/730/,N(2235)/659/ % DATA C(2235)/730/,N(2236)/659/,C(2236)/730/,N(2237)/637/ % DATA C(2237)/729/,N(2238)/0/,C(2238)/0/,N(2239)/0/,C(2239)/0/ % DATA N(2240)/637/,C(2240)/729/,N(2241)/636/,C(2241)/728/ % DATA N(2242)/0/,C(2242)/0/,N(2243)/0/,C(2243)/0/,N(2244)/636/ % DATA C(2244)/728/,N(2245)/603/,C(2245)/727/,N(2246)/0/ % DATA C(2246)/0/,N(2247)/0/,C(2247)/0/,N(2248)/603/,C(2248)/727/ % DATA N(2249)/513/,C(2249)/726/,N(2250)/513/,C(2250)/726/ % DATA N(2251)/513/,C(2251)/726/,N(2252)/513/,C(2252)/726/ % DATA N(2253)/513/,C(2253)/726/,N(2254)/521/,C(2254)/725/ % DATA N(2255)/521/,C(2255)/725/,N(2256)/521/,C(2256)/725/ % DATA N(2257)/521/,C(2257)/725/,N(2258)/521/,C(2258)/725/ % DATA N(2259)/515/,C(2259)/724/,N(2260)/515/,C(2260)/724/ % DATA N(2261)/515/,C(2261)/724/,N(2262)/515/,C(2262)/724/ % DATA N(2263)/515/,C(2263)/724/,N(2264)/459/,C(2264)/723/ % DATA N(2265)/459/,C(2265)/723/,N(2266)/459/,C(2266)/723/ % DATA N(2267)/459/,C(2267)/723/,N(2268)/459/,C(2268)/723/ % DATA N(2269)/308/,C(2269)/722/,N(2270)/0/,C(2270)/0/,N(2271)/0/ % DATA C(2271)/0/,N(2272)/308/,C(2272)/722/,N(2273)/267/ % DATA C(2273)/721/,N(2274)/267/,C(2274)/721/,N(2275)/267/ % DATA C(2275)/721/,N(2276)/267/,C(2276)/721/,N(2277)/267/ % DATA C(2277)/721/,N(2278)/265/,C(2278)/720/,N(2279)/265/ % DATA C(2279)/720/,N(2280)/265/,C(2280)/720/,N(2281)/265/ % DATA C(2281)/720/,N(2282)/265/,C(2282)/720/,N(2283)/254/ % DATA C(2283)/719/,N(2284)/254/,C(2284)/719/,N(2285)/254/ % DATA C(2285)/719/,N(2286)/254/,C(2286)/719/,N(2287)/254/ % DATA C(2287)/719/,N(2288)/252/,C(2288)/718/,N(2289)/252/ % DATA C(2289)/718/,N(2290)/252/,C(2290)/718/,N(2291)/252/ % DATA C(2291)/718/,N(2292)/252/,C(2292)/718/,N(2293)/244/ % DATA C(2293)/717/,N(2294)/244/,C(2294)/717/,N(2295)/244/ % DATA C(2295)/717/,N(2296)/244/,C(2296)/717/,N(2297)/244/ % DATA C(2297)/717/,N(2298)/197/,C(2298)/716/,N(2299)/197/ % DATA C(2299)/716/,N(2300)/44/,C(2300)/715/,N(2301)/44/ % DATA C(2301)/715/,N(2302)/42/,C(2302)/714/,N(2303)/42/ % DATA C(2303)/714/,N(2304)/0/,C(2304)/0/,N(2305)/42/ % DATA C(2305)/714/,N(2306)/42/,C(2306)/714/,N(2307)/32/ % DATA C(2307)/713/,N(2308)/32/,C(2308)/713/,N(2309)/32/ % DATA C(2309)/713/,N(2310)/32/,C(2310)/713/,N(2311)/32/ % DATA C(2311)/713/,N(2312)/30/,C(2312)/712/,N(2313)/30/ % DATA C(2313)/712/,N(2314)/0/,C(2314)/0/,N(2315)/30/ % DATA C(2315)/712/,N(2316)/30/,C(2316)/712/,N(2317)/0/ % DATA C(2317)/711/,N(2318)/0/,C(2318)/711/,N(2319)/0/ % DATA C(2319)/711/,N(2320)/0/,C(2320)/711/,N(2321)/0/ % DATA C(2321)/711/,N(2322)/0/,C(2322)/711/,N(2323)/0/ % DATA C(2323)/711/,N(2324)/0/,C(2324)/711/,N(2325)/0/ % DATA C(2325)/711/,N(2326)/0/,C(2326)/711/,N(2327)/0/ % DATA C(2327)/711/,N(2328)/0/,C(2328)/711/,N(2329)/0/ % DATA C(2329)/711/,N(2330)/0/,C(2330)/711/,N(2331)/0/ % DATA C(2331)/711/,N(2332)/0/,C(2332)/711/,N(2333)/0/ % DATA C(2333)/711/,N(2334)/0/,C(2334)/711/,N(2335)/0/ % DATA C(2335)/711/,N(2336)/0/,C(2336)/711/,N(2337)/0/ % DATA C(2337)/711/,N(2338)/0/,C(2338)/711/,N(2339)/0/ % DATA C(2339)/711/,N(2340)/0/,C(2340)/711/,N(2341)/0/ % DATA C(2341)/711/,N(2342)/0/,C(2342)/711/,N(2343)/0/ % DATA C(2343)/711/,N(2344)/0/,C(2344)/711/,N(2345)/0/ % DATA C(2345)/711/,N(2346)/0/,C(2346)/711/,N(2347)/0/ % DATA C(2347)/711/,N(2348)/0/,C(2348)/711/,N(2349)/0/ % DATA C(2349)/711/,N(2350)/0/,C(2350)/711/,N(2351)/0/ % DATA C(2351)/711/,N(2352)/0/,C(2352)/711/,N(2353)/0/ % DATA C(2353)/711/,N(2354)/0/,C(2354)/711/,N(2355)/0/ % DATA C(2355)/711/,N(2356)/0/,C(2356)/711/,N(2357)/0/ % DATA C(2357)/711/,N(2358)/0/,C(2358)/711/,N(2359)/0/ % DATA C(2359)/711/,N(2360)/0/,C(2360)/711/,N(2361)/0/ % DATA C(2361)/711/,N(2362)/0/,C(2362)/711/,N(2363)/0/ % DATA C(2363)/711/,N(2364)/0/,C(2364)/711/,N(2365)/0/ % DATA C(2365)/711/,N(2366)/0/,C(2366)/711/,N(2367)/0/ % DATA C(2367)/711/,N(2368)/0/,C(2368)/711/,N(2369)/0/ % DATA C(2369)/711/,N(2370)/0/,C(2370)/711/,N(2371)/0/ % DATA C(2371)/711/,N(2372)/0/,C(2372)/711/,N(2373)/0/ % DATA C(2373)/711/,N(2374)/0/,C(2374)/711/,N(2375)/0/ % DATA C(2375)/711/,N(2376)/0/,C(2376)/711/,N(2377)/0/ % DATA C(2377)/711/,N(2378)/0/,C(2378)/711/,N(2379)/0/ % DATA C(2379)/711/ # Initialize this run. curstate = STARTSTATE begbufp = curbufp if ( buffer(curbufp) == '@n' ) { buffer(curbufp) = SYM_BOL curbufp = mod(curbufp+BUFSIZE-2,BUFSIZE)+1 } if ( machcond != 0 ) { buffer(curbufp) = machcond curbufp = mod(curbufp+BUFSIZE-2,BUFSIZE)+1 } # Simulate the machine until it jams. repeat { # Get the next character, either by reading it in, or if there # are some still left over from the last run, by simply advancing # curbufp. if ( endbufp == curbufp ) { endbufp = mod ( endbufp, BUFSIZE ) + 1 if ( endbufp == begbufp ) call error ( "lexinterp: buffer overflow" ) buffer(endbufp) = lexinput ( buffer(endbufp) ) } curbufp = mod ( curbufp, BUFSIZE ) + 1 sym = buffer(curbufp) if ( sym == EOF ) sym = SYM_EOF sym = e(sym) while ( c(b(curstate)+sym) != curstate ) { curstate = d(curstate) # it is Assumed that templates are NEVER chained; that means # that the default value for a template is ALWAYS the JAMBASE. # this means that if we are about to index into the base/def # pair for a template, we can change the 'sym' from being # the equivalence class of the input character to being the # meta-equivalence class of the input character. If the template # fails to Check, we will then default to the JAMBASE, which will # jam no matter what it is indexed with, including meta-equivalence # classes. if ( curstate >= FIRST_TEMPLATE_BASE ) sym = m(sym) } curstate = n(b(curstate)+sym) statebuf(curbufp) = curstate if ( curstate == 0 ) { # put back the character we just read curbufp = mod(curbufp+BUFSIZE-2,BUFSIZE)+1 break } if ( b(curstate) == JAMBASE ) break } # The machine has jammed. Figure out which pattern was accepted. for ( bufp=curbufp; bufp != begbufp; bufp=mod(bufp+BUFSIZE-2,BUFSIZE)+1 ) { lp = l(statebuf(bufp)) if ( lp != NIL ) { curbufp = bufp return ( a(lp) ) } } call remark ( "lexinterp: jammed with NO accepting states _ - shouldn't happen" ) call printf( "begbufp = %d, curbufp = %d, dump follows:@n", begbufp, curbufp ) for ( bufp=begbufp; bufp != mod(curbufp,BUFSIZE)+1; bufp=mod(bufp,BUFSIZE)+1) call printf( "statebuf[%d] = %d@n", bufp, statebuf(bufp) ) DRETURN return end ############################################################################### # # # User routines. # # # ############################################################################### # Section 3 code goes here. ### main program # DRIVER(ratfix) integer lexscan, stat call lexinit stat = lexscan(0) DRETURN end ### doinclude - outputs a include line with double quotes subroutine doinclude integer i, length character buf(MAXLINE) call lexgtext( buf, MAXLINE ) i = length(buf) while ( buf(i) != ' ' & buf(i) != '@t' ) i = i - 1 buf(i+1) = EOS call putlin ( buf, STDOUT ) call putc ( '"' ) call outid call putc ( '"' ) return end ### outid - outputs an {ID} as found by a rule. subroutine outid integer i, length character buf( MAXLINE ) call lexgtext( buf, MAXLINE ) i = length(buf) while ( ( buf(i) != ' ' ) & ( buf(i) != '@t' ) ) i = i - 1 i = i + 1 while ( buf(i) != EOS ) { call putc( buf(i) ) i = i + 1 } return end ### chklbl - Checks the current line for a label. subroutine chklbl # If it finds one, it outputs the label and a continue statement. integer i, ctoi, j character buf( MAXLINE ) call lexgtext( buf, MAXLINE ) j = 1 i = ctoi(buf,j) if ( i > 0 ) call printf( "%d continue@n", i ) return end ### outdef - looks into a %undefine([]) subroutine outdef(line) integer line integer i, index character buf( MAXLINE ) call lexgtext( buf, MAXLINE ) i = index( buf, '[' ) if ( i <= 0 ) { call fprintf(ERROUT, "Missing [ in %%undefine at line %d.", line ) return } i = i + 1 # skip over [ while ( ( buf(i) != ']' ) & ( buf(i) != EOS ) ) { call putc( buf(i) ) i = i + 1 } if ( buf(i) == EOS ) call fprintf(ERROUT, "Missing ] in %%undefine at line %d.", line ) return end #-t- ratfix.r 125347 ascii 05Jan84 08:27:14 #-t- ratfix.all 135312 ascii 05Jan84 08:28:23