rip-lang 3.0.2 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -5
- package/README.md +26 -3
- package/docs/RIP-INTERNALS.md +5 -7
- package/docs/RIP-LANG.md +7 -2
- package/docs/dist/rip.browser.js +1670 -333
- package/docs/dist/rip.browser.min.js +298 -224
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/package.json +6 -2
- package/src/browser.js +1 -1
- package/src/compiler.js +46 -5
- package/src/components.js +1239 -0
- package/src/grammar/grammar.rip +37 -1
- package/src/grammar/solar.rip +11 -11
- package/src/lexer.js +286 -2
- package/src/parser.js +216 -214
- package/src/repl.js +53 -1
- package/src/tags.js +62 -0
|
@@ -1,240 +1,309 @@
|
|
|
1
|
-
var
|
|
2
|
-
`),F=F.replace(
|
|
3
|
-
`+F;return F}advance(F){let
|
|
4
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=F}emit(F,
|
|
5
|
-
`)return 0;let
|
|
6
|
-
`);if(this.isUnfinished()){if(
|
|
7
|
-
`,{len:0})}isUnfinished(){return
|
|
8
|
-
`)
|
|
9
|
-
`)}if(A===0&&T?.length===3)M=M.replace(/^\n/,"");if(A===F.length-1&&T?.length===3)M=M.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${M}"`,{len:W.length,data:{quote:T}})}}if(F.length>1)this.emit("STRING_END",")",{len:T?.length||0});return Y}numberToken(){let F=N1.exec(this.chunk);if(!F)return 0;let T=F[0],U=T.length,Y={row:this.row,col:this.col};if(/^0[BOX]/.test(T))y(`radix prefix in '${T}' must be lowercase`,{...Y,col:Y.col+1});if(/^0\d*[89]/.test(T))y(`decimal literal '${T}' must not be prefixed with '0'`,{...Y,len:U});if(/^0\d+/.test(T))y(`octal literal '${T}' must be prefixed with '0o'`,{...Y,len:U});let A=p1(T),$=A===1/0?"INFINITY":"NUMBER",W={parsedValue:A};if($==="INFINITY")W.original=T;return this.emit($,T,{len:U,data:W}),U}regexToken(){let F=this.matchWithInterpolations(b1,"///");if(F){let{tokens:Z,index:Q}=F,[X]=U1.exec(this.chunk.slice(Q)),J=Q+X.length;if(Z.length===1||!Z.some((K)=>K[0]==="TOKENS")){let K=Z[0]?.[1]||"";this.emit("REGEX",`/${K}/${X}`,{len:J,data:{delimiter:"///",heregex:{flags:X}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:J-X.length}),X)this.emit(",",",",{len:0}),this.emit("STRING",`"${X}"`,{len:X.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return J}let T=v1.exec(this.chunk);if(!T)return 0;let[U,Y,A]=T,$=this.prev();if($){if($.spaced&&n.has($[0])&&(!A||/^\/=?\s/.test(U)))return 0;if(q1.has($[0])&&!($.spaced&&n.has($[0])))return 0}if(!A)y("missing / (unclosed regex)",{row:this.row,col:this.col});let W=U.length,[M]=U1.exec(this.chunk.slice(W)),D=W+M.length;if(!g1.test(M))y(`invalid regular expression flags ${M}`,{row:this.row,col:this.col+W,len:M.length});return this.emit("REGEX",`/${Y}/${M}`,{len:D,data:{delimiter:"/"}}),D}jsToken(){if(this.chunk[0]!=="`")return 0;let F=l1.exec(this.chunk)||x1.exec(this.chunk);if(!F)return 0;let T=F[1],U=F[0].length;return this.emit("JS",T,{len:U,data:{here:F[0].startsWith("```")}}),U}literalToken(){let F=I1.exec(this.chunk),T=F?F[0]:this.chunk.charAt(0),U=T,Y=this.prev();if(f1.test(T))this.tagParameters();if(Y&&(T==="="||T1.has(T))){if(T==="="&&(Y[1]==="||"||Y[1]==="&&"||Y[1]==="??")&&!Y.spaced)return Y[0]="COMPOUND_ASSIGN",Y[1]+="=",T.length}if(T==="("&&Y?.[0]==="IMPORT")Y[0]="DYNAMIC_IMPORT";if(T==="{"&&this.seenImport)this.importSpecifierList=!0;if(T==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(T==="{"&&Y?.[0]==="EXPORT")this.exportSpecifierList=!0;if(T==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(T===";")this.seenFor=this.seenImport=this.seenExport=!1,U="TERMINATOR";else if(T==="~=")U="COMPUTED_ASSIGN";else if(T===":=")U="REACTIVE_ASSIGN";else if(T==="~>")U="REACT_ASSIGN";else if(T==="=!")U="READONLY_ASSIGN";else if(T==="*"&&Y?.[0]==="EXPORT")U="EXPORT_ALL";else if(O1.has(T))U="MATH";else if(P1.has(T))U="COMPARE";else if(T1.has(T))U="COMPOUND_ASSIGN";else if(L1.has(T))U="UNARY_MATH";else if(u1.has(T))U="SHIFT";else if(T==="?"&&Y?.spaced)U="SPACE?";else if(T==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))U="?.";else if(Y){if(T==="("&&!Y.spaced&&n.has(Y[0])){if(Y[0]==="?.")Y[0]="ES6_OPTIONAL_CALL";U="CALL_START"}if(T==="["&&!Y.spaced&&W1.has(Y[0])){if(U="INDEX_START",Y[0]==="?.")Y[0]="ES6_OPTIONAL_INDEX"}}if(T==="("||T==="{"||T==="[")this.ends.push({tag:R1[T],origin:[U,T]});else if(T===")"||T==="}"||T==="]")this.pair(T);return this.emit(U,T,{len:T.length}),T.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let F=this.tokens.length-1,T=[];this.tokens[F][0]="PARAM_END";while(F-- >0){let U=this.tokens[F];if(U[0]===")")T.push(U);else if(U[0]==="("||U[0]==="CALL_START")if(T.length)T.pop();else if(U[0]==="(")return U[0]="PARAM_START",this.tagDoIife(F-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(F){let T=this.tokens[F??this.tokens.length-1];if(T?.[0]==="DO")T[0]="DO_IIFE"}rewrite(F){return this.tokens=F,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let F=0;while(this.tokens[F]?.[0]==="TERMINATOR")F++;if(F>0)this.tokens.splice(0,F)}closeOpenCalls(){this.scanTokens((F,T)=>{if(F[0]==="CALL_START")this.detectEnd(T+1,(U)=>U[0]===")"||U[0]==="CALL_END",(U)=>U[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((F,T)=>{if(F[0]==="INDEX_START")this.detectEnd(T+1,(U)=>U[0]==="]"||U[0]==="INDEX_END",(U,Y)=>{if(this.tokens[Y+1]?.[0]===":")F[0]="[",U[0]="]";else U[0]="INDEX_END"});return 1})}normalizeLines(){let F=null,T=null,U=null,Y=($,W)=>{return $[1]!==";"&&_1.has($[0])&&!($[0]==="TERMINATOR"&&e.has(this.tokens[W+1]?.[0]))&&!($[0]==="ELSE"&&F!=="THEN")||$[0]===","&&(F==="->"||F==="=>")&&!this.commaInImplicitCall(W)||$1.has($[0])&&(this.tokens[W-1]?.newLine||this.tokens[W-1]?.[0]==="OUTDENT")},A=($,W)=>{let M=this.tokens[W-1]?.[0]===","?W-1:W;this.tokens.splice(M,0,U)};this.scanTokens(($,W,M)=>{let[D]=$;if(D==="TERMINATOR"){if(this.tokens[W+1]?.[0]==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")return M.splice(W,1,...this.makeIndentation()),1;if(e.has(this.tokens[W+1]?.[0]))return M.splice(W,1),0}if(D==="CATCH")for(let Z=1;Z<=2;Z++){let Q=this.tokens[W+Z]?.[0];if(Q==="OUTDENT"||Q==="TERMINATOR"||Q==="FINALLY")return M.splice(W+Z,0,...this.makeIndentation()),2+Z}if((D==="->"||D==="=>")&&(this.tokens[W+1]?.[0]===","||this.tokens[W+1]?.[0]==="]"))return[T,U]=this.makeIndentation(),M.splice(W+1,0,T,U),1;if(A1.has(D)&&this.tokens[W+1]?.[0]!=="INDENT"&&!(D==="ELSE"&&this.tokens[W+1]?.[0]==="IF")){if(F=D,[T,U]=this.makeIndentation(),D==="THEN")T.fromThen=!0;if(M.splice(W+1,0,T),this.detectEnd(W+2,Y,A),D==="THEN")M.splice(W,1);return 1}return 1})}tagPostfixConditionals(){let F=null,T=(Y,A)=>{return Y[0]==="TERMINATOR"||Y[0]==="INDENT"&&!A1.has(this.tokens[A-1]?.[0])},U=(Y)=>{if(Y[0]!=="INDENT"||Y.generated&&!Y.fromThen)F[0]="POST_"+F[0]};this.scanTokens((Y,A)=>{if(Y[0]!=="IF"&&Y[0]!=="UNLESS")return 1;return F=Y,this.detectEnd(A+1,T,U),1})}addImplicitBracesAndParens(){let F=[],T=!1;this.scanTokens((U,Y,A)=>{let[$]=U,W=A[Y-1]||[],M=A[Y+1]||[],[D]=W,[Z]=M,Q=Y,X=(q)=>Y-Q+q,J=()=>F[F.length-1],K=(q)=>q?.[2]?.ours,G=()=>K(J())&&J()?.[0]==="(",z=()=>K(J())&&J()?.[0]==="{",H=(q)=>{F.push(["(",q,{ours:!0}]),A.splice(q,0,k("CALL_START","("))},R=()=>{F.pop(),A.splice(Y,0,k("CALL_END",")")),Y+=1},O=(q,w={})=>{F.push(["{",q,{sameLine:!0,startsLine:w.startsLine??!0,ours:!0}]);let I=k("{","{");if(!I.data)I.data={};I.data.generated=!0,A.splice(q,0,I)},_=(q)=>{q=q??Y,F.pop(),A.splice(q,0,k("}","}")),Y+=1};if((G()||z())&&H1.has($))return F.push(["CONTROL",Y,{ours:!0}]),X(1);if($==="INDENT"&&K(J())){if(D!=="=>"&&D!=="->"&&D!=="["&&D!=="("&&D!==","&&D!=="{"&&D!=="ELSE"&&D!=="=")while(G()||z()&&D!==":")if(G())R();else _();if(J()?.[2]?.ours&&J()[0]==="CONTROL")F.pop();return F.push([$,Y]),X(1)}if(g.has($))return F.push([$,Y]),X(1);if(h.has($)){while(K(J()))if(G())R();else if(z())_();else F.pop();F.pop()}if(a.has($)&&U.spaced&&(m.has(Z)||Z==="..."&&m.has(A[Y+2]?.[0])||G1.has(Z)&&!M.spaced&&!M.newLine)&&!(($==="]"||$==="}")&&(Z==="->"||Z==="=>")))return H(Y+1),X(2);if(a.has($)&&this.tokens[Y+1]?.[0]==="INDENT"&&this.looksObjectish(Y+2)&&!this.findTagsBackwards(Y,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return H(Y+1),F.push(["INDENT",Y+2]),X(3);if($==="SPACE?")T=!0;if($===":"){if(T)return T=!1,X(1);let q=h.has(this.tokens[Y-1]?.[0])?F[F.length-1]?.[1]??Y-1:Y-1;if(this.tokens[Y-2]?.[0]==="@")q=Y-2;let w=q<=0||c.has(this.tokens[q-1]?.[0])||this.tokens[q-1]?.newLine;if(J()){let[I,N]=J(),S=F[F.length-2];if((I==="{"||I==="INDENT"&&S?.[0]==="{"&&!K(S))&&(w||this.tokens[q-1]?.[0]===","||this.tokens[q-1]?.[0]==="{"||this.tokens[q]?.[0]==="{"))return X(1)}return O(q,{startsLine:!!w}),X(2)}if(c.has($))for(let q=F.length-1;q>=0;q--){if(!K(F[q]))break;if(F[q][0]==="{")F[q][2].sameLine=!1}let u=D==="OUTDENT"||W.newLine,P=$==="||"||$==="&&",L=!1;if(P){let q=Y+1,w=A[q]?.[0];if(w==="("||w==="["||w==="{"){for(let I=1;++q<A.length&&I>0;)if(w=A[q][0],w==="("||w==="["||w==="{")I++;else if(w===")"||w==="]"||w==="}")I--}else if(w&&w!=="TERMINATOR"&&w!=="OUTDENT"&&w!==",")q++;L=A[q]?.[0]===","}if(K1.has($)&&!L||$1.has($)&&u)while(K(J())){let[q,,{sameLine:w,startsLine:I}]=J();if(G()&&D!==",")R();else if(z()&&!P&&w&&$!=="TERMINATOR"&&D!==":")_();else if(z()&&$==="TERMINATOR"&&D!==","&&!(I&&this.looksObjectish(Y+1)))_();else if(J()?.[2]?.ours&&J()[0]==="CONTROL"&&A[J()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")F.pop();else break}if($===","&&!this.looksObjectish(Y+1)&&z()&&(Z!=="TERMINATOR"||!this.looksObjectish(Y+2))){let q=Z==="OUTDENT"?1:0;while(z())_(Y+q)}return X(1)})}addImplicitCallCommas(){let F=0,T=0,U=this.tokens;while(T<U.length){let Y=U[T][0],A=T>0?U[T-1][0]:null;if(Y==="CALL_START"||Y==="(")F++;if(Y==="CALL_END"||Y===")")F--;if(F>0&&(Y==="->"||Y==="=>")&&z1.has(A))U.splice(T,0,k(",",",")),T++;T++}}scanTokens(F){let T=0;while(T<this.tokens.length)T+=F.call(this,this.tokens[T],T,this.tokens)}detectEnd(F,T,U,Y={}){let A=0;while(F<this.tokens.length){let $=this.tokens[F];if(A===0&&T.call(this,$,F))return U.call(this,$,F);if(g.has($[0]))A++;if(h.has($[0]))A--;if(A<0){if(Y.returnOnNegativeLevel)return;return U.call(this,$,F)}F++}}commaInImplicitCall(F){let T=0;for(let U=F-1;U>=0;U--){let Y=this.tokens[U][0];if(h.has(Y)){T++;continue}if(g.has(Y)){if(Y==="INDENT")return!1;if(T--,T<0)return!1;continue}if(T>0)continue;if(a.has(Y)&&this.tokens[U].spaced){let A=this.tokens[U+1]?.[0];return m.has(A)||A==="..."&&m.has(this.tokens[U+2]?.[0])}}return!1}looksObjectish(F){if(!this.tokens[F])return!1;if(this.tokens[F]?.[0]==="@"&&this.tokens[F+2]?.[0]===":")return!0;if(this.tokens[F+1]?.[0]===":")return!0;if(g.has(this.tokens[F]?.[0])){let T=null;if(this.detectEnd(F+1,(U)=>h.has(U[0]),(U,Y)=>T=Y),T&&this.tokens[T+1]?.[0]===":")return!0}return!1}findTagsBackwards(F,T){let U=new Set(T),Y=[];while(F>=0){let A=this.tokens[F]?.[0];if(!Y.length&&U.has(A))return!0;if(h.has(A))Y.push(A);if(g.has(A)&&Y.length)Y.pop();if(!Y.length&&(g.has(A)&&!this.tokens[F]?.generated||c.has(A)))break;F--}return!1}makeIndentation(F){let T=k("INDENT",2),U=k("OUTDENT",2);if(F)T.generated=U.generated=!0,T.origin=U.origin=F;else T.explicit=U.explicit=!0;return[T,U]}}var i1={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Throw:28,Yield:29,Def:30,CodeLine:31,OperationLine:32,Assignable:33,Literal:34,Parenthetical:35,Range:36,Invocation:37,DoIife:38,This:39,Super:40,MetaProperty:41,AlphaNumeric:42,JS:43,Regex:44,UNDEFINED:45,NULL:46,BOOL:47,INFINITY:48,NAN:49,NUMBER:50,String:51,Identifier:52,IDENTIFIER:53,Property:54,PROPERTY:55,STRING:56,STRING_START:57,Interpolations:58,STRING_END:59,InterpolationChunk:60,INTERPOLATION_START:61,INTERPOLATION_END:62,INDENT:63,OUTDENT:64,REGEX:65,REGEX_START:66,REGEX_END:67,RegexWithIndex:68,",":69,"=":70,REACTIVE_ASSIGN:71,COMPUTED_ASSIGN:72,READONLY_ASSIGN:73,REACT_ASSIGN:74,SimpleAssignable:75,Array:76,Object:77,ThisProperty:78,".":79,"?.":80,INDEX_START:81,INDEX_END:82,Slice:83,ES6_OPTIONAL_INDEX:84,"{":85,ObjAssignable:86,":":87,FOR:88,ForVariables:89,FOROF:90,OptComma:91,"}":92,WHEN:93,OWN:94,AssignList:95,AssignObj:96,ObjRestValue:97,SimpleObjAssignable:98,"[":99,"]":100,"@":101,"...":102,ObjSpreadExpr:103,SUPER:104,Arguments:105,DYNAMIC_IMPORT:106,Elisions:107,ArgElisionList:108,OptElisions:109,ArgElision:110,Arg:111,Elision:112,RangeDots:113,"..":114,DEF:115,CALL_START:116,ParamList:117,CALL_END:118,Block:119,PARAM_START:120,PARAM_END:121,FuncGlyph:122,"->":123,"=>":124,Param:125,ParamVar:126,Splat:127,ES6_OPTIONAL_CALL:128,ArgList:129,SimpleArgs:130,THIS:131,NEW_TARGET:132,IMPORT_META:133,"(":134,")":135,RETURN:136,THROW:137,YIELD:138,FROM:139,IfBlock:140,IF:141,ELSE:142,UnlessBlock:143,UNLESS:144,POST_IF:145,POST_UNLESS:146,TRY:147,Catch:148,FINALLY:149,CATCH:150,SWITCH:151,Whens:152,When:153,LEADING_WHEN:154,WhileSource:155,WHILE:156,UNTIL:157,Loop:158,LOOP:159,FORIN:160,BY:161,FORAS:162,AWAIT:163,FORASAWAIT:164,ForValue:165,CLASS:166,EXTENDS:167,IMPORT:168,ImportDefaultSpecifier:169,ImportNamespaceSpecifier:170,ImportSpecifierList:171,ImportSpecifier:172,AS:173,DEFAULT:174,IMPORT_ALL:175,EXPORT:176,ExportSpecifierList:177,EXPORT_ALL:178,ExportSpecifier:179,UNARY:180,DO:181,DO_IIFE:182,UNARY_MATH:183,"-":184,"+":185,"?":186,"--":187,"++":188,MATH:189,"**":190,SHIFT:191,COMPARE:192,"&":193,"^":194,"|":195,"||":196,"??":197,"&&":198,"!?":199,RELATION:200,"SPACE?":201,COMPOUND_ASSIGN:202},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",43:"JS",45:"UNDEFINED",46:"NULL",47:"BOOL",48:"INFINITY",49:"NAN",50:"NUMBER",53:"IDENTIFIER",55:"PROPERTY",56:"STRING",57:"STRING_START",59:"STRING_END",61:"INTERPOLATION_START",62:"INTERPOLATION_END",63:"INDENT",64:"OUTDENT",65:"REGEX",66:"REGEX_START",67:"REGEX_END",69:",",70:"=",71:"REACTIVE_ASSIGN",72:"COMPUTED_ASSIGN",73:"READONLY_ASSIGN",74:"REACT_ASSIGN",79:".",80:"?.",81:"INDEX_START",82:"INDEX_END",84:"ES6_OPTIONAL_INDEX",85:"{",87:":",88:"FOR",90:"FOROF",92:"}",93:"WHEN",94:"OWN",99:"[",100:"]",101:"@",102:"...",104:"SUPER",106:"DYNAMIC_IMPORT",114:"..",115:"DEF",116:"CALL_START",118:"CALL_END",120:"PARAM_START",121:"PARAM_END",123:"->",124:"=>",128:"ES6_OPTIONAL_CALL",131:"THIS",132:"NEW_TARGET",133:"IMPORT_META",134:"(",135:")",136:"RETURN",137:"THROW",138:"YIELD",139:"FROM",141:"IF",142:"ELSE",144:"UNLESS",145:"POST_IF",146:"POST_UNLESS",147:"TRY",149:"FINALLY",150:"CATCH",151:"SWITCH",154:"LEADING_WHEN",156:"WHILE",157:"UNTIL",159:"LOOP",160:"FORIN",161:"BY",162:"FORAS",163:"AWAIT",164:"FORASAWAIT",166:"CLASS",167:"EXTENDS",168:"IMPORT",173:"AS",174:"DEFAULT",175:"IMPORT_ALL",176:"EXPORT",178:"EXPORT_ALL",180:"UNARY",181:"DO",182:"DO_IIFE",183:"UNARY_MATH",184:"-",185:"+",186:"?",187:"--",188:"++",189:"MATH",190:"**",191:"SHIFT",192:"COMPARE",193:"&",194:"^",195:"|",196:"||",197:"??",198:"&&",199:"!?",200:"RELATION",201:"SPACE?",202:"COMPOUND_ASSIGN"},parseTable:(()=>{let F=[101,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,-1,1,2,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,1,1,0,2,1,5,-2,101,5,1,5,56,2,71,-3,-3,-3,-3,-3,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,120,-6,-6,-6,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,9,1,5,56,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,56,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,121,122,123,90,91,52,1,5,45,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,125,99,100,-13,-13,-13,-13,128,129,130,-13,131,-13,-13,-13,-13,-13,-13,-13,126,-13,132,-13,-13,127,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,124,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,44,1,5,56,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,133,134,135,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,9,1,5,56,1,1,5,31,18,17,-30,-30,-30,-30,-30,-30,-30,-30,-30,9,1,5,56,1,1,5,31,18,17,-31,-31,-31,-31,-31,-31,-31,-31,-31,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,136,137,138,139,140,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,145,98,-170,-170,-170,147,148,146,93,150,149,144,141,-170,-170,142,143,100,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,152,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,153,96,97,50,49,66,67,87,93,56,77,81,78,79,61,151,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,97,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,154,155,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,97,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,157,158,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,159,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,165,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,166,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,167,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,168,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,170,171,172,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,169,66,67,87,93,77,81,78,79,160,161,84,85,80,82,83,76,164,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,170,171,172,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,173,66,67,87,93,77,81,78,79,160,161,84,85,80,82,83,76,164,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,174,175,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,176,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,178,177,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,179,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,180,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,2,63,56,153,181,2,63,56,153,182,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,186,145,98,147,148,146,93,183,184,77,149,188,185,187,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,189,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,190,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,88,1,5,8,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,10,1,10,1,3,1,1,2,3,15,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,170,171,172,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-299,153,-299,96,97,-299,193,66,67,87,-299,93,-299,-299,-299,-299,-299,77,-299,81,-299,78,79,-299,-299,191,160,-299,161,84,85,80,82,83,76,-299,-299,-299,-299,-299,-299,-299,-299,-299,192,164,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,194,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,195,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,131,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,196,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-221,197,-221,96,97,-221,50,49,66,67,87,-221,93,-221,-221,-221,-221,-221,77,-221,81,-221,78,79,-221,61,-221,160,-221,161,84,85,80,82,83,76,-221,63,59,60,198,51,88,52,89,-221,-221,53,57,54,-221,-221,55,92,-221,-221,-221,46,-221,58,64,65,162,163,164,43,44,45,47,48,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,2,52,1,199,98,6,15,16,89,2,1,1,201,200,39,40,84,85,130,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,202,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-218,203,-218,96,97,-218,50,49,66,67,87,-218,93,-218,-218,-218,-218,-218,77,-218,81,-218,78,79,-218,61,-218,160,-218,161,84,85,80,82,83,76,-218,63,59,60,51,88,52,89,-218,-218,53,57,54,-218,-218,55,92,-218,-218,-218,46,-218,58,64,65,162,163,164,43,44,45,47,48,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,9,51,1,1,3,1,28,84,1,5,204,208,98,99,100,207,205,206,209,9,27,3,22,1,32,30,51,8,4,211,212,213,98,210,61,58,214,215,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,100,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,216,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,217,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,218,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,224,96,97,225,50,49,66,67,87,93,56,77,219,81,229,78,79,220,221,223,226,222,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,79,2,24,11,231,232,230,132,2,105,11,233,132,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,52,1,5,48,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,234,235,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,1,79,236,1,79,237,51,11,32,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,51,11,32,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,238,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,239,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,240,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,241,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,243,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,153,96,97,50,49,66,67,87,93,56,77,81,78,79,61,242,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,23,6,36,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-106,249,94,95,251,98,252,235,99,100,-106,-106,-106,253,244,-106,245,250,254,246,247,248,255,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,170,171,172,31,32,33,256,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,257,66,67,87,93,77,81,78,79,160,161,84,85,80,82,83,76,164,61,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,6,1,10,1,3,1,1,2,3,6,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,53,1,5,50,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,6,51,5,1,1,2,1,261,99,100,258,259,260,103,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,-5,262,-5,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-5,-5,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,-5,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,263,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,264,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,265,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,266,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,267,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,268,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,269,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,270,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,271,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,274,156,272,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,273,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,277,156,275,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,276,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,280,156,278,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,279,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,281,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,282,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,283,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,284,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,285,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,289,145,98,147,148,146,93,286,287,77,149,188,288,187,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,290,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,291,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,105,11,292,132,2,54,1,293,235,2,54,1,294,235,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,295,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,300,71,72,73,74,75,94,95,86,98,99,100,296,96,97,298,50,49,66,67,87,297,93,56,77,81,302,78,79,299,301,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,81,303,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,307,96,97,50,49,66,67,87,93,56,77,81,229,78,79,306,61,304,39,40,84,85,228,305,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,2,54,1,309,235,2,54,1,310,235,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,311,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,312,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,314,313,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,315,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,317,316,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,318,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,320,319,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,321,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,323,322,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,324,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,326,325,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,327,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,9,6,57,1,5,22,1,8,18,3,-214,-214,-214,329,330,-214,-214,-214,328,6,6,57,1,5,49,3,-171,-171,-171,-171,-171,-171,7,6,57,1,5,1,48,3,-175,-175,-175,-175,331,-175,-175,15,6,46,1,10,1,5,7,1,1,7,14,2,17,3,5,-178,145,98,-178,-178,-178,147,148,146,93,150,149,-178,-178,332,11,6,57,1,5,1,20,28,3,39,2,2,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,11,6,57,1,5,1,20,28,3,39,2,2,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,11,6,57,1,5,1,20,28,3,39,2,2,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,11,6,57,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,2,54,1,234,235,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,224,96,97,225,50,49,66,67,87,93,56,77,219,81,229,78,79,220,221,223,226,222,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,9,1,5,56,1,1,5,31,18,17,-167,-167,-167,-167,-167,-167,-167,-167,-167,100,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,334,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,333,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,118,119,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,112,-350,114,-350,-350,9,1,5,56,1,1,5,31,18,17,-347,-347,-347,-347,-347,-347,-347,-347,-347,5,145,1,9,1,1,121,122,123,90,91,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,118,119,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,112,-351,114,-351,-351,9,1,5,56,1,1,5,31,18,17,-348,-348,-348,-348,-348,-348,-348,-348,-348,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,118,119,-352,-352,-352,-352,-352,-352,-352,-352,-352,105,-352,-352,-352,-352,-352,-352,112,-352,114,-352,-352,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,145,98,-170,-170,-170,147,148,146,93,150,149,144,335,-170,-170,142,143,2,63,56,153,151,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,154,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,157,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,5,15,105,2,1,1,201,160,161,84,85,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,118,119,-353,-353,-353,-353,-353,-353,-353,-353,-353,105,-353,-353,-353,-353,-353,-353,112,-353,114,-353,-353,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,118,119,-354,-354,-354,-354,-354,-354,-354,-354,-354,105,-354,-354,-354,-354,-354,-354,112,-354,114,-354,-354,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,118,119,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,112,-356,114,-356,-356,2,77,8,336,93,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-83,-83,-358,-358,-358,-358,-83,-83,-83,-83,-83,-83,-83,-83,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-83,-358,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,10,51,5,1,22,1,1,3,21,11,12,125,99,100,128,129,130,131,126,132,127,3,79,1,1,133,134,135,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-83,-83,-359,-359,-359,-359,-83,-83,-83,-83,-83,-83,-83,-83,-359,-83,-359,-359,-359,-359,-359,-359,-359,-359,-83,-359,-359,-83,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-83,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,339,337,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,338,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,120,-80,-80,-80,-80,-80,-80,-80,-80,-80,117,118,119,90,91,-80,-80,-80,-80,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,340,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,341,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,63,56,22,153,342,343,44,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,2,1,1,6,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,344,345,346,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,4,90,70,2,2,348,347,349,350,11,52,1,23,1,1,7,4,10,2,25,39,145,98,147,148,146,93,351,150,149,188,187,11,52,1,23,1,1,7,4,10,2,25,39,145,98,147,148,146,93,352,150,149,188,187,3,63,56,42,153,353,354,5,69,21,70,2,2,355,-297,-297,-297,-297,6,69,1,20,70,2,2,-295,356,-295,-295,-295,-295,22,63,25,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,357,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,3,152,1,1,358,359,360,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,361,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,57,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,10,1,10,1,3,1,1,2,3,17,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-83,-83,-303,153,-303,-303,-83,-83,-83,-83,-83,-83,-83,-83,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-83,-303,362,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-303,363,-303,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,118,119,-219,-219,-219,-219,-219,-219,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,364,93,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,118,119,-222,-222,-222,-222,-222,-222,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,365,93,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,366,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,63,53,3,153,367,368,9,1,5,56,1,1,5,31,18,17,-349,-349,-349,-349,-349,-349,-349,-349,-349,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,118,119,-216,-216,-216,-216,-216,-216,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,369,93,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,69,70,371,370,1,139,372,7,52,1,10,29,79,1,2,377,98,376,373,374,375,378,2,69,70,-323,-323,1,173,379,7,52,1,10,29,82,3,2,384,98,383,380,385,381,382,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,70,386,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,387,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,388,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,139,389,2,6,129,101,390,99,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,391,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,30,6,57,1,5,19,12,2,11,1,4,27,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,120,-196,302,392,301,-196,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,225,50,49,66,67,87,93,56,77,393,81,229,78,79,395,394,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,397,398,-214,-214,396,-214,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,399,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,5,6,57,1,5,31,-142,-142,-142,-142,-142,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,224,96,97,225,50,49,66,67,87,93,56,77,81,229,78,79,401,400,223,226,222,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,5,6,57,1,5,31,-147,-147,-147,-147,-147,6,6,57,1,5,31,18,-197,-197,-197,-197,-197,-197,6,6,57,1,5,31,18,-198,-198,-198,-198,-198,-198,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,-199,402,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-199,-199,96,97,-199,50,49,66,67,87,93,56,77,-199,81,78,79,61,-199,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,2,54,1,403,235,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,404,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,405,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,2,54,1,406,235,2,54,1,407,235,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,408,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,409,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,120,-251,-251,410,-251,-251,-251,-251,-251,-251,-251,118,119,90,91,-251,-251,-251,-251,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,120,-253,-253,411,-253,-253,-253,-253,-253,-253,-253,118,119,90,91,-253,-253,-253,-253,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,120,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,118,119,90,91,-260,-260,-260,-260,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,6,6,57,1,5,18,5,-111,-111,-111,-111,412,-111,8,6,57,1,5,22,1,8,18,-214,-214,-214,414,413,-214,-214,-214,7,6,57,1,5,1,17,5,-120,-120,-120,-120,415,-120,-120,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,416,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,54,1,44,234,235,417,6,6,57,1,5,18,5,-123,-123,-123,-123,-123,-123,5,6,57,1,5,23,-107,-107,-107,-107,-107,11,6,57,1,5,1,9,1,1,6,5,24,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,11,6,57,1,5,1,9,1,1,6,5,24,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,11,6,57,1,5,1,9,1,1,6,5,24,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,5,6,57,1,5,23,-112,-112,-112,-112,-112,17,35,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,421,423,422,251,98,252,235,420,253,93,418,81,419,424,425,80,76,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,426,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,6,51,5,1,2,1,1,261,99,100,427,428,260,4,56,1,2,2,-55,-55,-55,-55,101,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,429,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,431,430,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,56,1,2,2,-60,-60,-60,-60,5,1,5,56,2,71,-4,-4,-4,-4,-4,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,118,119,-362,-362,-362,-362,-362,-362,-362,-362,104,105,-362,-362,-362,-362,-362,-362,112,-362,114,-362,-362,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,118,119,-363,-363,-363,-363,-363,-363,-363,-363,104,105,-363,-363,-363,-363,-363,-363,112,-363,114,-363,-363,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,118,119,-364,-364,-364,-364,-364,-364,-364,-364,-364,105,-364,-364,-364,-364,-364,-364,112,-364,114,-364,-364,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,118,119,-365,-365,-365,-365,-365,-365,-365,-365,-365,105,-365,-365,-365,-365,-365,-365,112,-365,114,-365,-365,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,118,119,-366,-366,-366,-366,-366,-366,103,102,104,105,-366,-366,-366,-366,-366,-366,112,-366,114,-366,-366,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,118,119,-367,-367,-367,-367,-367,-367,103,102,104,105,106,-367,-367,-367,-367,-367,112,-367,114,115,-367,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,118,119,-368,-368,-368,-368,-368,-368,103,102,104,105,106,107,-368,-368,-368,-368,112,-368,114,115,-368,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,118,119,-369,-369,-369,-369,-369,-369,103,102,104,105,106,107,108,-369,-369,-369,112,-369,114,115,-369,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,119,-370,-370,-370,-370,-370,-370,103,102,104,105,106,107,108,109,-370,-370,112,-370,114,115,-370,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,118,119,-378,-378,-378,-378,-378,-378,103,102,104,105,106,107,108,109,110,-378,112,113,114,115,-378,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,120,-379,-379,-379,-379,-379,-379,-379,-379,-379,117,118,119,90,91,-379,-379,-379,-379,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,119,-377,-377,-377,-377,-377,-377,103,102,104,105,106,107,108,109,110,-377,112,-377,114,115,-377,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,120,-380,-380,-380,-380,-380,-380,-380,-380,-380,117,118,119,90,91,-380,-380,-380,-380,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,118,119,-381,-381,-381,-381,-381,-381,103,102,104,105,106,-381,-381,-381,-381,-381,112,-381,114,-381,-381,22,87,1,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,432,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,120,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,118,119,90,91,-233,-233,-233,-233,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,120,-235,-235,-235,-235,-235,-235,-235,-235,-235,117,118,119,90,91,-235,-235,-235,-235,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,90,70,2,2,434,433,435,436,11,52,1,23,1,1,7,4,10,2,25,39,145,98,147,148,146,93,437,150,149,188,187,11,52,1,23,1,1,7,4,10,2,25,39,145,98,147,148,146,93,438,150,149,188,187,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,439,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,120,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,118,119,90,91,-232,-232,-232,-232,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,120,-234,-234,-234,-234,-234,-234,-234,-234,-234,117,118,119,90,91,-234,-234,-234,-234,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,25,82,6,14,11,1,31,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,440,120,302,441,301,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,442,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,443,93,56,77,81,302,78,79,299,301,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,82,444,1,82,445,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,446,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-161,96,97,50,49,66,67,87,-161,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,447,-43,-43,-43,-64,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,52,11,32,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,52,11,32,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,448,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,449,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,8,6,57,1,5,22,1,8,18,-214,-214,-214,451,450,-214,-214,-214,5,6,57,1,5,49,-191,-191,-191,-191,-191,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,307,96,97,50,49,66,67,87,93,56,77,81,229,78,79,306,61,39,40,84,85,228,452,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,27,6,57,1,5,19,12,18,27,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,120,-196,-196,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,22,82,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,453,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,454,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,118,119,-65,-65,-65,-65,-65,-65,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,455,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,456,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,120,-68,-68,-68,-68,-68,-68,-68,-68,-68,117,118,119,90,91,-68,-68,-68,-68,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,457,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,458,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,120,-71,-71,-71,-71,-71,-71,-71,-71,-71,117,118,119,90,91,-71,-71,-71,-71,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,459,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,460,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,120,-74,-74,-74,-74,-74,-74,-74,-74,-74,117,118,119,90,91,-74,-74,-74,-74,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,461,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,462,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,120,-77,-77,-77,-77,-77,-77,-77,-77,-77,117,118,119,90,91,-77,-77,-77,-77,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,463,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,464,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,122,1,1,465,84,85,17,6,46,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-215,145,98,-215,-215,147,148,146,93,-215,150,-215,149,144,-215,466,143,2,6,57,467,468,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,469,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,6,6,57,1,5,49,3,-177,-177,-177,-177,-177,-177,54,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,2,6,58,101,470,9,6,57,1,5,22,1,8,18,3,-214,-214,-214,329,330,-214,-214,-214,471,1,64,472,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,118,119,-383,-383,-383,-383,-383,-383,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,473,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,474,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,120,-81,-81,-81,-81,-81,-81,-81,-81,-81,117,118,119,90,91,-81,-81,-81,-81,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,475,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,476,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,477,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,2,63,56,153,478,6,52,1,10,14,8,34,479,98,153,480,93,481,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,482,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,483,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,484,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,485,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,90,486,1,162,487,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,488,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,10,52,1,23,1,1,7,14,2,25,39,145,98,147,148,146,93,150,149,188,489,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,490,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,152,1,1,491,359,360,4,64,78,11,1,492,493,494,360,3,64,78,12,-247,-247,-247,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,496,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,495,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,43,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,153,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,497,-301,-301,-301,118,119,-301,-301,-301,-301,-301,-301,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,498,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,64,499,1,64,500,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,118,119,-224,-224,-224,-224,-224,-224,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,145,98,-170,-170,-170,147,148,146,93,150,149,144,501,-170,-170,142,143,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,1,64,502,3,51,5,1,503,99,100,3,85,85,5,505,504,209,3,51,5,1,506,99,100,1,139,507,8,6,57,1,5,22,1,8,18,-214,-214,-214,509,508,-214,-214,-214,5,6,57,1,5,23,-314,-314,-314,-314,-314,6,52,1,10,108,1,2,377,98,376,510,375,378,6,6,57,1,5,23,81,-319,-319,-319,-319,-319,511,6,6,57,1,5,23,81,-321,-321,-321,-321,-321,512,2,52,1,513,98,14,1,5,56,1,1,5,31,18,17,4,6,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,514,-325,-325,-325,-325,8,6,57,1,5,22,1,8,18,-214,-214,-214,516,515,-214,-214,-214,5,6,57,1,5,23,-337,-337,-337,-337,-337,6,52,1,10,111,3,2,384,98,383,385,517,382,6,6,57,1,5,23,81,-342,-342,-342,-342,-342,518,6,6,57,1,5,23,81,-345,-345,-345,-345,-345,519,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,521,520,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,522,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,120,-332,-332,-332,-332,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,523,93,3,51,5,1,524,99,100,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,2,6,58,101,525,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,526,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,399,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,5,6,57,1,5,31,-148,-148,-148,-148,-148,2,63,37,528,527,110,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,-215,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-215,-215,96,97,225,50,49,66,67,87,93,56,-215,77,-215,81,229,78,79,530,529,226,222,61,-215,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,6,57,1,36,531,-149,-149,-149,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,2,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,397,398,-214,-214,532,-214,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,225,50,49,66,67,87,93,56,77,81,229,78,79,395,394,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,27,6,57,1,5,19,12,18,27,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,120,-183,-183,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,22,82,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,533,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,534,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,535,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,536,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,537,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,538,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,539,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,6,57,29,541,542,540,23,6,36,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-215,249,94,95,251,98,252,235,99,100,-215,-215,253,544,-215,543,254,246,247,-215,248,255,-215,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,545,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,546,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,22,88,12,45,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,120,547,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,548,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,10,6,57,1,5,10,1,1,11,13,11,-124,-124,-124,-124,-126,-126,-126,-124,549,132,10,6,57,1,5,10,1,1,11,13,11,-125,-125,-125,-125,551,552,553,-125,550,132,9,6,57,1,5,10,1,1,11,24,-127,-127,-127,-127,-127,-127,-127,-127,-127,9,6,57,1,5,10,1,1,11,24,-128,-128,-128,-128,-128,-128,-128,-128,-128,9,6,57,1,5,10,1,1,11,24,-129,-129,-129,-129,-129,-129,-129,-129,-129,9,6,57,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,4,79,2,24,11,231,232,554,132,2,105,11,555,132,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,53,1,5,50,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,4,56,1,2,2,-56,-56,-56,-56,2,6,56,101,556,99,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,557,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,56,1,2,2,-59,-59,-59,-59,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,558,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,559,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,560,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,561,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,562,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,90,563,1,162,564,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,565,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,566,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-159,96,97,50,49,66,67,87,-159,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,25,64,24,14,11,1,31,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,567,120,302,441,301,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,64,568,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,23,64,18,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,569,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,22,82,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,570,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,571,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,3,6,57,55,573,574,572,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,-215,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-215,-215,96,97,50,49,66,67,87,93,56,-215,77,-215,81,229,78,79,575,61,-215,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,8,6,57,1,5,22,1,8,18,-214,-214,-214,451,576,-214,-214,-214,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,577,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,118,119,-66,-66,-66,-66,-66,-66,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,578,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,120,-69,-69,-69,-69,-69,-69,-69,-69,-69,117,118,119,90,91,-69,-69,-69,-69,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,579,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,120,-72,-72,-72,-72,-72,-72,-72,-72,-72,117,118,119,90,91,-72,-72,-72,-72,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,580,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,120,-75,-75,-75,-75,-75,-75,-75,-75,-75,117,118,119,90,91,-75,-75,-75,-75,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,581,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,120,-78,-78,-78,-78,-78,-78,-78,-78,-78,117,118,119,90,91,-78,-78,-78,-78,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,582,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,100,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,584,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,153,96,97,50,49,66,67,87,93,56,77,81,78,79,61,583,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,6,6,57,1,5,49,3,-172,-172,-172,-172,-172,-172,11,52,1,23,1,1,7,14,2,1,23,1,145,98,147,148,146,93,150,149,144,585,143,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,145,98,-170,-170,-170,147,148,146,93,150,149,144,586,-170,-170,142,143,27,6,57,1,5,19,30,3,24,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,120,-176,-176,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,3,122,1,1,587,84,85,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,588,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,118,119,-385,-385,-385,-385,-385,-385,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,589,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,63,56,153,590,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,2,63,56,153,591,2,63,56,153,592,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,25,63,25,5,26,26,1,9,1,1,4,23,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,594,593,117,118,119,90,91,595,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,597,596,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,599,598,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,601,600,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,602,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,603,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,604,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,90,70,2,2,-298,-298,-298,-298,26,69,19,2,55,1,9,1,1,3,2,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-296,120,-296,117,118,119,90,91,-296,-296,-296,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,64,78,11,1,605,606,494,360,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,2,63,56,153,607,3,64,78,12,-248,-248,-248,3,63,6,50,153,609,608,23,63,6,19,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,43,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,153,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,610,-305,-305,-305,118,119,-305,-305,-305,-305,-305,-305,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,8,6,57,1,5,22,1,8,18,-214,-214,-214,329,330,-214,-214,611,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,1,139,612,6,52,1,10,108,1,2,377,98,376,613,375,378,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,3,51,5,1,614,99,100,3,6,57,29,616,617,615,10,6,46,1,10,1,28,8,18,54,2,-215,377,98,-215,-215,-215,-215,-215,618,378,8,6,57,1,5,22,1,8,18,-214,-214,-214,509,619,-214,-214,-214,2,52,1,620,98,2,52,1,621,98,1,139,-324,3,51,5,1,622,99,100,3,6,57,29,624,625,623,10,6,46,1,10,1,28,8,18,56,5,-215,384,98,-215,-215,-215,-215,-215,385,626,8,6,57,1,5,22,1,8,18,-214,-214,-214,516,627,-214,-214,-214,3,52,1,121,628,98,629,2,52,1,630,98,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,120,-329,-329,-329,-329,118,119,-329,-329,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,631,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,632,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,64,633,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,1,135,634,22,88,12,45,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,120,635,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,224,96,97,225,50,49,66,67,87,93,56,77,81,229,78,79,401,636,223,226,222,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,5,6,57,1,5,31,-143,-143,-143,-143,-143,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-150,-150,96,97,225,50,49,66,67,87,93,56,77,-150,81,229,78,79,395,394,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,225,50,49,66,67,87,93,56,77,81,229,78,79,401,637,226,222,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,2,63,1,528,638,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,639,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,63,56,153,640,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,118,119,-252,-252,-252,-252,-252,-252,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,118,119,-254,-254,-254,-254,-254,-254,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,26,6,57,1,5,19,4,53,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,641,-113,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,642,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,17,42,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,249,94,95,251,98,252,235,99,100,253,544,643,254,246,247,248,255,23,6,36,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-106,249,94,95,251,98,252,235,99,100,-106,-106,-106,253,544,-106,644,250,254,246,247,248,255,5,6,57,1,5,23,-108,-108,-108,-108,-108,6,6,57,1,5,18,5,-111,-111,-111,-111,645,-111,26,6,57,1,5,19,4,53,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,120,-115,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,646,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,6,6,57,1,5,18,5,-121,-121,-121,-121,-121,-121,22,88,12,45,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,120,647,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,9,6,57,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,57,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,2,54,1,648,235,2,54,1,649,235,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,650,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,651,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,9,6,57,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,57,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,4,56,1,2,2,-57,-57,-57,-57,2,6,58,101,652,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,118,119,-382,-382,-382,-382,-382,-382,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,653,-278,-278,-278,-278,-278,-278,-278,118,119,-278,-278,-278,654,-278,-278,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,655,-283,-283,-283,-283,-283,-283,-283,118,119,-283,-283,-283,-283,-283,-283,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,656,-287,-287,-287,-287,-287,-287,-287,118,119,-287,-287,-287,-287,-287,-287,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,657,-291,-291,-291,-291,-291,-291,-291,118,119,-291,-291,-291,-291,-291,-291,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,658,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,659,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,118,119,-294,-294,-294,-294,-294,-294,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,64,18,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,82,660,1,82,661,22,82,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-63,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,662,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,51,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,100,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,229,78,79,663,61,39,40,84,85,228,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,308,227,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,307,96,97,50,49,66,67,87,93,56,77,81,229,78,79,306,61,39,40,84,85,228,664,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,5,6,57,1,5,49,-192,-192,-192,-192,-192,3,6,57,1,573,574,665,1,82,666,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,9,1,5,56,1,1,5,31,18,17,-166,-166,-166,-166,-166,-166,-166,-166,-166,6,6,57,1,5,49,3,-173,-173,-173,-173,-173,-173,8,6,57,1,5,22,1,8,18,-214,-214,-214,329,667,-214,-214,-214,2,63,56,153,583,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,668,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,669,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,670,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,671,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,672,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,24,63,25,5,26,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,674,673,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,676,675,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,63,56,153,677,1,64,678,4,6,58,78,12,679,-249,-249,-249,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,680,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,2,63,56,153,681,3,51,5,1,682,99,100,8,6,57,1,5,22,1,8,18,-214,-214,-214,509,683,-214,-214,-214,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,1,139,684,4,52,1,119,2,377,98,685,378,6,52,1,10,108,1,2,377,98,376,686,375,378,5,6,57,1,5,23,-315,-315,-315,-315,-315,3,6,57,1,616,617,687,5,6,57,1,5,23,-320,-320,-320,-320,-320,5,6,57,1,5,23,-322,-322,-322,-322,-322,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,14,1,5,56,1,1,5,31,18,17,4,6,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,688,-326,-326,-326,-326,4,52,1,121,5,384,98,385,689,6,52,1,10,111,3,2,384,98,383,385,690,382,5,6,57,1,5,23,-338,-338,-338,-338,-338,3,6,57,1,624,625,691,5,6,57,1,5,23,-343,-343,-343,-343,-343,5,6,57,1,5,23,-344,-344,-344,-344,-344,5,6,57,1,5,23,-346,-346,-346,-346,-346,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,120,-330,-330,-330,-330,118,119,-330,-330,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,692,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,397,398,-214,-214,693,-214,5,6,57,1,5,31,-144,-144,-144,-144,-144,5,6,57,1,5,31,-145,-145,-145,-145,-145,1,82,694,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,289,145,98,147,148,146,93,695,696,77,149,188,288,187,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,697,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,23,-109,-109,-109,-109,-109,8,6,57,1,5,22,1,8,18,-214,-214,-214,414,698,-214,-214,-214,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,699,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,539,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,700,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,6,6,57,1,5,18,5,-122,-122,-122,-122,-122,-122,9,6,57,1,5,10,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,9,6,57,1,5,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,22,82,6,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,701,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,702,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,62,703,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,704,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,705,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,706,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,707,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,708,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,709,-285,-285,-285,-285,-285,-285,-285,118,119,-285,-285,-285,-285,-285,-285,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,710,-289,-289,-289,-289,-289,-289,-289,118,119,-289,-289,-289,-289,-289,-289,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,1,82,711,5,6,57,1,5,49,-193,-193,-193,-193,-193,8,6,57,1,5,22,1,8,18,-214,-214,-214,451,712,-214,-214,-214,5,6,57,1,5,49,-194,-194,-194,-194,-194,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,3,6,57,1,467,468,713,24,63,25,31,26,1,9,1,1,4,23,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,714,117,118,119,90,91,715,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,717,716,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,718,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,719,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,720,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,721,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,722,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,64,723,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,3,64,78,12,-250,-250,-250,23,63,6,19,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,3,6,57,29,616,617,724,3,51,5,1,725,99,100,5,6,57,1,5,23,-316,-316,-316,-316,-316,8,6,57,1,5,22,1,8,18,-214,-214,-214,509,726,-214,-214,-214,5,6,57,1,5,23,-317,-317,-317,-317,-317,3,51,5,1,727,99,100,5,6,57,1,5,23,-339,-339,-339,-339,-339,8,6,57,1,5,22,1,8,18,-214,-214,-214,516,728,-214,-214,-214,5,6,57,1,5,23,-340,-340,-340,-340,-340,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,63,1,528,729,50,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,4,90,70,2,2,730,433,435,436,11,52,1,23,1,1,7,4,10,2,25,39,145,98,147,148,146,93,731,150,149,188,187,5,6,57,1,5,23,-114,-114,-114,-114,-114,3,6,57,1,541,542,732,26,6,57,1,5,19,4,53,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,120,-113,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,23,-116,-116,-116,-116,-116,9,6,57,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,22,64,24,57,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,733,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,56,1,2,2,-58,-58,-58,-58,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,118,119,-279,-279,-279,734,-279,-279,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,735,-280,-280,-280,-280,-280,-280,-280,118,119,-280,-280,-280,-280,-280,-280,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,118,119,-284,-284,-284,-284,-284,-284,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,118,119,-288,-288,-288,-288,-288,-288,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,118,119,-292,-292,-292,-292,-292,-292,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,736,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,737,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,59,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,3,6,57,1,573,574,738,6,6,57,1,5,49,3,-174,-174,-174,-174,-174,-174,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,739,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,740,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,741,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,742,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,1,139,743,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,3,6,57,1,616,617,744,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,3,6,57,1,624,625,745,5,6,57,1,5,31,-146,-146,-146,-146,-146,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,746,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,90,747,5,6,57,1,5,23,-110,-110,-110,-110,-110,1,82,748,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,749,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,750,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,118,119,-286,-286,-286,-286,-286,-286,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,118,119,-290,-290,-290,-290,-290,-290,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,49,-195,-195,-195,-195,-195,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,751,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,153,120,752,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,3,51,5,1,753,99,100,5,6,57,1,5,23,-318,-318,-318,-318,-318,5,6,57,1,5,23,-341,-341,-341,-341,-341,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,756,-283,-283,-283,-283,754,-283,755,-283,-283,-283,-283,-283,-283,-283,118,119,-283,-283,-283,-283,-283,-283,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,757,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,9,6,57,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,118,119,-281,-281,-281,-281,-281,-281,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,118,119,-282,-282,-282,-282,-282,-282,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,92,758,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,759,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,6,6,57,1,28,8,18,-215,-215,-215,-215,-215,-215,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,756,-285,-285,-285,-285,760,-285,761,-285,-285,-285,-285,-285,-285,-285,118,119,-285,-285,-285,-285,-285,-285,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,756,-284,-284,-284,-284,762,-284,-284,-284,-284,-284,-284,-284,-284,-284,118,119,-284,-284,-284,-284,-284,-284,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,92,763,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,2,1,764,156,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,160,161,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,162,163,164,43,44,45,47,48,1,92,765,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,756,-286,-286,-286,-286,766,-286,-286,-286,-286,-286,-286,-286,-286,-286,118,119,-286,-286,-286,-286,-286,-286,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,1,92,767,55,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104],T=[],U=0,Y,A,$,W;while(U<F.length){Y=F[U++],A={},$=0,W=[];while(Y--)$+=F[U++],W.push($);for($ of W)A[$]=F[U++];T.push(A)}return T})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,42,1,42,1,52,1,54,1,51,1,51,3,58,1,58,2,60,3,60,5,60,2,60,1,44,1,44,3,68,3,68,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,33,1,33,1,33,1,75,1,75,1,75,3,75,3,75,4,75,6,75,4,75,6,75,4,75,5,75,7,75,3,75,3,75,4,75,6,77,10,77,12,77,11,77,13,77,4,95,0,95,1,95,3,95,4,95,6,96,1,96,1,96,3,96,5,96,3,96,5,98,1,98,1,98,1,86,1,86,3,86,4,86,1,97,2,97,2,103,1,103,1,103,1,103,1,103,1,103,2,103,2,103,2,103,2,103,3,103,3,103,4,103,6,76,2,76,3,76,4,108,1,108,3,108,4,108,4,108,6,110,1,110,2,109,1,109,2,107,1,107,2,112,1,112,2,113,1,113,1,36,5,83,3,83,2,83,2,83,1,30,6,30,3,15,5,15,2,31,5,31,2,122,1,122,1,117,0,117,1,117,3,117,4,117,6,125,1,125,3,125,2,125,1,126,1,126,1,126,1,126,1,127,2,37,2,37,2,37,3,37,2,37,2,105,2,105,4,129,1,129,3,129,4,129,4,129,6,111,1,111,1,111,1,111,1,130,1,130,3,39,1,39,1,78,2,40,3,40,4,40,6,41,3,41,3,119,2,119,3,35,3,35,5,91,0,91,1,10,2,10,4,10,1,28,2,28,4,29,1,29,2,29,4,29,3,140,3,140,5,143,3,143,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,23,2,23,3,23,4,23,5,148,3,148,3,148,2,26,5,26,7,26,4,26,6,152,1,152,2,153,3,153,4,155,2,155,4,155,2,155,4,24,2,24,2,24,2,24,1,158,2,158,2,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,165,1,165,3,89,1,89,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,171,1,171,3,171,4,171,4,171,6,172,1,172,3,172,1,172,3,169,1,170,3,13,3,13,5,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,177,1,177,3,177,4,177,4,177,6,179,1,179,3,179,3,179,1,179,3,32,2,32,2,32,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,38,2],ruleActions:(F,T,U,Y)=>{let A=T,$=T.length-1;switch(F){case 1:return["program"];case 2:return["program",...A[$]];case 3:case 55:case 107:case 147:case 151:case 171:case 191:case 200:case 247:case 297:case 314:case 337:return[A[$]];case 4:case 108:case 172:case 192:case 201:case 315:case 338:return[...A[$-2],A[$]];case 5:case 57:case 154:return A[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 60:case 61:case 83:case 84:case 85:case 86:case 87:case 112:case 117:case 118:case 119:case 120:case 123:case 126:case 127:case 128:case 129:case 130:case 142:case 168:case 169:case 175:case 179:case 180:case 181:case 182:case 196:case 197:case 198:case 214:case 215:case 229:case 231:case 258:case 295:case 319:case 321:case 323:case 342:case 345:return A[$];case 44:return"undefined";case 45:return"null";case 54:return["str",...A[$-1]];case 56:case 148:case 152:case 248:return[...A[$-1],A[$]];case 58:case 190:case 194:case 317:case 340:return A[$-2];case 59:return"";case 62:return["regex",A[$-1]];case 63:return["regex-index",A[$-2],A[$]];case 64:return["regex-index",A[$],null];case 65:return["=",A[$-2],A[$]];case 66:return["=",A[$-3],A[$]];case 67:return["=",A[$-4],A[$-1]];case 68:return["state",A[$-2],A[$]];case 69:return["state",A[$-3],A[$]];case 70:return["state",A[$-4],A[$-1]];case 71:return["computed",A[$-2],A[$]];case 72:return["computed",A[$-3],A[$]];case 73:return["computed",A[$-4],A[$-1]];case 74:return["readonly",A[$-2],A[$]];case 75:return["readonly",A[$-3],A[$]];case 76:return["readonly",A[$-4],A[$-1]];case 77:return["effect",A[$-2],A[$]];case 78:return["effect",A[$-3],A[$]];case 79:return["effect",A[$-4],A[$-1]];case 80:case 81:return["effect",null,A[$]];case 82:return["effect",null,A[$-1]];case 88:case 97:case 135:return[".",A[$-2],A[$]];case 89:case 98:case 136:return["?.",A[$-2],A[$]];case 90:case 92:case 99:case 137:return["[]",A[$-3],A[$-1]];case 91:case 93:case 100:case 138:return["[]",A[$-5],A[$-2]];case 94:return[A[$-1][0],A[$-3],...A[$-1].slice(1)];case 95:return["optindex",A[$-4],A[$-1]];case 96:return["optindex",A[$-6],A[$-2]];case 101:return["object-comprehension",A[$-8],A[$-6],[["for-of",A[$-4],A[$-2],!1]],[]];case 102:return["object-comprehension",A[$-10],A[$-8],[["for-of",A[$-6],A[$-4],!1]],[A[$-2]]];case 103:return["object-comprehension",A[$-9],A[$-7],[["for-of",A[$-4],A[$-2],!0]],[]];case 104:return["object-comprehension",A[$-11],A[$-9],[["for-of",A[$-6],A[$-4],!0]],[A[$-2]]];case 105:return["object",...A[$-2]];case 106:case 149:case 170:case 189:return[];case 109:case 173:case 193:case 316:case 339:return[...A[$-3],A[$]];case 110:case 174:case 195:case 318:case 341:return[...A[$-5],...A[$-2]];case 111:return[A[$],A[$],null];case 113:return[A[$-2],A[$],":"];case 114:return[A[$-4],A[$-1],":"];case 115:return[A[$-2],A[$],"="];case 116:return[A[$-4],A[$-1],"="];case 121:return["dynamicKey",A[$-1]];case 122:return["[]","this",A[$-1]];case 124:case 125:case 183:return["...",A[$]];case 131:case 187:return["super",...A[$]];case 132:case 133:case 134:case 185:case 188:return[A[$-1],...A[$]];case 139:return["array"];case 140:return["array",...A[$-1]];case 141:return["array",...A[$-2],...A[$-1]];case 143:return[...A[$-2],...A[$]];case 144:return[...A[$-3],...A[$]];case 145:return[...A[$-2],...A[$-1]];case 146:return[...A[$-5],...A[$-4],...A[$-2],...A[$-1]];case 150:return[...A[$]];case 153:return null;case 155:return"..";case 156:case 199:return"...";case 157:return[A[$-2],A[$-3],A[$-1]];case 158:case 364:case 366:case 367:case 381:case 383:return[A[$-1],A[$-2],A[$]];case 159:return[A[$],A[$-1],null];case 160:return[A[$-1],null,A[$]];case 161:return[A[$],null,null];case 162:return["def",A[$-4],A[$-2],A[$]];case 163:return["def",A[$-1],[],A[$]];case 164:case 166:return[A[$-1],A[$-3],A[$]];case 165:case 167:return[A[$-1],[],A[$]];case 176:case 296:return["default",A[$-2],A[$]];case 177:return["rest",A[$]];case 178:return["expansion"];case 184:return["tagged-template",A[$-1],A[$]];case 186:return["optcall",A[$-2],...A[$]];case 202:case 203:return"this";case 204:return[".","this",A[$]];case 205:return[".","super",A[$]];case 206:return["[]","super",A[$-1]];case 207:return["[]","super",A[$-2]];case 208:return[".","new",A[$]];case 209:return[".","import",A[$]];case 210:return["block"];case 211:return["block",...A[$-1]];case 212:return A[$-1].length===1?A[$-1][0]:["block",...A[$-1]];case 213:return A[$-2].length===1?A[$-2][0]:["block",...A[$-2]];case 216:return["return",A[$]];case 217:return["return",A[$-1]];case 218:return["return"];case 219:return["throw",A[$]];case 220:return["throw",A[$-1]];case 221:return["yield"];case 222:return["yield",A[$]];case 223:return["yield",A[$-1]];case 224:return["yield-from",A[$]];case 225:return["if",A[$-1],A[$]];case 226:return A[$-4].length===3?["if",A[$-4][1],A[$-4][2],["if",A[$-1],A[$]]]:[...A[$-4],["if",A[$-1],A[$]]];case 227:return["unless",A[$-1],A[$]];case 228:return["if",["!",A[$-3]],A[$-2],A[$]];case 230:return A[$-2].length===3?["if",A[$-2][1],A[$-2][2],A[$]]:[...A[$-2],A[$]];case 232:case 233:return["if",A[$],[A[$-2]]];case 234:case 235:return["unless",A[$],[A[$-2]]];case 236:return["try",A[$]];case 237:return["try",A[$-1],A[$]];case 238:return["try",A[$-2],A[$]];case 239:return["try",A[$-3],A[$-2],A[$]];case 240:case 241:case 347:case 350:case 352:return[A[$-1],A[$]];case 242:return[null,A[$]];case 243:return["switch",A[$-3],A[$-1],null];case 244:return["switch",A[$-5],A[$-3],A[$-1]];case 245:return["switch",null,A[$-1],null];case 246:return["switch",null,A[$-3],A[$-1]];case 249:return["when",A[$-1],A[$]];case 250:return["when",A[$-2],A[$-1]];case 251:return["while",A[$]];case 252:return["while",A[$-2],A[$]];case 253:return["until",A[$]];case 254:return["until",A[$-2],A[$]];case 255:return A[$-1].length===2?[A[$-1][0],A[$-1][1],A[$]]:[A[$-1][0],A[$-1][1],A[$-1][2],A[$]];case 256:case 257:return A[$].length===2?[A[$][0],A[$][1],[A[$-1]]]:[A[$][0],A[$][1],A[$][2],[A[$-1]]];case 259:return["loop",A[$]];case 260:return["loop",[A[$]]];case 261:return["for-in",A[$-3],A[$-1],null,null,A[$]];case 262:return["for-in",A[$-5],A[$-3],null,A[$-1],A[$]];case 263:return["for-in",A[$-5],A[$-3],A[$-1],null,A[$]];case 264:return["for-in",A[$-7],A[$-5],A[$-1],A[$-3],A[$]];case 265:return["for-in",A[$-7],A[$-5],A[$-3],A[$-1],A[$]];case 266:return["for-of",A[$-3],A[$-1],!1,null,A[$]];case 267:return["for-of",A[$-5],A[$-3],!1,A[$-1],A[$]];case 268:return["for-of",A[$-3],A[$-1],!0,null,A[$]];case 269:return["for-of",A[$-5],A[$-3],!0,A[$-1],A[$]];case 270:return["for-as",A[$-3],A[$-1],!1,null,A[$]];case 271:return["for-as",A[$-5],A[$-3],!1,A[$-1],A[$]];case 272:case 274:return["for-as",A[$-3],A[$-1],!0,null,A[$]];case 273:case 275:return["for-as",A[$-5],A[$-3],!0,A[$-1],A[$]];case 276:return["for-in",[],A[$-1],null,null,A[$]];case 277:return["for-in",[],A[$-3],A[$-1],null,A[$]];case 278:return["comprehension",A[$-4],[["for-in",A[$-2],A[$],null]],[]];case 279:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],null]],[A[$]]];case 280:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],A[$]]],[]];case 281:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$]]],[A[$-2]]];case 282:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$-2]]],[A[$]]];case 283:return["comprehension",A[$-4],[["for-of",A[$-2],A[$],!1]],[]];case 284:return["comprehension",A[$-6],[["for-of",A[$-4],A[$-2],!1]],[A[$]]];case 285:return["comprehension",A[$-5],[["for-of",A[$-2],A[$],!0]],[]];case 286:return["comprehension",A[$-7],[["for-of",A[$-4],A[$-2],!0]],[A[$]]];case 287:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!1,null]],[]];case 288:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!1,null]],[A[$]]];case 289:return["comprehension",A[$-5],[["for-as",A[$-2],A[$],!0,null]],[]];case 290:return["comprehension",A[$-7],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 291:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!0,null]],[]];case 292:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 293:return["comprehension",A[$-2],[["for-in",[],A[$],null]],[]];case 294:return["comprehension",A[$-4],[["for-in",[],A[$-2],A[$]]],[]];case 298:case 320:case 322:case 343:case 344:case 346:return[A[$-2],A[$]];case 299:return["class",null,null];case 300:return["class",null,null,A[$]];case 301:return["class",null,A[$]];case 302:return["class",null,A[$-1],A[$]];case 303:return["class",A[$],null];case 304:return["class",A[$-1],null,A[$]];case 305:return["class",A[$-2],A[$]];case 306:return["class",A[$-3],A[$-1],A[$]];case 307:case 310:return["import","{}",A[$]];case 308:case 309:return["import",A[$-2],A[$]];case 311:return["import",A[$-4],A[$]];case 312:return["import",[A[$-4],A[$-2]],A[$]];case 313:return["import",[A[$-7],A[$-4]],A[$]];case 324:return["*",A[$]];case 325:return["export","{}"];case 326:return["export",A[$-2]];case 327:case 328:return["export",A[$]];case 329:return["export",["=",A[$-2],A[$]]];case 330:return["export",["=",A[$-3],A[$]]];case 331:return["export",["=",A[$-4],A[$-1]]];case 332:return["export-default",A[$]];case 333:return["export-default",A[$-1]];case 334:return["export-all",A[$]];case 335:return["export-from","{}",A[$]];case 336:return["export-from",A[$-4],A[$]];case 348:case 349:case 351:case 386:return["do-iife",A[$]];case 353:return["-",A[$]];case 354:return["+",A[$]];case 355:return["?",A[$-1]];case 356:return["await",A[$]];case 357:return["await",A[$-1]];case 358:return["--",A[$],!1];case 359:return["++",A[$],!1];case 360:return["--",A[$-1],!0];case 361:return["++",A[$-1],!0];case 362:return["+",A[$-2],A[$]];case 363:return["-",A[$-2],A[$]];case 365:return["**",A[$-2],A[$]];case 368:return["&",A[$-2],A[$]];case 369:return["^",A[$-2],A[$]];case 370:return["|",A[$-2],A[$]];case 371:case 372:case 373:case 374:case 375:case 376:return["control",A[$-1],A[$-2],A[$]];case 377:return["&&",A[$-2],A[$]];case 378:return["||",A[$-2],A[$]];case 379:return["??",A[$-2],A[$]];case 380:return["!?",A[$-2],A[$]];case 382:return["?:",A[$-4],A[$-2],A[$]];case 384:return[A[$-3],A[$-4],A[$-1]];case 385:return[A[$-2],A[$-3],A[$]]}},parseError(F,T){let U,Y,A,$,W,M,D;if(T.recoverable)return this.trace(F);else throw A=(T.line||0)+1,U=T.loc?.first_column||0,D=T.token?` (token: ${T.token})`:"",M=T.text?` near '${T.text}'`:"",$=`line ${A}, column ${U}`,W=`Parse error at ${$}${D}${M}: ${F}`,Y=Error(W),Y.hash=T,Y},parse(F){let T,U,Y,A,$,W,M,D,Z,Q,X,J,K,G,z,H,R,O,_,u,P,L,q,w,I,N,S,j;[P,q,Z]=[[0],[null],[]],[G,S,I,w,O]=[this.parseTable,"",0,0,0],[U,T]=[2,1],D=Object.create(this.lexer),_={yy:{}};for(let f in this.yy)if(Object.hasOwn(this.yy,f)){let V=this.yy[f];_.yy[f]=V}if(D.setInput(F,_.yy),[_.yy.lexer,_.yy.parser]=[D,this],D.yylloc==null)D.yylloc={};N=D.yylloc,Z.push(N),R=D.options?.ranges,this.parseError=typeof _.yy.parseError==="function"?_.yy.parseError:Object.getPrototypeOf(this).parseError,M=()=>{let f;if(f=D.lex()||T,typeof f!=="number")f=this.symbolIds[f]||f;return f},[L,z,u,Y,H,j,K,W,J,$]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(u=P[P.length-1],L==null)L=M();if(Y=G[u]!=null?G[u][L]:void 0,Y==null){if(A="",!O)$=(()=>{let f=[];for(let V in G[u]){if(!Object.hasOwn(G[u],V))continue;if(this.tokenNames[V]&&V>U)f.push(`'${this.tokenNames[V]}'`)}return f})();throw A=(()=>{if(D.showPosition)return`Parse error on line ${I+1}:
|
|
10
|
-
${
|
|
11
|
-
Expecting ${
|
|
12
|
-
|
|
13
|
-
`)
|
|
14
|
-
|
|
15
|
-
`))
|
|
16
|
-
|
|
17
|
-
`)
|
|
18
|
-
|
|
19
|
-
`)){M[M.length-1]+=" "+J;continue}}M.push(v(Q,T+2,!1))}}return M[M.length-1]+=")",M.join(`
|
|
20
|
-
`)
|
|
21
|
-
`))
|
|
22
|
-
`),
|
|
23
|
-
`),Q
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
var q1=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),O1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),l=new Set([...q1,...O1]);var t=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),e=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render"]),r={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},$1=new Set(Object.keys(r)),H1=new Set(["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"]),_1=new Set(["break","continue","debugger"]),P1=new Set(["NEW","TYPEOF","DELETE"]),T1=new Set(["IN","OF","INSTANCEOF"]),n=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),J1=new Set([...n,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),c=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),w1=new Set(["+","-"]),I1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"]),B1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),k=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),b=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),E1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},A1=new Set(["CATCH","THEN","ELSE","FINALLY",...b]),a=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),N1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),F1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),j1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),p=new Set(["INDENT","OUTDENT","TERMINATOR"]),Y1=new Set([".","?."]),U1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),S1=new Set([...J1,"++","--"]),W1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),u1=new Set(["*","/","%","//","%%"]),f1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),L1=new Set(["<<",">>",">>>"]),V1=new Set(["!","~"]),C1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,y1=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,h1=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,b1=/^[^\n\S]+/,v1=/^(?:\n[^\n\S]*)+/,k1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,g1=/^[-=]>/,x1=/^(?:~[=>]|=!)/,m1=/^(?:'''|"""|'|")/,l1=/^(?:[^\\']|\\[\s\S])*/,c1=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,p1=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,n1=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,Q1=/\n+([^\n\S]*)(?=\S)/g,i1=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,Z1=/^\w*/,d1=/^(?!.*(.).*\1)[gimsuy]*$/,o1=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,s1=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,a1=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,r1=/\s+$/,D1=/^\s*(?:,|\??\.(?![.\d]))/,t1=65279;function X1(F,W,{pre:Y=0,row:U=0,col:$=0,len:A=0,data:Q=null}={}){let J=[F,W];return J.pre=Y,J.data=Q,J.loc={r:U,c:$,n:A},J.spaced=Y>0,J.newLine=!1,J}function V(F,W,Y){let U=X1(F,W);if(U.generated=!0,Y)U.origin=Y;return U}function h(F,{row:W=0,col:Y=0,len:U=1}={}){let $=SyntaxError(F);throw $.location={first_line:W,first_column:Y,last_column:Y+U-1},$}function e1(F){if(F==null)return NaN;switch(F.charAt(1)){case"b":return parseInt(F.slice(2).replace(/_/g,""),2);case"o":return parseInt(F.slice(2).replace(/_/g,""),8);case"x":return parseInt(F.slice(2).replace(/_/g,""),16);default:return parseFloat(F.replace(/_/g,""))}}class x{tokenize(F,W={}){this.code=F,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=W.row||0,this.col=W.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,F=this.clean(F),this.code=F;while(this.pos<F.length){this.chunk=F.slice(this.pos);let Y=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(Y===0)h(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(Y),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let Y=this.ends[this.ends.length-1];h(`missing ${Y.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(F){if(F.charCodeAt(0)===t1)F=F.slice(1);if(F=F.replace(/\r\n?/g,`
|
|
2
|
+
`),F=F.replace(r1,""),/^[^\n\S]/.test(F))F=`
|
|
3
|
+
`+F;return F}advance(F){let W=this.code.slice(this.pos,this.pos+F);for(let Y=0;Y<W.length;Y++)if(W[Y]===`
|
|
4
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=F}emit(F,W,{len:Y,data:U,pre:$}={}){let A=X1(F,W,{pre:$??0,row:this.row,col:this.col,len:Y??(typeof W==="string"?W.length:0),data:U});return this.tokens.push(A),A}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let F=this.prev();return F?F[0]:void 0}prevVal(){let F=this.prev();return F?F[1]:void 0}identifierToken(){if(x1.test(this.chunk))return 0;let F=C1.exec(this.chunk);if(!F)return 0;let[W,Y,U]=F,$=Y.length,A={},Q;if(Y==="own"&&this.prevTag()==="FOR")return this.emit("OWN",Y,{len:$}),$;if(Y==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",Y,{len:$}),$;if(Y==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let D=this.prevTag();if(D==="DEFAULT"||D==="IMPORT_ALL"||D==="IDENTIFIER")return this.emit("AS",Y,{len:$}),$}if((Y==="as"||Y==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(Y==="as!"?"FORASAWAIT":"FORAS","as",{len:$}),$;if(Y==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",Y,{len:$}),$;if(Y==="do"&&/^(\s*super)(?!\(\))/.test(this.chunk.slice(3))){let D=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3));return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),D[1].length+3}let J=this.prev();if(U&&J&&J[0]==="SPACE?")U=null;if(U||J&&(J[0]==="."||J[0]==="?."||!J.spaced&&J[0]==="@")){if(Q="PROPERTY",this.inRenderBlock&&J&&J[0]==="."&&!U){let D=this.chunk.slice($);while(D[0]==="-"&&/^-[a-zA-Z]/.test(D)){let K=/^-([a-zA-Z][\w]*)/.exec(D);if(!K)break;Y+="-"+K[1],$+=1+K[1].length,D=this.chunk.slice($)}}}else Q="IDENTIFIER";let Z=Y.endsWith("!")||Y.endsWith("?")?Y.slice(0,-1):Y;if(Q==="IDENTIFIER"&&!Y.endsWith("!")&&!Y.endsWith("?")&&(t.has(Y)||e.has(Y)||$1.has(Y))&&!(this.exportSpecifierList&&$1.has(Y))){if(r[Y]!==void 0)A.original=Y,Y=r[Y];Q=this.classifyKeyword(Y,Q,A)}if(Q==="IDENTIFIER"&&H1.has(Z))h(`reserved word '${Z}'`,{row:this.row,col:this.col,len:$});if(Q==="PROPERTY"&&J){if(J[0]==="."&&this.tokens.length>1){let D=this.tokens[this.tokens.length-2];if(D[0]==="UNARY"&&D[1]==="new")D[0]="NEW_TARGET";if(D[0]==="IMPORT"&&D[1]==="import")this.seenImport=!1,D[0]="IMPORT_META"}}if(Y.length>1&&Y.endsWith("!"))A.await=!0,Y=Y.slice(0,-1);if(Y.length>1&&Y.endsWith("?"))A.predicate=!0,Y=Y.slice(0,-1);let X=this.emit(Q,Y,{len:$,data:Object.keys(A).length?A:null});if(Q==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(U)return this.emit(":",":",{len:1}),$+U.length;return $}classifyKeyword(F,W,Y){switch(F){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return F}if(_1.has(F))return"STATEMENT";let U=F.toUpperCase();if(U==="WHEN"&&p.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(P1.has(U))return"UNARY";if(T1.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let $=this.tokens.pop();Y.invert=$.data?.original||$[1]}return"RELATION"}if(t.has(F)||e.has(F))return U;return W}commentToken(){let F=k1.exec(this.chunk);if(!F)return 0;return F[0].length}whitespaceToken(){let F=b1.exec(this.chunk);if(!F&&this.chunk[0]!==`
|
|
5
|
+
`)return 0;let W=this.prev();if(W)if(F)W.spaced=!0,W.pre=F[0].length;else W.newLine=!0;return F?F[0].length:0}lineToken(){let F=v1.exec(this.chunk);if(!F)return 0;let W=F[0],Y=W.length-1-W.lastIndexOf(`
|
|
6
|
+
`);if(this.isUnfinished()){if(Y<this.indent&&/^\s*,/.test(this.chunk)&&!U1.has(this.prevTag())){if(this.outdentTo(Y,W.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return W.length}return W.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(Y===this.indent)return this.emitNewline(),W.length;if(Y>this.indent){if(!this.tokens.length)return this.indent=Y,W.length;let U=Y-this.indent;return this.emit("INDENT",U,{len:Y}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=Y,W.length}return this.outdentTo(Y,W.length),W.length}outdentTo(F,W=0){if(this.inRenderBlock&&F<=this.renderIndent)this.inRenderBlock=!1;let Y=this.indent-F;while(Y>0){let U=this.indents[this.indents.length-1];if(!U)Y=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",Y,{len:W}),Y-=U}this.emitNewline(),this.indent=F}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
7
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&D1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;return D1.test(this.chunk)||U1.has(this.prevTag())}pair(F){let W=this.ends[this.ends.length-1];if(!W||F!==W.tag){if(W?.tag==="OUTDENT"){let Y=this.indents[this.indents.length-1];if(Y)this.outdentTo(this.indent-Y);return this.pair(F)}h(`unmatched ${F}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let F=m1.exec(this.chunk);if(!F)return 0;let W=F[0],Y=this.prev();if(Y&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))Y[0]="FROM";let U;switch(W){case"'":U=l1;break;case'"':U=c1;break;case"'''":U=p1;break;case'"""':U=n1;break}let{tokens:$,index:A}=this.matchWithInterpolations(U,W),Q=W.length===3,J=null;if(Q)J=this.processHeredocIndent(A,W,$);return this.mergeInterpolationTokens($,{quote:W,indent:J,endOffset:A}),A}processHeredocIndent(F,W,Y){let U=F-W.length,$=U-1;while($>=0&&this.chunk[$]!==`
|
|
8
|
+
`)$--;$++;let A=this.chunk.slice($,U),Q=/^\s*$/.test(A)?A.length:null,J="";for(let D of Y)if(D[0]==="NEOSTRING")J+=D[1];let Z=null,X;Q1.lastIndex=0;while(X=Q1.exec(J))if(Z===null||X[1].length>0&&X[1].length<Z.length)Z=X[1];if(Q===null)return Z;if(Z===null)return" ".repeat(Q);if(Q<=Z.length)return" ".repeat(Q);return Z}matchWithInterpolations(F,W,Y,U){if(!Y)Y=W;if(!U)U=/^[#$]\{/;let $=[],A=W.length;if(this.chunk.slice(0,A)!==W)return null;let Q=this.chunk.slice(A);while(!0){let[J]=F.exec(Q);$.push(["NEOSTRING",J,{offset:A}]),Q=Q.slice(J.length),A+=J.length;let Z=U.exec(Q);if(!Z)break;let D=Z[0].length-1,K=Q.slice(D),M=new x().tokenize(K,{row:this.row,col:this.col+A+D,untilBalanced:!0,rewrite:!1}),R=M.index+D;if(Q[R-1]==="}"){let G=M.tokens[0],P=M.tokens[M.tokens.length-1];G[0]="INTERPOLATION_START",G[1]="(",P[0]="INTERPOLATION_END",P[1]=")"}if(M.tokens[1]?.[0]==="TERMINATOR")M.tokens.splice(1,1);let z=M.tokens.length;if(z>2&&M.tokens[z-3]?.[0]==="INDENT"&&M.tokens[z-2]?.[0]==="OUTDENT")M.tokens.splice(z-3,2);$.push(["TOKENS",M.tokens]),Q=Q.slice(R),A+=R}if(Q.slice(0,Y.length)!==Y)h(`missing ${Y}`,{row:this.row,col:this.col});return{tokens:$,index:A+Y.length}}mergeInterpolationTokens(F,{quote:W,indent:Y,endOffset:U}){if(F.length>1)this.emit("STRING_START","(",{len:W?.length||0,data:{quote:W}});for(let $=0;$<F.length;$++){let[A,Q]=F[$];if(A==="TOKENS")for(let J of Q)this.tokens.push(J);else if(A==="NEOSTRING"){let J=Q;if(Y){let Z=new RegExp("\\n"+Y,"g");J=J.replace(Z,`
|
|
9
|
+
`)}if($===0&&W?.length===3)J=J.replace(/^\n/,"");if($===F.length-1&&W?.length===3)J=J.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${J}"`,{len:Q.length,data:{quote:W}})}}if(F.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let F=y1.exec(this.chunk);if(!F)return 0;let W=F[0],Y=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))h(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))h(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:Y});if(/^0\d+/.test(W))h(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:Y});let $=e1(W),A=$===1/0?"INFINITY":"NUMBER",Q={parsedValue:$};if(A==="INFINITY")Q.original=W;return this.emit(A,W,{len:Y,data:Q}),Y}regexToken(){let F=this.matchWithInterpolations(o1,"///");if(F){let{tokens:X,index:D}=F,[K]=Z1.exec(this.chunk.slice(D)),M=D+K.length;if(X.length===1||!X.some((R)=>R[0]==="TOKENS")){let R=X[0]?.[1]||"";this.emit("REGEX",`/${R}/${K}`,{len:M,data:{delimiter:"///",heregex:{flags:K}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(X,{quote:"///",endOffset:M-K.length}),K)this.emit(",",",",{len:0}),this.emit("STRING",`"${K}"`,{len:K.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return M}let W=i1.exec(this.chunk);if(!W)return 0;let[Y,U,$]=W,A=this.prev();if(A){if(A.spaced&&n.has(A[0])&&(!$||/^\/=?\s/.test(Y)))return 0;if(S1.has(A[0])&&!(A.spaced&&n.has(A[0])))return 0}if(!$)h("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=Y.length,[J]=Z1.exec(this.chunk.slice(Q)),Z=Q+J.length;if(!d1.test(J))h(`invalid regular expression flags ${J}`,{row:this.row,col:this.col+Q,len:J.length});return this.emit("REGEX",`/${U}/${J}`,{len:Z,data:{delimiter:"/"}}),Z}jsToken(){if(this.chunk[0]!=="`")return 0;let F=a1.exec(this.chunk)||s1.exec(this.chunk);if(!F)return 0;let W=F[1],Y=F[0].length;return this.emit("JS",W,{len:Y,data:{here:F[0].startsWith("```")}}),Y}literalToken(){let F=h1.exec(this.chunk),W=F?F[0]:this.chunk.charAt(0),Y=W,U=this.prev();if(g1.test(W))this.tagParameters();if(U&&(W==="="||W1.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,Y="TERMINATOR";else if(W==="~=")Y="COMPUTED_ASSIGN";else if(W===":=")Y="REACTIVE_ASSIGN";else if(W==="<=>")Y="BIND";else if(W==="~>")Y="REACT_ASSIGN";else if(W==="=!")Y="READONLY_ASSIGN";else if(W==="*"&&U?.[0]==="EXPORT")Y="EXPORT_ALL";else if(u1.has(W))Y="MATH";else if(f1.has(W))Y="COMPARE";else if(W1.has(W))Y="COMPOUND_ASSIGN";else if(V1.has(W))Y="UNARY_MATH";else if(L1.has(W))Y="SHIFT";else if(W==="?"&&U?.spaced)Y="SPACE?";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))Y="?.";else if(U){if(W==="("&&!U.spaced&&n.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";Y="CALL_START"}if(W==="["&&!U.spaced&&J1.has(U[0])){if(Y="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:E1[W],origin:[Y,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(Y,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let F=this.tokens.length-1,W=[];this.tokens[F][0]="PARAM_END";while(F-- >0){let Y=this.tokens[F];if(Y[0]===")")W.push(Y);else if(Y[0]==="("||Y[0]==="CALL_START")if(W.length)W.pop();else if(Y[0]==="(")return Y[0]="PARAM_START",this.tagDoIife(F-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(F){let W=this.tokens[F??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite(F){return this.tokens=F,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let F=0;while(this.tokens[F]?.[0]==="TERMINATOR")F++;if(F>0)this.tokens.splice(0,F)}closeOpenCalls(){this.scanTokens((F,W)=>{if(F[0]==="CALL_START")this.detectEnd(W+1,(Y)=>Y[0]===")"||Y[0]==="CALL_END",(Y)=>Y[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((F,W)=>{if(F[0]==="INDEX_START")this.detectEnd(W+1,(Y)=>Y[0]==="]"||Y[0]==="INDEX_END",(Y,U)=>{if(this.tokens[U+1]?.[0]===":")F[0]="[",Y[0]="]";else Y[0]="INDEX_END"});return 1})}normalizeLines(){let F=null,W=null,Y=null,U=(A,Q)=>{return A[1]!==";"&&j1.has(A[0])&&!(A[0]==="TERMINATOR"&&A1.has(this.tokens[Q+1]?.[0]))&&!(A[0]==="ELSE"&&F!=="THEN")||A[0]==="INDENT"&&!A.generated&&(F==="->"||F==="=>")||A[0]===","&&(F==="->"||F==="=>")&&!this.commaInImplicitCall(Q)||Y1.has(A[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},$=(A,Q)=>{let J=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(J,0,Y)};this.scanTokens((A,Q,J)=>{let[Z]=A;if(Z==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return J.splice(Q,1,...this.makeIndentation()),1;if(A1.has(this.tokens[Q+1]?.[0]))return J.splice(Q,1),0}if(Z==="CATCH")for(let X=1;X<=2;X++){let D=this.tokens[Q+X]?.[0];if(D==="OUTDENT"||D==="TERMINATOR"||D==="FINALLY")return J.splice(Q+X,0,...this.makeIndentation()),2+X}if((Z==="->"||Z==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[W,Y]=this.makeIndentation(),J.splice(Q+1,0,W,Y),1;if(F1.has(Z)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(F=Z,[W,Y]=this.makeIndentation(),Z==="THEN")W.fromThen=!0;if(J.splice(Q+1,0,W),this.detectEnd(Q+2,U,$),Z==="THEN")J.splice(Q,1);return 1}return 1})}rewriteRender(){let F=!1,W=0,Y=0,U=[],$=(Z)=>{let X=Z.split("#")[0];return l.has(X)},A=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return $(Z)||A(Z)},J=(Z,X)=>{let D=X;while(D>0){let K=Z[D-1][0];if(K==="INDENT"||K==="OUTDENT"||K==="TERMINATOR"||K==="RENDER"||K==="CALL_END"||K===")")break;D--}return Z[D]&&Z[D][0]==="IDENTIFIER"&&$(Z[D][1])};this.scanTokens(function(Z,X,D){let K=Z[0],M=X<D.length-1?D[X+1]:null;if(K==="RENDER")return F=!0,W=Y+1,1;if(K==="INDENT")return Y++,1;if(K==="OUTDENT"){Y--;let R=0;while(U.length>0&&U[U.length-1]>Y){let z=V("CALL_END",")",Z);D.splice(X+1+R,0,z),U.pop(),R++}if(F&&Y<W)F=!1;return 1+R}if(!F)return 1;if(K==="IDENTIFIER"&&!Z.spaced){let R=[Z[1]],z=X+1;while(z+1<D.length){let G=D[z],P=D[z+1];if(G[0]==="-"&&!G.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(R.push(P[1]),z+=2,P[0]==="PROPERTY")break}else break}if(R.length>1&&z>X+1&&D[z-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${R.join("-")}"`,D.splice(X+1,z-X-1),1}if(K==="."){let R=X>0?D[X-1]:null,z=R?R[0]:null;if(z==="INDENT"||z==="TERMINATOR"){if(M&&M[0]==="PROPERTY"){let G=V("IDENTIFIER","div",Z);return D.splice(X,0,G),2}}}if(K==="IDENTIFIER"||K==="PROPERTY"){let R=D[X+1],z=D[X+2];if(R&&R[0]==="#"&&z&&z[0]==="PROPERTY"){if(Z[1]=Z[1]+"#"+z[1],z.spaced)Z.spaced=!0;return D.splice(X+1,2),1}}if(K==="BIND"){let R=X>0?D[X-1]:null,z=D[X+1];if(R&&(R[0]==="IDENTIFIER"||R[0]==="PROPERTY")&&z&&z[0]==="IDENTIFIER")return R[1]=`__bind_${R[1]}__`,Z[0]=":",Z[1]=":",1}if(K==="@"){let R=X+1;if(R<D.length&&D[R][0]==="PROPERTY"){R++;while(R+1<D.length&&D[R][0]==="."&&D[R+1][0]==="PROPERTY")R+=2;if(R>X+2&&R<D.length&&D[R][0]===":"){let z=V("[","[",Z);D.splice(X,0,z);let G=V("]","]",D[R+1]);return D.splice(R+1,0,G),2}}}if(K==="."&&M&&M[0]==="("){let R=X>0?D[X-1]:null,z=R?R[0]:null,G=z==="INDENT"||z==="TERMINATOR",P=V("PROPERTY","__cx__",Z);M[0]="CALL_START";let _=1;for(let w=X+2;w<D.length&&_>0;w++)if(D[w][0]==="("||D[w][0]==="CALL_START")_++;else if(D[w][0]===")"){if(_--,_===0)D[w][0]="CALL_END"}else if(D[w][0]==="CALL_END")_--;if(G){let w=V("IDENTIFIER","div",Z);return D.splice(X,0,w),D.splice(X+2,0,P),3}else return D.splice(X+1,0,P),2}if(M&&M[0]==="INDENT"){if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let R=!1;if(K==="IDENTIFIER"&&Q(Z[1]))R=!0;else if(K==="PROPERTY"||K==="STRING"||K==="CALL_END"||K===")")R=J(D,X);else if(K==="IDENTIFIER"&&X>1&&D[X-1][0]==="..."){if(J(D,X)){let z=V(",",",",Z),G=V("->","->",Z);return G.newLine=!0,D.splice(X+1,0,z,G),3}}if(R){let z=V("CALL_START","(",Z),G=V("->","->",Z);return G.newLine=!0,D.splice(X+1,0,z,G),U.push(Y+1),3}}return 1})}tagPostfixConditionals(){let F=null,W=(U,$)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!F1.has(this.tokens[$-1]?.[0])},Y=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)F[0]="POST_"+F[0]};this.scanTokens((U,$)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return F=U,this.detectEnd($+1,W,Y),1})}addImplicitBracesAndParens(){let F=[],W=!1;this.scanTokens((Y,U,$)=>{let[A]=Y,Q=$[U-1]||[],J=$[U+1]||[],[Z]=Q,[X]=J,D=U,K=(q)=>U-D+q,M=()=>F[F.length-1],R=(q)=>q?.[2]?.ours,z=()=>R(M())&&M()?.[0]==="(",G=()=>R(M())&&M()?.[0]==="{",P=(q)=>{F.push(["(",q,{ours:!0}]),$.splice(q,0,V("CALL_START","("))},_=()=>{F.pop(),$.splice(U,0,V("CALL_END",")")),U+=1},w=(q,B={})=>{F.push(["{",q,{sameLine:!0,startsLine:B.startsLine??!0,ours:!0}]);let I=V("{","{");if(!I.data)I.data={};I.data.generated=!0,$.splice(q,0,I)},H=(q)=>{q=q??U,F.pop(),$.splice(q,0,V("}","}")),U+=1};if((z()||G())&&N1.has(A))return F.push(["CONTROL",U,{ours:!0}]),K(1);if(A==="INDENT"&&R(M())){if(Z!=="=>"&&Z!=="->"&&Z!=="["&&Z!=="("&&Z!==","&&Z!=="{"&&Z!=="ELSE"&&Z!=="=")while(z()||G()&&Z!==":")if(z())_();else H();if(M()?.[2]?.ours&&M()[0]==="CONTROL")F.pop();return F.push([A,U]),K(1)}if(k.has(A))return F.push([A,U]),K(1);if(b.has(A)){while(R(M()))if(z())_();else if(G())H();else F.pop();F.pop()}if(a.has(A)&&Y.spaced&&(c.has(X)||X==="..."&&c.has($[U+2]?.[0])||w1.has(X)&&!J.spaced&&!J.newLine)&&!((A==="]"||A==="}")&&(X==="->"||X==="=>")))return P(U+1),K(2);if(a.has(A)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return P(U+1),F.push(["INDENT",U+2]),K(3);if(A==="SPACE?")W=!0;if(A===":"){if(W)return W=!1,K(1);let q=b.has(this.tokens[U-1]?.[0])?F[F.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")q=U-2;let B=q<=0||p.has(this.tokens[q-1]?.[0])||this.tokens[q-1]?.newLine;if(M()){let[I,N]=M(),S=F[F.length-2];if((I==="{"||I==="INDENT"&&S?.[0]==="{"&&!R(S))&&(B||this.tokens[q-1]?.[0]===","||this.tokens[q-1]?.[0]==="{"||this.tokens[q]?.[0]==="{"))return K(1)}return w(q,{startsLine:!!B}),K(2)}if(p.has(A))for(let q=F.length-1;q>=0;q--){if(!R(F[q]))break;if(F[q][0]==="{")F[q][2].sameLine=!1}let E=Z==="OUTDENT"||Q.newLine,T=A==="||"||A==="&&",O=!1;if(T){let q=U+1,B=$[q]?.[0];if(B==="("||B==="["||B==="{"){for(let I=1;++q<$.length&&I>0;)if(B=$[q][0],B==="("||B==="["||B==="{")I++;else if(B===")"||B==="]"||B==="}")I--}else if(B&&B!=="TERMINATOR"&&B!=="OUTDENT"&&B!==",")q++;O=$[q]?.[0]===","}if(I1.has(A)&&!O||Y1.has(A)&&E)while(R(M())){let[q,,{sameLine:B,startsLine:I}]=M();if(z()&&Z!==",")_();else if(G()&&!T&&B&&A!=="TERMINATOR"&&Z!==":")H();else if(G()&&A==="TERMINATOR"&&Z!==","&&!(I&&this.looksObjectish(U+1)))H();else if(M()?.[2]?.ours&&M()[0]==="CONTROL"&&$[M()[1]]?.[0]==="CLASS"&&A==="TERMINATOR")F.pop();else break}if(A===","&&!this.looksObjectish(U+1)&&G()&&(X!=="TERMINATOR"||!this.looksObjectish(U+2))){let q=X==="OUTDENT"?1:0;while(G())H(U+q)}return K(1)})}addImplicitCallCommas(){let F=0,W=0,Y=this.tokens;while(W<Y.length){let U=Y[W][0],$=W>0?Y[W-1][0]:null;if(U==="CALL_START"||U==="(")F++;if(U==="CALL_END"||U===")")F--;if(F>0&&(U==="->"||U==="=>")&&B1.has($))Y.splice(W,0,V(",",",")),W++;W++}}scanTokens(F){let W=0;while(W<this.tokens.length)W+=F.call(this,this.tokens[W],W,this.tokens)}detectEnd(F,W,Y,U={}){let $=0;while(F<this.tokens.length){let A=this.tokens[F];if($===0&&W.call(this,A,F))return Y.call(this,A,F);if(k.has(A[0]))$++;if(b.has(A[0]))$--;if($<0){if(U.returnOnNegativeLevel)return;return Y.call(this,A,F)}F++}}commaInImplicitCall(F){let W=0;for(let Y=F-1;Y>=0;Y--){let U=this.tokens[Y][0];if(b.has(U)){W++;continue}if(k.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(a.has(U)&&this.tokens[Y].spaced){let $=this.tokens[Y+1]?.[0];return c.has($)||$==="..."&&c.has(this.tokens[Y+2]?.[0])}}return!1}looksObjectish(F){if(!this.tokens[F])return!1;if(this.tokens[F]?.[0]==="@"&&this.tokens[F+2]?.[0]===":")return!0;if(this.tokens[F+1]?.[0]===":")return!0;if(k.has(this.tokens[F]?.[0])){let W=null;if(this.detectEnd(F+1,(Y)=>b.has(Y[0]),(Y,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards(F,W){let Y=new Set(W),U=[];while(F>=0){let $=this.tokens[F]?.[0];if(!U.length&&Y.has($))return!0;if(b.has($))U.push($);if(k.has($)&&U.length)U.pop();if(!U.length&&(k.has($)&&!this.tokens[F]?.generated||p.has($)))break;F--}return!1}makeIndentation(F){let W=V("INDENT",2),Y=V("OUTDENT",2);if(F)W.generated=Y.generated=!0,W.origin=Y.origin=F;else W.explicit=Y.explicit=!0;return[W,Y]}}var $2={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,CodeLine:33,OperationLine:34,Assignable:35,Literal:36,Parenthetical:37,Range:38,Invocation:39,DoIife:40,This:41,Super:42,MetaProperty:43,AlphaNumeric:44,JS:45,Regex:46,UNDEFINED:47,NULL:48,BOOL:49,INFINITY:50,NAN:51,NUMBER:52,String:53,Identifier:54,IDENTIFIER:55,Property:56,PROPERTY:57,STRING:58,STRING_START:59,Interpolations:60,STRING_END:61,InterpolationChunk:62,INTERPOLATION_START:63,INTERPOLATION_END:64,INDENT:65,OUTDENT:66,REGEX:67,REGEX_START:68,REGEX_END:69,RegexWithIndex:70,",":71,"=":72,REACTIVE_ASSIGN:73,COMPUTED_ASSIGN:74,READONLY_ASSIGN:75,REACT_ASSIGN:76,SimpleAssignable:77,Array:78,Object:79,ThisProperty:80,".":81,"?.":82,INDEX_START:83,INDEX_END:84,Slice:85,ES6_OPTIONAL_INDEX:86,"{":87,ObjAssignable:88,":":89,FOR:90,ForVariables:91,FOROF:92,OptComma:93,"}":94,WHEN:95,OWN:96,AssignList:97,AssignObj:98,ObjRestValue:99,SimpleObjAssignable:100,"[":101,"]":102,"@":103,"...":104,ObjSpreadExpr:105,SUPER:106,Arguments:107,DYNAMIC_IMPORT:108,Elisions:109,ArgElisionList:110,OptElisions:111,ArgElision:112,Arg:113,Elision:114,RangeDots:115,"..":116,DEF:117,CALL_START:118,ParamList:119,CALL_END:120,Block:121,PARAM_START:122,PARAM_END:123,FuncGlyph:124,"->":125,"=>":126,Param:127,ParamVar:128,Splat:129,ES6_OPTIONAL_CALL:130,ArgList:131,SimpleArgs:132,THIS:133,NEW_TARGET:134,IMPORT_META:135,"(":136,")":137,RETURN:138,THROW:139,YIELD:140,FROM:141,IfBlock:142,IF:143,ELSE:144,UnlessBlock:145,UNLESS:146,POST_IF:147,POST_UNLESS:148,TRY:149,Catch:150,FINALLY:151,CATCH:152,SWITCH:153,Whens:154,When:155,LEADING_WHEN:156,WhileSource:157,WHILE:158,UNTIL:159,Loop:160,LOOP:161,FORIN:162,BY:163,FORAS:164,AWAIT:165,FORASAWAIT:166,ForValue:167,CLASS:168,EXTENDS:169,COMPONENT:170,ComponentBody:171,ComponentLine:172,RENDER:173,IMPORT:174,ImportDefaultSpecifier:175,ImportNamespaceSpecifier:176,ImportSpecifierList:177,ImportSpecifier:178,AS:179,DEFAULT:180,IMPORT_ALL:181,EXPORT:182,ExportSpecifierList:183,EXPORT_ALL:184,ExportSpecifier:185,UNARY:186,DO:187,DO_IIFE:188,UNARY_MATH:189,"-":190,"+":191,"?":192,"--":193,"++":194,MATH:195,"**":196,SHIFT:197,COMPARE:198,"&":199,"^":200,"|":201,"||":202,"??":203,"&&":204,"!?":205,RELATION:206,"SPACE?":207,COMPOUND_ASSIGN:208},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",45:"JS",47:"UNDEFINED",48:"NULL",49:"BOOL",50:"INFINITY",51:"NAN",52:"NUMBER",55:"IDENTIFIER",57:"PROPERTY",58:"STRING",59:"STRING_START",61:"STRING_END",63:"INTERPOLATION_START",64:"INTERPOLATION_END",65:"INDENT",66:"OUTDENT",67:"REGEX",68:"REGEX_START",69:"REGEX_END",71:",",72:"=",73:"REACTIVE_ASSIGN",74:"COMPUTED_ASSIGN",75:"READONLY_ASSIGN",76:"REACT_ASSIGN",81:".",82:"?.",83:"INDEX_START",84:"INDEX_END",86:"ES6_OPTIONAL_INDEX",87:"{",89:":",90:"FOR",92:"FOROF",94:"}",95:"WHEN",96:"OWN",101:"[",102:"]",103:"@",104:"...",106:"SUPER",108:"DYNAMIC_IMPORT",116:"..",117:"DEF",118:"CALL_START",120:"CALL_END",122:"PARAM_START",123:"PARAM_END",125:"->",126:"=>",130:"ES6_OPTIONAL_CALL",133:"THIS",134:"NEW_TARGET",135:"IMPORT_META",136:"(",137:")",138:"RETURN",139:"THROW",140:"YIELD",141:"FROM",143:"IF",144:"ELSE",146:"UNLESS",147:"POST_IF",148:"POST_UNLESS",149:"TRY",151:"FINALLY",152:"CATCH",153:"SWITCH",156:"LEADING_WHEN",158:"WHILE",159:"UNTIL",161:"LOOP",162:"FORIN",163:"BY",164:"FORAS",165:"AWAIT",166:"FORASAWAIT",168:"CLASS",169:"EXTENDS",170:"COMPONENT",173:"RENDER",174:"IMPORT",179:"AS",180:"DEFAULT",181:"IMPORT_ALL",182:"EXPORT",184:"EXPORT_ALL",186:"UNARY",187:"DO",188:"DO_IIFE",189:"UNARY_MATH",190:"-",191:"+",192:"?",193:"--",194:"++",195:"MATH",196:"**",197:"SHIFT",198:"COMPARE",199:"&",200:"^",201:"|",202:"||",203:"??",204:"&&",205:"!?",206:"RELATION",207:"SPACE?",208:"COMPOUND_ASSIGN"},parseTable:(()=>{let F=[105,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-1,1,2,3,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,1,1,0,2,1,5,-2,105,5,1,5,58,2,71,-3,-3,-3,-3,-3,30,1,5,58,1,1,5,19,12,18,17,10,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,124,-6,-6,-6,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,9,1,5,58,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,58,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,125,126,127,94,95,52,1,5,47,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,129,103,104,-13,-13,-13,-13,132,133,134,-13,135,-13,-13,-13,-13,-13,-13,-13,130,-13,136,-13,-13,131,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,128,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,44,1,5,58,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,137,138,139,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,9,1,5,58,1,1,5,31,18,17,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,58,1,1,5,31,18,17,-33,-33,-33,-33,-33,-33,-33,-33,-33,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,140,141,142,143,144,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,18,6,48,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-172,149,102,-172,-172,-172,151,152,150,97,154,153,148,145,-172,-172,146,147,104,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,156,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,157,100,101,52,51,70,71,91,97,58,81,85,82,83,65,155,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,101,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,158,159,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,101,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,161,162,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,163,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,169,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,170,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,171,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,172,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,45,14,1,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,52,174,175,176,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,173,70,71,91,97,81,85,82,83,164,165,88,89,84,86,87,80,168,45,14,1,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,52,174,175,176,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,177,70,71,91,97,81,85,82,83,164,165,88,89,84,86,87,80,168,58,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,178,179,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,180,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,182,181,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,183,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,184,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,2,65,56,157,185,2,65,56,157,186,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,14,38,16,1,23,1,1,7,4,5,5,2,25,37,2,190,149,102,151,152,150,97,187,188,81,153,192,189,191,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,193,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,194,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,88,1,5,8,1,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,10,1,10,1,3,1,1,2,3,19,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,174,175,176,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-301,157,-301,100,101,-301,197,70,71,91,-301,97,-301,-301,-301,-301,-301,81,-301,85,-301,82,83,-301,-301,195,164,-301,165,88,89,84,86,87,80,-301,-301,-301,-301,-301,-301,-301,-301,-301,196,168,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,1,65,198,2,65,56,157,199,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,200,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,201,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,135,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,202,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-223,203,-223,100,101,-223,52,51,70,71,91,-223,97,-223,-223,-223,-223,-223,81,-223,85,-223,82,83,-223,65,-223,164,-223,165,88,89,84,86,87,80,-223,67,63,64,204,53,92,54,93,-223,-223,55,59,56,-223,-223,57,96,-223,-223,-223,48,-223,60,61,62,68,69,166,167,168,45,46,47,49,50,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,2,54,1,205,102,6,15,18,89,2,1,1,207,206,41,42,88,89,134,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,208,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-220,209,-220,100,101,-220,52,51,70,71,91,-220,97,-220,-220,-220,-220,-220,81,-220,85,-220,82,83,-220,65,-220,164,-220,165,88,89,84,86,87,80,-220,67,63,64,53,92,54,93,-220,-220,55,59,56,-220,-220,57,96,-220,-220,-220,48,-220,60,61,62,68,69,166,167,168,45,46,47,49,50,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,9,53,1,1,3,1,28,88,1,5,210,214,102,103,104,213,211,212,215,11,27,1,4,22,1,32,30,51,2,10,4,217,218,219,220,102,216,65,60,61,221,222,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,104,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,223,3,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,224,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,225,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,231,100,101,232,52,51,70,71,91,97,58,81,226,85,236,82,83,227,228,230,233,229,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,4,81,2,24,11,238,239,237,136,2,107,11,240,136,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,52,1,5,50,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,241,242,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,1,81,243,1,81,244,53,11,34,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,53,11,34,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,245,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,246,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,247,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,248,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,250,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,157,100,101,52,51,70,71,91,97,58,81,85,82,83,65,249,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,23,6,38,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-108,256,98,99,258,102,259,242,103,104,-108,-108,-108,260,251,-108,252,257,261,253,254,255,262,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,45,14,1,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,52,174,175,176,33,34,35,263,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,264,70,71,91,97,81,85,82,83,164,165,88,89,84,86,87,80,168,61,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,6,1,10,1,3,1,1,2,3,10,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,53,1,5,52,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,6,53,5,1,1,2,1,268,103,104,265,266,267,107,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-5,269,-5,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-5,-5,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,-5,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,270,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,271,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,272,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,273,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,274,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,275,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,276,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,277,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,278,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,281,160,279,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,280,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,284,160,282,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,283,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,287,160,285,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,286,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,288,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,289,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,290,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,291,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,292,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,14,38,16,1,23,1,1,7,4,5,5,2,25,37,2,296,149,102,151,152,150,97,293,294,81,153,192,295,191,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,297,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,298,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,2,107,11,299,136,2,56,1,300,242,2,56,1,301,242,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,302,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,307,75,76,77,78,79,98,99,90,102,103,104,303,100,101,305,52,51,70,71,91,304,97,58,81,85,309,82,83,306,308,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,83,310,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,314,100,101,52,51,70,71,91,97,58,81,85,236,82,83,313,65,311,41,42,88,89,235,312,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,2,56,1,316,242,2,56,1,317,242,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,318,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,319,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,321,320,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,322,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,324,323,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,325,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,327,326,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,328,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,330,329,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,331,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,333,332,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,334,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,9,6,59,1,5,22,1,8,18,3,-216,-216,-216,336,337,-216,-216,-216,335,6,6,59,1,5,49,3,-173,-173,-173,-173,-173,-173,7,6,59,1,5,1,48,3,-177,-177,-177,-177,338,-177,-177,15,6,48,1,10,1,5,7,1,1,7,14,2,17,3,5,-180,149,102,-180,-180,-180,151,152,150,97,154,153,-180,-180,339,11,6,59,1,5,1,20,28,3,39,2,2,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,11,6,59,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,59,1,5,1,20,28,3,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,59,1,5,1,20,28,3,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,2,56,1,241,242,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,231,100,101,232,52,51,70,71,91,97,58,81,226,85,236,82,83,227,228,230,233,229,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,58,1,1,5,31,18,17,-169,-169,-169,-169,-169,-169,-169,-169,-169,104,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,341,3,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,340,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,122,123,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,116,-361,118,-361,-361,9,1,5,58,1,1,5,31,18,17,-358,-358,-358,-358,-358,-358,-358,-358,-358,5,147,1,9,1,1,125,126,127,94,95,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,122,123,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,116,-362,118,-362,-362,9,1,5,58,1,1,5,31,18,17,-359,-359,-359,-359,-359,-359,-359,-359,-359,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,122,123,-363,-363,-363,-363,-363,-363,-363,-363,-363,109,-363,-363,-363,-363,-363,-363,116,-363,118,-363,-363,18,6,48,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-172,149,102,-172,-172,-172,151,152,150,97,154,153,148,342,-172,-172,146,147,2,65,56,157,155,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,158,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,161,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,5,15,107,2,1,1,207,164,165,88,89,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,122,123,-364,-364,-364,-364,-364,-364,-364,-364,-364,109,-364,-364,-364,-364,-364,-364,116,-364,118,-364,-364,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,122,123,-365,-365,-365,-365,-365,-365,-365,-365,-365,109,-365,-365,-365,-365,-365,-365,116,-365,118,-365,-365,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,122,123,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,116,-367,118,-367,-367,2,79,8,343,97,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-85,-85,-369,-369,-369,-369,-85,-85,-85,-85,-85,-85,-85,-85,-369,-85,-369,-369,-369,-369,-369,-369,-369,-369,-85,-369,-369,-85,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-85,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,10,53,5,1,22,1,1,3,21,11,12,129,103,104,132,133,134,135,130,136,131,3,81,1,1,137,138,139,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-85,-85,-370,-370,-370,-370,-85,-85,-85,-85,-85,-85,-85,-85,-370,-85,-370,-370,-370,-370,-370,-370,-370,-370,-85,-370,-370,-85,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-85,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,346,344,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,345,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,124,-82,-82,-82,-82,-82,-82,-82,-82,-82,121,122,123,94,95,-82,-82,-82,-82,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,347,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,348,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,65,56,22,157,349,350,44,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,2,1,1,6,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,351,352,353,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,4,92,70,2,2,355,354,356,357,11,54,1,23,1,1,7,4,10,2,25,39,149,102,151,152,150,97,358,154,153,192,191,11,54,1,23,1,1,7,4,10,2,25,39,149,102,151,152,150,97,359,154,153,192,191,3,65,56,42,157,360,361,5,71,21,70,2,2,362,-299,-299,-299,-299,6,71,1,20,70,2,2,-297,363,-297,-297,-297,-297,22,65,25,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,364,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,3,154,1,1,365,366,367,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,368,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,57,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,10,1,10,1,3,1,1,2,3,21,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-85,-85,-305,157,-305,-305,-85,-85,-85,-85,-85,-85,-85,-85,-305,-85,-305,-305,-305,-305,-305,-305,-305,-305,-85,-305,369,-305,-85,-305,-305,-305,-305,-305,-305,-305,-305,-305,370,-305,-305,-85,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,8,4,1,1,1,1,1,2,1,373,374,375,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,371,372,62,68,69,43,44,66,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,122,123,-221,-221,-221,-221,-221,-221,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,79,8,376,97,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,122,123,-224,-224,-224,-224,-224,-224,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,79,8,377,97,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,378,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,65,53,3,157,379,380,9,1,5,58,1,1,5,31,18,17,-360,-360,-360,-360,-360,-360,-360,-360,-360,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,122,123,-218,-218,-218,-218,-218,-218,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,79,8,381,97,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,2,71,70,383,382,1,141,384,7,54,1,10,29,83,1,2,389,102,388,385,386,387,390,2,71,70,-333,-333,1,179,391,7,54,1,10,29,86,3,2,396,102,395,392,397,393,394,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,1,72,398,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,399,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,400,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,141,401,2,6,131,105,402,103,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,403,3,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,30,6,59,1,5,19,12,2,11,1,4,27,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,124,-198,309,404,308,-198,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,232,52,51,70,71,91,97,58,81,405,85,236,82,83,407,406,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,9,6,59,1,5,22,1,8,9,9,-216,-216,-216,409,410,-216,-216,408,-216,58,6,5,34,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,411,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,5,6,59,1,5,31,-144,-144,-144,-144,-144,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,231,100,101,232,52,51,70,71,91,97,58,81,85,236,82,83,413,412,230,233,229,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,58,6,5,34,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,59,1,5,31,-149,-149,-149,-149,-149,6,6,59,1,5,31,18,-199,-199,-199,-199,-199,-199,6,6,59,1,5,31,18,-200,-200,-200,-200,-200,-200,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-201,414,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-201,-201,100,101,-201,52,51,70,71,91,97,58,81,-201,85,82,83,65,-201,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,2,56,1,415,242,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,416,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,417,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,2,56,1,418,242,2,56,1,419,242,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,420,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,421,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,124,-253,-253,422,-253,-253,-253,-253,-253,-253,-253,122,123,94,95,-253,-253,-253,-253,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,124,-255,-255,423,-255,-255,-255,-255,-255,-255,-255,122,123,94,95,-255,-255,-255,-255,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,124,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,122,123,94,95,-262,-262,-262,-262,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,6,6,59,1,5,18,5,-113,-113,-113,-113,424,-113,8,6,59,1,5,22,1,8,18,-216,-216,-216,426,425,-216,-216,-216,7,6,59,1,5,1,17,5,-122,-122,-122,-122,427,-122,-122,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,428,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,56,1,44,241,242,429,6,6,59,1,5,18,5,-125,-125,-125,-125,-125,-125,5,6,59,1,5,23,-109,-109,-109,-109,-109,11,6,59,1,5,1,9,1,1,6,5,24,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,11,6,59,1,5,1,9,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,59,1,5,1,9,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,5,6,59,1,5,23,-114,-114,-114,-114,-114,17,37,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,433,435,434,258,102,259,242,432,260,97,430,85,431,436,437,84,80,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,438,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,6,53,5,1,2,1,1,268,103,104,439,440,267,4,58,1,2,2,-57,-57,-57,-57,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,441,3,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,443,442,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,4,58,1,2,2,-62,-62,-62,-62,5,1,5,58,2,71,-4,-4,-4,-4,-4,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,122,123,-373,-373,-373,-373,-373,-373,-373,-373,108,109,-373,-373,-373,-373,-373,-373,116,-373,118,-373,-373,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,122,123,-374,-374,-374,-374,-374,-374,-374,-374,108,109,-374,-374,-374,-374,-374,-374,116,-374,118,-374,-374,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,122,123,-375,-375,-375,-375,-375,-375,-375,-375,-375,109,-375,-375,-375,-375,-375,-375,116,-375,118,-375,-375,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,122,123,-376,-376,-376,-376,-376,-376,-376,-376,-376,109,-376,-376,-376,-376,-376,-376,116,-376,118,-376,-376,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,122,123,-377,-377,-377,-377,-377,-377,107,106,108,109,-377,-377,-377,-377,-377,-377,116,-377,118,-377,-377,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,122,123,-378,-378,-378,-378,-378,-378,107,106,108,109,110,-378,-378,-378,-378,-378,116,-378,118,119,-378,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,122,123,-379,-379,-379,-379,-379,-379,107,106,108,109,110,111,-379,-379,-379,-379,116,-379,118,119,-379,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,122,123,-380,-380,-380,-380,-380,-380,107,106,108,109,110,111,112,-380,-380,-380,116,-380,118,119,-380,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,122,123,-381,-381,-381,-381,-381,-381,107,106,108,109,110,111,112,113,-381,-381,116,-381,118,119,-381,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,122,123,-389,-389,-389,-389,-389,-389,107,106,108,109,110,111,112,113,114,-389,116,117,118,119,-389,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,124,-390,-390,-390,-390,-390,-390,-390,-390,-390,121,122,123,94,95,-390,-390,-390,-390,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,122,123,-388,-388,-388,-388,-388,-388,107,106,108,109,110,111,112,113,114,-388,116,-388,118,119,-388,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,124,-391,-391,-391,-391,-391,-391,-391,-391,-391,121,122,123,94,95,-391,-391,-391,-391,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,122,123,-392,-392,-392,-392,-392,-392,107,106,108,109,110,-392,-392,-392,-392,-392,116,-392,118,-392,-392,22,89,1,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,444,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,124,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,122,123,94,95,-235,-235,-235,-235,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,124,-237,-237,-237,-237,-237,-237,-237,-237,-237,121,122,123,94,95,-237,-237,-237,-237,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,4,92,70,2,2,446,445,447,448,11,54,1,23,1,1,7,4,10,2,25,39,149,102,151,152,150,97,449,154,153,192,191,11,54,1,23,1,1,7,4,10,2,25,39,149,102,151,152,150,97,450,154,153,192,191,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,451,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,124,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,122,123,94,95,-234,-234,-234,-234,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,124,-236,-236,-236,-236,-236,-236,-236,-236,-236,121,122,123,94,95,-236,-236,-236,-236,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,25,84,6,14,11,1,31,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,452,124,309,453,308,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,454,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,455,97,58,81,85,309,82,83,306,308,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,84,456,1,84,457,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,458,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-163,100,101,52,51,70,71,91,-163,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,459,-45,-45,-45,-66,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,54,11,34,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,54,11,34,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,460,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,461,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,8,6,59,1,5,22,1,8,18,-216,-216,-216,463,462,-216,-216,-216,5,6,59,1,5,49,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,314,100,101,52,51,70,71,91,97,58,81,85,236,82,83,313,65,41,42,88,89,235,464,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,27,6,59,1,5,19,12,18,27,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,124,-198,-198,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,22,84,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,465,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,466,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,122,123,-67,-67,-67,-67,-67,-67,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,467,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,468,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,124,-70,-70,-70,-70,-70,-70,-70,-70,-70,121,122,123,94,95,-70,-70,-70,-70,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,469,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,470,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,124,-73,-73,-73,-73,-73,-73,-73,-73,-73,121,122,123,94,95,-73,-73,-73,-73,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,471,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,472,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,124,-76,-76,-76,-76,-76,-76,-76,-76,-76,121,122,123,94,95,-76,-76,-76,-76,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,473,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,474,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,124,-79,-79,-79,-79,-79,-79,-79,-79,-79,121,122,123,94,95,-79,-79,-79,-79,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,475,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,476,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,124,1,1,477,88,89,17,6,48,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-217,149,102,-217,-217,151,152,150,97,-217,154,-217,153,148,-217,478,147,2,6,59,479,480,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,481,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,6,6,59,1,5,49,3,-179,-179,-179,-179,-179,-179,54,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,2,6,60,105,482,9,6,59,1,5,22,1,8,18,3,-216,-216,-216,336,337,-216,-216,-216,483,1,66,484,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,122,123,-394,-394,-394,-394,-394,-394,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,485,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,486,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,124,-83,-83,-83,-83,-83,-83,-83,-83,-83,121,122,123,94,95,-83,-83,-83,-83,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,487,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,488,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,489,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,2,65,56,157,490,6,54,1,10,14,8,34,491,102,157,492,97,493,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,494,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,495,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,496,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,497,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,92,498,1,164,499,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,500,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,10,54,1,23,1,1,7,14,2,25,39,149,102,151,152,150,97,154,153,192,501,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,502,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,154,1,1,503,366,367,4,66,78,11,1,504,505,506,367,3,66,78,12,-249,-249,-249,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,508,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,507,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,43,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,157,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,509,-303,-303,-303,122,123,-303,-303,-303,-303,-303,-303,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,510,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,2,6,60,512,511,2,6,60,-310,-310,23,6,60,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,6,60,-314,-314,7,6,60,81,1,9,1,1,-315,-315,125,126,127,94,95,1,66,513,1,66,514,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,122,123,-226,-226,-226,-226,-226,-226,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,18,6,48,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-172,149,102,-172,-172,-172,151,152,150,97,154,153,148,515,-172,-172,146,147,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,1,66,516,3,53,5,1,517,103,104,3,87,89,5,519,518,215,3,53,5,1,520,103,104,1,141,521,8,6,59,1,5,22,1,8,18,-216,-216,-216,523,522,-216,-216,-216,5,6,59,1,5,23,-324,-324,-324,-324,-324,6,54,1,10,112,1,2,389,102,388,524,387,390,6,6,59,1,5,23,85,-329,-329,-329,-329,-329,525,6,6,59,1,5,23,85,-331,-331,-331,-331,-331,526,2,54,1,527,102,14,1,5,58,1,1,5,31,18,17,4,6,1,10,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,528,-335,-335,-335,-335,8,6,59,1,5,22,1,8,18,-216,-216,-216,530,529,-216,-216,-216,5,6,59,1,5,23,-348,-348,-348,-348,-348,6,54,1,10,115,3,2,396,102,395,397,531,394,6,6,59,1,5,23,85,-353,-353,-353,-353,-353,532,6,6,59,1,5,23,85,-356,-356,-356,-356,-356,533,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,535,534,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,536,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,30,1,5,58,1,1,5,19,12,18,17,10,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,-343,124,-343,-343,-343,-343,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,79,8,537,97,3,53,5,1,538,103,104,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,2,6,60,105,539,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,540,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,58,6,5,34,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,411,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,59,1,5,31,-150,-150,-150,-150,-150,2,65,37,542,541,114,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-217,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-217,-217,100,101,232,52,51,70,71,91,97,58,-217,81,-217,85,236,82,83,544,543,233,229,65,-217,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,4,6,59,1,36,545,-151,-151,-151,58,6,5,34,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,9,6,59,1,5,22,1,8,9,9,-216,-216,-216,409,410,-216,-216,546,-216,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,232,52,51,70,71,91,97,58,81,85,236,82,83,407,406,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,27,6,59,1,5,19,12,18,27,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,124,-185,-185,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,22,84,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,547,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,548,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,549,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,550,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,551,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,552,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,553,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,6,59,29,555,556,554,23,6,38,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-217,256,98,99,258,102,259,242,103,104,-217,-217,260,558,-217,557,261,253,254,-217,255,262,-217,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,559,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,560,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,22,90,12,45,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,124,561,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,562,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,10,6,59,1,5,10,1,1,11,13,11,-126,-126,-126,-126,-128,-128,-128,-126,563,136,10,6,59,1,5,10,1,1,11,13,11,-127,-127,-127,-127,565,566,567,-127,564,136,9,6,59,1,5,10,1,1,11,24,-129,-129,-129,-129,-129,-129,-129,-129,-129,9,6,59,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,59,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,59,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,4,81,2,24,11,238,239,568,136,2,107,11,569,136,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,53,1,5,52,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,4,58,1,2,2,-58,-58,-58,-58,2,6,58,105,570,103,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,571,3,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,4,58,1,2,2,-61,-61,-61,-61,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,572,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,573,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,574,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,575,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,576,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,92,577,1,164,578,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,579,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,580,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-161,100,101,52,51,70,71,91,-161,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,25,66,24,14,11,1,31,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,581,124,309,453,308,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,1,66,582,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,23,66,18,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,583,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,22,84,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,584,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,585,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,3,6,59,55,587,588,586,110,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,-217,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-217,-217,100,101,52,51,70,71,91,97,58,-217,81,-217,85,236,82,83,589,65,-217,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,8,6,59,1,5,22,1,8,18,-216,-216,-216,463,590,-216,-216,-216,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,591,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,122,123,-68,-68,-68,-68,-68,-68,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,592,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,124,-71,-71,-71,-71,-71,-71,-71,-71,-71,121,122,123,94,95,-71,-71,-71,-71,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,593,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,124,-74,-74,-74,-74,-74,-74,-74,-74,-74,121,122,123,94,95,-74,-74,-74,-74,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,594,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,124,-77,-77,-77,-77,-77,-77,-77,-77,-77,121,122,123,94,95,-77,-77,-77,-77,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,595,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,124,-80,-80,-80,-80,-80,-80,-80,-80,-80,121,122,123,94,95,-80,-80,-80,-80,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,596,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,104,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,598,4,5,6,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,157,100,101,52,51,70,71,91,97,58,81,85,82,83,65,597,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,6,6,59,1,5,49,3,-174,-174,-174,-174,-174,-174,11,54,1,23,1,1,7,14,2,1,23,1,149,102,151,152,150,97,154,153,148,599,147,18,6,48,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-172,149,102,-172,-172,-172,151,152,150,97,154,153,148,600,-172,-172,146,147,27,6,59,1,5,19,30,3,24,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,124,-178,-178,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,54,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,3,124,1,1,601,88,89,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,602,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,122,123,-396,-396,-396,-396,-396,-396,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,603,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,65,56,157,604,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,2,65,56,157,605,2,65,56,157,606,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,25,65,25,5,26,26,1,9,1,1,4,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,608,607,121,122,123,94,95,609,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,24,65,25,5,26,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,611,610,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,24,65,25,5,26,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,613,612,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,24,65,25,5,26,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,615,614,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,616,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,617,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,618,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,4,92,70,2,2,-300,-300,-300,-300,26,71,19,2,55,1,9,1,1,3,2,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-298,124,-298,121,122,123,94,95,-298,-298,-298,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,4,66,78,11,1,619,620,506,367,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,65,56,157,621,3,66,78,12,-250,-250,-250,3,65,6,50,157,623,622,23,65,6,19,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,43,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,157,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,624,-307,-307,-307,122,123,-307,-307,-307,-307,-307,-307,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,104,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,2,1,1,8,4,1,1,1,1,1,2,1,-312,373,374,375,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-312,100,101,52,51,70,71,91,97,58,81,85,82,83,65,41,42,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,625,62,68,69,43,44,66,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,8,6,59,1,5,22,1,8,18,-216,-216,-216,336,337,-216,-216,626,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,1,141,627,6,54,1,10,112,1,2,389,102,388,628,387,390,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,3,53,5,1,629,103,104,3,6,59,29,631,632,630,10,6,48,1,10,1,28,8,18,58,2,-217,389,102,-217,-217,-217,-217,-217,633,390,8,6,59,1,5,22,1,8,18,-216,-216,-216,523,634,-216,-216,-216,2,54,1,635,102,2,54,1,636,102,1,141,-334,3,53,5,1,637,103,104,3,6,59,29,639,640,638,10,6,48,1,10,1,28,8,18,60,5,-217,396,102,-217,-217,-217,-217,-217,397,641,8,6,59,1,5,22,1,8,18,-216,-216,-216,530,642,-216,-216,-216,3,54,1,125,643,102,644,2,54,1,645,102,30,1,5,58,1,1,5,19,12,18,17,10,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,124,-340,-340,-340,-340,122,123,-340,-340,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,646,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,647,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,66,648,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,1,137,649,22,90,12,45,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,124,650,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,231,100,101,232,52,51,70,71,91,97,58,81,85,236,82,83,413,651,230,233,229,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,5,6,59,1,5,31,-145,-145,-145,-145,-145,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,-152,-152,100,101,232,52,51,70,71,91,97,58,81,-152,85,236,82,83,407,406,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,232,52,51,70,71,91,97,58,81,85,236,82,83,413,652,233,229,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,2,65,1,542,653,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,654,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,2,65,56,157,655,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,122,123,-254,-254,-254,-254,-254,-254,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,122,123,-256,-256,-256,-256,-256,-256,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,26,6,59,1,5,19,4,53,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,656,-115,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,657,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,17,44,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,256,98,99,258,102,259,242,103,104,260,558,658,261,253,254,255,262,23,6,38,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-108,256,98,99,258,102,259,242,103,104,-108,-108,-108,260,558,-108,659,257,261,253,254,255,262,5,6,59,1,5,23,-110,-110,-110,-110,-110,6,6,59,1,5,18,5,-113,-113,-113,-113,660,-113,26,6,59,1,5,19,4,53,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,124,-117,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,661,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,6,6,59,1,5,18,5,-123,-123,-123,-123,-123,-123,22,90,12,45,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,124,662,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,9,6,59,1,5,10,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,9,6,59,1,5,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,2,56,1,663,242,2,56,1,664,242,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,665,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,666,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,9,6,59,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,59,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,4,58,1,2,2,-59,-59,-59,-59,2,6,60,105,667,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,122,123,-393,-393,-393,-393,-393,-393,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,668,-280,-280,-280,-280,-280,-280,-280,122,123,-280,-280,-280,669,-280,-280,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,670,-285,-285,-285,-285,-285,-285,-285,122,123,-285,-285,-285,-285,-285,-285,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,671,-289,-289,-289,-289,-289,-289,-289,122,123,-289,-289,-289,-289,-289,-289,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,672,-293,-293,-293,-293,-293,-293,-293,122,123,-293,-293,-293,-293,-293,-293,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,673,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,674,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,122,123,-296,-296,-296,-296,-296,-296,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,66,18,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,1,84,675,1,84,676,22,84,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-65,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,677,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,51,1,5,52,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,236,82,83,678,65,41,42,88,89,235,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,315,234,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,314,100,101,52,51,70,71,91,97,58,81,85,236,82,83,313,65,41,42,88,89,235,679,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,43,44,66,45,46,47,49,50,5,6,59,1,5,49,-194,-194,-194,-194,-194,3,6,59,1,587,588,680,1,84,681,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,9,1,5,58,1,1,5,31,18,17,-168,-168,-168,-168,-168,-168,-168,-168,-168,6,6,59,1,5,49,3,-175,-175,-175,-175,-175,-175,8,6,59,1,5,22,1,8,18,-216,-216,-216,336,682,-216,-216,-216,2,65,56,157,597,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,683,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,684,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,685,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,686,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,687,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,24,65,25,5,26,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,689,688,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,24,65,25,5,26,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,691,690,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,2,65,56,157,692,1,66,693,4,6,60,78,12,694,-251,-251,-251,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,695,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,2,6,60,-311,-311,2,65,56,157,696,3,53,5,1,697,103,104,8,6,59,1,5,22,1,8,18,-216,-216,-216,523,698,-216,-216,-216,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,1,141,699,4,54,1,123,2,389,102,700,390,6,54,1,10,112,1,2,389,102,388,701,387,390,5,6,59,1,5,23,-325,-325,-325,-325,-325,3,6,59,1,631,632,702,5,6,59,1,5,23,-330,-330,-330,-330,-330,5,6,59,1,5,23,-332,-332,-332,-332,-332,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,14,1,5,58,1,1,5,31,18,17,4,6,1,10,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,703,-336,-336,-336,-336,4,54,1,125,5,396,102,397,704,6,54,1,10,115,3,2,396,102,395,397,705,394,5,6,59,1,5,23,-349,-349,-349,-349,-349,3,6,59,1,639,640,706,5,6,59,1,5,23,-354,-354,-354,-354,-354,5,6,59,1,5,23,-355,-355,-355,-355,-355,5,6,59,1,5,23,-357,-357,-357,-357,-357,30,1,5,58,1,1,5,19,12,18,17,10,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,124,-341,-341,-341,-341,122,123,-341,-341,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,707,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,9,6,59,1,5,22,1,8,9,9,-216,-216,-216,409,410,-216,-216,708,-216,5,6,59,1,5,31,-146,-146,-146,-146,-146,5,6,59,1,5,31,-147,-147,-147,-147,-147,1,84,709,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,14,38,16,1,23,1,1,7,4,5,5,2,25,37,2,296,149,102,151,152,150,97,710,711,81,153,192,295,191,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,712,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,5,6,59,1,5,23,-111,-111,-111,-111,-111,8,6,59,1,5,22,1,8,18,-216,-216,-216,426,713,-216,-216,-216,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,714,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,553,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,715,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,6,6,59,1,5,18,5,-124,-124,-124,-124,-124,-124,9,6,59,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,9,6,59,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,22,84,6,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,716,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,717,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,64,718,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,719,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,720,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,721,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,722,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,723,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,724,-287,-287,-287,-287,-287,-287,-287,122,123,-287,-287,-287,-287,-287,-287,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,725,-291,-291,-291,-291,-291,-291,-291,122,123,-291,-291,-291,-291,-291,-291,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,1,84,726,5,6,59,1,5,49,-195,-195,-195,-195,-195,8,6,59,1,5,22,1,8,18,-216,-216,-216,463,727,-216,-216,-216,5,6,59,1,5,49,-196,-196,-196,-196,-196,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,3,6,59,1,479,480,728,24,65,25,31,26,1,9,1,1,4,27,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,729,121,122,123,94,95,730,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,24,65,25,5,26,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,732,731,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,733,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,734,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,735,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,736,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,737,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,66,738,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,3,66,78,12,-252,-252,-252,23,65,6,19,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,3,6,59,29,631,632,739,3,53,5,1,740,103,104,5,6,59,1,5,23,-326,-326,-326,-326,-326,8,6,59,1,5,22,1,8,18,-216,-216,-216,523,741,-216,-216,-216,5,6,59,1,5,23,-327,-327,-327,-327,-327,3,53,5,1,742,103,104,5,6,59,1,5,23,-350,-350,-350,-350,-350,8,6,59,1,5,22,1,8,18,-216,-216,-216,530,743,-216,-216,-216,5,6,59,1,5,23,-351,-351,-351,-351,-351,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,2,65,1,542,744,50,1,5,52,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,4,92,70,2,2,745,445,447,448,11,54,1,23,1,1,7,4,10,2,25,39,149,102,151,152,150,97,746,154,153,192,191,5,6,59,1,5,23,-116,-116,-116,-116,-116,3,6,59,1,555,556,747,26,6,59,1,5,19,4,53,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,124,-115,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,5,6,59,1,5,23,-118,-118,-118,-118,-118,9,6,59,1,5,10,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,22,66,24,57,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,748,124,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,4,58,1,2,2,-60,-60,-60,-60,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,122,123,-281,-281,-281,749,-281,-281,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,750,-282,-282,-282,-282,-282,-282,-282,122,123,-282,-282,-282,-282,-282,-282,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,122,123,-286,-286,-286,-286,-286,-286,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,122,123,-290,-290,-290,-290,-290,-290,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,122,123,-294,-294,-294,-294,-294,-294,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,751,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,752,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,59,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,3,6,59,1,587,588,753,6,6,59,1,5,49,3,-176,-176,-176,-176,-176,-176,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,754,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,755,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,756,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,757,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,1,141,758,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,3,6,59,1,631,632,759,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,3,6,59,1,639,640,760,5,6,59,1,5,31,-148,-148,-148,-148,-148,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,761,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,92,762,5,6,59,1,5,23,-112,-112,-112,-112,-112,1,84,763,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,764,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,765,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,122,123,-288,-288,-288,-288,-288,-288,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,122,123,-292,-292,-292,-292,-292,-292,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,5,6,59,1,5,49,-197,-197,-197,-197,-197,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,766,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,23,65,25,31,26,1,9,1,1,31,1,4,1,1,1,1,1,1,1,1,1,1,1,1,157,124,767,121,122,123,94,95,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,3,53,5,1,768,103,104,5,6,59,1,5,23,-328,-328,-328,-328,-328,5,6,59,1,5,23,-352,-352,-352,-352,-352,43,1,5,58,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,771,-285,-285,-285,-285,769,-285,770,-285,-285,-285,-285,-285,-285,-285,122,123,-285,-285,-285,-285,-285,-285,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,772,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,9,6,59,1,5,10,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,122,123,-283,-283,-283,-283,-283,-283,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,42,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,122,123,-284,-284,-284,-284,-284,-284,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,41,1,5,58,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,13,1,5,58,1,1,5,31,18,17,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,1,94,773,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,774,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,6,6,59,1,28,8,18,-217,-217,-217,-217,-217,-217,43,1,5,58,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,771,-287,-287,-287,-287,775,-287,776,-287,-287,-287,-287,-287,-287,-287,122,123,-287,-287,-287,-287,-287,-287,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,43,1,5,58,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,771,-286,-286,-286,-286,777,-286,-286,-286,-286,-286,-286,-286,-286,-286,122,123,-286,-286,-286,-286,-286,-286,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,1,94,778,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,3,1,8,4,1,1,1,1,1,2,1,779,160,28,29,30,31,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,72,73,74,75,76,77,78,79,98,99,90,102,103,104,100,101,52,51,70,71,91,97,58,81,85,82,83,65,164,165,88,89,84,86,87,80,67,63,64,53,92,54,93,55,59,56,94,95,57,96,48,60,61,62,68,69,166,167,168,45,46,47,49,50,1,94,780,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,43,1,5,58,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,24,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,771,-288,-288,-288,-288,781,-288,-288,-288,-288,-288,-288,-288,-288,-288,122,123,-288,-288,-288,-288,-288,-288,107,106,108,109,110,111,112,113,114,115,116,117,118,119,120,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,1,94,782,55,1,5,52,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,24,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106],W=[],Y=0,U,$,A,Q;while(Y<F.length){U=F[Y++],$={},A=0,Q=[];while(U--)A+=F[Y++],Q.push(A);for(A of Q)$[A]=F[Y++];W.push($)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,44,1,44,1,54,1,56,1,53,1,53,3,60,1,60,2,62,3,62,5,62,2,62,1,46,1,46,3,70,3,70,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,35,1,35,1,35,1,77,1,77,1,77,3,77,3,77,4,77,6,77,4,77,6,77,4,77,5,77,7,77,3,77,3,77,4,77,6,79,10,79,12,79,11,79,13,79,4,97,0,97,1,97,3,97,4,97,6,98,1,98,1,98,3,98,5,98,3,98,5,100,1,100,1,100,1,88,1,88,3,88,4,88,1,99,2,99,2,105,1,105,1,105,1,105,1,105,1,105,2,105,2,105,2,105,2,105,3,105,3,105,4,105,6,78,2,78,3,78,4,110,1,110,3,110,4,110,4,110,6,112,1,112,2,111,1,111,2,109,1,109,2,114,1,114,2,115,1,115,1,38,5,85,3,85,2,85,2,85,1,32,6,32,3,15,5,15,2,33,5,33,2,124,1,124,1,119,0,119,1,119,3,119,4,119,6,127,1,127,3,127,2,127,1,128,1,128,1,128,1,128,1,129,2,39,2,39,2,39,3,39,2,39,2,107,2,107,4,131,1,131,3,131,4,131,4,131,6,113,1,113,1,113,1,113,1,132,1,132,3,41,1,41,1,80,2,42,3,42,4,42,6,43,3,43,3,121,2,121,3,37,3,37,5,93,0,93,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,142,3,142,5,145,3,145,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,23,2,23,3,23,4,23,5,150,3,150,3,150,2,26,5,26,7,26,4,26,6,154,1,154,2,155,3,155,4,157,2,157,4,157,2,157,4,24,2,24,2,24,2,24,1,160,2,160,2,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,167,1,167,3,91,1,91,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,28,4,171,1,171,3,171,2,172,1,172,1,172,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,177,1,177,3,177,4,177,4,177,6,178,1,178,3,178,1,178,3,175,1,176,3,13,3,13,5,13,2,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,183,1,183,3,183,4,183,4,183,6,185,1,185,3,185,3,185,1,185,3,34,2,34,2,34,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,40,2],ruleActions:(F,W,Y,U)=>{let $=W,A=W.length-1;switch(F){case 1:return["program"];case 2:return["program",...$[A]];case 3:case 57:case 109:case 149:case 153:case 173:case 193:case 202:case 249:case 299:case 310:case 324:case 348:return[$[A]];case 4:case 110:case 174:case 194:case 203:case 311:case 325:case 349:return[...$[A-2],$[A]];case 5:case 59:case 156:case 312:return $[A-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 62:case 63:case 85:case 86:case 87:case 88:case 89:case 114:case 119:case 120:case 121:case 122:case 125:case 128:case 129:case 130:case 131:case 132:case 144:case 170:case 171:case 177:case 181:case 182:case 183:case 184:case 198:case 199:case 200:case 216:case 217:case 231:case 233:case 260:case 297:case 313:case 314:case 315:case 329:case 331:case 333:case 353:case 356:return $[A];case 46:return"undefined";case 47:return"null";case 56:return["str",...$[A-1]];case 58:case 150:case 154:case 250:return[...$[A-1],$[A]];case 60:case 192:case 196:case 327:case 351:return $[A-2];case 61:return"";case 64:return["regex",$[A-1]];case 65:return["regex-index",$[A-2],$[A]];case 66:return["regex-index",$[A],null];case 67:return["=",$[A-2],$[A]];case 68:return["=",$[A-3],$[A]];case 69:return["=",$[A-4],$[A-1]];case 70:return["state",$[A-2],$[A]];case 71:return["state",$[A-3],$[A]];case 72:return["state",$[A-4],$[A-1]];case 73:return["computed",$[A-2],$[A]];case 74:return["computed",$[A-3],$[A]];case 75:return["computed",$[A-4],$[A-1]];case 76:return["readonly",$[A-2],$[A]];case 77:return["readonly",$[A-3],$[A]];case 78:return["readonly",$[A-4],$[A-1]];case 79:return["effect",$[A-2],$[A]];case 80:return["effect",$[A-3],$[A]];case 81:return["effect",$[A-4],$[A-1]];case 82:case 83:return["effect",null,$[A]];case 84:return["effect",null,$[A-1]];case 90:case 99:case 137:return[".",$[A-2],$[A]];case 91:case 100:case 138:return["?.",$[A-2],$[A]];case 92:case 94:case 101:case 139:return["[]",$[A-3],$[A-1]];case 93:case 95:case 102:case 140:return["[]",$[A-5],$[A-2]];case 96:return[$[A-1][0],$[A-3],...$[A-1].slice(1)];case 97:return["optindex",$[A-4],$[A-1]];case 98:return["optindex",$[A-6],$[A-2]];case 103:return["object-comprehension",$[A-8],$[A-6],[["for-of",$[A-4],$[A-2],!1]],[]];case 104:return["object-comprehension",$[A-10],$[A-8],[["for-of",$[A-6],$[A-4],!1]],[$[A-2]]];case 105:return["object-comprehension",$[A-9],$[A-7],[["for-of",$[A-4],$[A-2],!0]],[]];case 106:return["object-comprehension",$[A-11],$[A-9],[["for-of",$[A-6],$[A-4],!0]],[$[A-2]]];case 107:return["object",...$[A-2]];case 108:case 151:case 172:case 191:return[];case 111:case 175:case 195:case 326:case 350:return[...$[A-3],$[A]];case 112:case 176:case 197:case 328:case 352:return[...$[A-5],...$[A-2]];case 113:return[$[A],$[A],null];case 115:return[$[A-2],$[A],":"];case 116:return[$[A-4],$[A-1],":"];case 117:return[$[A-2],$[A],"="];case 118:return[$[A-4],$[A-1],"="];case 123:return["dynamicKey",$[A-1]];case 124:return["[]","this",$[A-1]];case 126:case 127:case 185:return["...",$[A]];case 133:case 189:return["super",...$[A]];case 134:case 135:case 136:case 187:case 190:return[$[A-1],...$[A]];case 141:return["array"];case 142:return["array",...$[A-1]];case 143:return["array",...$[A-2],...$[A-1]];case 145:return[...$[A-2],...$[A]];case 146:return[...$[A-3],...$[A]];case 147:return[...$[A-2],...$[A-1]];case 148:return[...$[A-5],...$[A-4],...$[A-2],...$[A-1]];case 152:return[...$[A]];case 155:return null;case 157:return"..";case 158:case 201:return"...";case 159:return[$[A-2],$[A-3],$[A-1]];case 160:case 375:case 377:case 378:case 392:case 394:return[$[A-1],$[A-2],$[A]];case 161:return[$[A],$[A-1],null];case 162:return[$[A-1],null,$[A]];case 163:return[$[A],null,null];case 164:return["def",$[A-4],$[A-2],$[A]];case 165:return["def",$[A-1],[],$[A]];case 166:case 168:return[$[A-1],$[A-3],$[A]];case 167:case 169:return[$[A-1],[],$[A]];case 178:case 298:return["default",$[A-2],$[A]];case 179:return["rest",$[A]];case 180:return["expansion"];case 186:return["tagged-template",$[A-1],$[A]];case 188:return["optcall",$[A-2],...$[A]];case 204:case 205:return"this";case 206:return[".","this",$[A]];case 207:return[".","super",$[A]];case 208:return["[]","super",$[A-1]];case 209:return["[]","super",$[A-2]];case 210:return[".","new",$[A]];case 211:return[".","import",$[A]];case 212:return["block"];case 213:return["block",...$[A-1]];case 214:return $[A-1].length===1?$[A-1][0]:["block",...$[A-1]];case 215:return $[A-2].length===1?$[A-2][0]:["block",...$[A-2]];case 218:return["return",$[A]];case 219:return["return",$[A-1]];case 220:return["return"];case 221:return["throw",$[A]];case 222:return["throw",$[A-1]];case 223:return["yield"];case 224:return["yield",$[A]];case 225:return["yield",$[A-1]];case 226:return["yield-from",$[A]];case 227:return["if",$[A-1],$[A]];case 228:return $[A-4].length===3?["if",$[A-4][1],$[A-4][2],["if",$[A-1],$[A]]]:[...$[A-4],["if",$[A-1],$[A]]];case 229:return["unless",$[A-1],$[A]];case 230:return["if",["!",$[A-3]],$[A-2],$[A]];case 232:return $[A-2].length===3?["if",$[A-2][1],$[A-2][2],$[A]]:[...$[A-2],$[A]];case 234:case 235:return["if",$[A],[$[A-2]]];case 236:case 237:return["unless",$[A],[$[A-2]]];case 238:return["try",$[A]];case 239:return["try",$[A-1],$[A]];case 240:return["try",$[A-2],$[A]];case 241:return["try",$[A-3],$[A-2],$[A]];case 242:case 243:case 358:case 361:case 363:return[$[A-1],$[A]];case 244:return[null,$[A]];case 245:return["switch",$[A-3],$[A-1],null];case 246:return["switch",$[A-5],$[A-3],$[A-1]];case 247:return["switch",null,$[A-1],null];case 248:return["switch",null,$[A-3],$[A-1]];case 251:return["when",$[A-1],$[A]];case 252:return["when",$[A-2],$[A-1]];case 253:return["while",$[A]];case 254:return["while",$[A-2],$[A]];case 255:return["until",$[A]];case 256:return["until",$[A-2],$[A]];case 257:return $[A-1].length===2?[$[A-1][0],$[A-1][1],$[A]]:[$[A-1][0],$[A-1][1],$[A-1][2],$[A]];case 258:case 259:return $[A].length===2?[$[A][0],$[A][1],[$[A-1]]]:[$[A][0],$[A][1],$[A][2],[$[A-1]]];case 261:return["loop",$[A]];case 262:return["loop",[$[A]]];case 263:return["for-in",$[A-3],$[A-1],null,null,$[A]];case 264:return["for-in",$[A-5],$[A-3],null,$[A-1],$[A]];case 265:return["for-in",$[A-5],$[A-3],$[A-1],null,$[A]];case 266:return["for-in",$[A-7],$[A-5],$[A-1],$[A-3],$[A]];case 267:return["for-in",$[A-7],$[A-5],$[A-3],$[A-1],$[A]];case 268:return["for-of",$[A-3],$[A-1],!1,null,$[A]];case 269:return["for-of",$[A-5],$[A-3],!1,$[A-1],$[A]];case 270:return["for-of",$[A-3],$[A-1],!0,null,$[A]];case 271:return["for-of",$[A-5],$[A-3],!0,$[A-1],$[A]];case 272:return["for-as",$[A-3],$[A-1],!1,null,$[A]];case 273:return["for-as",$[A-5],$[A-3],!1,$[A-1],$[A]];case 274:case 276:return["for-as",$[A-3],$[A-1],!0,null,$[A]];case 275:case 277:return["for-as",$[A-5],$[A-3],!0,$[A-1],$[A]];case 278:return["for-in",[],$[A-1],null,null,$[A]];case 279:return["for-in",[],$[A-3],$[A-1],null,$[A]];case 280:return["comprehension",$[A-4],[["for-in",$[A-2],$[A],null]],[]];case 281:return["comprehension",$[A-6],[["for-in",$[A-4],$[A-2],null]],[$[A]]];case 282:return["comprehension",$[A-6],[["for-in",$[A-4],$[A-2],$[A]]],[]];case 283:return["comprehension",$[A-8],[["for-in",$[A-6],$[A-4],$[A]]],[$[A-2]]];case 284:return["comprehension",$[A-8],[["for-in",$[A-6],$[A-4],$[A-2]]],[$[A]]];case 285:return["comprehension",$[A-4],[["for-of",$[A-2],$[A],!1]],[]];case 286:return["comprehension",$[A-6],[["for-of",$[A-4],$[A-2],!1]],[$[A]]];case 287:return["comprehension",$[A-5],[["for-of",$[A-2],$[A],!0]],[]];case 288:return["comprehension",$[A-7],[["for-of",$[A-4],$[A-2],!0]],[$[A]]];case 289:return["comprehension",$[A-4],[["for-as",$[A-2],$[A],!1,null]],[]];case 290:return["comprehension",$[A-6],[["for-as",$[A-4],$[A-2],!1,null]],[$[A]]];case 291:return["comprehension",$[A-5],[["for-as",$[A-2],$[A],!0,null]],[]];case 292:return["comprehension",$[A-7],[["for-as",$[A-4],$[A-2],!0,null]],[$[A]]];case 293:return["comprehension",$[A-4],[["for-as",$[A-2],$[A],!0,null]],[]];case 294:return["comprehension",$[A-6],[["for-as",$[A-4],$[A-2],!0,null]],[$[A]]];case 295:return["comprehension",$[A-2],[["for-in",[],$[A],null]],[]];case 296:return["comprehension",$[A-4],[["for-in",[],$[A-2],$[A]]],[]];case 300:case 330:case 332:case 354:case 355:case 357:return[$[A-2],$[A]];case 301:return["class",null,null];case 302:return["class",null,null,$[A]];case 303:return["class",null,$[A]];case 304:return["class",null,$[A-1],$[A]];case 305:return["class",$[A],null];case 306:return["class",$[A-1],null,$[A]];case 307:return["class",$[A-2],$[A]];case 308:return["class",$[A-3],$[A-1],$[A]];case 309:return["component",null,["block",...$[A-1]]];case 316:return["render",$[A]];case 317:case 320:return["import","{}",$[A]];case 318:case 319:return["import",$[A-2],$[A]];case 321:return["import",$[A-4],$[A]];case 322:return["import",[$[A-4],$[A-2]],$[A]];case 323:return["import",[$[A-7],$[A-4]],$[A]];case 334:return["*",$[A]];case 335:return["export","{}"];case 336:return["export",$[A-2]];case 337:case 338:case 339:return["export",$[A]];case 340:return["export",["=",$[A-2],$[A]]];case 341:return["export",["=",$[A-3],$[A]]];case 342:return["export",["=",$[A-4],$[A-1]]];case 343:return["export-default",$[A]];case 344:return["export-default",$[A-1]];case 345:return["export-all",$[A]];case 346:return["export-from","{}",$[A]];case 347:return["export-from",$[A-4],$[A]];case 359:case 360:case 362:case 397:return["do-iife",$[A]];case 364:return["-",$[A]];case 365:return["+",$[A]];case 366:return["?",$[A-1]];case 367:return["await",$[A]];case 368:return["await",$[A-1]];case 369:return["--",$[A],!1];case 370:return["++",$[A],!1];case 371:return["--",$[A-1],!0];case 372:return["++",$[A-1],!0];case 373:return["+",$[A-2],$[A]];case 374:return["-",$[A-2],$[A]];case 376:return["**",$[A-2],$[A]];case 379:return["&",$[A-2],$[A]];case 380:return["^",$[A-2],$[A]];case 381:return["|",$[A-2],$[A]];case 382:case 383:case 384:case 385:case 386:case 387:return["control",$[A-1],$[A-2],$[A]];case 388:return["&&",$[A-2],$[A]];case 389:return["||",$[A-2],$[A]];case 390:return["??",$[A-2],$[A]];case 391:return["!?",$[A-2],$[A]];case 393:return["?:",$[A-4],$[A-2],$[A]];case 395:return[$[A-3],$[A-4],$[A-1]];case 396:return[$[A-2],$[A-3],$[A]]}},parseError(F,W){let Y,U,$,A,Q,J,Z;if(W.recoverable)return this.trace(F);else throw $=(W.line||0)+1,Y=W.loc?.first_column||0,Z=W.token?` (token: ${W.token})`:"",J=W.text?` near '${W.text}'`:"",A=`line ${$}, column ${Y}`,Q=`Parse error at ${A}${Z}${J}: ${F}`,U=Error(Q),U.hash=W,U},parse(F){let W,Y,U,$,A,Q,J,Z,X,D,K,M,R,z,G,P,_,w,H,E,T,O,q,B,I,N,S,u;[T,q,X]=[[0],[null],[]],[z,S,I,B,w]=[this.parseTable,"",0,0,0],[Y,W]=[2,1],Z=Object.create(this.lexer),H={yy:{}};for(let L in this.yy)if(Object.hasOwn(this.yy,L)){let C=this.yy[L];H.yy[L]=C}if(Z.setInput(F,H.yy),[H.yy.lexer,H.yy.parser]=[Z,this],Z.yylloc==null)Z.yylloc={};N=Z.yylloc,X.push(N),_=Z.options?.ranges,this.parseError=typeof H.yy.parseError==="function"?H.yy.parseError:Object.getPrototypeOf(this).parseError,J=()=>{let L;if(L=Z.lex()||W,typeof L!=="number")L=this.symbolIds[L]||L;return L},[O,G,E,U,P,u,R,Q,M,A]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(E=T[T.length-1],O==null)O=J();if(U=z[E]?.[O],U==null){if($="",!w)A=(()=>{let L=[];for(let C in z[E]){if(!Object.hasOwn(z[E],C))continue;if(this.tokenNames[C]&&C>Y)L.push(`'${this.tokenNames[C]}'`)}return L})();throw $=(()=>{if(Z.showPosition)return`Parse error on line ${I+1}:
|
|
10
|
+
${Z.showPosition()}
|
|
11
|
+
Expecting ${A.join(", ")}, got '${this.tokenNames[O]||O}'`;else return`Parse error on line ${I+1}: Unexpected ${O===W?"end of input":`'${this.tokenNames[O]||O}'`}`,this.parseError($,{text:Z.match,token:this.tokenNames[O]||O,line:Z.yylineno,loc:N,expected:A})})(),Error($)}if(U>0)if(T.push(O,U),q.push(Z.yytext),X.push(Z.yylloc),O=null,!G){if([B,S,I,N]=[Z.yyleng,Z.yytext,Z.yylineno,Z.yylloc],w>0)w--}else[O,G]=[G,null];else if(U<0){if(Q=this.ruleTable[-U*2+1],u.$=q[q.length-Q],[D,K]=[X[X.length-(Q||1)],X[X.length-1]],u._$={first_line:D.first_line,last_line:K.last_line,first_column:D.first_column,last_column:K.last_column},_)u._$.range=[D.range[0],K.range[1]];if(P=this.ruleActions.apply(u,[-U,q,X,H.yy]),P!=null)u.$=P;if(Q)T.length-=Q*2,q.length-=Q,X.length-=Q;T.push(this.ruleTable[-U*2]),q.push(u.$),X.push(u._$),M=z[T[T.length-2]][T[T.length-1]],T.push(M)}else if(U===0)return q[q.length-1]}},trace(){},yy:{}},A2=(F={})=>{let W=Object.create($2);return Object.defineProperty(W,"yy",{value:{...F},enumerable:!1,writable:!0,configurable:!0}),W},g=A2();var K2=g.parse.bind(g);var M1="__bind_",K1="__",R1=new Set(["mounted","unmounted","updated"]);function F2(F){for(let W of F){if(!Array.isArray(W))continue;let Y=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(Y==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function i(F){if(typeof F==="string")return F;if(Array.isArray(F)&&F[0]==="."&&F[1]==="this"&&typeof F[2]==="string")return F[2];return null}function z1(F){let W=F.prototype;W.isHtmlTag=function(Y){let U=Y.split("#")[0];return l.has(U.toLowerCase())},W.isComponent=function(Y){if(!Y||typeof Y!=="string")return!1;return/^[A-Z]/.test(Y)},W.collectTemplateClasses=function(Y){let U=[],$=Y;while(Array.isArray($)&&$[0]==="."){let Q=$[2];if(typeof Q==="string"||Q instanceof String)U.unshift(Q.valueOf());$=$[1]}return{tag:typeof $==="string"?$:$ instanceof String?$.valueOf():"div",classes:U}},W.transformComponentMembers=function(Y){if(!Array.isArray(Y)){if(typeof Y==="string"&&this.reactiveMembers&&this.reactiveMembers.has(Y))return[".",[".","this",Y],"value"];return Y}if(Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string"){let U=Y[2];if(this.reactiveMembers&&this.reactiveMembers.has(U))return[".",Y,"value"];return Y}if(Y[0]==="->")return["=>",...Y.slice(1).map((U)=>this.transformComponentMembers(U))];return Y.map((U)=>this.transformComponentMembers(U))},W.generateComponent=function(Y,U,$,A){let[,Q]=U;this.usesTemplates=!0,this.usesReactivity=!0;let J=Array.isArray(Q)&&Q[0]==="block"?Q.slice(1):[],Z=[],X=[],D=[],K=[],M=[],R=[],z=null,G=new Set,P=new Set;for(let T of J){if(!Array.isArray(T))continue;let[O]=T;if(O==="state"){let q=i(T[1]);if(q)Z.push({name:q,value:T[2]}),G.add(q),P.add(q)}else if(O==="computed"){let q=i(T[1]);if(q)X.push({name:q,expr:T[2]}),G.add(q),P.add(q)}else if(O==="readonly"){let q=i(T[1]);if(q)D.push({name:q,value:T[2]}),G.add(q)}else if(O==="="){let q=i(T[1]);if(q)if(R1.has(q))M.push({name:q,value:T[2]});else{let B=T[2];if(Array.isArray(B)&&(B[0]==="->"||B[0]==="=>"))K.push({name:q,func:B}),G.add(q);else Z.push({name:q,value:B}),G.add(q),P.add(q)}}else if(O==="effect")R.push(T);else if(O==="render")z=T;else if(O==="object")for(let q=1;q<T.length;q++){let B=T[q];if(!Array.isArray(B))continue;let[I,N]=B;if(typeof I==="string"&&R1.has(I))M.push({name:I,value:N});else if(typeof I==="string")K.push({name:I,func:N}),G.add(I)}}let _=this.componentMembers,w=this.reactiveMembers;this.componentMembers=G,this.reactiveMembers=P;let H=[],E="";H.push("class {"),H.push(" constructor(props = {}) {"),H.push(" const __prevComponent = __pushComponent(this);"),H.push("");for(let{name:T,value:O}of D){let q=this.generateInComponent(O,"value");H.push(` this.${T} = props.${T} ?? ${q};`)}for(let{name:T,value:O}of Z){let q=this.generateInComponent(O,"value");H.push(` this.${T} = isSignal(props.${T}) ? props.${T} : __state(props.${T} ?? ${q});`)}for(let{name:T,expr:O}of X){let q=this.generateInComponent(O,"value");H.push(` this.${T} = __computed(() => ${q});`)}for(let T of R){let O=T[1],q=this.generateInComponent(O,"value");H.push(` __effect(${q});`)}H.push(""),H.push(" __popComponent(__prevComponent);"),H.push(" }");for(let{name:T,func:O}of K)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,q,B]=O,I=Array.isArray(q)?q.map((S)=>this.formatParam(S)).join(", "):"",N=this.generateInComponent(B,"value");H.push(` ${T}(${I}) { return ${N}; }`)}for(let{name:T,value:O}of M)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,,q]=O,B=this.generateInComponent(q,"value");H.push(` ${T}() { return ${B}; }`)}if(z){let T=z[1],O=this.buildRender(T);if(O.blockFactories.length>0)E=O.blockFactories.join(`
|
|
12
|
+
|
|
13
|
+
`)+`
|
|
14
|
+
|
|
15
|
+
`;H.push(" _create() {");for(let q of O.createLines)H.push(` ${q}`);if(H.push(` return ${O.rootVar};`),H.push(" }"),O.setupLines.length>0){H.push(" _setup() {");for(let q of O.setupLines)H.push(` ${q}`);H.push(" }")}}if(H.push(" mount(target) {"),H.push(' if (typeof target === "string") target = document.querySelector(target);'),H.push(" this._target = target;"),H.push(" this._root = this._create();"),H.push(" target.appendChild(this._root);"),H.push(" if (this._setup) this._setup();"),H.push(" if (this.mounted) this.mounted();"),H.push(" return this;"),H.push(" }"),H.push(" unmount() {"),H.push(" if (this.unmounted) this.unmounted();"),H.push(" if (this._root && this._root.parentNode) {"),H.push(" this._root.parentNode.removeChild(this._root);"),H.push(" }"),H.push(" }"),H.push("}"),this.componentMembers=_,this.reactiveMembers=w,E)return`(() => {
|
|
16
|
+
${E}return ${H.join(`
|
|
17
|
+
`)};
|
|
18
|
+
})()`;return H.join(`
|
|
19
|
+
`)},W.generateInComponent=function(Y,U){if(typeof Y==="string"&&this.reactiveMembers&&this.reactiveMembers.has(Y))return`this.${Y}.value`;if(Array.isArray(Y)&&this.reactiveMembers){let $=this.transformComponentMembers(Y);return this.generate($,U)}return this.generate(Y,U)},W.generateRender=function(Y,U,$,A){throw Error("render blocks can only be used inside a component")},W.buildRender=function(Y){this._emitElementCount=0,this._emitTextCount=0,this._emitBlockCount=0,this._emitCreateLines=[],this._emitSetupLines=[],this._emitBlockFactories=[];let U=Array.isArray(Y)&&Y[0]==="block"?Y.slice(1):[Y],$;if(U.length===0)$="null";else if(U.length===1)$=this.emitNode(U[0]);else{$=this.newElementVar("frag"),this._emitCreateLines.push(`${$} = document.createDocumentFragment();`);for(let A of U){let Q=this.emitNode(A);this._emitCreateLines.push(`${$}.appendChild(${Q});`)}}return{createLines:this._emitCreateLines,setupLines:this._emitSetupLines,blockFactories:this._emitBlockFactories,rootVar:$}},W.newBlockVar=function(){return`create_block_${this._emitBlockCount++}`},W.newElementVar=function(Y="el"){return`this._${Y}${this._emitElementCount++}`},W.newTextVar=function(){return`this._t${this._emitTextCount++}`},W.emitNode=function(Y){if(typeof Y==="string"||Y instanceof String){let Z=Y.valueOf();if(Z.startsWith('"')||Z.startsWith("'")||Z.startsWith("`")){let D=this.newTextVar();return this._emitCreateLines.push(`${D} = document.createTextNode(${Z});`),D}if(this.reactiveMembers&&this.reactiveMembers.has(Z)){let D=this.newTextVar();return this._emitCreateLines.push(`${D} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${D}.data = this.${Z}.value; });`),D}let X=this.newElementVar();return this._emitCreateLines.push(`${X} = document.createElement('${Z}');`),X}if(!Array.isArray(Y)){let Z=this.newElementVar("c");return this._emitCreateLines.push(`${Z} = document.createComment('unknown');`),Z}let[U,...$]=Y,A=typeof U==="string"?U:U instanceof String?U.valueOf():null;if(A&&this.isComponent(A))return this.emitChildComponent(A,$);if(A&&this.isHtmlTag(A))return this.emitTag(A,[],$);if(A==="."){let[,Z,X]=Y;if(Z==="this"&&typeof X==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(X)){let z=this.newTextVar();return this._emitCreateLines.push(`${z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${z}.data = this.${X}.value; });`),z}if(this.componentMembers&&this.componentMembers.has(X)){let z=this.newElementVar("slot");return this._emitCreateLines.push(`${z} = this.${X} instanceof Node ? this.${X} : (this.${X} != null ? document.createTextNode(String(this.${X})) : document.createComment(''));`),z}}let{tag:D,classes:K}=this.collectTemplateClasses(Y);if(D&&this.isHtmlTag(D))return this.emitTag(D,K,[]);let M=this.newTextVar(),R=this.generateInComponent(Y,"value");return this._emitCreateLines.push(`${M} = document.createTextNode(String(${R}));`),M}if(Array.isArray(U)){if(Array.isArray(U[0])&&U[0][0]==="."&&(U[0][2]==="__cx__"||U[0][2]instanceof String&&U[0][2].valueOf()==="__cx__")){let D=typeof U[0][1]==="string"?U[0][1]:U[0][1].valueOf(),K=U.slice(1);return this.emitDynamicTag(D,K,$)}let{tag:Z,classes:X}=this.collectTemplateClasses(U);if(Z&&this.isHtmlTag(Z)){if(X.length===1&&X[0]==="__cx__")return this.emitDynamicTag(Z,$,[]);return this.emitTag(Z,X,$)}}if(A==="->"||A==="=>")return this.emitBlock($[1]);if(A==="if")return this.emitConditional(Y);if(A==="for"||A==="for-in"||A==="for-of"||A==="for-as")return this.emitLoop(Y);let Q=this.newTextVar(),J=this.generateInComponent(Y,"value");if(this.hasReactiveDeps(Y))this._emitCreateLines.push(`${Q} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Q}.data = ${J}; });`);else this._emitCreateLines.push(`${Q} = document.createTextNode(String(${J}));`);return Q},W.emitTag=function(Y,U,$){let A=this.newElementVar();if(this._emitCreateLines.push(`${A} = document.createElement('${Y}');`),U.length>0)this._emitCreateLines.push(`${A}.className = '${U.join(" ")}';`);for(let Q of $)if(Array.isArray(Q)&&(Q[0]==="->"||Q[0]==="=>")){let J=Q[2];if(Array.isArray(J)&&J[0]==="block")for(let Z of J.slice(1)){let X=this.emitNode(Z);this._emitCreateLines.push(`${A}.appendChild(${X});`)}else if(J){let Z=this.emitNode(J);this._emitCreateLines.push(`${A}.appendChild(${Z});`)}}else if(Array.isArray(Q)&&Q[0]==="object")this.emitAttributes(A,Q);else if(typeof Q==="string"){let J=this.newTextVar();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`"))this._emitCreateLines.push(`${J} = document.createTextNode(${Q});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Q))this._emitCreateLines.push(`${J} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${J}.data = this.${Q}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Q))this._emitCreateLines.push(`${J} = document.createTextNode(String(this.${Q}));`);else this._emitCreateLines.push(`${J} = document.createTextNode(String(${Q}));`);this._emitCreateLines.push(`${A}.appendChild(${J});`)}else if(Q instanceof String){let J=Q.valueOf(),Z=this.newTextVar();if(J.startsWith('"')||J.startsWith("'")||J.startsWith("`"))this._emitCreateLines.push(`${Z} = document.createTextNode(${J});`);else if(this.reactiveMembers&&this.reactiveMembers.has(J))this._emitCreateLines.push(`${Z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Z}.data = this.${J}.value; });`);else this._emitCreateLines.push(`${Z} = document.createTextNode(String(${J}));`);this._emitCreateLines.push(`${A}.appendChild(${Z});`)}else if(Q){let J=this.emitNode(Q);this._emitCreateLines.push(`${A}.appendChild(${J});`)}return A},W.emitDynamicTag=function(Y,U,$){let A=this.newElementVar();if(this._emitCreateLines.push(`${A} = document.createElement('${Y}');`),U.length>0){let Q=U.map((Z)=>this.generateInComponent(Z,"value")).join(", ");if(U.some((Z)=>this.hasReactiveDeps(Z)))this._emitSetupLines.push(`__effect(() => { ${A}.className = __cx__(${Q}); });`);else this._emitCreateLines.push(`${A}.className = __cx__(${Q});`)}for(let Q of $){let J=Array.isArray(Q)?Q[0]instanceof String?Q[0].valueOf():Q[0]:null;if(J==="->"||J==="=>"){let Z=Q[2];if((Array.isArray(Z)?Z[0]instanceof String?Z[0].valueOf():Z[0]:null)==="block")for(let D of Z.slice(1)){let K=this.emitNode(D);this._emitCreateLines.push(`${A}.appendChild(${K});`)}else if(Z){let D=this.emitNode(Z);this._emitCreateLines.push(`${A}.appendChild(${D});`)}}else if(Array.isArray(Q)&&Q[0]==="object")this.emitAttributes(A,Q);else if(typeof Q==="string"||Q instanceof String){let Z=this.newTextVar(),X=Q.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))this._emitCreateLines.push(`${Z} = document.createTextNode(${X});`);else if(this.reactiveMembers&&this.reactiveMembers.has(X))this._emitCreateLines.push(`${Z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Z}.data = this.${X}.value; });`);else this._emitCreateLines.push(`${Z} = document.createTextNode(${this.generateInComponent(Q,"value")});`);this._emitCreateLines.push(`${A}.appendChild(${Z});`)}else{let Z=this.emitNode(Q);this._emitCreateLines.push(`${A}.appendChild(${Z});`)}}return A},W.emitAttributes=function(Y,U){let $=F2(U.slice(1));for(let A=1;A<U.length;A++){let[Q,J]=U[A];if(Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"){let Z=Q[2],X=this.generateInComponent(J,"value");this._emitCreateLines.push(`${Y}.addEventListener('${Z}', (e) => (${X})(e));`);continue}if(typeof Q==="string"){if(Q.startsWith('"')&&Q.endsWith('"'))Q=Q.slice(1,-1);if(Q.startsWith(M1)&&Q.endsWith(K1)){let X=Q.slice(M1.length,-K1.length),D=this.generateInComponent(J,"value"),K,M;if(X==="checked")K="change",M="e.target.checked";else K="input",M=$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._emitSetupLines.push(`__effect(() => { ${Y}.${X} = ${D}; });`),this._emitCreateLines.push(`${Y}.addEventListener('${K}', (e) => ${D} = ${M});`);continue}let Z=this.generateInComponent(J,"value");if((Q==="value"||Q==="checked")&&this.hasReactiveDeps(J)){this._emitSetupLines.push(`__effect(() => { ${Y}.${Q} = ${Z}; });`);let X=Q==="checked"?"change":"input",D=Q==="checked"?"e.target.checked":$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._emitCreateLines.push(`${Y}.addEventListener('${X}', (e) => { ${Z} = ${D}; });`);continue}if(this.hasReactiveDeps(J))this._emitSetupLines.push(`__effect(() => { ${Y}.setAttribute('${Q}', ${Z}); });`);else this._emitCreateLines.push(`${Y}.setAttribute('${Q}', ${Z});`)}}},W.emitBlock=function(Y){if(!Array.isArray(Y)||Y[0]!=="block")return this.emitNode(Y);let U=Y.slice(1);if(U.length===0){let A=this.newElementVar("empty");return this._emitCreateLines.push(`${A} = document.createComment('');`),A}if(U.length===1)return this.emitNode(U[0]);let $=this.newElementVar("frag");this._emitCreateLines.push(`${$} = document.createDocumentFragment();`);for(let A of U){let Q=this.emitNode(A);this._emitCreateLines.push(`${$}.appendChild(${Q});`)}return $},W.emitConditional=function(Y){let[,U,$,A]=Y,Q=this.newElementVar("anchor");this._emitCreateLines.push(`${Q} = document.createComment('if');`);let J=this.generateInComponent(U,"value"),Z=this.newBlockVar();this.emitConditionBranch(Z,$);let X=null;if(A)X=this.newBlockVar(),this.emitConditionBranch(X,A);let D=[];if(D.push(`// Conditional: ${Z}${X?" / "+X:""}`),D.push("{"),D.push(` const anchor = ${Q};`),D.push(" let currentBlock = null;"),D.push(" let showing = null;"),D.push(" __effect(() => {"),D.push(` const show = !!(${J});`),D.push(` const want = show ? 'then' : ${A?"'else'":"null"};`),D.push(" if (want === showing) return;"),D.push(""),D.push(" if (currentBlock) {"),D.push(" currentBlock.d(true);"),D.push(" currentBlock = null;"),D.push(" }"),D.push(" showing = want;"),D.push(""),D.push(" if (want === 'then') {"),D.push(` currentBlock = ${Z}(this);`),D.push(" currentBlock.c();"),D.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),D.push(" currentBlock.p(this);"),D.push(" }"),A)D.push(" if (want === 'else') {"),D.push(` currentBlock = ${X}(this);`),D.push(" currentBlock.c();"),D.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),D.push(" currentBlock.p(this);"),D.push(" }");return D.push(" });"),D.push("}"),this._emitSetupLines.push(D.join(`
|
|
20
|
+
`)),Q},W.emitConditionBranch=function(Y,U){let $=this._emitCreateLines,A=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[];let Q=this.emitBlock(U),J=this._emitCreateLines,Z=this._emitSetupLines;this._emitCreateLines=$,this._emitSetupLines=A;let X=(R)=>{let z=R.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return z=z.replace(/\bthis\./g,"ctx."),z},D=[];D.push(`function ${Y}(ctx) {`);let K=new Set;for(let R of J){let z=R.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(z)K.add(z[1])}if(K.size>0)D.push(` let ${[...K].join(", ")};`);let M=Z.length>0;if(M)D.push(" let disposers = [];");D.push(" return {"),D.push(" c() {");for(let R of J)D.push(` ${X(R)}`);if(D.push(" },"),D.push(" m(target, anchor) {"),D.push(` target.insertBefore(${X(Q)}, anchor);`),D.push(" },"),D.push(" p(ctx) {"),M){D.push(" disposers.forEach(d => d());"),D.push(" disposers = [];");for(let R of Z){let G=X(R).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");D.push(` ${G}`)}}if(D.push(" },"),D.push(" d(detaching) {"),M)D.push(" disposers.forEach(d => d());");D.push(` if (detaching) ${X(Q)}.remove();`),D.push(" }"),D.push(" };"),D.push("}"),this._emitBlockFactories.push(D.join(`
|
|
21
|
+
`))},W.emitLoop=function(Y){let[U,$,A,Q,J,Z]=Y,X=this.newBlockVar(),D=this.newElementVar("anchor");this._emitCreateLines.push(`${D} = document.createComment('for');`);let K=Array.isArray($)?$:[$],M=K[0],R=K[1]||"i",z=this.generateInComponent(A,"value"),G=M;if(Array.isArray(Z)&&Z[0]==="block"&&Z.length>1){let N=Z[1];if(Array.isArray(N))for(let S of N){if(Array.isArray(S)&&S[0]==="object")for(let u=1;u<S.length;u++){let[L,C]=S[u];if(L==="key"){G=this.generate(C,"value");break}}if(G!==M)break}}let P=this._emitCreateLines,_=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[];let w=this.emitBlock(Z),H=this._emitCreateLines,E=this._emitSetupLines;this._emitCreateLines=P,this._emitSetupLines=_;let T=(N)=>{let S=N.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return S=S.replace(/\bthis\./g,"ctx."),S},O=[];O.push(`function ${X}(ctx, ${M}, ${R}) {`);let q=new Set;for(let N of H){let S=N.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(S)q.add(S[1])}if(q.size>0)O.push(` let ${[...q].join(", ")};`);let B=E.length>0;if(B)O.push(" let disposers = [];");O.push(" return {"),O.push(" c() {");for(let N of H)O.push(` ${T(N)}`);if(O.push(" },"),O.push(" m(target, anchor) {"),O.push(` target.insertBefore(${T(w)}, anchor);`),O.push(" },"),O.push(` p(ctx, ${M}, ${R}) {`),B){O.push(" disposers.forEach(d => d());"),O.push(" disposers = [];");for(let N of E){let u=T(N).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");O.push(` ${u}`)}}if(O.push(" },"),O.push(" d(detaching) {"),B)O.push(" disposers.forEach(d => d());");O.push(` if (detaching) ${T(w)}.remove();`),O.push(" }"),O.push(" };"),O.push("}"),this._emitBlockFactories.push(O.join(`
|
|
22
|
+
`));let I=[];return I.push(`// Loop: ${X}`),I.push("{"),I.push(` const anchor = ${D};`),I.push(" const map = new Map();"),I.push(" __effect(() => {"),I.push(` const items = ${z};`),I.push(" const parent = anchor.parentNode;"),I.push(" const newMap = new Map();"),I.push(""),I.push(` for (let ${R} = 0; ${R} < items.length; ${R}++) {`),I.push(` const ${M} = items[${R}];`),I.push(` const key = ${G};`),I.push(" let block = map.get(key);"),I.push(" if (block) {"),I.push(` block.p(this, ${M}, ${R});`),I.push(" } else {"),I.push(` block = ${X}(this, ${M}, ${R});`),I.push(" block.c();"),I.push(" block.m(parent, anchor);"),I.push(` block.p(this, ${M}, ${R});`),I.push(" }"),I.push(" newMap.set(key, block);"),I.push(" }"),I.push(""),I.push(" for (const [key, block] of map) {"),I.push(" if (!newMap.has(key)) block.d(true);"),I.push(" }"),I.push(""),I.push(" map.clear();"),I.push(" for (const [k, v] of newMap) map.set(k, v);"),I.push(" });"),I.push("}"),this._emitSetupLines.push(I.join(`
|
|
23
|
+
`)),D},W.emitChildComponent=function(Y,U){let $=this.newElementVar("inst"),A=this.newElementVar("el"),{propsCode:Q,childrenSetupLines:J}=this.buildComponentProps(U);this._emitCreateLines.push(`${$} = new ${Y}(${Q});`),this._emitCreateLines.push(`${A} = ${$}._create();`),this._emitSetupLines.push(`if (${$}._setup) ${$}._setup();`);for(let Z of J)this._emitSetupLines.push(Z);return A},W.buildComponentProps=function(Y){let U=[],$=null,A=[];for(let J of Y)if(Array.isArray(J)&&J[0]==="object")for(let Z=1;Z<J.length;Z++){let[X,D]=J[Z];if(typeof X==="string"){let K=this.generateInComponent(D,"value");U.push(`${X}: ${K}`)}}else if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let Z=J[2];if(Z){let X=this._emitCreateLines,D=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[],$=this.emitBlock(Z);let K=this._emitCreateLines,M=this._emitSetupLines;this._emitCreateLines=X,this._emitSetupLines=D;for(let R of K)this._emitCreateLines.push(R);A.push(...M),U.push(`children: ${$}`)}}return{propsCode:U.length>0?`{ ${U.join(", ")} }`:"{}",childrenSetupLines:A}},W.hasReactiveDeps=function(Y){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof Y==="string")return this.reactiveMembers.has(Y);if(!Array.isArray(Y))return!1;if(Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return this.reactiveMembers.has(Y[2]);for(let U of Y)if(this.hasReactiveDeps(U))return!0;return!1},W.getComponentRuntime=function(){return`
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Rip Component Runtime
|
|
26
|
+
// ============================================================================
|
|
27
|
+
|
|
28
|
+
function isSignal(v) {
|
|
29
|
+
return v != null && typeof v === 'object' && typeof v.read === 'function';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let __currentComponent = null;
|
|
33
|
+
|
|
34
|
+
function __pushComponent(component) {
|
|
35
|
+
component._parent = __currentComponent;
|
|
36
|
+
const prev = __currentComponent;
|
|
37
|
+
__currentComponent = component;
|
|
38
|
+
return prev;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function __popComponent(prev) {
|
|
42
|
+
__currentComponent = prev;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function setContext(key, value) {
|
|
46
|
+
if (!__currentComponent) throw new Error('setContext must be called during component initialization');
|
|
47
|
+
if (!__currentComponent._context) __currentComponent._context = new Map();
|
|
48
|
+
__currentComponent._context.set(key, value);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function getContext(key) {
|
|
52
|
+
let component = __currentComponent;
|
|
53
|
+
while (component) {
|
|
54
|
+
if (component._context && component._context.has(key)) return component._context.get(key);
|
|
55
|
+
component = component._parent;
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function hasContext(key) {
|
|
61
|
+
let component = __currentComponent;
|
|
62
|
+
while (component) {
|
|
63
|
+
if (component._context && component._context.has(key)) return true;
|
|
64
|
+
component = component._parent;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function __cx__(...args) {
|
|
70
|
+
return args.filter(Boolean).join(' ');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Register on globalThis for runtime deduplication
|
|
74
|
+
if (typeof globalThis !== 'undefined') {
|
|
75
|
+
globalThis.__ripComponent = { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
`}}var f=(F,W)=>F instanceof String?F[W]:void 0,j=(F)=>F instanceof String?F.valueOf():F,Y2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function d(F){if(!Array.isArray(F)||F.length===0)return!1;let W=F[0]?.valueOf?.()??F[0];if(Y2.has(W))return!0;return F.length<=4&&!F.some(Array.isArray)}function m(F){if(Array.isArray(F))return"(???)";if(typeof F==="number")return String(F);if(F===null)return"null";if(F==="")return'""';let W=String(F);if(W[0]==="/"&&W.indexOf(`
|
|
79
|
+
`)>=0){let Y=W.match(/\/([gimsuvy]*)$/),U=Y?Y[1]:"",$=W.slice(1);return $=U?$.slice(0,-U.length-1):$.slice(0,-1),`"/${$.split(`
|
|
80
|
+
`).map((J)=>J.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function v(F,W=0,Y=!1){if(!Array.isArray(F))return m(F);if(Y&&F[0]==="program"){let X=F[1],K=[Array.isArray(X)?"(program":"(program "+m(X)],M=Array.isArray(X)?1:2;for(let R=M;R<F.length;R++){let z=v(F[R],2,!1);K.push(z[0]==="("?" "+z:z)}return K.push(")"),K.join(`
|
|
81
|
+
`)}let U=F[0];if(d(F)&&F.slice(1).every((X)=>!Array.isArray(X)||d(X))){let D=`(${F.map((K)=>Array.isArray(K)?v(K,0,!1):m(K)).join(" ")})`;if(!D.includes(`
|
|
82
|
+
`))return" ".repeat(W)+D}let A=" ".repeat(W),Q;if(Array.isArray(U)){if(Q=v(U,0,!1),Q.includes(`
|
|
83
|
+
`))Q=Q.split(`
|
|
84
|
+
`).map((D,K)=>K===0?D:" ".repeat(W+2)+D).join(`
|
|
85
|
+
`)}else Q=m(U);let J=[`${A}(${Q}`],Z=U==="block";for(let X=1;X<F.length;X++){let D=F[X];if(!Array.isArray(D))J[J.length-1]+=" "+m(D);else{let K=d(D)&&D.every((M)=>!Array.isArray(M)||d(M));if(!Z&&K){let M=v(D,0,!1);if(!M.includes(`
|
|
86
|
+
`)){J[J.length-1]+=" "+M;continue}}J.push(v(D,W+2,!1))}}return J[J.length-1]+=")",J.join(`
|
|
87
|
+
`)}class y{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary",loop:"generateLoop",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(F={}){if(this.options=F,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=F.dataSection,F.reactiveVars)this.reactiveVars=new Set(F.reactiveVars)}compile(F){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(F),this.generate(F)}collectProgramVariables(F){if(!Array.isArray(F))return;let[W,...Y]=F;if(W=j(W),Array.isArray(W)){F.forEach((U)=>this.collectProgramVariables(U));return}if(W==="export"||W==="export-default"||W==="export-all"||W==="export-from")return;if(W==="state"||W==="computed"){let[U]=Y,$=j(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add($);return}if(W==="readonly")return;if(y.ASSIGNMENT_OPS.has(W)){let[U,$]=Y;if(typeof U==="string"||U instanceof String){let A=j(U);if(!this.reactiveVars?.has(A))this.programVars.add(A)}else if(Array.isArray(U)&&U[0]==="array")this.collectVarsFromArray(U,this.programVars);else if(Array.isArray(U)&&U[0]==="object")this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables($);return}if(W==="def"||W==="->"||W==="=>")return;if(W==="if"){let[U,$,A]=Y;if(this.collectProgramVariables(U),this.collectProgramVariables($),A)this.collectProgramVariables(A);return}if(W==="unless"){let[U,$]=Y;this.collectProgramVariables(U),this.collectProgramVariables($);return}if(W==="try"){if(this.collectProgramVariables(Y[0]),Y.length>=2&&Array.isArray(Y[1])&&Y[1].length===2&&Y[1][0]!=="block"){let[U,$]=Y[1];if(U&&Array.isArray(U)&&U[0]==="object")U.slice(1).forEach((A)=>{if(Array.isArray(A)&&A.length===2&&typeof A[1]==="string")this.programVars.add(A[1])});else if(U&&Array.isArray(U)&&U[0]==="array")U.slice(1).forEach((A)=>{if(typeof A==="string")this.programVars.add(A)});this.collectProgramVariables($)}if(Y.length===3)this.collectProgramVariables(Y[2]);else if(Y.length===2&&(!Array.isArray(Y[1])||Y[1][0]==="block"))this.collectProgramVariables(Y[1]);return}Y.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables(F){let W=new Set,Y=(U)=>{if(!Array.isArray(U))return;let[$,...A]=U;if($=j($),Array.isArray($)){U.forEach((Q)=>Y(Q));return}if(y.ASSIGNMENT_OPS.has($)){let[Q,J]=A;if(typeof Q==="string")W.add(Q);else if(Array.isArray(Q)&&Q[0]==="array")this.collectVarsFromArray(Q,W);else if(Array.isArray(Q)&&Q[0]==="object")this.collectVarsFromObject(Q,W);Y(J);return}if($==="def"||$==="->"||$==="=>")return;if($==="try"){if(Y(A[0]),A.length>=2&&Array.isArray(A[1])&&A[1].length===2&&A[1][0]!=="block"){let[Q,J]=A[1];if(Q&&Array.isArray(Q)&&Q[0]==="object")Q.slice(1).forEach((Z)=>{if(Array.isArray(Z)&&Z.length===2&&typeof Z[1]==="string")W.add(Z[1])});else if(Q&&Array.isArray(Q)&&Q[0]==="array")Q.slice(1).forEach((Z)=>{if(typeof Z==="string")W.add(Z)});Y(J)}if(A.length===3)Y(A[2]);else if(A.length===2&&(!Array.isArray(A[1])||A[1][0]==="block"))Y(A[1]);return}A.forEach((Q)=>Y(Q))};return Y(F),W}generate(F,W="statement"){if(F instanceof String){if(f(F,"await")===!0)return`await ${j(F)}()`;if(f(F,"predicate"))return`(${j(F)} != null)`;if(f(F,"delimiter")==="///"&&f(F,"heregex")){let J=j(F),Z=J.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Z){let[,X,D]=Z;return`/${this.processHeregex(X)}/${D}`}return J}let Q=f(F,"quote");if(Q){let J=j(F);if(Q==='"""'||Q==="'''"){let X=this.extractStringContent(F);return X=X.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${X}\``}if(J[0]===Q)return J;let Z=J.slice(1,-1);return`${Q}${Z}${Q}`}F=j(F)}if(typeof F==="string"){if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",F);let Q=F.slice(1,-1);if(Q.includes(`
|
|
88
|
+
`))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let J=Q.includes("'")&&!Q.includes('"')?'"':"'",Z=Q.replace(new RegExp(J,"g"),`\\${J}`);return`${J}${Z}${J}`}if(this.reactiveVars?.has(F)&&!this.suppressReactiveUnwrap)return`${F}.value`;return F}if(typeof F==="number")return String(F);if(F===null||F===void 0)return"null";if(!Array.isArray(F))throw Error(`Invalid s-expression: ${JSON.stringify(F)}`);let[Y,...U]=F,$=f(Y,"await");Y=j(Y);let A=y.GENERATORS[Y];if(A)return this[A](Y,U,W,F);if(typeof Y==="string"&&!Y.startsWith('"')&&!Y.startsWith("'")){if(y.NUMBER_START_RE.test(Y))return Y;if(Y==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let D=U.map((K)=>this.unwrap(this.generate(K,"value"))).join(", ");return`super.${this.currentMethodName}(${D})`}if(W==="statement"&&U.length===1){let D=this.findPostfixConditional(U[0]);if(D){let K=this.rebuildWithoutConditional(D),M=this.generate(Y,"value"),R=this.generate(D.condition,"value"),z=this.generate(K,"value"),G=`${M}(${z})`;return D.type==="unless"?`if (!${R}) ${G}`:`if (${R}) ${G}`}}let Q=$===!0,J=this.generate(Y,"value"),Z=U.map((D)=>this.unwrap(this.generate(D,"value"))).join(", "),X=`${J}(${Z})`;return Q?`await ${X}`:X}if(Array.isArray(Y)&&typeof Y[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(Y[0]))return`(${F.map((Z)=>this.generate(Z,"value")).join(", ")})`}if(Array.isArray(Y)){if(Y[0]==="."&&(Y[2]==="new"||j(Y[2])==="new")){let D=Y[1],K=this.generate(D,"value"),M=U.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`new ${Array.isArray(D)?`(${K})`:K}(${M})`}if(W==="statement"&&U.length===1){let D=this.findPostfixConditional(U[0]);if(D){let K=this.rebuildWithoutConditional(D),M=this.generate(Y,"value"),R=this.generate(D.condition,"value"),z=this.generate(K,"value"),G=`${M}(${z})`;return D.type==="unless"?`if (!${R}) ${G}`:`if (${R}) ${G}`}}let Q=!1,J;if(Y[0]==="."&&f(Y[2],"await")===!0){Q=!0;let[D,K]=Y.slice(1),M=this.generate(D,"value");J=`${y.NUMBER_LITERAL_RE.test(M)||Array.isArray(D)&&(D[0]==="object"||D[0]==="await"||D[0]==="yield")?`(${M})`:M}.${j(K)}`}else J=this.generate(Y,"value");let Z=U.map((D)=>this.unwrap(this.generate(D,"value"))).join(", "),X=`${J}(${Z})`;return Q?`await ${X}`:X}throw Error(`Unknown s-expression type: ${Y}`)}generateProgram(F,W,Y,U){let $="",A=[],Q=[],J=[];for(let M of W){if(!Array.isArray(M)){J.push(M);continue}let R=M[0];if(R==="import")A.push(M);else if(R==="export"||R==="export-default"||R==="export-all"||R==="export-from")Q.push(M);else J.push(M)}let Z=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],X=J.map((M,R)=>{let z=J.length===1&&A.length===0&&Q.length===0,G=Array.isArray(M)&&M[0]==="object",P=G&&M.length===2&&Array.isArray(M[1])&&Array.isArray(M[1][1])&&M[1][1][0]==="comprehension",_=Array.isArray(M)&&(M[0]==="comprehension"||M[0]==="object-comprehension"||M[0]==="do-iife"),w=this.programVars.size===0,H=z&&G&&w&&!_&&!P,T=R===J.length-1&&_,O;if(H)O=`(${this.generate(M,"value")})`;else if(T)O=this.generate(M,"value");else O=this.generate(M,"statement");if(O&&!O.endsWith(";")){let q=Array.isArray(M)?M[0]:null;if(!Z.includes(q)||!O.endsWith("}"))return O+";"}return O}).join(`
|
|
89
|
+
`),D=!1;if(A.length>0)$+=A.map((M)=>this.addSemicolon(M,this.generate(M,"statement"))).join(`
|
|
90
|
+
`),D=!0;if(this.programVars.size>0){let M=Array.from(this.programVars).sort().join(", ");if(D)$+=`
|
|
91
|
+
`;$+=`let ${M};
|
|
92
|
+
`,D=!0}if(this.helpers.has("slice"))$+=`const slice = [].slice;
|
|
93
|
+
`,D=!0;if(this.helpers.has("modulo"))$+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
94
|
+
`,D=!0;if(this.helpers.has("toSearchable"))$+=`const toSearchable = (v, allowNewlines) => {
|
|
95
|
+
`,$+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
96
|
+
`,$+=` if (v == null) return "";
|
|
97
|
+
`,$+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
98
|
+
`,$+=` if (typeof v === "symbol") return v.description || "";
|
|
99
|
+
`,$+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
100
|
+
`,$+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
101
|
+
`,$+=` }
|
|
102
|
+
`,$+=` if (Array.isArray(v)) return v.join(",");
|
|
103
|
+
`,$+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
104
|
+
`,$+=` try { return v.toString(); } catch { return ""; }
|
|
105
|
+
`,$+=` }
|
|
106
|
+
`,$+=` return "";
|
|
107
|
+
`,$+=`};
|
|
108
|
+
`,D=!0;let K="";if(Q.length>0)K=`
|
|
109
|
+
`+Q.map((M)=>this.addSemicolon(M,this.generate(M,"statement"))).join(`
|
|
110
|
+
`);if(this.usesReactivity&&!this.options.skipReactiveRuntime){if(typeof globalThis<"u"&&globalThis.__rip)$+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
111
|
+
`;else $+=this.getReactiveRuntime();D=!0}if(this.usesTemplates&&!this.options.skipComponentRuntime){if(typeof globalThis<"u"&&globalThis.__ripComponent)$+=`const { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ } = globalThis.__ripComponent;
|
|
112
|
+
`;else $+=this.getComponentRuntime();D=!0}if(this.dataSection!==null&&this.dataSection!==void 0)$+=`var DATA;
|
|
42
113
|
_setDataSection();
|
|
43
|
-
`,
|
|
44
|
-
`;if(
|
|
45
|
-
`+W.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
|
|
46
|
-
`);if(this.dataSection!==null&&this.dataSection!==void 0)A+=`
|
|
114
|
+
`,D=!0;if(D&&$.length>0)$+=`
|
|
115
|
+
`;if($+=X,$+=K,this.dataSection!==null&&this.dataSection!==void 0)$+=`
|
|
47
116
|
|
|
48
117
|
function _setDataSection() {
|
|
49
118
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
50
|
-
}`;return
|
|
51
|
-
${this.withIndent(()=>this.formatStatements(
|
|
119
|
+
}`;return $}generateBinaryOp(F,W,Y,U){if((F==="+"||F==="-")&&W.length===1)return`(${F}${this.generate(W[0],"value")})`;let[$,A]=W;if(F==="!?"){let Q=this.generate($,"value"),J=this.generate(A,"value");return`(${Q} !== undefined ? ${Q} : ${J})`}if(F==="==")F="===";if(F==="!=")F="!==";return`(${this.generate($,"value")} ${F} ${this.generate(A,"value")})`}generateModulo(F,W){let[Y,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(Y,"value")}, ${this.generate(U,"value")})`}generateFloorDiv(F,W){let[Y,U]=W;return`Math.floor(${this.generate(Y,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign(F,W){let[Y,U]=W,$=this.generate(Y,"value"),A=this.generate(U,"value");return`${$} = Math.floor(${$} / ${A})`}generateAssignment(F,W,Y,U){let[$,A]=W,Q=F==="?="?"??=":F,J=Array.isArray(A)&&(A[0]==="->"||A[0]==="=>"||A[0]==="def");if($ instanceof String&&f($,"await")!==void 0&&!J){let G=f($,"await")===!0?"!":"&";throw Error(`Cannot use ${G} sigil in variable declaration '${j($)}'.`)}if($ instanceof String&&f($,"await")===!0&&J)this.nextFunctionIsVoid=!0;let Z=Array.isArray($)&&$[0]==="array"&&$.length===1,X=Array.isArray($)&&$[0]==="object"&&$.length===1;if(Z||X){let G=this.generate(A,"value");return X&&Y==="statement"?`(${G})`:G}if(Array.isArray(A)&&Q==="="&&A[0]==="control"){let[,G,P,_]=A,w=j(G),H=_[0]==="return",E=this.generate($,"value");if(typeof $==="string")this.programVars.add($);let T=this.generate(P,"value"),O=_.length>1?_[1]:null,q=H?O?`return ${this.generate(O,"value")}`:"return":O?`throw ${this.generate(O,"value")}`:"throw new Error()";if(Y==="value"){if(w==="??")return`(() => { const __v = ${T}; if (__v == null) ${q}; return (${E} = __v); })()`;if(w==="||")return`(() => { const __v = ${T}; if (!__v) ${q}; return (${E} = __v); })()`;return`(() => { const __v = ${T}; if (__v) ${q}; return (${E} = __v); })()`}if(w==="??")return`if ((${E} = ${T}) == null) ${q}`;if(w==="||")return`if (!(${E} = ${T})) ${q}`;return`if ((${E} = ${T})) ${q}`}if(Array.isArray($)&&$[0]==="array"){let G=$.slice(1).findIndex((P)=>Array.isArray(P)&&P[0]==="..."||P==="...");if(G!==-1&&G<$.length-2){let P=$.slice(1),_=P.slice(G+1),w=_.length;if(w>0){let H=this.generate(A,"value"),T=P.slice(0,G).map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),O=_.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");this.helpers.add("slice"),P.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])});let q=P[G],B=Array.isArray(q)&&q[0]==="..."?q[1]:null,I=[];if(T)I.push(`[${T}] = ${H}`);if(B)I.push(`[...${B}] = ${H}.slice(${G}, -${w})`);return I.push(`[${O}] = slice.call(${H}, -${w})`),I.join(", ")}}}if(Y==="statement"&&F==="="&&Array.isArray(A)&&(A[0]==="||"||A[0]==="&&")&&A.length===3){let[G,P,_]=A;if(Array.isArray(_)&&(_[0]==="unless"||_[0]==="if")&&_.length===3){let[w,H,E]=_,T=Array.isArray(E)&&E.length===1?E[0]:E,O=[G,P,T],q=this.generate($,"value"),B=this.generate(H,"value"),I=this.generate(O,"value");return w==="unless"?`if (!${B}) ${q} = ${I}`:`if (${B}) ${q} = ${I}`}}if(Y==="statement"&&F==="="&&Array.isArray(A)&&A.length===3){let[G,P,_]=A,w=Array.isArray(_)&&_.length===1&&(!Array.isArray(_[0])||_[0][0]!=="block");if((G==="unless"||G==="if")&&w){let H=Array.isArray(_)&&_.length===1?_[0]:_,E=this.generate($,"value"),T=this.unwrapLogical(this.generate(P,"value")),O=this.generate(H,"value");if(G==="unless"){if(T.includes(" ")||/[<>=&|]/.test(T))T=`(${T})`;return`if (!${T}) ${E} = ${O}`}return`if (${T}) ${E} = ${O}`}}let D;if($ instanceof String&&f($,"await")!==void 0)D=j($);else if(typeof $==="string"&&this.reactiveVars?.has($))D=`${$}.value`;else this.suppressReactiveUnwrap=!0,D=this.generate($,"value"),this.suppressReactiveUnwrap=!1;let K=this.generate(A,"value");if(!(Array.isArray(A)&&A[0]==="object"))K=this.unwrap(K);let R=Y==="value",z=Y==="statement"&&Array.isArray($)&&$[0]==="object";if(R||z)return`(${D} ${Q} ${K})`;return`${D} ${Q} ${K}`}generatePropertyAccess(F,W,Y,U){let[$,A]=W;this.suppressReactiveUnwrap=!0;let Q=this.generate($,"value");this.suppressReactiveUnwrap=!1;let Z=y.NUMBER_LITERAL_RE.test(Q)||Array.isArray($)&&($[0]==="object"||$[0]==="await"||$[0]==="yield")?`(${Q})`:Q;if(f(A,"await")===!0)return`await ${Z}.${j(A)}()`;if(f(A,"predicate"))return`(${Z}.${j(A)} != null)`;return`${Z}.${j(A)}`}generateOptionalProperty(F,W){let[Y,U]=W;return`${this.generate(Y,"value")}?.${U}`}generateRegexIndex(F,W){let[Y,U,$]=W;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(Y,"value"),Q=this.generate(U,"value"),J=$!==null?this.generate($,"value"):"0",Z=Q.includes("/m")?", true":"";return`(_ = toSearchable(${A}${Z}).match(${Q})) && _[${J}]`}generateIndexAccess(F,W){let[Y,U]=W;if(Array.isArray(U)&&(U[0]===".."||U[0]==="...")){let $=U[0]==="..",A=this.generate(Y,"value"),[Q,J]=U.slice(1);if(Q===null&&J===null)return`${A}.slice()`;if(Q===null){if($&&this.isNegativeOneLiteral(J))return`${A}.slice(0)`;let D=this.generate(J,"value");return $?`${A}.slice(0, +${D} + 1 || 9e9)`:`${A}.slice(0, ${D})`}if(J===null)return`${A}.slice(${this.generate(Q,"value")})`;let Z=this.generate(Q,"value");if($&&this.isNegativeOneLiteral(J))return`${A}.slice(${Z})`;let X=this.generate(J,"value");return $?`${A}.slice(${Z}, +${X} + 1 || 9e9)`:`${A}.slice(${Z}, ${X})`}return`${this.generate(Y,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex(F,W){let[Y,U]=W;return`${this.generate(Y,"value")}?.[${this.generate(U,"value")}]`}generateOptCall(F,W){let[Y,...U]=W;return`${this.generate(Y,"value")}?.(${U.map(($)=>this.generate($,"value")).join(", ")})`}generateDef(F,W,Y,U){let[$,A,Q]=W,J=f($,"await")===!0,Z=j($),X=this.generateParamList(A),D=this.generateFunctionBody(Q,A,J),K=this.containsAwait(Q),M=this.containsYield(Q);return`${K?"async ":""}function${M?"*":""} ${Z}(${X}) ${D}`}generateThinArrow(F,W,Y,U){let[$,A]=W,Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let J=this.generateParamList($),Z=this.generateFunctionBody(A,$,Q),X=this.containsAwait(A),D=this.containsYield(A),K=`${X?"async ":""}function${D?"*":""}(${J}) ${Z}`;return Y==="value"?`(${K})`:K}generateFatArrow(F,W,Y,U){let[$,A]=W,Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let J=this.generateParamList($),X=$.length===1&&typeof $[0]==="string"&&!J.includes("=")&&!J.includes("...")&&!J.includes("[")&&!J.includes("{")?J:`(${J})`,K=this.containsAwait(A)?"async ":"";if(!Q){if(Array.isArray(A)&&A[0]==="block"&&A.length===2){let R=A[1];if(!Array.isArray(R)||R[0]!=="return")return`${K}${X} => ${this.generate(R,"value")}`}if(!Array.isArray(A)||A[0]!=="block")return`${K}${X} => ${this.generate(A,"value")}`}let M=this.generateFunctionBody(A,$,Q);return`${K}${X} => ${M}`}generateReturn(F,W,Y,U){if(W.length===0)return"return";let[$]=W;if(this.sideEffectOnly)return"return";if(Array.isArray($)&&$[0]==="unless"){let[,A,Q]=$,J=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (!${this.generate(A,"value")}) return ${this.generate(J,"value")}`}if(Array.isArray($)&&$[0]==="if"){let[,A,Q,...J]=$;if(J.length===0){let Z=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate(A,"value")}) return ${this.generate(Z,"value")}`}}if(Array.isArray($)&&$[0]==="new"&&Array.isArray($[1])&&$[1][0]==="unless"){let[,A]=$,[,Q,J]=A,Z=Array.isArray(J)&&J.length===1?J[0]:J;return`if (!${this.generate(Q,"value")}) return ${this.generate(["new",Z],"value")}`}return`return ${this.generate($,"value")}`}generateState(F,W){let[Y,U]=W;this.usesReactivity=!0;let $=j(Y)??Y;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add($),`const ${$} = __state(${this.generate(U,"value")})`}generateComputed(F,W){let[Y,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let $=j(Y)??Y;return this.reactiveVars.add($),`const ${$} = __computed(() => ${this.generate(U,"value")})`}generateReadonly(F,W){let[Y,U]=W;return`const ${j(Y)??Y} = ${this.generate(U,"value")}`}generateEffect(F,W){let[Y,U]=W;this.usesReactivity=!0;let $;if(Array.isArray(U)&&U[0]==="block")$=`{
|
|
120
|
+
${this.withIndent(()=>this.formatStatements(U.slice(1))).join(`
|
|
52
121
|
`)}
|
|
53
|
-
${this.indent()}}`;else if(Array.isArray(
|
|
54
|
-
${
|
|
122
|
+
${this.indent()}}`;else if(Array.isArray(U)&&(U[0]==="->"||U[0]==="=>")){let Q=this.generate(U,"value");if(Y)return`const ${j(Y)??this.generate(Y,"value")} = __effect(${Q})`;return`__effect(${Q})`}else $=`{ ${this.generate(U,"value")}; }`;let A=`__effect(() => ${$})`;if(Y)return`const ${j(Y)??this.generate(Y,"value")} = ${A}`;return A}generateBreak(){return"break"}generateBreakIf(F,W){return`if (${this.generate(W[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf(F,W){return`if (${this.generate(W[0],"value")}) continue`}generateExistential(F,W){return`(${this.generate(W[0],"value")} != null)`}generateTernary(F,W){let[Y,U,$]=W;return`(${this.unwrap(this.generate(Y,"value"))} ? ${this.generate(U,"value")} : ${this.generate($,"value")})`}generateLoop(F,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateAwait(F,W){return`await ${this.generate(W[0],"value")}`}generateYield(F,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom(F,W){return`yield* ${this.generate(W[0],"value")}`}generateIf(F,W,Y,U){if(F==="unless"){let[J,Z]=W;if(Array.isArray(Z)&&Z.length===1&&(!Array.isArray(Z[0])||Z[0][0]!=="block"))Z=Z[0];if(Y==="value")return`(!${this.generate(J,"value")} ? ${this.extractExpression(Z)} : undefined)`;let X=this.unwrap(this.generate(J,"value"));if(/[ <>=&|]/.test(X))X=`(${X})`;return`if (!${X}) `+this.generate(Z,"statement")}let[$,A,...Q]=W;return Y==="value"?this.generateIfAsExpression($,A,Q):this.generateIfAsStatement($,A,Q)}generateForIn(F,W,Y,U){let[$,A,Q,J,Z]=W;if(Y==="value"&&this.comprehensionDepth===0){let P=["for-in",$,A,Q];return this.generate(["comprehension",Z,[P],J?[J]:[]],Y)}let X=Array.isArray($)?$:[$],D=X.length===0,[K,M]=D?["_i",null]:X,R=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;if(Q&&Q!==null){let P=this.generate(A,"value"),_=M||"_i",w=this.generate(Q,"value"),H=this.isNegativeStep(Q),E=H&&(Q[1]==="1"||Q[1]===1||j(Q[1])==="1"),T=!H&&(Q==="1"||Q===1||j(Q)==="1"),O;if(E)O=`for (let ${_} = ${P}.length - 1; ${_} >= 0; ${_}--) `;else if(T)O=`for (let ${_} = 0; ${_} < ${P}.length; ${_}++) `;else if(H)O=`for (let ${_} = ${P}.length - 1; ${_} >= 0; ${_} += ${w}) `;else O=`for (let ${_} = 0; ${_} < ${P}.length; ${_} += ${w}) `;if(Array.isArray(Z)&&Z[0]==="block"){let q=Z.slice(1);this.indentLevel++;let B=[];if(!D)B.push(`const ${R} = ${P}[${_}];`);if(J)B.push(`if (${this.generate(J,"value")}) {`),this.indentLevel++,B.push(...this.formatStatements(q)),this.indentLevel--,B.push(this.indent()+"}");else B.push(...q.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,O+`{
|
|
123
|
+
${B.map((I)=>this.indent()+I).join(`
|
|
55
124
|
`)}
|
|
56
|
-
${this.indent()}}`}if(
|
|
57
|
-
`,this.indentLevel++,
|
|
58
|
-
`,
|
|
59
|
-
`,this.indentLevel++,
|
|
125
|
+
${this.indent()}}`}if(D)return J?O+`{ if (${this.generate(J,"value")}) ${this.generate(Z,"statement")}; }`:O+`{ ${this.generate(Z,"statement")}; }`;return J?O+`{ const ${R} = ${P}[${_}]; if (${this.generate(J,"value")}) ${this.generate(Z,"statement")}; }`:O+`{ const ${R} = ${P}[${_}]; ${this.generate(Z,"statement")}; }`}if(M){let P=this.generate(A,"value"),_=`for (let ${M} = 0; ${M} < ${P}.length; ${M}++) `;if(Array.isArray(Z)&&Z[0]==="block"){if(_+=`{
|
|
126
|
+
`,this.indentLevel++,_+=this.indent()+`const ${R} = ${P}[${M}];
|
|
127
|
+
`,J)_+=this.indent()+`if (${this.unwrap(this.generate(J,"value"))}) {
|
|
128
|
+
`,this.indentLevel++,_+=this.formatStatements(Z.slice(1)).join(`
|
|
60
129
|
`)+`
|
|
61
|
-
`,this.indentLevel--,
|
|
62
|
-
`;else
|
|
130
|
+
`,this.indentLevel--,_+=this.indent()+`}
|
|
131
|
+
`;else _+=this.formatStatements(Z.slice(1)).join(`
|
|
63
132
|
`)+`
|
|
64
|
-
`;this.indentLevel--,
|
|
65
|
-
${
|
|
133
|
+
`;this.indentLevel--,_+=this.indent()+"}"}else _+=J?`{ const ${R} = ${P}[${M}]; if (${this.unwrap(this.generate(J,"value"))}) ${this.generate(Z,"statement")}; }`:`{ const ${R} = ${P}[${M}]; ${this.generate(Z,"statement")}; }`;return _}let z=Array.isArray(A)&&A[0];if(z instanceof String)z=j(z);if(z===".."||z==="..."){let P=z==="...",[_,w]=A.slice(1),H=(E)=>typeof E==="number"||typeof E==="string"&&!E.includes("(")||E instanceof String&&!j(E).includes("(")||Array.isArray(E)&&E[0]===".";if(H(_)&&H(w)){let E=this.generate(_,"value"),T=this.generate(w,"value"),O=P?"<":"<=",q=Q?`${R} += ${this.generate(Q,"value")}`:`${R}++`,B=`for (let ${R} = ${E}; ${R} ${O} ${T}; ${q}) `;return B+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),B}}let G=`for (const ${R} of ${this.generate(A,"value")}) `;return G+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),G}generateForOf(F,W,Y,U){let[$,A,Q,J,Z]=W,[X,D]=Array.isArray($)?$:[$],K=this.generate(A,"value"),M=`for (const ${X} in ${K}) `;if(Q&&!D&&!J){if(Array.isArray(Z)&&Z[0]==="block"){this.indentLevel++;let R=[`if (!Object.hasOwn(${K}, ${X})) continue;`,...Z.slice(1).map((z)=>this.addSemicolon(z,this.generate(z,"statement")))];return this.indentLevel--,M+`{
|
|
134
|
+
${R.map((z)=>this.indent()+z).join(`
|
|
66
135
|
`)}
|
|
67
|
-
${this.indent()}}`}return
|
|
68
|
-
${
|
|
136
|
+
${this.indent()}}`}return M+`{ if (!Object.hasOwn(${K}, ${X})) continue; ${this.generate(Z,"statement")}; }`}if(D){if(Array.isArray(Z)&&Z[0]==="block"){let z=Z.slice(1);this.indentLevel++;let G=[];if(Q)G.push(`if (!Object.hasOwn(${K}, ${X})) continue;`);if(G.push(`const ${D} = ${K}[${X}];`),J)G.push(`if (${this.generate(J,"value")}) {`),this.indentLevel++,G.push(...z.map((P)=>this.addSemicolon(P,this.generate(P,"statement")))),this.indentLevel--,G.push(this.indent()+"}");else G.push(...z.map((P)=>this.addSemicolon(P,this.generate(P,"statement"))));return this.indentLevel--,M+`{
|
|
137
|
+
${G.map((P)=>this.indent()+P).join(`
|
|
69
138
|
`)}
|
|
70
|
-
${this.indent()}}`}let
|
|
71
|
-
${
|
|
139
|
+
${this.indent()}}`}let R="";if(Q)R+=`if (!Object.hasOwn(${K}, ${X})) continue; `;if(R+=`const ${D} = ${K}[${X}]; `,J)R+=`if (${this.generate(J,"value")}) `;return R+=`${this.generate(Z,"statement")};`,M+`{ ${R} }`}return M+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),M}generateForAs(F,W,Y,U){let $=Array.isArray(W[0])?W[0]:[W[0]],[A]=$,Q=W[1],J=W[2],Z=W[3],X=W[4],D=!1,K=[];if(Array.isArray(A)&&A[0]==="array"){let P=A.slice(1),_=P.findIndex((w)=>Array.isArray(w)&&w[0]==="..."||w==="...");if(_!==-1&&_<P.length-1){D=!0;let w=P.slice(_+1),H=w.length,E=P.slice(0,_),T=P[_],O=Array.isArray(T)&&T[0]==="..."?T[1]:"_rest",q=E.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),B=q?`${q}, ...${O}`:`...${O}`,I=w.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");K.push(`[${B}] = _item`),K.push(`[${I}] = ${O}.splice(-${H})`),this.helpers.add("slice"),P.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])})}}let M=this.generate(Q,"value"),R=J?"await ":"",z;if(D)z="_item";else if(Array.isArray(A)&&(A[0]==="array"||A[0]==="object"))z=this.generateDestructuringPattern(A);else z=A;let G=`for ${R}(const ${z} of ${M}) `;if(D&&K.length>0){let P=this.unwrapBlock(X),_=this.withIndent(()=>[...K.map((w)=>this.indent()+w+";"),...this.formatStatements(P)]);G+=`{
|
|
140
|
+
${_.join(`
|
|
72
141
|
`)}
|
|
73
|
-
${this.indent()}}`}else
|
|
74
|
-
${this.withIndent(()=>this.formatStatements(
|
|
142
|
+
${this.indent()}}`}else G+=Z?this.generateLoopBodyWithGuard(X,Z):this.generateLoopBody(X);return G}generateWhile(F,W){let Y=W[0],U=W.length===3?W[1]:null,$=W[W.length-1];return`while (${this.unwrap(this.generate(Y,"value"))}) `+(U?this.generateLoopBodyWithGuard($,U):this.generateLoopBody($))}generateUntil(F,W){let[Y,U]=W;return`while (!(${this.unwrap(this.generate(Y,"value"))})) `+this.generateLoopBody(U)}generateRange(F,W){if(F==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[Q,J]=W,Z=this.generate(Q,"value"),X=this.generate(J,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${X})`}let[Y,U]=W,$=this.generate(Y,"value"),A=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${$}, ${A})`}generateNot(F,W){let[Y]=W;if(typeof Y==="string"||Y instanceof String)return`!${this.generate(Y,"value")}`;if(Array.isArray(Y)){if([".","?.","[]","optindex","optcall"].includes(Y[0]))return`!${this.generate(Y,"value")}`}let U=this.generate(Y,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot(F,W){return`(~${this.generate(W[0],"value")})`}generateIncDec(F,W){let[Y,U]=W,$=this.generate(Y,"value");return U?`(${$}${F})`:`(${F}${$})`}generateTypeof(F,W){return`typeof ${this.generate(W[0],"value")}`}generateDelete(F,W){return`(delete ${this.generate(W[0],"value")})`}generateInstanceof(F,W,Y,U){let[$,A]=W,Q=f(U[0],"invert"),J=`(${this.generate($,"value")} instanceof ${this.generate(A,"value")})`;return Q?`(!${J})`:J}generateIn(F,W,Y,U){let[$,A]=W,Q=this.generate($,"value"),J=f(U[0],"invert");if(Array.isArray(A)&&A[0]==="object"){let D=`(${Q} in ${this.generate(A,"value")})`;return J?`(!${D})`:D}let Z=this.generate(A,"value"),X=`(Array.isArray(${Z}) || typeof ${Z} === 'string' ? ${Z}.includes(${Q}) : (${Q} in ${Z}))`;return J?`(!${X})`:X}generateOf(F,W,Y,U){let[$,A]=W,Q=this.generate($,"value"),J=this.generate(A,"value"),Z=f(U[0],"invert"),X=`(${Q} in ${J})`;return Z?`(!${X})`:X}generateRegexMatch(F,W){let[Y,U]=W;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(U,"value"),A=$.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(Y,"value")}${A}).match(${$}))`}generateNew(F,W){let[Y]=W;if(Array.isArray(Y)&&(Y[0]==="."||Y[0]==="?.")){let[U,$,A]=Y;if(Array.isArray($)&&!$[0].startsWith)return`(${this.generate(["new",$],"value")}).${A}`;return`new ${this.generate($,"value")}.${A}`}if(Array.isArray(Y)){let[U,...$]=Y;return`new ${this.generate(U,"value")}(${$.map((A)=>this.unwrap(this.generate(A,"value"))).join(", ")})`}return`new ${this.generate(Y,"value")}()`}generateLogicalAnd(F,W,Y,U){let $=this.flattenBinaryChain(U).slice(1);if($.length===0)return"true";if($.length===1)return this.generate($[0],"value");return`(${$.map((A)=>this.generate(A,"value")).join(" && ")})`}generateLogicalOr(F,W,Y,U){let $=this.flattenBinaryChain(U).slice(1);if($.length===0)return"true";if($.length===1)return this.generate($[0],"value");return`(${$.map((A)=>this.generate(A,"value")).join(" || ")})`}generateArray(F,W){let Y=W.length>0&&W[W.length-1]===",",U=W.map(($)=>{if($===",")return"";if($==="...")return"";if(Array.isArray($)&&$[0]==="...")return`...${this.generate($[1],"value")}`;return this.generate($,"value")}).join(", ");return Y?`[${U},]`:`[${U}]`}generateObject(F,W,Y){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[$,A]=W[0],[,Q,J,Z]=A;return this.generate(["object-comprehension",$,Q,J,Z],Y)}return`{${W.map(($)=>{if(Array.isArray($)&&$[0]==="...")return`...${this.generate($[1],"value")}`;let[A,Q,J]=$,Z;if(Array.isArray(A)&&A[0]==="dynamicKey")Z=`[${this.generate(A[1],"value")}]`;else if(Array.isArray(A)&&A[0]==="str")Z=`[${this.generate(A,"value")}]`;else Z=this.generate(A,"value");let X=this.generate(Q,"value");if(J==="=")return`${Z} = ${X}`;if(J===":")return`${Z}: ${X}`;if(Z===X&&!Array.isArray(A))return Z;return`${Z}: ${X}`}).join(", ")}}`}generateBlock(F,W,Y){if(Y==="statement")return`{
|
|
143
|
+
${this.withIndent(()=>this.formatStatements(W)).join(`
|
|
75
144
|
`)}
|
|
76
|
-
${this.indent()}}`;if(
|
|
77
|
-
${this.withIndent(()
|
|
145
|
+
${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],Y);let U=W[W.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let A=W.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement")));return`{
|
|
146
|
+
${this.withIndent(()=>A.map((Q)=>this.indent()+Q).join(`
|
|
78
147
|
`))}
|
|
79
|
-
${this.indent()}}`}return`(${
|
|
80
|
-
${this.indent()} ${
|
|
81
|
-
${this.indent()}}`:`if (${
|
|
82
|
-
${this.indent()} ${
|
|
83
|
-
${this.indent()}}`}}let
|
|
84
|
-
`;this.indentLevel++;for(let
|
|
85
|
-
`}this.indentLevel++,
|
|
86
|
-
`,this.indentLevel++,
|
|
87
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
88
|
-
`;for(let
|
|
89
|
-
`,this.indentLevel++}else{let q=this.generate(
|
|
90
|
-
`:this.indent()+`for (let ${
|
|
91
|
-
`,this.indentLevel++,!
|
|
92
|
-
`}}else if(
|
|
93
|
-
`,this.indentLevel++,
|
|
94
|
-
`}else
|
|
95
|
-
`,this.indentLevel++}else if(
|
|
96
|
-
`,this.indentLevel++,
|
|
97
|
-
`;if(
|
|
98
|
-
`}else if(
|
|
99
|
-
`,this.indentLevel++}}for(let
|
|
100
|
-
`,this.indentLevel++;let
|
|
101
|
-
`;else if(Array.isArray(
|
|
102
|
-
`;else
|
|
103
|
-
`}else if(
|
|
104
|
-
`;else if(Array.isArray(
|
|
105
|
-
`;else
|
|
106
|
-
`;for(let
|
|
107
|
-
`;for(let
|
|
108
|
-
`;return
|
|
109
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
110
|
-
`;this.indentLevel++,
|
|
111
|
-
`;for(let
|
|
112
|
-
`,this.indentLevel++,J
|
|
113
|
-
`;if(
|
|
114
|
-
`}}for(let
|
|
115
|
-
`,this.indentLevel++;
|
|
116
|
-
`;for(let
|
|
117
|
-
`;for(let
|
|
118
|
-
`;return
|
|
119
|
-
`,this.indentLevel--,
|
|
120
|
-
|
|
121
|
-
`}else if(
|
|
122
|
-
`;else
|
|
123
|
-
`}this.indentLevel--}else if(
|
|
124
|
-
`}else if(
|
|
125
|
-
`;else
|
|
126
|
-
`}for(let
|
|
127
|
-
`}else
|
|
128
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
129
|
-
`;else
|
|
130
|
-
`;this.indentLevel--}}}return
|
|
131
|
-
export default ${
|
|
132
|
-
`;if(
|
|
133
|
-
`;let
|
|
134
|
-
`;return}if(
|
|
135
|
-
`;return}}}let q
|
|
136
|
-
`;else
|
|
137
|
-
`})};if(
|
|
138
|
-
`;else
|
|
139
|
-
`;for(let
|
|
140
|
-
`;
|
|
141
|
-
`;
|
|
142
|
-
`}return this.indentLevel--,
|
|
143
|
-
${this.withIndent(()=>
|
|
148
|
+
${this.indent()}}`}return`(${W.map((A)=>this.generate(A,"value")).join(", ")})`}generateTry(F,W,Y){let U=Y==="value",$="try ",A=W[0];if($+=U&&Array.isArray(A)&&A[0]==="block"?this.generateBlockWithReturns(A):this.generate(A,"statement"),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[Q,J]=W[1];if($+=" catch",Q&&Array.isArray(Q)&&(Q[0]==="object"||Q[0]==="array")){$+=" (error)";let Z=`(${this.generate(Q,"value")} = error)`;J=Array.isArray(J)&&J[0]==="block"?["block",Z,...J.slice(1)]:["block",Z,J]}else if(Q)$+=` (${Q})`;$+=" "+(U&&Array.isArray(J)&&J[0]==="block"?this.generateBlockWithReturns(J):this.generate(J,"statement"))}else if(W.length===2)$+=" finally "+this.generate(W[1],"statement");if(W.length===3)$+=" finally "+this.generate(W[2],"statement");if(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${$} })()`;return $}generateThrow(F,W,Y){let[U]=W;if(Array.isArray(U)){let A=U,Q=null;if(U[0]==="new"&&Array.isArray(U[1])&&(U[1][0]==="if"||U[1][0]==="unless"))Q="new",A=U[1];else if(U[0]==="if"||U[0]==="unless")A=U;if(A[0]==="if"||A[0]==="unless"){let[J,Z,X]=A,D=Array.isArray(X)&&X.length===1?X[0]:X;U=Q==="new"?["new",D]:D;let K=this.generate(Z,"value"),M=`throw ${this.generate(U,"value")}`;return J==="unless"?`if (!(${K})) {
|
|
149
|
+
${this.indent()} ${M};
|
|
150
|
+
${this.indent()}}`:`if (${K}) {
|
|
151
|
+
${this.indent()} ${M};
|
|
152
|
+
${this.indent()}}`}}let $=`throw ${this.generate(U,"value")}`;return Y==="value"?`(() => { ${$}; })()`:$}generateControl(F,W,Y){let[U,$,A]=W,Q=j(U),J=A[0]==="return",Z=this.generate($,"value"),X=A.length>1?A[1]:null,D=J?X?`return ${this.generate(X,"value")}`:"return":X?`throw ${this.generate(X,"value")}`:"throw new Error()",K=this.wrapForCondition(Z);if(Y==="value"){if(Q==="??")return`(() => { const __v = ${Z}; if (__v == null) ${D}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${Z}; if (!__v) ${D}; return __v; })()`;return`(() => { const __v = ${Z}; if (__v) ${D}; return __v; })()`}if(Q==="??")return`if (${K} == null) ${D}`;if(Q==="||")return`if (!${K}) ${D}`;return`if (${K}) ${D}`}generateSwitch(F,W,Y){let[U,$,A]=W;if(U===null)return this.generateSwitchAsIfChain($,A,Y);let Q=`switch (${this.generate(U,"value")}) {
|
|
153
|
+
`;this.indentLevel++;for(let J of $){let[,Z,X]=J;for(let D of Z){let K=j(D)??D,M;if(Array.isArray(K))M=this.generate(K,"value");else if(typeof K==="string"&&(K.startsWith('"')||K.startsWith("'")))M=`'${K.slice(1,-1)}'`;else M=this.generate(K,"value");Q+=this.indent()+`case ${M}:
|
|
154
|
+
`}this.indentLevel++,Q+=this.generateSwitchCaseBody(X,Y),this.indentLevel--}if(A)Q+=this.indent()+`default:
|
|
155
|
+
`,this.indentLevel++,Q+=this.generateSwitchCaseBody(A,Y),this.indentLevel--;if(this.indentLevel--,Q+=this.indent()+"}",Y==="value")return`(${$.some((Z)=>this.containsAwait(Z[2]))||A&&this.containsAwait(A)?"async ":""}() => { ${Q} })()`;return Q}generateWhen(){throw Error("when clause should be handled by switch")}generateComprehension(F,W,Y){let[U,$,A]=W;if(Y==="statement")return this.generateComprehensionAsLoop(U,$,A);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,$,A,this.comprehensionTarget);let J=`(${this.containsAwait(U)?"async ":""}() => {
|
|
156
|
+
`;this.indentLevel++,this.comprehensionDepth++,J+=this.indent()+`const result = [];
|
|
157
|
+
`;for(let D of $){let[K,M,R,z]=D;if(K==="for-in"){let G=z,P=Array.isArray(M)?M:[M],_=P.length===0,[w,H]=_?["_i",null]:P,E=Array.isArray(w)&&(w[0]==="array"||w[0]==="object")?this.generateDestructuringPattern(w):w;if(G&&G!==null){let T=Array.isArray(R)&&R[0];if(T instanceof String)T=j(T);if(T===".."||T==="..."){let q=T==="...",[B,I]=R.slice(1),N=this.generate(B,"value"),S=this.generate(I,"value"),u=this.generate(G,"value");J+=this.indent()+`for (let ${E} = ${N}; ${E} ${q?"<":"<="} ${S}; ${E} += ${u}) {
|
|
158
|
+
`,this.indentLevel++}else{let q=this.generate(R,"value"),B=H||"_i",I=this.generate(G,"value"),N=this.isNegativeStep(G);if(J+=N?this.indent()+`for (let ${B} = ${q}.length - 1; ${B} >= 0; ${B} += ${I}) {
|
|
159
|
+
`:this.indent()+`for (let ${B} = 0; ${B} < ${q}.length; ${B} += ${I}) {
|
|
160
|
+
`,this.indentLevel++,!_)J+=this.indent()+`const ${E} = ${q}[${B}];
|
|
161
|
+
`}}else if(H){let T=this.generate(R,"value");J+=this.indent()+`for (let ${H} = 0; ${H} < ${T}.length; ${H}++) {
|
|
162
|
+
`,this.indentLevel++,J+=this.indent()+`const ${E} = ${T}[${H}];
|
|
163
|
+
`}else J+=this.indent()+`for (const ${E} of ${this.generate(R,"value")}) {
|
|
164
|
+
`,this.indentLevel++}else if(K==="for-of"){let G=z,P=Array.isArray(M)?M:[M],[_,w]=P,H=Array.isArray(_)&&(_[0]==="array"||_[0]==="object")?this.generateDestructuringPattern(_):_,E=this.generate(R,"value");if(J+=this.indent()+`for (const ${H} in ${E}) {
|
|
165
|
+
`,this.indentLevel++,G)J+=this.indent()+`if (!Object.hasOwn(${E}, ${H})) continue;
|
|
166
|
+
`;if(w)J+=this.indent()+`const ${w} = ${E}[${H}];
|
|
167
|
+
`}else if(K==="for-as"){let G=D[3],P=Array.isArray(M)?M:[M],[_]=P,w=Array.isArray(_)&&(_[0]==="array"||_[0]==="object")?this.generateDestructuringPattern(_):_;J+=this.indent()+`for ${G?"await ":""}(const ${w} of ${this.generate(R,"value")}) {
|
|
168
|
+
`,this.indentLevel++}}for(let D of A)J+=this.indent()+`if (${this.generate(D,"value")}) {
|
|
169
|
+
`,this.indentLevel++;let Z=(D)=>{if(typeof D==="string"&&(D==="break"||D==="continue"))return!0;if(!Array.isArray(D))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(D[0]))return!0;if(D[0]==="if"||D[0]==="unless")return D.slice(1).some(Z);return D.some(Z)},X=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(U)&&U[0]==="block")for(let D=0;D<U.length-1;D++){let K=U[D+1];if(D!==U.length-2||Z(K))J+=this.indent()+this.generate(K,"statement")+`;
|
|
170
|
+
`;else if(Array.isArray(K)&&X.includes(K[0]))J+=this.indent()+this.generate(K,"statement")+`;
|
|
171
|
+
`;else J+=this.indent()+`result.push(${this.generate(K,"value")});
|
|
172
|
+
`}else if(Z(U))J+=this.indent()+this.generate(U,"statement")+`;
|
|
173
|
+
`;else if(Array.isArray(U)&&X.includes(U[0]))J+=this.indent()+this.generate(U,"statement")+`;
|
|
174
|
+
`;else J+=this.indent()+`result.push(${this.generate(U,"value")});
|
|
175
|
+
`;for(let D=0;D<A.length;D++)this.indentLevel--,J+=this.indent()+`}
|
|
176
|
+
`;for(let D=0;D<$.length;D++)this.indentLevel--,J+=this.indent()+`}
|
|
177
|
+
`;return J+=this.indent()+`return result;
|
|
178
|
+
`,this.indentLevel--,this.comprehensionDepth--,J+=this.indent()+"})()",J}generateObjectComprehension(F,W,Y){let[U,$,A,Q]=W,J=`(() => {
|
|
179
|
+
`;this.indentLevel++,J+=this.indent()+`const result = {};
|
|
180
|
+
`;for(let Z of A){let[X,D,K,M]=Z;if(X==="for-of"){let[R,z]=D,G=this.generate(K,"value");if(J+=this.indent()+`for (const ${R} in ${G}) {
|
|
181
|
+
`,this.indentLevel++,M)J+=this.indent()+`if (!Object.hasOwn(${G}, ${R})) continue;
|
|
182
|
+
`;if(z)J+=this.indent()+`const ${z} = ${G}[${R}];
|
|
183
|
+
`}}for(let Z of Q)J+=this.indent()+`if (${this.generate(Z,"value")}) {
|
|
184
|
+
`,this.indentLevel++;J+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate($,"value")};
|
|
185
|
+
`;for(let Z=0;Z<Q.length;Z++)this.indentLevel--,J+=this.indent()+`}
|
|
186
|
+
`;for(let Z=0;Z<A.length;Z++)this.indentLevel--,J+=this.indent()+`}
|
|
187
|
+
`;return J+=this.indent()+`return result;
|
|
188
|
+
`,this.indentLevel--,J+=this.indent()+"})()",J}generateClass(F,W,Y){let[U,$,...A]=W,Q=U?`class ${U}`:"class";if($)Q+=` extends ${this.generate($,"value")}`;if(Q+=` {
|
|
189
|
+
`,A.length>0&&Array.isArray(A[0])){let J=A[0];if(J[0]==="block"){let Z=J.slice(1),X=Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="object";if(X&&Z.length===1){let D=Z[0].slice(1);this.indentLevel++;let K=[];for(let[M,R]of D){let z=this.isStaticMember(M),G=this.isComputedMember(M),P=this.extractMemberName(M);if(this.isBoundMethod(R)&&!z&&!G&&P!=="constructor")K.push(P)}for(let[M,R]of D){let z=this.isStaticMember(M),G=this.isComputedMember(M),P=this.extractMemberName(M);if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,_,w]=R,H=this.containsAwait(w),E=this.containsYield(w),T=_,O=[];if(P==="constructor"){T=_.map((I)=>{if(Array.isArray(I)&&I[0]==="."&&I[1]==="this")return O.push(`this.${I[2]} = ${I[2]}`),I[2];return I});for(let I of K)O.unshift(`this.${I} = this.${I}.bind(this)`)}let q=this.generateParamList(T),B=(z?"static ":"")+(H?"async ":"")+(E?"*":"");if(Q+=this.indent()+`${B}${P}(${q}) `,!G)this.currentMethodName=P;Q+=this.generateMethodBody(w,O,P==="constructor",T),this.currentMethodName=null,Q+=`
|
|
190
|
+
`}else if(z)Q+=this.indent()+`static ${P} = ${this.generate(R,"value")};
|
|
191
|
+
`;else Q+=this.indent()+`${P} = ${this.generate(R,"value")};
|
|
192
|
+
`}this.indentLevel--}else if(X){let D=Z[0].slice(1),K=Z.slice(1);this.indentLevel++;for(let[M,R]of D){let z=this.isStaticMember(M),G=this.extractMemberName(M);if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,P,_]=R,w=this.generateParamList(P),H=(z?"static ":"")+(this.containsAwait(_)?"async ":"")+(this.containsYield(_)?"*":"");Q+=this.indent()+`${H}${G}(${w}) `,this.currentMethodName=G,Q+=this.generateMethodBody(_,[],G==="constructor",P),this.currentMethodName=null,Q+=`
|
|
193
|
+
`}else if(z)Q+=this.indent()+`static ${G} = ${this.generate(R,"value")};
|
|
194
|
+
`;else Q+=this.indent()+`${G} = ${this.generate(R,"value")};
|
|
195
|
+
`}for(let M of K)if(Array.isArray(M)&&M[0]==="class"){let[,R,z,...G]=M;if(Array.isArray(R)&&R[0]==="."&&R[1]==="this")Q+=this.indent()+`static ${R[2]} = ${this.generate(["class",null,z,...G],"value")};
|
|
196
|
+
`}else Q+=this.indent()+this.generate(M,"statement")+`;
|
|
197
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let D of Z)if(Array.isArray(D)&&D[0]==="="&&Array.isArray(D[1])&&D[1][0]==="."&&D[1][1]==="this")Q+=this.indent()+`static ${D[1][2]} = ${this.generate(D[2],"value")};
|
|
198
|
+
`;else Q+=this.indent()+this.generate(D,"statement")+`;
|
|
199
|
+
`;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(F,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Y=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Y})`;return`super(${Y})`}generateImport(F,W,Y,U){if(W.length===1){let J=`import(${this.generate(W[0],"value")})`;if(f(U[0],"await")===!0)return`(await ${J})`;return J}let[$,A]=W,Q=this.addJsExtensionAndAssertions(A);if(typeof $==="string")return`import ${$} from ${Q}`;if(Array.isArray($)){if($[0]==="*"&&$.length===2)return`import * as ${$[1]} from ${Q}`;if(typeof $[0]==="string"&&Array.isArray($[1])){let Z=$[0],X=$[1];if(X[0]==="*"&&X.length===2)return`import ${Z}, * as ${X[1]} from ${Q}`;let D=(Array.isArray(X)?X:[X]).map((K)=>Array.isArray(K)&&K.length===2?`${K[0]} as ${K[1]}`:K).join(", ");return`import ${Z}, { ${D} } from ${Q}`}return`import { ${$.map((Z)=>Array.isArray(Z)&&Z.length===2?`${Z[0]} as ${Z[1]}`:Z).join(", ")} } from ${Q}`}return`import ${this.generate($,"value")} from ${Q}`}generateExport(F,W){let[Y]=W;if(Array.isArray(Y)&&Y.every((U)=>typeof U==="string"))return`export { ${Y.join(", ")} }`;if(Array.isArray(Y)&&Y[0]==="=")return`export const ${Y[1]} = ${this.generate(Y[2],"value")}`;return`export ${this.generate(Y,"statement")}`}generateExportDefault(F,W){let[Y]=W;if(Array.isArray(Y)&&Y[0]==="=")return`const ${Y[1]} = ${this.generate(Y[2],"value")};
|
|
200
|
+
export default ${Y[1]}`;return`export default ${this.generate(Y,"statement")}`}generateExportAll(F,W){return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom(F,W){let[Y,U]=W,$=this.addJsExtensionAndAssertions(U);if(Array.isArray(Y))return`export { ${Y.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${$}`;return`export ${Y} from ${$}`}generateDoIIFE(F,W){return`(${this.generate(W[0],"statement")})()`}generateRegex(F,W){return W.length===0?F:this.generate(W[0],"value")}generateTaggedTemplate(F,W){let[Y,U]=W,$=this.generate(Y,"value"),A=this.generate(U,"value");if(A.startsWith("`"))return`${$}${A}`;if(A.startsWith('"')||A.startsWith("'"))return`${$}\`${A.slice(1,-1)}\``;return`${$}\`${A}\``}generateString(F,W){let Y="`";for(let U of W)if(U instanceof String)Y+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);Y+=U.slice(1,-1)}else Y+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let $=U[0];Y+=/^[\d"']/.test($)?"${"+this.generate($,"value")+"}":"${"+$+"}"}else{let $=U.length===1&&Array.isArray(U[0])?U[0]:U;Y+="${"+this.generate($,"value")+"}"}return Y+"`"}findPostfixConditional(F){if(!Array.isArray(F))return null;let W=F[0];if((W==="unless"||W==="if")&&F.length===3)return{type:W,condition:F[1],value:F[2]};if(W==="+"||W==="-"||W==="*"||W==="/")for(let Y=1;Y<F.length;Y++){let U=this.findPostfixConditional(F[Y]);if(U)return U.parentOp=W,U.operandIndex=Y,U.otherOperands=F.slice(1).filter(($,A)=>A!==Y-1),U}return null}rebuildWithoutConditional(F){let W=Array.isArray(F.value)&&F.value.length===1?F.value[0]:F.value;if(F.parentOp)return[F.parentOp,...F.otherOperands,W];return W}generateDestructuringPattern(F){return this.formatParam(F)}generateParamList(F){let W=F.findIndex((U)=>Array.isArray(U)&&U[0]==="expansion");if(W!==-1){let U=F.slice(0,W),$=F.slice(W+1),A=U.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=$,A?`${A}, ..._rest`:"..._rest"}let Y=F.findIndex((U)=>Array.isArray(U)&&U[0]==="rest");if(Y!==-1&&Y<F.length-1){let U=F.slice(0,Y),$=F[Y],A=F.slice(Y+1),Q=U.map((J)=>this.formatParam(J));return this.restMiddleParam={restName:$[1],afterParams:A,beforeCount:U.length},Q.length>0?`${Q.join(", ")}, ...${$[1]}`:`...${$[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,F.map((U)=>this.formatParam(U)).join(", ")}formatParam(F){if(typeof F==="string")return F;if(Array.isArray(F)&&F[0]==="rest")return`...${F[1]}`;if(Array.isArray(F)&&F[0]==="default")return`${F[1]} = ${this.generate(F[2],"value")}`;if(Array.isArray(F)&&F[0]==="."&&F[1]==="this")return F[2];if(Array.isArray(F)&&F[0]==="array")return`[${F.slice(1).map((Y)=>{if(Y===",")return"";if(Y==="...")return"";if(Array.isArray(Y)&&Y[0]==="...")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="="&&typeof Y[1]==="string")return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(typeof Y==="string")return Y;return this.formatParam(Y)}).join(", ")}]`;if(Array.isArray(F)&&F[0]==="object")return`{${F.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y[0]==="...")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="default")return`${Y[1]} = ${this.generate(Y[2],"value")}`;let[U,$]=Y;if(U===$)return U;return`${U}: ${$}`}).join(", ")}}`;return JSON.stringify(F)}generateBodyWithReturns(F,W=[],Y={}){let{sideEffectOnly:U=!1,autoAssignments:$=[],isConstructor:A=!1,hasExpansionParams:Q=!1}=Y,J=this.sideEffectOnly;this.sideEffectOnly=U;let Z=new Set,X=(z)=>{if(typeof z==="string")Z.add(z);else if(Array.isArray(z)){if(z[0]==="rest"||z[0]==="..."){if(typeof z[1]==="string")Z.add(z[1])}else if(z[0]==="default"){if(typeof z[1]==="string")Z.add(z[1])}else if(z[0]==="array"||z[0]==="object")this.collectVarsFromArray(z,Z)}};if(Array.isArray(W))W.forEach(X);let D=this.collectFunctionVariables(F),K=new Set([...D].filter((z)=>!this.programVars.has(z)&&!this.reactiveVars?.has(z)&&!Z.has(z))),M=["return","throw","break","continue"],R=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(F)&&F[0]==="block"){let z=this.unwrapBlock(F);if(Q&&this.expansionAfterParams?.length>0)z=[...this.expansionAfterParams.map((H,E)=>{return`const ${typeof H==="string"?H:JSON.stringify(H)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...z],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:w,afterParams:H}=this.restMiddleParam,E=H.length,T=[];if(H.forEach((O,q)=>{let B=typeof O==="string"?O:Array.isArray(O)&&O[0]==="default"?O[1]:JSON.stringify(O);T.push(`const ${B} = ${w}[${w}.length - ${E-q}]`)}),E>0)T.push(`${w} = ${w}.slice(0, -${E})`);z=[...T,...z],this.restMiddleParam=null}this.indentLevel++;let G=`{
|
|
201
|
+
`;if(K.size>0)G+=this.indent()+`let ${Array.from(K).sort().join(", ")};
|
|
202
|
+
`;let P=$.length>0&&z.length>0&&Array.isArray(z[0])&&z[0][0]==="super",_=(w)=>{w.forEach((H,E)=>{let T=E===w.length-1,O=Array.isArray(H)?H[0]:null;if(!T&&O==="comprehension"){let[,N,S,u]=H;G+=this.indent()+this.generateComprehensionAsLoop(N,S,u)+`
|
|
203
|
+
`;return}if(!A&&!U&&T&&(O==="if"||O==="unless")){let[N,S,...u]=H.slice(1),L=(C)=>Array.isArray(C)&&C[0]==="block"&&C.length>2;if(L(S)||u.some(L)){G+=this.generateIfElseWithEarlyReturns(H);return}}if(!A&&!U&&T&&O==="="){let[N,S]=H.slice(1);if(typeof N==="string"&&Array.isArray(S)){let u=S[0];if(u==="comprehension"||u==="for-in"){this.comprehensionTarget=N,G+=this.generate(S,"value"),this.comprehensionTarget=null,G+=this.indent()+`return ${N};
|
|
204
|
+
`;return}}}let q=!A&&!U&&T&&!M.includes(O)&&!R.includes(O)&&!this.hasExplicitControlFlow(H),B=q?"value":"statement",I=this.generate(H,B);if(q)G+=this.indent()+"return "+I+`;
|
|
205
|
+
`;else G+=this.indent()+this.addSemicolon(H,I)+`
|
|
206
|
+
`})};if(P){if(z.length===1&&!A)G+=this.indent()+"return "+this.generate(z[0],"value")+`;
|
|
207
|
+
`;else G+=this.indent()+this.generate(z[0],"statement")+`;
|
|
208
|
+
`;for(let H of $)G+=this.indent()+H+`;
|
|
209
|
+
`;_(z.slice(1))}else{for(let w of $)G+=this.indent()+w+`;
|
|
210
|
+
`;_(z)}if(U&&z.length>0){let w=Array.isArray(z[z.length-1])?z[z.length-1][0]:null;if(!M.includes(w))G+=this.indent()+`return;
|
|
211
|
+
`}return this.indentLevel--,G+=this.indent()+"}",this.sideEffectOnly=J,G}if(this.sideEffectOnly=J,A||this.hasExplicitControlFlow(F))return`{ ${this.generate(F,"statement")}; }`;if(Array.isArray(F)&&(M.includes(F[0])||R.includes(F[0])))return`{ ${this.generate(F,"statement")}; }`;if(U)return`{ ${this.generate(F,"statement")}; return; }`;return`{ return ${this.generate(F,"value")}; }`}generateFunctionBody(F,W=[],Y=!1){return this.generateBodyWithReturns(F,W,{sideEffectOnly:Y,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(F,W=[],Y=!1,U=[]){return this.generateBodyWithReturns(F,U,{autoAssignments:W,isConstructor:Y})}generateBlockWithReturns(F){if(!Array.isArray(F)||F[0]!=="block")return this.generate(F,"statement");let W=this.unwrapBlock(F);return`{
|
|
212
|
+
${this.withIndent(()=>W.map((U,$)=>{let A=$===W.length-1,Q=Array.isArray(U)?U[0]:null,J=A&&!["return","throw","break","continue"].includes(Q),Z=this.generate(U,J?"value":"statement");return J?this.indent()+"return "+Z+";":this.indent()+Z+";"})).join(`
|
|
144
213
|
`)}
|
|
145
|
-
${this.indent()}}`}generateLoopBody(F){if(!Array.isArray(F))return`{ ${this.generate(F,"statement")}; }`;if(F[0]==="block"||Array.isArray(F[0])){let
|
|
146
|
-
${this.withIndent(()=>
|
|
214
|
+
${this.indent()}}`}generateLoopBody(F){if(!Array.isArray(F))return`{ ${this.generate(F,"statement")}; }`;if(F[0]==="block"||Array.isArray(F[0])){let W=F[0]==="block"?F.slice(1):F;return`{
|
|
215
|
+
${this.withIndent(()=>W.map((U)=>{if(Array.isArray(U)&&U[0]==="comprehension"){let[,$,A,Q]=U;return this.indent()+this.generateComprehensionAsLoop($,A,Q)}return this.indent()+this.addSemicolon(U,this.generate(U,"statement"))})).join(`
|
|
147
216
|
`)}
|
|
148
|
-
${this.indent()}}`}return`{ ${this.generate(F,"statement")}; }`}generateLoopBodyWithGuard(F,
|
|
149
|
-
`,
|
|
150
|
-
${
|
|
217
|
+
${this.indent()}}`}return`{ ${this.generate(F,"statement")}; }`}generateLoopBodyWithGuard(F,W){let Y=this.unwrap(this.generate(W,"value"));if(!Array.isArray(F))return`{ if (${Y}) ${this.generate(F,"statement")}; }`;if(F[0]==="block"||Array.isArray(F[0])){let U=F[0]==="block"?F.slice(1):F,$=this.withIndent(()=>this.indent()),A=`if (${Y}) {
|
|
218
|
+
`,Q=this.withIndent(()=>{this.indentLevel++;let Z=this.formatStatements(U);return this.indentLevel--,Z}),J=this.withIndent(()=>this.indent()+"}");return`{
|
|
219
|
+
${$}${A}${Q.join(`
|
|
151
220
|
`)}
|
|
152
|
-
${
|
|
153
|
-
${this.indent()}}`}return`{ if (${this.generate(
|
|
154
|
-
`;let
|
|
155
|
-
`}else{let
|
|
156
|
-
`:this.indent()+`for (let ${
|
|
157
|
-
`,this.indentLevel++,!
|
|
158
|
-
`}}else
|
|
159
|
-
`;if(this.indentLevel++,
|
|
160
|
-
`,this.indentLevel++;if(
|
|
161
|
-
`,
|
|
162
|
-
`;return this.indentLevel
|
|
163
|
-
|
|
164
|
-
`}generateComprehensionAsLoop(F,
|
|
165
|
-
`,this.indentLevel++,!
|
|
166
|
-
`}if(
|
|
167
|
-
`,this.indentLevel++,
|
|
168
|
-
`,this.indentLevel++,
|
|
169
|
-
`,this.indentLevel--,
|
|
170
|
-
`,this.indentLevel--,
|
|
171
|
-
`,this.indentLevel++,
|
|
172
|
-
`,this.indentLevel--,
|
|
173
|
-
`+this.indent()+"}";return
|
|
174
|
-
`,this.indentLevel++,
|
|
175
|
-
`}else{if(
|
|
176
|
-
`,this.indentLevel++,
|
|
177
|
-
`,this.indentLevel++,
|
|
178
|
-
`,this.indentLevel--,
|
|
179
|
-
`,this.indentLevel--,
|
|
180
|
-
`,this.indentLevel++,
|
|
181
|
-
`,this.indentLevel--,
|
|
182
|
-
`,this.indentLevel++,
|
|
183
|
-
`,this.indentLevel--,
|
|
184
|
-
`;else Y+=this.indent()+this.generate(F,"statement")+`;
|
|
185
|
-
`;return this.indentLevel--,Y+=this.indent()+"}",Y}if(A==="for-as"){let D=Array.isArray($)?$:[$],[Z]=D,Q=Array.isArray(Z)&&(Z[0]==="array"||Z[0]==="object")?this.generateDestructuringPattern(Z):Z;if(Y+=`for (const ${Q} of ${this.generate(W,"value")}) `,U?.length)Y+=`{
|
|
186
|
-
`,this.indentLevel++,Y+=this.indent()+`if (${U.map((X)=>this.generate(X,"value")).join(" && ")}) {
|
|
187
|
-
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
188
|
-
`,this.indentLevel--,Y+=this.indent()+`}
|
|
189
|
-
`,this.indentLevel--,Y+=this.indent()+"}";else Y+=`{
|
|
190
|
-
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
191
|
-
`,this.indentLevel--,Y+=this.indent()+"}";return Y}if(A==="for-of"){let D=Array.isArray($)?$:[$],[Z,Q]=D,X=M,J=this.generate(W,"value");if(Y+=`for (const ${Z} in ${J}) {
|
|
192
|
-
`,this.indentLevel++,X&&!Q&&!U?.length)Y+=this.indent()+`if (!Object.hasOwn(${J}, ${Z})) continue;
|
|
193
|
-
`,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
194
|
-
`;else if(X&&Q&&U?.length)Y+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
|
|
195
|
-
`,this.indentLevel++,Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
196
|
-
`,Y+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
197
|
-
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
198
|
-
`,this.indentLevel--,Y+=this.indent()+`}
|
|
199
|
-
`,this.indentLevel--,Y+=this.indent()+`}
|
|
200
|
-
`;else if(X&&Q)Y+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
|
|
201
|
-
`,this.indentLevel++,Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
202
|
-
`,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
203
|
-
`,this.indentLevel--,Y+=this.indent()+`}
|
|
204
|
-
`;else if(Q&&U?.length)Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
205
|
-
`,Y+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
206
|
-
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
207
|
-
`,this.indentLevel--,Y+=this.indent()+`}
|
|
208
|
-
`;else if(Q)Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
209
|
-
`,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
210
|
-
`;else if(U?.length)Y+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
211
|
-
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
212
|
-
`,this.indentLevel--,Y+=this.indent()+`}
|
|
213
|
-
`;else Y+=this.indent()+this.generate(F,"statement")+`;
|
|
214
|
-
`;return this.indentLevel--,Y+=this.indent()+"}",Y}}return this.generate(["comprehension",F,T,U],"value")}generateIfElseWithEarlyReturns(F){let[T,U,Y,...A]=F,$="",W=T==="unless"?`!${this.generate(U,"value")}`:this.generate(U,"value");$+=this.indent()+`if (${W}) {
|
|
215
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(Y)),$+=this.indent()+"}";for(let M of A)if($+=" else ",Array.isArray(M)&&M[0]==="if"){let[,D,Z,...Q]=M;$+=`if (${this.generate(D,"value")}) {
|
|
216
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(Z)),$+=this.indent()+"}";for(let X of Q)$+=` else {
|
|
217
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(X)),$+=this.indent()+"}"}else $+=`{
|
|
218
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(M)),$+=this.indent()+"}";return $}generateBranchWithReturn(F){let T=this.unwrapBlock(F),U="";for(let Y=0;Y<T.length;Y++){let A=Y===T.length-1,$=T[Y],W=Array.isArray($)?$[0]:null;if(A&&!(W==="return"||W==="throw"||W==="break"||W==="continue"))U+=this.indent()+`return ${this.generate($,"value")};
|
|
219
|
-
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
220
|
-
`}return U}generateIfAsExpression(F,T,U){if(this.isMultiStatementBlock(T)||this.hasStatementInBranch(T)||U.some((M)=>this.isMultiStatementBlock(M)||this.hasStatementInBranch(M)||this.hasNestedMultiStatement(M))){let M=this.containsAwait(F)||this.containsAwait(T)||U.some((Z)=>this.containsAwait(Z)),D=`${M?"await ":""}(${M?"async ":""}() => { `;D+=`if (${this.generate(F,"value")}) `,D+=this.generateBlockWithReturns(T);for(let Z of U)if(D+=" else ",Array.isArray(Z)&&Z[0]==="if"){let[Q,X,J,...K]=Z;D+=`if (${this.generate(X,"value")}) `,D+=this.generateBlockWithReturns(J);for(let G of K)if(D+=" else ",Array.isArray(G)&&G[0]==="if"){let[z,H,R,...O]=G;D+=`if (${this.generate(H,"value")}) `,D+=this.generateBlockWithReturns(R),U.push(...O)}else D+=this.generateBlockWithReturns(G)}else D+=this.generateBlockWithReturns(Z);return D+" })()"}let A=this.extractExpression(this.unwrapIfBranch(T)),$=this.buildTernaryChain(U),W=this.generate(F,"value");if(Array.isArray(F)&&(F[0]==="yield"||F[0]==="await"))W=`(${W})`;return`(${W} ? ${A} : ${$})`}generateIfAsStatement(F,T,U){let Y=`if (${this.unwrap(this.generate(F,"value"))}) `;Y+=this.generate(this.unwrapIfBranch(T),"statement");for(let A of U)Y+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return Y}generateSwitchCaseBody(F,T){let U="";if(this.hasExplicitControlFlow(F))for(let A of this.unwrapBlock(F))U+=this.indent()+this.generate(A,"statement")+`;
|
|
221
|
-
`;else if(T==="value")if(Array.isArray(F)&&F[0]==="block"&&F.length>2){let A=F.slice(1);for(let $=0;$<A.length;$++)if($===A.length-1)U+=this.indent()+`return ${this.generate(A[$],"value")};
|
|
222
|
-
`;else U+=this.indent()+this.generate(A[$],"statement")+`;
|
|
223
|
-
`}else U+=this.indent()+`return ${this.extractExpression(F)};
|
|
224
|
-
`;else{if(Array.isArray(F)&&F[0]==="block"&&F.length>1)for(let A of F.slice(1))U+=this.indent()+this.generate(A,"statement")+`;
|
|
221
|
+
${J}
|
|
222
|
+
${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate(F,"statement")}; }`}generateComprehensionWithTarget(F,W,Y,U){let $="";$+=this.indent()+`${U} = [];
|
|
223
|
+
`;let A=Array.isArray(F)&&F[0]==="block"&&F.length===2?F[1]:F;if(W.length===1){let[Q,J,Z,X]=W[0];if(Q==="for-in"){let D=X,K=Array.isArray(J)?J:[J],M=K.length===0,[R,z]=M?["_i",null]:K,G=Array.isArray(R)&&(R[0]==="array"||R[0]==="object")?this.generateDestructuringPattern(R):R;if(D&&D!==null){let P=Array.isArray(Z)&&Z[0];if(P instanceof String)P=j(P);if(P===".."||P==="..."){let w=P==="...",[H,E]=Z.slice(1);$+=this.indent()+`for (let ${G} = ${this.generate(H,"value")}; ${G} ${w?"<":"<="} ${this.generate(E,"value")}; ${G} += ${this.generate(D,"value")}) {
|
|
224
|
+
`}else{let w=this.generate(Z,"value"),H=z||"_i",E=this.generate(D,"value"),T=this.isNegativeStep(D);if($+=T?this.indent()+`for (let ${H} = ${w}.length - 1; ${H} >= 0; ${H} += ${E}) {
|
|
225
|
+
`:this.indent()+`for (let ${H} = 0; ${H} < ${w}.length; ${H} += ${E}) {
|
|
226
|
+
`,this.indentLevel++,!M)$+=this.indent()+`const ${G} = ${w}[${H}];
|
|
227
|
+
`}}else $+=this.indent()+`for (const ${G} of ${this.generate(Z,"value")}) {
|
|
228
|
+
`;if(this.indentLevel++,Y&&Y.length>0)$+=this.indent()+`if (${Y.map((P)=>this.generate(P,"value")).join(" && ")}) {
|
|
229
|
+
`,this.indentLevel++;if($+=this.indent()+`${U}.push(${this.unwrap(this.generate(A,"value"))});
|
|
230
|
+
`,Y&&Y.length>0)this.indentLevel--,$+=this.indent()+`}
|
|
231
|
+
`;return this.indentLevel--,$+=this.indent()+`}
|
|
232
|
+
`,$}}return this.indent()+`${U} = (() => { /* complex comprehension */ })();
|
|
233
|
+
`}generateComprehensionAsLoop(F,W,Y){let U="";if(W.length===1){let[$,A,Q,J]=W[0];if($==="for-in"){let Z=J,X=Array.isArray(A)?A:[A],D=X.length===0,[K,M]=D?["_i",null]:X,R=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;if(Z&&Z!==null){let z=Array.isArray(Q)&&Q[0];if(z instanceof String)z=j(z);let G=z===".."||z==="...";if(G){let P=z==="...",[_,w]=Q.slice(1);U+=`for (let ${R} = ${this.generate(_,"value")}; ${R} ${P?"<":"<="} ${this.generate(w,"value")}; ${R} += ${this.generate(Z,"value")}) `}else{let P=this.generate(Q,"value"),_=M||"_i",w=this.generate(Z,"value"),H=this.isNegativeStep(Z),E=H&&(Z[1]==="1"||Z[1]===1||j(Z[1])==="1"),T=!H&&(Z==="1"||Z===1||j(Z)==="1");if(E)U+=`for (let ${_} = ${P}.length - 1; ${_} >= 0; ${_}--) `;else if(T)U+=`for (let ${_} = 0; ${_} < ${P}.length; ${_}++) `;else if(H)U+=`for (let ${_} = ${P}.length - 1; ${_} >= 0; ${_} += ${w}) `;else U+=`for (let ${_} = 0; ${_} < ${P}.length; ${_} += ${w}) `;if(U+=`{
|
|
234
|
+
`,this.indentLevel++,!D)U+=this.indent()+`const ${R} = ${P}[${_}];
|
|
235
|
+
`}if(Y?.length){if(!G)U+=this.indent();U+=`{
|
|
236
|
+
`,this.indentLevel++,U+=this.indent()+`if (${Y.map((P)=>this.generate(P,"value")).join(" && ")}) {
|
|
237
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
238
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
239
|
+
`,this.indentLevel--,U+=this.indent()+"}"}else{if(!G)U+=this.indent();U+=`{
|
|
240
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
241
|
+
`,this.indentLevel--,U+=this.indent()+"}"}if(!G)this.indentLevel--,U+=`
|
|
242
|
+
`+this.indent()+"}";return U}if(M){let z=this.generate(Q,"value");U+=`for (let ${M} = 0; ${M} < ${z}.length; ${M}++) `,U+=`{
|
|
243
|
+
`,this.indentLevel++,U+=this.indent()+`const ${R} = ${z}[${M}];
|
|
244
|
+
`}else{if(U+=`for (const ${R} of ${this.generate(Q,"value")}) `,Y?.length)U+=`{
|
|
245
|
+
`,this.indentLevel++,U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
|
|
246
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
247
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
248
|
+
`,this.indentLevel--,U+=this.indent()+"}";else U+=`{
|
|
249
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
250
|
+
`,this.indentLevel--,U+=this.indent()+"}";return U}if(Y?.length)U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
|
|
251
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
252
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
225
253
|
`;else U+=this.indent()+this.generate(F,"statement")+`;
|
|
226
|
-
`;U+=this.indent()
|
|
227
|
-
|
|
228
|
-
`,this.indentLevel++,U
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
`,this.indentLevel++,U
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
254
|
+
`;return this.indentLevel--,U+=this.indent()+"}",U}if($==="for-as"){let Z=Array.isArray(A)?A:[A],[X]=Z,D=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(U+=`for (const ${D} of ${this.generate(Q,"value")}) `,Y?.length)U+=`{
|
|
255
|
+
`,this.indentLevel++,U+=this.indent()+`if (${Y.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
256
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
257
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
258
|
+
`,this.indentLevel--,U+=this.indent()+"}";else U+=`{
|
|
259
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
260
|
+
`,this.indentLevel--,U+=this.indent()+"}";return U}if($==="for-of"){let Z=Array.isArray(A)?A:[A],[X,D]=Z,K=J,M=this.generate(Q,"value");if(U+=`for (const ${X} in ${M}) {
|
|
261
|
+
`,this.indentLevel++,K&&!D&&!Y?.length)U+=this.indent()+`if (!Object.hasOwn(${M}, ${X})) continue;
|
|
262
|
+
`,U+=this.indent()+this.generate(F,"statement")+`;
|
|
263
|
+
`;else if(K&&D&&Y?.length)U+=this.indent()+`if (Object.hasOwn(${M}, ${X})) {
|
|
264
|
+
`,this.indentLevel++,U+=this.indent()+`const ${D} = ${M}[${X}];
|
|
265
|
+
`,U+=this.indent()+`if (${Y.map((R)=>this.generate(R,"value")).join(" && ")}) {
|
|
266
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
267
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
268
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
269
|
+
`;else if(K&&D)U+=this.indent()+`if (Object.hasOwn(${M}, ${X})) {
|
|
270
|
+
`,this.indentLevel++,U+=this.indent()+`const ${D} = ${M}[${X}];
|
|
271
|
+
`,U+=this.indent()+this.generate(F,"statement")+`;
|
|
272
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
273
|
+
`;else if(D&&Y?.length)U+=this.indent()+`const ${D} = ${M}[${X}];
|
|
274
|
+
`,U+=this.indent()+`if (${Y.map((R)=>this.generate(R,"value")).join(" && ")}) {
|
|
275
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
276
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
277
|
+
`;else if(D)U+=this.indent()+`const ${D} = ${M}[${X}];
|
|
278
|
+
`,U+=this.indent()+this.generate(F,"statement")+`;
|
|
279
|
+
`;else if(Y?.length)U+=this.indent()+`if (${Y.map((R)=>this.generate(R,"value")).join(" && ")}) {
|
|
280
|
+
`,this.indentLevel++,U+=this.indent()+this.generate(F,"statement")+`;
|
|
281
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
282
|
+
`;else U+=this.indent()+this.generate(F,"statement")+`;
|
|
283
|
+
`;return this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",F,W,Y],"value")}generateIfElseWithEarlyReturns(F){let[W,Y,U,...$]=F,A="",Q=W==="unless"?`!${this.generate(Y,"value")}`:this.generate(Y,"value");A+=this.indent()+`if (${Q}) {
|
|
284
|
+
`,A+=this.withIndent(()=>this.generateBranchWithReturn(U)),A+=this.indent()+"}";for(let J of $)if(A+=" else ",Array.isArray(J)&&J[0]==="if"){let[,Z,X,...D]=J;A+=`if (${this.generate(Z,"value")}) {
|
|
285
|
+
`,A+=this.withIndent(()=>this.generateBranchWithReturn(X)),A+=this.indent()+"}";for(let K of D)A+=` else {
|
|
286
|
+
`,A+=this.withIndent(()=>this.generateBranchWithReturn(K)),A+=this.indent()+"}"}else A+=`{
|
|
287
|
+
`,A+=this.withIndent(()=>this.generateBranchWithReturn(J)),A+=this.indent()+"}";return A}generateBranchWithReturn(F){let W=this.unwrapBlock(F),Y="";for(let U=0;U<W.length;U++){let $=U===W.length-1,A=W[U],Q=Array.isArray(A)?A[0]:null;if($&&!(Q==="return"||Q==="throw"||Q==="break"||Q==="continue"))Y+=this.indent()+`return ${this.generate(A,"value")};
|
|
288
|
+
`;else Y+=this.indent()+this.generate(A,"statement")+`;
|
|
289
|
+
`}return Y}generateIfAsExpression(F,W,Y){if(this.isMultiStatementBlock(W)||this.hasStatementInBranch(W)||Y.some((J)=>this.isMultiStatementBlock(J)||this.hasStatementInBranch(J)||this.hasNestedMultiStatement(J))){let J=this.containsAwait(F)||this.containsAwait(W)||Y.some((X)=>this.containsAwait(X)),Z=`${J?"await ":""}(${J?"async ":""}() => { `;Z+=`if (${this.generate(F,"value")}) `,Z+=this.generateBlockWithReturns(W);for(let X of Y)if(Z+=" else ",Array.isArray(X)&&X[0]==="if"){let[D,K,M,...R]=X;Z+=`if (${this.generate(K,"value")}) `,Z+=this.generateBlockWithReturns(M);for(let z of R)if(Z+=" else ",Array.isArray(z)&&z[0]==="if"){let[G,P,_,...w]=z;Z+=`if (${this.generate(P,"value")}) `,Z+=this.generateBlockWithReturns(_),Y.push(...w)}else Z+=this.generateBlockWithReturns(z)}else Z+=this.generateBlockWithReturns(X);return Z+" })()"}let $=this.extractExpression(this.unwrapIfBranch(W)),A=this.buildTernaryChain(Y),Q=this.generate(F,"value");if(Array.isArray(F)&&(F[0]==="yield"||F[0]==="await"))Q=`(${Q})`;return`(${Q} ? ${$} : ${A})`}generateIfAsStatement(F,W,Y){let U=`if (${this.unwrap(this.generate(F,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let $ of Y)U+=" else "+this.generate(this.unwrapIfBranch($),"statement");return U}generateSwitchCaseBody(F,W){let Y="";if(this.hasExplicitControlFlow(F))for(let $ of this.unwrapBlock(F))Y+=this.indent()+this.generate($,"statement")+`;
|
|
290
|
+
`;else if(W==="value")if(Array.isArray(F)&&F[0]==="block"&&F.length>2){let $=F.slice(1);for(let A=0;A<$.length;A++)if(A===$.length-1)Y+=this.indent()+`return ${this.generate($[A],"value")};
|
|
291
|
+
`;else Y+=this.indent()+this.generate($[A],"statement")+`;
|
|
292
|
+
`}else Y+=this.indent()+`return ${this.extractExpression(F)};
|
|
293
|
+
`;else{if(Array.isArray(F)&&F[0]==="block"&&F.length>1)for(let $ of F.slice(1))Y+=this.indent()+this.generate($,"statement")+`;
|
|
294
|
+
`;else Y+=this.indent()+this.generate(F,"statement")+`;
|
|
295
|
+
`;Y+=this.indent()+`break;
|
|
296
|
+
`}return Y}generateSwitchAsIfChain(F,W,Y){let U="";for(let $=0;$<F.length;$++){let[,A,Q]=F[$],J=Array.isArray(A)?A[0]:A;if(U+=($===0?"":" else ")+`if (${this.generate(J,"value")}) {
|
|
297
|
+
`,this.indentLevel++,Y==="value")U+=this.indent()+`return ${this.extractExpression(Q)};
|
|
298
|
+
`;else for(let Z of this.unwrapBlock(Q))U+=this.indent()+this.generate(Z,"statement")+`;
|
|
299
|
+
`;this.indentLevel--,U+=this.indent()+"}"}if(W){if(U+=` else {
|
|
300
|
+
`,this.indentLevel++,Y==="value")U+=this.indent()+`return ${this.extractExpression(W)};
|
|
301
|
+
`;else for(let $ of this.unwrapBlock(W))U+=this.indent()+this.generate($,"statement")+`;
|
|
302
|
+
`;this.indentLevel--,U+=this.indent()+"}"}return Y==="value"?`(() => { ${U} })()`:U}extractExpression(F){let W=this.unwrapBlock(F);return W.length>0?this.generate(W[W.length-1],"value"):"undefined"}unwrapBlock(F){if(!Array.isArray(F))return[F];if(F[0]==="block")return F.slice(1);if(Array.isArray(F[0]))return F;return[F]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(F,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let Y=Array.isArray(F)?F[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(Y)}addSemicolon(F,W){return W+(this.needsSemicolon(F,W)?";":"")}formatStatements(F,W="statement"){return F.map((Y)=>this.indent()+this.addSemicolon(Y,this.generate(Y,W)))}wrapForCondition(F){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(F))return F;if(F.startsWith("(")&&F.endsWith(")"))return F;return`(${F})`}hasExplicitControlFlow(F){if(!Array.isArray(F))return!1;let W=F[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return F.slice(1).some((Y)=>Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0]));if(W==="switch"){let[,,Y]=F;return Y?.some((U)=>{return this.unwrapBlock(U[2]).some((A)=>Array.isArray(A)&&["return","throw","break","continue"].includes(A[0]))})}if(W==="if"||W==="unless"){let[,,Y,U]=F;return this.branchHasControlFlow(Y)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow(F){if(!Array.isArray(F))return!1;let W=this.unwrapBlock(F);if(W.length===0)return!1;let Y=W[W.length-1];return Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0])}withIndent(F){this.indentLevel++;let W=F();return this.indentLevel--,W}isNegativeStep(F){if(!Array.isArray(F)||F.length!==2)return!1;return(j(F[0])??F[0])==="-"}isNegativeOneLiteral(F){return Array.isArray(F)&&F[0]==="-"&&F.length===2&&(F[1]==="1"||F[1]===1||j(F[1])==="1")}unwrap(F){if(typeof F!=="string")return F;while(F.startsWith("(")&&F.endsWith(")")){let W=0,Y=0,U=!0,$=!1;for(let A=0;A<F.length;A++){if(F[A]==="(")W++;if(F[A]===")")W--;if(F[A]==="["||F[A]==="{")Y++;if(F[A]==="]"||F[A]==="}")Y--;if(F[A]===","&&W===1&&Y===0)$=!0;if(W===0&&A<F.length-1){U=!1;break}}if($)U=!1;if(U)F=F.slice(1,-1);else break}return F}unwrapLogical(F){if(typeof F!=="string")return F;while(F.startsWith("(")&&F.endsWith(")")){let W=0,Y=1/0;for(let U=1;U<F.length-1;U++){if(F[U]==="(")W++;if(F[U]===")")W--;Y=Math.min(Y,W)}if(Y>=0)F=F.slice(1,-1);else break}return F}unwrapIfBranch(F){if(Array.isArray(F)&&F.length===1&&(!Array.isArray(F[0])||F[0][0]!=="block"))return F[0];return F}flattenBinaryChain(F){if(!Array.isArray(F)||F.length<3)return F;let[W,...Y]=F;if(W!=="&&"&&W!=="||")return F;let U=[],$=(A)=>{if(Array.isArray(A)&&A[0]===W)for(let Q=1;Q<A.length;Q++)$(A[Q]);else U.push(A)};for(let A of Y)$(A);return[W,...U]}hasStatementInBranch(F){if(!Array.isArray(F))return!1;let W=F[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return F.slice(1).some((Y)=>this.hasStatementInBranch(Y));return!1}isMultiStatementBlock(F){return Array.isArray(F)&&F[0]==="block"&&F.length>2}hasNestedMultiStatement(F){if(!Array.isArray(F))return!1;if(F[0]==="if"){let[W,Y,U,...$]=F;return this.isMultiStatementBlock(U)||$.some((A)=>this.hasNestedMultiStatement(A))}return!1}buildTernaryChain(F){if(F.length===0)return"undefined";if(F.length===1)return this.extractExpression(this.unwrapIfBranch(F[0]));let W=F[0];if(Array.isArray(W)&&W[0]==="if"){let[Y,U,$,...A]=W,Q=this.extractExpression(this.unwrapIfBranch($)),J=this.buildTernaryChain([...A,...F.slice(1)]);return`(${this.generate(U,"value")} ? ${Q} : ${J})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray(F,W){F.slice(1).forEach((Y)=>{if(Y===","||Y==="...")return;if(typeof Y==="string"){W.add(Y);return}if(Array.isArray(Y)){if(Y[0]==="..."&&typeof Y[1]==="string")W.add(Y[1]);else if(Y[0]==="array")this.collectVarsFromArray(Y,W);else if(Y[0]==="object")this.collectVarsFromObject(Y,W)}})}collectVarsFromObject(F,W){F.slice(1).forEach((Y)=>{if(!Array.isArray(Y))return;if(Y[0]==="..."&&typeof Y[1]==="string"){W.add(Y[1]);return}if(Y.length>=2){let[U,$,A]=Y;if(A==="="){if(typeof U==="string")W.add(U)}else if(typeof $==="string")W.add($);else if(Array.isArray($)){if($[0]==="array")this.collectVarsFromArray($,W);else if($[0]==="object")this.collectVarsFromObject($,W)}}})}extractStringContent(F){let W=j(F).slice(1,-1),Y=f(F,"indent");if(Y)W=W.replace(new RegExp(`\\n${Y}`,"g"),`
|
|
303
|
+
`);if(f(F,"initialChunk")&&W.startsWith(`
|
|
304
|
+
`))W=W.slice(1);if(f(F,"finalChunk")&&W.endsWith(`
|
|
305
|
+
`))W=W.slice(0,-1);return W}processHeregex(F){let W="",Y=!1,U=0,$=()=>{let A=0,Q=U-1;while(Q>=0&&F[Q]==="\\")A++,Q--;return A%2===1};while(U<F.length){let A=F[U];if(A==="["&&!$()){Y=!0,W+=A,U++;continue}if(A==="]"&&Y&&!$()){Y=!1,W+=A,U++;continue}if(Y){W+=A,U++;continue}if(/\s/.test(A)){U++;continue}if(A==="#"){if($()){W+=A,U++;continue}let Q=U-1;while(Q>=0&&F[Q]==="\\")Q--;if(Q<U-1){W+=A,U++;continue}while(U<F.length&&F[U]!==`
|
|
306
|
+
`)U++;continue}W+=A,U++}return W}addJsExtensionAndAssertions(F){if(F instanceof String)F=j(F);if(typeof F!=="string")return F;let Y=F.startsWith('"')||F.startsWith("'")?F.slice(1,-1):F,U=Y.startsWith("./")||Y.startsWith("../"),$=Y,A="";if(U){let Q=Y.lastIndexOf("/"),J=Q>=0?Y.substring(Q+1):Y;if(J.includes(".")){if(J.endsWith(".json"))A=" with { type: 'json' }"}else $=Y+".js"}return`'${$}'`+A}containsAwait(F){if(!F)return!1;if(F instanceof String&&f(F,"await")===!0)return!0;if(typeof F!=="object")return!1;if(Array.isArray(F)&&F[0]==="await")return!0;if(Array.isArray(F)&&F[0]==="for-as"&&F[3]===!0)return!0;if(Array.isArray(F)&&(F[0]==="def"||F[0]==="->"||F[0]==="=>"||F[0]==="class"))return!1;if(Array.isArray(F))return F.some((W)=>this.containsAwait(W));return!1}containsYield(F){if(!F)return!1;if(typeof F!=="object")return!1;if(Array.isArray(F)&&(F[0]==="yield"||F[0]==="yield-from"))return!0;if(Array.isArray(F)&&(F[0]==="def"||F[0]==="->"||F[0]==="=>"||F[0]==="class"))return!1;if(Array.isArray(F))return F.some((W)=>this.containsYield(W));return!1}isStaticMember(F){return Array.isArray(F)&&F[0]==="."&&F[1]==="this"}isComputedMember(F){return Array.isArray(F)&&F[0]==="computed"}extractMemberName(F){if(this.isStaticMember(F))return F[2];if(this.isComputedMember(F))return`[${this.generate(F[1],"value")}]`;return F}isBoundMethod(F){return Array.isArray(F)&&F[0]==="=>"}getReactiveRuntime(){return`// ============================================================================
|
|
238
307
|
// Rip Reactive Runtime
|
|
239
308
|
// A minimal, fine-grained reactivity system
|
|
240
309
|
//
|
|
@@ -441,9 +510,14 @@ function __catchErrors(fn) {
|
|
|
441
510
|
};
|
|
442
511
|
}
|
|
443
512
|
|
|
513
|
+
// Register on globalThis for runtime deduplication
|
|
514
|
+
if (typeof globalThis !== 'undefined') {
|
|
515
|
+
globalThis.__rip = { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors };
|
|
516
|
+
}
|
|
517
|
+
|
|
444
518
|
// === End Reactive Runtime ===
|
|
445
|
-
`}}class
|
|
446
|
-
`),Y
|
|
519
|
+
`}}class o{constructor(F={}){this.options={showTokens:!1,showSExpr:!1,...F}}compile(F){let W=null,Y=F.split(`
|
|
520
|
+
`),U=Y.findIndex((X)=>X==="__DATA__");if(U!==-1){let X=Y.slice(U+1);W=X.length>0?X.join(`
|
|
447
521
|
`)+`
|
|
448
|
-
`:"",F=
|
|
449
|
-
`)}let
|
|
522
|
+
`:"",F=Y.slice(0,U).join(`
|
|
523
|
+
`)}let A=new x().tokenize(F);if(this.options.showTokens)A.forEach((X)=>console.log(`${X[0].padEnd(12)} ${JSON.stringify(X[1])}`)),console.log();g.lexer={tokens:A,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let X=this.tokens[this.pos++],D=X[1];if(X.data)D=new String(D),Object.assign(D,X.data);return this.yytext=D,this.yylloc=X.loc,X[0]}};let Q;try{Q=g.parse(F)}catch(X){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(F)||/\?\s+\w+\s+\?\s+/.test(F))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw X}if(this.options.showSExpr)console.log(v(Q,0,!0)),console.log();let J=new y({dataSection:W,skipReactiveRuntime:this.options.skipReactiveRuntime,skipComponentRuntime:this.options.skipComponentRuntime,reactiveVars:this.options.reactiveVars}),Z=J.compile(Q);return{tokens:A,sexpr:Q,code:Z,data:W,reactiveVars:J.reactiveVars}}compileToJS(F){return this.compile(F).code}compileToSExpr(F){return this.compile(F).sexpr}}z1(y);function U2(F,W={}){return new o(W).compile(F)}function s(F,W={}){return new o(W).compileToJS(F)}function W2(){return new y({}).getReactiveRuntime()}function Q2(){return new y({}).getComponentRuntime()}var P2="3.1.1",T2="2026-02-08@11:04:52GMT",Z2=(F)=>{let W=F.match(/^[ \t]*(?=\S)/gm),Y=Math.min(...(W||[]).map((U)=>U.length));return F.replace(RegExp(`^[ ]{${Y}}`,"gm"),"").trim()};async function G1(){let F=document.querySelectorAll('script[type="text/rip"]');for(let W of F){if(W.hasAttribute("data-rip-processed"))continue;try{let Y=Z2(W.textContent),U=s(Y);(0,eval)(U),W.setAttribute("data-rip-processed","true")}catch(Y){console.error("Error compiling Rip script:",Y),console.error("Script content:",W.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",G1);else G1();function D2(F){try{let Y=s(F).replace(/^let\s+[^;]+;\s*\n\s*/m,"");Y=Y.replace(/^const\s+/gm,"var ");let U=(0,eval)(Y);if(U!==void 0)globalThis._=U;return U}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=D2;export{D2 as rip,G1 as processRipScripts,g as parser,W2 as getReactiveRuntime,Q2 as getComponentRuntime,v as formatSExpr,s as compileToJS,U2 as compile,P2 as VERSION,x as Lexer,o as Compiler,y as CodeGenerator,T2 as BUILD_DATE};
|