rip-lang 3.0.1 → 3.0.2
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/docs/dist/rip.browser.js +30 -5
- package/docs/dist/rip.browser.min.js +120 -120
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/package.json +1 -1
- package/src/grammar/grammar.rip +1 -1
- package/src/grammar/solar.rip +1 -1
- package/src/lexer.js +24 -6
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
var d=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"]),r=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"]),o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},t=new Set(Object.keys(o)),Q1=new Set(["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"]),Z1=new Set(["break","continue","debugger"]),X1=new Set(["NEW","TYPEOF","DELETE"]),J1=new Set(["IN","OF","INSTANCEOF"]),n=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),W1=new Set([...n,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),m=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","@","->","=>","[","(","{","--","++"]),G1=new Set(["+","-"]),
|
|
1
|
+
var d=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"]),r=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"]),o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},t=new Set(Object.keys(o)),Q1=new Set(["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"]),Z1=new Set(["break","continue","debugger"]),X1=new Set(["NEW","TYPEOF","DELETE"]),J1=new Set(["IN","OF","INSTANCEOF"]),n=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),W1=new Set([...n,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),m=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","@","->","=>","[","(","{","--","++"]),G1=new Set(["+","-"]),K1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"]),z1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),g=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),h=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),R1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},e=new Set(["CATCH","THEN","ELSE","FINALLY",...h]),a=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),H1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH"]),A1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),_1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),c=new Set(["INDENT","OUTDENT","TERMINATOR"]),$1=new Set([".","?."]),F1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),q1=new Set([...W1,"++","--"]),T1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),O1=new Set(["*","/","%","//","%%"]),P1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),u1=new Set(["<<",">>",">>>"]),L1=new Set(["!","~"]),w1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,N1=/^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,I1=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,B1=/^[^\n\S]+/,E1=/^(?:\n[^\n\S]*)+/,j1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,f1=/^[-=]>/,S1=/^(?:~[=>]|=!)/,V1=/^(?:'''|"""|'|")/,y1=/^(?:[^\\']|\\[\s\S])*/,C1=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,k1=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,h1=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,Y1=/\n+([^\n\S]*)(?=\S)/g,v1=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,U1=/^\w*/,g1=/^(?!.*(.).*\1)[gimsuy]*$/,b1=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,x1=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,l1=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,m1=/\s+$/,c1=/^\s*(?:,|\??\.(?![.\d]))/,n1=65279;function M1(F,T,{pre:U=0,row:Y=0,col:A=0,len:$=0,data:W=null}={}){let M=[F,T];return M.pre=U,M.data=W,M.loc={r:Y,c:A,n:$},M.spaced=U>0,M.newLine=!1,M}function k(F,T,U){let Y=M1(F,T);if(Y.generated=!0,U)Y.origin=U;return Y}function y(F,{row:T=0,col:U=0,len:Y=1}={}){let A=SyntaxError(F);throw A.location={first_line:T,first_column:U,last_column:U+Y-1},A}function p1(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,T={}){this.code=F,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=T.row||0,this.col=T.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,F=this.clean(F),this.code=F;while(this.pos<F.length){this.chunk=F.slice(this.pos);let U=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(U===0)y(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(U),T.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let U=this.ends[this.ends.length-1];y(`missing ${U.tag}`,{row:this.row,col:this.col})}if(T.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(F){if(F.charCodeAt(0)===n1)F=F.slice(1);if(F=F.replace(/\r\n?/g,`
|
|
2
2
|
`),F=F.replace(m1,""),/^[^\n\S]/.test(F))F=`
|
|
3
3
|
`+F;return F}advance(F){let T=this.code.slice(this.pos,this.pos+F);for(let U=0;U<T.length;U++)if(T[U]===`
|
|
4
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=F}emit(F,T,{len:U,data:Y,pre:A}={}){let $=
|
|
5
|
-
`)return 0;let T=this.prev();if(T)if(F)T.spaced=!0,T.pre=F[0].length;else T.newLine=!0;return F?F[0].length:0}lineToken(){let F=
|
|
4
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=F}emit(F,T,{len:U,data:Y,pre:A}={}){let $=M1(F,T,{pre:A??0,row:this.row,col:this.col,len:U??(typeof T==="string"?T.length:0),data:Y});return this.tokens.push($),$}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(S1.test(this.chunk))return 0;let F=w1.exec(this.chunk);if(!F)return 0;let[T,U,Y]=F,A=U.length,$={},W;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:A}),A;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:A}),A;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let Q=this.prevTag();if(Q==="DEFAULT"||Q==="IMPORT_ALL"||Q==="IDENTIFIER")return this.emit("AS",U,{len:A}),A}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:A}),A;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:A}),A;if(U==="do"&&/^(\s*super)(?!\(\))/.test(this.chunk.slice(3))){let Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3));return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3}let M=this.prev();if(Y&&M&&M[0]==="SPACE?")Y=null;if(Y||M&&(M[0]==="."||M[0]==="?."||!M.spaced&&M[0]==="@"))W="PROPERTY";else W="IDENTIFIER";let D=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(W==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(d.has(U)||r.has(U)||t.has(U))&&!(this.exportSpecifierList&&t.has(U))){if(o[U]!==void 0)$.original=U,U=o[U];W=this.classifyKeyword(U,W,$)}if(W==="IDENTIFIER"&&Q1.has(D))y(`reserved word '${D}'`,{row:this.row,col:this.col,len:A});if(W==="PROPERTY"&&M){if(M[0]==="."&&this.tokens.length>1){let Q=this.tokens[this.tokens.length-2];if(Q[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";if(Q[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))$.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))$.predicate=!0,U=U.slice(0,-1);let Z=this.emit(W,U,{len:A,data:Object.keys($).length?$:null});if(Y)return this.emit(":",":",{len:1}),A+Y.length;return A}classifyKeyword(F,T,U){switch(F){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return F}if(Z1.has(F))return"STATEMENT";let Y=F.toUpperCase();if(Y==="WHEN"&&c.has(this.prevTag()))return"LEADING_WHEN";if(Y==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(Y==="UNLESS")return"UNLESS";if(Y==="IMPORT")return this.seenImport=!0,"IMPORT";if(Y==="EXPORT")return this.seenExport=!0,"EXPORT";if(X1.has(Y))return"UNARY";if(J1.has(Y)){if(Y!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+Y;if(this.prevVal()==="!"){let A=this.tokens.pop();U.invert=A.data?.original||A[1]}return"RELATION"}if(d.has(F)||r.has(F))return Y;return T}commentToken(){let F=j1.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 T=this.prev();if(T)if(F)T.spaced=!0,T.pre=F[0].length;else T.newLine=!0;return F?F[0].length:0}lineToken(){let F=E1.exec(this.chunk);if(!F)return 0;let T=F[0],U=T.length-1-T.lastIndexOf(`
|
|
6
6
|
`);if(this.isUnfinished()){if(U<this.indent&&/^\s*,/.test(this.chunk)&&!F1.has(this.prevTag())){if(this.outdentTo(U,T.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return T.length}return T.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(U===this.indent)return this.emitNewline(),T.length;if(U>this.indent){if(!this.tokens.length)return this.indent=U,T.length;let Y=U-this.indent;return this.emit("INDENT",Y,{len:U}),this.indents.push(Y),this.ends.push({tag:"OUTDENT"}),this.indent=U,T.length}return this.outdentTo(U,T.length),T.length}outdentTo(F,T=0){let U=this.indent-F;while(U>0){let Y=this.indents[this.indents.length-1];if(!Y)U=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",U,{len:T}),U-=Y}this.emitNewline(),this.indent=F}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
7
|
-
`,{len:0})}isUnfinished(){return c1.test(this.chunk)||F1.has(this.prevTag())}pair(F){let T=this.ends[this.ends.length-1];if(!T||F!==T.tag){if(T?.tag==="OUTDENT"){let U=this.indents[this.indents.length-1];if(U)this.outdentTo(this.indent-U);return this.pair(F)}
|
|
8
|
-
`)A--;A++;let $=this.chunk.slice(A,Y),W=/^\s*$/.test($)?$.length:null,
|
|
9
|
-
`)}if(A===0&&T?.length===3)D=D.replace(/^\n/,"");if(A===F.length-1&&T?.length===3)D=D.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${D}"`,{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))C(`radix prefix in '${T}' must be lowercase`,{...Y,col:Y.col+1});if(/^0\d*[89]/.test(T))C(`decimal literal '${T}' must not be prefixed with '0'`,{...Y,len:U});if(/^0\d+/.test(T))C(`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((R)=>R[0]==="TOKENS")){let R=Z[0]?.[1]||"";this.emit("REGEX",`/${R}/${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(O1.has($[0])&&!($.spaced&&n.has($[0])))return 0}if(!A)C("missing / (unclosed regex)",{row:this.row,col:this.col});let W=U.length,[D]=U1.exec(this.chunk.slice(W)),M=W+D.length;if(!g1.test(D))C(`invalid regular expression flags ${D}`,{row:this.row,col:this.col+W,len:D.length});return this.emit("REGEX",`/${Y}/${D}`,{len:M,data:{delimiter:"/"}}),M}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(q1.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(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:z1[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=null,A=(W,D)=>{return W[1]!==";"&&H1.has(W[0])&&!(W[0]==="TERMINATOR"&&e.has(this.tokens[D+1]?.[0]))&&!(W[0]==="ELSE"&&F!=="THEN")||W[0]===","&&(F==="->"||F==="=>")&&!(Y!=null&&a.has(this.tokens[Y]?.[0])&&this.tokens[Y]?.spaced&&(m.has(this.tokens[Y+1]?.[0])||this.tokens[Y+1]?.[0]==="..."&&m.has(this.tokens[Y+2]?.[0])))||$1.has(W[0])&&(this.tokens[D-1]?.newLine||this.tokens[D-1]?.[0]==="OUTDENT")},$=(W,D)=>{let M=this.tokens[D-1]?.[0]===","?D-1:D;this.tokens.splice(M,0,U)};this.scanTokens((W,D,M)=>{let[Z]=W;if(Z==="TERMINATOR"){if(this.tokens[D+1]?.[0]==="ELSE"&&this.tokens[D-1]?.[0]!=="OUTDENT")return M.splice(D,1,...this.makeIndentation()),1;if(e.has(this.tokens[D+1]?.[0]))return M.splice(D,1),0}if(Z==="CATCH")for(let Q=1;Q<=2;Q++){let X=this.tokens[D+Q]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return M.splice(D+Q,0,...this.makeIndentation()),2+Q}if((Z==="->"||Z==="=>")&&(this.tokens[D+1]?.[0]===","||this.tokens[D+1]?.[0]==="]"))return[T,U]=this.makeIndentation(),M.splice(D+1,0,T,U),1;if(A1.has(Z)&&this.tokens[D+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[D+1]?.[0]==="IF")){if(F=Z,Y=D+2,[T,U]=this.makeIndentation(),Z==="THEN")T.fromThen=!0;if(M.splice(D+1,0,T),this.detectEnd(D+2,A,$),Z==="THEN")M.splice(D,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]||[],D=A[Y+1]||[],[M]=W,[Z]=D,Q=Y,X=(O)=>Y-Q+O,J=()=>F[F.length-1],R=(O)=>O?.[2]?.ours,G=()=>R(J())&&J()?.[0]==="(",K=()=>R(J())&&J()?.[0]==="{",_=(O)=>{F.push(["(",O,{ours:!0}]),A.splice(O,0,k("CALL_START","("))},z=()=>{F.pop(),A.splice(Y,0,k("CALL_END",")")),Y+=1},q=(O,w={})=>{F.push(["{",O,{sameLine:!0,startsLine:w.startsLine??!0,ours:!0}]);let I=k("{","{");if(!I.data)I.data={};I.data.generated=!0,A.splice(O,0,I)},H=(O)=>{O=O??Y,F.pop(),A.splice(O,0,k("}","}")),Y+=1};if((G()||K())&&_1.has($))return F.push(["CONTROL",Y,{ours:!0}]),X(1);if($==="INDENT"&&R(J())){if(M!=="=>"&&M!=="->"&&M!=="["&&M!=="("&&M!==","&&M!=="{"&&M!=="ELSE"&&M!=="=")while(G()||K()&&M!==":")if(G())z();else H();if(J()?.[2]?.ours&&J()[0]==="CONTROL")F.pop();return F.push([$,Y]),X(1)}if(b.has($))return F.push([$,Y]),X(1);if(v.has($)){while(R(J()))if(G())z();else if(K())H();else F.pop();F.pop()}if(a.has($)&&U.spaced&&(m.has(Z)||Z==="..."&&m.has(A[Y+2]?.[0])||G1.has(Z)&&!D.spaced&&!D.newLine)&&!(($==="]"||$==="}")&&(Z==="->"||Z==="=>")))return _(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 _(Y+1),F.push(["INDENT",Y+2]),X(3);if($==="SPACE?")T=!0;if($===":"){if(T)return T=!1,X(1);let O=v.has(this.tokens[Y-1]?.[0])?F[F.length-1]?.[1]??Y-1:Y-1;if(this.tokens[Y-2]?.[0]==="@")O=Y-2;let w=O<=0||c.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(J()){let[I,N]=J(),S=F[F.length-2];if((I==="{"||I==="INDENT"&&S?.[0]==="{"&&!R(S))&&(w||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return X(1)}return q(O,{startsLine:!!w}),X(2)}if(c.has($))for(let O=F.length-1;O>=0;O--){if(!R(F[O]))break;if(F[O][0]==="{")F[O][2].sameLine=!1}let u=M==="OUTDENT"||W.newLine,P=$==="||"||$==="&&",L=!1;if(P){let O=Y+1,w=A[O]?.[0];if(w==="("||w==="["||w==="{"){for(let I=1;++O<A.length&&I>0;)if(w=A[O][0],w==="("||w==="["||w==="{")I++;else if(w===")"||w==="]"||w==="}")I--}else if(w&&w!=="TERMINATOR"&&w!=="OUTDENT"&&w!==",")O++;L=A[O]?.[0]===","}if(R1.has($)&&!L||$1.has($)&&u)while(R(J())){let[O,,{sameLine:w,startsLine:I}]=J();if(G()&&M!==",")z();else if(K()&&!P&&w&&$!=="TERMINATOR"&&M!==":")H();else if(K()&&$==="TERMINATOR"&&M!==","&&!(I&&this.looksObjectish(Y+1)))H();else if(J()?.[2]?.ours&&J()[0]==="CONTROL"&&A[J()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")F.pop();else break}if($===","&&!this.looksObjectish(Y+1)&&K()&&(Z!=="TERMINATOR"||!this.looksObjectish(Y+2))){let O=Z==="OUTDENT"?1:0;while(K())H(Y+O)}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==="=>")&&K1.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(b.has($[0]))A++;if(v.has($[0]))A--;if(A<0){if(Y.returnOnNegativeLevel)return;return U.call(this,$,F)}F++}}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(b.has(this.tokens[F]?.[0])){let T=null;if(this.detectEnd(F+1,(U)=>v.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(v.has(A))Y.push(A);if(b.has(A)&&Y.length)Y.pop();if(!Y.length&&(b.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,D,M;if(T.recoverable)return this.trace(F);else throw A=(T.line||0)+1,U=T.loc?.first_column||0,M=T.token?` (token: ${T.token})`:"",D=T.text?` near '${T.text}'`:"",$=`line ${A}, column ${U}`,W=`Parse error at ${$}${M}${D}: ${F}`,Y=Error(W),Y.hash=T,Y},parse(F){let T,U,Y,A,$,W,D,M,Z,Q,X,J,R,G,K,_,z,q,H,u,P,L,O,w,I,N,S,j;[P,O,Z]=[[0],[null],[]],[G,S,I,w,q]=[this.parseTable,"",0,0,0],[U,T]=[2,1],M=Object.create(this.lexer),H={yy:{}};for(let f in this.yy)if(Object.hasOwn(this.yy,f)){let V=this.yy[f];H.yy[f]=V}if(M.setInput(F,H.yy),[H.yy.lexer,H.yy.parser]=[M,this],M.yylloc==null)M.yylloc={};N=M.yylloc,Z.push(N),z=M.options?.ranges,this.parseError=typeof H.yy.parseError==="function"?H.yy.parseError:Object.getPrototypeOf(this).parseError,D=()=>{let f;if(f=M.lex()||T,typeof f!=="number")f=this.symbolIds[f]||f;return f},[L,K,u,Y,_,j,R,W,J,$]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(u=P[P.length-1],L==null)L=D();if(Y=G[u]!=null?G[u][L]:void 0,Y==null){if(A="",!q)$=(()=>{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(M.showPosition)return`Parse error on line ${I+1}:
|
|
10
|
-
${
|
|
11
|
-
Expecting ${$.join(", ")}, got '${this.tokenNames[L]||L}'`;else return`Parse error on line ${I+1}: Unexpected ${L===T?"end of input":`'${this.tokenNames[L]||L}'`}`,this.parseError(A,{text:
|
|
7
|
+
`,{len:0})}isUnfinished(){return c1.test(this.chunk)||F1.has(this.prevTag())}pair(F){let T=this.ends[this.ends.length-1];if(!T||F!==T.tag){if(T?.tag==="OUTDENT"){let U=this.indents[this.indents.length-1];if(U)this.outdentTo(this.indent-U);return this.pair(F)}y(`unmatched ${F}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let F=V1.exec(this.chunk);if(!F)return 0;let T=F[0],U=this.prev();if(U&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))U[0]="FROM";let Y;switch(T){case"'":Y=y1;break;case'"':Y=C1;break;case"'''":Y=k1;break;case'"""':Y=h1;break}let{tokens:A,index:$}=this.matchWithInterpolations(Y,T),W=T.length===3,M=null;if(W)M=this.processHeredocIndent($,T,A);return this.mergeInterpolationTokens(A,{quote:T,indent:M,endOffset:$}),$}processHeredocIndent(F,T,U){let Y=F-T.length,A=Y-1;while(A>=0&&this.chunk[A]!==`
|
|
8
|
+
`)A--;A++;let $=this.chunk.slice(A,Y),W=/^\s*$/.test($)?$.length:null,M="";for(let Q of U)if(Q[0]==="NEOSTRING")M+=Q[1];let D=null,Z;Y1.lastIndex=0;while(Z=Y1.exec(M))if(D===null||Z[1].length>0&&Z[1].length<D.length)D=Z[1];if(W===null)return D;if(D===null)return" ".repeat(W);if(W<=D.length)return" ".repeat(W);return D}matchWithInterpolations(F,T,U,Y){if(!U)U=T;if(!Y)Y=/^[#$]\{/;let A=[],$=T.length;if(this.chunk.slice(0,$)!==T)return null;let W=this.chunk.slice($);while(!0){let[M]=F.exec(W);A.push(["NEOSTRING",M,{offset:$}]),W=W.slice(M.length),$+=M.length;let D=Y.exec(W);if(!D)break;let Q=D[0].length-1,X=W.slice(Q),J=new x().tokenize(X,{row:this.row,col:this.col+$+Q,untilBalanced:!0,rewrite:!1}),K=J.index+Q;if(W[K-1]==="}"){let z=J.tokens[0],H=J.tokens[J.tokens.length-1];z[0]="INTERPOLATION_START",z[1]="(",H[0]="INTERPOLATION_END",H[1]=")"}if(J.tokens[1]?.[0]==="TERMINATOR")J.tokens.splice(1,1);let G=J.tokens.length;if(G>2&&J.tokens[G-3]?.[0]==="INDENT"&&J.tokens[G-2]?.[0]==="OUTDENT")J.tokens.splice(G-3,2);A.push(["TOKENS",J.tokens]),W=W.slice(K),$+=K}if(W.slice(0,U.length)!==U)y(`missing ${U}`,{row:this.row,col:this.col});return{tokens:A,index:$+U.length}}mergeInterpolationTokens(F,{quote:T,indent:U,endOffset:Y}){if(F.length>1)this.emit("STRING_START","(",{len:T?.length||0,data:{quote:T}});for(let A=0;A<F.length;A++){let[$,W]=F[A];if($==="TOKENS")for(let M of W)this.tokens.push(M);else if($==="NEOSTRING"){let M=W;if(U){let D=new RegExp("\\n"+U,"g");M=M.replace(D,`
|
|
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
|
+
${D.showPosition()}
|
|
11
|
+
Expecting ${$.join(", ")}, got '${this.tokenNames[L]||L}'`;else return`Parse error on line ${I+1}: Unexpected ${L===T?"end of input":`'${this.tokenNames[L]||L}'`}`,this.parseError(A,{text:D.match,token:this.tokenNames[L]||L,line:D.yylineno,loc:N,expected:$})})(),Error(A)}if(Y>0)if(P.push(L,Y),q.push(D.yytext),Z.push(D.yylloc),L=null,!z){if([w,S,I,N]=[D.yyleng,D.yytext,D.yylineno,D.yylloc],O>0)O--}else[L,z]=[z,null];else if(Y<0){if(W=this.ruleTable[-Y*2+1],j.$=q[q.length-W],[Q,X]=[Z[Z.length-(W||1)],Z[Z.length-1]],j._$={first_line:Q.first_line,last_line:X.last_line,first_column:Q.first_column,last_column:X.last_column},R)j._$.range=[Q.range[0],X.range[1]];if(H=this.ruleActions.apply(j,[-Y,q,Z,_.yy]),H!=null)j.$=H;if(W)P.length-=W*2,q.length-=W,Z.length-=W;P.push(this.ruleTable[-Y*2]),q.push(j.$),Z.push(j._$),J=G[P[P.length-2]][P[P.length-1]],P.push(J)}else if(Y===0)return q[q.length-1]}},trace(){},yy:{}},s1=(F={})=>{let T=Object.create(i1);return Object.defineProperty(T,"yy",{value:{...F},enumerable:!1,writable:!0,configurable:!0}),T},b=s1();var e1=b.parse.bind(b);var E=(F,T)=>F instanceof String?F[T]:void 0,B=(F)=>F instanceof String?F.valueOf():F,a1=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function p(F){if(!Array.isArray(F)||F.length===0)return!1;let T=F[0]?.valueOf?.()??F[0];if(a1.has(T))return!0;return F.length<=4&&!F.some(Array.isArray)}function l(F){if(Array.isArray(F))return"(???)";if(typeof F==="number")return String(F);if(F===null)return"null";if(F==="")return'""';let T=String(F);if(T[0]==="/"&&T.indexOf(`
|
|
12
12
|
`)>=0){let U=T.match(/\/([gimsuvy]*)$/),Y=U?U[1]:"",A=T.slice(1);return A=Y?A.slice(0,-Y.length-1):A.slice(0,-1),`"/${A.split(`
|
|
13
|
-
`).map((
|
|
14
|
-
`)}let Y=F[0];if(p(F)&&F.slice(1).every((Z)=>!Array.isArray(Z)||p(Z))){let Q=`(${F.map((X)=>Array.isArray(X)?
|
|
15
|
-
`))return" ".repeat(T)+Q}let $=" ".repeat(T),W;if(Array.isArray(Y)){if(W=
|
|
13
|
+
`).map((M)=>M.replace(/#.*$/,"").trim()).join("")}/${Y}"`}return T}function v(F,T=0,U=!1){if(!Array.isArray(F))return l(F);if(U&&F[0]==="program"){let Z=F[1],X=[Array.isArray(Z)?"(program":"(program "+l(Z)],J=Array.isArray(Z)?1:2;for(let K=J;K<F.length;K++){let G=v(F[K],2,!1);X.push(G[0]==="("?" "+G:G)}return X.push(")"),X.join(`
|
|
14
|
+
`)}let Y=F[0];if(p(F)&&F.slice(1).every((Z)=>!Array.isArray(Z)||p(Z))){let Q=`(${F.map((X)=>Array.isArray(X)?v(X,0,!1):l(X)).join(" ")})`;if(!Q.includes(`
|
|
15
|
+
`))return" ".repeat(T)+Q}let $=" ".repeat(T),W;if(Array.isArray(Y)){if(W=v(Y,0,!1),W.includes(`
|
|
16
16
|
`))W=W.split(`
|
|
17
17
|
`).map((Q,X)=>X===0?Q:" ".repeat(T+2)+Q).join(`
|
|
18
|
-
`)}else W=l(Y);let
|
|
19
|
-
`)){
|
|
20
|
-
`)}class
|
|
21
|
-
`))return`\`${W.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let
|
|
18
|
+
`)}else W=l(Y);let M=[`${$}(${W}`],D=Y==="block";for(let Z=1;Z<F.length;Z++){let Q=F[Z];if(!Array.isArray(Q))M[M.length-1]+=" "+l(Q);else{let X=p(Q)&&Q.every((J)=>!Array.isArray(J)||p(J));if(!D&&X){let J=v(Q,0,!1);if(!J.includes(`
|
|
19
|
+
`)){M[M.length-1]+=" "+J;continue}}M.push(v(Q,T+2,!1))}}return M[M.length-1]+=")",M.join(`
|
|
20
|
+
`)}class C{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",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[T,...U]=F;if(T=B(T),Array.isArray(T)){F.forEach((Y)=>this.collectProgramVariables(Y));return}if(T==="export"||T==="export-default"||T==="export-all"||T==="export-from")return;if(T==="state"||T==="computed"){let[Y]=U,A=B(Y)??Y;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(T==="readonly")return;if(C.ASSIGNMENT_OPS.has(T)){let[Y,A]=U;if(typeof Y==="string"||Y instanceof String){let $=B(Y);if(!this.reactiveVars?.has($))this.programVars.add($)}else if(Array.isArray(Y)&&Y[0]==="array")this.collectVarsFromArray(Y,this.programVars);else if(Array.isArray(Y)&&Y[0]==="object")this.collectVarsFromObject(Y,this.programVars);this.collectProgramVariables(A);return}if(T==="def"||T==="->"||T==="=>")return;if(T==="if"){let[Y,A,$]=U;if(this.collectProgramVariables(Y),this.collectProgramVariables(A),$)this.collectProgramVariables($);return}if(T==="unless"){let[Y,A]=U;this.collectProgramVariables(Y),this.collectProgramVariables(A);return}if(T==="try"){if(this.collectProgramVariables(U[0]),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[Y,A]=U[1];if(Y&&Array.isArray(Y)&&Y[0]==="object")Y.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(Y&&Array.isArray(Y)&&Y[0]==="array")Y.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(A)}if(U.length===3)this.collectProgramVariables(U[2]);else if(U.length===2&&(!Array.isArray(U[1])||U[1][0]==="block"))this.collectProgramVariables(U[1]);return}U.forEach((Y)=>this.collectProgramVariables(Y))}collectFunctionVariables(F){let T=new Set,U=(Y)=>{if(!Array.isArray(Y))return;let[A,...$]=Y;if(A=B(A),Array.isArray(A)){Y.forEach((W)=>U(W));return}if(C.ASSIGNMENT_OPS.has(A)){let[W,M]=$;if(typeof W==="string")T.add(W);else if(Array.isArray(W)&&W[0]==="array")this.collectVarsFromArray(W,T);else if(Array.isArray(W)&&W[0]==="object")this.collectVarsFromObject(W,T);U(M);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(U($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[W,M]=$[1];if(W&&Array.isArray(W)&&W[0]==="object")W.slice(1).forEach((D)=>{if(Array.isArray(D)&&D.length===2&&typeof D[1]==="string")T.add(D[1])});else if(W&&Array.isArray(W)&&W[0]==="array")W.slice(1).forEach((D)=>{if(typeof D==="string")T.add(D)});U(M)}if($.length===3)U($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))U($[1]);return}$.forEach((W)=>U(W))};return U(F),T}generate(F,T="statement"){if(F instanceof String){if(E(F,"await")===!0)return`await ${B(F)}()`;if(E(F,"predicate"))return`(${B(F)} != null)`;if(E(F,"delimiter")==="///"&&E(F,"heregex")){let M=B(F),D=M.match(/^\/(.*)\/([gimsuvy]*)$/s);if(D){let[,Z,Q]=D;return`/${this.processHeregex(Z)}/${Q}`}return M}let W=E(F,"quote");if(W){let M=B(F);if(W==='"""'||W==="'''"){let Z=this.extractStringContent(F);return Z=Z.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${Z}\``}if(M[0]===W)return M;let D=M.slice(1,-1);return`${W}${D}${W}`}F=B(F)}if(typeof F==="string"){if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",F);let W=F.slice(1,-1);if(W.includes(`
|
|
21
|
+
`))return`\`${W.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let M=W.includes("'")&&!W.includes('"')?'"':"'",D=W.replace(new RegExp(M,"g"),`\\${M}`);return`${M}${D}${M}`}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[U,...Y]=F,A=E(U,"await");U=B(U);let $=C.GENERATORS[U];if($)return this[$](U,Y,T,F);if(typeof U==="string"&&!U.startsWith('"')&&!U.startsWith("'")){if(C.NUMBER_START_RE.test(U))return U;if(U==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Q=Y.map((X)=>this.unwrap(this.generate(X,"value"))).join(", ");return`super.${this.currentMethodName}(${Q})`}if(T==="statement"&&Y.length===1){let Q=this.findPostfixConditional(Y[0]);if(Q){let X=this.rebuildWithoutConditional(Q),J=this.generate(U,"value"),K=this.generate(Q.condition,"value"),G=this.generate(X,"value"),z=`${J}(${G})`;return Q.type==="unless"?`if (!${K}) ${z}`:`if (${K}) ${z}`}}let W=A===!0,M=this.generate(U,"value"),D=Y.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),Z=`${M}(${D})`;return W?`await ${Z}`:Z}if(Array.isArray(U)&&typeof U[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(U[0]))return`(${F.map((D)=>this.generate(D,"value")).join(", ")})`}if(Array.isArray(U)){if(U[0]==="."&&(U[2]==="new"||B(U[2])==="new")){let Q=U[1],X=this.generate(Q,"value"),J=Y.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`new ${Array.isArray(Q)?`(${X})`:X}(${J})`}if(T==="statement"&&Y.length===1){let Q=this.findPostfixConditional(Y[0]);if(Q){let X=this.rebuildWithoutConditional(Q),J=this.generate(U,"value"),K=this.generate(Q.condition,"value"),G=this.generate(X,"value"),z=`${J}(${G})`;return Q.type==="unless"?`if (!${K}) ${z}`:`if (${K}) ${z}`}}let W=!1,M;if(U[0]==="."&&E(U[2],"await")===!0){W=!0;let[Q,X]=U.slice(1),J=this.generate(Q,"value");M=`${C.NUMBER_LITERAL_RE.test(J)||Array.isArray(Q)&&(Q[0]==="object"||Q[0]==="await"||Q[0]==="yield")?`(${J})`:J}.${B(X)}`}else M=this.generate(U,"value");let D=Y.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),Z=`${M}(${D})`;return W?`await ${Z}`:Z}throw Error(`Unknown s-expression type: ${U}`)}generateProgram(F,T,U,Y){let A="",$=[],W=[],M=[];for(let X of T){if(!Array.isArray(X)){M.push(X);continue}let J=X[0];if(J==="import")$.push(X);else if(J==="export"||J==="export-default"||J==="export-all"||J==="export-from")W.push(X);else M.push(X)}let D=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],Z=M.map((X,J)=>{let K=M.length===1&&$.length===0&&W.length===0,G=Array.isArray(X)&&X[0]==="object",z=G&&X.length===2&&Array.isArray(X[1])&&Array.isArray(X[1][1])&&X[1][1][0]==="comprehension",H=Array.isArray(X)&&(X[0]==="comprehension"||X[0]==="object-comprehension"||X[0]==="do-iife"),R=this.programVars.size===0,O=K&&G&&R&&!H&&!z,u=J===M.length-1&&H,P;if(O)P=`(${this.generate(X,"value")})`;else if(u)P=this.generate(X,"value");else P=this.generate(X,"statement");if(P&&!P.endsWith(";")){let L=Array.isArray(X)?X[0]:null;if(!D.includes(L)||!P.endsWith("}"))return P+";"}return P}).join(`
|
|
22
22
|
`),Q=!1;if($.length>0)A+=$.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
|
|
23
23
|
`),Q=!0;if(this.programVars.size>0){let X=Array.from(this.programVars).sort().join(", ");if(Q)A+=`
|
|
24
24
|
`;A+=`let ${X};
|
|
@@ -47,132 +47,132 @@ _setDataSection();
|
|
|
47
47
|
|
|
48
48
|
function _setDataSection() {
|
|
49
49
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
50
|
-
}`;return A}generateBinaryOp(F,T,U,Y){if((F==="+"||F==="-")&&T.length===1)return`(${F}${this.generate(T[0],"value")})`;let[A,$]=T;if(F==="!?"){let W=this.generate(A,"value"),
|
|
50
|
+
}`;return A}generateBinaryOp(F,T,U,Y){if((F==="+"||F==="-")&&T.length===1)return`(${F}${this.generate(T[0],"value")})`;let[A,$]=T;if(F==="!?"){let W=this.generate(A,"value"),M=this.generate($,"value");return`(${W} !== undefined ? ${W} : ${M})`}if(F==="==")F="===";if(F==="!=")F="!==";return`(${this.generate(A,"value")} ${F} ${this.generate($,"value")})`}generateModulo(F,T){let[U,Y]=T;return this.helpers.add("modulo"),`modulo(${this.generate(U,"value")}, ${this.generate(Y,"value")})`}generateFloorDiv(F,T){let[U,Y]=T;return`Math.floor(${this.generate(U,"value")} / ${this.generate(Y,"value")})`}generateFloorDivAssign(F,T){let[U,Y]=T,A=this.generate(U,"value"),$=this.generate(Y,"value");return`${A} = Math.floor(${A} / ${$})`}generateAssignment(F,T,U,Y){let[A,$]=T,W=F==="?="?"??=":F,M=Array.isArray($)&&($[0]==="->"||$[0]==="=>"||$[0]==="def");if(A instanceof String&&E(A,"await")!==void 0&&!M){let z=E(A,"await")===!0?"!":"&";throw Error(`Cannot use ${z} sigil in variable declaration '${B(A)}'.`)}if(A instanceof String&&E(A,"await")===!0&&M)this.nextFunctionIsVoid=!0;let D=Array.isArray(A)&&A[0]==="array"&&A.length===1,Z=Array.isArray(A)&&A[0]==="object"&&A.length===1;if(D||Z){let z=this.generate($,"value");return Z&&U==="statement"?`(${z})`:z}if(Array.isArray($)&&W==="="&&$[0]==="control"){let[,z,H,R]=$,O=B(z),_=R[0]==="return",u=this.generate(A,"value");if(typeof A==="string")this.programVars.add(A);let P=this.generate(H,"value"),L=R.length>1?R[1]:null,q=_?L?`return ${this.generate(L,"value")}`:"return":L?`throw ${this.generate(L,"value")}`:"throw new Error()";if(U==="value"){if(O==="??")return`(() => { const __v = ${P}; if (__v == null) ${q}; return (${u} = __v); })()`;if(O==="||")return`(() => { const __v = ${P}; if (!__v) ${q}; return (${u} = __v); })()`;return`(() => { const __v = ${P}; if (__v) ${q}; return (${u} = __v); })()`}if(O==="??")return`if ((${u} = ${P}) == null) ${q}`;if(O==="||")return`if (!(${u} = ${P})) ${q}`;return`if ((${u} = ${P})) ${q}`}if(Array.isArray(A)&&A[0]==="array"){let z=A.slice(1).findIndex((H)=>Array.isArray(H)&&H[0]==="..."||H==="...");if(z!==-1&&z<A.length-2){let H=A.slice(1),R=H.slice(z+1),O=R.length;if(O>0){let _=this.generate($,"value"),P=H.slice(0,z).map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),L=R.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");this.helpers.add("slice"),H.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=H[z],w=Array.isArray(q)&&q[0]==="..."?q[1]:null,I=[];if(P)I.push(`[${P}] = ${_}`);if(w)I.push(`[...${w}] = ${_}.slice(${z}, -${O})`);return I.push(`[${L}] = slice.call(${_}, -${O})`),I.join(", ")}}}if(U==="statement"&&F==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[z,H,R]=$;if(Array.isArray(R)&&(R[0]==="unless"||R[0]==="if")&&R.length===3){let[O,_,u]=R,P=Array.isArray(u)&&u.length===1?u[0]:u,L=[z,H,P],q=this.generate(A,"value"),w=this.generate(_,"value"),I=this.generate(L,"value");return O==="unless"?`if (!${w}) ${q} = ${I}`:`if (${w}) ${q} = ${I}`}}if(U==="statement"&&F==="="&&Array.isArray($)&&$.length===3){let[z,H,R]=$,O=Array.isArray(R)&&R.length===1&&(!Array.isArray(R[0])||R[0][0]!=="block");if((z==="unless"||z==="if")&&O){let _=Array.isArray(R)&&R.length===1?R[0]:R,u=this.generate(A,"value"),P=this.unwrapLogical(this.generate(H,"value")),L=this.generate(_,"value");if(z==="unless"){if(P.includes(" ")||/[<>=&|]/.test(P))P=`(${P})`;return`if (!${P}) ${u} = ${L}`}return`if (${P}) ${u} = ${L}`}}let Q;if(A instanceof String&&E(A,"await")!==void 0)Q=B(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))Q=`${A}.value`;else this.suppressReactiveUnwrap=!0,Q=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let X=this.generate($,"value");if(!(Array.isArray($)&&$[0]==="object"))X=this.unwrap(X);let K=U==="value",G=U==="statement"&&Array.isArray(A)&&A[0]==="object";if(K||G)return`(${Q} ${W} ${X})`;return`${Q} ${W} ${X}`}generatePropertyAccess(F,T,U,Y){let[A,$]=T;this.suppressReactiveUnwrap=!0;let W=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let D=C.NUMBER_LITERAL_RE.test(W)||Array.isArray(A)&&(A[0]==="object"||A[0]==="await"||A[0]==="yield")?`(${W})`:W;if(E($,"await")===!0)return`await ${D}.${B($)}()`;if(E($,"predicate"))return`(${D}.${B($)} != null)`;return`${D}.${B($)}`}generateOptionalProperty(F,T){let[U,Y]=T;return`${this.generate(U,"value")}?.${Y}`}generateRegexIndex(F,T){let[U,Y,A]=T;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(U,"value"),W=this.generate(Y,"value"),M=A!==null?this.generate(A,"value"):"0",D=W.includes("/m")?", true":"";return`(_ = toSearchable(${$}${D}).match(${W})) && _[${M}]`}generateIndexAccess(F,T){let[U,Y]=T;if(Array.isArray(Y)&&(Y[0]===".."||Y[0]==="...")){let A=Y[0]==="..",$=this.generate(U,"value"),[W,M]=Y.slice(1);if(W===null&&M===null)return`${$}.slice()`;if(W===null){if(A&&this.isNegativeOneLiteral(M))return`${$}.slice(0)`;let Q=this.generate(M,"value");return A?`${$}.slice(0, +${Q} + 1 || 9e9)`:`${$}.slice(0, ${Q})`}if(M===null)return`${$}.slice(${this.generate(W,"value")})`;let D=this.generate(W,"value");if(A&&this.isNegativeOneLiteral(M))return`${$}.slice(${D})`;let Z=this.generate(M,"value");return A?`${$}.slice(${D}, +${Z} + 1 || 9e9)`:`${$}.slice(${D}, ${Z})`}return`${this.generate(U,"value")}[${this.unwrap(this.generate(Y,"value"))}]`}generateOptIndex(F,T){let[U,Y]=T;return`${this.generate(U,"value")}?.[${this.generate(Y,"value")}]`}generateOptCall(F,T){let[U,...Y]=T;return`${this.generate(U,"value")}?.(${Y.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef(F,T,U,Y){let[A,$,W]=T,M=E(A,"await")===!0,D=B(A),Z=this.generateParamList($),Q=this.generateFunctionBody(W,$,M),X=this.containsAwait(W),J=this.containsYield(W);return`${X?"async ":""}function${J?"*":""} ${D}(${Z}) ${Q}`}generateThinArrow(F,T,U,Y){let[A,$]=T,W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let M=this.generateParamList(A),D=this.generateFunctionBody($,A,W),Z=this.containsAwait($),Q=this.containsYield($),X=`${Z?"async ":""}function${Q?"*":""}(${M}) ${D}`;return U==="value"?`(${X})`:X}generateFatArrow(F,T,U,Y){let[A,$]=T,W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let M=this.generateParamList(A),Z=A.length===1&&typeof A[0]==="string"&&!M.includes("=")&&!M.includes("...")&&!M.includes("[")&&!M.includes("{")?M:`(${M})`,X=this.containsAwait($)?"async ":"";if(!W){if(Array.isArray($)&&$[0]==="block"&&$.length===2){let K=$[1];if(!Array.isArray(K)||K[0]!=="return")return`${X}${Z} => ${this.generate(K,"value")}`}if(!Array.isArray($)||$[0]!=="block")return`${X}${Z} => ${this.generate($,"value")}`}let J=this.generateFunctionBody($,A,W);return`${X}${Z} => ${J}`}generateReturn(F,T,U,Y){if(T.length===0)return"return";let[A]=T;if(this.sideEffectOnly)return"return";if(Array.isArray(A)&&A[0]==="unless"){let[,$,W]=A,M=Array.isArray(W)&&W.length===1?W[0]:W;return`if (!${this.generate($,"value")}) return ${this.generate(M,"value")}`}if(Array.isArray(A)&&A[0]==="if"){let[,$,W,...M]=A;if(M.length===0){let D=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.generate($,"value")}) return ${this.generate(D,"value")}`}}if(Array.isArray(A)&&A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,$]=A,[,W,M]=$,D=Array.isArray(M)&&M.length===1?M[0]:M;return`if (!${this.generate(W,"value")}) return ${this.generate(["new",D],"value")}`}return`return ${this.generate(A,"value")}`}generateState(F,T){let[U,Y]=T;this.usesReactivity=!0;let A=B(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(Y,"value")})`}generateComputed(F,T){let[U,Y]=T;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=B(U)??U;return this.reactiveVars.add(A),`const ${A} = __computed(() => ${this.generate(Y,"value")})`}generateReadonly(F,T){let[U,Y]=T;return`const ${B(U)??U} = ${this.generate(Y,"value")}`}generateEffect(F,T){let[U,Y]=T;this.usesReactivity=!0;let A;if(Array.isArray(Y)&&Y[0]==="block")A=`{
|
|
51
51
|
${this.withIndent(()=>this.formatStatements(Y.slice(1))).join(`
|
|
52
52
|
`)}
|
|
53
|
-
${this.indent()}}`;else if(Array.isArray(Y)&&(Y[0]==="->"||Y[0]==="=>")){let W=this.generate(Y,"value");if(U)return`const ${
|
|
53
|
+
${this.indent()}}`;else if(Array.isArray(Y)&&(Y[0]==="->"||Y[0]==="=>")){let W=this.generate(Y,"value");if(U)return`const ${B(U)??this.generate(U,"value")} = __effect(${W})`;return`__effect(${W})`}else A=`{ ${this.generate(Y,"value")}; }`;let $=`__effect(() => ${A})`;if(U)return`const ${B(U)??this.generate(U,"value")} = ${$}`;return $}generateBreak(){return"break"}generateBreakIf(F,T){return`if (${this.generate(T[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf(F,T){return`if (${this.generate(T[0],"value")}) continue`}generateExistential(F,T){return`(${this.generate(T[0],"value")} != null)`}generateTernary(F,T){let[U,Y,A]=T;return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(Y,"value")} : ${this.generate(A,"value")})`}generateLoop(F,T){return`while (true) ${this.generateLoopBody(T[0])}`}generateAwait(F,T){return`await ${this.generate(T[0],"value")}`}generateYield(F,T){return T.length===0?"yield":`yield ${this.generate(T[0],"value")}`}generateYieldFrom(F,T){return`yield* ${this.generate(T[0],"value")}`}generateIf(F,T,U,Y){if(F==="unless"){let[M,D]=T;if(Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block"))D=D[0];if(U==="value")return`(!${this.generate(M,"value")} ? ${this.extractExpression(D)} : undefined)`;let Z=this.unwrap(this.generate(M,"value"));if(/[ <>=&|]/.test(Z))Z=`(${Z})`;return`if (!${Z}) `+this.generate(D,"statement")}let[A,$,...W]=T;return U==="value"?this.generateIfAsExpression(A,$,W):this.generateIfAsStatement(A,$,W)}generateForIn(F,T,U,Y){let[A,$,W,M,D]=T;if(U==="value"&&this.comprehensionDepth===0){let H=["for-in",A,$,W];return this.generate(["comprehension",D,[H],M?[M]:[]],U)}let Z=Array.isArray(A)?A:[A],Q=Z.length===0,[X,J]=Q?["_i",null]:Z,K=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(W&&W!==null){let H=this.generate($,"value"),R=J||"_i",O=this.generate(W,"value"),_=this.isNegativeStep(W),u=_&&(W[1]==="1"||W[1]===1||B(W[1])==="1"),P=!_&&(W==="1"||W===1||B(W)==="1"),L;if(u)L=`for (let ${R} = ${H}.length - 1; ${R} >= 0; ${R}--) `;else if(P)L=`for (let ${R} = 0; ${R} < ${H}.length; ${R}++) `;else if(_)L=`for (let ${R} = ${H}.length - 1; ${R} >= 0; ${R} += ${O}) `;else L=`for (let ${R} = 0; ${R} < ${H}.length; ${R} += ${O}) `;if(Array.isArray(D)&&D[0]==="block"){let q=D.slice(1);this.indentLevel++;let w=[];if(!Q)w.push(`const ${K} = ${H}[${R}];`);if(M)w.push(`if (${this.generate(M,"value")}) {`),this.indentLevel++,w.push(...this.formatStatements(q)),this.indentLevel--,w.push(this.indent()+"}");else w.push(...q.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,L+`{
|
|
54
54
|
${w.map((I)=>this.indent()+I).join(`
|
|
55
55
|
`)}
|
|
56
|
-
${this.indent()}}`}if(Q)return
|
|
57
|
-
`,this.indentLevel++,
|
|
58
|
-
`,
|
|
59
|
-
`,this.indentLevel++,
|
|
56
|
+
${this.indent()}}`}if(Q)return M?L+`{ if (${this.generate(M,"value")}) ${this.generate(D,"statement")}; }`:L+`{ ${this.generate(D,"statement")}; }`;return M?L+`{ const ${K} = ${H}[${R}]; if (${this.generate(M,"value")}) ${this.generate(D,"statement")}; }`:L+`{ const ${K} = ${H}[${R}]; ${this.generate(D,"statement")}; }`}if(J){let H=this.generate($,"value"),R=`for (let ${J} = 0; ${J} < ${H}.length; ${J}++) `;if(Array.isArray(D)&&D[0]==="block"){if(R+=`{
|
|
57
|
+
`,this.indentLevel++,R+=this.indent()+`const ${K} = ${H}[${J}];
|
|
58
|
+
`,M)R+=this.indent()+`if (${this.unwrap(this.generate(M,"value"))}) {
|
|
59
|
+
`,this.indentLevel++,R+=this.formatStatements(D.slice(1)).join(`
|
|
60
60
|
`)+`
|
|
61
|
-
`,this.indentLevel--,
|
|
62
|
-
`;else
|
|
61
|
+
`,this.indentLevel--,R+=this.indent()+`}
|
|
62
|
+
`;else R+=this.formatStatements(D.slice(1)).join(`
|
|
63
63
|
`)+`
|
|
64
|
-
`;this.indentLevel--,
|
|
65
|
-
${
|
|
64
|
+
`;this.indentLevel--,R+=this.indent()+"}"}else R+=M?`{ const ${K} = ${H}[${J}]; if (${this.unwrap(this.generate(M,"value"))}) ${this.generate(D,"statement")}; }`:`{ const ${K} = ${H}[${J}]; ${this.generate(D,"statement")}; }`;return R}let G=Array.isArray($)&&$[0];if(G instanceof String)G=B(G);if(G===".."||G==="..."){let H=G==="...",[R,O]=$.slice(1),_=(u)=>typeof u==="number"||typeof u==="string"&&!u.includes("(")||u instanceof String&&!B(u).includes("(")||Array.isArray(u)&&u[0]===".";if(_(R)&&_(O)){let u=this.generate(R,"value"),P=this.generate(O,"value"),L=H?"<":"<=",q=W?`${K} += ${this.generate(W,"value")}`:`${K}++`,w=`for (let ${K} = ${u}; ${K} ${L} ${P}; ${q}) `;return w+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),w}}let z=`for (const ${K} of ${this.generate($,"value")}) `;return z+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),z}generateForOf(F,T,U,Y){let[A,$,W,M,D]=T,[Z,Q]=Array.isArray(A)?A:[A],X=this.generate($,"value"),J=`for (const ${Z} in ${X}) `;if(W&&!Q&&!M){if(Array.isArray(D)&&D[0]==="block"){this.indentLevel++;let K=[`if (!Object.hasOwn(${X}, ${Z})) continue;`,...D.slice(1).map((G)=>this.addSemicolon(G,this.generate(G,"statement")))];return this.indentLevel--,J+`{
|
|
65
|
+
${K.map((G)=>this.indent()+G).join(`
|
|
66
66
|
`)}
|
|
67
|
-
${this.indent()}}`}return J+`{ if (!Object.hasOwn(${X}, ${Z})) continue; ${this.generate(
|
|
68
|
-
${
|
|
67
|
+
${this.indent()}}`}return J+`{ if (!Object.hasOwn(${X}, ${Z})) continue; ${this.generate(D,"statement")}; }`}if(Q){if(Array.isArray(D)&&D[0]==="block"){let G=D.slice(1);this.indentLevel++;let z=[];if(W)z.push(`if (!Object.hasOwn(${X}, ${Z})) continue;`);if(z.push(`const ${Q} = ${X}[${Z}];`),M)z.push(`if (${this.generate(M,"value")}) {`),this.indentLevel++,z.push(...G.map((H)=>this.addSemicolon(H,this.generate(H,"statement")))),this.indentLevel--,z.push(this.indent()+"}");else z.push(...G.map((H)=>this.addSemicolon(H,this.generate(H,"statement"))));return this.indentLevel--,J+`{
|
|
68
|
+
${z.map((H)=>this.indent()+H).join(`
|
|
69
69
|
`)}
|
|
70
|
-
${this.indent()}}`}let
|
|
71
|
-
${
|
|
70
|
+
${this.indent()}}`}let K="";if(W)K+=`if (!Object.hasOwn(${X}, ${Z})) continue; `;if(K+=`const ${Q} = ${X}[${Z}]; `,M)K+=`if (${this.generate(M,"value")}) `;return K+=`${this.generate(D,"statement")};`,J+`{ ${K} }`}return J+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),J}generateForAs(F,T,U,Y){let A=Array.isArray(T[0])?T[0]:[T[0]],[$]=A,W=T[1],M=T[2],D=T[3],Z=T[4],Q=!1,X=[];if(Array.isArray($)&&$[0]==="array"){let H=$.slice(1),R=H.findIndex((O)=>Array.isArray(O)&&O[0]==="..."||O==="...");if(R!==-1&&R<H.length-1){Q=!0;let O=H.slice(R+1),_=O.length,u=H.slice(0,R),P=H[R],L=Array.isArray(P)&&P[0]==="..."?P[1]:"_rest",q=u.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),w=q?`${q}, ...${L}`:`...${L}`,I=O.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");X.push(`[${w}] = _item`),X.push(`[${I}] = ${L}.splice(-${_})`),this.helpers.add("slice"),H.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 J=this.generate(W,"value"),K=M?"await ":"",G;if(Q)G="_item";else if(Array.isArray($)&&($[0]==="array"||$[0]==="object"))G=this.generateDestructuringPattern($);else G=$;let z=`for ${K}(const ${G} of ${J}) `;if(Q&&X.length>0){let H=this.unwrapBlock(Z),R=this.withIndent(()=>[...X.map((O)=>this.indent()+O+";"),...this.formatStatements(H)]);z+=`{
|
|
71
|
+
${R.join(`
|
|
72
72
|
`)}
|
|
73
|
-
${this.indent()}}`}else
|
|
73
|
+
${this.indent()}}`}else z+=D?this.generateLoopBodyWithGuard(Z,D):this.generateLoopBody(Z);return z}generateWhile(F,T){let U=T[0],Y=T.length===3?T[1]:null,A=T[T.length-1];return`while (${this.unwrap(this.generate(U,"value"))}) `+(Y?this.generateLoopBodyWithGuard(A,Y):this.generateLoopBody(A))}generateUntil(F,T){let[U,Y]=T;return`while (!(${this.unwrap(this.generate(U,"value"))})) `+this.generateLoopBody(Y)}generateRange(F,T){if(F==="..."){if(T.length===1)return`...${this.generate(T[0],"value")}`;let[W,M]=T,D=this.generate(W,"value"),Z=this.generate(M,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${D}, ${Z})`}let[U,Y]=T,A=this.generate(U,"value"),$=this.generate(Y,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${$})`}generateNot(F,T){let[U]=T;if(typeof U==="string"||U instanceof String)return`!${this.generate(U,"value")}`;if(Array.isArray(U)){if([".","?.","[]","optindex","optcall"].includes(U[0]))return`!${this.generate(U,"value")}`}let Y=this.generate(U,"value");return Y.startsWith("(")?`!${Y}`:`(!${Y})`}generateBitwiseNot(F,T){return`(~${this.generate(T[0],"value")})`}generateIncDec(F,T){let[U,Y]=T,A=this.generate(U,"value");return Y?`(${A}${F})`:`(${F}${A})`}generateTypeof(F,T){return`typeof ${this.generate(T[0],"value")}`}generateDelete(F,T){return`(delete ${this.generate(T[0],"value")})`}generateInstanceof(F,T,U,Y){let[A,$]=T,W=E(Y[0],"invert"),M=`(${this.generate(A,"value")} instanceof ${this.generate($,"value")})`;return W?`(!${M})`:M}generateIn(F,T,U,Y){let[A,$]=T,W=this.generate(A,"value"),M=E(Y[0],"invert");if(Array.isArray($)&&$[0]==="object"){let Q=`(${W} in ${this.generate($,"value")})`;return M?`(!${Q})`:Q}let D=this.generate($,"value"),Z=`(Array.isArray(${D}) || typeof ${D} === 'string' ? ${D}.includes(${W}) : (${W} in ${D}))`;return M?`(!${Z})`:Z}generateOf(F,T,U,Y){let[A,$]=T,W=this.generate(A,"value"),M=this.generate($,"value"),D=E(Y[0],"invert"),Z=`(${W} in ${M})`;return D?`(!${Z})`:Z}generateRegexMatch(F,T){let[U,Y]=T;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(Y,"value"),$=A.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(U,"value")}${$}).match(${A}))`}generateNew(F,T){let[U]=T;if(Array.isArray(U)&&(U[0]==="."||U[0]==="?.")){let[Y,A,$]=U;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${$}`;return`new ${this.generate(A,"value")}.${$}`}if(Array.isArray(U)){let[Y,...A]=U;return`new ${this.generate(Y,"value")}(${A.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(U,"value")}()`}generateLogicalAnd(F,T,U,Y){let A=this.flattenBinaryChain(Y).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(F,T,U,Y){let A=this.flattenBinaryChain(Y).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(F,T){let U=T.length>0&&T[T.length-1]===",",Y=T.map((A)=>{if(A===",")return"";if(A==="...")return"";if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return U?`[${Y},]`:`[${Y}]`}generateObject(F,T,U){if(T.length===1&&Array.isArray(T[0])&&Array.isArray(T[0][1])&&T[0][1][0]==="comprehension"){let[A,$]=T[0],[,W,M,D]=$;return this.generate(["object-comprehension",A,W,M,D],U)}return`{${T.map((A)=>{if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;let[$,W,M]=A,D;if(Array.isArray($)&&$[0]==="dynamicKey")D=`[${this.generate($[1],"value")}]`;else if(Array.isArray($)&&$[0]==="str")D=`[${this.generate($,"value")}]`;else D=this.generate($,"value");let Z=this.generate(W,"value");if(M==="=")return`${D} = ${Z}`;if(M===":")return`${D}: ${Z}`;if(D===Z&&!Array.isArray($))return D;return`${D}: ${Z}`}).join(", ")}}`}generateBlock(F,T,U){if(U==="statement")return`{
|
|
74
74
|
${this.withIndent(()=>this.formatStatements(T)).join(`
|
|
75
75
|
`)}
|
|
76
76
|
${this.indent()}}`;if(T.length===0)return"undefined";if(T.length===1)return this.generate(T[0],U);let Y=T[T.length-1];if(Array.isArray(Y)&&["break","continue","return","throw"].includes(Y[0])){let $=T.map((W)=>this.addSemicolon(W,this.generate(W,"statement")));return`{
|
|
77
77
|
${this.withIndent(()=>$.map((W)=>this.indent()+W).join(`
|
|
78
78
|
`))}
|
|
79
|
-
${this.indent()}}`}return`(${T.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(F,T,U){let Y=U==="value",A="try ",$=T[0];if(A+=Y&&Array.isArray($)&&$[0]==="block"?this.generateBlockWithReturns($):this.generate($,"statement"),T.length>=2&&Array.isArray(T[1])&&T[1].length===2&&T[1][0]!=="block"){let[W,
|
|
79
|
+
${this.indent()}}`}return`(${T.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(F,T,U){let Y=U==="value",A="try ",$=T[0];if(A+=Y&&Array.isArray($)&&$[0]==="block"?this.generateBlockWithReturns($):this.generate($,"statement"),T.length>=2&&Array.isArray(T[1])&&T[1].length===2&&T[1][0]!=="block"){let[W,M]=T[1];if(A+=" catch",W&&Array.isArray(W)&&(W[0]==="object"||W[0]==="array")){A+=" (error)";let D=`(${this.generate(W,"value")} = error)`;M=Array.isArray(M)&&M[0]==="block"?["block",D,...M.slice(1)]:["block",D,M]}else if(W)A+=` (${W})`;A+=" "+(Y&&Array.isArray(M)&&M[0]==="block"?this.generateBlockWithReturns(M):this.generate(M,"statement"))}else if(T.length===2)A+=" finally "+this.generate(T[1],"statement");if(T.length===3)A+=" finally "+this.generate(T[2],"statement");if(Y)return`(${this.containsAwait(T[0])||T[1]&&this.containsAwait(T[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(F,T,U){let[Y]=T;if(Array.isArray(Y)){let $=Y,W=null;if(Y[0]==="new"&&Array.isArray(Y[1])&&(Y[1][0]==="if"||Y[1][0]==="unless"))W="new",$=Y[1];else if(Y[0]==="if"||Y[0]==="unless")$=Y;if($[0]==="if"||$[0]==="unless"){let[M,D,Z]=$,Q=Array.isArray(Z)&&Z.length===1?Z[0]:Z;Y=W==="new"?["new",Q]:Q;let X=this.generate(D,"value"),J=`throw ${this.generate(Y,"value")}`;return M==="unless"?`if (!(${X})) {
|
|
80
80
|
${this.indent()} ${J};
|
|
81
81
|
${this.indent()}}`:`if (${X}) {
|
|
82
82
|
${this.indent()} ${J};
|
|
83
|
-
${this.indent()}}`}}let A=`throw ${this.generate(Y,"value")}`;return U==="value"?`(() => { ${A}; })()`:A}generateControl(F,T,U){let[Y,A,$]=T,W=
|
|
84
|
-
`;this.indentLevel++;for(let
|
|
83
|
+
${this.indent()}}`}}let A=`throw ${this.generate(Y,"value")}`;return U==="value"?`(() => { ${A}; })()`:A}generateControl(F,T,U){let[Y,A,$]=T,W=B(Y),M=$[0]==="return",D=this.generate(A,"value"),Z=$.length>1?$[1]:null,Q=M?Z?`return ${this.generate(Z,"value")}`:"return":Z?`throw ${this.generate(Z,"value")}`:"throw new Error()",X=this.wrapForCondition(D);if(U==="value"){if(W==="??")return`(() => { const __v = ${D}; if (__v == null) ${Q}; return __v; })()`;if(W==="||")return`(() => { const __v = ${D}; if (!__v) ${Q}; return __v; })()`;return`(() => { const __v = ${D}; if (__v) ${Q}; return __v; })()`}if(W==="??")return`if (${X} == null) ${Q}`;if(W==="||")return`if (!${X}) ${Q}`;return`if (${X}) ${Q}`}generateSwitch(F,T,U){let[Y,A,$]=T;if(Y===null)return this.generateSwitchAsIfChain(A,$,U);let W=`switch (${this.generate(Y,"value")}) {
|
|
84
|
+
`;this.indentLevel++;for(let M of A){let[,D,Z]=M;for(let Q of D){let X=B(Q)??Q,J;if(Array.isArray(X))J=this.generate(X,"value");else if(typeof X==="string"&&(X.startsWith('"')||X.startsWith("'")))J=`'${X.slice(1,-1)}'`;else J=this.generate(X,"value");W+=this.indent()+`case ${J}:
|
|
85
85
|
`}this.indentLevel++,W+=this.generateSwitchCaseBody(Z,U),this.indentLevel--}if($)W+=this.indent()+`default:
|
|
86
|
-
`,this.indentLevel++,W+=this.generateSwitchCaseBody($,U),this.indentLevel--;if(this.indentLevel--,W+=this.indent()+"}",U==="value")return`(${A.some((
|
|
87
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
88
|
-
`;for(let Q of A){let[X,J,
|
|
89
|
-
`,this.indentLevel++}else{let
|
|
90
|
-
`:this.indent()+`for (let ${w} = 0; ${w} < ${
|
|
91
|
-
`,this.indentLevel++,!
|
|
92
|
-
`}}else if(
|
|
93
|
-
`,this.indentLevel++,
|
|
94
|
-
`}else
|
|
95
|
-
`,this.indentLevel++}else if(X==="for-of"){let
|
|
96
|
-
`,this.indentLevel++,
|
|
97
|
-
`;if(
|
|
98
|
-
`}else if(X==="for-as"){let
|
|
99
|
-
`,this.indentLevel++}}for(let Q of $)
|
|
100
|
-
`,this.indentLevel++;let
|
|
101
|
-
`;else if(Array.isArray(X)&&Z.includes(X[0]))
|
|
102
|
-
`;else
|
|
103
|
-
`}else if(
|
|
104
|
-
`;else if(Array.isArray(Y)&&Z.includes(Y[0]))
|
|
105
|
-
`;else
|
|
106
|
-
`;for(let Q=0;Q<$.length;Q++)this.indentLevel--,
|
|
107
|
-
`;for(let Q=0;Q<A.length;Q++)this.indentLevel--,
|
|
108
|
-
`;return
|
|
109
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
110
|
-
`;this.indentLevel++,
|
|
111
|
-
`;for(let
|
|
112
|
-
`,this.indentLevel++,J)
|
|
113
|
-
`;if(G)
|
|
114
|
-
`}}for(let
|
|
115
|
-
`,this.indentLevel++;
|
|
116
|
-
`;for(let
|
|
117
|
-
`;for(let
|
|
118
|
-
`;return
|
|
119
|
-
`,this.indentLevel--,
|
|
120
|
-
`,$.length>0&&Array.isArray($[0])){let
|
|
121
|
-
`}else if(G)W+=this.indent()+`static ${
|
|
122
|
-
`;else W+=this.indent()+`${
|
|
123
|
-
`}this.indentLevel--}else if(Z){let Q=
|
|
124
|
-
`}else if(G)W+=this.indent()+`static ${
|
|
125
|
-
`;else W+=this.indent()+`${
|
|
126
|
-
`}for(let J of X)if(Array.isArray(J)&&J[0]==="class"){let[,
|
|
86
|
+
`,this.indentLevel++,W+=this.generateSwitchCaseBody($,U),this.indentLevel--;if(this.indentLevel--,W+=this.indent()+"}",U==="value")return`(${A.some((D)=>this.containsAwait(D[2]))||$&&this.containsAwait($)?"async ":""}() => { ${W} })()`;return W}generateWhen(){throw Error("when clause should be handled by switch")}generateComprehension(F,T,U){let[Y,A,$]=T;if(U==="statement")return this.generateComprehensionAsLoop(Y,A,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(Y,A,$,this.comprehensionTarget);let M=`(${this.containsAwait(Y)?"async ":""}() => {
|
|
87
|
+
`;this.indentLevel++,this.comprehensionDepth++,M+=this.indent()+`const result = [];
|
|
88
|
+
`;for(let Q of A){let[X,J,K,G]=Q;if(X==="for-in"){let z=G,H=Array.isArray(J)?J:[J],R=H.length===0,[O,_]=R?["_i",null]:H,u=Array.isArray(O)&&(O[0]==="array"||O[0]==="object")?this.generateDestructuringPattern(O):O;if(z&&z!==null){let P=Array.isArray(K)&&K[0];if(P instanceof String)P=B(P);if(P===".."||P==="..."){let q=P==="...",[w,I]=K.slice(1),N=this.generate(w,"value"),S=this.generate(I,"value"),j=this.generate(z,"value");M+=this.indent()+`for (let ${u} = ${N}; ${u} ${q?"<":"<="} ${S}; ${u} += ${j}) {
|
|
89
|
+
`,this.indentLevel++}else{let q=this.generate(K,"value"),w=_||"_i",I=this.generate(z,"value"),N=this.isNegativeStep(z);if(M+=N?this.indent()+`for (let ${w} = ${q}.length - 1; ${w} >= 0; ${w} += ${I}) {
|
|
90
|
+
`:this.indent()+`for (let ${w} = 0; ${w} < ${q}.length; ${w} += ${I}) {
|
|
91
|
+
`,this.indentLevel++,!R)M+=this.indent()+`const ${u} = ${q}[${w}];
|
|
92
|
+
`}}else if(_){let P=this.generate(K,"value");M+=this.indent()+`for (let ${_} = 0; ${_} < ${P}.length; ${_}++) {
|
|
93
|
+
`,this.indentLevel++,M+=this.indent()+`const ${u} = ${P}[${_}];
|
|
94
|
+
`}else M+=this.indent()+`for (const ${u} of ${this.generate(K,"value")}) {
|
|
95
|
+
`,this.indentLevel++}else if(X==="for-of"){let z=G,H=Array.isArray(J)?J:[J],[R,O]=H,_=Array.isArray(R)&&(R[0]==="array"||R[0]==="object")?this.generateDestructuringPattern(R):R,u=this.generate(K,"value");if(M+=this.indent()+`for (const ${_} in ${u}) {
|
|
96
|
+
`,this.indentLevel++,z)M+=this.indent()+`if (!Object.hasOwn(${u}, ${_})) continue;
|
|
97
|
+
`;if(O)M+=this.indent()+`const ${O} = ${u}[${_}];
|
|
98
|
+
`}else if(X==="for-as"){let z=Q[3],H=Array.isArray(J)?J:[J],[R]=H,O=Array.isArray(R)&&(R[0]==="array"||R[0]==="object")?this.generateDestructuringPattern(R):R;M+=this.indent()+`for ${z?"await ":""}(const ${O} of ${this.generate(K,"value")}) {
|
|
99
|
+
`,this.indentLevel++}}for(let Q of $)M+=this.indent()+`if (${this.generate(Q,"value")}) {
|
|
100
|
+
`,this.indentLevel++;let D=(Q)=>{if(typeof Q==="string"&&(Q==="break"||Q==="continue"))return!0;if(!Array.isArray(Q))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(Q[0]))return!0;if(Q[0]==="if"||Q[0]==="unless")return Q.slice(1).some(D);return Q.some(D)},Z=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(Y)&&Y[0]==="block")for(let Q=0;Q<Y.length-1;Q++){let X=Y[Q+1];if(Q!==Y.length-2||D(X))M+=this.indent()+this.generate(X,"statement")+`;
|
|
101
|
+
`;else if(Array.isArray(X)&&Z.includes(X[0]))M+=this.indent()+this.generate(X,"statement")+`;
|
|
102
|
+
`;else M+=this.indent()+`result.push(${this.generate(X,"value")});
|
|
103
|
+
`}else if(D(Y))M+=this.indent()+this.generate(Y,"statement")+`;
|
|
104
|
+
`;else if(Array.isArray(Y)&&Z.includes(Y[0]))M+=this.indent()+this.generate(Y,"statement")+`;
|
|
105
|
+
`;else M+=this.indent()+`result.push(${this.generate(Y,"value")});
|
|
106
|
+
`;for(let Q=0;Q<$.length;Q++)this.indentLevel--,M+=this.indent()+`}
|
|
107
|
+
`;for(let Q=0;Q<A.length;Q++)this.indentLevel--,M+=this.indent()+`}
|
|
108
|
+
`;return M+=this.indent()+`return result;
|
|
109
|
+
`,this.indentLevel--,this.comprehensionDepth--,M+=this.indent()+"})()",M}generateObjectComprehension(F,T,U){let[Y,A,$,W]=T,M=`(() => {
|
|
110
|
+
`;this.indentLevel++,M+=this.indent()+`const result = {};
|
|
111
|
+
`;for(let D of $){let[Z,Q,X,J]=D;if(Z==="for-of"){let[K,G]=Q,z=this.generate(X,"value");if(M+=this.indent()+`for (const ${K} in ${z}) {
|
|
112
|
+
`,this.indentLevel++,J)M+=this.indent()+`if (!Object.hasOwn(${z}, ${K})) continue;
|
|
113
|
+
`;if(G)M+=this.indent()+`const ${G} = ${z}[${K}];
|
|
114
|
+
`}}for(let D of W)M+=this.indent()+`if (${this.generate(D,"value")}) {
|
|
115
|
+
`,this.indentLevel++;M+=this.indent()+`result[${this.generate(Y,"value")}] = ${this.generate(A,"value")};
|
|
116
|
+
`;for(let D=0;D<W.length;D++)this.indentLevel--,M+=this.indent()+`}
|
|
117
|
+
`;for(let D=0;D<$.length;D++)this.indentLevel--,M+=this.indent()+`}
|
|
118
|
+
`;return M+=this.indent()+`return result;
|
|
119
|
+
`,this.indentLevel--,M+=this.indent()+"})()",M}generateClass(F,T,U){let[Y,A,...$]=T,W=Y?`class ${Y}`:"class";if(A)W+=` extends ${this.generate(A,"value")}`;if(W+=` {
|
|
120
|
+
`,$.length>0&&Array.isArray($[0])){let M=$[0];if(M[0]==="block"){let D=M.slice(1),Z=D.length>0&&Array.isArray(D[0])&&D[0][0]==="object";if(Z&&D.length===1){let Q=D[0].slice(1);this.indentLevel++;let X=[];for(let[J,K]of Q){let G=this.isStaticMember(J),z=this.isComputedMember(J),H=this.extractMemberName(J);if(this.isBoundMethod(K)&&!G&&!z&&H!=="constructor")X.push(H)}for(let[J,K]of Q){let G=this.isStaticMember(J),z=this.isComputedMember(J),H=this.extractMemberName(J);if(Array.isArray(K)&&(K[0]==="->"||K[0]==="=>")){let[,R,O]=K,_=this.containsAwait(O),u=this.containsYield(O),P=R,L=[];if(H==="constructor"){P=R.map((I)=>{if(Array.isArray(I)&&I[0]==="."&&I[1]==="this")return L.push(`this.${I[2]} = ${I[2]}`),I[2];return I});for(let I of X)L.unshift(`this.${I} = this.${I}.bind(this)`)}let q=this.generateParamList(P),w=(G?"static ":"")+(_?"async ":"")+(u?"*":"");if(W+=this.indent()+`${w}${H}(${q}) `,!z)this.currentMethodName=H;W+=this.generateMethodBody(O,L,H==="constructor",P),this.currentMethodName=null,W+=`
|
|
121
|
+
`}else if(G)W+=this.indent()+`static ${H} = ${this.generate(K,"value")};
|
|
122
|
+
`;else W+=this.indent()+`${H} = ${this.generate(K,"value")};
|
|
123
|
+
`}this.indentLevel--}else if(Z){let Q=D[0].slice(1),X=D.slice(1);this.indentLevel++;for(let[J,K]of Q){let G=this.isStaticMember(J),z=this.extractMemberName(J);if(Array.isArray(K)&&(K[0]==="->"||K[0]==="=>")){let[,H,R]=K,O=this.generateParamList(H),_=(G?"static ":"")+(this.containsAwait(R)?"async ":"")+(this.containsYield(R)?"*":"");W+=this.indent()+`${_}${z}(${O}) `,this.currentMethodName=z,W+=this.generateMethodBody(R,[],z==="constructor",H),this.currentMethodName=null,W+=`
|
|
124
|
+
`}else if(G)W+=this.indent()+`static ${z} = ${this.generate(K,"value")};
|
|
125
|
+
`;else W+=this.indent()+`${z} = ${this.generate(K,"value")};
|
|
126
|
+
`}for(let J of X)if(Array.isArray(J)&&J[0]==="class"){let[,K,G,...z]=J;if(Array.isArray(K)&&K[0]==="."&&K[1]==="this")W+=this.indent()+`static ${K[2]} = ${this.generate(["class",null,G,...z],"value")};
|
|
127
127
|
`}else W+=this.indent()+this.generate(J,"statement")+`;
|
|
128
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let Q of
|
|
128
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let Q of D)if(Array.isArray(Q)&&Q[0]==="="&&Array.isArray(Q[1])&&Q[1][0]==="."&&Q[1][1]==="this")W+=this.indent()+`static ${Q[1][2]} = ${this.generate(Q[2],"value")};
|
|
129
129
|
`;else W+=this.indent()+this.generate(Q,"statement")+`;
|
|
130
|
-
`;this.indentLevel--}}}return W+=this.indent()+"}",W}generateSuper(F,T){if(T.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let U=T.map((Y)=>this.unwrap(this.generate(Y,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${U})`;return`super(${U})`}generateImport(F,T,U,Y){if(T.length===1){let
|
|
131
|
-
export default ${U[1]}`;return`export default ${this.generate(U,"statement")}`}generateExportAll(F,T){return`export * from ${this.addJsExtensionAndAssertions(T[0])}`}generateExportFrom(F,T){let[U,Y]=T,A=this.addJsExtensionAndAssertions(Y);if(Array.isArray(U))return`export { ${U.map((W)=>Array.isArray(W)&&W.length===2?`${W[0]} as ${W[1]}`:W).join(", ")} } from ${A}`;return`export ${U} from ${A}`}generateDoIIFE(F,T){return`(${this.generate(T[0],"statement")})()`}generateRegex(F,T){return T.length===0?F:this.generate(T[0],"value")}generateTaggedTemplate(F,T){let[U,Y]=T,A=this.generate(U,"value"),$=this.generate(Y,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(F,T){let U="`";for(let Y of T)if(Y instanceof String)U+=this.extractStringContent(Y);else if(typeof Y==="string")if(Y.startsWith('"')||Y.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",Y);U+=Y.slice(1,-1)}else U+=Y;else if(Array.isArray(Y))if(Y.length===1&&typeof Y[0]==="string"&&!Array.isArray(Y[0])){let A=Y[0];U+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=Y.length===1&&Array.isArray(Y[0])?Y[0]:Y;U+="${"+this.generate(A,"value")+"}"}return U+"`"}findPostfixConditional(F){if(!Array.isArray(F))return null;let T=F[0];if((T==="unless"||T==="if")&&F.length===3)return{type:T,condition:F[1],value:F[2]};if(T==="+"||T==="-"||T==="*"||T==="/")for(let U=1;U<F.length;U++){let Y=this.findPostfixConditional(F[U]);if(Y)return Y.parentOp=T,Y.operandIndex=U,Y.otherOperands=F.slice(1).filter((A,$)=>$!==U-1),Y}return null}rebuildWithoutConditional(F){let T=Array.isArray(F.value)&&F.value.length===1?F.value[0]:F.value;if(F.parentOp)return[F.parentOp,...F.otherOperands,T];return T}generateDestructuringPattern(F){return this.formatParam(F)}generateParamList(F){let T=F.findIndex((Y)=>Array.isArray(Y)&&Y[0]==="expansion");if(T!==-1){let Y=F.slice(0,T),A=F.slice(T+1),$=Y.map((W)=>this.formatParam(W)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let U=F.findIndex((Y)=>Array.isArray(Y)&&Y[0]==="rest");if(U!==-1&&U<F.length-1){let Y=F.slice(0,U),A=F[U],$=F.slice(U+1),W=Y.map((
|
|
132
|
-
`;if(X.size>0)
|
|
133
|
-
`;let
|
|
134
|
-
`;return}if(!$&&!Y&&P&&(L==="if"||L==="unless")){let[N,S,...j]=
|
|
135
|
-
`;return}}}let
|
|
136
|
-
`;else
|
|
137
|
-
`})};if(
|
|
138
|
-
`;else
|
|
139
|
-
`;for(let
|
|
140
|
-
`;
|
|
141
|
-
`;
|
|
142
|
-
`}return this.indentLevel--,
|
|
143
|
-
${this.withIndent(()=>T.map((Y,A)=>{let $=A===T.length-1,W=Array.isArray(Y)?Y[0]:null,
|
|
130
|
+
`;this.indentLevel--}}}return W+=this.indent()+"}",W}generateSuper(F,T){if(T.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let U=T.map((Y)=>this.unwrap(this.generate(Y,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${U})`;return`super(${U})`}generateImport(F,T,U,Y){if(T.length===1){let M=`import(${this.generate(T[0],"value")})`;if(E(Y[0],"await")===!0)return`(await ${M})`;return M}let[A,$]=T,W=this.addJsExtensionAndAssertions($);if(typeof A==="string")return`import ${A} from ${W}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${W}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let D=A[0],Z=A[1];if(Z[0]==="*"&&Z.length===2)return`import ${D}, * as ${Z[1]} from ${W}`;let Q=(Array.isArray(Z)?Z:[Z]).map((X)=>Array.isArray(X)&&X.length===2?`${X[0]} as ${X[1]}`:X).join(", ");return`import ${D}, { ${Q} } from ${W}`}return`import { ${A.map((D)=>Array.isArray(D)&&D.length===2?`${D[0]} as ${D[1]}`:D).join(", ")} } from ${W}`}return`import ${this.generate(A,"value")} from ${W}`}generateExport(F,T){let[U]=T;if(Array.isArray(U)&&U.every((Y)=>typeof Y==="string"))return`export { ${U.join(", ")} }`;if(Array.isArray(U)&&U[0]==="=")return`export const ${U[1]} = ${this.generate(U[2],"value")}`;return`export ${this.generate(U,"statement")}`}generateExportDefault(F,T){let[U]=T;if(Array.isArray(U)&&U[0]==="=")return`const ${U[1]} = ${this.generate(U[2],"value")};
|
|
131
|
+
export default ${U[1]}`;return`export default ${this.generate(U,"statement")}`}generateExportAll(F,T){return`export * from ${this.addJsExtensionAndAssertions(T[0])}`}generateExportFrom(F,T){let[U,Y]=T,A=this.addJsExtensionAndAssertions(Y);if(Array.isArray(U))return`export { ${U.map((W)=>Array.isArray(W)&&W.length===2?`${W[0]} as ${W[1]}`:W).join(", ")} } from ${A}`;return`export ${U} from ${A}`}generateDoIIFE(F,T){return`(${this.generate(T[0],"statement")})()`}generateRegex(F,T){return T.length===0?F:this.generate(T[0],"value")}generateTaggedTemplate(F,T){let[U,Y]=T,A=this.generate(U,"value"),$=this.generate(Y,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(F,T){let U="`";for(let Y of T)if(Y instanceof String)U+=this.extractStringContent(Y);else if(typeof Y==="string")if(Y.startsWith('"')||Y.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",Y);U+=Y.slice(1,-1)}else U+=Y;else if(Array.isArray(Y))if(Y.length===1&&typeof Y[0]==="string"&&!Array.isArray(Y[0])){let A=Y[0];U+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=Y.length===1&&Array.isArray(Y[0])?Y[0]:Y;U+="${"+this.generate(A,"value")+"}"}return U+"`"}findPostfixConditional(F){if(!Array.isArray(F))return null;let T=F[0];if((T==="unless"||T==="if")&&F.length===3)return{type:T,condition:F[1],value:F[2]};if(T==="+"||T==="-"||T==="*"||T==="/")for(let U=1;U<F.length;U++){let Y=this.findPostfixConditional(F[U]);if(Y)return Y.parentOp=T,Y.operandIndex=U,Y.otherOperands=F.slice(1).filter((A,$)=>$!==U-1),Y}return null}rebuildWithoutConditional(F){let T=Array.isArray(F.value)&&F.value.length===1?F.value[0]:F.value;if(F.parentOp)return[F.parentOp,...F.otherOperands,T];return T}generateDestructuringPattern(F){return this.formatParam(F)}generateParamList(F){let T=F.findIndex((Y)=>Array.isArray(Y)&&Y[0]==="expansion");if(T!==-1){let Y=F.slice(0,T),A=F.slice(T+1),$=Y.map((W)=>this.formatParam(W)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let U=F.findIndex((Y)=>Array.isArray(Y)&&Y[0]==="rest");if(U!==-1&&U<F.length-1){let Y=F.slice(0,U),A=F[U],$=F.slice(U+1),W=Y.map((M)=>this.formatParam(M));return this.restMiddleParam={restName:A[1],afterParams:$,beforeCount:Y.length},W.length>0?`${W.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,F.map((Y)=>this.formatParam(Y)).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((U)=>{if(U===",")return"";if(U==="...")return"";if(Array.isArray(U)&&U[0]==="...")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="="&&typeof U[1]==="string")return`${U[1]} = ${this.generate(U[2],"value")}`;if(typeof U==="string")return U;return this.formatParam(U)}).join(", ")}]`;if(Array.isArray(F)&&F[0]==="object")return`{${F.slice(1).map((U)=>{if(Array.isArray(U)&&U[0]==="...")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default")return`${U[1]} = ${this.generate(U[2],"value")}`;let[Y,A]=U;if(Y===A)return Y;return`${Y}: ${A}`}).join(", ")}}`;return JSON.stringify(F)}generateBodyWithReturns(F,T=[],U={}){let{sideEffectOnly:Y=!1,autoAssignments:A=[],isConstructor:$=!1,hasExpansionParams:W=!1}=U,M=this.sideEffectOnly;this.sideEffectOnly=Y;let D=new Set,Z=(G)=>{if(typeof G==="string")D.add(G);else if(Array.isArray(G)){if(G[0]==="rest"||G[0]==="..."){if(typeof G[1]==="string")D.add(G[1])}else if(G[0]==="default"){if(typeof G[1]==="string")D.add(G[1])}else if(G[0]==="array"||G[0]==="object")this.collectVarsFromArray(G,D)}};if(Array.isArray(T))T.forEach(Z);let Q=this.collectFunctionVariables(F),X=new Set([...Q].filter((G)=>!this.programVars.has(G)&&!this.reactiveVars?.has(G)&&!D.has(G))),J=["return","throw","break","continue"],K=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(F)&&F[0]==="block"){let G=this.unwrapBlock(F);if(W&&this.expansionAfterParams?.length>0)G=[...this.expansionAfterParams.map((_,u)=>{return`const ${typeof _==="string"?_:JSON.stringify(_)} = _rest[_rest.length - ${this.expansionAfterParams.length-u}]`}),...G],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:_}=this.restMiddleParam,u=_.length,P=[];if(_.forEach((L,q)=>{let w=typeof L==="string"?L:Array.isArray(L)&&L[0]==="default"?L[1]:JSON.stringify(L);P.push(`const ${w} = ${O}[${O}.length - ${u-q}]`)}),u>0)P.push(`${O} = ${O}.slice(0, -${u})`);G=[...P,...G],this.restMiddleParam=null}this.indentLevel++;let z=`{
|
|
132
|
+
`;if(X.size>0)z+=this.indent()+`let ${Array.from(X).sort().join(", ")};
|
|
133
|
+
`;let H=A.length>0&&G.length>0&&Array.isArray(G[0])&&G[0][0]==="super",R=(O)=>{O.forEach((_,u)=>{let P=u===O.length-1,L=Array.isArray(_)?_[0]:null;if(!P&&L==="comprehension"){let[,N,S,j]=_;z+=this.indent()+this.generateComprehensionAsLoop(N,S,j)+`
|
|
134
|
+
`;return}if(!$&&!Y&&P&&(L==="if"||L==="unless")){let[N,S,...j]=_.slice(1),f=(V)=>Array.isArray(V)&&V[0]==="block"&&V.length>2;if(f(S)||j.some(f)){z+=this.generateIfElseWithEarlyReturns(_);return}}if(!$&&!Y&&P&&L==="="){let[N,S]=_.slice(1);if(typeof N==="string"&&Array.isArray(S)){let j=S[0];if(j==="comprehension"||j==="for-in"){this.comprehensionTarget=N,z+=this.generate(S,"value"),this.comprehensionTarget=null,z+=this.indent()+`return ${N};
|
|
135
|
+
`;return}}}let q=!$&&!Y&&P&&!J.includes(L)&&!K.includes(L)&&!this.hasExplicitControlFlow(_),w=q?"value":"statement",I=this.generate(_,w);if(q)z+=this.indent()+"return "+I+`;
|
|
136
|
+
`;else z+=this.indent()+this.addSemicolon(_,I)+`
|
|
137
|
+
`})};if(H){if(G.length===1&&!$)z+=this.indent()+"return "+this.generate(G[0],"value")+`;
|
|
138
|
+
`;else z+=this.indent()+this.generate(G[0],"statement")+`;
|
|
139
|
+
`;for(let _ of A)z+=this.indent()+_+`;
|
|
140
|
+
`;R(G.slice(1))}else{for(let O of A)z+=this.indent()+O+`;
|
|
141
|
+
`;R(G)}if(Y&&G.length>0){let O=Array.isArray(G[G.length-1])?G[G.length-1][0]:null;if(!J.includes(O))z+=this.indent()+`return;
|
|
142
|
+
`}return this.indentLevel--,z+=this.indent()+"}",this.sideEffectOnly=M,z}if(this.sideEffectOnly=M,$||this.hasExplicitControlFlow(F))return`{ ${this.generate(F,"statement")}; }`;if(Array.isArray(F)&&(J.includes(F[0])||K.includes(F[0])))return`{ ${this.generate(F,"statement")}; }`;if(Y)return`{ ${this.generate(F,"statement")}; return; }`;return`{ return ${this.generate(F,"value")}; }`}generateFunctionBody(F,T=[],U=!1){return this.generateBodyWithReturns(F,T,{sideEffectOnly:U,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(F,T=[],U=!1,Y=[]){return this.generateBodyWithReturns(F,Y,{autoAssignments:T,isConstructor:U})}generateBlockWithReturns(F){if(!Array.isArray(F)||F[0]!=="block")return this.generate(F,"statement");let T=this.unwrapBlock(F);return`{
|
|
143
|
+
${this.withIndent(()=>T.map((Y,A)=>{let $=A===T.length-1,W=Array.isArray(Y)?Y[0]:null,M=$&&!["return","throw","break","continue"].includes(W),D=this.generate(Y,M?"value":"statement");return M?this.indent()+"return "+D+";":this.indent()+D+";"})).join(`
|
|
144
144
|
`)}
|
|
145
145
|
${this.indent()}}`}generateLoopBody(F){if(!Array.isArray(F))return`{ ${this.generate(F,"statement")}; }`;if(F[0]==="block"||Array.isArray(F[0])){let T=F[0]==="block"?F.slice(1):F;return`{
|
|
146
146
|
${this.withIndent(()=>T.map((Y)=>{if(Array.isArray(Y)&&Y[0]==="comprehension"){let[,A,$,W]=Y;return this.indent()+this.generateComprehensionAsLoop(A,$,W)}return this.indent()+this.addSemicolon(Y,this.generate(Y,"statement"))})).join(`
|
|
147
147
|
`)}
|
|
148
148
|
${this.indent()}}`}return`{ ${this.generate(F,"statement")}; }`}generateLoopBodyWithGuard(F,T){let U=this.unwrap(this.generate(T,"value"));if(!Array.isArray(F))return`{ if (${U}) ${this.generate(F,"statement")}; }`;if(F[0]==="block"||Array.isArray(F[0])){let Y=F[0]==="block"?F.slice(1):F,A=this.withIndent(()=>this.indent()),$=`if (${U}) {
|
|
149
|
-
`,W=this.withIndent(()=>{this.indentLevel++;let
|
|
149
|
+
`,W=this.withIndent(()=>{this.indentLevel++;let D=this.formatStatements(Y);return this.indentLevel--,D}),M=this.withIndent(()=>this.indent()+"}");return`{
|
|
150
150
|
${A}${$}${W.join(`
|
|
151
151
|
`)}
|
|
152
|
-
${
|
|
152
|
+
${M}
|
|
153
153
|
${this.indent()}}`}return`{ if (${this.generate(T,"value")}) ${this.generate(F,"statement")}; }`}generateComprehensionWithTarget(F,T,U,Y){let A="";A+=this.indent()+`${Y} = [];
|
|
154
|
-
`;let $=Array.isArray(F)&&F[0]==="block"&&F.length===2?F[1]:F;if(T.length===1){let[W,D,
|
|
155
|
-
`}else{let
|
|
156
|
-
`:this.indent()+`for (let ${
|
|
157
|
-
`,this.indentLevel++,!J)A+=this.indent()+`const ${
|
|
158
|
-
`}}else A+=this.indent()+`for (const ${
|
|
159
|
-
`;if(this.indentLevel++,U&&U.length>0)A+=this.indent()+`if (${U.map((
|
|
154
|
+
`;let $=Array.isArray(F)&&F[0]==="block"&&F.length===2?F[1]:F;if(T.length===1){let[W,M,D,Z]=T[0];if(W==="for-in"){let Q=Z,X=Array.isArray(M)?M:[M],J=X.length===0,[K,G]=J?["_i",null]:X,z=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;if(Q&&Q!==null){let H=Array.isArray(D)&&D[0];if(H instanceof String)H=B(H);if(H===".."||H==="..."){let O=H==="...",[_,u]=D.slice(1);A+=this.indent()+`for (let ${z} = ${this.generate(_,"value")}; ${z} ${O?"<":"<="} ${this.generate(u,"value")}; ${z} += ${this.generate(Q,"value")}) {
|
|
155
|
+
`}else{let O=this.generate(D,"value"),_=G||"_i",u=this.generate(Q,"value"),P=this.isNegativeStep(Q);if(A+=P?this.indent()+`for (let ${_} = ${O}.length - 1; ${_} >= 0; ${_} += ${u}) {
|
|
156
|
+
`:this.indent()+`for (let ${_} = 0; ${_} < ${O}.length; ${_} += ${u}) {
|
|
157
|
+
`,this.indentLevel++,!J)A+=this.indent()+`const ${z} = ${O}[${_}];
|
|
158
|
+
`}}else A+=this.indent()+`for (const ${z} of ${this.generate(D,"value")}) {
|
|
159
|
+
`;if(this.indentLevel++,U&&U.length>0)A+=this.indent()+`if (${U.map((H)=>this.generate(H,"value")).join(" && ")}) {
|
|
160
160
|
`,this.indentLevel++;if(A+=this.indent()+`${Y}.push(${this.unwrap(this.generate($,"value"))});
|
|
161
161
|
`,U&&U.length>0)this.indentLevel--,A+=this.indent()+`}
|
|
162
162
|
`;return this.indentLevel--,A+=this.indent()+`}
|
|
163
163
|
`,A}}return this.indent()+`${Y} = (() => { /* complex comprehension */ })();
|
|
164
|
-
`}generateComprehensionAsLoop(F,T,U){let Y="";if(T.length===1){let[A,$,W,
|
|
165
|
-
`,this.indentLevel++,!Q)Y+=this.indent()+`const ${
|
|
166
|
-
`}if(U?.length){if(!
|
|
167
|
-
`,this.indentLevel++,Y+=this.indent()+`if (${U.map((
|
|
164
|
+
`}generateComprehensionAsLoop(F,T,U){let Y="";if(T.length===1){let[A,$,W,M]=T[0];if(A==="for-in"){let D=M,Z=Array.isArray($)?$:[$],Q=Z.length===0,[X,J]=Q?["_i",null]:Z,K=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(D&&D!==null){let G=Array.isArray(W)&&W[0];if(G instanceof String)G=B(G);let z=G===".."||G==="...";if(z){let H=G==="...",[R,O]=W.slice(1);Y+=`for (let ${K} = ${this.generate(R,"value")}; ${K} ${H?"<":"<="} ${this.generate(O,"value")}; ${K} += ${this.generate(D,"value")}) `}else{let H=this.generate(W,"value"),R=J||"_i",O=this.generate(D,"value"),_=this.isNegativeStep(D),u=_&&(D[1]==="1"||D[1]===1||B(D[1])==="1"),P=!_&&(D==="1"||D===1||B(D)==="1");if(u)Y+=`for (let ${R} = ${H}.length - 1; ${R} >= 0; ${R}--) `;else if(P)Y+=`for (let ${R} = 0; ${R} < ${H}.length; ${R}++) `;else if(_)Y+=`for (let ${R} = ${H}.length - 1; ${R} >= 0; ${R} += ${O}) `;else Y+=`for (let ${R} = 0; ${R} < ${H}.length; ${R} += ${O}) `;if(Y+=`{
|
|
165
|
+
`,this.indentLevel++,!Q)Y+=this.indent()+`const ${K} = ${H}[${R}];
|
|
166
|
+
`}if(U?.length){if(!z)Y+=this.indent();Y+=`{
|
|
167
|
+
`,this.indentLevel++,Y+=this.indent()+`if (${U.map((H)=>this.generate(H,"value")).join(" && ")}) {
|
|
168
168
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
169
169
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
170
|
-
`,this.indentLevel--,Y+=this.indent()+"}"}else{if(!
|
|
170
|
+
`,this.indentLevel--,Y+=this.indent()+"}"}else{if(!z)Y+=this.indent();Y+=`{
|
|
171
171
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
172
|
-
`,this.indentLevel--,Y+=this.indent()+"}"}if(!
|
|
172
|
+
`,this.indentLevel--,Y+=this.indent()+"}"}if(!z)this.indentLevel--,Y+=`
|
|
173
173
|
`+this.indent()+"}";return Y}if(J){let G=this.generate(W,"value");Y+=`for (let ${J} = 0; ${J} < ${G}.length; ${J}++) `,Y+=`{
|
|
174
|
-
`,this.indentLevel++,Y+=this.indent()+`const ${
|
|
175
|
-
`}else{if(Y+=`for (const ${
|
|
174
|
+
`,this.indentLevel++,Y+=this.indent()+`const ${K} = ${G}[${J}];
|
|
175
|
+
`}else{if(Y+=`for (const ${K} of ${this.generate(W,"value")}) `,U?.length)Y+=`{
|
|
176
176
|
`,this.indentLevel++,Y+=this.indent()+`if (${U.map((G)=>this.generate(G,"value")).join(" && ")}) {
|
|
177
177
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
178
178
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
@@ -182,18 +182,18 @@ ${this.indent()}}`}return`{ if (${this.generate(T,"value")}) ${this.generate(F,"
|
|
|
182
182
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
183
183
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
184
184
|
`;else Y+=this.indent()+this.generate(F,"statement")+`;
|
|
185
|
-
`;return this.indentLevel--,Y+=this.indent()+"}",Y}if(A==="for-as"){let
|
|
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
186
|
`,this.indentLevel++,Y+=this.indent()+`if (${U.map((X)=>this.generate(X,"value")).join(" && ")}) {
|
|
187
187
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
188
188
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
189
189
|
`,this.indentLevel--,Y+=this.indent()+"}";else Y+=`{
|
|
190
190
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
191
|
-
`,this.indentLevel--,Y+=this.indent()+"}";return Y}if(A==="for-of"){let
|
|
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
192
|
`,this.indentLevel++,X&&!Q&&!U?.length)Y+=this.indent()+`if (!Object.hasOwn(${J}, ${Z})) continue;
|
|
193
193
|
`,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
194
194
|
`;else if(X&&Q&&U?.length)Y+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
|
|
195
195
|
`,this.indentLevel++,Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
196
|
-
`,Y+=this.indent()+`if (${U.map((
|
|
196
|
+
`,Y+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
197
197
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
198
198
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
199
199
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
@@ -202,39 +202,39 @@ ${this.indent()}}`}return`{ if (${this.generate(T,"value")}) ${this.generate(F,"
|
|
|
202
202
|
`,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
203
203
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
204
204
|
`;else if(Q&&U?.length)Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
205
|
-
`,Y+=this.indent()+`if (${U.map((
|
|
205
|
+
`,Y+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
206
206
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
207
207
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
208
208
|
`;else if(Q)Y+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
209
209
|
`,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
210
|
-
`;else if(U?.length)Y+=this.indent()+`if (${U.map((
|
|
210
|
+
`;else if(U?.length)Y+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
211
211
|
`,this.indentLevel++,Y+=this.indent()+this.generate(F,"statement")+`;
|
|
212
212
|
`,this.indentLevel--,Y+=this.indent()+`}
|
|
213
213
|
`;else Y+=this.indent()+this.generate(F,"statement")+`;
|
|
214
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
|
|
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
216
|
`,$+=this.withIndent(()=>this.generateBranchWithReturn(Z)),$+=this.indent()+"}";for(let X of Q)$+=` else {
|
|
217
217
|
`,$+=this.withIndent(()=>this.generateBranchWithReturn(X)),$+=this.indent()+"}"}else $+=`{
|
|
218
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(
|
|
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
219
|
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
220
|
-
`}return U}generateIfAsExpression(F,T,U){if(this.isMultiStatementBlock(T)||this.hasStatementInBranch(T)||U.some((
|
|
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
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
222
|
`;else U+=this.indent()+this.generate(A[$],"statement")+`;
|
|
223
223
|
`}else U+=this.indent()+`return ${this.extractExpression(F)};
|
|
224
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")+`;
|
|
225
225
|
`;else U+=this.indent()+this.generate(F,"statement")+`;
|
|
226
226
|
`;U+=this.indent()+`break;
|
|
227
|
-
`}return U}generateSwitchAsIfChain(F,T,U){let Y="";for(let A=0;A<F.length;A++){let[,$,W]=F[A],
|
|
227
|
+
`}return U}generateSwitchAsIfChain(F,T,U){let Y="";for(let A=0;A<F.length;A++){let[,$,W]=F[A],M=Array.isArray($)?$[0]:$;if(Y+=(A===0?"":" else ")+`if (${this.generate(M,"value")}) {
|
|
228
228
|
`,this.indentLevel++,U==="value")Y+=this.indent()+`return ${this.extractExpression(W)};
|
|
229
|
-
`;else for(let
|
|
229
|
+
`;else for(let D of this.unwrapBlock(W))Y+=this.indent()+this.generate(D,"statement")+`;
|
|
230
230
|
`;this.indentLevel--,Y+=this.indent()+"}"}if(T){if(Y+=` else {
|
|
231
231
|
`,this.indentLevel++,U==="value")Y+=this.indent()+`return ${this.extractExpression(T)};
|
|
232
232
|
`;else for(let A of this.unwrapBlock(T))Y+=this.indent()+this.generate(A,"statement")+`;
|
|
233
|
-
`;this.indentLevel--,Y+=this.indent()+"}"}return U==="value"?`(() => { ${Y} })()`:Y}extractExpression(F){let T=this.unwrapBlock(F);return T.length>0?this.generate(T[T.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,T){if(!T||T.endsWith(";"))return!1;if(!T.endsWith("}"))return!0;let U=Array.isArray(F)?F[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(U)}addSemicolon(F,T){return T+(this.needsSemicolon(F,T)?";":"")}formatStatements(F,T="statement"){return F.map((U)=>this.indent()+this.addSemicolon(U,this.generate(U,T)))}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 T=F[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return F.slice(1).some((U)=>Array.isArray(U)&&["return","throw","break","continue"].includes(U[0]));if(T==="switch"){let[,,U]=F;return U?.some((Y)=>{return this.unwrapBlock(Y[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(T==="if"||T==="unless"){let[,,U,Y]=F;return this.branchHasControlFlow(U)&&Y&&this.branchHasControlFlow(Y)}return!1}branchHasControlFlow(F){if(!Array.isArray(F))return!1;let T=this.unwrapBlock(F);if(T.length===0)return!1;let U=T[T.length-1];return Array.isArray(U)&&["return","throw","break","continue"].includes(U[0])}withIndent(F){this.indentLevel++;let T=F();return this.indentLevel--,T}isNegativeStep(F){if(!Array.isArray(F)||F.length!==2)return!1;return(
|
|
234
|
-
`);if(
|
|
235
|
-
`))T=T.slice(1);if(
|
|
233
|
+
`;this.indentLevel--,Y+=this.indent()+"}"}return U==="value"?`(() => { ${Y} })()`:Y}extractExpression(F){let T=this.unwrapBlock(F);return T.length>0?this.generate(T[T.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,T){if(!T||T.endsWith(";"))return!1;if(!T.endsWith("}"))return!0;let U=Array.isArray(F)?F[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(U)}addSemicolon(F,T){return T+(this.needsSemicolon(F,T)?";":"")}formatStatements(F,T="statement"){return F.map((U)=>this.indent()+this.addSemicolon(U,this.generate(U,T)))}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 T=F[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return F.slice(1).some((U)=>Array.isArray(U)&&["return","throw","break","continue"].includes(U[0]));if(T==="switch"){let[,,U]=F;return U?.some((Y)=>{return this.unwrapBlock(Y[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(T==="if"||T==="unless"){let[,,U,Y]=F;return this.branchHasControlFlow(U)&&Y&&this.branchHasControlFlow(Y)}return!1}branchHasControlFlow(F){if(!Array.isArray(F))return!1;let T=this.unwrapBlock(F);if(T.length===0)return!1;let U=T[T.length-1];return Array.isArray(U)&&["return","throw","break","continue"].includes(U[0])}withIndent(F){this.indentLevel++;let T=F();return this.indentLevel--,T}isNegativeStep(F){if(!Array.isArray(F)||F.length!==2)return!1;return(B(F[0])??F[0])==="-"}isNegativeOneLiteral(F){return Array.isArray(F)&&F[0]==="-"&&F.length===2&&(F[1]==="1"||F[1]===1||B(F[1])==="1")}unwrap(F){if(typeof F!=="string")return F;while(F.startsWith("(")&&F.endsWith(")")){let T=0,U=0,Y=!0,A=!1;for(let $=0;$<F.length;$++){if(F[$]==="(")T++;if(F[$]===")")T--;if(F[$]==="["||F[$]==="{")U++;if(F[$]==="]"||F[$]==="}")U--;if(F[$]===","&&T===1&&U===0)A=!0;if(T===0&&$<F.length-1){Y=!1;break}}if(A)Y=!1;if(Y)F=F.slice(1,-1);else break}return F}unwrapLogical(F){if(typeof F!=="string")return F;while(F.startsWith("(")&&F.endsWith(")")){let T=0,U=1/0;for(let Y=1;Y<F.length-1;Y++){if(F[Y]==="(")T++;if(F[Y]===")")T--;U=Math.min(U,T)}if(U>=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[T,...U]=F;if(T!=="&&"&&T!=="||")return F;let Y=[],A=($)=>{if(Array.isArray($)&&$[0]===T)for(let W=1;W<$.length;W++)A($[W]);else Y.push($)};for(let $ of U)A($);return[T,...Y]}hasStatementInBranch(F){if(!Array.isArray(F))return!1;let T=F[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return F.slice(1).some((U)=>this.hasStatementInBranch(U));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[T,U,Y,...A]=F;return this.isMultiStatementBlock(Y)||A.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(F){if(F.length===0)return"undefined";if(F.length===1)return this.extractExpression(this.unwrapIfBranch(F[0]));let T=F[0];if(Array.isArray(T)&&T[0]==="if"){let[U,Y,A,...$]=T,W=this.extractExpression(this.unwrapIfBranch(A)),M=this.buildTernaryChain([...$,...F.slice(1)]);return`(${this.generate(Y,"value")} ? ${W} : ${M})`}return this.extractExpression(this.unwrapIfBranch(T))}collectVarsFromArray(F,T){F.slice(1).forEach((U)=>{if(U===","||U==="...")return;if(typeof U==="string"){T.add(U);return}if(Array.isArray(U)){if(U[0]==="..."&&typeof U[1]==="string")T.add(U[1]);else if(U[0]==="array")this.collectVarsFromArray(U,T);else if(U[0]==="object")this.collectVarsFromObject(U,T)}})}collectVarsFromObject(F,T){F.slice(1).forEach((U)=>{if(!Array.isArray(U))return;if(U[0]==="..."&&typeof U[1]==="string"){T.add(U[1]);return}if(U.length>=2){let[Y,A,$]=U;if($==="="){if(typeof Y==="string")T.add(Y)}else if(typeof A==="string")T.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,T);else if(A[0]==="object")this.collectVarsFromObject(A,T)}}})}extractStringContent(F){let T=B(F).slice(1,-1),U=E(F,"indent");if(U)T=T.replace(new RegExp(`\\n${U}`,"g"),`
|
|
234
|
+
`);if(E(F,"initialChunk")&&T.startsWith(`
|
|
235
|
+
`))T=T.slice(1);if(E(F,"finalChunk")&&T.endsWith(`
|
|
236
236
|
`))T=T.slice(0,-1);return T}processHeregex(F){let T="",U=!1,Y=0,A=()=>{let $=0,W=Y-1;while(W>=0&&F[W]==="\\")$++,W--;return $%2===1};while(Y<F.length){let $=F[Y];if($==="["&&!A()){U=!0,T+=$,Y++;continue}if($==="]"&&U&&!A()){U=!1,T+=$,Y++;continue}if(U){T+=$,Y++;continue}if(/\s/.test($)){Y++;continue}if($==="#"){if(A()){T+=$,Y++;continue}let W=Y-1;while(W>=0&&F[W]==="\\")W--;if(W<Y-1){T+=$,Y++;continue}while(Y<F.length&&F[Y]!==`
|
|
237
|
-
`)Y++;continue}T+=$,Y++}return T}addJsExtensionAndAssertions(F){if(F instanceof String)F=
|
|
237
|
+
`)Y++;continue}T+=$,Y++}return T}addJsExtensionAndAssertions(F){if(F instanceof String)F=B(F);if(typeof F!=="string")return F;let U=F.startsWith('"')||F.startsWith("'")?F.slice(1,-1):F,Y=U.startsWith("./")||U.startsWith("../"),A=U,$="";if(Y){let W=U.lastIndexOf("/"),M=W>=0?U.substring(W+1):U;if(M.includes(".")){if(M.endsWith(".json"))$=" with { type: 'json' }"}else A=U+".js"}return`'${A}'`+$}containsAwait(F){if(!F)return!1;if(F instanceof String&&E(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((T)=>this.containsAwait(T));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((T)=>this.containsYield(T));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
238
|
// Rip Reactive Runtime
|
|
239
239
|
// A minimal, fine-grained reactivity system
|
|
240
240
|
//
|
|
@@ -446,4 +446,4 @@ function __catchErrors(fn) {
|
|
|
446
446
|
`),Y=U.findIndex((Z)=>Z==="__DATA__");if(Y!==-1){let Z=U.slice(Y+1);T=Z.length>0?Z.join(`
|
|
447
447
|
`)+`
|
|
448
448
|
`:"",F=U.slice(0,Y).join(`
|
|
449
|
-
`)}let $=new x().tokenize(F);if(this.options.showTokens)$.forEach((Z)=>console.log(`${Z[0].padEnd(12)} ${JSON.stringify(Z[1])}`)),console.log();
|
|
449
|
+
`)}let $=new x().tokenize(F);if(this.options.showTokens)$.forEach((Z)=>console.log(`${Z[0].padEnd(12)} ${JSON.stringify(Z[1])}`)),console.log();b.lexer={tokens:$,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Z=this.tokens[this.pos++],Q=Z[1];if(Z.data)Q=new String(Q),Object.assign(Q,Z.data);return this.yytext=Q,this.yylloc=Z.loc,Z[0]}};let W;try{W=b.parse(F)}catch(Z){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 Z}if(this.options.showSExpr)console.log(v(W,0,!0)),console.log();let M=new C({dataSection:T,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),D=M.compile(W);return{tokens:$,sexpr:W,code:D,data:T,reactiveVars:M.reactiveVars}}compileToJS(F){return this.compile(F).code}compileToSExpr(F){return this.compile(F).sexpr}}function o1(F,T={}){return new i(T).compile(F)}function s(F,T={}){return new i(T).compileToJS(F)}var Y2="3.0.2",U2="2026-02-07@15:36:01GMT",d1=(F)=>{let T=F.match(/^[ \t]*(?=\S)/gm),U=Math.min(...(T||[]).map((Y)=>Y.length));return F.replace(RegExp(`^[ ]{${U}}`,"gm"),"").trim()};async function D1(){let F=document.querySelectorAll('script[type="text/rip"]');for(let T of F){if(T.hasAttribute("data-rip-processed"))continue;try{let U=d1(T.textContent),Y=s(U);(0,eval)(Y),T.setAttribute("data-rip-processed","true")}catch(U){console.error("Error compiling Rip script:",U),console.error("Script content:",T.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",D1);else D1();function r1(F){try{let U=s(F).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+/gm,"var ");let Y=(0,eval)(U);if(Y!==void 0)globalThis._=Y;return Y}catch(T){console.error("Rip compilation error:",T.message);return}}if(typeof globalThis<"u")globalThis.rip=r1;export{r1 as rip,D1 as processRipScripts,b as parser,v as formatSExpr,s as compileToJS,o1 as compile,Y2 as VERSION,x as Lexer,i as Compiler,C as CodeGenerator,U2 as BUILD_DATE};
|