rip-lang 2.5.1 → 2.7.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/CHANGELOG.md +57 -10
- package/README.md +133 -289
- package/bin/rip +6 -1
- package/docs/BROWSER.md +8 -11
- package/docs/GUIDE.md +101 -923
- package/docs/INTERNALS.md +1 -1
- package/docs/PHILOSOPHY.md +22 -77
- package/docs/REACTIVITY.md +288 -0
- package/docs/WHY-YES-RIP.md +39 -177
- package/docs/dist/rip.browser.js +605 -2453
- package/docs/dist/rip.browser.min.js +283 -359
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/docs/repl.html +94 -437
- package/package.json +4 -1
- package/scripts/serve.js +2 -0
- package/src/compiler.js +73 -2160
- package/src/grammar/grammar.rip +22 -57
- package/src/lexer.js +11 -333
- package/src/parser.js +220 -223
- package/src/repl.js +257 -183
- package/src/tags.js +0 -62
|
@@ -1,294 +1,280 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)[U],X=
|
|
3
|
-
${
|
|
4
|
-
${
|
|
5
|
-
${
|
|
6
|
-
`).map(function(
|
|
7
|
-
${
|
|
8
|
-
`);if(
|
|
9
|
-
`)))return 0;if(
|
|
10
|
-
`),
|
|
11
|
-
`)
|
|
12
|
-
`),
|
|
13
|
-
`)}stringToken(){var A
|
|
14
|
-
`,{offset:
|
|
15
|
-
`,{offset:
|
|
16
|
-
`)
|
|
17
|
-
`)
|
|
18
|
-
`),[_]=s.call(F,-1),$=_.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+A-$),Y<0)Y=0;E=this.getLocationDataCompensation(this.chunkOffset+A+Y-$,this.chunkOffset+A+Y)}else $+=D.length,E=R;return[this.chunkLine+X,$+E,this.chunkOffset+A+R]}makeLocationData({offsetInChunk:A,length:$}){var E,R,_;return _={range:[]},[_.first_line,_.first_column,_.range[0]]=this.getLineAndColumnFromChunk(A),R=$>0?$-1:0,[_.last_line,_.last_column,E]=this.getLineAndColumnFromChunk(A+R),[_.last_line_exclusive,_.last_column_exclusive]=this.getLineAndColumnFromChunk(A+R+($>0?1:0)),_.range[1]=$>0?E+1:E,_}makeToken(A,$,{offset:E=0,length:R=$.length,origin:_,generated:X,indentSize:Y}={}){var F=[A,$,this.makeLocationData({offsetInChunk:E,length:R})];if(_)F.origin=_;if(X)F.generated=!0;if(Y!=null)F.indentSize=Y;return F}token(A,$,{offset:E,length:R,origin:_,data:X,generated:Y,indentSize:F}={}){var D=this.makeToken(A,$,{offset:E,length:R,origin:_,generated:Y,indentSize:F});if(X)o(D,X);return this.tokens.push(D),D}tag(){var A,$;return A=this.tokens,[$]=s.call(A,-1),$!=null?$[0]:void 0}value(A=!1){var $,E;if($=this.tokens,[E]=s.call($,-1),A&&(E!=null?E.origin:void 0)!=null)return E.origin[1];else return E!=null?E[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var A;if(this.tag()==="RENDER")return!1;if(this.inRender&&/^\s*\./.test(this.chunk))return!1;return Z3.test(this.chunk)||(A=this.tag(),j.call(X1,A)>=0)}validateUnicodeCodePointEscapes(A,$){return o3(A,c3($,{error:this.error}))}validateEscapes(A,$={}){var E,R,_,X,Y,F,D,Z,M,Q;if(X=$.isRegex?P3:I3,Y=X.exec(A),!Y)return;return Y[0],E=Y[1],D=Y[2],R=Y[3],Q=Y[4],M=Y[5],F=D?"octal escape sequences are not allowed":"invalid escape sequence",_=`\\${D||R||Q||M}`,this.error(`${F} ${_}`,{offset:((Z=$.offsetInChunk)!=null?Z:0)+Y.index+E.length,length:_.length})}suppressSemicolons(){var A,$,E;E=[];while(this.value()===";")if(this.tokens.pop(),A=($=this.prev())!=null?$[0]:void 0,j.call(["=",...X1],A)>=0)E.push(this.error("unexpected ;"));else E.push(void 0);return E}error(A,$={}){var E,R,_,X,Y;return _="first_line"in $?$:([R,E]=this.getLineAndColumnFromChunk((X=$.offset)!=null?X:0),{first_line:R,first_column:E,last_column:E+((Y=$.length)!=null?Y:1)-1}),i3(A,_)}},r3=function(U,A=U){switch(!1){case j.call([...W1,...d],U)<0:return`keyword '${A}' can't be assigned`;case j.call(x1,U)<0:return`'${A}' can't be assigned`;case j.call(O1,U)<0:return`reserved word '${A}' can't be assigned`;default:return!1}};v3=function(U){var A;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((A=U[1])==="{"||A==="["||A===","||A===":")return!1;else return!0};o=function(U,A){return Object.assign(U.data!=null?U.data:U.data={},A)};W1=["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"];d=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","effect","component","render","style","mounted","unmounted","updated"];g1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};h1=function(){var U=[];for(R1 in g1)U.push(R1);return U}();d=d.concat(h1);O1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];x1=["arguments","eval"];var E2=W1.concat(O1).concat(x1);r1=65279;Y3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;W3=/^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;O3=/^(?:<=>|[-=]>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;y1=/^[^\n\S]+/;t1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;a1=/^[-=]>/;Q3=/^(?:\n[^\n\S]*)+/;D3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;X3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;j3=/^(?:'''|"""|'|")/;L3=/^(?:[^\\']|\\[\s\S])*/;T3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;U3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;_3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;A3=/\n+([^\n\S]*)(?=\S)/g;q3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;H3=/^\w*/;y3=/^(?!.*(.).*\1)[gimsuy]*$/;$3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;E3=/(\s+)(#(?!{).*)/gm;z3=/^(\/|\/{3}\s*)(\*)/;K3=/^\/=?\s/;R3=/\*\//;Z3=/^\s*(?:,|\??\.(?![.\d])|\??::)/;I3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;P3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;V3=/\s+$/;T1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];C1=["NEW","TYPEOF","DELETE"];C3=["!","~"];S3=["<<",">>",">>>"];e1=["==","!=","===","!==","<",">","<=",">=","=~"];J3=["*","/","%","//","%%"];N3=["IN","OF","INSTANCEOF"];h3=["TRUE","FALSE"];E1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];b1=E1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);g3=["IDENTIFIER",")","]","NUMBER"];G3=b1.concat(["++","--"]);M3=["INDENT","OUTDENT","TERMINATOR"];F3=[")","}","]"];_1=function(U,A){var $,E,R,_,X;if(!U.comments)return;if(A.comments&&A.comments.length!==0){X=[],_=U.comments;for(E=0,R=_.length;E<R;E++)if($=_[E],$.unshift)X.push($);else A.comments.push($);A.comments=X.concat(A.comments)}else A.comments=U.comments;return delete U.comments};m=function(U,A,$,E){var R=[U,A];if(R.generated=!0,$)R.origin=$;if(E)_1(E,R);return R};B3=function(){class U{rewrite(A){var $,E,R;if(this.tokens=A,typeof process<"u"&&process!==null?($=process.env)!=null?$.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.processTemplateTokens(),this.convertLegacyExistential(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}return this.tokens}scanTokens(A){var $,E,R;({tokens:R}=this),$=0;while(E=R[$])$+=A.call(this,E,$,R);return!0}detectEnd(A,$,E,R={}){var _,X,Y,F,D;({tokens:D}=this),_=0;while(F=D[A]){if(_===0&&$.call(this,F,A))return E.call(this,F,A);if(X=F[0],j.call(p,X)>=0)_+=1;else if(Y=F[0],j.call(c,Y)>=0)_-=1;if(_<0){if(R.returnOnNegativeLevel)return;return E.call(this,F,A)}A+=1}return A-1}removeLeadingNewlines(){var A,$,E,R,_,X,Y,F,D;Y=this.tokens;for(A=$=0,_=Y.length;$<_;A=++$)if([D]=Y[A],D!=="TERMINATOR")break;if(A===0)return;F=this.tokens.slice(0,A);for(E=0,X=F.length;E<X;E++)R=F[E],_1(R,this.tokens[A]);return this.tokens.splice(0,A)}closeOpenCalls(){var A,$;return $=function(E,R){var _;return(_=E[0])===")"||_==="CALL_END"},A=function(E,R){return E[0]="CALL_END"},this.scanTokens(function(E,R){if(E[0]==="CALL_START")this.detectEnd(R+1,$,A);return 1})}closeOpenIndexes(){var A,$,E;return E=null,$=function(R,_){var X;return(X=R[0])==="]"||X==="INDEX_END"},A=function(R,_){if(this.tokens.length>=_&&this.tokens[_+1][0]===":")return E[0]="[",R[0]="]";else return R[0]="INDEX_END"},this.scanTokens(function(R,_){if(R[0]==="INDEX_START")E=R,this.detectEnd(_+1,$,A);return 1})}indexOfTag(A,...$){var E,R,_,X,Y;E=0;for(R=_=0,X=$.length;0<=X?_<X:_>X;R=0<=X?++_:--_){if($[R]==null)continue;if(typeof $[R]==="string")$[R]=[$[R]];if(Y=this.tag(A+R+E),j.call($[R],Y)<0)return-1}return A+R+E-1}looksObjectish(A){var $,E;if(this.indexOfTag(A,"@",null,":")!==-1||this.indexOfTag(A,null,":")!==-1)return!0;if(E=this.indexOfTag(A,p),E!==-1){if($=null,this.detectEnd(E+1,function(R){var _;return _=R[0],j.call(c,_)>=0},function(R,_){return $=_}),this.tag($+1)===":")return!0}return!1}findTagsBackwards(A,$){var E,R,_,X,Y,F,D;E=[];while(A>=0&&(E.length||(X=this.tag(A),j.call($,X)<0)&&((Y=this.tag(A),j.call(p,Y)<0)||this.tokens[A].generated)&&(F=this.tag(A),j.call($1,F)<0))){if(R=this.tag(A),j.call(c,R)>=0)E.push(this.tag(A));if((_=this.tag(A),j.call(p,_)>=0)&&E.length)E.pop();A-=1}return D=this.tag(A),j.call($,D)>=0}addImplicitBracesAndParens(){var A,$,E;return A=[],$=null,E=!1,this.scanTokens(function(R,_,X){var Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y,u,h,b,a,k,F1,z1,D1,M1,Z1,g,c1,P1,l1,t,m1,e,v;if([v]=R,[L]=T=_>0?X[_-1]:[],[w]=B=_<X.length-1?X[_+1]:[],g=function(){return A[A.length-1]},c1=_,D=function(C){return _-c1+C},q=function(C){var x;return C!=null?(x=C[2])!=null?x.ours:void 0:void 0},N=function(C){return q(C)&&(C!=null?C[0]:void 0)==="{"},O=function(C){return q(C)&&(C!=null?C[0]:void 0)==="("},G=function(){return q(g())},J=function(){return O(g())},H=function(){return N(g())},W=function(){var C;return G()&&((C=g())!=null?C[0]:void 0)==="CONTROL"},P1=function(C){return A.push(["(",C,{ours:!0}]),X.splice(C,0,m("CALL_START","(",["","implicit function call",R[2]],T))},Y=function(){return A.pop(),X.splice(_,0,m("CALL_END",")",["","end of input",R[2]],T)),_+=1},l1=function(C,{startsLine:x=!0,continuationLineIndent:i}={}){var l;return A.push(["{",C,{sameLine:!0,startsLine:x,ours:!0,continuationLineIndent:i}]),l=new String("{"),l.generated=!0,X.splice(C,0,m("{",l,R,T))},F=function(C){return C=C!=null?C:_,A.pop(),X.splice(C,0,m("}","}",R,T)),_+=1},Z=(C)=>{var x=null;if(this.detectEnd(C,function(i){return i[0]==="TERMINATOR"},function(i,l){return x=l},{returnOnNegativeLevel:!0}),x==null)return!1;return this.looksObjectish(x+1)},(J()||H())&&j.call(v1,v)>=0||H()&&L===":"&&v==="FOR")return A.push(["CONTROL",_,{ours:!0}]),D(1);if(v==="INDENT"&&G()){if(L!=="=>"&&L!=="->"&&L!=="["&&L!=="("&&L!==","&&L!=="{"&&L!=="ELSE"&&L!=="=")while(J()||H()&&L!==":")if(J())Y();else F();if(W())A.pop();return A.push([v,_]),D(1)}if(j.call(p,v)>=0)return A.push([v,_]),D(1);if(j.call(c,v)>=0){while(G())if(J())Y();else if(H())F();else A.pop();$=A.pop()}if(Q=()=>{var C,x,i,l;if(i=this.findTagsBackwards(_,["FOR"])&&this.findTagsBackwards(_,["FORIN","FOROF","FORFROM"]),C=i||this.findTagsBackwards(_,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!C)return!1;return x=!1,l=R[2].first_line,this.detectEnd(_,function(p1,d1){var U1;return U1=p1[0],j.call($1,U1)>=0},function(p1,d1){var U1;return[L,,{first_line:U1}]=X[d1-1]||[],x=l===U1&&(L==="->"||L==="=>")},{returnOnNegativeLevel:!0}),x},(j.call(j1,v)>=0&&R.spaced||v==="?"&&_>0&&!X[_-1].spaced)&&(j.call(L1,w)>=0||w==="..."&&(V=this.tag(_+2),j.call(L1,V)>=0)&&!this.findTagsBackwards(_,["INDEX_START","["])||j.call(f1,w)>=0&&!B.spaced&&!B.newLine)&&!Q()){if(v==="?")v=R[0]="FUNC_EXIST";return P1(_+1),D(2)}if(j.call(j1,v)>=0&&this.indexOfTag(_+1,"INDENT")>-1&&this.looksObjectish(_+2)&&!this.findTagsBackwards(_,["CLASS","COMPONENT","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((y=k=(u=g())!=null?u[0]:void 0)==="{"||y==="[")&&!q(g())&&this.findTagsBackwards(_,k)))return P1(_+1),A.push(["INDENT",_+2]),D(3);if(v==="SPACE?")E=!0;if(v===":"){if(E)return E=!1,D(1);if(k=function(){var C;switch(!1){case(C=this.tag(_-1),j.call(c,C)<0):if([m1,t]=$,m1==="["&&t>0&&this.tag(t-1)==="@"&&!X[t-1].spaced)return t-1;else return t;break;case this.tag(_-2)!=="@":return _-2;default:return _-1}}.call(this),e=k<=0||(h=this.tag(k-1),j.call($1,h)>=0)||X[k-1].newLine,g()){if([Z1,z1]=g(),M1=A[A.length-2],(Z1==="{"||Z1==="INDENT"&&(M1!=null?M1[0]:void 0)==="{"&&!q(M1)&&this.findTagsBackwards(z1-1,["{"]))&&(e||this.tag(k-1)===","||this.tag(k-1)==="{")&&(b=this.tag(k-1),j.call(X1,b)<0))return D(1)}return I=_>1?X[_-2]:[],l1(k,{startsLine:!!e,continuationLineIndent:I.continuationLineIndent}),D(2)}if(j.call($1,v)>=0)for(P=A.length-1;P>=0;P+=-1){if(D1=A[P],!q(D1))break;if(N(D1))D1[2].sameLine=!1}if(v==="TERMINATOR"&&R.endsContinuationLineIndentation){({preContinuationLineIndent:S}=R.endsContinuationLineIndentation);while(H()&&(M=g()[2].continuationLineIndent)!=null&&M>S)F()}if(K=L==="OUTDENT"||T.newLine,j.call(u1,v)>=0||j.call(Q1,v)>=0&&K||(v===".."||v==="...")&&this.findTagsBackwards(_,["INDEX_START"]))while(G())if([Z1,z1,{sameLine:F1,startsLine:e}]=g(),J()&&L!==","||L===","&&v==="TERMINATOR"&&w==null)Y();else if(H()&&F1&&v!=="TERMINATOR"&&L!==":"&&!((v==="POST_IF"||v==="FOR"||v==="WHILE"||v==="UNTIL")&&e&&Z(_+1)))F();else if(H()&&v==="TERMINATOR"&&L!==","&&!(e&&this.looksObjectish(_+1)))F();else if(W()&&X[g()[1]][0]==="CLASS"&&v==="TERMINATOR")A.pop();else break;if(v===","&&!this.looksObjectish(_+1)&&H()&&!((a=this.tag(_+2))==="FOROF"||a==="FORIN")&&(w!=="TERMINATOR"||!this.looksObjectish(_+2))){z=w==="OUTDENT"?1:0;while(H())F(_+z)}return D(1)})}rescueStowawayComments(){var A,$,E,R;return $=function(_,X,Y,F){if(Y[X][0]!=="TERMINATOR")Y[F](m("TERMINATOR",`
|
|
19
|
-
`,Y[X]));return Y[F](m("JS","",Y[X],_))},A=function(_,X){var Y,F;Y=_+1;while(Y!==X.length&&(F=X[Y][0],j.call(n,F)>=0)){if(X[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},R=function(_,X,Y){var F,D,Z,M,Q,G,J;D=X;while(D!==Y.length&&(Q=Y[D][0],j.call(n,Q)>=0))D++;if(!(D===Y.length||(G=Y[D][0],j.call(n,G)>=0))){J=_.comments;for(Z=0,M=J.length;Z<M;Z++)F=J[Z],F.unshift=!0;return _1(_,Y[D]),1}else return D=Y.length-1,$(_,D,Y,"push"),1},E=function(_,X,Y){var F,D,Z;F=X;while(F!==-1&&(D=Y[F][0],j.call(n,D)>=0))F--;if(!(F===-1||(Z=Y[F][0],j.call(n,Z)>=0)))return _1(_,Y[F]),1;else return $(_,0,Y,"unshift"),3},this.scanTokens(function(_,X,Y){var F,D,Z,M,Q;if(!_.comments)return 1;if(Q=1,Z=_[0],j.call(n,Z)>=0){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine===!1&&_.comments[D].here===!1)F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=E(F,X-1,Y);if(_.comments.length!==0)R(_,X,Y)}else if(!A(X,Y)){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine&&!_.comments[D].unshift&&!(_[0]==="JS"&&_.generated))F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=R(F,X+1,Y)}if(((M=_.comments)!=null?M.length:void 0)===0)delete _.comments;return Q})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z;if(A[2])return 1;if(!(A.generated||A.explicit))return 1;if(A.fromThen&&A[0]==="INDENT")return A[2]=A.origin[2],1;if(A[0]==="{"&&(X=(D=E[$+1])!=null?D[2]:void 0))({first_line:_,first_column:R,range:[F]}=X);else if(Y=(Z=E[$-1])!=null?Z[2]:void 0)({last_line:_,last_column:R,range:[,F]}=Y),R+=1;else _=R=0,F=0;return A[2]={first_line:_,first_column:R,last_line:_,last_column:R,last_line_exclusive:_,last_column_exclusive:R,range:[F,F]},1})}fixIndentationLocationData(){var A;if(this.allComments==null)this.allComments=m3(this.tokens);return A=($,{afterPosition:E,indentSize:R,first:_,indented:X})=>{var Y,F,D,Z,M,Q,G,J;if(J=$[2].range[0],M=function(W){if(W.outdented){if(!(R!=null&&W.indentSize>R))return!1}if(X&&!W.indented)return!1;if(!(W.locationData.range[0]<J))return!1;if(!(W.locationData.range[0]>E))return!1;return!0},_){Z=null,Q=this.allComments;for(F=Q.length-1;F>=0;F+=-1)if(Y=Q[F],M(Y))Z=Y;else if(Z)return Z;return Z}G=this.allComments;for(D=G.length-1;D>=0;D+=-1)if(Y=G[D],M(Y))return Y;return null},this.scanTokens(function($,E,R){var _,X,Y,F,D,Z,M,Q,G,J;if(!((M=$[0])==="INDENT"||M==="OUTDENT"||$.generated&&$[0]==="CALL_END"&&!((Q=$.data)!=null?Q.closingTagNameToken:void 0)||$.generated&&$[0]==="}"))return 1;if(_=$[0]==="INDENT",Z=(G=$.prevToken)!=null?G:R[E-1],D=Z[2],J=$.explicit||$.generated,J){X=$,Y=E;while((X.explicit||X.generated)&&Y!==R.length-1)X=R[Y++]}if(F=A(J?X:$,{afterPosition:D.range[0],indentSize:$.indentSize,first:_,indented:J}),_){if(!(F!=null?F.newLine:void 0))return 1}if($.generated&&$[0]==="CALL_END"&&(F!=null?F.indented:void 0))return 1;if(F!=null)D=F.locationData;return $[2]={first_line:F!=null?D.first_line:D.last_line,first_column:F!=null?_?0:D.first_column:D.last_column,last_line:D.last_line,last_column:D.last_column,last_line_exclusive:D.last_line_exclusive,last_column_exclusive:D.last_column_exclusive,range:_&&F!=null?[D.range[0]-F.indentSize,D.range[1]]:D.range},1})}normalizeLines(){var A,$,E,R,_,X,Y,F,D;return D=_=F=null,Y=null,X=null,R=[],E=function(Z,M){var Q,G,J,W;return Z[1]!==";"&&(Q=Z[0],j.call(w3,Q)>=0)&&!(Z[0]==="TERMINATOR"&&(G=this.tag(M+1),j.call(I1,G)>=0))&&!(Z[0]==="ELSE"&&(D!=="THEN"||(X||Y)))&&!(((J=Z[0])==="CATCH"||J==="FINALLY")&&(D==="->"||D==="=>"))||(W=Z[0],j.call(Q1,W)>=0)&&(this.tokens[M-1].newLine||this.tokens[M-1][0]==="OUTDENT")},A=function(Z,M){if(Z[0]==="ELSE"&&D==="THEN")R.pop();return this.tokens.splice(this.tag(M-1)===","?M-1:M,0,F)},$=(Z,M)=>{var Q,G,J;if(J=R.length,!(J>0))return M;return Q=R.pop(),[,G]=this.indentation(Z[Q]),G[1]=J*2,Z.splice(M,0,G),G[1]=2,Z.splice(M+1,0,G),this.detectEnd(M+2,function(W,H){var q;return(q=W[0])==="OUTDENT"||q==="TERMINATOR"},function(W,H){if(this.tag(H)==="OUTDENT"&&this.tag(H+1)==="OUTDENT")return Z.splice(H,2)}),M+2},this.scanTokens(function(Z,M,Q){var G,J,W,H,q,O,N;if([N]=Z,G=(N==="->"||N==="=>")&&this.findTagsBackwards(M,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(M,["THEN","..","..."]),N==="TERMINATOR"){if(this.tag(M+1)==="ELSE"&&this.tag(M-1)!=="OUTDENT")return Q.splice(M,1,...this.indentation()),1;if(H=this.tag(M+1),j.call(I1,H)>=0){if(Z[1]===";"&&this.tag(M+1)==="OUTDENT")Q[M+1].prevToken=Z,_1(Z,Q[M+1]);return Q.splice(M,1),0}}if(N==="CATCH")for(J=W=1;W<=2;J=++W){if(!((q=this.tag(M+J))==="OUTDENT"||q==="TERMINATOR"||q==="FINALLY"))continue;return Q.splice(M+J,0,...this.indentation()),2+J}if((N==="->"||N==="=>")&&((O=this.tag(M+1))===","||O==="]"||this.tag(M+1)==="."&&Z.newLine))return[_,F]=this.indentation(Q[M]),Q.splice(M+1,0,_,F),1;if(j.call(V1,N)>=0&&this.tag(M+1)!=="INDENT"&&!(N==="ELSE"&&this.tag(M+1)==="IF")&&!G){if(D=N,[_,F]=this.indentation(Q[M]),D==="THEN")_.fromThen=!0;if(N==="THEN")Y=this.findTagsBackwards(M,["LEADING_WHEN"])&&this.tag(M+1)==="IF",X=this.findTagsBackwards(M,["IF"])&&this.tag(M+1)==="IF";if(N==="THEN"&&this.findTagsBackwards(M,["IF"]))R.push(M);if(N==="ELSE"&&this.tag(M-1)!=="OUTDENT")M=$(Q,M);if(Q.splice(M+1,0,_),this.detectEnd(M+2,E,A),N==="THEN")Q.splice(M,1);return 1}return 1})}processTemplateTokens(){let A=!1,$=0,E=0,R=[],_=(D)=>{let Z=D.split("#")[0];return i1.has(Z)},X=(D)=>{if(!D||typeof D!=="string")return!1;return/^[A-Z]/.test(D)},Y=(D)=>{return _(D)||X(D)},F=(D,Z)=>{let M=Z;while(M>0){let Q=D[M-1][0];if(Q==="INDENT"||Q==="OUTDENT"||Q==="TERMINATOR"||Q==="RENDER"||Q==="CALL_END"||Q===")")break;M--}return D[M]&&D[M][0]==="IDENTIFIER"&&_(D[M][1])};return this.scanTokens(function(D,Z,M){let Q=D[0],G=Z<M.length-1?M[Z+1]:null;if(Q==="RENDER")return A=!0,$=E+1,1;if(Q==="INDENT")return E++,1;if(Q==="OUTDENT"){E--;let J=0;while(R.length>0&&R[R.length-1]>E){let W=["CALL_END",")",D[2]];W.generated=!0,M.splice(Z+1+J,0,W),R.pop(),J++}if(A&&E<$)A=!1;return 1+J}if(!A)return 1;if(Q==="IDENTIFIER"&&!D.spaced){let J=[D[1]],W=Z+1;while(W+1<M.length){let H=M[W],q=M[W+1];if(H[0]==="-"&&!H.spaced&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")){if(J.push(q[1]),W+=2,q[0]==="PROPERTY")break}else break}if(J.length>1&&W>Z+1&&M[W-1][0]==="PROPERTY")return D[0]="STRING",D[1]=`"${J.join("-")}"`,M.splice(Z+1,W-Z-1),1}if(Q==="."){let J=Z>0?M[Z-1]:null,W=J?J[0]:null;if(W==="INDENT"||W==="TERMINATOR"){if(G&&G[0]==="PROPERTY"){let H=["IDENTIFIER","div",D[2]];return H.generated=!0,M.splice(Z,0,H),2}}}if(Q==="IDENTIFIER"||Q==="PROPERTY"){let J=M[Z+1],W=M[Z+2];if(J&&J[0]==="#"&&W&&W[0]==="PROPERTY"){if(D[1]=D[1]+"#"+W[1],W.spaced)D.spaced=!0;return M.splice(Z+1,2),1}}if(Q==="BIND"){let J=Z>0?M[Z-1]:null,W=M[Z+1];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")&&W&&W[0]==="IDENTIFIER")return J[1]=`__bind_${J[1]}__`,D[0]=":",D[1]=":",1}if(Q==="@"){let J=Z+1;if(J<M.length&&M[J][0]==="PROPERTY"){J++;while(J+1<M.length&&M[J][0]==="."&&M[J+1][0]==="PROPERTY")J+=2;if(J>Z+2&&J<M.length&&M[J][0]===":"){let W=["[","[",D[2]];W.generated=!0,M.splice(Z,0,W);let H=["]","]",M[J+1][2]];return H.generated=!0,M.splice(J+1,0,H),2}}}if(Q==="."&&G&&G[0]==="("){let J=Z>0?M[Z-1]:null,W=J?J[0]:null,H=W==="INDENT"||W==="TERMINATOR",q=["PROPERTY","__cx__",D[2]];q.generated=!0,G[0]="CALL_START";let O=1;for(let N=Z+2;N<M.length&&O>0;N++)if(M[N][0]==="("||M[N][0]==="CALL_START")O++;else if(M[N][0]===")"){if(O--,O===0)M[N][0]="CALL_END"}else if(M[N][0]==="CALL_END")O--;if(H){let N=["IDENTIFIER","div",D[2]];return N.generated=!0,M.splice(Z,0,N),M.splice(Z+2,0,q),3}else return M.splice(Z+1,0,q),2}if(G&&G[0]==="INDENT"){if(Q==="->"||Q==="=>"||Q==="CALL_START"||Q==="(")return 1;let J=!1;if(Q==="IDENTIFIER"&&Y(D[1]))J=!0;else if(Q==="PROPERTY"||Q==="STRING"||Q==="CALL_END"||Q===")")J=F(M,Z);else if(Q==="IDENTIFIER"&&Z>1&&M[Z-1][0]==="..."){if(F(M,Z)){let W=[",",",",D[2]];W.generated=!0;let H=["->","->",D[2]];return H.newLine=!0,M.splice(Z+1,0,W,H),3}}if(J){let W=["CALL_START","(",D[2]];W.generated=!0;let H=["->","->",D[2]];return H.newLine=!0,M.splice(Z+1,0,W,H),R.push(E+1),3}}return 1})}convertLegacyExistential(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F;if(A[0]!=="SPACE?")return 1;R=!1,X=0;for(_=$+1;_<E.length;_++){if(F=E[_][0],Y=F,j.call(p,Y)>=0)X++;else if(Y=F,j.call(c,Y)>=0)X--;if(F===":"&&X===0){R=!0;break}if(X===0&&(F==="TERMINATOR"||F==="INDENT"||F==="OUTDENT"))break}if(!R)A[0]="??",A[1]="??";return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z,M,Q,G;if(A[0]!=="..."&&A[0]!=="..")return 1;let J=0;for(let W=$-1;W>=0;W--){if(E[W][0]==="INDEX_END")J++;if(E[W][0]==="INDEX_START")J--}if(_=J<0,_)return 1;if(Z=E[$-1],F=E[$+1],!Z||!F)return 1;if(M=Z[0],D=F[0],M===","&&D===",")return 1;if(M==="NUMBER")return 1;if(G=["IDENTIFIER","PROPERTY",")","]","THIS","@"],Q=M,j.call(G,Q)>=0){if(R=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],Q=D,j.call(R,Q)>=0)return E[$-1]=A,E[$]=Z,1}return 1})}tagPostfixConditionals(){var A,$,E;return E=null,$=function(R,_){var X,Y;return[Y]=R,[X]=this.tokens[_-1],Y==="TERMINATOR"||Y==="INDENT"&&j.call(V1,X)<0},A=function(R,_){if(R[0]!=="INDENT"||R.generated&&!R.fromThen)return E[0]="POST_"+E[0]},this.scanTokens(function(R,_){if(R[0]!=="IF"&&R[0]!=="UNLESS")return 1;return E=R,this.detectEnd(_+1,$,A),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(A,$){var E,R,_;if(A.generated||A.data&&Object.keys(A.data).length!==0){A[1]=new String(A[1]),R=(E=A.data)!=null?E:{};for(R1 in R){if(!x3.call(R,R1))continue;_=R[R1],A[1][R1]=_}if(A.generated)A[1].generated=!0}return 1})}indentation(A){var $,E;if($=["INDENT",2],E=["OUTDENT",2],A)$.generated=E.generated=!0,$.origin=E.origin=A;else $.explicit=E.explicit=!0;return[$,E]}tag(A){var $;return($=this.tokens[A])!=null?$[0]:void 0}}return U.prototype.generate=m,U}.call(null);w1=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["INTERPOLATION_START","INTERPOLATION_END"],["REGEX_START","REGEX_END"]];G1={};p=[];c=[];for(J1=0,s1=w1.length;J1<s1;J1++)[B1,S1]=w1[J1],p.push(G1[S1]=B1),c.push(G1[B1]=S1);I1=["CATCH","THEN","ELSE","FINALLY"].concat(c);j1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];L1=["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","@","->","=>","[","(","{","--","++"];f1=["+","-"];u1=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"];V1=["ELSE","->","=>","TRY","FINALLY","THEN"];w3=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];$1=["TERMINATOR","INDENT","OUTDENT"];Q1=[".","?.","::","?::"];v1=["IF","TRY","FINALLY","CATCH","CLASS","COMPONENT","SWITCH"];n=["(",")","[","]","{","}",":",".","..","...",",","=","++","--","?","AS","AWAIT","CALL_START","CALL_END","DEFAULT","DO","DO_IIFE","ELSE","EXTENDS","EXPORT","FORIN","FOROF","FORFROM","IMPORT","INDENT","INDEX_SOAK","INTERPOLATION_START","INTERPOLATION_END","LEADING_WHEN","OUTDENT","PARAM_END","REGEX_START","REGEX_END","RETURN","STRING_END","THROW","UNARY","YIELD"].concat(f1.concat(u1.concat(Q1.concat(v1))));X1=["\\",".","?.","?::","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"];var a3={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,DerivedAssign:19,ReadonlyAssign:20,EffectBlock:21,RenderBlock:22,StyleBlock:23,Component:24,If:25,Try:26,While:27,For:28,Switch:29,Class:30,Throw:31,Yield:32,Def:33,DEF:34,Identifier:35,CALL_START:36,ParamList:37,CALL_END:38,Block:39,Assignable:40,REACTIVE_ASSIGN:41,INDENT:42,OUTDENT:43,DERIVED_ASSIGN:44,READONLY_ASSIGN:45,EFFECT:46,FuncGlyph:47,RENDER:48,STYLE:49,COMPONENT:50,ComponentBody:51,ComponentLine:52,PropDecl:53,"@":54,PROPERTY:55,"?":56,"=":57,"...":58,IDENTIFIER:59,CodeLine:60,OperationLine:61,YIELD:62,Object:63,FROM:64,Property:65,AlphaNumeric:66,NUMBER:67,String:68,STRING:69,STRING_START:70,Interpolations:71,STRING_END:72,InterpolationChunk:73,INTERPOLATION_START:74,INTERPOLATION_END:75,Regex:76,REGEX:77,REGEX_START:78,Invocation:79,REGEX_END:80,RegexWithIndex:81,",":82,Literal:83,JS:84,UNDEFINED:85,NULL:86,BOOL:87,INFINITY:88,NAN:89,AssignObj:90,ObjAssignable:91,ObjRestValue:92,":":93,SimpleObjAssignable:94,ThisProperty:95,"[":96,"]":97,ObjSpreadExpr:98,Parenthetical:99,Super:100,This:101,SUPER:102,OptFuncExist:103,Arguments:104,DYNAMIC_IMPORT:105,".":106,"?.":107,"::":108,"?::":109,INDEX_START:110,INDEX_END:111,INDEX_SOAK:112,RETURN:113,PARAM_START:114,PARAM_END:115,"->":116,"=>":117,OptComma:118,Param:119,ParamVar:120,Array:121,Splat:122,SimpleAssignable:123,Slice:124,ES6_OPTIONAL_INDEX:125,Range:126,DoIife:127,MetaProperty:128,NEW_TARGET:129,IMPORT_META:130,"{":131,FOR:132,ForVariables:133,FOROF:134,"}":135,WHEN:136,OWN:137,AssignList:138,CLASS:139,EXTENDS:140,IMPORT:141,ImportDefaultSpecifier:142,ImportNamespaceSpecifier:143,ImportSpecifierList:144,ImportSpecifier:145,AS:146,DEFAULT:147,IMPORT_ALL:148,EXPORT:149,ExportSpecifierList:150,EXPORT_ALL:151,ExportSpecifier:152,ES6_OPTIONAL_CALL:153,FUNC_EXIST:154,ArgList:155,THIS:156,Elisions:157,ArgElisionList:158,OptElisions:159,RangeDots:160,"..":161,Arg:162,ArgElision:163,Elision:164,SimpleArgs:165,TRY:166,Catch:167,FINALLY:168,CATCH:169,THROW:170,"(":171,")":172,WhileSource:173,WHILE:174,UNTIL:175,Loop:176,LOOP:177,FORIN:178,BY:179,FORFROM:180,AWAIT:181,ForValue:182,SWITCH:183,Whens:184,ELSE:185,When:186,LEADING_WHEN:187,IfBlock:188,IF:189,UnlessBlock:190,UNLESS:191,POST_IF:192,POST_UNLESS:193,UNARY:194,DO:195,DO_IIFE:196,UNARY_MATH:197,"-":198,"+":199,"--":200,"++":201,MATH:202,"**":203,SHIFT:204,COMPARE:205,"&":206,"^":207,"|":208,"&&":209,"||":210,"??":211,"!?":212,RELATION:213,"SPACE?":214,COMPOUND_ASSIGN:215},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",34:"DEF",36:"CALL_START",38:"CALL_END",41:"REACTIVE_ASSIGN",42:"INDENT",43:"OUTDENT",44:"DERIVED_ASSIGN",45:"READONLY_ASSIGN",46:"EFFECT",48:"RENDER",49:"STYLE",50:"COMPONENT",54:"@",55:"PROPERTY",56:"?",57:"=",58:"...",59:"IDENTIFIER",62:"YIELD",64:"FROM",67:"NUMBER",69:"STRING",70:"STRING_START",72:"STRING_END",74:"INTERPOLATION_START",75:"INTERPOLATION_END",77:"REGEX",78:"REGEX_START",80:"REGEX_END",82:",",84:"JS",85:"UNDEFINED",86:"NULL",87:"BOOL",88:"INFINITY",89:"NAN",93:":",96:"[",97:"]",102:"SUPER",105:"DYNAMIC_IMPORT",106:".",107:"?.",108:"::",109:"?::",110:"INDEX_START",111:"INDEX_END",112:"INDEX_SOAK",113:"RETURN",114:"PARAM_START",115:"PARAM_END",116:"->",117:"=>",125:"ES6_OPTIONAL_INDEX",129:"NEW_TARGET",130:"IMPORT_META",131:"{",132:"FOR",134:"FOROF",135:"}",136:"WHEN",137:"OWN",139:"CLASS",140:"EXTENDS",141:"IMPORT",146:"AS",147:"DEFAULT",148:"IMPORT_ALL",149:"EXPORT",151:"EXPORT_ALL",153:"ES6_OPTIONAL_CALL",154:"FUNC_EXIST",156:"THIS",161:"..",166:"TRY",168:"FINALLY",169:"CATCH",170:"THROW",171:"(",172:")",174:"WHILE",175:"UNTIL",177:"LOOP",178:"FORIN",179:"BY",180:"FORFROM",181:"AWAIT",183:"SWITCH",185:"ELSE",187:"LEADING_WHEN",189:"IF",191:"UNLESS",192:"POST_IF",193:"POST_UNLESS",194:"UNARY",195:"DO",196:"DO_IIFE",197:"UNARY_MATH",198:"-",199:"+",200:"--",201:"++",202:"MATH",203:"**",204:"SHIFT",205:"COMPARE",206:"&",207:"^",208:"|",209:"&&",210:"||",211:"??",212:"!?",213:"RELATION",214:"SPACE?",215:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[107,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,37,32,97,-3,-3,-3,-3,-3,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,108,-6,-6,-6,127,-6,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,32,4,1,32,7,15,75,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,32,4,1,32,7,15,75,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,96,97,128,129,54,1,5,30,2,4,1,13,2,11,1,5,7,11,4,6,3,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-263,-13,-13,-13,-13,-13,-263,-263,-13,-13,-13,-13,131,133,134,135,136,137,-13,138,-13,139,-13,-13,-13,-13,132,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,32,4,1,13,2,17,7,11,4,9,1,1,1,1,1,1,3,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,141,142,143,144,145,-14,146,-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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,9,1,5,32,4,1,32,7,15,75,-60,-60,-60,-60,-60,-60,-60,-60,-60,9,1,5,32,4,1,32,7,15,75,-61,-61,-61,-61,-61,-61,-61,-61,-61,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,148,-186,-186,149,150,-186,147,-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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-187,-187,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-188,-188,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-189,-189,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-190,-190,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,151,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,106,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,161,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,165,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,168,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,169,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,175,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,176,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,177,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,178,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,179,36,38,41,88,89,99,86,82,174,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,183,36,38,41,88,89,99,86,82,174,60,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,184,185,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,186,5,39,3,5,69,1,188,163,187,90,91,2,39,3,189,163,2,39,3,190,163,2,35,24,191,104,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,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,192,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,2,39,3,193,163,2,39,3,194,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,198,99,195,196,197,199,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,201,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,202,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,88,1,5,8,1,20,3,1,1,2,1,4,7,2,2,1,4,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,3,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,4,16,5,10,1,2,1,3,1,1,12,1,3,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,180,181,92,-210,203,182,163,-210,171,87,-210,-210,104,73,74,100,101,105,106,-210,76,102,103,37,-210,34,75,77,78,79,80,81,-210,93,83,-210,35,40,39,84,85,-210,170,-210,90,91,72,205,36,38,41,88,89,99,-210,-210,-210,-210,204,86,-210,82,-210,-210,-210,-210,-210,-210,-210,-210,174,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,206,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,207,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,137,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,3,1,1,1,1,4,2,2,1,3,1,1,2,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,2,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,3,2,8,7,5,5,4,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,208,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-62,33,209,-62,53,171,54,55,56,87,-62,-62,104,66,73,210,74,100,101,105,106,-62,76,102,103,37,-62,34,75,77,78,79,80,81,-62,93,83,-62,35,40,39,84,85,-62,69,170,-62,90,91,72,52,36,38,41,88,89,99,-62,-62,-62,-62,64,70,71,86,-62,59,65,82,-62,60,-62,-62,61,98,-62,-62,-62,49,63,57,94,58,95,-62,-62,172,173,174,46,47,48,50,51,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,2,35,24,211,104,6,15,32,13,54,2,1,213,43,212,42,90,91,111,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,214,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-131,33,215,-131,53,171,54,55,56,87,104,66,73,74,100,101,105,106,-131,76,102,103,37,-131,34,75,77,78,79,80,81,93,83,-131,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-131,60,-131,-131,61,98,49,63,57,94,58,95,-131,-131,172,173,174,46,47,48,50,51,9,35,24,9,1,1,61,11,1,5,220,104,216,105,106,219,217,218,221,9,30,3,1,1,24,72,8,8,4,223,224,67,225,104,222,64,226,227,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-184,-184,-184,-184,-184,-184,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-185,-185,-185,-185,-185,-185,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,106,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,228,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,229,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,113,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,230,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,36,68,2,4,245,242,243,244,2,36,68,245,246,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,248,-268,-268,247,-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,-268,-268,-268,-268,1,106,249,1,106,250,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-154,-154,-154,-154,-154,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,251,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,252,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,253,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,254,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,256,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,255,33,163,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,257,267,259,266,260,-205,258,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,269,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,270,36,38,41,88,89,99,86,82,174,63,1,5,30,2,3,1,1,1,1,11,1,1,6,5,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,6,7,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,6,68,1,1,1,2,1,274,105,106,271,272,273,109,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-5,275,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-5,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,-5,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-5,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,276,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,277,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,278,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,279,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,280,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,281,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,282,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,283,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,284,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,285,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,286,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,287,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,288,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,289,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,290,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,291,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,292,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,293,294,295,199,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,297,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,298,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,5,36,32,1,1,34,245,299,105,106,300,2,36,68,245,301,2,55,10,248,302,2,55,10,248,303,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,248,-160,-160,-160,304,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,248,-161,-161,-161,305,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,306,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,307,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,311,102,103,37,309,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,308,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,314,1,110,315,3,36,33,1,-264,-264,-264,2,55,10,248,316,2,55,10,248,317,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,248,-177,-177,-177,318,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,248,-178,-178,-178,319,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,320,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,321,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,322,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,324,323,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,325,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,327,326,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,328,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,330,329,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,331,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,333,332,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,334,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,335,337,-138,6,6,32,4,1,39,33,-141,-141,-141,-141,-141,-141,7,6,32,4,1,14,25,33,-145,-145,-145,-145,338,-145,-145,15,6,29,3,4,1,11,5,4,19,13,1,19,5,1,10,-148,155,-148,-148,-148,159,104,158,-148,156,160,-148,339,157,99,10,6,32,4,1,14,25,33,19,44,2,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,10,6,32,4,1,14,25,33,19,44,2,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,10,6,32,4,1,14,25,33,19,44,2,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,10,6,32,4,1,14,25,33,19,44,2,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,2,55,10,248,247,113,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,1,5,32,4,1,32,7,15,75,-135,-135,-135,-135,-135,-135,-135,-135,-135,106,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,342,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,341,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,108,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,126,-381,-381,-381,-381,-381,-381,125,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,120,121,-381,-381,9,1,5,32,4,1,32,7,15,75,-378,-378,-378,-378,-378,-378,-378,-378,-378,5,173,1,1,17,1,130,96,97,128,129,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,108,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,126,-382,-382,-382,-382,-382,-382,125,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,120,121,-382,-382,9,1,5,32,4,1,32,7,15,75,-379,-379,-379,-379,-379,-379,-379,-379,-379,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,108,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,126,-383,-383,-383,-383,-383,-383,125,-383,-383,-383,112,-383,-383,-383,-383,-383,-383,-383,120,121,-383,-383,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,343,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,2,39,3,161,163,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,5,15,32,67,2,1,213,171,170,90,91,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,108,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,126,-384,-384,-384,-384,-384,-384,125,-384,-384,-384,112,-384,-384,-384,-384,-384,-384,-384,120,121,-384,-384,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,108,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,126,-385,-385,-385,-385,-385,-385,125,-385,-385,-385,112,-385,-385,-385,-385,-385,-385,-385,120,121,-385,-385,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,108,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,126,-386,-386,-386,-386,-386,-386,125,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,120,121,-386,-386,2,63,68,344,99,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-183,-388,-183,-388,-388,-183,-183,-388,-183,-388,-183,-183,-388,-388,-388,-388,-183,-183,-183,-183,-183,-388,-183,-388,-183,-388,-388,-388,-388,-183,-183,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,13,36,33,1,33,3,1,1,1,1,2,13,28,1,-263,-263,-263,131,133,134,135,136,137,138,139,132,140,6,106,1,1,1,1,2,141,142,143,144,145,146,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-186,-186,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-183,-389,-183,-389,-389,-183,-183,-389,-183,-389,-183,-183,-389,-389,-389,-389,-183,-183,-183,-183,-183,-389,-183,-389,-183,-389,-389,-389,-389,-183,-183,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,347,345,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,346,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,39,3,348,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,1,42,349,3,39,3,147,350,163,351,44,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,6,1,1,3,2,1,3,1,1,12,1,5,1,3,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,352,353,354,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,3,134,44,2,356,355,357,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,358,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,359,199,3,39,3,137,360,163,361,4,82,52,44,2,362,-357,-357,-357,5,57,25,52,44,2,363,-355,-355,-355,-355,23,42,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,364,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,184,2,1,365,366,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,368,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,59,1,5,30,2,1,2,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-183,-214,369,-183,163,-214,-183,-183,-214,-183,-214,-183,-183,-214,-214,-214,-214,-183,-183,-183,-183,-183,-214,-183,-214,-183,-214,-214,-214,-214,370,-183,-183,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,108,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,126,-311,-311,-311,-311,-311,-311,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,371,99,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,108,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,126,-63,-63,-63,-63,-63,-63,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,372,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,373,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,36,3,3,374,375,163,9,1,5,32,4,1,32,7,15,75,-380,-380,-380,-380,-380,-380,-380,-380,-380,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,108,-129,-129,-129,127,-129,126,-129,-129,-129,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,376,99,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,2,64,18,377,378,1,64,379,7,35,7,17,76,9,1,2,384,383,104,380,381,382,385,2,64,18,-234,-234,1,146,386,7,35,7,17,76,12,3,2,391,390,104,387,392,388,389,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,1,57,393,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,394,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,395,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,64,396,2,6,166,107,397,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,398,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,31,6,32,4,1,13,2,24,15,35,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,313,-285,-285,127,399,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,400,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,403,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,5,6,36,1,39,15,-289,-289,-289,-289,-289,112,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,407,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,5,6,36,1,39,15,-294,-294,-294,-294,-294,6,6,32,4,1,39,15,-286,-286,-286,-286,-286,-286,6,6,32,4,1,39,15,-287,-287,-287,-287,-287,-287,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-288,409,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-288,33,-288,-288,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,-288,34,75,77,78,79,80,81,93,83,-288,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,2,55,10,248,410,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,411,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,412,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,413,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,414,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,2,55,10,248,417,2,55,10,248,418,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,419,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,420,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,108,-315,-315,-315,-315,-315,-315,-315,127,-315,-315,421,-315,-315,126,96,97,-315,-315,-315,-315,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,108,-317,-317,-317,-317,-317,-317,-317,127,-317,-317,422,-317,-317,126,96,97,-317,-317,-317,-317,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,108,-324,-324,-324,-324,-324,-324,-324,127,-324,-324,-324,-324,-324,126,96,97,-324,-324,-324,-324,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-95,-95,-95,-95,423,-95,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,424,-138,7,6,36,1,14,25,11,42,-104,-104,-104,426,-104,-104,-104,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,427,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,55,10,31,248,247,428,6,6,36,1,39,11,42,-107,-107,-107,-107,-107,-107,5,6,36,1,39,53,-206,-206,-206,-206,-206,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,5,6,36,1,39,53,-96,-96,-96,-96,-96,17,35,19,1,4,4,2,29,1,3,1,1,1,1,3,26,25,15,264,87,248,104,431,265,429,266,430,432,433,434,435,436,99,86,82,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,437,-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,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,6,68,1,1,2,1,1,274,105,106,438,439,273,4,69,1,2,2,-74,-74,-74,-74,107,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,440,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,441,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,442,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-79,-79,-79,-79,5,1,5,37,32,97,-4,-4,-4,-4,-4,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,108,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,126,-393,-393,-393,-393,-393,-393,125,-393,-393,111,112,-393,-393,-393,-393,-393,-393,-393,120,121,-393,-393,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,108,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,126,-394,-394,-394,-394,-394,-394,125,-394,-394,111,112,-394,-394,-394,-394,-394,-394,-394,120,121,-394,-394,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,108,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,126,-395,-395,-395,-395,-395,-395,125,-395,-395,-395,112,-395,-395,-395,-395,-395,-395,-395,120,121,-395,-395,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,108,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,126,-396,-396,-396,-396,-396,-396,125,-396,-396,-396,112,-396,-396,-396,-396,-396,-396,-396,120,121,-396,-396,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,108,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,126,-397,-397,-397,-397,-397,-397,125,110,109,111,112,-397,-397,-397,-397,-397,-397,-397,120,121,-397,-397,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,108,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,126,-398,-398,-398,-398,-398,-398,125,110,109,111,112,113,-398,-398,-398,-398,-398,-398,120,121,122,-398,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,108,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,126,-399,-399,-399,-399,-399,-399,125,110,109,111,112,113,114,-399,-399,-399,-399,-399,120,121,122,-399,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,108,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,126,-400,-400,-400,-400,-400,-400,125,110,109,111,112,113,114,115,-400,-400,-400,-400,120,121,122,-400,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,108,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,126,-401,-401,-401,-401,-401,-401,125,110,109,111,112,113,114,115,116,-401,-401,-401,120,121,122,-401,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,108,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,126,-402,-402,-402,-402,-402,-402,125,110,109,111,112,113,114,115,116,117,-402,-402,120,121,122,-402,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,108,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,126,-403,-403,-403,-403,-403,-403,125,110,109,111,112,113,114,115,116,117,118,-403,120,121,122,-403,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,108,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,126,96,97,-404,-404,-404,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,108,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,126,96,97,-405,-405,-405,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,108,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,126,-406,-406,-406,-406,-406,-406,125,110,109,111,112,113,-406,-406,-406,-406,-406,-406,120,121,-406,-406,23,56,37,39,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,443,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,108,-375,-375,-375,-375,-375,-375,-375,127,-375,-375,-375,-375,-375,126,96,97,-375,-375,-375,-375,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,108,-377,-377,-377,-377,-377,-377,-377,127,-377,-377,-377,-377,-377,126,96,97,-377,-377,-377,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,445,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,447,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,448,199,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-353,-353,-353,449,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,108,-374,-374,-374,-374,-374,-374,-374,127,-374,-374,-374,-374,-374,126,96,97,-374,-374,-374,-374,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,108,-376,-376,-376,-376,-376,-376,-376,127,-376,-376,-376,-376,-376,126,96,97,-376,-376,-376,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,450,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,452,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,453,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,454,1,111,455,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,456,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-279,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-279,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,457,-86,-86,-86,-86,-86,-86,-86,-83,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,458,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,459,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,460,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,461,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,462,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,463,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,464,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,465,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,466,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,108,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,126,-92,-92,-92,-92,-92,-92,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,467,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,468,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,108,-35,-35,-35,-35,-35,-35,-35,127,-35,-35,-35,-35,-35,126,96,97,-35,-35,-35,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,469,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,470,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,108,-38,-38,-38,-38,-38,-38,-38,127,-38,-38,-38,-38,-38,126,96,97,-38,-38,-38,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,471,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,472,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,108,-41,-41,-41,-41,-41,-41,-41,127,-41,-41,-41,-41,-41,126,96,97,-41,-41,-41,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,473,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,474,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,47,69,1,475,90,91,17,6,29,3,4,1,11,4,1,4,32,1,1,22,1,1,10,4,-139,155,-139,-139,-139,159,154,104,158,156,160,-139,476,153,157,99,-139,2,6,36,477,478,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,479,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,39,33,-147,-147,-147,-147,-147,-147,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,-285,-285,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,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,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,2,6,37,107,480,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,481,337,-138,1,43,482,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,108,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,-408,-408,-408,-408,-408,-408,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,483,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,484,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,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,5,6,1,1,1,1,1,1,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,485,486,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,492,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,493,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,2,39,3,494,163,6,35,4,3,17,4,68,495,497,163,104,496,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,498,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,499,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,500,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,501,1,180,502,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,503,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,10,35,19,5,4,32,1,24,1,10,51,155,159,104,158,156,160,200,157,99,504,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,505,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,184,2,1,506,366,367,4,43,142,1,1,507,508,509,367,3,43,142,2,-363,-363,-363,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,9,1,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,511,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,510,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,512,163,-212,108,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,126,-212,-212,-212,-212,-212,-212,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,513,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,514,1,43,515,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,108,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,126,-65,-65,-65,-65,-65,-65,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,516,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,1,43,517,3,68,1,1,518,105,106,3,131,12,5,520,519,221,3,68,1,1,521,105,106,1,64,522,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,523,-138,5,6,36,1,39,53,-225,-225,-225,-225,-225,6,35,7,17,85,1,2,384,383,104,525,382,385,6,6,36,1,39,53,11,-230,-230,-230,-230,-230,526,6,6,36,1,39,53,11,-232,-232,-232,-232,-232,527,2,35,24,528,104,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-236,-236,-236,-236,-236,529,-236,-236,-236,-236,-236,-236,-236,-236,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,530,-138,5,6,36,1,39,53,-248,-248,-248,-248,-248,6,35,7,17,88,3,2,391,390,104,392,532,389,6,6,36,1,39,53,11,-253,-253,-253,-253,-253,533,6,6,36,1,39,53,11,-256,-256,-256,-256,-256,534,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,536,535,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,537,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,108,-243,-243,-243,127,-243,126,96,97,-243,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,538,99,3,68,1,1,539,105,106,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,2,6,37,107,540,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,541,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,5,6,36,1,39,15,-295,-295,-295,-295,-295,2,42,55,543,542,116,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,545,238,544,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,6,36,1,54,546,-296,-296,-296,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,547,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,108,-153,-153,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,548,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,549,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,550,-138,5,6,32,4,1,39,-280,-280,-280,-280,-280,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,552,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,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,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,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,-369,-369,-369,-369,-369,553,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,554,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,555,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,556,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,6,36,93,559,560,558,23,6,29,3,4,1,11,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,1,38,-139,264,-139,-139,-139,261,248,268,104,265,262,100,101,105,106,561,562,267,259,266,260,-139,-139,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,563,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,564,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,565,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,566,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-108,-110,-108,-108,-263,-263,-108,567,-110,-110,-110,-110,-110,-110,-108,140,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-109,-263,-109,-109,-263,-263,-109,568,569,570,571,572,573,574,-109,140,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,7,36,33,1,33,3,4,44,-263,-263,-263,575,243,244,140,2,36,68,245,576,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,4,69,1,2,2,-75,-75,-75,-75,2,6,69,107,577,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,578,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-78,-78,-78,-78,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,579,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,580,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,581,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,582,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,583,1,180,584,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,585,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,586,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-277,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-277,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,587,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,588,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-278,108,-278,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,589,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,590,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,591,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,592,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,593,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,594,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,595,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,596,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,597,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,598,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,108,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,126,-93,-93,-93,-93,-93,-93,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,599,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,108,-36,-36,-36,-36,-36,-36,-36,127,-36,-36,-36,-36,-36,126,96,97,-36,-36,-36,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,600,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,108,-39,-39,-39,-39,-39,-39,-39,127,-39,-39,-39,-39,-39,126,96,97,-39,-39,-39,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,601,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,108,-42,-42,-42,-42,-42,-42,-42,127,-42,-42,-42,-42,-42,126,96,97,-42,-42,-42,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,602,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,106,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,604,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,603,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,6,6,32,4,1,39,33,-142,-142,-142,-142,-142,-142,11,35,19,4,1,4,32,1,23,1,1,10,155,159,154,104,158,156,160,605,153,157,99,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,606,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,28,6,32,4,1,13,26,33,17,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,108,-146,-146,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,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,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,3,47,69,1,607,90,91,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,608,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,108,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,126,-410,-410,-410,-410,-410,-410,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,610,609,2,6,37,-49,-49,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,-53,-53,7,6,37,130,1,1,17,1,-54,-54,130,96,97,128,129,2,6,37,-55,-55,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,611,-268,612,247,-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,-268,-268,-268,-268,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,613,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,39,3,614,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,39,3,615,163,2,39,3,616,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,26,39,3,14,76,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,617,163,108,127,618,126,96,97,619,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,620,163,108,127,621,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,622,163,108,127,623,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,624,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,625,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,626,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,-358,-358,-358,26,56,26,50,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-356,127,-356,126,96,97,-356,-356,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,4,43,142,1,1,627,628,509,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,2,39,3,629,163,3,43,142,2,-364,-364,-364,3,39,3,40,630,163,631,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-302,108,-302,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,632,163,-216,108,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,126,-216,-216,-216,-216,-216,-216,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,8,6,32,4,1,39,15,21,17,-138,633,-138,-138,336,-138,337,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,1,64,634,6,35,7,17,85,1,2,384,383,104,635,382,385,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,3,68,1,1,636,105,106,3,6,36,93,638,639,637,10,6,29,3,4,1,16,38,38,10,2,-139,384,-139,-139,-139,104,-139,-139,640,385,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,641,-138,2,35,24,642,104,2,35,24,643,104,1,64,-235,3,68,1,1,644,105,106,3,6,36,93,646,647,645,10,6,29,3,4,1,16,38,38,12,5,-139,391,-139,-139,-139,104,-139,-139,392,648,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,649,-138,3,35,24,88,650,104,651,2,35,24,652,104,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,108,-240,-240,-240,127,-240,126,-240,-240,-240,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,653,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,654,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,655,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,1,172,656,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,657,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,112,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,658,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,36,1,39,15,-290,-290,-290,-290,-290,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-297,-297,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-297,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,238,659,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,2,42,1,543,660,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,661,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,6,32,4,663,662,664,112,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,665,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,666,-138,2,39,3,667,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,108,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,126,-316,-316,-316,-316,-316,-316,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,108,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,126,-318,-318,-318,-318,-318,-318,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,668,-97,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,669,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,17,35,19,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,264,261,248,268,104,265,262,100,101,105,106,670,562,267,259,266,260,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,562,267,259,266,260,-205,671,5,6,36,1,39,53,-207,-207,-207,-207,-207,6,6,36,1,39,11,42,-95,-95,-95,-95,672,-95,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,108,-99,127,-99,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,673,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,36,1,39,11,42,-105,-105,-105,-105,-105,-105,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,674,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,36,68,245,675,2,36,68,245,676,2,55,10,248,677,2,55,10,248,678,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-123,-123,-123,-123,248,679,-123,-123,-123,-123,-123,-123,-123,-123,-123,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-124,-124,-124,-124,248,680,-124,-124,-124,-124,-124,-124,-124,-124,-124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,681,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,682,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,683,2,36,68,245,684,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,4,69,1,2,2,-76,-76,-76,-76,2,6,37,107,685,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,108,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,-407,-407,-407,-407,-407,-407,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,108,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,686,-340,-340,126,-340,-340,-340,687,-340,-340,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,688,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,108,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,689,-349,-349,126,-349,-349,-349,-349,-349,-349,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,690,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,691,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,108,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,126,-354,-354,-354,-354,-354,-354,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-276,108,-276,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,692,1,111,693,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-82,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,694,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,695,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,696,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,697,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,698,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,1,5,32,4,1,32,7,15,75,-134,-134,-134,-134,-134,-134,-134,-134,-134,6,6,32,4,1,39,33,-143,-143,-143,-143,-143,-143,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,336,-138,699,-138,2,39,3,603,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,107,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,5,3,3,1,1,1,1,2,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-51,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-51,53,43,54,55,56,700,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-56,-69,-69,-69,-69,-56,-69,-69,701,702,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,1,59,703,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,704,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,705,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,706,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,707,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,708,163,108,127,709,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,710,163,108,127,711,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,2,39,3,712,163,1,43,713,4,6,37,142,2,714,-365,-365,-365,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,715,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,2,39,3,716,163,3,68,1,1,717,105,106,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,718,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,1,64,719,4,35,24,86,2,384,104,720,385,6,35,7,17,85,1,2,384,383,104,721,382,385,5,6,36,1,39,53,-226,-226,-226,-226,-226,3,6,36,1,638,639,722,5,6,36,1,39,53,-231,-231,-231,-231,-231,5,6,36,1,39,53,-233,-233,-233,-233,-233,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-237,-237,-237,-237,-237,723,-237,-237,-237,-237,-237,-237,-237,-237,4,35,24,88,5,391,104,392,724,6,35,7,17,88,3,2,391,390,104,392,725,389,5,6,36,1,39,53,-249,-249,-249,-249,-249,3,6,36,1,646,647,726,5,6,36,1,39,53,-254,-254,-254,-254,-254,5,6,36,1,39,53,-255,-255,-255,-255,-255,5,6,36,1,39,53,-257,-257,-257,-257,-257,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,108,-241,-241,-241,127,-241,126,-241,-241,-241,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,727,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,728,5,6,36,1,39,15,-291,-291,-291,-291,-291,5,6,36,1,39,15,-292,-292,-292,-292,-292,1,111,729,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,730,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,731,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,32,4,1,39,-281,-281,-281,-281,-281,3,6,36,1,663,664,732,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,733,734,295,199,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,735,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-208,-208,-208,-208,-208,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,736,-138,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,737,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,738,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-106,-106,-106,-106,-106,-106,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,739,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,740,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,741,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,742,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,1,75,743,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,744,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,745,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,746,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,747,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,748,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,108,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,749,-351,-351,126,-351,-351,-351,-351,-351,-351,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,1,111,750,1,111,751,1,111,752,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,1,111,753,3,6,36,1,477,478,754,2,6,37,-50,-50,2,6,37,-57,-57,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,755,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,6,37,-59,-59,25,39,3,14,76,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,756,163,108,127,126,96,97,757,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,758,163,108,127,759,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,760,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,761,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,762,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,763,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,764,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,43,142,2,-366,-366,-366,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,108,-303,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,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,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,3,6,36,93,638,639,765,3,68,1,1,766,105,106,5,6,36,1,39,53,-227,-227,-227,-227,-227,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,767,-138,5,6,36,1,39,53,-228,-228,-228,-228,-228,3,68,1,1,768,105,106,5,6,36,1,39,53,-250,-250,-250,-250,-250,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,769,-138,5,6,36,1,39,53,-251,-251,-251,-251,-251,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,42,1,543,770,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,5,6,32,4,1,39,-282,-282,-282,-282,-282,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,771,-138,5,6,32,4,1,39,-283,-283,-283,-283,-283,3,134,44,2,772,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,773,199,5,6,36,1,39,53,-98,-98,-98,-98,-98,3,6,36,1,559,560,774,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,127,-97,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-100,-100,-100,-100,-100,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,775,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,776,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,777,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,4,69,1,2,2,-77,-77,-77,-77,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,108,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,126,-341,-341,-341,778,-341,-341,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,108,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,779,-342,-342,126,-342,-342,-342,-342,-342,-342,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,108,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,126,-350,-350,-350,-350,-350,-350,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,780,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,781,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,6,6,32,4,1,39,33,-144,-144,-144,-144,-144,-144,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,782,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,783,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,784,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,785,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,1,64,786,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,3,6,36,1,638,639,787,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,3,6,36,1,646,647,788,5,6,36,1,39,15,-293,-293,-293,-293,-293,3,6,36,1,663,664,789,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,790,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,791,5,6,36,1,39,53,-209,-209,-209,-209,-209,1,111,792,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,793,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,794,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,795,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,108,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,126,-352,-352,-352,-352,-352,-352,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,796,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,797,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,3,68,1,1,798,105,106,5,6,36,1,39,53,-229,-229,-229,-229,-229,5,6,36,1,39,53,-252,-252,-252,-252,-252,5,6,32,4,1,39,-284,-284,-284,-284,-284,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,801,-345,-345,-345,-345,799,-345,-345,-345,800,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,802,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,1,111,803,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,108,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,126,-343,-343,-343,-343,-343,-343,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,108,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,126,-344,-344,-344,-344,-344,-344,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,1,135,804,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,805,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,54,38,-139,-139,-139,-139,-139,-139,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,801,-347,-347,-347,-347,806,-347,-347,-347,807,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,801,-346,-346,-346,-346,808,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,135,809,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,810,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,135,811,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-202,-202,-202,-202,-202,-202,-202,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,801,-348,-348,-348,-348,812,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,1,135,813,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-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,-203,-203,-203,-203,-203,-203,-203,-203,-203],A=[],$=0,E,R,_,X;while($<U.length){E=U[$++],R={},_=0,X=[];while(E--)_+=U[$++],X.push(_);for(_ of X)R[_]=U[$++];A.push(R)}return A})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,33,6,33,3,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,2,22,2,23,2,24,5,51,1,51,3,51,2,52,1,52,1,52,1,52,1,53,2,53,3,53,4,53,3,8,1,8,1,32,1,32,2,32,4,32,3,39,2,39,3,35,1,65,1,66,1,66,1,68,1,68,3,71,1,71,2,73,3,73,5,73,2,73,1,76,1,76,3,81,3,81,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,17,3,17,4,17,5,90,1,90,1,90,3,90,5,90,3,90,5,94,1,94,1,94,1,91,1,91,3,91,4,91,1,92,2,92,2,98,1,98,1,98,1,98,1,98,1,98,3,98,2,98,3,98,3,98,3,98,3,98,3,98,3,98,2,98,2,98,4,98,6,98,5,98,7,10,2,10,4,10,1,15,5,15,2,60,5,60,2,47,1,47,1,118,0,118,1,37,0,37,1,37,3,37,4,37,6,119,1,119,3,119,2,119,1,120,1,120,1,120,1,120,1,122,2,123,1,123,1,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,4,123,6,123,4,123,5,123,7,123,5,123,7,123,5,123,7,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,5,123,7,40,1,40,1,40,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,100,3,100,4,100,6,128,3,128,3,63,10,63,12,63,11,63,13,63,4,138,0,138,1,138,3,138,4,138,6,30,1,30,2,30,3,30,4,30,2,30,3,30,4,30,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,144,1,144,3,144,4,144,4,144,6,145,1,145,3,145,1,145,3,142,1,143,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,150,1,150,3,150,4,150,4,150,6,152,1,152,3,152,3,152,1,152,3,79,3,79,3,79,3,79,2,79,2,103,0,103,1,104,2,104,4,101,1,101,1,95,2,121,2,121,3,121,4,160,1,160,1,126,5,124,3,124,2,124,2,124,1,155,1,155,3,155,4,155,4,155,6,162,1,162,1,162,1,162,1,158,1,158,3,158,4,158,4,158,6,163,1,163,2,159,1,159,2,157,1,157,2,164,1,164,2,165,1,165,3,26,2,26,3,26,4,26,5,167,3,167,3,167,2,31,2,31,4,99,3,99,5,173,2,173,4,173,2,173,4,27,2,27,2,27,2,27,1,176,2,176,2,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,182,1,182,3,133,1,133,3,29,5,29,7,29,4,29,6,184,1,184,2,186,3,186,4,188,3,188,5,190,3,190,5,25,1,25,3,25,1,25,3,25,3,25,3,25,3,61,2,61,2,61,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,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,5,16,3,16,5,16,4,127,2],ruleActions:(U,A,$,E)=>{let R=A,_=A.length-1;switch(U){case 1:return["program"];case 2:return["program",...R[_]];case 3:case 49:case 74:case 141:case 206:case 225:case 248:case 280:case 294:case 298:case 357:case 363:return[R[_]];case 4:case 50:case 142:case 207:case 226:case 249:case 281:return[...R[_-2],R[_]];case 5:case 51:case 76:case 301:return R[_-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 52:case 53:case 54:case 55:case 60:case 61:case 68:case 69:case 70:case 71:case 72:case 79:case 80:case 84:case 85:case 86:case 89:case 90:case 91:case 96:case 101:case 102:case 103:case 104:case 107:case 110:case 111:case 112:case 113:case 114:case 136:case 137:case 138:case 139:case 145:case 149:case 150:case 151:case 152:case 154:case 155:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:case 192:case 193:case 194:case 230:case 232:case 234:case 253:case 256:case 285:case 286:case 287:case 289:case 302:case 322:case 355:case 371:case 373:return R[_];case 33:return["def",R[_-4],R[_-2],R[_]];case 34:return["def",R[_-1],[],R[_]];case 35:return["signal",R[_-2],R[_]];case 36:return["signal",R[_-3],R[_]];case 37:return["signal",R[_-4],R[_-1]];case 38:return["derived",R[_-2],R[_]];case 39:return["derived",R[_-3],R[_]];case 40:return["derived",R[_-4],R[_-1]];case 41:return["readonly",R[_-2],R[_]];case 42:return["readonly",R[_-3],R[_]];case 43:return["readonly",R[_-4],R[_-1]];case 44:case 45:return["effect",R[_]];case 46:return["render",R[_]];case 47:return["style",R[_]];case 48:return["component",R[_-3],["block",...R[_-1]]];case 56:return["prop",R[_]];case 57:return["prop",R[_-1],"optional"];case 58:return["prop",R[_-2],R[_]];case 59:return["prop-rest",R[_]];case 62:return["yield"];case 63:return["yield",R[_]];case 64:return["yield",R[_-1]];case 65:return["yield-from",R[_]];case 66:return["block"];case 67:return["block",...R[_-1]];case 73:return["str",...R[_-1]];case 75:case 295:case 299:case 364:return[...R[_-1],R[_]];case 77:case 228:case 251:case 266:case 283:return R[_-2];case 78:return"";case 81:return["regex",R[_-1]];case 82:return["regex-index",R[_-2],R[_]];case 83:return["regex-index",R[_],null];case 87:return"undefined";case 88:return"null";case 92:return["=",R[_-2],R[_]];case 93:return["=",R[_-3],R[_]];case 94:return["=",R[_-4],R[_-1]];case 95:return[R[_],R[_],null];case 97:return[R[_-2],R[_],":"];case 98:return[R[_-4],R[_-1],":"];case 99:return[R[_-2],R[_],"="];case 100:return[R[_-4],R[_-1],"="];case 105:return["computed",R[_-1]];case 106:return["[]","this",R[_-1]];case 108:case 109:case 153:return["...",R[_]];case 115:case 261:return["super",...R[_]];case 116:case 262:return["import",...R[_]];case 117:case 118:return[R[_-2],...R[_]];case 119:case 156:case 173:return[".",R[_-2],R[_]];case 120:case 157:case 174:return["?.",R[_-2],R[_]];case 121:case 158:case 175:return["::",R[_-2],R[_]];case 122:case 159:case 176:return["?::",R[_-2],R[_]];case 123:case 160:case 177:return["::",R[_-1],"prototype"];case 124:case 161:case 178:return["?::",R[_-1],"prototype"];case 125:case 162:case 164:case 179:return["[]",R[_-3],R[_-1]];case 126:case 163:case 165:case 180:return["[]",R[_-5],R[_-2]];case 127:case 167:case 169:case 181:return["?[]",R[_-4],R[_-1]];case 128:case 168:case 170:case 182:return["?[]",R[_-6],R[_-2]];case 129:return["return",R[_]];case 130:return["return",R[_-1]];case 131:return["return"];case 132:case 134:return[R[_-1],R[_-3],R[_]];case 133:case 135:return[R[_-1],[],R[_]];case 140:case 205:case 265:case 296:return[];case 143:case 208:case 227:case 250:case 282:return[...R[_-3],R[_]];case 144:case 209:case 229:case 252:case 284:return[...R[_-5],...R[_-2]];case 146:case 356:return["default",R[_-2],R[_]];case 147:return["rest",R[_]];case 148:return["expansion"];case 166:return[R[_-1][0],R[_-3],...R[_-1].slice(1)];case 171:return["optindex",R[_-4],R[_-1]];case 172:return["optindex",R[_-6],R[_-2]];case 195:return[".","super",R[_]];case 196:return["[]","super",R[_-1]];case 197:return["[]","super",R[_-2]];case 198:return[".","new",R[_]];case 199:return[".","import",R[_]];case 200:return["object-comprehension",R[_-8],R[_-6],[["for-of",R[_-4],R[_-2],!1]],[]];case 201:return["object-comprehension",R[_-10],R[_-8],[["for-of",R[_-6],R[_-4],!1]],[R[_-2]]];case 202:return["object-comprehension",R[_-9],R[_-7],[["for-of",R[_-4],R[_-2],!0]],[]];case 203:return["object-comprehension",R[_-11],R[_-9],[["for-of",R[_-6],R[_-4],!0]],[R[_-2]]];case 204:return["object",...R[_-2]];case 210:return["class",null,null];case 211:return["class",null,null,R[_]];case 212:return["class",null,R[_]];case 213:return["class",null,R[_-1],R[_]];case 214:return["class",R[_],null];case 215:return["class",R[_-1],null,R[_]];case 216:return["class",R[_-2],R[_]];case 217:return["class",R[_-3],R[_-1],R[_]];case 218:case 221:return["import","{}",R[_]];case 219:case 220:return["import",R[_-2],R[_]];case 222:return["import",R[_-4],R[_]];case 223:return["import",[R[_-4],R[_-2]],R[_]];case 224:return["import",[R[_-7],R[_-4]],R[_]];case 231:case 233:case 254:case 255:case 257:case 358:return[R[_-2],R[_]];case 235:return["*",R[_]];case 236:return["export","{}"];case 237:return["export",R[_-2]];case 238:case 239:return["export",R[_]];case 240:return["export",["=",R[_-2],R[_]]];case 241:return["export",["=",R[_-3],R[_]]];case 242:return["export",["=",R[_-4],R[_-1]]];case 243:return["export-default",R[_]];case 244:return["export-default",R[_-1]];case 245:return["export-all",R[_]];case 246:return["export-from","{}",R[_]];case 247:return["export-from",R[_-4],R[_]];case 258:return["tagged-template",R[_-2],R[_]];case 259:return R[_-1]?["?call",R[_-2],...R[_]]:[R[_-2],...R[_]];case 260:return["optcall",R[_-2],...R[_]];case 263:case 300:return null;case 264:return!0;case 267:case 268:return"this";case 269:return[".","this",R[_]];case 270:return["array"];case 271:return["array",...R[_-1]];case 272:return["array",...R[_-2],...R[_-1]];case 273:return"..";case 274:case 288:return"...";case 275:return[R[_-2],R[_-3],R[_-1]];case 276:case 395:case 397:case 398:case 406:case 408:return[R[_-1],R[_-2],R[_]];case 277:return[R[_],R[_-1],null];case 278:return[R[_-1],null,R[_]];case 279:return[R[_],null,null];case 290:return[...R[_-2],...R[_]];case 291:return[...R[_-3],...R[_]];case 292:return[...R[_-2],...R[_-1]];case 293:return[...R[_-5],...R[_-4],...R[_-2],...R[_-1]];case 297:return[...R[_]];case 303:return Array.isArray(R[_-2])?[...R[_-2],R[_]]:[R[_-2],R[_]];case 304:return["try",R[_]];case 305:return["try",R[_-1],R[_]];case 306:return["try",R[_-2],R[_]];case 307:return["try",R[_-3],R[_-2],R[_]];case 308:case 309:case 378:case 381:case 383:return[R[_-1],R[_]];case 310:return[null,R[_]];case 311:return["throw",R[_]];case 312:return["throw",R[_-1]];case 313:return R[_-1].length===1?R[_-1][0]:R[_-1];case 314:return R[_-2].length===1?R[_-2][0]:R[_-2];case 315:return["while",R[_]];case 316:return["while",R[_-2],R[_]];case 317:return["until",R[_]];case 318:return["until",R[_-2],R[_]];case 319:return R[_-1].length===2?[R[_-1][0],R[_-1][1],R[_]]:[R[_-1][0],R[_-1][1],R[_-1][2],R[_]];case 320:case 321:return R[_].length===2?[R[_][0],R[_][1],[R[_-1]]]:[R[_][0],R[_][1],R[_][2],[R[_-1]]];case 323:return["loop",R[_]];case 324:return["loop",[R[_]]];case 325:return["for-in",R[_-3],R[_-1],null,null,R[_]];case 326:return["for-in",R[_-5],R[_-3],null,R[_-1],R[_]];case 327:return["for-in",R[_-5],R[_-3],R[_-1],null,R[_]];case 328:return["for-in",R[_-7],R[_-5],R[_-1],R[_-3],R[_]];case 329:return["for-in",R[_-7],R[_-5],R[_-3],R[_-1],R[_]];case 330:return["for-of",R[_-3],R[_-1],!1,null,R[_]];case 331:return["for-of",R[_-5],R[_-3],!1,R[_-1],R[_]];case 332:return["for-of",R[_-3],R[_-1],!0,null,R[_]];case 333:return["for-of",R[_-5],R[_-3],!0,R[_-1],R[_]];case 334:return["for-from",R[_-3],R[_-1],!1,null,R[_]];case 335:return["for-from",R[_-5],R[_-3],!1,R[_-1],R[_]];case 336:return["for-from",R[_-3],R[_-1],!0,null,R[_]];case 337:return["for-from",R[_-5],R[_-3],!0,R[_-1],R[_]];case 338:return["for-in",[],R[_-1],null,null,R[_]];case 339:return["for-in",[],R[_-3],R[_-1],null,R[_]];case 340:return["comprehension",R[_-4],[["for-in",R[_-2],R[_],null]],[]];case 341:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],null]],[R[_]]];case 342:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],R[_]]],[]];case 343:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_]]],[R[_-2]]];case 344:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_-2]]],[R[_]]];case 345:return["comprehension",R[_-4],[["for-of",R[_-2],R[_],!1]],[]];case 346:return["comprehension",R[_-6],[["for-of",R[_-4],R[_-2],!1]],[R[_]]];case 347:return["comprehension",R[_-5],[["for-of",R[_-2],R[_],!0]],[]];case 348:return["comprehension",R[_-7],[["for-of",R[_-4],R[_-2],!0]],[R[_]]];case 349:return["comprehension",R[_-4],[["for-from",R[_-2],R[_],!1,null]],[]];case 350:return["comprehension",R[_-6],[["for-from",R[_-4],R[_-2],!1,null]],[R[_]]];case 351:return["comprehension",R[_-5],[["for-from",R[_-2],R[_],!0,null]],[]];case 352:return["comprehension",R[_-7],[["for-from",R[_-4],R[_-2],!0,null]],[R[_]]];case 353:return["comprehension",R[_-2],[["for-in",[],R[_],null]],[]];case 354:return["comprehension",R[_-4],[["for-in",[],R[_-2],R[_]]],[]];case 359:return["switch",R[_-3],R[_-1],null];case 360:return["switch",R[_-5],R[_-3],R[_-1]];case 361:return["switch",null,R[_-1],null];case 362:return["switch",null,R[_-3],R[_-1]];case 365:return["when",R[_-1],R[_]];case 366:return["when",R[_-2],R[_-1]];case 367:return["if",R[_-1],R[_]];case 368:return R[_-4].length===3?["if",R[_-4][1],R[_-4][2],["if",R[_-1],R[_]]]:[...R[_-4],["if",R[_-1],R[_]]];case 369:return["unless",R[_-1],R[_]];case 370:return["if",["!",R[_-3]],R[_-2],R[_]];case 372:return R[_-2].length===3?["if",R[_-2][1],R[_-2][2],R[_]]:[...R[_-2],R[_]];case 374:case 375:return["if",R[_],[R[_-2]]];case 376:case 377:return["unless",R[_],[R[_-2]]];case 379:case 380:case 382:case 411:return["do-iife",R[_]];case 384:return["-",R[_]];case 385:return["+",R[_]];case 386:return["await",R[_]];case 387:return["await",R[_-1]];case 388:return["--",R[_],!1];case 389:return["++",R[_],!1];case 390:return["--",R[_-1],!0];case 391:return["++",R[_-1],!0];case 392:return["?",R[_-1]];case 393:return["+",R[_-2],R[_]];case 394:return["-",R[_-2],R[_]];case 396:return["**",R[_-2],R[_]];case 399:return["&",R[_-2],R[_]];case 400:return["^",R[_-2],R[_]];case 401:return["|",R[_-2],R[_]];case 402:return["&&",R[_-2],R[_]];case 403:return["||",R[_-2],R[_]];case 404:return["??",R[_-2],R[_]];case 405:return["!?",R[_-2],R[_]];case 407:return["?:",R[_-4],R[_-2],R[_]];case 409:return[R[_-3],R[_-4],R[_-1]];case 410:return[R[_-2],R[_-3],R[_]]}},parseError(U,A){let $,E,R,_,X,Y,F;if(A.recoverable)return this.trace(U);else throw R=(A.line||0)+1,$=A.loc?.first_column||0,F=A.token?` (token: ${A.token})`:"",Y=A.text?` near '${A.text}'`:"",_=`line ${R}, column ${$}`,X=`Parse error at ${_}${F}${Y}: ${U}`,E=Error(X),E.hash=A,E},parse(U){let A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T;[K,B,D]=[[0],[null],[]],[J,L,S,z,O]=[this.parseTable,"",0,0,0],[$,A]=[2,1],F=Object.create(this.lexer),N={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let y=this.yy[V];N.yy[V]=y}if(F.setInput(U,N.yy),[N.yy.lexer,N.yy.parser]=[F,this],F.yylloc==null)F.yylloc={};I=F.yylloc,D.push(I),q=F.options?.ranges,this.parseError=typeof N.yy.parseError==="function"?N.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=F.lex()||A,typeof V!=="number")V=this.symbolIds[V]||V;return V},[w,W,P,E,H,T,G,X,Q,_]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(P=K[K.length-1],w==null)w=Y();if(E=J[P]!=null?J[P][w]:void 0,E==null){if(R="",!O)_=(()=>{let V=[];for(let y in J[P]){if(!Object.hasOwn(J[P],y))continue;if(this.tokenNames[y]&&y>$)V.push(`'${this.tokenNames[y]}'`)}return V})();throw R=(()=>{if(F.showPosition)return`Parse error on line ${S+1}:
|
|
20
|
-
${
|
|
21
|
-
Expecting ${
|
|
22
|
-
`)>=0){let
|
|
23
|
-
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${
|
|
24
|
-
`)}let
|
|
25
|
-
`))return" ".repeat(
|
|
1
|
+
var T1,r1,C2,$1,J1,n1,a1,f2,o1,L1,u1,r,B1,x,m,t1,e1,A2,R2,_2,E2,U2,$2,I1,v1,w1,C1,X2,f1,Q1,Y2,W1,U1,M2,F2,D2,G2,Z2,J2,Q2,W2,O2,K2,H2,N2,q2,O1,h1,b1,s,z2,S2,P2,j1,g1,T2,L2,B2,I2,w2,V1,j2,X1,V2,y1,n,p,y2,Z1,A1,S1,s1,R1,P1,B=[].indexOf,d=[].slice,h2={}.hasOwnProperty,u2=function(U,_){var E="";while(_>0){if(_&1)E+=U;_>>>=1,U+=U}return E},b2=function(U,_){var E=0,$=0;if(!_.length)return 1/0;while($=1+U.indexOf(_,$))E++;return E},i1=function(U,_){for(var E in _)U[E]=_[E];return U},g2=function(U,_){return i1(i1({},U),_)},x2=function(U){return U.flat(1/0)},k2=function(U){var _={},E,$=[];for(var A=0;A<U.length;A++){var R=U[A];if(R.comments)for(var X=0;X<R.comments.length;X++){var Y=R.comments[X],M=Y.locationData.range[0];_[M]=Y}}E=Object.keys(_).sort((D,G)=>D-G);for(var F=0;F<E.length;F++)$.push(_[E[F]]);return $},d1=function(U,_){if(!U||U.length===0)return;if(!_.comments)_.comments=[];_.comments.push(...U)},c2=function(U){if(U==null)return NaN;var _=null;switch(U.charAt(1)){case"b":_=2;break;case"o":_=8;break;case"x":_=16;break}if(_!=null)return parseInt(U.slice(2).replace(/_/g,""),_);else return parseFloat(U.replace(/_/g,""))},l2=function(){if(!(this.code&&this.location))return Error.prototype.toString.call(this);var{first_line:U,first_column:_,last_line:E,last_column:$}=this.location;if(E==null)E=U;if($==null)$=_;var A=this.filename||"[stdin]";if(A.startsWith("<anonymous"))A="[stdin]";var R=this.code.split(`
|
|
2
|
+
`)[U],X=_,Y=U===E?$+1:R.length,M=R.slice(0,X).replace(/[^\s]/g," ")+u2("^",Y-X),F=typeof process<"u"&&process!==null&&process.stdout?.isTTY&&!process.env?.NODE_DISABLE_COLORS;if(this.colorful!=null?this.colorful:F){var D=(G)=>`\x1B[1;31m${G}\x1B[0m`;R=R.slice(0,X)+D(R.slice(X,Y))+R.slice(Y),M=D(M)}return`${A}:${U+1}:${_+1}: error: ${this.message}
|
|
3
|
+
${R}
|
|
4
|
+
${M}`},p2=function(U,_){var E=SyntaxError(U);throw E.location=_,E.toString=l2,E.stack=E.toString(),E},m2=/(\\\\)|\\u\{([\da-fA-F]+)\}/g,s2=function(U){var _=function(A){var R=A.toString(16);return`\\u${u2("0",4-R.length)}${R}`};if(U<65536)return _(U);var E=Math.floor((U-65536)/1024)+55296,$=(U-65536)%1024+56320;return`${_(E)}${_($)}`},i2=function(U,{flags:_,error:E,delimiter:$=""}={}){var A=_!=null&&B.call(_,"u")<0;return U.replace(m2,function(R,X,Y,M){if(X)return X;var F=parseInt(Y,16);if(F>1114111)E("unicode code point escapes greater than \\u{10ffff} are not allowed",{offset:M+$.length,length:Y.length+4});if(!A)return R;return s2(F)})},x1=class U{constructor(){this.error=this.error.bind(this)}tokenize(_,E={}){var $,A,R,X;this.indent=0,this.baseIndent=0,this.overIndent=0,this.outdebt=0,this.indents=[],this.indentLiteral="",this.ends=[],this.tokens=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.chunkLine=E.line||0,this.chunkColumn=E.column||0,this.chunkOffset=E.offset||0,this.locTweaks=E.locTweaks||{},_=this.clean(_),R=0;while(this.chunk=_.slice(R))if($=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),[this.chunkLine,this.chunkColumn,this.chunkOffset]=this.getLineAndColumnFromChunk($),R+=$,E.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:R};if(this.closeIndentation(),A=this.ends.pop())this.error(`missing ${A.tag}`,((X=A.origin)!=null?X:A)[2]);if(E.rewrite===!1)return this.tokens;return new z2().rewrite(this.tokens)}clean(_){var E,$;if($=0,_.charCodeAt(0)===r1)_=_.slice(1),this.locTweaks[0]=1,$+=1;if(y1.test(_)){if(_=`
|
|
5
|
+
${_}`,this.chunkLine--,(E=this.locTweaks)[0]==null)E[0]=0;this.locTweaks[0]-=1}return _.replace(/\r/g,(A,R)=>{return this.locTweaks[$+R]=1,""}).replace(w2,"")}identifierToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P,V,u;if(/^~[=>]/.test(this.chunk)||/^=!/.test(this.chunk))return 0;if(!(F=$2.exec(this.chunk)))return 0;if([M,X,$]=F,Y=X.length,D=void 0,X==="own"&&this.tag()==="FOR")return this.token("OWN",X),X.length;if(X==="from"&&this.tag()==="YIELD")return this.token("FROM",X),X.length;if(X==="as"&&this.seenImport){if(this.value()==="*")this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(Q=this.value(!0),B.call(s,Q)>=0)G=this.prev(),[G[0],G[1]]=["IDENTIFIER",this.value(!0)];if((Z=this.tag())==="DEFAULT"||Z==="IMPORT_ALL"||Z==="IDENTIFIER")return this.token("AS",X),X.length}if(X==="as"&&this.seenExport){if((W=this.tag())==="IDENTIFIER"||W==="DEFAULT")return this.token("AS",X),X.length;if(q=this.value(!0),B.call(s,q)>=0)return G=this.prev(),[G[0],G[1]]=["IDENTIFIER",this.value(!0)],this.token("AS",X),X.length}if(X==="default"&&this.seenExport&&((N=this.tag())==="EXPORT"||N==="AS"))return this.token("DEFAULT",X),X.length;if(X==="do"&&(j=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.token("SUPER","super"),this.token("CALL_START","("),this.token("CALL_END",")"),[M,w]=j,w.length+3;if(G=this.prev(),P=$||G!=null&&((z=G[0])==="."||z==="?."||z==="::"||z==="?::"||!G.spaced&&G[0]==="@")?"PROPERTY":"IDENTIFIER",u={},P==="IDENTIFIER"&&(B.call(W1,X)>=0||B.call(s,X)>=0)&&!(this.exportSpecifierList&&B.call(s,X)>=0)){if(P=X.toUpperCase(),P==="WHEN"&&(S=this.tag(),B.call(M2,S)>=0))P="LEADING_WHEN";else if(P==="FOR")this.seenFor={endsLength:this.ends.length};else if(P==="UNLESS");else if(P==="IMPORT")this.seenImport=!0;else if(P==="EXPORT")this.seenExport=!0;else if(B.call(V1,P)>=0)P="UNARY";else if(B.call(q2,P)>=0){if(P!=="INSTANCEOF"&&this.seenFor)P="FOR"+P,this.seenFor=!1;else if(P="RELATION",this.value()==="!")D=this.tokens.pop(),u.invert=(L=(I=D.data)!=null?I.original:void 0)!=null?L:D[1]}}else if(P==="IDENTIFIER"&&this.seenFor&&X==="from"&&y2(G))P="FORFROM",this.seenFor=!1;else if(P==="PROPERTY"&&G){if(G.spaced&&(T=G[0],B.call($1,T)>=0)&&/^[gs]et$/.test(G[1])&&this.tokens.length>1&&((O=this.tokens[this.tokens.length-2][0])!=="."&&O!=="?."&&O!=="@"))this.error(`'${G[1]}' cannot be used as a keyword, or as a function call without parentheses`,G[2]);else if(G[0]==="."&&this.tokens.length>1&&(J=this.tokens[this.tokens.length-2])[0]==="UNARY"&&J[1]==="new")J[0]="NEW_TARGET";else if(G[0]==="."&&this.tokens.length>1&&(J=this.tokens[this.tokens.length-2])[0]==="IMPORT"&&J[1]==="import")this.seenImport=!1,J[0]="IMPORT_META";else if(this.tokens.length>2){if(J=this.tokens[this.tokens.length-2],((K=G[0])==="@"||K==="THIS")&&J&&J.spaced&&/^[gs]et$/.test(J[1])&&((H=this.tokens[this.tokens.length-3][0])!=="."&&H!=="?."&&H!=="@"))this.error(`'${J[1]}' cannot be used as a keyword, or as a function call without parentheses`,J[2])}}if(P==="IDENTIFIER"&&B.call(O1,X)>=0)this.error(`reserved word '${X}'`,{length:X.length});if(!(P==="PROPERTY"||this.exportSpecifierList||this.importSpecifierList)){if(X==="is"&&this.chunk.slice(Y,Y+4)===" not"){if(_=this.chunk.slice(Y+4).trim(),!_.match(/^(false|true)\s+(is|isnt|==|!=)/))X="isnt",Y+=4}if(B.call(h1,X)>=0)E=X,X=b1[X],u.original=E;P=function(){switch(X){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";case"&&":case"||":return X;default:return P}}()}let C=Y;if(X.length>1&&X.endsWith("!"))u.await=!0,X=X.slice(0,-1);if(V=this.token(P,X,{length:C,data:u}),E)V.origin=[P,E,V[2]];if(D)[V[2].first_line,V[2].first_column,V[2].range[0]]=[D[2].first_line,D[2].first_column,D[2].range[0]];if($)A=M.lastIndexOf(":"),R=this.token(":",":",{offset:A});if($)return C+$.length;else return C}commentToken(_=this.chunk,{heregex:E,returnCommentTokens:$=!1,offsetInChunk:A=0}={}){var R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P,V,u;if(!(L=_.match(a1)))return 0;if([Y,Q,J,Z,S]=L,F=null,H=/^\s*\n+\s*#/.test(Y),J){if(I=t1.exec(J),I)this.error(`block comments cannot contain ${I[0]}`,{offset:3+I.index,length:I[0].length});_=_.replace(`###${J}###`,""),_=_.replace(/^\n+/,""),this.lineToken({chunk:_}),M=J,F=[{content:M,length:Y.length-Q.length-Z.length,leadingWhitespace:Q}]}else q="",M=S.replace(/^(\n*)/,function(C){return q=C,""}),V="",G=!1,F=M.split(`
|
|
6
|
+
`).map(function(C,c){var f,o;if(!(C.indexOf("#")>-1)){V+=`
|
|
7
|
+
${C}`;return}return o="",M=C.replace(/^([ |\t]*)#/,function(g,M1){return o=M1,""}),f={content:M,length:1+M.length,leadingWhitespace:`${!G?q:""}${V}${o}`,precededByBlankLine:!!V},G=!0,V="",f}).filter(function(C){return C});if(D=function({leadingWhitespace:C,nonInitial:c}){var f=C.lastIndexOf(`
|
|
8
|
+
`);if(J!=null||!c){if(!(f>-1))return null}else if(f==null)f=-1;return C.length-1-f},X=function(){var C,c,f;f=[];for(O=C=0,c=F.length;C<c;O=++C){if({content:M,length:z,leadingWhitespace:N,precededByBlankLine:P}=F[O],j=O!==0,W=j?1:0,A+=W+N.length,K=D({leadingWhitespace:N,nonInitial:j}),T=K==null||K===-1,R={content:M,here:J!=null,newLine:H||j,locationData:this.makeLocationData({offsetInChunk:A,length:z}),precededByBlankLine:P,indentSize:K,indented:!T&&K>this.indent,outdented:!T&&K<this.indent},E)R.heregex=!0;A+=z,f.push(R)}return f}.call(this),u=this.prev(),!u)X[0].newLine=!0,this.lineToken({chunk:this.chunk.slice(Y.length),offset:Y.length}),w=this.makeToken("JS","",{offset:Y.length,generated:!0}),w.comments=X,this.tokens.push(w),this.newlineToken(Y.length);else d1(X,u);if($)return X;return Y.length}whitespaceToken(){var _,E,$;if(!((_=y1.exec(this.chunk))||(E=this.chunk.charAt(0)===`
|
|
9
|
+
`)))return 0;if($=this.prev(),$)$[_?"spaced":"newLine"]=!0;if(_)return _[0].length;else return 0}lineToken({chunk:_=this.chunk,offset:E=0}={}){var $,A,R,X,Y,M,F,D,G,J,Q;if(!(Y=G2.exec(_)))return 0;if(X=Y[0],G=this.prev(),$=(G!=null?G[0]:void 0)==="\\",!(($||((J=this.seenFor)!=null?J.endsLength:void 0)<this.ends.length)&&this.seenFor))this.seenFor=!1;if(!($&&this.seenImport||this.importSpecifierList))this.seenImport=!1;if(!($&&this.seenExport||this.exportSpecifierList))this.seenExport=!1;if(Q=X.length-1-X.lastIndexOf(`
|
|
10
|
+
`),D=this.unfinished(),F=Q>0?X.slice(-Q):"",!/^(.?)\1*$/.exec(F))return this.error("mixed indentation",{offset:X.length}),X.length;if(M=Math.min(F.length,this.indentLiteral.length),F.slice(0,M)!==this.indentLiteral.slice(0,M))return this.error("indentation mismatch",{offset:X.length}),X.length;if(Q-this.overIndent===this.indent){if(D)this.suppressNewlines();else this.newlineToken(E);return X.length}if(Q>this.indent){if(D){if(!$)this.overIndent=Q-this.indent;if(this.overIndent)G.continuationLineIndent=this.indent+this.overIndent;return this.suppressNewlines(),X.length}if(!this.tokens.length)return this.baseIndent=this.indent=Q,this.indentLiteral=F,X.length;A=Q-this.indent+this.outdebt,this.token("INDENT",A,{offset:E+X.length-Q,length:Q}),this.indents.push(A),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.overIndent=0,this.indent=Q,this.indentLiteral=F}else if(Q<this.baseIndent)this.error("missing indentation",{offset:E+X.length});else R=this.overIndent>0,this.overIndent=0,this.outdentToken({moveOut:this.indent-Q,noNewlines:D,outdentLength:X.length,offset:E,indentSize:Q,endsContinuationLineIndentation:R});return X.length}getHeredocClosingColumn(_,E){let $=_-E,A=$-1;while(A>=0&&this.chunk[A]!==`
|
|
11
|
+
`)A--;A++;let R=this.chunk.slice(A,$);return/^\s*$/.test(R)?R.length:null}extractHeredocContent(_){let E=[];for(let $=0;$<_.length;$++)if(_[$][0]==="NEOSTRING")E.push(_[$][1]);return E.join("#{}")}findMinimumIndent(_){let E=null,$;while($=A2.exec(_)){let A=$[1];if(E===null||0<A.length&&A.length<E.length)E=A}return E}selectHeredocIndent(_,E){if(_===null)return E;if(E===null)return" ".repeat(_);if(_<=E.length)return" ".repeat(_);return E}removeTrailingWhitespaceLine(_){if(_.length===0)return;let E=_[_.length-1];if(E[0]!=="NEOSTRING")return;let $=E[1].split(`
|
|
12
|
+
`),A=$[$.length-1];if(/^\s*$/.test(A))$.pop(),E[1]=$.join(`
|
|
13
|
+
`)}stringToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z;if([D]=I2.exec(this.chunk)||[],!D)return 0;if(F=this.prev(),F&&this.value()==="from"&&(this.seenImport||this.seenExport))F[0]="FROM";if(J=function(){switch(D){case"'":return B2;case'"':return T2;case"'''":return R2;case'"""':return e1}}(),{tokens:Z,index:A}=this.matchWithInterpolations(J,D),R=D.length===3,R){let O=this.getHeredocClosingColumn(A,D.length);if($=this.extractHeredocContent(Z),Y=this.findMinimumIndent($),Y=this.selectHeredocIndent(O,Y),O!==null&&Y!==null&&O>Y.length)this.removeTrailingWhitespaceLine(Z)}return E=D.charAt(0),this.mergeInterpolationTokens(Z,{quote:D,indent:Y,endOffset:A},(O)=>{return this.validateUnicodeCodePointEscapes(O,{delimiter:D})}),A}numberToken(){var _,E,$,A,R,X;if(!(E=J2.exec(this.chunk)))return 0;switch($=E[0],_=$.length,!1){case!/^0[BOX]/.test($):this.error(`radix prefix in '${$}' must be lowercase`,{offset:1});break;case!/^0\d*[89]/.test($):this.error(`decimal literal '${$}' must not be prefixed with '0'`,{length:_});break;case!/^0\d+/.test($):this.error(`octal literal '${$}' must be prefixed with '0o'`,{length:_})}if(A=c2($),X={parsedValue:A},R=A===1/0?"INFINITY":"NUMBER",R==="INFINITY")X.original=$;return this.token(R,$,{length:_,data:X}),_}regexToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z;switch(!1){case!(Z=H2.exec(this.chunk)):this.error(`regular expressions cannot begin with ${Z[2]}`,{offset:Z.index+Z[1].length});break;case!(Z=this.matchWithInterpolations(_2,"///")):({tokens:z,index:J}=Z),Y=[];while(O=E2.exec(this.chunk.slice(0,J)))({index:A}=O),[G,Q,$]=O,Y.push({comment:$,offsetInChunk:A+Q.length});X=x2(function(){var S,L,I;I=[];for(S=0,L=Y.length;S<L;S++)R=Y[S],I.push(this.commentToken(R.comment,Object.assign(R,{heregex:!0,returnCommentTokens:!0})));return I}.call(this));break;case!(Z=O2.exec(this.chunk)):if([N,_,E]=Z,this.validateEscapes(_,{isRegex:!0,offsetInChunk:1}),J=N.length,H=this.prev(),H){if(H.spaced&&(W=H[0],B.call($1,W)>=0)){if(!E||W2.test(N))return 0}else if(q=H[0],B.call(Z2,q)>=0)return 0}if(!E)this.error("missing / (unclosed regex)");break;default:return 0}switch([D]=K2.exec(this.chunk.slice(J)),F=J+D.length,K=this.makeToken("REGEX",null,{length:F}),!1){case!!V2.test(D):this.error(`invalid regular expression flags ${D}`,{offset:J,length:D.length});break;case!(N||z.length===1):if(M=_?"/":"///",_==null)_=z[0][1];this.validateUnicodeCodePointEscapes(_,{delimiter:M});let S={delimiter:M};if(M==="///")S.heregex={flags:D};this.token("REGEX",`/${_}/${D}`,{length:F,origin:K,data:S});break;default:if(this.token("REGEX_START","(",{length:0,origin:K,generated:!0}),this.token("IDENTIFIER","RegExp",{length:0,generated:!0}),this.token("CALL_START","(",{length:0,generated:!0}),this.mergeInterpolationTokens(z,{double:!0,heregex:{flags:D},endOffset:F-D.length,quote:"///"},(L)=>{return this.validateUnicodeCodePointEscapes(L,{delimiter:M})}),D)this.token(",",",",{offset:J-1,length:0,generated:!0}),this.token("STRING",'"'+D+'"',{offset:J,length:D.length});this.token(")",")",{offset:F,length:0,generated:!0}),this.token("REGEX_END",")",{offset:F,length:0,generated:!0})}if(X!=null?X.length:void 0)n(this.tokens[this.tokens.length-1],{heregexCommentTokens:X});return F}jsToken(){var _,E,$,A;if(!(this.chunk.charAt(0)==="`"&&(E=($=U2.exec(this.chunk))||Y2.exec(this.chunk))))return 0;return A=E[1],{length:_}=E[0],this.token("JS",A,{length:_,data:{here:!!$}}),_}literalToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z;if(_=Q2.exec(this.chunk)){if([Z]=_,n1.test(Z))this.tagParameters()}else Z=this.chunk.charAt(0);if(J=Z,A=this.prev(),A&&B.call(["=",...L1],Z)>=0){if(G=!1,Z==="="&&((R=A[1])==="||"||R==="&&"||R==="??")&&!A.spaced){if(A[0]="COMPOUND_ASSIGN",A[1]+="=",(X=A.data)!=null?X.original:void 0)A.data.original+="=";A[2].range=[A[2].range[0],A[2].range[1]+1],A[2].last_column+=1,A[2].last_column_exclusive+=1,A=this.tokens[this.tokens.length-2],G=!0}if(A&&A[0]!=="PROPERTY"){if($=(Y=A.origin)!=null?Y:A,E=d2(A[1],$[1]),E)this.error(E,$[2])}if(G)return Z.length}if(Z==="("&&(A!=null?A[0]:void 0)==="IMPORT")A[0]="DYNAMIC_IMPORT";if(Z==="{"&&this.seenImport)this.importSpecifierList=!0;else if(this.importSpecifierList&&Z==="}")this.importSpecifierList=!1;else if(Z==="{"&&(A!=null?A[0]:void 0)==="EXPORT")this.exportSpecifierList=!0;else if(this.exportSpecifierList&&Z==="}")this.exportSpecifierList=!1;if(Z===";"){if(M=A!=null?A[0]:void 0,B.call(["=",...X1],M)>=0)this.error("unexpected ;");this.seenFor=this.seenImport=this.seenExport=!1,J="TERMINATOR"}else if(Z==="*"&&(A!=null?A[0]:void 0)==="EXPORT")J="EXPORT_ALL";else if(Z==="<=>")J="BIND";else if(Z==="~=")J="COMPUTED_ASSIGN";else if(Z===":=")J="REACTIVE_ASSIGN";else if(Z==="~>")J="REACT_ASSIGN";else if(Z==="=!")J="READONLY_ASSIGN";else if(B.call(D2,Z)>=0)J="MATH";else if(B.call(o1,Z)>=0)J="COMPARE";else if(B.call(L1,Z)>=0)J="COMPOUND_ASSIGN";else if(B.call(V1,Z)>=0)J="UNARY";else if(B.call(j2,Z)>=0)J="UNARY_MATH";else if(B.call(S2,Z)>=0)J="SHIFT";else if(Z==="?"&&(A!=null?A.spaced:void 0))J="SPACE?";else if(A){if(Z==="("&&!A.spaced&&(F=A[0],B.call($1,F)>=0)){if(A[0]==="?")A[0]="FUNC_EXIST";else if(A[0]==="?.")A[0]="ES6_OPTIONAL_CALL";J="CALL_START"}else if(Z==="["&&((D=A[0],B.call(f1,D)>=0)&&!A.spaced||A[0]==="::"))switch(J="INDEX_START",A[0]){case"?":A[0]="INDEX_SOAK";break;case"?.":A[0]="ES6_OPTIONAL_INDEX";break}}switch(Q=this.makeToken(J,Z),Z){case"(":case"{":case"[":this.ends.push({tag:Q1[Z],origin:Q});break;case")":case"}":case"]":this.pair(Z)}return this.tokens.push(this.makeToken(J,Z)),Z.length}outdentToken({moveOut:_,noNewlines:E,outdentLength:$=0,offset:A=0,indentSize:R,endsContinuationLineIndentation:X}){var Y,M,F,D,G;Y=this.indent-_;while(_>0)if(F=this.indents[this.indents.length-1],!F)this.outdebt=_=0;else if(this.outdebt&&_<=this.outdebt)this.outdebt-=_,_=0;else{if(M=this.indents.pop()+this.outdebt,$&&(D=this.chunk[$],B.call(X2,D)>=0))Y-=M-_,_=M;this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",_,{length:$,indentSize:R+_-M}),_-=M}if(M)this.outdebt-=_;if(this.suppressSemicolons(),!(this.tag()==="TERMINATOR"||E)){if(G=this.token("TERMINATOR",`
|
|
14
|
+
`,{offset:A+$,length:0}),X)G.endsContinuationLineIndentation={preContinuationLineIndent:this.indent}}return this.indent=Y,this.indentLiteral=this.indentLiteral.slice(0,Y),this}newlineToken(_){if(this.suppressSemicolons(),this.tag()!=="TERMINATOR")this.token("TERMINATOR",`
|
|
15
|
+
`,{offset:_,length:0});return this}suppressNewlines(){var _=this.prev();if(_[1]==="\\"){if(_.comments&&this.tokens.length>1)d1(_.comments,this.tokens[this.tokens.length-2]);this.tokens.pop()}return this}tagParameters(){var _,E,$,A,R;if(this.tag()!==")")return this.tagDoIife();$=[],{tokens:R}=this,_=R.length,E=R[--_],E[0]="PARAM_END";while(A=R[--_])switch(A[0]){case")":$.push(A);break;case"(":case"CALL_START":if($.length)$.pop();else if(A[0]==="(")return A[0]="PARAM_START",this.tagDoIife(_-1);else return E[0]="CALL_END",this}return this}tagDoIife(_){var E=this.tokens[_!=null?_:this.tokens.length-1];if((E!=null?E[0]:void 0)!=="DO")return this;return E[0]="DO_IIFE",this}closeIndentation(){return this.outdentToken({moveOut:this.indent,indentSize:0})}matchWithInterpolations(_,E,$=E,A=/^[#$]\{/){var R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S;if(S=[],O=E.length,this.chunk.slice(0,O)!==E)return null;N=this.chunk.slice(O);while(!0){if([z]=_.exec(N),this.validateEscapes(z,{isRegex:E.charAt(0)==="/",offsetInChunk:O}),S.push(this.makeToken("NEOSTRING",z,{offset:O})),N=N.slice(z.length),O+=z.length,!(J=A.exec(N)))break;if([D]=J,F=D.length-1,[G,Y,Z]=this.getLineAndColumnFromChunk(O+F),q=N.slice(F),{tokens:Q,index:M}=new U().tokenize(q,{line:G,column:Y,offset:Z,untilBalanced:!0,locTweaks:this.locTweaks}),M+=F,R=N[M-1]==="}",R)[K]=Q,[X]=d.call(Q,-1),K[0]="INTERPOLATION_START",K[1]="(",K[2].first_column-=F,K[2].range=[K[2].range[0]-F,K[2].range[1]],X[0]="INTERPOLATION_END",X[1]=")",X.origin=["","end of interpolation",X[2]];if(((H=Q[1])!=null?H[0]:void 0)==="TERMINATOR")Q.splice(1,1);if(((W=Q[Q.length-3])!=null?W[0]:void 0)==="INDENT"&&Q[Q.length-2][0]==="OUTDENT")Q.splice(-3,2);if(!R)K=this.makeToken("INTERPOLATION_START","(",{offset:O,length:0,generated:!0}),X=this.makeToken("INTERPOLATION_END",")",{offset:O+M,length:0,generated:!0}),Q=[K,...Q,X];S.push(["TOKENS",Q]),N=N.slice(M),O+=M}if(N.slice(0,$.length)!==$)this.error(`missing ${$}`,{length:E.length});return{tokens:S,index:O+$.length}}mergeInterpolationTokens(_,E,$){var A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P;if({quote:N,indent:G,double:X,heregex:F,endOffset:Y}=E,_.length>1)W=this.token("STRING_START","(",{length:(z=N!=null?N.length:void 0)!=null?z:0,data:{quote:N},generated:!(N!=null?N.length:void 0)});M=this.tokens.length,A=_.length-1;for(D=J=0,O=_.length;J<O;D=++J){switch(T=_[D],[I,P]=T,I){case"TOKENS":if(P.length===2&&(P[0].comments||P[1].comments)){q=this.makeToken("JS","",{generated:!0}),q[2]=P[0][2];for(Q=0,K=P.length;Q<K;Q++){if(w=P[Q],!w.comments)continue;if(q.comments==null)q.comments=[];q.comments.push(...w.comments)}P.splice(1,0,q)}H=P[0],j=P;break;case"NEOSTRING":if(R=$.call(this,T[1],D),D===0)n(T,{initialChunk:!0});if(D===A)n(T,{finalChunk:!0});if(n(T,{indent:G,quote:N,double:X}),F)n(T,{heregex:F});if(T[0]="STRING",T[1]='"'+R+'"',_.length===1&&N!=null){if(T[2].first_column-=N.length,T[1].substr(-2,1)===`
|
|
16
|
+
`)T[2].last_line+=1,T[2].last_column=N.length-1;else if(T[2].last_column+=N.length,T[1].length===2)T[2].last_column-=1;T[2].last_column_exclusive+=N.length,T[2].range=[T[2].range[0]-N.length,T[2].range[1]+N.length]}H=T,j=[T]}this.tokens.push(...j)}if(W){if([Z]=d.call(_,-1),W.origin=["STRING",null,{first_line:W[2].first_line,first_column:W[2].first_column,last_line:Z[2].last_line,last_column:Z[2].last_column,last_line_exclusive:Z[2].last_line_exclusive,last_column_exclusive:Z[2].last_column_exclusive,range:[W[2].range[0],Z[2].range[1]]}],!(N!=null?N.length:void 0))W[2]=W.origin[2];return L=this.token("STRING_END",")",{offset:Y-(N!=null?N:"").length,length:(S=N!=null?N.length:void 0)!=null?S:0,generated:!(N!=null?N.length:void 0)})}}pair(_){var E,$,A,R,X;if(A=this.ends,[$]=d.call(A,-1),_!==(X=$!=null?$.tag:void 0)){if(X!=="OUTDENT")this.error(`unmatched ${_}`);return R=this.indents,[E]=d.call(R,-1),this.outdentToken({moveOut:E,noNewlines:!0}),this.pair(_)}return this.ends.pop()}getLocationDataCompensation(_,E){var $,A,R,X;X=0,R=E,A=_;while(A<=E){if(A===E&&_!==R)break;if($=this.locTweaks[A],$!=null)X+=$,E+=$;A++}return X}getLineAndColumnFromChunk(_){var E,$,A,R,X,Y,M,F;if(A=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_),_===0)return[this.chunkLine,this.chunkColumn+A,this.chunkOffset+A];if(_>=this.chunk.length)F=this.chunk;else F=this.chunk.slice(0,+(_-1)+1||9000000000);if(X=b2(F,`
|
|
17
|
+
`),E=this.chunkColumn,X>0){if(M=F.split(`
|
|
18
|
+
`),[R]=d.call(M,-1),E=R.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_-E),Y<0)Y=0;$=this.getLocationDataCompensation(this.chunkOffset+_+Y-E,this.chunkOffset+_+Y)}else E+=F.length,$=A;return[this.chunkLine+X,E+$,this.chunkOffset+_+A]}makeLocationData({offsetInChunk:_,length:E}){var $,A,R;return R={range:[]},[R.first_line,R.first_column,R.range[0]]=this.getLineAndColumnFromChunk(_),A=E>0?E-1:0,[R.last_line,R.last_column,$]=this.getLineAndColumnFromChunk(_+A),[R.last_line_exclusive,R.last_column_exclusive]=this.getLineAndColumnFromChunk(_+A+(E>0?1:0)),R.range[1]=E>0?$+1:$,R}makeToken(_,E,{offset:$=0,length:A=E.length,origin:R,generated:X,indentSize:Y}={}){var M=[_,E,this.makeLocationData({offsetInChunk:$,length:A})];if(R)M.origin=R;if(X)M.generated=!0;if(Y!=null)M.indentSize=Y;return M}token(_,E,{offset:$,length:A,origin:R,data:X,generated:Y,indentSize:M}={}){var F=this.makeToken(_,E,{offset:$,length:A,origin:R,generated:Y,indentSize:M});if(X)n(F,X);return this.tokens.push(F),F}tag(){var _,E;return _=this.tokens,[E]=d.call(_,-1),E!=null?E[0]:void 0}value(_=!1){var E,$;if(E=this.tokens,[$]=d.call(E,-1),_&&($!=null?$.origin:void 0)!=null)return $.origin[1];else return $!=null?$[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var _;return F2.test(this.chunk)||(_=this.tag(),B.call(X1,_)>=0)}validateUnicodeCodePointEscapes(_,E){return i2(_,g2(E,{error:this.error}))}validateEscapes(_,E={}){var $,A,R,X,Y,M,F,D,G,J;if(X=E.isRegex?N2:L2,Y=X.exec(_),!Y)return;return Y[0],$=Y[1],F=Y[2],A=Y[3],J=Y[4],G=Y[5],M=F?"octal escape sequences are not allowed":"invalid escape sequence",R=`\\${F||A||J||G}`,this.error(`${M} ${R}`,{offset:((D=E.offsetInChunk)!=null?D:0)+Y.index+$.length,length:R.length})}suppressSemicolons(){var _,E,$;$=[];while(this.value()===";")if(this.tokens.pop(),_=(E=this.prev())!=null?E[0]:void 0,B.call(["=",...X1],_)>=0)$.push(this.error("unexpected ;"));else $.push(void 0);return $}error(_,E={}){var $,A,R,X,Y;return R="first_line"in E?E:([A,$]=this.getLineAndColumnFromChunk((X=E.offset)!=null?X:0),{first_line:A,first_column:$,last_column:$+((Y=E.length)!=null?Y:1)-1}),p2(_,R)}},d2=function(U,_=U){switch(!1){case B.call([...W1,...s],U)<0:return`keyword '${_}' can't be assigned`;case B.call(g1,U)<0:return`'${_}' can't be assigned`;case B.call(O1,U)<0:return`reserved word '${_}' can't be assigned`;default:return!1}};y2=function(U){var _;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((_=U[1])==="{"||_==="["||_===","||_===":")return!1;else return!0};n=function(U,_){return Object.assign(U.data!=null?U.data:U.data={},_)};W1=["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"];s=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"];b1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};h1=function(){var U=[];for(A1 in b1)U.push(A1);return U}();s=s.concat(h1);O1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];g1=["arguments","eval"];var A3=W1.concat(O1).concat(g1);r1=65279;$2=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;J2=/^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;Q2=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;y1=/^[^\n\S]+/;a1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;n1=/^[-=]>/;G2=/^(?:\n[^\n\S]*)+/;Y2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;U2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;I2=/^(?:'''|"""|'|")/;B2=/^(?:[^\\']|\\[\s\S])*/;T2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;R2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;e1=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;A2=/\n+([^\n\S]*)(?=\S)/g;O2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;K2=/^\w*/;V2=/^(?!.*(.).*\1)[gimsuy]*$/;_2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;E2=/(\s+)(#(?!{).*)/gm;H2=/^(\/|\/{3}\s*)(\*)/;W2=/^\/=?\s/;t1=/\*\//;F2=/^\s*(?:,|\??\.(?![.\d])|\??::)/;L2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;N2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;w2=/\s+$/;L1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];V1=["NEW","TYPEOF","DELETE"];j2=["!","~"];S2=["<<",">>",">>>"];o1=["==","!=","===","!==","<",">","<=",">=","=~"];D2=["*","/","%","//","%%"];q2=["IN","OF","INSTANCEOF"];C2=["TRUE","FALSE"];$1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];f1=$1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);f2=["IDENTIFIER",")","]","NUMBER"];Z2=f1.concat(["++","--"]);M2=["INDENT","OUTDENT","TERMINATOR"];X2=[")","}","]"];R1=function(U,_){var E,$,A,R,X;if(!U.comments)return;if(_.comments&&_.comments.length!==0){X=[],R=U.comments;for($=0,A=R.length;$<A;$++)if(E=R[$],E.unshift)X.push(E);else _.comments.push(E);_.comments=X.concat(_.comments)}else _.comments=U.comments;return delete U.comments};p=function(U,_,E,$){var A=[U,_];if(A.generated=!0,E)A.origin=E;if($)R1($,A);return A};z2=function(){class U{rewrite(_){var E,$,A;if(this.tokens=_,typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var R,X,Y,M;Y=this.tokens,M=[];for(R=0,X=Y.length;R<X;R++)A=Y[R],M.push(A[0]+"/"+A[1]+(A.comments?"*":""));return M}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.convertLegacyExistential(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?($=process.env)!=null?$.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var R,X,Y,M;Y=this.tokens,M=[];for(R=0,X=Y.length;R<X;R++)A=Y[R],M.push(A[0]+"/"+A[1]+(A.comments?"*":""));return M}.call(this).join(" "))}return this.tokens}scanTokens(_){var E,$,A;({tokens:A}=this),E=0;while($=A[E])E+=_.call(this,$,E,A);return!0}detectEnd(_,E,$,A={}){var R,X,Y,M,F;({tokens:F}=this),R=0;while(M=F[_]){if(R===0&&E.call(this,M,_))return $.call(this,M,_);if(X=M[0],B.call(m,X)>=0)R+=1;else if(Y=M[0],B.call(x,Y)>=0)R-=1;if(R<0){if(A.returnOnNegativeLevel)return;return $.call(this,M,_)}_+=1}return _-1}removeLeadingNewlines(){var _,E,$,A,R,X,Y,M,F;Y=this.tokens;for(_=E=0,R=Y.length;E<R;_=++E)if([F]=Y[_],F!=="TERMINATOR")break;if(_===0)return;M=this.tokens.slice(0,_);for($=0,X=M.length;$<X;$++)A=M[$],R1(A,this.tokens[_]);return this.tokens.splice(0,_)}closeOpenCalls(){var _,E;return E=function($,A){var R;return(R=$[0])===")"||R==="CALL_END"},_=function($,A){return $[0]="CALL_END"},this.scanTokens(function($,A){if($[0]==="CALL_START")this.detectEnd(A+1,E,_);return 1})}closeOpenIndexes(){var _,E,$;return $=null,E=function(A,R){var X;return(X=A[0])==="]"||X==="INDEX_END"},_=function(A,R){if(this.tokens.length>=R&&this.tokens[R+1][0]===":")return $[0]="[",A[0]="]";else return A[0]="INDEX_END"},this.scanTokens(function(A,R){if(A[0]==="INDEX_START")$=A,this.detectEnd(R+1,E,_);return 1})}indexOfTag(_,...E){var $,A,R,X,Y;$=0;for(A=R=0,X=E.length;0<=X?R<X:R>X;A=0<=X?++R:--R){if(E[A]==null)continue;if(typeof E[A]==="string")E[A]=[E[A]];if(Y=this.tag(_+A+$),B.call(E[A],Y)<0)return-1}return _+A+$-1}looksObjectish(_){var E,$;if(this.indexOfTag(_,"@",null,":")!==-1||this.indexOfTag(_,null,":")!==-1)return!0;if($=this.indexOfTag(_,m),$!==-1){if(E=null,this.detectEnd($+1,function(A){var R;return R=A[0],B.call(x,R)>=0},function(A,R){return E=R}),this.tag(E+1)===":")return!0}return!1}findTagsBackwards(_,E){var $,A,R,X,Y,M,F;$=[];while(_>=0&&($.length||(X=this.tag(_),B.call(E,X)<0)&&((Y=this.tag(_),B.call(m,Y)<0)||this.tokens[_].generated)&&(M=this.tag(_),B.call(U1,M)<0))){if(A=this.tag(_),B.call(x,A)>=0)$.push(this.tag(_));if((R=this.tag(_),B.call(m,R)>=0)&&$.length)$.pop();_-=1}return F=this.tag(_),B.call(E,F)>=0}addImplicitBracesAndParens(){var _,E,$;return _=[],E=null,$=!1,this.scanTokens(function(A,R,X){var Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P,V,u,C,c,f,o,g,M1,q1,F1,D1,G1,h,k1,z1,c1,t,l1,e,v;if([v]=A,[w]=P=R>0?X[R-1]:[],[S]=L=R<X.length-1?X[R+1]:[],h=function(){return _[_.length-1]},k1=R,F=function(y){return R-k1+y},H=function(y){var b;return y!=null?(b=y[2])!=null?b.ours:void 0:void 0},q=function(y){return H(y)&&(y!=null?y[0]:void 0)==="{"},W=function(y){return H(y)&&(y!=null?y[0]:void 0)==="("},Q=function(){return H(h())},Z=function(){return W(h())},K=function(){return q(h())},O=function(){var y;return Q()&&((y=h())!=null?y[0]:void 0)==="CONTROL"},z1=function(y){return _.push(["(",y,{ours:!0}]),X.splice(y,0,p("CALL_START","(",["","implicit function call",A[2]],P))},Y=function(){return _.pop(),X.splice(R,0,p("CALL_END",")",["","end of input",A[2]],P)),R+=1},c1=function(y,{startsLine:b=!0,continuationLineIndent:i}={}){var l;return _.push(["{",y,{sameLine:!0,startsLine:b,ours:!0,continuationLineIndent:i}]),l=new String("{"),l.generated=!0,X.splice(y,0,p("{",l,A,P))},M=function(y){return y=y!=null?y:R,_.pop(),X.splice(y,0,p("}","}",A,P)),R+=1},D=(y)=>{var b=null;if(this.detectEnd(y,function(i){return i[0]==="TERMINATOR"},function(i,l){return b=l},{returnOnNegativeLevel:!0}),b==null)return!1;return this.looksObjectish(b+1)},(Z()||K())&&B.call(u1,v)>=0||K()&&w===":"&&v==="FOR")return _.push(["CONTROL",R,{ours:!0}]),F(1);if(v==="INDENT"&&Q()){if(w!=="=>"&&w!=="->"&&w!=="["&&w!=="("&&w!==","&&w!=="{"&&w!=="ELSE"&&w!=="=")while(Z()||K()&&w!==":")if(Z())Y();else M();if(O())_.pop();return _.push([v,R]),F(1)}if(B.call(m,v)>=0)return _.push([v,R]),F(1);if(B.call(x,v)>=0){while(Q())if(Z())Y();else if(K())M();else _.pop();E=_.pop()}if(J=()=>{var y,b,i,l;if(i=this.findTagsBackwards(R,["FOR"])&&this.findTagsBackwards(R,["FORIN","FOROF","FORFROM"]),y=i||this.findTagsBackwards(R,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!y)return!1;return b=!1,l=A[2].first_line,this.detectEnd(R,function(p1,m1){var E1;return E1=p1[0],B.call(U1,E1)>=0},function(p1,m1){var E1;return[w,,{first_line:E1}]=X[m1-1]||[],b=l===E1&&(w==="->"||w==="=>")},{returnOnNegativeLevel:!0}),b},(B.call(w1,v)>=0&&A.spaced||v==="?"&&R>0&&!X[R-1].spaced)&&(B.call(I1,S)>=0||S==="..."&&(V=this.tag(R+2),B.call(I1,V)>=0)&&!this.findTagsBackwards(R,["INDEX_START","["])||B.call(C1,S)>=0&&!L.spaced&&!L.newLine)&&!J()){if(v==="?")v=A[0]="FUNC_EXIST";return z1(R+1),F(2)}if(B.call(w1,v)>=0&&this.indexOfTag(R+1,"INDENT")>-1&&this.looksObjectish(R+2)&&!this.findTagsBackwards(R,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((u=g=(C=h())!=null?C[0]:void 0)==="{"||u==="[")&&!H(h())&&this.findTagsBackwards(R,g)))return z1(R+1),_.push(["INDENT",R+2]),F(3);if(v==="SPACE?")$=!0;if(v===":"){if($)return $=!1,F(1);if(g=function(){var y;switch(!1){case(y=this.tag(R-1),B.call(x,y)<0):if([l1,t]=E,l1==="["&&t>0&&this.tag(t-1)==="@"&&!X[t-1].spaced)return t-1;else return t;break;case this.tag(R-2)!=="@":return R-2;default:return R-1}}.call(this),e=g<=0||(c=this.tag(g-1),B.call(U1,c)>=0)||X[g-1].newLine,h()){if([G1,q1]=h(),D1=_[_.length-2],(G1==="{"||G1==="INDENT"&&(D1!=null?D1[0]:void 0)==="{"&&!H(D1)&&this.findTagsBackwards(q1-1,["{"]))&&(e||this.tag(g-1)===","||this.tag(g-1)==="{")&&(f=this.tag(g-1),B.call(X1,f)<0))return F(1)}return j=R>1?X[R-2]:[],c1(g,{startsLine:!!e,continuationLineIndent:j.continuationLineIndent}),F(2)}if(B.call(U1,v)>=0)for(N=_.length-1;N>=0;N+=-1){if(F1=_[N],!H(F1))break;if(q(F1))F1[2].sameLine=!1}if(v==="TERMINATOR"&&A.endsContinuationLineIndentation){({preContinuationLineIndent:T}=A.endsContinuationLineIndentation);while(K()&&(G=h()[2].continuationLineIndent)!=null&&G>T)M()}if(z=w==="OUTDENT"||P.newLine,B.call(v1,v)>=0||B.call(J1,v)>=0&&z||(v===".."||v==="...")&&this.findTagsBackwards(R,["INDEX_START"]))while(Q())if([G1,q1,{sameLine:M1,startsLine:e}]=h(),Z()&&w!==","||w===","&&v==="TERMINATOR"&&S==null)Y();else if(K()&&M1&&v!=="TERMINATOR"&&w!==":"&&!((v==="POST_IF"||v==="FOR"||v==="WHILE"||v==="UNTIL")&&e&&D(R+1)))M();else if(K()&&v==="TERMINATOR"&&w!==","&&!(e&&this.looksObjectish(R+1)))M();else if(O()&&X[h()[1]][0]==="CLASS"&&v==="TERMINATOR")_.pop();else break;if(v===","&&!this.looksObjectish(R+1)&&K()&&!((o=this.tag(R+2))==="FOROF"||o==="FORIN")&&(S!=="TERMINATOR"||!this.looksObjectish(R+2))){I=S==="OUTDENT"?1:0;while(K())M(R+I)}return F(1)})}rescueStowawayComments(){var _,E,$,A;return E=function(R,X,Y,M){if(Y[X][0]!=="TERMINATOR")Y[M](p("TERMINATOR",`
|
|
19
|
+
`,Y[X]));return Y[M](p("JS","",Y[X],R))},_=function(R,X){var Y,M;Y=R+1;while(Y!==X.length&&(M=X[Y][0],B.call(r,M)>=0)){if(X[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},A=function(R,X,Y){var M,F,D,G,J,Q,Z;F=X;while(F!==Y.length&&(J=Y[F][0],B.call(r,J)>=0))F++;if(!(F===Y.length||(Q=Y[F][0],B.call(r,Q)>=0))){Z=R.comments;for(D=0,G=Z.length;D<G;D++)M=Z[D],M.unshift=!0;return R1(R,Y[F]),1}else return F=Y.length-1,E(R,F,Y,"push"),1},$=function(R,X,Y){var M,F,D;M=X;while(M!==-1&&(F=Y[M][0],B.call(r,F)>=0))M--;if(!(M===-1||(D=Y[M][0],B.call(r,D)>=0)))return R1(R,Y[M]),1;else return E(R,0,Y,"unshift"),3},this.scanTokens(function(R,X,Y){var M,F,D,G,J;if(!R.comments)return 1;if(J=1,D=R[0],B.call(r,D)>=0){M={comments:[]},F=R.comments.length-1;while(F!==-1){if(R.comments[F].newLine===!1&&R.comments[F].here===!1)M.comments.unshift(R.comments[F]),R.comments.splice(F,1);F--}if(M.comments.length!==0)J=$(M,X-1,Y);if(R.comments.length!==0)A(R,X,Y)}else if(!_(X,Y)){M={comments:[]},F=R.comments.length-1;while(F!==-1){if(R.comments[F].newLine&&!R.comments[F].unshift&&!(R[0]==="JS"&&R.generated))M.comments.unshift(R.comments[F]),R.comments.splice(F,1);F--}if(M.comments.length!==0)J=A(M,X+1,Y)}if(((G=R.comments)!=null?G.length:void 0)===0)delete R.comments;return J})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(_,E,$){var A,R,X,Y,M,F,D;if(_[2])return 1;if(!(_.generated||_.explicit))return 1;if(_.fromThen&&_[0]==="INDENT")return _[2]=_.origin[2],1;if(_[0]==="{"&&(X=(F=$[E+1])!=null?F[2]:void 0))({first_line:R,first_column:A,range:[M]}=X);else if(Y=(D=$[E-1])!=null?D[2]:void 0)({last_line:R,last_column:A,range:[,M]}=Y),A+=1;else R=A=0,M=0;return _[2]={first_line:R,first_column:A,last_line:R,last_column:A,last_line_exclusive:R,last_column_exclusive:A,range:[M,M]},1})}fixIndentationLocationData(){var _;if(this.allComments==null)this.allComments=k2(this.tokens);return _=(E,{afterPosition:$,indentSize:A,first:R,indented:X})=>{var Y,M,F,D,G,J,Q,Z;if(Z=E[2].range[0],G=function(O){if(O.outdented){if(!(A!=null&&O.indentSize>A))return!1}if(X&&!O.indented)return!1;if(!(O.locationData.range[0]<Z))return!1;if(!(O.locationData.range[0]>$))return!1;return!0},R){D=null,J=this.allComments;for(M=J.length-1;M>=0;M+=-1)if(Y=J[M],G(Y))D=Y;else if(D)return D;return D}Q=this.allComments;for(F=Q.length-1;F>=0;F+=-1)if(Y=Q[F],G(Y))return Y;return null},this.scanTokens(function(E,$,A){var R,X,Y,M,F,D,G,J,Q,Z;if(!((G=E[0])==="INDENT"||G==="OUTDENT"||E.generated&&E[0]==="CALL_END"&&!((J=E.data)!=null?J.closingTagNameToken:void 0)||E.generated&&E[0]==="}"))return 1;if(R=E[0]==="INDENT",D=(Q=E.prevToken)!=null?Q:A[$-1],F=D[2],Z=E.explicit||E.generated,Z){X=E,Y=$;while((X.explicit||X.generated)&&Y!==A.length-1)X=A[Y++]}if(M=_(Z?X:E,{afterPosition:F.range[0],indentSize:E.indentSize,first:R,indented:Z}),R){if(!(M!=null?M.newLine:void 0))return 1}if(E.generated&&E[0]==="CALL_END"&&(M!=null?M.indented:void 0))return 1;if(M!=null)F=M.locationData;return E[2]={first_line:M!=null?F.first_line:F.last_line,first_column:M!=null?R?0:F.first_column:F.last_column,last_line:F.last_line,last_column:F.last_column,last_line_exclusive:F.last_line_exclusive,last_column_exclusive:F.last_column_exclusive,range:R&&M!=null?[F.range[0]-M.indentSize,F.range[1]]:F.range},1})}normalizeLines(){var _,E,$,A,R,X,Y,M,F;return F=R=M=null,Y=null,X=null,A=[],$=function(D,G){var J,Q,Z,O;return D[1]!==";"&&(J=D[0],B.call(P2,J)>=0)&&!(D[0]==="TERMINATOR"&&(Q=this.tag(G+1),B.call(B1,Q)>=0))&&!(D[0]==="ELSE"&&(F!=="THEN"||(X||Y)))&&!(((Z=D[0])==="CATCH"||Z==="FINALLY")&&(F==="->"||F==="=>"))||(O=D[0],B.call(J1,O)>=0)&&(this.tokens[G-1].newLine||this.tokens[G-1][0]==="OUTDENT")},_=function(D,G){if(D[0]==="ELSE"&&F==="THEN")A.pop();return this.tokens.splice(this.tag(G-1)===","?G-1:G,0,M)},E=(D,G)=>{var J,Q,Z;if(Z=A.length,!(Z>0))return G;return J=A.pop(),[,Q]=this.indentation(D[J]),Q[1]=Z*2,D.splice(G,0,Q),Q[1]=2,D.splice(G+1,0,Q),this.detectEnd(G+2,function(O,K){var H;return(H=O[0])==="OUTDENT"||H==="TERMINATOR"},function(O,K){if(this.tag(K)==="OUTDENT"&&this.tag(K+1)==="OUTDENT")return D.splice(K,2)}),G+2},this.scanTokens(function(D,G,J){var Q,Z,O,K,H,W,q;if([q]=D,Q=(q==="->"||q==="=>")&&this.findTagsBackwards(G,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(G,["THEN","..","..."]),q==="TERMINATOR"){if(this.tag(G+1)==="ELSE"&&this.tag(G-1)!=="OUTDENT")return J.splice(G,1,...this.indentation()),1;if(K=this.tag(G+1),B.call(B1,K)>=0){if(D[1]===";"&&this.tag(G+1)==="OUTDENT")J[G+1].prevToken=D,R1(D,J[G+1]);return J.splice(G,1),0}}if(q==="CATCH")for(Z=O=1;O<=2;Z=++O){if(!((H=this.tag(G+Z))==="OUTDENT"||H==="TERMINATOR"||H==="FINALLY"))continue;return J.splice(G+Z,0,...this.indentation()),2+Z}if((q==="->"||q==="=>")&&((W=this.tag(G+1))===","||W==="]"||this.tag(G+1)==="."&&D.newLine))return[R,M]=this.indentation(J[G]),J.splice(G+1,0,R,M),1;if(B.call(j1,q)>=0&&this.tag(G+1)!=="INDENT"&&!(q==="ELSE"&&this.tag(G+1)==="IF")&&!Q){if(F=q,[R,M]=this.indentation(J[G]),F==="THEN")R.fromThen=!0;if(q==="THEN")Y=this.findTagsBackwards(G,["LEADING_WHEN"])&&this.tag(G+1)==="IF",X=this.findTagsBackwards(G,["IF"])&&this.tag(G+1)==="IF";if(q==="THEN"&&this.findTagsBackwards(G,["IF"]))A.push(G);if(q==="ELSE"&&this.tag(G-1)!=="OUTDENT")G=E(J,G);if(J.splice(G+1,0,R),this.detectEnd(G+2,$,_),q==="THEN")J.splice(G,1);return 1}return 1})}convertLegacyExistential(){return this.scanTokens(function(_,E,$){var A,R,X,Y,M;if(_[0]!=="SPACE?")return 1;A=!1,X=0;for(R=E+1;R<$.length;R++){if(M=$[R][0],Y=M,B.call(m,Y)>=0)X++;else if(Y=M,B.call(x,Y)>=0)X--;if(M===":"&&X===0){A=!0;break}if(X===0&&(M==="TERMINATOR"||M==="INDENT"||M==="OUTDENT"))break}if(!A)_[0]="??",_[1]="??";return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(_,E,$){var A,R,X,Y,M,F,D,G,J,Q;if(_[0]!=="..."&&_[0]!=="..")return 1;let Z=0;for(let O=E-1;O>=0;O--){if($[O][0]==="INDEX_END")Z++;if($[O][0]==="INDEX_START")Z--}if(R=Z<0,R)return 1;if(D=$[E-1],M=$[E+1],!D||!M)return 1;if(G=D[0],F=M[0],G===","&&F===",")return 1;if(G==="NUMBER")return 1;if(Q=["IDENTIFIER","PROPERTY",")","]","THIS","@"],J=G,B.call(Q,J)>=0){if(A=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],J=F,B.call(A,J)>=0)return $[E-1]=_,$[E]=D,1}return 1})}tagPostfixConditionals(){var _,E,$;return $=null,E=function(A,R){var X,Y;return[Y]=A,[X]=this.tokens[R-1],Y==="TERMINATOR"||Y==="INDENT"&&B.call(j1,X)<0},_=function(A,R){if(A[0]!=="INDENT"||A.generated&&!A.fromThen)return $[0]="POST_"+$[0]},this.scanTokens(function(A,R){if(A[0]!=="IF"&&A[0]!=="UNLESS")return 1;return $=A,this.detectEnd(R+1,E,_),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(_,E){var $,A,R;if(_.generated||_.data&&Object.keys(_.data).length!==0){_[1]=new String(_[1]),A=($=_.data)!=null?$:{};for(A1 in A){if(!h2.call(A,A1))continue;R=A[A1],_[1][A1]=R}if(_.generated)_[1].generated=!0}return 1})}indentation(_){var E,$;if(E=["INDENT",2],$=["OUTDENT",2],_)E.generated=$.generated=!0,E.origin=$.origin=_;else E.explicit=$.explicit=!0;return[E,$]}tag(_){var E;return(E=this.tokens[_])!=null?E[0]:void 0}}return U.prototype.generate=p,U}.call(null);T1=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["INTERPOLATION_START","INTERPOLATION_END"],["REGEX_START","REGEX_END"]];Q1={};m=[];x=[];for(Z1=0,s1=T1.length;Z1<s1;Z1++)[S1,P1]=T1[Z1],m.push(Q1[P1]=S1),x.push(Q1[S1]=P1);B1=["CATCH","THEN","ELSE","FINALLY"].concat(x);w1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];I1=["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","@","->","=>","[","(","{","--","++"];C1=["+","-"];v1=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"];j1=["ELSE","->","=>","TRY","FINALLY","THEN"];P2=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];U1=["TERMINATOR","INDENT","OUTDENT"];J1=[".","?.","::","?::"];u1=["IF","TRY","FINALLY","CATCH","CLASS","SWITCH"];r=["(",")","[","]","{","}",":",".","..","...",",","=","++","--","?","AS","AWAIT","CALL_START","CALL_END","DEFAULT","DO","DO_IIFE","ELSE","EXTENDS","EXPORT","FORIN","FOROF","FORFROM","IMPORT","INDENT","INDEX_SOAK","INTERPOLATION_START","INTERPOLATION_END","LEADING_WHEN","OUTDENT","PARAM_END","REGEX_START","REGEX_END","RETURN","STRING_END","THROW","UNARY","YIELD"].concat(C1.concat(v1.concat(J1.concat(u1))));X1=["\\",".","?.","?::","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"];var r2={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,DEF:31,Identifier:32,CALL_START:33,ParamList:34,CALL_END:35,Block:36,Assignable:37,REACTIVE_ASSIGN:38,INDENT:39,OUTDENT:40,COMPUTED_ASSIGN:41,READONLY_ASSIGN:42,REACT_ASSIGN:43,CodeLine:44,OperationLine:45,YIELD:46,Object:47,FROM:48,IDENTIFIER:49,Property:50,PROPERTY:51,AlphaNumeric:52,NUMBER:53,String:54,STRING:55,STRING_START:56,Interpolations:57,STRING_END:58,InterpolationChunk:59,INTERPOLATION_START:60,INTERPOLATION_END:61,Regex:62,REGEX:63,REGEX_START:64,Invocation:65,REGEX_END:66,RegexWithIndex:67,",":68,Literal:69,JS:70,UNDEFINED:71,NULL:72,BOOL:73,INFINITY:74,NAN:75,"=":76,AssignObj:77,ObjAssignable:78,ObjRestValue:79,":":80,SimpleObjAssignable:81,ThisProperty:82,"[":83,"]":84,"@":85,"...":86,ObjSpreadExpr:87,Parenthetical:88,Super:89,This:90,SUPER:91,OptFuncExist:92,Arguments:93,DYNAMIC_IMPORT:94,".":95,"?.":96,"::":97,"?::":98,INDEX_START:99,INDEX_END:100,INDEX_SOAK:101,RETURN:102,PARAM_START:103,PARAM_END:104,FuncGlyph:105,"->":106,"=>":107,OptComma:108,Param:109,ParamVar:110,Array:111,Splat:112,SimpleAssignable:113,Slice:114,ES6_OPTIONAL_INDEX:115,Range:116,DoIife:117,MetaProperty:118,NEW_TARGET:119,IMPORT_META:120,"{":121,FOR:122,ForVariables:123,FOROF:124,"}":125,WHEN:126,OWN:127,AssignList:128,CLASS:129,EXTENDS:130,IMPORT:131,ImportDefaultSpecifier:132,ImportNamespaceSpecifier:133,ImportSpecifierList:134,ImportSpecifier:135,AS:136,DEFAULT:137,IMPORT_ALL:138,EXPORT:139,ExportSpecifierList:140,EXPORT_ALL:141,ExportSpecifier:142,ES6_OPTIONAL_CALL:143,FUNC_EXIST:144,ArgList:145,THIS:146,Elisions:147,ArgElisionList:148,OptElisions:149,RangeDots:150,"..":151,Arg:152,ArgElision:153,Elision:154,SimpleArgs:155,TRY:156,Catch:157,FINALLY:158,CATCH:159,THROW:160,"(":161,")":162,WhileSource:163,WHILE:164,UNTIL:165,Loop:166,LOOP:167,FORIN:168,BY:169,FORFROM:170,AWAIT:171,ForValue:172,SWITCH:173,Whens:174,ELSE:175,When:176,LEADING_WHEN:177,IfBlock:178,IF:179,UnlessBlock:180,UNLESS:181,POST_IF:182,POST_UNLESS:183,UNARY:184,DO:185,DO_IIFE:186,UNARY_MATH:187,"-":188,"+":189,"--":190,"++":191,"?":192,MATH:193,"**":194,SHIFT:195,COMPARE:196,"&":197,"^":198,"|":199,"&&":200,"||":201,"??":202,"!?":203,RELATION:204,"SPACE?":205,COMPOUND_ASSIGN:206},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",31:"DEF",33:"CALL_START",35:"CALL_END",38:"REACTIVE_ASSIGN",39:"INDENT",40:"OUTDENT",41:"COMPUTED_ASSIGN",42:"READONLY_ASSIGN",43:"REACT_ASSIGN",46:"YIELD",48:"FROM",49:"IDENTIFIER",51:"PROPERTY",53:"NUMBER",55:"STRING",56:"STRING_START",58:"STRING_END",60:"INTERPOLATION_START",61:"INTERPOLATION_END",63:"REGEX",64:"REGEX_START",66:"REGEX_END",68:",",70:"JS",71:"UNDEFINED",72:"NULL",73:"BOOL",74:"INFINITY",75:"NAN",76:"=",80:":",83:"[",84:"]",85:"@",86:"...",91:"SUPER",94:"DYNAMIC_IMPORT",95:".",96:"?.",97:"::",98:"?::",99:"INDEX_START",100:"INDEX_END",101:"INDEX_SOAK",102:"RETURN",103:"PARAM_START",104:"PARAM_END",106:"->",107:"=>",115:"ES6_OPTIONAL_INDEX",119:"NEW_TARGET",120:"IMPORT_META",121:"{",122:"FOR",124:"FOROF",125:"}",126:"WHEN",127:"OWN",129:"CLASS",130:"EXTENDS",131:"IMPORT",136:"AS",137:"DEFAULT",138:"IMPORT_ALL",139:"EXPORT",141:"EXPORT_ALL",143:"ES6_OPTIONAL_CALL",144:"FUNC_EXIST",146:"THIS",151:"..",156:"TRY",158:"FINALLY",159:"CATCH",160:"THROW",161:"(",162:")",164:"WHILE",165:"UNTIL",167:"LOOP",168:"FORIN",169:"BY",170:"FORFROM",171:"AWAIT",173:"SWITCH",175:"ELSE",177:"LEADING_WHEN",179:"IF",181:"UNLESS",182:"POST_IF",183:"POST_UNLESS",184:"UNARY",185:"DO",186:"DO_IIFE",187:"UNARY_MATH",188:"-",189:"+",190:"--",191:"++",192:"?",193:"MATH",194:"**",195:"SHIFT",196:"COMPARE",197:"&",198:"^",199:"|",200:"&&",201:"||",202:"??",203:"!?",204:"RELATION",205:"SPACE?",206:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,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,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,1,1,0,2,1,5,-2,101,5,1,5,34,21,101,-3,-3,-3,-3,-3,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,-6,-6,121,-6,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,9,1,5,29,4,1,21,7,16,78,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,29,4,1,21,7,16,78,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,124,90,91,122,123,54,1,5,27,2,4,1,15,1,5,7,12,4,2,6,3,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-250,-13,-13,-13,-250,-250,-13,-13,-13,-13,-13,125,127,128,129,130,131,-13,132,-13,133,-13,-13,-13,-13,126,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,29,4,1,21,7,12,4,2,9,1,1,1,1,1,1,3,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,135,136,137,138,139,-14,140,-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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,29,4,1,21,7,16,78,-47,-47,-47,-47,-47,-47,-47,-47,-47,9,1,5,29,4,1,21,7,16,78,-48,-48,-48,-48,-48,-48,-48,-48,-48,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,142,-173,-173,143,144,145,-173,-173,-173,-173,141,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,146,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,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,4,1,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,157,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,156,30,158,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,159,160,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,163,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,170,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,171,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,172,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,173,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,174,33,35,38,82,83,93,80,76,169,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,178,33,35,38,82,83,93,80,76,169,61,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,179,180,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,181,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,183,182,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,184,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,185,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,2,36,3,186,158,2,36,3,187,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,191,93,188,189,190,192,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,194,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,195,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,88,1,5,8,1,17,3,1,1,2,1,7,2,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,3,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,4,16,5,10,1,2,1,3,1,1,12,1,3,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,175,176,86,-197,196,177,158,-197,67,98,68,94,95,99,100,-197,70,96,97,34,-197,31,69,71,72,73,74,75,-197,87,77,-197,81,-197,32,37,36,78,79,-197,165,-197,166,84,85,66,198,33,35,38,82,83,93,-197,-197,-197,-197,197,80,-197,76,-197,-197,-197,-197,-197,-197,-197,-197,169,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,199,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,200,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,3,2,2,1,3,3,1,1,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,2,1,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,3,2,8,7,5,5,4,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,201,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-49,30,202,-49,50,60,67,203,98,68,94,95,99,100,-49,70,96,97,34,-49,31,69,71,72,73,74,75,-49,87,77,-49,81,-49,32,37,36,78,79,-49,63,165,-49,166,84,85,66,49,33,35,38,82,83,93,-49,-49,-49,-49,58,64,65,80,-49,53,59,76,-49,54,-49,-49,55,92,-49,-49,-49,46,57,51,88,52,89,-49,-49,167,168,169,43,44,45,47,48,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,2,32,17,204,98,6,15,29,59,2,1,1,206,205,39,40,84,85,105,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,3,3,1,2,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,207,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-118,30,208,-118,50,60,67,98,68,94,95,99,100,-118,70,96,97,34,-118,31,69,71,72,73,74,75,87,77,-118,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,-118,54,-118,-118,55,92,46,57,51,88,52,89,-118,-118,167,168,169,43,44,45,47,48,9,32,17,5,1,1,65,11,1,5,213,98,209,99,100,212,210,211,214,9,27,3,1,1,17,72,8,8,4,216,217,61,218,98,215,58,219,220,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,221,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,61,86,30,222,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,223,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,224,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,225,226,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,33,60,2,4,238,235,236,237,2,33,60,238,239,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,55,1,5,27,2,4,1,10,1,4,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,240,241,-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,-255,-255,-255,-255,-255,-255,1,95,242,1,95,243,51,11,20,8,4,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,51,11,20,8,4,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,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,-141,-141,-141,-141,-141,-141,-141,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,244,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,245,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,246,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,247,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,4,1,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,249,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,248,30,158,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,6,26,7,1,9,1,1,1,1,1,1,1,12,9,1,1,2,1,1,2,1,39,3,-192,257,-192,-192,98,258,241,255,94,95,99,100,-192,256,250,260,252,259,253,254,261,-192,251,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,262,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,263,33,35,38,82,83,93,80,76,169,64,1,5,27,2,3,1,1,1,1,1,5,7,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,6,7,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,56,1,5,27,2,4,1,15,1,2,2,1,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,54,1,1,1,2,1,267,99,100,264,265,266,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,5,3,3,1,1,1,1,2,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-5,268,-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,61,86,30,-5,50,24,25,60,67,98,68,94,95,99,100,-5,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,-5,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,269,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,270,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,271,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,272,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,273,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,274,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,275,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,276,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,277,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,278,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,279,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,280,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,281,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,282,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,283,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,284,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,285,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,289,93,286,287,288,192,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,290,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,291,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,5,33,21,1,1,37,238,292,99,100,293,2,33,60,238,294,2,50,1,295,241,2,50,1,296,241,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,297,241,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,298,241,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,299,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,300,50,60,67,98,68,94,95,99,100,304,96,97,34,302,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,301,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,307,1,99,308,3,33,22,1,-251,-251,-251,2,50,1,309,241,2,50,1,310,241,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,311,241,-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,-164,-164,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,312,241,-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,-165,-165,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,313,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,314,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,315,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,317,316,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,318,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,320,319,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,321,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,323,322,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,324,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,326,325,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,327,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,329,328,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,330,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,332,-125,331,333,-125,6,6,29,4,1,28,36,-128,-128,-128,-128,-128,-128,7,6,29,4,1,28,8,28,-132,-132,-132,-132,-132,334,-132,15,6,26,3,4,1,7,2,19,14,1,2,19,6,1,10,-135,150,-135,-135,-135,153,98,-135,151,155,154,-135,335,152,93,10,6,29,4,1,28,8,28,20,44,2,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,10,6,29,4,1,28,8,28,20,44,2,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,10,6,29,4,1,28,8,28,20,44,2,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,10,6,29,4,1,28,8,28,20,44,2,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,50,1,240,241,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,224,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,225,226,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,9,1,5,29,4,1,21,7,16,78,-122,-122,-122,-122,-122,-122,-122,-122,-122,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,5,3,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,338,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,61,86,30,337,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-368,-368,-368,-368,-368,-368,119,-368,-368,102,-368,-368,-368,-368,-368,-368,-368,-368,-368,114,115,-368,-368,9,1,5,29,4,1,21,7,16,78,-365,-365,-365,-365,-365,-365,-365,-365,-365,5,163,1,1,17,1,124,90,91,122,123,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-369,-369,-369,-369,-369,-369,119,-369,-369,102,-369,-369,-369,-369,-369,-369,-369,-369,-369,114,115,-369,-369,9,1,5,29,4,1,21,7,16,78,-366,-366,-366,-366,-366,-366,-366,-366,-366,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-370,-370,-370,-370,-370,-370,119,-370,-370,102,-370,106,-370,-370,-370,-370,-370,-370,-370,114,115,-370,-370,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,339,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,2,36,3,156,158,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,159,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,5,15,88,2,1,1,206,165,166,84,85,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-371,-371,-371,-371,-371,-371,119,-371,-371,102,-371,106,-371,-371,-371,-371,-371,-371,-371,114,115,-371,-371,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-372,-372,-372,-372,-372,-372,119,-372,-372,102,-372,106,-372,-372,-372,-372,-372,-372,-372,114,115,-372,-372,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-373,-373,-373,-373,-373,-373,119,-373,-373,102,-373,-373,-373,-373,-373,-373,-373,-373,-373,114,115,-373,-373,2,47,74,340,93,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-170,-375,-170,-375,-375,-170,-170,-170,-170,-170,-375,-375,-170,-375,-375,-375,-170,-170,-170,-170,-170,-375,-170,-375,-170,-375,-375,-375,-375,-170,-170,-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,13,33,22,1,36,3,1,1,1,1,2,14,28,1,-250,-250,-250,125,127,128,129,130,131,132,133,126,134,6,95,1,1,1,1,2,135,136,137,138,139,140,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-170,-376,-170,-376,-376,-170,-170,-170,-170,-170,-376,-376,-170,-376,-376,-376,-170,-170,-170,-170,-170,-376,-170,-376,-170,-376,-376,-376,-376,-170,-170,-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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,343,341,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,342,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,121,-44,-44,-44,-44,-44,120,90,91,-44,-44,-44,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,344,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,345,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,36,3,140,346,158,347,44,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,6,1,1,3,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,348,349,350,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,3,124,44,2,352,351,353,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,354,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,355,192,3,36,3,130,356,158,357,4,68,56,44,2,358,-344,-344,-344,5,68,8,48,44,2,-342,359,-342,-342,-342,23,39,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,360,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,174,2,1,361,362,363,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,364,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,60,1,5,27,2,1,2,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-170,-201,365,-170,158,-201,-170,-170,-170,-170,-170,-201,-201,-170,-201,-201,-201,-170,-170,-170,-170,-170,-201,-170,-201,-170,-201,-201,-201,-201,366,-170,-170,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,120,-298,-298,-298,-298,-298,-298,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,367,93,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-50,-50,-50,-50,-50,-50,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,368,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,369,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,33,3,3,370,371,158,9,1,5,29,4,1,21,7,16,78,-367,-367,-367,-367,-367,-367,-367,-367,-367,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,121,-116,120,-116,-116,-116,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,372,93,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,2,48,20,373,374,1,48,375,7,32,7,10,76,9,1,2,380,379,98,376,377,378,381,2,48,20,-221,-221,1,136,382,7,32,7,10,76,12,3,2,387,386,98,383,388,384,385,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,1,76,389,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,390,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,391,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,48,392,2,6,156,101,393,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,394,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,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,31,6,29,4,1,28,16,2,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,306,121,395,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,396,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,398,397,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,400,-125,401,-125,399,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,402,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,5,6,33,1,28,16,-276,-276,-276,-276,-276,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,403,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,5,6,33,1,28,16,-281,-281,-281,-281,-281,6,6,29,4,1,28,16,-273,-273,-273,-273,-273,-273,6,6,29,4,1,28,16,-274,-274,-274,-274,-274,-274,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,3,3,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-275,405,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-275,30,-275,-275,50,60,67,98,68,94,95,99,100,70,96,97,34,-275,31,69,71,72,73,74,75,87,77,-275,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,50,1,406,241,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,407,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,408,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,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,3,2,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,409,30,412,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,410,80,411,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,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,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,2,50,1,413,241,2,50,1,414,241,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,415,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,416,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,121,-302,-302,417,-302,-302,120,90,91,-302,-302,-302,-302,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,121,-304,-304,418,-304,-304,120,90,91,-304,-304,-304,-304,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,121,-311,-311,-311,-311,-311,120,90,91,-311,-311,-311,-311,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,6,6,33,1,28,12,45,-82,-82,-82,-82,419,-82,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,421,-125,420,-125,7,6,33,1,28,8,4,45,-91,-91,-91,-91,422,-91,-91,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,423,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,50,1,32,240,241,424,6,6,33,1,28,12,45,-94,-94,-94,-94,-94,-94,5,6,33,1,28,57,-193,-193,-193,-193,-193,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,5,6,33,1,28,57,-83,-83,-83,-83,-83,17,32,15,2,1,1,30,1,3,2,1,1,1,1,3,27,25,15,257,427,98,258,241,425,259,81,426,428,429,430,431,432,93,80,76,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,433,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,6,54,1,1,2,1,1,267,99,100,434,435,266,4,55,1,2,2,-61,-61,-61,-61,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,5,2,4,1,1,1,1,2,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,436,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,61,86,30,437,50,24,25,60,67,98,68,94,95,99,100,438,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,55,1,2,2,-66,-66,-66,-66,5,1,5,34,21,101,-4,-4,-4,-4,-4,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,120,-380,-380,-380,-380,-380,-380,119,-380,-380,102,105,106,-380,-380,-380,-380,-380,-380,-380,114,115,-380,-380,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-381,-381,-381,-381,-381,-381,119,-381,-381,102,105,106,-381,-381,-381,-381,-381,-381,-381,114,115,-381,-381,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-382,-382,-382,-382,-382,-382,119,-382,-382,102,-382,106,-382,-382,-382,-382,-382,-382,-382,114,115,-382,-382,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-383,-383,-383,-383,-383,-383,119,-383,-383,102,-383,106,-383,-383,-383,-383,-383,-383,-383,114,115,-383,-383,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-384,-384,-384,-384,-384,-384,119,104,103,102,105,106,-384,-384,-384,-384,-384,-384,-384,114,115,-384,-384,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-385,-385,-385,-385,-385,-385,119,104,103,102,105,106,107,-385,-385,-385,-385,-385,-385,114,115,116,-385,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-386,-386,-386,-386,-386,-386,119,104,103,102,105,106,107,108,-386,-386,-386,-386,-386,114,115,116,-386,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,120,-387,-387,-387,-387,-387,-387,119,104,103,102,105,106,107,108,109,-387,-387,-387,-387,114,115,116,-387,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,120,-388,-388,-388,-388,-388,-388,119,104,103,102,105,106,107,108,109,110,-388,-388,-388,114,115,116,-388,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,120,-389,-389,-389,-389,-389,-389,119,104,103,102,105,106,107,108,109,110,111,-389,-389,114,115,116,-389,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,120,-390,-390,-390,-390,-390,-390,119,104,103,102,105,106,107,108,109,110,111,112,-390,114,115,116,-390,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,121,-391,-391,-391,-391,-391,120,90,91,-391,-391,-391,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,121,-392,-392,-392,-392,-392,120,90,91,-392,-392,-392,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,120,-393,-393,-393,-393,-393,-393,119,104,103,102,105,106,107,-393,-393,-393,-393,-393,-393,114,115,-393,-393,23,80,42,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,439,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,121,-362,-362,-362,-362,-362,120,90,91,-362,-362,-362,-362,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,121,-364,-364,-364,-364,-364,120,90,91,-364,-364,-364,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,124,44,2,441,440,442,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,443,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,444,192,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,445,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,121,-361,-361,-361,-361,-361,120,90,91,-361,-361,-361,-361,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,121,-363,-363,-363,-363,-363,120,90,91,-363,-363,-363,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,26,86,14,22,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,306,446,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,448,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,449,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,450,1,100,451,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,3,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,6,2,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,452,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-266,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,-266,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,453,-73,-73,-73,-73,-73,-73,-73,-73,-70,-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,52,11,20,9,3,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,6,2,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,52,11,20,9,3,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,6,2,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,99,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,454,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,455,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,456,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,457,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,458,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,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,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,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,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,459,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,460,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,461,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,462,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,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,120,-79,-79,-79,-79,-79,-79,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,463,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,464,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,121,-32,-32,-32,-32,-32,120,90,91,-32,-32,-32,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,465,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,466,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,121,-35,-35,-35,-35,-35,120,90,91,-35,-35,-35,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,467,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,468,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,121,-38,-38,-38,-38,-38,120,90,91,-38,-38,-38,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,469,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,470,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,121,-41,-41,-41,-41,-41,120,90,91,-41,-41,-41,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,471,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,472,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,105,1,1,473,84,85,17,6,26,3,4,1,7,2,33,1,1,1,1,23,1,1,10,4,-126,150,-126,-126,-126,153,98,151,155,-126,154,149,474,148,152,93,-126,2,6,33,475,476,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,477,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,29,4,1,28,36,-134,-134,-134,-134,-134,-134,28,6,29,4,1,28,16,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,57,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,2,6,34,101,478,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,332,-125,479,333,-125,1,40,480,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,120,-395,-395,-395,-395,-395,-395,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,481,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,482,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,121,-45,-45,-45,-45,-45,120,90,91,-45,-45,-45,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,483,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,484,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,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,485,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,2,36,3,486,158,6,32,4,3,8,2,72,487,489,158,488,98,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,490,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,491,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,492,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,493,1,170,494,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,495,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,10,32,15,2,33,1,2,25,1,10,51,150,153,98,151,155,154,193,152,93,496,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,497,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,174,2,1,498,362,363,4,40,135,1,1,499,500,501,363,3,40,135,2,-350,-350,-350,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,9,1,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,503,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,502,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,43,1,5,29,1,3,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,504,158,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,120,-199,-199,-199,-199,-199,-199,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,505,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,506,1,40,507,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-52,-52,-52,-52,-52,-52,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,508,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,1,40,509,3,54,1,1,510,99,100,3,121,12,5,512,511,214,3,54,1,1,513,99,100,1,48,514,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,515,-125,5,6,33,1,28,57,-212,-212,-212,-212,-212,6,32,7,10,85,1,2,380,379,98,517,378,381,6,6,33,1,28,57,11,-217,-217,-217,-217,-217,518,6,6,33,1,28,57,11,-219,-219,-219,-219,-219,519,2,32,17,520,98,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-223,-223,-223,-223,-223,521,-223,-223,-223,-223,-223,-223,-223,-223,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,523,-125,522,-125,5,6,33,1,28,57,-235,-235,-235,-235,-235,6,32,7,10,88,3,2,387,386,98,388,524,385,6,6,33,1,28,57,11,-240,-240,-240,-240,-240,525,6,6,33,1,28,57,11,-243,-243,-243,-243,-243,526,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,528,527,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,529,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,121,-230,120,90,91,-230,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,530,93,3,54,1,1,531,99,100,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,2,6,34,101,532,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,533,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,402,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,5,6,33,1,28,16,-282,-282,-282,-282,-282,2,39,45,535,534,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,3,2,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-126,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-126,30,-126,-126,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,-126,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,-126,58,64,65,80,537,231,536,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,6,33,1,44,538,-283,-283,-283,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,400,-125,401,-125,539,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,398,397,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,28,6,29,4,1,28,16,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-140,-140,-140,-140,-140,-140,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,540,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,541,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,543,-125,542,-125,5,6,29,4,1,28,-267,-267,-267,-267,-267,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,412,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,544,80,411,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-185,-185,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-186,-186,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,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,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,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,-356,-356,-356,-356,545,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,546,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,547,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,548,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,549,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,6,33,86,551,552,550,23,6,26,3,4,1,9,1,1,1,1,1,1,1,21,1,1,2,1,1,1,1,1,39,-126,257,-126,-126,-126,98,258,241,255,94,95,99,100,553,554,260,252,259,253,-126,254,261,-126,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,555,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,556,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,557,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,558,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,16,6,27,6,1,15,1,12,24,3,1,1,1,1,2,24,19,-95,-97,-95,-95,-250,-250,-95,559,-97,-97,-97,-97,-97,-97,-95,134,16,6,27,6,1,15,1,12,24,3,1,1,1,1,2,24,19,-96,-250,-96,-96,-250,-250,-96,560,561,562,563,564,565,566,-96,134,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,7,33,22,1,36,3,4,45,-250,-250,-250,567,236,237,134,2,33,60,238,568,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,27,2,4,1,15,1,2,2,1,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,55,1,2,2,-62,-62,-62,-62,2,6,55,101,569,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,570,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,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,55,1,2,2,-65,-65,-65,-65,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,571,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,572,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,573,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,574,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,575,1,170,576,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,577,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,3,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,6,2,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,578,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-264,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,-264,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,26,40,46,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,579,306,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,580,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-151,-151,-151,-151,-151,-151,-151,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-153,-153,-153,-153,-153,-153,24,40,60,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,581,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,26,86,14,22,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,306,582,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,583,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,584,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,585,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,586,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,587,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,588,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,589,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,590,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,120,-80,-80,-80,-80,-80,-80,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,591,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,121,-33,-33,-33,-33,-33,120,90,91,-33,-33,-33,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,592,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,121,-36,-36,-36,-36,-36,120,90,91,-36,-36,-36,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,593,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,121,-39,-39,-39,-39,-39,120,90,91,-39,-39,-39,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,594,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,121,-42,-42,-42,-42,-42,120,90,91,-42,-42,-42,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,595,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,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,4,1,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,597,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,596,30,158,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,6,6,29,4,1,28,36,-129,-129,-129,-129,-129,-129,11,32,15,2,33,1,2,1,23,1,1,10,150,153,98,151,155,154,149,598,148,152,93,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,599,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,28,6,29,4,1,28,36,18,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,57,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,3,105,1,1,600,84,85,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,601,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,120,-397,-397,-397,-397,-397,-397,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,602,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,36,3,603,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,2,36,3,604,158,2,36,3,605,158,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,26,36,3,83,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,606,158,121,607,120,90,91,608,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,609,158,121,610,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,611,158,121,612,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,613,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,614,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,615,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,124,44,2,-345,-345,-345,26,68,54,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-343,121,-343,120,90,91,-343,-343,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,4,40,135,1,1,616,617,501,363,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,36,3,618,158,3,40,135,2,-351,-351,-351,3,36,3,29,619,158,620,24,39,29,54,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,43,1,5,29,1,3,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,621,158,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,120,-203,-203,-203,-203,-203,-203,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,8,6,29,4,1,28,16,24,17,-125,622,-125,-125,332,-125,333,-125,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,48,623,6,32,7,10,85,1,2,380,379,98,624,378,381,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,3,54,1,1,625,99,100,3,6,33,86,627,628,626,10,6,26,3,4,1,9,35,41,10,2,-126,380,-126,-126,-126,98,-126,-126,629,381,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,630,-125,2,32,17,631,98,2,32,17,632,98,1,48,-222,3,54,1,1,633,99,100,3,6,33,86,635,636,634,10,6,26,3,4,1,9,35,41,12,5,-126,387,-126,-126,-126,98,-126,-126,388,637,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,523,-125,638,-125,3,32,17,88,639,98,640,2,32,17,641,98,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,121,-227,120,-227,-227,-227,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,642,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,643,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,644,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,1,162,645,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,646,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,647,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,5,6,33,1,28,16,-277,-277,-277,-277,-277,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,5,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-284,-284,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,-284,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,398,397,53,59,76,54,90,91,55,92,46,57,51,88,52,89,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,231,648,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,2,39,1,535,649,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,650,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,6,29,4,652,651,653,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,3,2,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-126,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-126,30,-126,-126,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,-126,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,-126,58,64,65,80,654,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,543,-125,655,-125,2,36,3,656,158,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,120,-303,-303,-303,-303,-303,-303,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,120,-305,-305,-305,-305,-305,-305,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,657,-84,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,658,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,17,32,17,1,1,1,1,1,1,1,21,1,1,2,1,1,2,1,257,98,258,241,255,94,95,99,100,659,554,260,252,259,253,254,261,23,6,26,7,1,9,1,1,1,1,1,1,1,12,9,1,1,2,1,1,2,1,39,3,-192,257,-192,-192,98,258,241,255,94,95,99,100,-192,256,554,260,252,259,253,254,261,-192,660,5,6,33,1,28,57,-194,-194,-194,-194,-194,6,6,33,1,28,12,45,-82,-82,-82,-82,661,-82,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,121,-86,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,662,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,33,1,28,12,45,-92,-92,-92,-92,-92,-92,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,663,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,33,60,238,664,2,33,60,238,665,2,50,1,666,241,2,50,1,667,241,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-110,-110,-110,-110,668,241,-110,-110,-110,-110,-110,-110,-110,-110,-110,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-111,-111,-111,-111,669,241,-111,-111,-111,-111,-111,-111,-111,-111,-111,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,670,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,671,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,672,2,33,60,238,673,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,4,55,1,2,2,-63,-63,-63,-63,2,6,34,101,674,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,120,-394,-394,-394,-394,-394,-394,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,675,-327,-327,120,-327,-327,-327,676,-327,-327,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,677,-332,-332,120,-332,-332,-332,-332,-332,-332,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,678,-336,-336,120,-336,-336,-336,-336,-336,-336,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,679,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,680,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,120,-341,-341,-341,-341,-341,-341,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,40,60,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,681,1,100,682,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-154,-154,-154,-154,-154,-154,26,40,46,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,683,306,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,684,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,685,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,686,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,687,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,9,1,5,29,4,1,21,7,16,78,-121,-121,-121,-121,-121,-121,-121,-121,-121,6,6,29,4,1,28,36,-130,-130,-130,-130,-130,-130,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,332,-125,688,-125,2,36,3,596,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,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,-355,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,689,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,690,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,691,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,692,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,693,158,121,694,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,695,158,121,696,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,2,36,3,697,158,1,40,698,4,6,34,135,2,699,-352,-352,-352,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,700,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,2,36,3,701,158,3,54,1,1,702,99,100,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,703,-125,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,1,48,704,4,32,17,86,2,380,98,705,381,6,32,7,10,85,1,2,380,379,98,706,378,381,5,6,33,1,28,57,-213,-213,-213,-213,-213,3,6,33,1,627,628,707,5,6,33,1,28,57,-218,-218,-218,-218,-218,5,6,33,1,28,57,-220,-220,-220,-220,-220,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-224,-224,-224,-224,-224,708,-224,-224,-224,-224,-224,-224,-224,-224,4,32,17,88,5,387,98,388,709,6,32,7,10,88,3,2,387,386,98,388,710,385,5,6,33,1,28,57,-236,-236,-236,-236,-236,3,6,33,1,635,636,711,5,6,33,1,28,57,-241,-241,-241,-241,-241,5,6,33,1,28,57,-242,-242,-242,-242,-242,5,6,33,1,28,57,-244,-244,-244,-244,-244,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,121,-228,120,-228,-228,-228,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,712,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,400,-125,401,-125,713,5,6,33,1,28,16,-278,-278,-278,-278,-278,5,6,33,1,28,16,-279,-279,-279,-279,-279,1,100,714,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,715,53,59,76,54,90,91,55,92,46,57,51,88,52,89,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,412,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,716,80,411,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,5,6,29,4,1,28,-268,-268,-268,-268,-268,3,6,33,1,652,653,717,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,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,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,289,93,718,719,288,192,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,720,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,5,6,33,1,28,57,-195,-195,-195,-195,-195,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,421,-125,721,-125,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,722,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,549,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,723,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,6,6,33,1,28,12,45,-93,-93,-93,-93,-93,-93,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,724,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,725,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,726,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,727,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,1,61,728,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,729,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,730,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,731,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,732,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,733,-334,-334,120,-334,-334,-334,-334,-334,-334,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,734,-338,-338,120,-338,-338,-338,-338,-338,-338,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-152,-152,-152,-152,-152,-152,-152,1,100,735,1,100,736,1,100,737,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,1,100,738,3,6,33,1,475,476,739,25,36,3,83,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,740,158,121,120,90,91,741,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,742,158,121,743,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,744,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,745,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,746,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,747,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,748,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,3,40,135,2,-353,-353,-353,24,39,29,54,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,3,6,33,86,627,628,749,3,54,1,1,750,99,100,5,6,33,1,28,57,-214,-214,-214,-214,-214,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,751,-125,5,6,33,1,28,57,-215,-215,-215,-215,-215,3,54,1,1,752,99,100,5,6,33,1,28,57,-237,-237,-237,-237,-237,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,523,-125,753,-125,5,6,33,1,28,57,-238,-238,-238,-238,-238,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,2,39,1,535,754,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-184,-184,5,6,29,4,1,28,-269,-269,-269,-269,-269,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,543,-125,755,-125,5,6,29,4,1,28,-270,-270,-270,-270,-270,3,124,44,2,756,440,442,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,757,192,5,6,33,1,28,57,-85,-85,-85,-85,-85,3,6,33,1,551,552,758,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,121,-84,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,5,6,33,1,28,57,-87,-87,-87,-87,-87,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,759,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,760,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,761,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,4,55,1,2,2,-64,-64,-64,-64,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,120,-328,-328,-328,762,-328,-328,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,763,-329,-329,120,-329,-329,-329,-329,-329,-329,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,120,-333,-333,-333,-333,-333,-333,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,120,-337,-337,-337,-337,-337,-337,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,764,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,765,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,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,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,29,4,1,28,36,-131,-131,-131,-131,-131,-131,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,766,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,767,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,768,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,769,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,1,48,770,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,3,6,33,1,627,628,771,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,3,6,33,1,635,636,772,5,6,33,1,28,16,-280,-280,-280,-280,-280,3,6,33,1,652,653,773,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,774,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,775,5,6,33,1,28,57,-196,-196,-196,-196,-196,1,100,776,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,777,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,778,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,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,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,779,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,120,-335,-335,-335,-335,-335,-335,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,120,-339,-339,-339,-339,-339,-339,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,780,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,781,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,1,1,782,99,100,5,6,33,1,28,57,-216,-216,-216,-216,-216,5,6,33,1,28,57,-239,-239,-239,-239,-239,5,6,29,4,1,28,-271,-271,-271,-271,-271,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,785,-332,-332,-332,-332,-332,783,-332,-332,-332,784,-332,-332,120,-332,-332,-332,-332,-332,-332,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,786,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,1,100,787,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,120,-330,-330,-330,-330,-330,-330,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,120,-331,-331,-331,-331,-331,-331,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,1,125,788,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,789,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,29,4,1,44,41,-126,-126,-126,-126,-126,-126,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,785,-334,-334,-334,-334,-334,790,-334,-334,-334,791,-334,-334,120,-334,-334,-334,-334,-334,-334,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-187,-187,-187,-187,-187,-187,-187,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,785,-333,-333,-333,-333,-333,792,-333,-333,-333,-333,-333,-333,120,-333,-333,-333,-333,-333,-333,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,125,793,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,794,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,125,795,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-189,-189,-189,-189,-189,-189,-189,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,785,-335,-335,-335,-335,-335,796,-335,-335,-335,-335,-335,-335,120,-335,-335,-335,-335,-335,-335,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-188,-188,-188,-188,-188,-188,-188,1,125,797,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,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,-190,-190,-190,-190,-190,-190,-190],_=[],E=0,$,A,R,X;while(E<U.length){$=U[E++],A={},R=0,X=[];while($--)R+=U[E++],X.push(R);for(R of X)A[R]=U[E++];_.push(A)}return _})(),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,30,6,30,3,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,8,1,8,1,29,1,29,2,29,4,29,3,36,2,36,3,32,1,50,1,52,1,52,1,54,1,54,3,57,1,57,2,59,3,59,5,59,2,59,1,62,1,62,3,67,3,67,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,17,3,17,4,17,5,77,1,77,1,77,3,77,5,77,3,77,5,81,1,81,1,81,1,78,1,78,3,78,4,78,1,79,2,79,2,87,1,87,1,87,1,87,1,87,1,87,3,87,2,87,3,87,3,87,3,87,3,87,3,87,3,87,2,87,2,87,4,87,6,87,5,87,7,10,2,10,4,10,1,15,5,15,2,44,5,44,2,105,1,105,1,108,0,108,1,34,0,34,1,34,3,34,4,34,6,109,1,109,3,109,2,109,1,110,1,110,1,110,1,110,1,112,2,113,1,113,1,113,3,113,3,113,3,113,3,113,2,113,2,113,4,113,6,113,4,113,6,113,4,113,5,113,7,113,5,113,7,113,5,113,7,113,3,113,3,113,3,113,3,113,2,113,2,113,4,113,6,113,5,113,7,37,1,37,1,37,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,89,3,89,4,89,6,118,3,118,3,47,10,47,12,47,11,47,13,47,4,128,0,128,1,128,3,128,4,128,6,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,134,1,134,3,134,4,134,4,134,6,135,1,135,3,135,1,135,3,132,1,133,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,140,1,140,3,140,4,140,4,140,6,142,1,142,3,142,3,142,1,142,3,65,3,65,3,65,3,65,2,65,2,92,0,92,1,93,2,93,4,90,1,90,1,82,2,111,2,111,3,111,4,150,1,150,1,116,5,114,3,114,2,114,2,114,1,145,1,145,3,145,4,145,4,145,6,152,1,152,1,152,1,152,1,148,1,148,3,148,4,148,4,148,6,153,1,153,2,149,1,149,2,147,1,147,2,154,1,154,2,155,1,155,3,23,2,23,3,23,4,23,5,157,3,157,3,157,2,28,2,28,4,88,3,88,5,163,2,163,4,163,2,163,4,24,2,24,2,24,2,24,1,166,2,166,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,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,3,25,5,172,1,172,3,123,1,123,3,26,5,26,7,26,4,26,6,174,1,174,2,176,3,176,4,178,3,178,5,180,3,180,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,45,2,45,2,45,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,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,5,16,3,16,5,16,4,117,2],ruleActions:(U,_,E,$)=>{let A=_,R=_.length-1;switch(U){case 1:return["program"];case 2:return["program",...A[R]];case 3:case 61:case 128:case 193:case 212:case 235:case 267:case 281:case 285:case 344:case 350:return[A[R]];case 4:case 129:case 194:case 213:case 236:case 268:return[...A[R-2],A[R]];case 5:case 63:case 288:return A[R-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 47:case 48:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 71:case 72:case 73:case 76:case 77:case 78:case 83:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 99:case 100:case 101:case 123:case 124:case 125:case 126:case 132:case 136:case 137:case 138:case 139:case 141:case 142:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 180:case 181:case 217:case 219:case 221:case 240:case 243:case 272:case 273:case 274:case 276:case 289:case 309:case 342:case 358:case 360:return A[R];case 30:return["def",A[R-4],A[R-2],A[R]];case 31:return["def",A[R-1],[],A[R]];case 32:return["state",A[R-2],A[R]];case 33:return["state",A[R-3],A[R]];case 34:return["state",A[R-4],A[R-1]];case 35:return["computed",A[R-2],A[R]];case 36:return["computed",A[R-3],A[R]];case 37:return["computed",A[R-4],A[R-1]];case 38:return["readonly",A[R-2],A[R]];case 39:return["readonly",A[R-3],A[R]];case 40:return["readonly",A[R-4],A[R-1]];case 41:return["effect",A[R-2],A[R]];case 42:return["effect",A[R-3],A[R]];case 43:return["effect",A[R-4],A[R-1]];case 44:case 45:return["effect",null,A[R]];case 46:return["effect",null,A[R-1]];case 49:return["yield"];case 50:return["yield",A[R]];case 51:return["yield",A[R-1]];case 52:return["yield-from",A[R]];case 53:return["block"];case 54:return["block",...A[R-1]];case 60:return["str",...A[R-1]];case 62:case 282:case 286:case 351:return[...A[R-1],A[R]];case 64:case 215:case 238:case 253:case 270:return A[R-2];case 65:return"";case 68:return["regex",A[R-1]];case 69:return["regex-index",A[R-2],A[R]];case 70:return["regex-index",A[R],null];case 74:return"undefined";case 75:return"null";case 79:return["=",A[R-2],A[R]];case 80:return["=",A[R-3],A[R]];case 81:return["=",A[R-4],A[R-1]];case 82:return[A[R],A[R],null];case 84:return[A[R-2],A[R],":"];case 85:return[A[R-4],A[R-1],":"];case 86:return[A[R-2],A[R],"="];case 87:return[A[R-4],A[R-1],"="];case 92:return["dynamicKey",A[R-1]];case 93:return["[]","this",A[R-1]];case 95:case 96:case 140:return["...",A[R]];case 102:case 248:return["super",...A[R]];case 103:case 249:return["import",...A[R]];case 104:case 105:return[A[R-2],...A[R]];case 106:case 143:case 160:return[".",A[R-2],A[R]];case 107:case 144:case 161:return["?.",A[R-2],A[R]];case 108:case 145:case 162:return["::",A[R-2],A[R]];case 109:case 146:case 163:return["?::",A[R-2],A[R]];case 110:case 147:case 164:return["::",A[R-1],"prototype"];case 111:case 148:case 165:return["?::",A[R-1],"prototype"];case 112:case 149:case 151:case 166:return["[]",A[R-3],A[R-1]];case 113:case 150:case 152:case 167:return["[]",A[R-5],A[R-2]];case 114:case 154:case 156:case 168:return["?[]",A[R-4],A[R-1]];case 115:case 155:case 157:case 169:return["?[]",A[R-6],A[R-2]];case 116:return["return",A[R]];case 117:return["return",A[R-1]];case 118:return["return"];case 119:case 121:return[A[R-1],A[R-3],A[R]];case 120:case 122:return[A[R-1],[],A[R]];case 127:case 192:case 252:case 283:return[];case 130:case 195:case 214:case 237:case 269:return[...A[R-3],A[R]];case 131:case 196:case 216:case 239:case 271:return[...A[R-5],...A[R-2]];case 133:case 343:return["default",A[R-2],A[R]];case 134:return["rest",A[R]];case 135:return["expansion"];case 153:return[A[R-1][0],A[R-3],...A[R-1].slice(1)];case 158:return["optindex",A[R-4],A[R-1]];case 159:return["optindex",A[R-6],A[R-2]];case 182:return[".","super",A[R]];case 183:return["[]","super",A[R-1]];case 184:return["[]","super",A[R-2]];case 185:return[".","new",A[R]];case 186:return[".","import",A[R]];case 187:return["object-comprehension",A[R-8],A[R-6],[["for-of",A[R-4],A[R-2],!1]],[]];case 188:return["object-comprehension",A[R-10],A[R-8],[["for-of",A[R-6],A[R-4],!1]],[A[R-2]]];case 189:return["object-comprehension",A[R-9],A[R-7],[["for-of",A[R-4],A[R-2],!0]],[]];case 190:return["object-comprehension",A[R-11],A[R-9],[["for-of",A[R-6],A[R-4],!0]],[A[R-2]]];case 191:return["object",...A[R-2]];case 197:return["class",null,null];case 198:return["class",null,null,A[R]];case 199:return["class",null,A[R]];case 200:return["class",null,A[R-1],A[R]];case 201:return["class",A[R],null];case 202:return["class",A[R-1],null,A[R]];case 203:return["class",A[R-2],A[R]];case 204:return["class",A[R-3],A[R-1],A[R]];case 205:case 208:return["import","{}",A[R]];case 206:case 207:return["import",A[R-2],A[R]];case 209:return["import",A[R-4],A[R]];case 210:return["import",[A[R-4],A[R-2]],A[R]];case 211:return["import",[A[R-7],A[R-4]],A[R]];case 218:case 220:case 241:case 242:case 244:case 345:return[A[R-2],A[R]];case 222:return["*",A[R]];case 223:return["export","{}"];case 224:return["export",A[R-2]];case 225:case 226:return["export",A[R]];case 227:return["export",["=",A[R-2],A[R]]];case 228:return["export",["=",A[R-3],A[R]]];case 229:return["export",["=",A[R-4],A[R-1]]];case 230:return["export-default",A[R]];case 231:return["export-default",A[R-1]];case 232:return["export-all",A[R]];case 233:return["export-from","{}",A[R]];case 234:return["export-from",A[R-4],A[R]];case 245:return["tagged-template",A[R-2],A[R]];case 246:return A[R-1]?["?call",A[R-2],...A[R]]:[A[R-2],...A[R]];case 247:return["optcall",A[R-2],...A[R]];case 250:case 287:return null;case 251:return!0;case 254:case 255:return"this";case 256:return[".","this",A[R]];case 257:return["array"];case 258:return["array",...A[R-1]];case 259:return["array",...A[R-2],...A[R-1]];case 260:return"..";case 261:case 275:return"...";case 262:return[A[R-2],A[R-3],A[R-1]];case 263:case 382:case 384:case 385:case 393:case 395:return[A[R-1],A[R-2],A[R]];case 264:return[A[R],A[R-1],null];case 265:return[A[R-1],null,A[R]];case 266:return[A[R],null,null];case 277:return[...A[R-2],...A[R]];case 278:return[...A[R-3],...A[R]];case 279:return[...A[R-2],...A[R-1]];case 280:return[...A[R-5],...A[R-4],...A[R-2],...A[R-1]];case 284:return[...A[R]];case 290:return Array.isArray(A[R-2])?[...A[R-2],A[R]]:[A[R-2],A[R]];case 291:return["try",A[R]];case 292:return["try",A[R-1],A[R]];case 293:return["try",A[R-2],A[R]];case 294:return["try",A[R-3],A[R-2],A[R]];case 295:case 296:case 365:case 368:case 370:return[A[R-1],A[R]];case 297:return[null,A[R]];case 298:return["throw",A[R]];case 299:return["throw",A[R-1]];case 300:return A[R-1].length===1?A[R-1][0]:A[R-1];case 301:return A[R-2].length===1?A[R-2][0]:A[R-2];case 302:return["while",A[R]];case 303:return["while",A[R-2],A[R]];case 304:return["until",A[R]];case 305:return["until",A[R-2],A[R]];case 306:return A[R-1].length===2?[A[R-1][0],A[R-1][1],A[R]]:[A[R-1][0],A[R-1][1],A[R-1][2],A[R]];case 307:case 308:return A[R].length===2?[A[R][0],A[R][1],[A[R-1]]]:[A[R][0],A[R][1],A[R][2],[A[R-1]]];case 310:return["loop",A[R]];case 311:return["loop",[A[R]]];case 312:return["for-in",A[R-3],A[R-1],null,null,A[R]];case 313:return["for-in",A[R-5],A[R-3],null,A[R-1],A[R]];case 314:return["for-in",A[R-5],A[R-3],A[R-1],null,A[R]];case 315:return["for-in",A[R-7],A[R-5],A[R-1],A[R-3],A[R]];case 316:return["for-in",A[R-7],A[R-5],A[R-3],A[R-1],A[R]];case 317:return["for-of",A[R-3],A[R-1],!1,null,A[R]];case 318:return["for-of",A[R-5],A[R-3],!1,A[R-1],A[R]];case 319:return["for-of",A[R-3],A[R-1],!0,null,A[R]];case 320:return["for-of",A[R-5],A[R-3],!0,A[R-1],A[R]];case 321:return["for-from",A[R-3],A[R-1],!1,null,A[R]];case 322:return["for-from",A[R-5],A[R-3],!1,A[R-1],A[R]];case 323:return["for-from",A[R-3],A[R-1],!0,null,A[R]];case 324:return["for-from",A[R-5],A[R-3],!0,A[R-1],A[R]];case 325:return["for-in",[],A[R-1],null,null,A[R]];case 326:return["for-in",[],A[R-3],A[R-1],null,A[R]];case 327:return["comprehension",A[R-4],[["for-in",A[R-2],A[R],null]],[]];case 328:return["comprehension",A[R-6],[["for-in",A[R-4],A[R-2],null]],[A[R]]];case 329:return["comprehension",A[R-6],[["for-in",A[R-4],A[R-2],A[R]]],[]];case 330:return["comprehension",A[R-8],[["for-in",A[R-6],A[R-4],A[R]]],[A[R-2]]];case 331:return["comprehension",A[R-8],[["for-in",A[R-6],A[R-4],A[R-2]]],[A[R]]];case 332:return["comprehension",A[R-4],[["for-of",A[R-2],A[R],!1]],[]];case 333:return["comprehension",A[R-6],[["for-of",A[R-4],A[R-2],!1]],[A[R]]];case 334:return["comprehension",A[R-5],[["for-of",A[R-2],A[R],!0]],[]];case 335:return["comprehension",A[R-7],[["for-of",A[R-4],A[R-2],!0]],[A[R]]];case 336:return["comprehension",A[R-4],[["for-from",A[R-2],A[R],!1,null]],[]];case 337:return["comprehension",A[R-6],[["for-from",A[R-4],A[R-2],!1,null]],[A[R]]];case 338:return["comprehension",A[R-5],[["for-from",A[R-2],A[R],!0,null]],[]];case 339:return["comprehension",A[R-7],[["for-from",A[R-4],A[R-2],!0,null]],[A[R]]];case 340:return["comprehension",A[R-2],[["for-in",[],A[R],null]],[]];case 341:return["comprehension",A[R-4],[["for-in",[],A[R-2],A[R]]],[]];case 346:return["switch",A[R-3],A[R-1],null];case 347:return["switch",A[R-5],A[R-3],A[R-1]];case 348:return["switch",null,A[R-1],null];case 349:return["switch",null,A[R-3],A[R-1]];case 352:return["when",A[R-1],A[R]];case 353:return["when",A[R-2],A[R-1]];case 354:return["if",A[R-1],A[R]];case 355:return A[R-4].length===3?["if",A[R-4][1],A[R-4][2],["if",A[R-1],A[R]]]:[...A[R-4],["if",A[R-1],A[R]]];case 356:return["unless",A[R-1],A[R]];case 357:return["if",["!",A[R-3]],A[R-2],A[R]];case 359:return A[R-2].length===3?["if",A[R-2][1],A[R-2][2],A[R]]:[...A[R-2],A[R]];case 361:case 362:return["if",A[R],[A[R-2]]];case 363:case 364:return["unless",A[R],[A[R-2]]];case 366:case 367:case 369:case 398:return["do-iife",A[R]];case 371:return["-",A[R]];case 372:return["+",A[R]];case 373:return["await",A[R]];case 374:return["await",A[R-1]];case 375:return["--",A[R],!1];case 376:return["++",A[R],!1];case 377:return["--",A[R-1],!0];case 378:return["++",A[R-1],!0];case 379:return["?",A[R-1]];case 380:return["+",A[R-2],A[R]];case 381:return["-",A[R-2],A[R]];case 383:return["**",A[R-2],A[R]];case 386:return["&",A[R-2],A[R]];case 387:return["^",A[R-2],A[R]];case 388:return["|",A[R-2],A[R]];case 389:return["&&",A[R-2],A[R]];case 390:return["||",A[R-2],A[R]];case 391:return["??",A[R-2],A[R]];case 392:return["!?",A[R-2],A[R]];case 394:return["?:",A[R-4],A[R-2],A[R]];case 396:return[A[R-3],A[R-4],A[R-1]];case 397:return[A[R-2],A[R-3],A[R]]}},parseError(U,_){let E,$,A,R,X,Y,M;if(_.recoverable)return this.trace(U);else throw A=(_.line||0)+1,E=_.loc?.first_column||0,M=_.token?` (token: ${_.token})`:"",Y=_.text?` near '${_.text}'`:"",R=`line ${A}, column ${E}`,X=`Parse error at ${R}${M}${Y}: ${U}`,$=Error(X),$.hash=_,$},parse(U){let _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P;[z,L,F]=[[0],[null],[]],[Z,w,T,I,W]=[this.parseTable,"",0,0,0],[E,_]=[2,1],M=Object.create(this.lexer),q={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let u=this.yy[V];q.yy[V]=u}if(M.setInput(U,q.yy),[q.yy.lexer,q.yy.parser]=[M,this],M.yylloc==null)M.yylloc={};j=M.yylloc,F.push(j),H=M.options?.ranges,this.parseError=typeof q.yy.parseError==="function"?q.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=M.lex()||_,typeof V!=="number")V=this.symbolIds[V]||V;return V},[S,O,N,$,K,P,Q,X,J,R]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(N=z[z.length-1],S==null)S=Y();if($=Z[N]!=null?Z[N][S]:void 0,$==null){if(A="",!W)R=(()=>{let V=[];for(let u in Z[N]){if(!Object.hasOwn(Z[N],u))continue;if(this.tokenNames[u]&&u>E)V.push(`'${this.tokenNames[u]}'`)}return V})();throw A=(()=>{if(M.showPosition)return`Parse error on line ${T+1}:
|
|
20
|
+
${M.showPosition()}
|
|
21
|
+
Expecting ${R.join(", ")}, got '${this.tokenNames[S]||S}'`;else return`Parse error on line ${T+1}: Unexpected ${S===_?"end of input":`'${this.tokenNames[S]||S}'`}`,this.parseError(A,{text:M.match,token:this.tokenNames[S]||S,line:M.yylineno,loc:j,expected:R})})(),Error(A)}if($>0)if(z.push(S,$),L.push(M.yytext),F.push(M.yylloc),S=null,!O){if([I,w,T,j]=[M.yyleng,M.yytext,M.yylineno,M.yylloc],W>0)W--}else[S,O]=[O,null];else if($<0){if(X=this.ruleTable[-$*2+1],P.$=L[L.length-X],[D,G]=[F[F.length-(X||1)],F[F.length-1]],P._$={first_line:D.first_line,last_line:G.last_line,first_column:D.first_column,last_column:G.last_column},H)P._$.range=[D.range[0],G.range[1]];if(K=this.ruleActions.apply(P,[-$,L,F,q.yy]),K!=null)P.$=K;if(X)z.length-=X*2,L.length-=X,F.length-=X;z.push(this.ruleTable[-$*2]),L.push(P.$),F.push(P._$),J=Z[z[z.length-2]][z[z.length-1]],z.push(J)}else if($===0)return L[L.length-1]}},trace(){},yy:{}},n2=(U={})=>{let _=Object.create(r2);return Object.defineProperty(_,"yy",{value:{...U},enumerable:!1,writable:!0,configurable:!0}),_},_1=n2();var _3=_1.parse.bind(_1);var a2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","?[]","::","?::","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function K1(U){if(!Array.isArray(U)||U.length===0)return!1;let _=U[0]?.valueOf?.()??U[0];if(a2.has(_))return!0;return U.length<=4&&!U.some(Array.isArray)}function Y1(U){if(Array.isArray(U))return"(???)";if(typeof U==="number")return String(U);if(U===null)return"null";if(U==="")return'""';let _=String(U);if(_[0]==="/"&&_.indexOf(`
|
|
22
|
+
`)>=0){let E=_.match(/\/([gimsuvy]*)$/),$=E?E[1]:"",A=_.slice(1);if($)A=A.slice(0,-$.length-1);else A=A.slice(0,-1);return`"/${A.split(`
|
|
23
|
+
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${$}"`}return _}function a(U,_=0,E=!1){if(!Array.isArray(U))return Y1(U);if(E&&U[0]==="program"){let F=U[1],G=[Array.isArray(F)?"(program":"(program "+Y1(F)],J=Array.isArray(F)?1:2;for(let Q=J;Q<U.length;Q++){let Z=a(U[Q],2,!1);G.push(Z[0]==="("?" "+Z:Z)}return G.push(")"),G.join(`
|
|
24
|
+
`)}let $=U[0];if(K1(U)&&U.slice(1).every((F)=>!Array.isArray(F)||K1(F))){let D=`(${U.map((G)=>Array.isArray(G)?a(G,0,!1):Y1(G)).join(" ")})`;if(!D.includes(`
|
|
25
|
+
`))return" ".repeat(_)+D}let R=" ".repeat(_),X;if(Array.isArray($)){if(X=a($,0,!1),X.includes(`
|
|
26
26
|
`))X=X.split(`
|
|
27
|
-
`).map((
|
|
28
|
-
`)}else X=Y1(
|
|
29
|
-
`)){Y[Y.length-1]+=" "+
|
|
30
|
-
`)}class
|
|
31
|
-
`))return`\`${X.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=X.includes("'")&&!X.includes('"')?'"':"'",
|
|
32
|
-
`),
|
|
33
|
-
`),
|
|
34
|
-
`;
|
|
35
|
-
`,
|
|
36
|
-
`,
|
|
37
|
-
`,
|
|
38
|
-
`,
|
|
39
|
-
`,
|
|
40
|
-
`,
|
|
41
|
-
`,
|
|
42
|
-
`,
|
|
43
|
-
`,
|
|
44
|
-
`,
|
|
45
|
-
`,
|
|
46
|
-
`,
|
|
47
|
-
`,
|
|
48
|
-
`,
|
|
49
|
-
`,
|
|
50
|
-
`,
|
|
51
|
-
`,
|
|
52
|
-
`,
|
|
53
|
-
`,
|
|
54
|
-
`;if(
|
|
55
|
-
`+X.map((
|
|
56
|
-
`);if(this.dataSection!==null&&this.dataSection!==void 0)
|
|
27
|
+
`).map((D,G)=>G===0?D:" ".repeat(_+2)+D).join(`
|
|
28
|
+
`)}else X=Y1($);let Y=[`${R}(${X}`],M=$==="block";for(let F=1;F<U.length;F++){let D=U[F];if(!Array.isArray(D))Y[Y.length-1]+=" "+Y1(D);else{let G=K1(D)&&D.every((J)=>!Array.isArray(J)||K1(J));if(!M&&G){let J=a(D,0,!1);if(!J.includes(`
|
|
29
|
+
`)){Y[Y.length-1]+=" "+J;continue}}Y.push(a(D,_+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
|
|
30
|
+
`)}class k{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_REGEX=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_REGEX=/^-?\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","::":"generatePrototype","?::":"generateOptionalPrototype","[]":"generateIndexAccess","?[]":"generateSoakIndex",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-from":"generateForFrom",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper","?call":"generateSoakCall",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(U={}){if(this.options=U,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=U.dataSection,U.reactiveVars)this.reactiveVars=new Set(U.reactiveVars)}compile(U){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(U),this.generate(U)}collectProgramVariables(U){if(!Array.isArray(U))return;let[_,...E]=U,$=_ instanceof String?_.await:void 0,A=_ instanceof String?_.invert:void 0;if(_ instanceof String)_=_.valueOf();if($!==void 0)U[0].await=$;if(A!==void 0)U[0].invert=A;if(Array.isArray(_)){U.forEach((R)=>this.collectProgramVariables(R));return}if(_==="export"||_==="export-default"||_==="export-all"||_==="export-from")return;if(_==="state"||_==="computed"||_==="readonly"){let[R]=E,X=typeof R==="string"?R:R.valueOf();if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(X);return}if(k.ASSIGNMENT_OPS.has(_)){let[R,X]=E;if(typeof R==="string"||R instanceof String){let Y=R instanceof String?R.valueOf():R;if(!this.reactiveVars?.has(Y))this.programVars.add(Y)}else if(Array.isArray(R)&&R[0]==="array")this.collectVarsFromArray(R,this.programVars);else if(Array.isArray(R)&&R[0]==="object")this.collectVarsFromObject(R,this.programVars);this.collectProgramVariables(X);return}if(_==="def"||_==="->"||_==="=>")return;if(_==="if"){let[R,X,Y]=E;if(this.collectProgramVariables(R),this.collectProgramVariables(X),Y)this.collectProgramVariables(Y);return}if(_==="unless"){let[R,X]=E;this.collectProgramVariables(R),this.collectProgramVariables(X);return}if(_==="try"){if(this.collectProgramVariables(E[0]),E.length>=2&&Array.isArray(E[1])&&E[1].length===2&&E[1][0]!=="block"){let[R,X]=E[1];if(R&&Array.isArray(R)&&R[0]==="object")R.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2){let M=Y[1];if(typeof M==="string")this.programVars.add(M)}});else if(R&&Array.isArray(R)&&R[0]==="array")R.slice(1).forEach((Y)=>{if(typeof Y==="string")this.programVars.add(Y)});this.collectProgramVariables(X)}if(E.length===3)this.collectProgramVariables(E[2]);else if(E.length===2&&(!Array.isArray(E[1])||E[1][0]==="block"))this.collectProgramVariables(E[1]);return}E.forEach((R)=>this.collectProgramVariables(R))}collectFunctionVariables(U){let _=new Set,E=($)=>{if(!Array.isArray($))return;let[A,...R]=$;if(A instanceof String)A=A.valueOf();if(Array.isArray(A)){$.forEach((X)=>E(X));return}if(k.ASSIGNMENT_OPS.has(A)){let[X,Y]=R;if(typeof X==="string")_.add(X);else if(Array.isArray(X)&&X[0]==="array")this.collectVarsFromArray(X,_);else if(Array.isArray(X)&&X[0]==="object")this.collectVarsFromObject(X,_);E(Y);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(E(R[0]),R.length>=2&&Array.isArray(R[1])&&R[1].length===2&&R[1][0]!=="block"){let[X,Y]=R[1];if(X&&Array.isArray(X)&&X[0]==="object")X.slice(1).forEach((M)=>{if(Array.isArray(M)&&M.length===2&&typeof M[1]==="string")_.add(M[1])});else if(X&&Array.isArray(X)&&X[0]==="array")X.slice(1).forEach((M)=>{if(typeof M==="string")_.add(M)});E(Y)}if(R.length===3)E(R[2]);else if(R.length===2&&(!Array.isArray(R[1])||R[1][0]==="block"))E(R[1]);return}R.forEach((X)=>E(X))};return E(U),_}generate(U,_="statement"){if(U instanceof String){if(U.await===!0)return`await ${U.valueOf()}()`;if(U.delimiter==="///"&&U.heregex){let X=U.valueOf(),Y=X.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,M,F]=Y;return`/${this.processHeregex(M)}/${F}`}return X}if(U.quote){let X=U.valueOf(),Y=U.quote;if(Y==='"""'||Y==="'''"){let F=this.extractStringContent(U);return F=F.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${F}\``}if(X[0]===Y)return X;let M=X.slice(1,-1);return`${Y}${M}${Y}`}U=U.valueOf()}if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive string (should be String object):",U);let X=U.slice(1,-1);if(X.includes(`
|
|
31
|
+
`))return`\`${X.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=X.includes("'")&&!X.includes('"')?'"':"'",M=X.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${M}${Y}`}if(this.reactiveVars?.has(U)&&!this.suppressReactiveUnwrap)return`${U}.value`;return U}if(typeof U==="number")return String(U);if(U===null||U===void 0)return"null";if(!Array.isArray(U))throw Error(`Invalid s-expression: ${JSON.stringify(U)}`);let[E,...$]=U,A=E instanceof String?E.await:void 0;if(E instanceof String)E=E.valueOf();let R=k.GENERATORS[E];if(R)return this[R](E,$,_,U);if(typeof E==="string"&&!E.startsWith('"')&&!E.startsWith("'")){if(k.NUMBER_START_REGEX.test(E))return E;if(E==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let D=$.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`super.${this.currentMethodName}(${D})`}if(_==="statement"&&$.length===1){let D=this.findPostfixConditional($[0]);if(D){let G;if(D.parentOp){let K=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;G=[D.parentOp,...D.otherOperands,K]}else G=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;let J=this.generate(E,"value"),Q=this.generate(D.condition,"value"),Z=this.generate(G,"value"),O=`${J}(${Z})`;if(D.type==="unless")return`if (!${Q}) ${O}`;else return`if (${Q}) ${O}`}}let X=A===!0,Y=this.generate(E,"value"),M=$.map((D)=>this.unwrap(this.generate(D,"value"))).join(", "),F=`${Y}(${M})`;return X?`await ${F}`:F}if(Array.isArray(E)&&typeof E[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(E[0]))return`(${U.map((M)=>this.generate(M,"value")).join(", ")})`}if(Array.isArray(E)){if(E[0]==="."&&(E[2]==="new"||E[2]instanceof String&&E[2].valueOf()==="new")){let D=E[1],G=this.generate(D,"value"),J=$.map((O)=>this.unwrap(this.generate(O,"value"))).join(", ");return`new ${Array.isArray(D)?`(${G})`:G}(${J})`}if(_==="statement"&&$.length===1){let D=this.findPostfixConditional($[0]);if(D){let G;if(D.parentOp){let K=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;G=[D.parentOp,...D.otherOperands,K]}else G=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;let J=this.generate(E,"value"),Q=this.generate(D.condition,"value"),Z=this.generate(G,"value"),O=`${J}(${Z})`;if(D.type==="unless")return`if (!${Q}) ${O}`;else return`if (${Q}) ${O}`}}let X=!1,Y;if(Array.isArray(E)&&(E[0]==="."||E[0]==="::")&&E[2]instanceof String&&E[2].await===!0){X=!0;let[D,G]=E.slice(1),J=this.generate(D,"value"),Q=k.NUMBER_LITERAL_REGEX.test(J),Z=Array.isArray(D)&&D[0]==="object",O=Array.isArray(D)&&(D[0]==="await"||D[0]==="yield"),H=Q||Z||O?`(${J})`:J,W=G.valueOf();if(E[0]==="::")Y=`${H}.prototype.${W}`;else Y=`${H}.${W}`}else Y=this.generate(E,"value");let M=$.map((D)=>this.unwrap(this.generate(D,"value"))).join(", "),F=`${Y}(${M})`;return X?`await ${F}`:F}throw Error(`Unknown s-expression type: ${E}`)}generateProgram(U,_,E,$){let A="",R=[],X=[],Y=[];_.forEach((D)=>{if(Array.isArray(D)){let G=D[0];if(G==="import")R.push(D);else if(G==="export"||G==="export-default"||G==="export-all"||G==="export-from")X.push(D);else Y.push(D)}else Y.push(D)});let M=Y.map((D,G)=>{let J=Y.length===1&&R.length===0&&X.length===0,Q=Array.isArray(D)&&D[0]==="object",Z=Q&&D.length===2&&Array.isArray(D[1])&&Array.isArray(D[1][1])&&D[1][1][0]==="comprehension",O=Array.isArray(D)&&(D[0]==="comprehension"||D[0]==="object-comprehension"||D[0]==="do-iife"),K=this.programVars.size===0,H=J&&Q&&K&&!O&&!Z,q=G===Y.length-1&&O,N;if(H)N=`(${this.generate(D,"value")})`;else if(q)N=this.generate(D,"value");else N=this.generate(D,"statement");if(N&&!N.endsWith(";")){let z=Array.isArray(D)?D[0]:null;if(!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(z)||!N.endsWith("}"))return N+";"}return N}).join(`
|
|
32
|
+
`),F=!1;if(R.length>0)A+=R.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))).join(`
|
|
33
|
+
`),F=!0;if(this.programVars.size>0){let D=Array.from(this.programVars).sort().join(", ");if(F)A+=`
|
|
34
|
+
`;A+=`let ${D};
|
|
35
|
+
`,F=!0}if(this.helpers.has("slice"))A+=`const slice = [].slice;
|
|
36
|
+
`,F=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
37
|
+
`,F=!0;if(this.helpers.has("toSearchable"))A+=`const toSearchable = (v, allowNewlines) => {
|
|
38
|
+
`,A+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
39
|
+
`,A+=` if (v == null) return "";
|
|
40
|
+
`,A+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
41
|
+
`,A+=` if (typeof v === "symbol") return v.description || "";
|
|
42
|
+
`,A+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
43
|
+
`,A+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
44
|
+
`,A+=` }
|
|
45
|
+
`,A+=` if (Array.isArray(v)) return v.join(",");
|
|
46
|
+
`,A+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
47
|
+
`,A+=` try { return v.toString(); } catch { return ""; }
|
|
48
|
+
`,A+=` }
|
|
49
|
+
`,A+=` return "";
|
|
50
|
+
`,A+=`};
|
|
51
|
+
`,F=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)A+=this.getReactiveRuntime(),F=!0;if(this.dataSection!==null&&this.dataSection!==void 0)A+=`var DATA;
|
|
52
|
+
`,A+=`_setDataSection();
|
|
53
|
+
`,F=!0;if(F&&A.length>0)A+=`
|
|
54
|
+
`;if(A+=M,X.length>0)A+=`
|
|
55
|
+
`+X.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))).join(`
|
|
56
|
+
`);if(this.dataSection!==null&&this.dataSection!==void 0)A+=`
|
|
57
57
|
|
|
58
58
|
function _setDataSection() {
|
|
59
59
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
60
|
-
}`;return
|
|
61
|
-
${this.withIndent(()=>this.formatStatements(
|
|
60
|
+
}`;return A}generateBinaryOp(U,_,E,$){if((U==="+"||U==="-")&&_.length===1){let[X]=_;return`(${U}${this.generate(X,"value")})`}let[A,R]=_;if(U==="!?"){let X=this.generate(A,"value"),Y=this.generate(R,"value");return`(${X} !== undefined ? ${X} : ${Y})`}if(U==="==")U="===";if(U==="!=")U="!==";return`(${this.generate(A,"value")} ${U} ${this.generate(R,"value")})`}generateModulo(U,_,E,$){let[A,R]=_;return this.helpers.add("modulo"),`modulo(${this.generate(A,"value")}, ${this.generate(R,"value")})`}generateFloorDiv(U,_,E,$){let[A,R]=_;return`Math.floor(${this.generate(A,"value")} / ${this.generate(R,"value")})`}generateFloorDivAssign(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`${X} = Math.floor(${X} / ${Y})`}generateAssignment(U,_,E,$){let[A,R]=_,X=U==="?="?"??=":U,Y=Array.isArray(R)&&(R[0]==="->"||R[0]==="=>"||R[0]==="def");if(A instanceof String&&A.await!==void 0&&!Y){let K=A.await===!0?"!":"&";throw Error(`Cannot use ${K} sigil in variable declaration '${A.valueOf()}'. Sigils are only for call-sites.`)}if(A instanceof String&&A.await===!0&&Y)this.nextFunctionIsVoid=!0;let F=Array.isArray(A)&&A[0]==="array"&&A.length===1,D=Array.isArray(A)&&A[0]==="object"&&A.length===1;if(F||D){let K=this.generate(R,"value");if(D&&E==="statement")return`(${K})`;return K}if(Array.isArray(A)&&A[0]==="array"){let K=A.slice(1).findIndex((H)=>Array.isArray(H)&&H[0]==="..."||H==="...");if(K!==-1&&K<A.length-2){let H=A.slice(1),W=H.slice(K+1),q=W.length;if(q>0){let N=this.generate(R,"value"),S=H.slice(0,K).map((P)=>{if(P===",")return"";if(typeof P==="string")return P;return this.generate(P,"value")}).join(", "),L=W.map((P)=>{if(P===",")return"";if(typeof P==="string")return P;return this.generate(P,"value")}).join(", ");this.helpers.add("slice"),((P)=>{P.forEach((V)=>{if(V===","||V==="...")return;if(typeof V==="string")this.programVars.add(V);else if(Array.isArray(V)&&V[0]==="..."){if(typeof V[1]==="string")this.programVars.add(V[1])}})})(H);let T=H[K],j=Array.isArray(T)&&T[0]==="..."?T[1]:null,w=[];if(S)w.push(`[${S}] = ${N}`);if(j)w.push(`[...${j}] = ${N}.slice(${K}, -${q})`);return w.push(`[${L}] = slice.call(${N}, -${q})`),w.join(", ")}}}if(E==="statement"&&U==="="&&Array.isArray(R)&&(R[0]==="||"||R[0]==="&&")&&R.length===3){let[K,H,W]=R;if(Array.isArray(W)&&(W[0]==="unless"||W[0]==="if")&&W.length===3){let[q,N,z]=W,S=Array.isArray(z)&&z.length===1?z[0]:z,L=[K,H,S],I=this.generate(A,"value"),T=this.generate(N,"value"),j=this.generate(L,"value");if(q==="unless")return`if (!${T}) ${I} = ${j}`;else return`if (${T}) ${I} = ${j}`}}if(E==="statement"&&U==="="&&Array.isArray(R)&&R.length===3){let K=R[0],[H,W,q]=R,N=Array.isArray(q)&&q.length===1&&(!Array.isArray(q[0])||q[0][0]!=="block");if((K==="unless"||K==="if")&&N){let z=q;if(Array.isArray(q)&&q.length===1)z=q[0];let S=this.generate(A,"value"),L=this.unwrapLogical(this.generate(W,"value")),I=this.generate(z,"value");if(K==="unless"){if(L.includes(" ")||L.includes("===")||L.includes("!==")||L.includes(">")||L.includes("<")||L.includes("&&")||L.includes("||"))L=`(${L})`;return`if (!${L}) ${S} = ${I}`}else return`if (${L}) ${S} = ${I}`}}let G;if(A instanceof String&&A.await!==void 0)G=A.valueOf();else if(typeof A==="string"&&this.reactiveVars?.has(A))G=`${A}.value`;else this.suppressReactiveUnwrap=!0,G=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let J=this.generate(R,"value");if(!(Array.isArray(R)&&R[0]==="object"))J=this.unwrap(J);let Z=E==="value",O=E==="statement"&&Array.isArray(A)&&A[0]==="object";if(Z||O)return`(${G} ${X} ${J})`;return`${G} ${X} ${J}`}generatePropertyAccess(U,_,E,$){let[A,R]=_;this.suppressReactiveUnwrap=!0;let X=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let Y=k.NUMBER_LITERAL_REGEX.test(X),M=Array.isArray(A)&&A[0]==="object",F=Array.isArray(A)&&(A[0]==="await"||A[0]==="yield"),G=Y||M||F?`(${X})`:X;if(R instanceof String&&R.await===!0){let Q=R.valueOf();return`await ${G}.${Q}()`}let J=R instanceof String?R.valueOf():R;return`${G}.${J}`}generateOptionalProperty(U,_,E,$){let[A,R]=_;return`${this.generate(A,"value")}?.${R}`}generatePrototype(U,_,E,$){let[A,R]=_,X=this.generate(A,"value");if(R==="prototype")return`${X}.prototype`;let Y=R instanceof String?R.valueOf():R;return`${X}.prototype.${Y}`}generateOptionalPrototype(U,_,E,$){let[A,R]=_,X=this.generate(A,"value");if(R==="prototype")return`(${X} != null ? ${X}.prototype : undefined)`;return`(${X} != null ? ${X}.prototype.${R} : undefined)`}generateRegexIndex(U,_,E,$){let[A,R,X]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let Y=this.generate(A,"value"),M=this.generate(R,"value"),F=X!==null?this.generate(X,"value"):"0",G=M.includes("/m")?", true":"";return`(_ = toSearchable(${Y}${G}).match(${M})) && _[${F}]`}generateIndexAccess(U,_,E,$){let[A,R]=_;if(Array.isArray(R)&&(R[0]===".."||R[0]==="...")){let Y=R[0]==="..",M=this.generate(A,"value"),[F,D]=R.slice(1);if(F===null&&D===null)return`${M}.slice()`;else if(F===null){if(Y&&this.isNegativeOneLiteral(D))return`${M}.slice(0)`;let G=this.generate(D,"value");if(Y)return`${M}.slice(0, +${G} + 1 || 9e9)`;else return`${M}.slice(0, ${G})`}else if(D===null){let G=this.generate(F,"value");return`${M}.slice(${G})`}else{let G=this.generate(F,"value");if(Y&&this.isNegativeOneLiteral(D))return`${M}.slice(${G})`;let J=this.generate(D,"value");if(Y)return`${M}.slice(${G}, +${J} + 1 || 9e9)`;else return`${M}.slice(${G}, ${J})`}}let X=this.unwrap(this.generate(R,"value"));return`${this.generate(A,"value")}[${X}]`}generateSoakIndex(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`(${X} != null ? ${X}[${Y}] : undefined)`}generateOptIndex(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`${X}?.[${Y}]`}generateOptCall(U,_,E,$){let[A,...R]=_,X=this.generate(A,"value"),Y=R.map((M)=>this.generate(M,"value")).join(", ");return`${X}?.(${Y})`}generateDef(U,_,E,$){let[A,R,X]=_,Y=A instanceof String&&A.await===!0,M=A instanceof String?A.valueOf():A,F=this.generateParamList(R),D=this.generateFunctionBody(X,R,Y),G=this.containsAwait(X),J=this.containsYield(X);return`${G?"async ":""}function${J?"*":""} ${M}(${F}) ${D}`}generateThinArrow(U,_,E,$){let[A,R]=_,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(A),M=this.generateFunctionBody(R,A,X),F=this.containsAwait(R),D=this.containsYield(R),Q=`${F?"async ":""}function${D?"*":""}(${Y}) ${M}`;return E==="value"?`(${Q})`:Q}generateFatArrow(U,_,E,$){let[A,R]=_,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(A),F=A.length===1&&typeof A[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,G=this.containsAwait(R)?"async ":"";if(!X){if(Array.isArray(R)&&R[0]==="block"&&R.length===2){let Q=R[1];if(!Array.isArray(Q)||Q[0]!=="return")return`${G}${F} => ${this.generate(Q,"value")}`}if(!Array.isArray(R)||R[0]!=="block")return`${G}${F} => ${this.generate(R,"value")}`}let J=this.generateFunctionBody(R,A,X);return`${G}${F} => ${J}`}generateReturn(U,_,E,$){if(_.length===0)return"return";let[A]=_;if(this.sideEffectOnly)return"return";if(Array.isArray(A)&&A[0]==="unless"){let[,R,X]=A,Y=Array.isArray(X)&&X.length===1?X[0]:X;return`if (!${this.generate(R,"value")}) return ${this.generate(Y,"value")}`}if(Array.isArray(A)&&A[0]==="if"){let[,R,X,...Y]=A;if(Y.length===0){let M=Array.isArray(X)&&X.length===1?X[0]:X;return`if (${this.generate(R,"value")}) return ${this.generate(M,"value")}`}}if(Array.isArray(A)&&A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,R]=A,[,X,Y]=R,M=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (!${this.generate(X,"value")}) return ${this.generate(["new",M],"value")}`}return`return ${this.generate(A,"value")}`}generateState(U,_,E,$){let[A,R]=_;this.usesReactivity=!0;let X=typeof A==="string"?A:A.valueOf(),Y=this.generate(R,"value");if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(X),`const ${X} = __state(${Y})`}generateComputed(U,_,E,$){let[A,R]=_;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let X=typeof A==="string"?A:A.valueOf();this.reactiveVars.add(X);let Y=this.generate(R,"value");return`const ${X} = __computed(() => ${Y})`}generateReadonly(U,_,E,$){let[A,R]=_,X=typeof A==="string"?A:A.valueOf(),Y=this.generate(R,"value");return`const ${X} = ${Y}`}generateEffect(U,_,E,$){let[A,R]=_;this.usesReactivity=!0;let X;if(Array.isArray(R)&&R[0]==="block"){let M=R.slice(1);X=`{
|
|
61
|
+
${this.withIndent(()=>this.formatStatements(M)).join(`
|
|
62
62
|
`)}
|
|
63
|
-
${this.indent()}}`}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>"))return`
|
|
64
|
-
|
|
65
|
-
`)+`
|
|
66
|
-
|
|
67
|
-
`;K.push(" _create() {");for(let S of z.createLines)K.push(` ${S}`);if(K.push(` return ${z.rootVar};`),K.push(" }"),z.setupLines.length>0){K.push(" _setup() {");for(let S of z.setupLines)K.push(` ${S}`);K.push(" }")}}return K.push(" mount(target) {"),K.push(' if (typeof target === "string") target = document.querySelector(target);'),K.push(" this._target = target;"),K.push(" this._root = this._create();"),K.push(" target.appendChild(this._root);"),K.push(" if (this._setup) this._setup();"),K.push(" if (this.mounted) this.mounted();"),K.push(" return this;"),K.push(" }"),K.push(" unmount() {"),K.push(" if (this.unmounted) this.unmounted();"),K.push(" if (this._root && this._root.parentNode) {"),K.push(" this._root.parentNode.removeChild(this._root);"),K.push(" }"),K.push(" }"),K.push("}"),this.componentMembers=N,this.reactiveMembers=P,w+K.join(`
|
|
68
|
-
`)}generateInComponent(U,A){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(Array.isArray(U)&&this.reactiveMembers){let $=this.transformComponentMembers(U);return this.generate($,A)}return this.generate(U,A)}transformComponentMembers(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let A=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(A))return[".",U,"value"];return U}return U.map((A)=>this.transformComponentMembers(A))}generateComponentRender(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateComponentTemplateElement(U);let A=U.slice(1);if(A.length===0)return"null";if(A.length===1)return this.generateComponentTemplateElement(A[0]);return`frag(${A.map((E)=>this.generateComponentTemplateElement(E)).join(", ")})`}generateFineGrainedRender(U){this._fgElementCount=0,this._fgTextCount=0,this._fgBlockCount=0,this._fgCreateLines=[],this._fgSetupLines=[],this._fgBlockFactories=[];let A=Array.isArray(U)&&U[0]==="block"?U.slice(1):[U],$;if(A.length===0)$="null";else if(A.length===1)$=this.fgProcessElement(A[0]);else{$=this.fgNewElement("frag"),this._fgCreateLines.push(`${$} = document.createDocumentFragment();`);for(let E of A){let R=this.fgProcessElement(E);this._fgCreateLines.push(`${$}.appendChild(${R});`)}}return{createLines:this._fgCreateLines,setupLines:this._fgSetupLines,blockFactories:this._fgBlockFactories,rootVar:$}}fgNewBlock(){return`create_block_${this._fgBlockCount++}`}fgNewElement(U="el"){return`this._${U}${this._fgElementCount++}`}fgNewText(){return`this._t${this._fgTextCount++}`}fgProcessElement(U){if(typeof U==="string"||U instanceof String){let $=U.valueOf();if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){let R=this.fgNewText();return this._fgCreateLines.push(`${R} = document.createTextNode(${$});`),R}if(this.reactiveMembers&&this.reactiveMembers.has($)){let R=this.fgNewText();return this._fgCreateLines.push(`${R} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${R}.data = this.${$}.value; });`),R}let E=this.fgNewElement();return this._fgCreateLines.push(`${E} = document.createElement('${$}');`),E}if(Array.isArray(U)){let[$,...E]=U,R=typeof $==="string"?$:$ instanceof String?$.valueOf():null;if(R&&this.isComponent(R))return this.fgProcessComponent(R,E);if(R&&this.isHtmlTag(R))return this.fgProcessTag(R,[],E);if(R==="."){let[,Y,F]=U;if(Y==="this"&&typeof F==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(F)){let G=this.fgNewText();return this._fgCreateLines.push(`${G} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${G}.data = this.${F}.value; });`),G}if(this.componentMembers&&this.componentMembers.has(F)){let G=this.fgNewElement("slot");return this._fgCreateLines.push(`${G} = this.${F} instanceof Node ? this.${F} : (this.${F} != null ? document.createTextNode(String(this.${F})) : document.createComment(''));`),G}}let{tag:D,classes:Z}=this.collectTemplateClasses(U);if(D&&this.isHtmlTag(D))return this.fgProcessTag(D,Z,[]);let M=this.fgNewText(),Q=this.generateInComponent(U,"value");return this._fgCreateLines.push(`${M} = document.createTextNode(String(${Q}));`),M}if(Array.isArray($)){if(Array.isArray($[0])&&$[0][0]==="."&&($[0][2]==="__cx__"||$[0][2]instanceof String&&$[0][2].valueOf()==="__cx__")){let D=typeof $[0][1]==="string"?$[0][1]:$[0][1].valueOf(),Z=$.slice(1);return this.fgProcessTagWithDynamicClass(D,Z,E)}let{tag:Y,classes:F}=this.collectTemplateClasses($);if(Y&&this.isHtmlTag(Y)){if(F.length===1&&F[0]==="__cx__")return this.fgProcessTagWithDynamicClass(Y,E,[]);return this.fgProcessTag(Y,F,E)}}if(R==="->"||R==="=>"){let[Y,F]=E;return this.fgProcessBlock(F)}if(R==="if")return this.fgProcessConditional(U);if(R==="for"||R==="for-in"||R==="for-of")return this.fgProcessLoop(U);let _=this.fgNewText(),X=this.generateInComponent(U,"value");if(this.fgHasReactiveDeps(U))this._fgCreateLines.push(`${_} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${_}.data = ${X}; });`);else this._fgCreateLines.push(`${_} = document.createTextNode(String(${X}));`);return _}let A=this.fgNewElement("c");return this._fgCreateLines.push(`${A} = document.createComment('unknown');`),A}fgProcessTagWithDynamicClass(U,A,$){let E=this.fgNewElement();if(this._fgCreateLines.push(`${E} = document.createElement('${U}');`),A.length>0){let R=A.map((X)=>this.generateInComponent(X,"value")).join(' + " " + ');if(A.some((X)=>this.fgHasReactiveDeps(X)))this._fgSetupLines.push(`__effect(() => { ${E}.className = ${R}; });`);else this._fgCreateLines.push(`${E}.className = ${R};`)}for(let R of $){let _=Array.isArray(R)?R[0]instanceof String?R[0].valueOf():R[0]:null;if(_==="->"||_==="=>"){let X=R[2];if((Array.isArray(X)?X[0]instanceof String?X[0].valueOf():X[0]:null)==="block")for(let F of X.slice(1)){let D=this.fgProcessElement(F);this._fgCreateLines.push(`${E}.appendChild(${D});`)}else if(X){let F=this.fgProcessElement(X);this._fgCreateLines.push(`${E}.appendChild(${F});`)}}else if(Array.isArray(R)&&R[0]==="object")this.fgProcessAttributes(E,R);else if(typeof R==="string"||R instanceof String){let X=this.fgNewText(),Y=R.valueOf();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._fgCreateLines.push(`${X} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._fgCreateLines.push(`${X} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${X}.data = this.${Y}.value; });`);else this._fgCreateLines.push(`${X} = document.createTextNode(${this.generateInComponent(R,"value")});`);this._fgCreateLines.push(`${E}.appendChild(${X});`)}else{let X=this.fgProcessElement(R);this._fgCreateLines.push(`${E}.appendChild(${X});`)}}return E}fgProcessTag(U,A,$){let E=this.fgNewElement();if(this._fgCreateLines.push(`${E} = document.createElement('${U}');`),A.length>0)this._fgCreateLines.push(`${E}.className = '${A.join(" ")}';`);for(let R of $)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let _=R[2];if(Array.isArray(_)&&_[0]==="block")for(let X of _.slice(1)){let Y=this.fgProcessElement(X);this._fgCreateLines.push(`${E}.appendChild(${Y});`)}else if(_){let X=this.fgProcessElement(_);this._fgCreateLines.push(`${E}.appendChild(${X});`)}}else if(Array.isArray(R)&&R[0]==="object")this.fgProcessAttributes(E,R);else if(typeof R==="string"){let _=this.fgNewText();if(R.startsWith('"')||R.startsWith("'")||R.startsWith("`"))this._fgCreateLines.push(`${_} = document.createTextNode(${R});`);else if(this.reactiveMembers&&this.reactiveMembers.has(R))this._fgCreateLines.push(`${_} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${_}.data = this.${R}.value; });`);else if(this.componentMembers&&this.componentMembers.has(R))this._fgCreateLines.push(`${_} = document.createTextNode(String(this.${R}));`);else this._fgCreateLines.push(`${_} = document.createTextNode(String(${R}));`);this._fgCreateLines.push(`${E}.appendChild(${_});`)}else if(R instanceof String){let _=R.valueOf(),X=this.fgNewText();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._fgCreateLines.push(`${X} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._fgCreateLines.push(`${X} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${X}.data = this.${_}.value; });`);else this._fgCreateLines.push(`${X} = document.createTextNode(String(${_}));`);this._fgCreateLines.push(`${E}.appendChild(${X});`)}else if(R){let _=this.fgProcessElement(R);this._fgCreateLines.push(`${E}.appendChild(${_});`)}return E}fgHasReactiveDeps(U){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof U==="string")return this.reactiveMembers.has(U);if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers.has(U[2]);for(let A of U)if(this.fgHasReactiveDeps(A))return!0;return!1}fgProcessAttributes(U,A){let $=f.extractInputType(A.slice(1));for(let E=1;E<A.length;E++){let[R,_]=A[E];if(Array.isArray(R)&&R[0]==="."&&R[1]==="this"){let X=R[2],Y=this.generateInComponent(_,"value");this._fgCreateLines.push(`${U}.addEventListener('${X}', (e) => (${Y})(e));`);continue}if(typeof R==="string"){if(R.startsWith("__bind_")&&R.endsWith("__")){let Y=R.slice(7,-2),F=this.generateInComponent(_,"value"),D,Z;if(Y==="checked")D="change",Z="e.target.checked";else if(D="input",$==="number"||$==="range")Z="e.target.valueAsNumber";else Z="e.target.value";this._fgSetupLines.push(`__effect(() => { ${U}.${Y} = ${F}; });`),this._fgCreateLines.push(`${U}.addEventListener('${D}', (e) => ${F} = ${Z});`);continue}if(this.fgHasReactiveDeps(_)){let Y=this.generateInComponent(_,"value");this._fgSetupLines.push(`__effect(() => { ${U}.setAttribute('${R}', ${Y}); });`)}else{let Y=this.generateInComponent(_,"value");this._fgCreateLines.push(`${U}.setAttribute('${R}', ${Y});`)}}}}fgProcessBlock(U){if(!Array.isArray(U)||U[0]!=="block")return this.fgProcessElement(U);let A=U.slice(1);if(A.length===0){let E=this.fgNewElement("empty");return this._fgCreateLines.push(`${E} = document.createComment('');`),E}if(A.length===1)return this.fgProcessElement(A[0]);let $=this.fgNewElement("frag");this._fgCreateLines.push(`${$} = document.createDocumentFragment();`);for(let E of A){let R=this.fgProcessElement(E);this._fgCreateLines.push(`${$}.appendChild(${R});`)}return $}fgProcessConditional(U){let[,A,$,E]=U,R=this.fgNewElement("anchor");this._fgCreateLines.push(`${R} = document.createComment('if');`);let _=this.generateInComponent(A,"value"),X=this.fgNewBlock();this.fgGenerateConditionBlock(X,$);let Y=null;if(E)Y=this.fgNewBlock(),this.fgGenerateConditionBlock(Y,E);let F=[];if(F.push(`// Conditional: ${X}${Y?" / "+Y:""}`),F.push("{"),F.push(` const anchor = ${R};`),F.push(" let currentBlock = null;"),F.push(" let showing = null; // 'then', 'else', or null"),F.push(" __effect(() => {"),F.push(` const show = !!(${_});`),F.push(` const want = show ? 'then' : ${E?"'else'":"null"};`),F.push(" if (want === showing) return;"),F.push(""),F.push(" // Destroy old block"),F.push(" if (currentBlock) {"),F.push(" currentBlock.d(true);"),F.push(" currentBlock = null;"),F.push(" }"),F.push(" showing = want;"),F.push(""),F.push(" // Create new block"),F.push(" if (want === 'then') {"),F.push(` currentBlock = ${X}(this);`),F.push(" currentBlock.c();"),F.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),F.push(" currentBlock.p(this);"),F.push(" }"),E)F.push(" if (want === 'else') {"),F.push(` currentBlock = ${Y}(this);`),F.push(" currentBlock.c();"),F.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),F.push(" currentBlock.p(this);"),F.push(" }");return F.push(" });"),F.push("}"),this._fgSetupLines.push(F.join(`
|
|
69
|
-
`)),R}fgGenerateConditionBlock(U,A){let $=this._fgCreateLines,E=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[];let R=this.fgProcessBlock(A),_=this._fgCreateLines,X=this._fgSetupLines;this._fgCreateLines=$,this._fgSetupLines=E;let Y=(M)=>{return M.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g,"$1")},F=[];F.push(`function ${U}(ctx) {`),F.push(" // Local DOM references");let D=new Set;for(let M of _){let Q=M.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);if(Q)D.add(Q[1])}if(D.size>0)F.push(` let ${[...D].join(", ")};`);let Z=X.length>0;if(Z)F.push(" let disposers = [];");F.push(" return {"),F.push(" c() {");for(let M of _)F.push(` ${Y(M)}`);if(F.push(" },"),F.push(" m(target, anchor) {"),F.push(` target.insertBefore(${Y(R)}, anchor);`),F.push(" },"),F.push(" p(ctx) {"),Z){F.push(" disposers.forEach(d => d());"),F.push(" disposers = [];");for(let M of X){let G=Y(M).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");F.push(` ${G}`)}}if(F.push(" },"),F.push(" d(detaching) {"),Z)F.push(" disposers.forEach(d => d());");F.push(` if (detaching) ${Y(R)}.remove();`),F.push(" }"),F.push(" };"),F.push("}"),this._fgBlockFactories.push(F.join(`
|
|
70
|
-
`))}fgProcessLoop(U){let[A,$,E,R,_,X]=U,Y=this.fgNewBlock(),F=this.fgNewElement("anchor");this._fgCreateLines.push(`${F} = document.createComment('for');`);let D=Array.isArray($)?$:[$],Z=D[0],M=D[1]||"i",Q=this.generateInComponent(E,"value"),G=Z;if(Array.isArray(X)&&X[0]==="block"&&X.length>1){let S=X[1];if(Array.isArray(S))for(let I of S){if(Array.isArray(I)&&I[0]==="object")for(let L=1;L<I.length;L++){let[T,V]=I[L];if(T==="key"){G=this.generate(V,"value");break}}if(G!==Z)break}}let J=this._fgCreateLines,W=this._fgSetupLines,H=this._fgBlockFactories;this._fgCreateLines=[],this._fgSetupLines=[];let q=this.fgProcessBlock(X),O=this._fgCreateLines,N=this._fgSetupLines;this._fgCreateLines=J,this._fgSetupLines=W;let P=(S)=>{return S.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g,"$1")},K=[];K.push(`function ${Y}(ctx, ${Z}, ${M}) {`),K.push(" // Local DOM references (not on this)");let w=new Set;for(let S of O){let I=S.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);if(I)w.add(I[1])}if(w.size>0)K.push(` let ${[...w].join(", ")};`);let B=N.length>0;if(B)K.push(" let disposers = [];");K.push(" return {"),K.push(" c() {");for(let S of O)K.push(` ${P(S)}`);if(K.push(" },"),K.push(" m(target, anchor) {"),K.push(` target.insertBefore(${P(q)}, anchor);`),K.push(" },"),K.push(` p(ctx, ${Z}, ${M}) {`),B){K.push(" // Dispose old effects and create new ones with updated values"),K.push(" disposers.forEach(d => d());"),K.push(" disposers = [];");for(let S of N){let L=P(S).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");K.push(` ${L}`)}}if(K.push(" },"),K.push(" d(detaching) {"),B)K.push(" disposers.forEach(d => d());");K.push(` if (detaching) ${P(q)}.remove();`),K.push(" }"),K.push(" };"),K.push("}"),this._fgBlockFactories.push(K.join(`
|
|
71
|
-
`));let z=[];return z.push(`// Loop: ${Y}`),z.push("{"),z.push(` const anchor = ${F};`),z.push(" const map = new Map(); // key -> block"),z.push(" let keys = [];"),z.push(" __effect(() => {"),z.push(` const items = ${Q};`),z.push(" const parent = anchor.parentNode;"),z.push(" const newKeys = [];"),z.push(" const newMap = new Map();"),z.push(""),z.push(" // Create/update blocks"),z.push(` for (let ${M} = 0; ${M} < items.length; ${M}++) {`),z.push(` const ${Z} = items[${M}];`),z.push(` const key = ${G};`),z.push(" newKeys.push(key);"),z.push(" let block = map.get(key);"),z.push(" if (block) {"),z.push(" // Update existing block"),z.push(` block.p(this, ${Z}, ${M});`),z.push(" } else {"),z.push(" // Create new block"),z.push(` block = ${Y}(this, ${Z}, ${M});`),z.push(" block.c();"),z.push(" block.m(parent, anchor);"),z.push(` block.p(this, ${Z}, ${M}); // Wire up effects`),z.push(" }"),z.push(" newMap.set(key, block);"),z.push(" }"),z.push(""),z.push(" // Remove deleted blocks"),z.push(" for (const [key, block] of map) {"),z.push(" if (!newMap.has(key)) block.d(true);"),z.push(" }"),z.push(""),z.push(" // Update tracking (simple swap)"),z.push(" map.clear();"),z.push(" for (const [k, v] of newMap) map.set(k, v);"),z.push(" keys = newKeys;"),z.push(" });"),z.push("}"),this._fgSetupLines.push(z.join(`
|
|
72
|
-
`)),F}fgProcessComponent(U,A){let $=this.fgNewElement("inst"),E=this.fgNewElement("el"),{propsCode:R,childrenVar:_,childrenSetupLines:X}=this.fgBuildComponentProps(A);this._fgCreateLines.push(`${$} = new ${U}(${R});`),this._fgCreateLines.push(`${E} = ${$}._create();`),this._fgSetupLines.push(`if (${$}._setup) ${$}._setup();`);for(let Y of X)this._fgSetupLines.push(Y);return E}fgBuildComponentProps(U){let A=[],$=null,E=[];for(let _ of U)if(Array.isArray(_)&&_[0]==="object")for(let X=1;X<_.length;X++){let[Y,F]=_[X];if(typeof Y==="string"){let D=this.generateInComponent(F,"value");A.push(`${Y}: ${D}`)}}else if(Array.isArray(_)&&(_[0]==="->"||_[0]==="=>")){let X=_[2];if(X){let Y=this._fgCreateLines,F=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[],$=this.fgProcessBlock(X);let D=this._fgCreateLines,Z=this._fgSetupLines;this._fgCreateLines=Y,this._fgSetupLines=F;for(let M of D)this._fgCreateLines.push(M);E.push(...Z),A.push(`children: ${$}`)}}return{propsCode:A.length>0?`{ ${A.join(", ")} }`:"{}",childrenVar:$,childrenSetupLines:E}}generateComponentTemplateElement(U){if(typeof U==="string"){if(this.componentMembers&&this.componentMembers.has(U))return`this.${U}.value`;if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String){let A=U.valueOf();if(this.componentMembers&&this.componentMembers.has(A))return`this.${A}.value`}if(Array.isArray(U)){let[A,...$]=U,E=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(E&&this.isComponent(E))return this.generateComponentInstance(E,$);if(E&&this.isHtmlTag&&this.isHtmlTag(E))return this.generateComponentH(E,[],$);if(E==="."){let[,R,_]=U;if(R==="this"&&_==="children")return"this.children";let{tag:X,classes:Y}=this.collectTemplateClasses(U);if(X&&this.isHtmlTag&&this.isHtmlTag(X))return this.generateComponentH(X,Y,[])}if(Array.isArray(A)){let{tag:R,classes:_}=this.collectTemplateClasses(A);if(R&&this.isHtmlTag&&this.isHtmlTag(R))return this.generateComponentH(R,_,$)}if(E==="->"||E==="=>"){let[R,_]=$;return this.generateComponentRender(_)}return this.generateTemplateElement(U)}return this.generateTemplateElement(U)}generateComponentH(U,A,$){this.usesTemplates=!0;let E={},R=[],_=[],X=null;for(let M of $)if(Array.isArray(M)&&(M[0]==="->"||M[0]==="=>")){let Q=M[2];if(Array.isArray(Q)&&Q[0]==="block")_.push(...Q.slice(1).map((G)=>this.generateComponentTemplateElement(G)));else _.push(this.generateComponentTemplateElement(Q))}else if(Array.isArray(M)&&M[0]==="...")R.push(this.generateInComponent(M[1],"value"));else if(Array.isArray(M)&&M[0]==="object"){let Q=f.extractInputType(M.slice(1));for(let G of M.slice(1))if(Array.isArray(G)&&G.length>=2){let[J,W]=G,H=this.parseBindingDirective(J,W,U,Q);if(H){E[H.prop]=H.valueExpr,E[H.event]=H.handler;continue}let q=this.parseEventHandler(J,W);if(q){let O=q.modifiers.length>0?this.wrapEventHandler(q.handler,q.modifiers):q.handler;E[`on${q.eventName}`]=O}else{let O=typeof J==="string"?J:this.generate(J,"value");if(O==="ref")X=typeof W==="string"?W:this.generate(W,"value");else if(O==="key")E.key=this.generateInComponent(W,"value");else E[O]=this.generateInComponent(W,"value")}}}else if(typeof M==="string")if(this.componentMembers&&this.componentMembers.has(M))_.push(`this.${M}.value`);else if(M.startsWith('"')||M.startsWith("'")||M.startsWith("`"))_.push(M);else _.push(`String(${M})`);else _.push(this.generateComponentTemplateElement(M));let Y=A.length>0?`${U}.${A.join(".")}`:U,F=this.buildPropsString(E,R),D=this.buildChildrenString(_),Z=`h('${Y}', ${F}${D})`;if(X)Z=`(${X} = ${Z})`;return Z}generateComponentInstance(U,A){let $={},E=[];for(let X of A)if(Array.isArray(X)&&X[0]==="object")for(let Y=1;Y<X.length;Y++){let[F,D]=X[Y];if(typeof F==="string")$[F]=this.generateInComponent(D,"value")}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")E.push(...Y.slice(1).map((F)=>this.generateComponentTemplateElement(F)));else E.push(this.generateComponentTemplateElement(Y))}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))E.push(X);else if(this.reactiveMembers&&this.reactiveMembers.has(X))E.push(`this.${X}.value`);else E.push(`String(${X})`);else E.push(this.generateComponentTemplateElement(X));let R=Object.entries($),_="{}";if(R.length>0||E.length>0){let X=R.map(([Y,F])=>`${Y}: ${F}`);if(E.length>0){let Y=E.length===1?E[0]:`[${E.join(", ")}]`;X.push(`children: ${Y}`)}_=X.length>0?`{ ${X.join(", ")} }`:"{}"}return`new ${U}(${_}).render()`}generateTemplateElement(U){if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String)return this.generate(U,"value");if(!Array.isArray(U))return`txt(${this.generate(U,"value")})`;let[A,...$]=U;if(A==="str")return this.generate(U,"value");if(A==="block"){if($.length===0)return"null";if($.length===1)return this.generateTemplateElement($[0]);return`frag(${$.map((R)=>this.generateTemplateElement(R)).join(", ")})`}if(A==="if"||A==="unless")return this.generateTemplateConditional(U);if(A==="for-in"||A==="for-of")return this.generateTemplateLoop(U);if(A==="."){let[E,R]=$;if(typeof E==="string"&&typeof R==="string"){if(this.isHtmlTag(E))return`h('${E}.${R}', 0)`;return`txt(${this.generate(U,"value")})`}if(Array.isArray(E)&&E[0]==="."){let{tag:_,classes:X}=this.collectTemplateClasses(U);if(this.isHtmlTag(_))return`h('${_}.${X.join(".")}', 0)`;return`txt(${this.generate(U,"value")})`}}if(typeof A==="string"&&!f.GENERATORS[A])return this.generateH(A,[],$);if(Array.isArray(A)&&A[0]==="."){if(A.length===3&&A[2]=="__cx__"){let _=A[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=$.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,[],F)}let{tag:E,classes:R}=this.collectTemplateClasses(A);return this.generateH(E,R,$)}if(Array.isArray(A)&&Array.isArray(A[0])&&A[0][0]==="."&&A[0][2]=="__cx__"){let E=A[0],R=A.slice(1),_=E[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=R.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,$,F)}return`txt(${this.generate(U,"value")})`}parseTemplateArgs(U,A){let $={},E=[],R=[],_=null;for(let X of U)if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")R.push(...Y.slice(1).map((F)=>this.generateTemplateElement(F)));else R.push(this.generateTemplateElement(Y))}else if(Array.isArray(X)&&X[0]==="...")E.push(this.generate(X[1],"value"));else if(Array.isArray(X)&&X[0]==="object"){let Y=f.extractInputType(X.slice(1));for(let F of X.slice(1))if(Array.isArray(F)&&F.length>=2){let[D,Z]=F,M=this.parseBindingDirective(D,Z,A,Y);if(M){$[M.prop]=M.valueExpr,$[M.event]=M.handler;continue}let Q=this.parseEventHandler(D,Z);if(Q){let G=Q.modifiers.length>0?this.wrapEventHandler(Q.handler,Q.modifiers):Q.handler;$[`on${Q.eventName}`]=G}else{let G=typeof D==="string"?D:this.generate(D,"value");if(G==="ref")_=typeof Z==="string"?Z:this.generate(Z,"value");else if(G==="key")$.key=this.generate(Z,"value");else if(G==="class")$.class=this.generate(Z,"value");else $[G]=this.generate(Z,"value")}}}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))R.push(X);else R.push(`String(${X})`);else R.push(this.generateTemplateElement(X));return{props:$,spreads:E,children:R,refVar:_}}buildPropsString(U,A,$=null){let E=Object.keys(U).length>0,R=A.length>0,_=$!==null;if(!E&&!R&&!_)return"0";let X=[];if(_)X.push(`class: ${$}`);for(let Y of A)X.push(`...${Y}`);for(let[Y,F]of Object.entries(U))X.push(`${Y}: ${F}`);return`{ ${X.join(", ")} }`}buildChildrenString(U){if(U.length===0)return"";if(U.length===1)return`, ${U[0]}`;return`, [${U.join(", ")}]`}generateH(U,A,$,E=null){this.usesTemplates=!0;let{props:R,spreads:_,children:X,refVar:Y}=this.parseTemplateArgs($,U),F=A.length>0?`${U}.${A.join(".")}`:U,D=E?`cx(${E})`:null,Z=this.buildPropsString(R,_,D),M=this.buildChildrenString(X),Q=`h('${F}', ${Z}${M})`;if(Y)Q=`(${Y} = ${Q})`;return Q}collectTemplateClasses(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let R=$[2];if(typeof R==="string"||R instanceof String)A.unshift(R.valueOf());$=$[1]}return{tag:typeof $==="string"?$:$ instanceof String?$.valueOf():"div",classes:A}}generateTemplateConditional(U){let[A,$,E,R]=U,_=this.generate($,"value"),X=A==="unless"?`!(${_})`:_,Y=E;if(Array.isArray(E)&&E.length===1&&Array.isArray(E[0])&&E[0][0]!=="block")Y=E[0];let F=this.generateTemplateElement(Y);if(R){let D=R;if(Array.isArray(R)&&R.length===1&&Array.isArray(R[0])&&R[0][0]!=="block")D=R[0];return`(${X} ? ${F} : ${this.generateTemplateElement(D)})`}return`(${X} ? ${F} : null)`}generateTemplateLoop(U){let[A]=U;if(A==="for-in")return this.generateTemplateForIn(U);if(A==="for-of")return this.generateTemplateForOf(U);return"null"}generateTemplateForIn(U){let[,A,$,,E,R]=U,_=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:this.generate(A[0],"value"):"__item",X=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:"__i":"__i",Y=this.generate($,"value"),F=this.generateTemplateElement(R),D=E?`if (!(${this.generate(E,"value")})) continue; `:"";return`frag(...${Y}.map((${_}, ${X}) => ${D?`{ ${D}return ${F}; }`:F}))`}generateTemplateForOf(U){let[,A,$,E,R,_]=U,X=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:"__k":"__k",Y=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:null:null,F=this.generate($,"value"),D=this.generateTemplateElement(_),Z=E?`Object.entries(${F})`:`Object.entries(${F})`,M=Y?`[${X}, ${Y}]`:`[${X}]`,Q=R?`if (!(${this.generate(R,"value")})) continue; `:"";return`frag(...${Z}.map((${M}) => ${Q?`{ ${Q}return ${D}; }`:D}))`}generateBreak(U,A,$,E){return"break"}generateBreakIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) break`}generateContinue(U,A,$,E){return"continue"}generateContinueIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) continue`}generateExistential(U,A,$,E){let[R]=A;return`(${this.generate(R,"value")} != null)`}generateTernary(U,A,$,E){let[R,_,X]=A;return`(${this.unwrap(this.generate(R,"value"))} ? ${this.generate(_,"value")} : ${this.generate(X,"value")})`}generateLoop(U,A,$,E){let[R]=A;return`while (true) ${this.generateLoopBody(R)}`}generateAwait(U,A,$,E){let[R]=A;return`await ${this.generate(R,"value")}`}generateYield(U,A,$,E){if(A.length===0)return"yield";let[R]=A;return`yield ${this.generate(R,"value")}`}generateYieldFrom(U,A,$,E){let[R]=A;return`yield* ${this.generate(R,"value")}`}generateIf(U,A,$,E){if(U==="unless"){let[Y,F]=A;if(Array.isArray(F)&&F.length===1){let Z=F[0];if(!Array.isArray(Z)||Z[0]!=="block")F=Z}if($==="value"){let Z=this.extractExpression(F);return`(!${this.generate(Y,"value")} ? ${Z} : undefined)`}let D=this.unwrap(this.generate(Y,"value"));if(D.includes(" ")||D.includes("===")||D.includes("!==")||D.includes(">")||D.includes("<")||D.includes("&&")||D.includes("||"))D=`(${D})`;return`if (!${D}) `+this.generate(F,"statement")}let[R,_,...X]=A;if($==="value")return this.generateIfAsExpression(R,_,X);else return this.generateIfAsStatement(R,_,X)}generateForIn(U,A,$,E){let[R,_,X,Y,F]=A;if($==="value"&&this.comprehensionDepth===0){let q=["for-in",R,_,X],O=Y?[Y]:[];return this.generate(["comprehension",F,[q],O],$)}let D=Array.isArray(R)?R:[R],Z=D.length===0,[M,Q]=Z?["_i",null]:D,G=M;if(Array.isArray(M)&&(M[0]==="array"||M[0]==="object"))G=this.generateDestructuringPattern(M);if(X&&X!==null){let q=this.generate(_,"value"),O=Q||"_i",N=this.generate(X,"value"),P=this.isNegativeStep(X),K=P&&(X[1]==="1"||X[1]===1||X[1]instanceof String&&X[1].valueOf()==="1"),w=!P&&(X==="1"||X===1||X instanceof String&&X.valueOf()==="1"),B;if(K)B=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O}--) `;else if(w)B=`for (let ${O} = 0; ${O} < ${q}.length; ${O}++) `;else if(P)B=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O} += ${N}) `;else B=`for (let ${O} = 0; ${O} < ${q}.length; ${O} += ${N}) `;if(Array.isArray(F)&&F[0]==="block"){let z=F.slice(1);this.indentLevel++;let S=[];if(!Z)S.push(`const ${G} = ${q}[${O}];`);if(Y){let I=this.generate(Y,"value");S.push(`if (${I}) {`),this.indentLevel++,S.push(...this.formatStatements(z)),this.indentLevel--,S.push(this.indent()+"}")}else S.push(...z.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,B+`{
|
|
73
|
-
${S.map((I)=>this.indent()+I).join(`
|
|
63
|
+
${this.indent()}}`}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let M=this.generate(R,"value");if(A)return`const ${typeof A==="string"?A:this.generate(A,"value")} = __effect(${M})`;return`__effect(${M})`}else X=`{ ${this.generate(R,"value")}; }`;let Y=`__effect(() => ${X})`;if(A)return`const ${typeof A==="string"?A:this.generate(A,"value")} = ${Y}`;return Y}generateBreak(U,_,E,$){return"break"}generateBreakIf(U,_,E,$){let[A]=_;return`if (${this.generate(A,"value")}) break`}generateContinue(U,_,E,$){return"continue"}generateContinueIf(U,_,E,$){let[A]=_;return`if (${this.generate(A,"value")}) continue`}generateExistential(U,_,E,$){let[A]=_;return`(${this.generate(A,"value")} != null)`}generateTernary(U,_,E,$){let[A,R,X]=_;return`(${this.unwrap(this.generate(A,"value"))} ? ${this.generate(R,"value")} : ${this.generate(X,"value")})`}generateLoop(U,_,E,$){let[A]=_;return`while (true) ${this.generateLoopBody(A)}`}generateAwait(U,_,E,$){let[A]=_;return`await ${this.generate(A,"value")}`}generateYield(U,_,E,$){if(_.length===0)return"yield";let[A]=_;return`yield ${this.generate(A,"value")}`}generateYieldFrom(U,_,E,$){let[A]=_;return`yield* ${this.generate(A,"value")}`}generateIf(U,_,E,$){if(U==="unless"){let[Y,M]=_;if(Array.isArray(M)&&M.length===1){let D=M[0];if(!Array.isArray(D)||D[0]!=="block")M=D}if(E==="value"){let D=this.extractExpression(M);return`(!${this.generate(Y,"value")} ? ${D} : undefined)`}let F=this.unwrap(this.generate(Y,"value"));if(F.includes(" ")||F.includes("===")||F.includes("!==")||F.includes(">")||F.includes("<")||F.includes("&&")||F.includes("||"))F=`(${F})`;return`if (!${F}) `+this.generate(M,"statement")}let[A,R,...X]=_;if(E==="value")return this.generateIfAsExpression(A,R,X);else return this.generateIfAsStatement(A,R,X)}generateForIn(U,_,E,$){let[A,R,X,Y,M]=_;if(E==="value"&&this.comprehensionDepth===0){let H=["for-in",A,R,X],W=Y?[Y]:[];return this.generate(["comprehension",M,[H],W],E)}let F=Array.isArray(A)?A:[A],D=F.length===0,[G,J]=D?["_i",null]:F,Q=G;if(Array.isArray(G)&&(G[0]==="array"||G[0]==="object"))Q=this.generateDestructuringPattern(G);if(X&&X!==null){let H=this.generate(R,"value"),W=J||"_i",q=this.generate(X,"value"),N=this.isNegativeStep(X),z=N&&(X[1]==="1"||X[1]===1||X[1]instanceof String&&X[1].valueOf()==="1"),S=!N&&(X==="1"||X===1||X instanceof String&&X.valueOf()==="1"),L;if(z)L=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W}--) `;else if(S)L=`for (let ${W} = 0; ${W} < ${H}.length; ${W}++) `;else if(N)L=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W} += ${q}) `;else L=`for (let ${W} = 0; ${W} < ${H}.length; ${W} += ${q}) `;if(Array.isArray(M)&&M[0]==="block"){let I=M.slice(1);this.indentLevel++;let T=[];if(!D)T.push(`const ${Q} = ${H}[${W}];`);if(Y){let j=this.generate(Y,"value");T.push(`if (${j}) {`),this.indentLevel++,T.push(...this.formatStatements(I)),this.indentLevel--,T.push(this.indent()+"}")}else T.push(...I.map((j)=>this.addSemicolon(j,this.generate(j,"statement"))));return this.indentLevel--,L+`{
|
|
64
|
+
${T.map((j)=>this.indent()+j).join(`
|
|
74
65
|
`)}
|
|
75
|
-
${this.indent()}}`}else if(
|
|
76
|
-
`,this.indentLevel++,
|
|
77
|
-
`,Y){let
|
|
78
|
-
`,this.indentLevel++,
|
|
66
|
+
${this.indent()}}`}else if(D)if(Y){let I=this.generate(Y,"value");return L+`{ if (${I}) ${this.generate(M,"statement")}; }`}else return L+`{ ${this.generate(M,"statement")}; }`;else if(Y){let I=this.generate(Y,"value");return L+`{ const ${Q} = ${H}[${W}]; if (${I}) ${this.generate(M,"statement")}; }`}else return L+`{ const ${Q} = ${H}[${W}]; ${this.generate(M,"statement")}; }`}if(J){let H=this.generate(R,"value"),W=`for (let ${J} = 0; ${J} < ${H}.length; ${J}++) `;if(Array.isArray(M)&&M[0]==="block"){let q=M.slice(1);if(W+=`{
|
|
67
|
+
`,this.indentLevel++,W+=this.indent()+`const ${Q} = ${H}[${J}];
|
|
68
|
+
`,Y){let N=this.unwrap(this.generate(Y,"value"));W+=this.indent()+`if (${N}) {
|
|
69
|
+
`,this.indentLevel++,W+=this.formatStatements(q).join(`
|
|
79
70
|
`)+`
|
|
80
|
-
`,this.indentLevel--,
|
|
81
|
-
`}else
|
|
71
|
+
`,this.indentLevel--,W+=this.indent()+`}
|
|
72
|
+
`}else W+=this.formatStatements(q).join(`
|
|
82
73
|
`)+`
|
|
83
|
-
`;this.indentLevel--,
|
|
84
|
-
${
|
|
74
|
+
`;this.indentLevel--,W+=this.indent()+"}"}else if(Y){let q=this.unwrap(this.generate(Y,"value"));W+=`{ const ${Q} = ${H}[${J}]; if (${q}) ${this.generate(M,"statement")}; }`}else W+=`{ const ${Q} = ${H}[${J}]; ${this.generate(M,"statement")}; }`;return W}let Z=Array.isArray(R)&&R[0];if(Z instanceof String)Z=Z.valueOf();if(Z===".."||Z==="..."){let H=Z==="...",[W,q]=R.slice(1),N=(z)=>{if(typeof z==="number")return!0;if(z instanceof String)return!z.valueOf().includes("(");if(typeof z==="string"&&!z.includes("("))return!0;if(Array.isArray(z)&&z[0]===".")return!0;return!1};if(N(W)&&N(q)){let z=this.generate(W,"value"),S=this.generate(q,"value"),L=H?"<":"<=",I=`${Q}++`;if(X&&X!==null){let j=this.generate(X,"value");I=`${Q} += ${j}`}let T=`for (let ${Q} = ${z}; ${Q} ${L} ${S}; ${I}) `;if(Y)T+=this.generateLoopBodyWithGuard(M,Y);else T+=this.generateLoopBody(M);return T}}let K=`for (const ${Q} of ${this.generate(R,"value")}) `;if(Y)K+=this.generateLoopBodyWithGuard(M,Y);else K+=this.generateLoopBody(M);return K}generateForOf(U,_,E,$){let[A,R,X,Y,M]=_,[F,D]=Array.isArray(A)?A:[A],G=this.generate(R,"value"),J=`for (const ${F} in ${G}) `;if(X&&!D&&!Y){if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=[`if (!Object.hasOwn(${G}, ${F})) continue;`,...Q.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))];this.indentLevel--,J+=`{
|
|
75
|
+
${Z.map((O)=>this.indent()+O).join(`
|
|
85
76
|
`)}
|
|
86
|
-
${this.indent()}}`}else
|
|
87
|
-
${
|
|
88
|
-
${
|
|
89
|
-
${
|
|
90
|
-
${
|
|
77
|
+
${this.indent()}}`}else J+=`{ if (!Object.hasOwn(${G}, ${F})) continue; ${this.generate(M,"statement")}; }`;return J}if(D)if(X&&Y)if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=this.indent(),O=this.generate(Y,"value");this.indentLevel++;let K=this.indent(),H=Q.map((W)=>K+this.addSemicolon(W,this.generate(W,"statement")));this.indentLevel-=2,J+=`{
|
|
78
|
+
${Z}if (!Object.hasOwn(${G}, ${F})) continue;
|
|
79
|
+
${Z}const ${D} = ${G}[${F}];
|
|
80
|
+
${Z}if (${O}) {
|
|
81
|
+
${H.join(`
|
|
91
82
|
`)}
|
|
92
|
-
${
|
|
93
|
-
${this.indent()}}`}else{let
|
|
94
|
-
${
|
|
83
|
+
${Z}}
|
|
84
|
+
${this.indent()}}`}else{let Q=this.generate(Y,"value");J+=`{ if (!Object.hasOwn(${G}, ${F})) continue; const ${D} = ${G}[${F}]; if (${Q}) ${this.generate(M,"statement")}; }`}else if(X)if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=[`if (!Object.hasOwn(${G}, ${F})) continue;`,`const ${D} = ${G}[${F}];`,...Q.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))];this.indentLevel--,J+=`{
|
|
85
|
+
${Z.map((O)=>this.indent()+O).join(`
|
|
95
86
|
`)}
|
|
96
|
-
${this.indent()}}`}else
|
|
97
|
-
${
|
|
98
|
-
${
|
|
99
|
-
${
|
|
87
|
+
${this.indent()}}`}else J+=`{ if (!Object.hasOwn(${G}, ${F})) continue; const ${D} = ${G}[${F}]; ${this.generate(M,"statement")}; }`;else if(Y)if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=this.indent(),O=this.generate(Y,"value");this.indentLevel++;let K=this.indent(),H=Q.map((W)=>K+this.addSemicolon(W,this.generate(W,"statement")));this.indentLevel-=2,J+=`{
|
|
88
|
+
${Z}const ${D} = ${G}[${F}];
|
|
89
|
+
${Z}if (${O}) {
|
|
90
|
+
${H.join(`
|
|
100
91
|
`)}
|
|
101
|
-
${
|
|
102
|
-
${this.indent()}}`}else
|
|
103
|
-
${
|
|
92
|
+
${Z}}
|
|
93
|
+
${this.indent()}}`}else J+=`{ const ${D} = ${G}[${F}]; if (${this.generate(Y,"value")}) ${this.generate(M,"statement")}; }`;else if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=[`const ${D} = ${G}[${F}];`,...Q.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))];this.indentLevel--,J+=`{
|
|
94
|
+
${Z.map((O)=>this.indent()+O).join(`
|
|
104
95
|
`)}
|
|
105
|
-
${this.indent()}}`}else
|
|
106
|
-
${
|
|
96
|
+
${this.indent()}}`}else J+=`{ const ${D} = ${G}[${F}]; ${this.generate(M,"statement")}; }`;else if(Y)J+=this.generateLoopBodyWithGuard(M,Y);else J+=this.generateLoopBody(M);return J}generateForFrom(U,_,E,$){let A=Array.isArray(_[0])?_[0]:[_[0]],[R]=A,X=_[1],Y=_[2],M=_[3],F=_[4],D=!1,G=[];if(Array.isArray(R)&&R[0]==="array"){let K=R.slice(1),H=K.findIndex((W)=>Array.isArray(W)&&W[0]==="..."||W==="...");if(H!==-1&&H<K.length-1){D=!0;let W=K.slice(H+1),q=W.length,N=K.slice(0,H),z=K[H],S=Array.isArray(z)&&z[0]==="..."?z[1]:"_rest",L=N.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", "),I=L?`${L}, ...${S}`:`...${S}`,T=W.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", ");G.push(`[${I}] = _item`),G.push(`[${T}] = ${S}.splice(-${q})`),this.helpers.add("slice"),((w)=>{w.slice(1).forEach((P)=>{if(P===","||P==="...")return;if(typeof P==="string")this.programVars.add(P);else if(Array.isArray(P)&&P[0]==="..."){if(typeof P[1]==="string")this.programVars.add(P[1])}})})(R)}}let J=this.generate(X,"value"),Q=Y?"await ":"",Z;if(D)Z="_item";else if(Array.isArray(R)&&(R[0]==="array"||R[0]==="object"))Z=this.generateDestructuringPattern(R);else Z=R;let O=`for ${Q}(const ${Z} of ${J}) `;if(D&&G.length>0){let K=this.unwrapBlock(F),H=this.withIndent(()=>[...G.map((W)=>this.indent()+W+";"),...this.formatStatements(K)]);O+=`{
|
|
97
|
+
${H.join(`
|
|
107
98
|
`)}
|
|
108
|
-
${this.indent()}}`}else if(
|
|
109
|
-
${this.withIndent(()=>this.formatStatements(
|
|
99
|
+
${this.indent()}}`}else if(M)O+=this.generateLoopBodyWithGuard(F,M);else O+=this.generateLoopBody(F);return O}generateWhile(U,_,E,$){let A=_[0],R=_.length===3?_[1]:null,X=_[_.length-1],M=`while (${this.unwrap(this.generate(A,"value"))}) `;if(R)M+=this.generateLoopBodyWithGuard(X,R);else M+=this.generateLoopBody(X);return M}generateUntil(U,_,E,$){let[A,R]=_,Y=`while (!(${this.unwrap(this.generate(A,"value"))})) `;return Y+=this.generateLoopBody(R),Y}generateRange(U,_,E,$){if(U==="..."){if(_.length===1){let[J]=_;return`...${this.generate(J,"value")}`}let[M,F]=_,D=this.generate(M,"value"),G=this.generate(F,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${D}, ${G})`}let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${X}, ${Y})`}generateNot(U,_,E,$){let[A]=_;if(typeof A==="string"||A instanceof String)return`!${this.generate(A,"value")}`;if(Array.isArray(A)){let X=A[0];if([".","?.","::","?::","[]","?[]","optindex","optcall"].includes(X))return`!${this.generate(A,"value")}`}let R=this.generate(A,"value");if(R.startsWith("("))return`!${R}`;return`(!${R})`}generateBitwiseNot(U,_,E,$){let[A]=_;return`(~${this.generate(A,"value")})`}generateIncDec(U,_,E,$){let[A,R]=_,X=this.generate(A,"value");if(R)return`(${X}${U})`;else return`(${U}${X})`}generateTypeof(U,_,E,$){let[A]=_;return`typeof ${this.generate(A,"value")}`}generateDelete(U,_,E,$){let[A]=_;return`(delete ${this.generate(A,"value")})`}generateInstanceof(U,_,E,$){let[A,R]=_,X=$[0]?.invert,Y=`(${this.generate(A,"value")} instanceof ${this.generate(R,"value")})`;return X?`(!${Y})`:Y}generateIn(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=$[0]?.invert;if(Array.isArray(R)&&R[0]==="object"){let D=this.generate(R,"value"),G=`(${X} in ${D})`;return Y?`(!${G})`:G}let M=this.generate(R,"value"),F=`(Array.isArray(${M}) || typeof ${M} === 'string' ? ${M}.includes(${X}) : (${X} in ${M}))`;return Y?`(!${F})`:F}generateOf(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value"),M=$[0]?.invert,F=`(${X} in ${Y})`;return M?`(!${F})`:F}generateRegexMatch(U,_,E,$){let[A,R]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let X=this.generate(R,"value"),M=X.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(A,"value")}${M}).match(${X}))`}generateNew(U,_,E,$){let[A]=_;if(Array.isArray(A)&&(A[0]==="."||A[0]==="?.")){let[R,X,Y]=A;if(Array.isArray(X)&&!X[0].startsWith)return`(${this.generate(["new",X],"value")}).${Y}`;return`new ${this.generate(X,"value")}.${Y}`}if(Array.isArray(A)){let[R,...X]=A,Y=this.generate(R,"value"),M=X.map((F)=>this.unwrap(this.generate(F,"value"))).join(", ");return`new ${Y}(${M})`}return`new ${this.generate(A,"value")}()`}generateLogicalAnd(U,_,E,$){let R=this.flattenBinaryChain($).slice(1);if(R.length===0)return"true";if(R.length===1)return this.generate(R[0],"value");return`(${R.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(U,_,E,$){let R=this.flattenBinaryChain($).slice(1);if(R.length===0)return"true";if(R.length===1)return this.generate(R[0],"value");return`(${R.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(U,_,E,$){let A=_.length>0&&_[_.length-1]===",",R=_.map((X)=>{if(X===",")return"";if(X==="...")return"";if(Array.isArray(X)&&X[0]==="...")return`...${this.generate(X[1],"value")}`;return this.generate(X,"value")}).join(", ");return A?`[${R},]`:`[${R}]`}generateObject(U,_,E,$){if(_.length===1&&Array.isArray(_[0])&&Array.isArray(_[0][1])&&_[0][1][0]==="comprehension"){let[R,X]=_[0],[,Y,M,F]=X;return this.generate(["object-comprehension",R,Y,M,F],E)}return`{${_.map((R)=>{if(Array.isArray(R)&&R[0]==="...")return`...${this.generate(R[1],"value")}`;let[X,Y,M]=R,F;if(Array.isArray(X)&&X[0]==="dynamicKey"){let G=X[1];F=`[${this.generate(G,"value")}]`}else F=this.generate(X,"value");let D=this.generate(Y,"value");if(M==="=")return`${F} = ${D}`;else if(M===":")return`${F}: ${D}`;else{if(F===D&&!Array.isArray(X))return F;return`${F}: ${D}`}}).join(", ")}}`}generateBlock(U,_,E,$){if(E==="statement")return`{
|
|
100
|
+
${this.withIndent(()=>this.formatStatements(_)).join(`
|
|
110
101
|
`)}
|
|
111
|
-
${this.indent()}}`;return this.formatStatements(
|
|
112
|
-
${this.indent()} ${
|
|
113
|
-
${this.indent()}}`;else return`if (${
|
|
114
|
-
${this.indent()} ${
|
|
115
|
-
${this.indent()}}`}}let X=`throw ${this.generate(
|
|
116
|
-
`;this.indentLevel++;let
|
|
117
|
-
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(
|
|
118
|
-
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(X
|
|
119
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
120
|
-
`;for(let
|
|
121
|
-
`,this.indentLevel++}else{let
|
|
122
|
-
`;else
|
|
123
|
-
`;if(this.indentLevel++,!
|
|
124
|
-
`}}else if(
|
|
125
|
-
`,this.indentLevel++,
|
|
126
|
-
`}else
|
|
127
|
-
`,this.indentLevel++}else if(
|
|
128
|
-
`,this.indentLevel++,
|
|
129
|
-
`;if(
|
|
130
|
-
`}else if(
|
|
131
|
-
`,this.indentLevel++}}for(let
|
|
132
|
-
`,this.indentLevel++;let
|
|
133
|
-
`;else if(Array.isArray(
|
|
134
|
-
`;else
|
|
135
|
-
`}}else if(
|
|
136
|
-
`;else if(Array.isArray(
|
|
137
|
-
`;else
|
|
138
|
-
`;for(let
|
|
139
|
-
`;for(let
|
|
140
|
-
`;return D+=this.indent()+`return result;
|
|
141
|
-
`,this.indentLevel--,this.comprehensionDepth--,D+=this.indent()+"})()",D}generateObjectComprehension(U,A,$,E){let[R,_,X,Y]=A,F=`(() => {
|
|
142
|
-
`;this.indentLevel++,F+=this.indent()+`const result = {};
|
|
143
|
-
`;for(let M of X){let[Q,G,J,W]=M;if(Q==="for-of"){let[H,q]=G,O=this.generate(J,"value");if(F+=this.indent()+`for (const ${H} in ${O}) {
|
|
144
|
-
`,this.indentLevel++,W)F+=this.indent()+`if (!Object.hasOwn(${O}, ${H})) continue;
|
|
145
|
-
`;if(q)F+=this.indent()+`const ${q} = ${O}[${H}];
|
|
146
|
-
`}}for(let M of Y)F+=this.indent()+`if (${this.generate(M,"value")}) {
|
|
147
|
-
`,this.indentLevel++;let D=this.generate(R,"value"),Z=this.generate(_,"value");F+=this.indent()+`result[${D}] = ${Z};
|
|
148
|
-
`;for(let M=0;M<Y.length;M++)this.indentLevel--,F+=this.indent()+`}
|
|
149
|
-
`;for(let M=0;M<X.length;M++)this.indentLevel--,F+=this.indent()+`}
|
|
102
|
+
${this.indent()}}`;return this.formatStatements(_,E)}generateTry(U,_,E,$){let A=E==="value",R="try ",X=_[0];if(A&&Array.isArray(X)&&X[0]==="block")R+=this.generateBlockWithReturns(X);else R+=this.generate(X,"statement");if(_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[Y,M]=_[1];if(R+=" catch",Y&&Array.isArray(Y)&&(Y[0]==="object"||Y[0]==="array")){R+=" (error)";let G=`(${this.generate(Y,"value")} = error)`;if(Array.isArray(M)&&M[0]==="block")M=["block",G,...M.slice(1)];else M=["block",G,M]}else if(Y)R+=` (${Y})`;if(A&&Array.isArray(M)&&M[0]==="block")R+=" "+this.generateBlockWithReturns(M);else R+=" "+this.generate(M,"statement")}else if(_.length===2)R+=" finally "+this.generate(_[1],"statement");if(_.length===3)R+=" finally "+this.generate(_[2],"statement");if(A)return`(${this.containsAwait(_[0])||_[1]&&this.containsAwait(_[1])?"async ":""}() => { ${R} })()`;return R}generateThrow(U,_,E,$){let[A]=_,R=null;if(Array.isArray(A)){let Y=A,M=null;if(A[0]==="new"&&Array.isArray(A[1])&&(A[1][0]==="if"||A[1][0]==="unless"))M="new",Y=A[1];else if(A[0]==="if"||A[0]==="unless")Y=A;if(Y[0]==="if"||Y[0]==="unless"){let[F,D,G]=Y,J=F==="unless",Q=G;if(Array.isArray(G)&&G.length===1)Q=G[0];if(M==="new")A=["new",Q];else A=Q;let Z=this.generate(D,"value"),O=`throw ${this.generate(A,"value")}`;if(J)return`if (!(${Z})) {
|
|
103
|
+
${this.indent()} ${O};
|
|
104
|
+
${this.indent()}}`;else return`if (${Z}) {
|
|
105
|
+
${this.indent()} ${O};
|
|
106
|
+
${this.indent()}}`}}let X=`throw ${this.generate(A,"value")}`;if(E==="value")return`(() => { ${X}; })()`;return X}generateSwitch(U,_,E,$){let[A,R,X]=_;if(A===null)return this.generateSwitchAsIfChain(R,X,E);let Y=`switch (${this.generate(A,"value")}) {
|
|
107
|
+
`;this.indentLevel++;let M=(F)=>F instanceof String?F.valueOf():F;for(let F of R){let[,D,G]=F,J=M(Array.isArray(D)&&D.length>0?D[0]:null),Z=Array.isArray(D)&&D.length>0&&typeof J==="string"&&!J.match(/^[-+*\/%<>=!&|^~]$|^(typeof|delete|new|not|await|yield)$/)?D:[D];for(let O of Z){let K=M(O),H;if(Array.isArray(K))H=this.generate(K,"value");else if(typeof K==="string"&&(K.startsWith('"')||K.startsWith("'")))H=`'${K.slice(1,-1)}'`;else H=this.generate(K,"value");Y+=this.indent()+`case ${H}:
|
|
108
|
+
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(G,E),this.indentLevel--}if(X)Y+=this.indent()+`default:
|
|
109
|
+
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(X,E),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",E==="value")return`(${R.some((G)=>this.containsAwait(G[2]))||X&&this.containsAwait(X)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(U,_,E,$){throw Error("when clause should be handled by switch")}generateComprehension(U,_,E,$){let[A,R,X]=_;if(E==="statement")return this.generateComprehensionAsLoop(A,R,X);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(A,R,X,this.comprehensionTarget);let F=`(${this.containsAwait(A)?"async ":""}() => {
|
|
110
|
+
`;this.indentLevel++,this.comprehensionDepth++,F+=this.indent()+`const result = [];
|
|
111
|
+
`;for(let G of R){let[J,Q,Z,O]=G;if(J==="for-in"){let K=O,H=Array.isArray(Q)?Q:[Q],W=H.length===0,[q,N]=W?["_i",null]:H,z=q;if(Array.isArray(q)&&(q[0]==="array"||q[0]==="object"))z=this.generateDestructuringPattern(q);if(K&&K!==null){let S=Array.isArray(Z)&&Z[0];if(S instanceof String)S=S.valueOf();if(S===".."||S==="..."){let I=S==="...",[T,j]=Z.slice(1),w=this.generate(T,"value"),P=this.generate(j,"value"),V=this.generate(K,"value"),u=I?"<":"<=";F+=this.indent()+`for (let ${z} = ${w}; ${z} ${u} ${P}; ${z} += ${V}) {
|
|
112
|
+
`,this.indentLevel++}else{let I=this.generate(Z,"value"),T=N||"_i",j=this.generate(K,"value");if(this.isNegativeStep(K))F+=this.indent()+`for (let ${T} = ${I}.length - 1; ${T} >= 0; ${T} += ${j}) {
|
|
113
|
+
`;else F+=this.indent()+`for (let ${T} = 0; ${T} < ${I}.length; ${T} += ${j}) {
|
|
114
|
+
`;if(this.indentLevel++,!W)F+=this.indent()+`const ${z} = ${I}[${T}];
|
|
115
|
+
`}}else if(N){let S=this.generate(Z,"value");F+=this.indent()+`for (let ${N} = 0; ${N} < ${S}.length; ${N}++) {
|
|
116
|
+
`,this.indentLevel++,F+=this.indent()+`const ${z} = ${S}[${N}];
|
|
117
|
+
`}else F+=this.indent()+`for (const ${z} of ${this.generate(Z,"value")}) {
|
|
118
|
+
`,this.indentLevel++}else if(J==="for-of"){let K=O,H=Array.isArray(Q)?Q:[Q],[W,q]=H,N=W;if(Array.isArray(W)&&(W[0]==="array"||W[0]==="object"))N=this.generateDestructuringPattern(W);let z=this.generate(Z,"value");if(F+=this.indent()+`for (const ${N} in ${z}) {
|
|
119
|
+
`,this.indentLevel++,K)F+=this.indent()+`if (!Object.hasOwn(${z}, ${N})) continue;
|
|
120
|
+
`;if(q)F+=this.indent()+`const ${q} = ${z}[${N}];
|
|
121
|
+
`}else if(J==="for-from"){let K=G[3],H=Array.isArray(Q)?Q:[Q],[W]=H,q=W;if(Array.isArray(W)&&(W[0]==="array"||W[0]==="object"))q=this.generateDestructuringPattern(W);let N=K?"await ":"";F+=this.indent()+`for ${N}(const ${q} of ${this.generate(Z,"value")}) {
|
|
122
|
+
`,this.indentLevel++}}for(let G of X)F+=this.indent()+`if (${this.generate(G,"value")}) {
|
|
123
|
+
`,this.indentLevel++;let D=(G)=>{if(typeof G==="string"&&(G==="break"||G==="continue"))return!0;if(!Array.isArray(G))return!1;if(G[0]==="break"||G[0]==="continue"||G[0]==="break-if"||G[0]==="continue-if"||G[0]==="return"||G[0]==="throw")return!0;if(G[0]==="if"||G[0]==="unless")return G.slice(1).some((J)=>D(J));return G.some((J)=>D(J))};if(Array.isArray(A)&&A[0]==="block"){let G=A.slice(1);for(let J=0;J<G.length;J++){let Q=G[J],Z=J===G.length-1,O=D(Q);if(!Z||O)F+=this.indent()+this.generate(Q,"statement")+`;
|
|
124
|
+
`;else if(Array.isArray(Q)&&["for-in","for-of","for-from","while","until","loop"].includes(Q[0]))F+=this.indent()+this.generate(Q,"statement")+`;
|
|
125
|
+
`;else F+=this.indent()+`result.push(${this.generate(Q,"value")});
|
|
126
|
+
`}}else if(D(A))F+=this.indent()+this.generate(A,"statement")+`;
|
|
127
|
+
`;else if(Array.isArray(A)&&["for-in","for-of","for-from","while","until","loop"].includes(A[0]))F+=this.indent()+this.generate(A,"statement")+`;
|
|
128
|
+
`;else F+=this.indent()+`result.push(${this.generate(A,"value")});
|
|
129
|
+
`;for(let G=0;G<X.length;G++)this.indentLevel--,F+=this.indent()+`}
|
|
130
|
+
`;for(let G=0;G<R.length;G++)this.indentLevel--,F+=this.indent()+`}
|
|
150
131
|
`;return F+=this.indent()+`return result;
|
|
151
|
-
`,this.indentLevel--,F+=this.indent()+"})()",F}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
`}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
`;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
`}if(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
`;else
|
|
171
|
-
`}
|
|
172
|
-
`;
|
|
173
|
-
`;return}if(
|
|
174
|
-
`;
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
132
|
+
`,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension(U,_,E,$){let[A,R,X,Y]=_,M=`(() => {
|
|
133
|
+
`;this.indentLevel++,M+=this.indent()+`const result = {};
|
|
134
|
+
`;for(let G of X){let[J,Q,Z,O]=G;if(J==="for-of"){let[K,H]=Q,W=this.generate(Z,"value");if(M+=this.indent()+`for (const ${K} in ${W}) {
|
|
135
|
+
`,this.indentLevel++,O)M+=this.indent()+`if (!Object.hasOwn(${W}, ${K})) continue;
|
|
136
|
+
`;if(H)M+=this.indent()+`const ${H} = ${W}[${K}];
|
|
137
|
+
`}}for(let G of Y)M+=this.indent()+`if (${this.generate(G,"value")}) {
|
|
138
|
+
`,this.indentLevel++;let F=this.generate(A,"value"),D=this.generate(R,"value");M+=this.indent()+`result[${F}] = ${D};
|
|
139
|
+
`;for(let G=0;G<Y.length;G++)this.indentLevel--,M+=this.indent()+`}
|
|
140
|
+
`;for(let G=0;G<X.length;G++)this.indentLevel--,M+=this.indent()+`}
|
|
141
|
+
`;return M+=this.indent()+`return result;
|
|
142
|
+
`,this.indentLevel--,M+=this.indent()+"})()",M}generateClass(U,_,E,$){let[A,R,...X]=_,Y=A?`class ${A}`:"class";if(R)Y+=` extends ${this.generate(R,"value")}`;if(Y+=` {
|
|
143
|
+
`,X.length>0&&Array.isArray(X[0])){let M=X[0];if(M[0]==="block"){let F=M.slice(1),D=F.length>0&&Array.isArray(F[0])&&F[0][0]==="object";if(D&&F.length===1){let J=F[0].slice(1);this.indentLevel++;let Q=[];for(let[Z,O]of J){let K=this.isStaticMember(Z),H=this.isComputedMember(Z),W=this.extractMemberName(Z);if(this.isBoundMethod(O)&&!K&&!H&&W!=="constructor")Q.push(W)}for(let[Z,O]of J){let K=this.isStaticMember(Z),H=this.isComputedMember(Z),W=this.extractMemberName(Z);if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[q,N,z]=O,S=this.containsAwait(z),L=this.containsYield(z),I=N,T=[];if(W==="constructor"){I=N.map((u)=>{if(Array.isArray(u)&&u[0]==="."&&u[1]==="this"){let C=u[2];return T.push(`this.${C} = ${C}`),C}return u});for(let u of Q)T.unshift(`this.${u} = this.${u}.bind(this)`)}let j=this.generateParamList(I),w=S?"async ":"",P=L?"*":"";if(K)Y+=this.indent()+`static ${w}${P}${W}(${j}) `;else Y+=this.indent()+`${w}${P}${W}(${j}) `;let V=W==="constructor";if(!H)this.currentMethodName=W;Y+=this.generateMethodBody(z,T,V,I),this.currentMethodName=null,Y+=`
|
|
144
|
+
`}else if(K){let q=this.generate(O,"value");Y+=this.indent()+`static ${W} = ${q};
|
|
145
|
+
`}else{let q=this.generate(O,"value");Y+=this.indent()+`${W} = ${q};
|
|
146
|
+
`}}this.indentLevel--}else if(D){let J=F[0].slice(1),Q=F.slice(1);this.indentLevel++;for(let[Z,O]of J){let K=this.isStaticMember(Z),H=this.isComputedMember(Z),W=this.extractMemberName(Z);if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[q,N,z]=O,S=this.containsAwait(z),L=this.containsYield(z),I=this.generateParamList(N),T=S?"async ":"",j=L?"*":"";if(K)Y+=this.indent()+`static ${T}${j}${W}(${I}) `;else Y+=this.indent()+`${T}${j}${W}(${I}) `;this.currentMethodName=W,Y+=this.generateMethodBody(z,[],W==="constructor",N),this.currentMethodName=null,Y+=`
|
|
147
|
+
`}else if(K){let q=this.generate(O,"value");Y+=this.indent()+`static ${W} = ${q};
|
|
148
|
+
`}else{let q=this.generate(O,"value");Y+=this.indent()+`${W} = ${q};
|
|
149
|
+
`}}for(let Z of Q)if(Array.isArray(Z)&&Z[0]==="class"){let[,O,K,...H]=Z;if(Array.isArray(O)&&O[0]==="."&&O[1]==="this"){let W=O[2];Y+=this.indent()+`static ${W} = `;let q=this.generate(["class",null,K,...H],"value");Y+=q+`;
|
|
150
|
+
`}}else Y+=this.indent()+this.generate(Z,"statement")+`;
|
|
151
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let G of F)if(Array.isArray(G)&&G[0]==="="&&Array.isArray(G[1])&&G[1][0]==="."&&G[1][1]==="this"){let J=G[1][2],Q=this.generate(G[2],"value");Y+=this.indent()+`static ${J} = ${Q};
|
|
152
|
+
`}else Y+=this.indent()+this.generate(G,"statement")+`;
|
|
153
|
+
`;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper(U,_,E,$){if(_.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let A=_.map((R)=>this.unwrap(this.generate(R,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${A})`;return`super(${A})`}generateSoakCall(U,_,E,$){let[A,...R]=_,X=this.generate(A,"value"),Y=R.map((M)=>this.generate(M,"value")).join(", ");return`(typeof ${X} === 'function' ? ${X}(${Y}) : undefined)`}generateImport(U,_,E,$){if(_.length===1){let[Y]=_;return`import(${this.generate(Y,"value")})`}let[A,R]=_,X=this.addJsExtensionAndAssertions(R);if(typeof A==="string")return`import ${A} from ${X}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${X}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let M=A[0],F=A[1];if(F[0]==="*"&&F.length===2)return`import ${M}, * as ${F[1]} from ${X}`;let D=(Array.isArray(F)?F:[F]).map((G)=>{if(Array.isArray(G)&&G.length===2)return`${G[0]} as ${G[1]}`;return G}).join(", ");return`import ${M}, { ${D} } from ${X}`}return`import { ${A.map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ")} } from ${X}`}return`import ${this.generate(A,"value")} from ${X}`}generateExport(U,_,E,$){let[A]=_;if(Array.isArray(A)&&A.every((R)=>typeof R==="string"))return`export { ${A.join(", ")} }`;if(Array.isArray(A)&&A[0]==="="){let[,R,X]=A;return`export const ${R} = ${this.generate(X,"value")}`}return`export ${this.generate(A,"statement")}`}generateExportDefault(U,_,E,$){let[A]=_;if(Array.isArray(A)&&A[0]==="="){let[,R,X]=A;return`${`const ${R} = ${this.generate(X,"value")}`};
|
|
154
|
+
export default ${R}`}return`export default ${this.generate(A,"statement")}`}generateExportAll(U,_,E,$){let[A]=_;return`export * from ${this.addJsExtensionAndAssertions(A)}`}generateExportFrom(U,_,E,$){let[A,R]=_,X=this.addJsExtensionAndAssertions(R);if(Array.isArray(A))return`export { ${A.map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ")} } from ${X}`;return`export ${A} from ${X}`}generateDoIIFE(U,_,E,$){let[A]=_;return`(${this.generate(A,"statement")})()`}generateRegex(U,_,E,$){if(_.length===0)return U;let[A]=_;return this.generate(A,"value")}generateTaggedTemplate(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");if(Y.startsWith("`"))return`${X}${Y}`;if(Y.startsWith('"')||Y.startsWith("'")){let M=Y.slice(1,-1);return`${X}\`${M}\``}return`${X}\`${Y}\``}generateString(U,_,E,$){let A="`";for(let R=0;R<_.length;R++){let X=_[R];if(X instanceof String)A+=this.extractStringContent(X);else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str interpolation:",X);A+=X.slice(1,-1)}else A+=X;else if(Array.isArray(X))if(X.length===1&&typeof X[0]==="string"&&!Array.isArray(X[0])){let Y=X[0];if(/^[\d"']/.test(Y))A+="${"+this.generate(Y,"value")+"}";else A+="${"+Y+"}"}else{let Y=X;if(X.length===1&&Array.isArray(X[0]))Y=X[0];A+="${"+this.generate(Y,"value")+"}"}}return A+="`",A}findPostfixConditional(U){if(!Array.isArray(U))return null;let _=U[0];if((_==="unless"||_==="if")&&U.length===3)return{type:_,condition:U[1],value:U[2]};if(_==="+"||_==="-"||_==="*"||_==="/")for(let E=1;E<U.length;E++){let $=this.findPostfixConditional(U[E]);if($)return $.parentOp=_,$.operandIndex=E,$.otherOperands=U.slice(1).filter((A,R)=>R!==E-1),$}return null}generateDestructuringPattern(U){return this.formatParam(U)}generateParamList(U){let _=U.findIndex(($)=>Array.isArray($)&&$[0]==="expansion");if(_!==-1){let $=U.slice(0,_),A=U.slice(_+1),R=$.map((Y)=>this.formatParam(Y)).join(", "),X=R?`${R}, ..._rest`:"..._rest";return this.expansionAfterParams=A,X}let E=U.findIndex(($)=>Array.isArray($)&&$[0]==="rest");if(E!==-1&&E<U.length-1){let $=U.slice(0,E),A=U[E],R=U.slice(E+1),X=$.map((M)=>this.formatParam(M)),Y=X.length>0?`${X.join(", ")}, ...${A[1]}`:`...${A[1]}`;return this.restMiddleParam={restName:A[1],afterParams:R,beforeCount:$.length},Y}return this.expansionAfterParams=null,this.restMiddleParam=null,U.map(($)=>this.formatParam($)).join(", ")}formatParam(U){if(typeof U==="string")return U;if(Array.isArray(U)&&U[0]==="rest")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default"){let[,_,E]=U;return`${_} = ${this.generate(E,"value")}`}if(Array.isArray(U)&&U[0]==="."&&U[1]==="this")return U[2];if(Array.isArray(U)&&U[0]==="array")return`[${U.slice(1).map((E)=>{if(E===",")return"";if(E==="...")return"";if(Array.isArray(E)&&E[0]==="...")return`...${E[1]}`;if(Array.isArray(E)&&E[0]==="="&&typeof E[1]==="string"){let[,$,A]=E;return`${$} = ${this.generate(A,"value")}`}if(typeof E==="string")return E;return this.formatParam(E)}).join(", ")}]`;if(Array.isArray(U)&&U[0]==="object")return`{${U.slice(1).map((E)=>{if(Array.isArray(E)&&E[0]==="...")return`...${E[1]}`;if(Array.isArray(E)&&E[0]==="default"){let[,R,X]=E,Y=this.generate(X,"value");return`${R} = ${Y}`}let[$,A]=E;if($===A)return $;return`${$}: ${A}`}).join(", ")}}`;return JSON.stringify(U)}generateBodyWithReturns(U,_=[],E={}){let{sideEffectOnly:$=!1,autoAssignments:A=[],isConstructor:R=!1,hasExpansionParams:X=!1}=E,Y=this.sideEffectOnly;this.sideEffectOnly=$;let M=new Set,F=(Z)=>{if(typeof Z==="string")M.add(Z);else if(Array.isArray(Z)){if(Z[0]==="rest"||Z[0]==="..."){if(typeof Z[1]==="string")M.add(Z[1])}else if(Z[0]==="default"){if(typeof Z[1]==="string")M.add(Z[1])}else if(Z[0]==="array"||Z[0]==="object")this.collectVarsFromArray(Z,M)}};if(Array.isArray(_))_.forEach(F);let D=this.collectFunctionVariables(U),G=new Set([...D].filter((Z)=>!this.programVars.has(Z)&&!this.reactiveVars?.has(Z)&&!M.has(Z))),J=["return","throw","break","continue"],Q=["for-in","for-of","for-from","while","until","loop"];if(Array.isArray(U)&&U[0]==="block"){let Z=this.unwrapBlock(U);if(X&&this.expansionAfterParams&&this.expansionAfterParams.length>0)Z=[...this.expansionAfterParams.map((W,q)=>{return`const ${typeof W==="string"?W:JSON.stringify(W)} = _rest[_rest.length - ${this.expansionAfterParams.length-q}]`}),...Z],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:H,afterParams:W}=this.restMiddleParam,q=W.length,N=[];if(W.forEach((z,S)=>{let L=typeof z==="string"?z:Array.isArray(z)&&z[0]==="default"?z[1]:JSON.stringify(z),I=q-S;N.push(`const ${L} = ${H}[${H}.length - ${I}]`)}),q>0)N.push(`${H} = ${H}.slice(0, -${q})`);Z=[...N,...Z],this.restMiddleParam=null}this.indentLevel++;let O=`{
|
|
155
|
+
`;if(G.size>0){let H=Array.from(G).sort().join(", ");O+=this.indent()+`let ${H};
|
|
156
|
+
`}if(A.length>0&&Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="super"){if(Z.length===1&&!R)O+=this.indent()+"return "+this.generate(Z[0],"value")+`;
|
|
157
|
+
`;else O+=this.indent()+this.generate(Z[0],"statement")+`;
|
|
158
|
+
`;for(let W of A)O+=this.indent()+W+`;
|
|
159
|
+
`;Z.slice(1).forEach((W,q)=>{let N=q===Z.length-2,z=Array.isArray(W)?W[0]:null;if(!N&&z==="comprehension"){let[,T,j,w]=W;O+=this.indent()+this.generateComprehensionAsLoop(T,j,w)+`
|
|
160
|
+
`;return}if(!R&&N&&(z==="if"||z==="unless")){let[T,j,...w]=W.slice(1),P=(V)=>{return Array.isArray(V)&&V[0]==="block"&&V.length>2};if(P(j)||w.some(P)){O+=this.generateIfElseWithEarlyReturns(W);return}}let S=!R&&!$&&N&&!J.includes(z)&&!Q.includes(z)&&!this.hasExplicitControlFlow(W),L=S?"value":"statement",I=this.generate(W,L);if(S)O+=this.indent()+"return "+I+`;
|
|
161
|
+
`;else O+=this.indent()+this.addSemicolon(W,I)+`
|
|
162
|
+
`})}else{for(let H of A)O+=this.indent()+H+`;
|
|
163
|
+
`;Z.forEach((H,W)=>{let q=W===Z.length-1,N=Array.isArray(H)?H[0]:null;if(!q&&N==="comprehension"){let[,I,T,j]=H;O+=this.indent()+this.generateComprehensionAsLoop(I,T,j)+`
|
|
164
|
+
`;return}if(!R&&!$&&q&&(N==="if"||N==="unless")){let[I,T,...j]=H.slice(1),w=(P)=>{return Array.isArray(P)&&P[0]==="block"&&P.length>2};if(w(T)||j.some(w)){O+=this.generateIfElseWithEarlyReturns(H);return}}if(!R&&!$&&q&&N==="="){let[I,T]=H.slice(1);if(typeof I==="string"&&Array.isArray(T)){let j=T[0];if(j==="comprehension"||j==="for-in"){this.comprehensionTarget=I,O+=this.generate(T,"value"),this.comprehensionTarget=null,O+=this.indent()+`return ${I};
|
|
165
|
+
`;return}}}let z=!R&&!$&&q&&!J.includes(N)&&!Q.includes(N)&&!this.hasExplicitControlFlow(H),S=z?"value":"statement",L=this.generate(H,S);if(z)O+=this.indent()+"return "+L+`;
|
|
166
|
+
`;else O+=this.indent()+this.addSemicolon(H,L)+`
|
|
167
|
+
`})}if($&&Z.length>0){let H=Z[Z.length-1],W=Array.isArray(H)?H[0]:null;if(!J.includes(W))O+=this.indent()+`return;
|
|
168
|
+
`}return this.indentLevel--,O+=this.indent()+"}",this.sideEffectOnly=Y,O}if(R||this.hasExplicitControlFlow(U))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(Array.isArray(U)&&(J.includes(U[0])||Q.includes(U[0])))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(this.sideEffectOnly=Y,$)return`{ ${this.generate(U,"statement")}; return; }`;return`{ return ${this.generate(U,"value")}; }`}generateFunctionBody(U,_=[],E=!1){let $=this.expansionAfterParams?.length>0;return this.generateBodyWithReturns(U,_,{sideEffectOnly:E,hasExpansionParams:$})}generateBlockWithReturns(U){if(!Array.isArray(U)||U[0]!=="block")return this.generate(U,"statement");let _=this.unwrapBlock(U);return`{
|
|
169
|
+
${this.withIndent(()=>{return _.map(($,A)=>{let R=A===_.length-1,X=Array.isArray($)?$[0]:null,M=R&&!["return","throw","break","continue"].includes(X),F=M?"value":"statement",D=this.generate($,F);if(M)return this.indent()+"return "+D+";";return this.indent()+D+";"})}).join(`
|
|
179
170
|
`)}
|
|
180
|
-
${this.indent()}}`}extractExpression(U){let
|
|
181
|
-
${this.withIndent(()=>{return
|
|
171
|
+
${this.indent()}}`}extractExpression(U){let _=this.unwrapBlock(U);if(_.length>0)return this.generate(_[_.length-1],"value");return"undefined"}generateMethodBody(U,_=[],E=!1,$=[]){return this.generateBodyWithReturns(U,$,{autoAssignments:_,isConstructor:E})}generateLoopBody(U){if(!Array.isArray(U)){if(Array.isArray(U)&&U[0]==="comprehension"){let[,_,E,$]=U;return`{ ${this.generateComprehensionAsLoop(_,E,$)} }`}return`{ ${this.generate(U,"statement")}; }`}if(U[0]==="block"||Array.isArray(U[0])){let _=U[0]==="block"?U.slice(1):U;return`{
|
|
172
|
+
${this.withIndent(()=>{return _.map(($)=>{if(Array.isArray($)&&$[0]==="comprehension"){let[,A,R,X]=$;return this.indent()+this.generateComprehensionAsLoop(A,R,X)}return this.indent()+this.addSemicolon($,this.generate($,"statement"))})}).join(`
|
|
182
173
|
`)}
|
|
183
|
-
${this.indent()}}`}return`{ ${this.generate(U,"statement")}; }`}generateLoopBodyWithGuard(U,
|
|
184
|
-
`,X=this.withIndent(()=>{this.indentLevel++;let
|
|
185
|
-
${
|
|
174
|
+
${this.indent()}}`}return`{ ${this.generate(U,"statement")}; }`}generateLoopBodyWithGuard(U,_){let E=this.unwrap(this.generate(_,"value"));if(!Array.isArray(U))return`{ if (${E}) ${this.generate(U,"statement")}; }`;if(U[0]==="block"||Array.isArray(U[0])){let $=U[0]==="block"?U.slice(1):U,A=this.withIndent(()=>this.indent()),R=`if (${E}) {
|
|
175
|
+
`,X=this.withIndent(()=>{this.indentLevel++;let M=this.formatStatements($);return this.indentLevel--,M}),Y=this.withIndent(()=>this.indent()+"}");return`{
|
|
176
|
+
${A}${R}${X.join(`
|
|
186
177
|
`)}
|
|
187
178
|
${Y}
|
|
188
|
-
${this.indent()}}`}return`{ if (${this.generate(
|
|
189
|
-
`)}if(U.initialChunk&&
|
|
190
|
-
`))
|
|
191
|
-
`))
|
|
192
|
-
`)
|
|
193
|
-
`;else
|
|
194
|
-
`}return
|
|
195
|
-
`;let
|
|
196
|
-
`}else{let
|
|
197
|
-
`;else
|
|
198
|
-
`;if(this.indentLevel++,!
|
|
199
|
-
`}}else{let
|
|
200
|
-
`}if(this.indentLevel
|
|
201
|
-
`,this.indentLevel++;let
|
|
202
|
-
|
|
203
|
-
`;return this.indentLevel--,
|
|
204
|
-
`,
|
|
205
|
-
`}generateComprehensionAsLoop(U,
|
|
206
|
-
`,this.indentLevel++,!
|
|
207
|
-
`}if(
|
|
208
|
-
`,this.indentLevel
|
|
209
|
-
`,this.indentLevel
|
|
210
|
-
`,this.indentLevel
|
|
211
|
-
`,this.indentLevel
|
|
212
|
-
`,this.indentLevel
|
|
213
|
-
`,this.indentLevel
|
|
214
|
-
`+this.indent()+"}";return
|
|
215
|
-
`,this.indentLevel
|
|
216
|
-
`}else{if(
|
|
217
|
-
`,this.indentLevel
|
|
218
|
-
`,this.indentLevel
|
|
219
|
-
`,this.indentLevel
|
|
220
|
-
`,this.indentLevel
|
|
221
|
-
`,this.indentLevel
|
|
222
|
-
`,this.indentLevel
|
|
223
|
-
`,this.indentLevel
|
|
224
|
-
`,this.indentLevel
|
|
225
|
-
`,this.indentLevel
|
|
226
|
-
`,this.indentLevel
|
|
227
|
-
`,this.indentLevel
|
|
228
|
-
`,this.indentLevel
|
|
229
|
-
`,this.indentLevel++,
|
|
230
|
-
|
|
231
|
-
`;else if(
|
|
232
|
-
`,this.indentLevel
|
|
233
|
-
|
|
234
|
-
`,this.indentLevel
|
|
235
|
-
`,this.indentLevel
|
|
236
|
-
`,this.indentLevel
|
|
237
|
-
`;else if(
|
|
238
|
-
`,this.indentLevel
|
|
239
|
-
|
|
240
|
-
`,this.indentLevel
|
|
241
|
-
`;else if(
|
|
242
|
-
|
|
243
|
-
`,this.indentLevel
|
|
244
|
-
`,this.indentLevel
|
|
245
|
-
`;else if(
|
|
246
|
-
|
|
247
|
-
`;else if(
|
|
248
|
-
`,this.indentLevel
|
|
249
|
-
`,this.indentLevel
|
|
250
|
-
`;else
|
|
251
|
-
`;return this.indentLevel
|
|
252
|
-
`,
|
|
253
|
-
`,
|
|
254
|
-
`,
|
|
255
|
-
`,
|
|
256
|
-
`}else if(
|
|
257
|
-
`}else
|
|
258
|
-
`}else{let
|
|
259
|
-
`}else{if(Array.isArray(U)&&U[0]==="block"&&U.length>1){let
|
|
260
|
-
`}else{let
|
|
261
|
-
`}
|
|
262
|
-
`}return
|
|
263
|
-
`;else
|
|
264
|
-
`;if(this.indentLevel
|
|
265
|
-
`}else{let
|
|
266
|
-
`}this.indentLevel
|
|
267
|
-
`,this.indentLevel
|
|
268
|
-
`}else{let
|
|
269
|
-
`}this.indentLevel
|
|
179
|
+
${this.indent()}}`}return`{ if (${this.generate(_,"value")}) ${this.generate(U,"statement")}; }`}addJsExtensionAndAssertions(U){if(U instanceof String)U=U.valueOf();if(typeof U!=="string")return U;let E=U.startsWith('"')||U.startsWith("'")?U.slice(1,-1):U,$=E.startsWith("./")||E.startsWith("../"),A=E,R="";if($){let Y=E.lastIndexOf("/"),M=Y>=0?E.substring(Y+1):E;if(M.includes(".")){if(M.endsWith(".json"))R=" with { type: 'json' }"}else A=E+".js"}return`'${A}'`+R}shouldAwaitCall(U){if(U instanceof String&&U.await!==void 0)return U.await===!0;return!1}containsAwait(U){if(!U)return!1;if(U instanceof String&&U.await===!0)return!0;if(typeof U!=="object")return!1;if(Array.isArray(U)&&U[0]==="await")return!0;if(Array.isArray(U)&&U[0]==="for-from"&&U[3]===!0)return!0;if(Array.isArray(U)&&(U[0]==="def"||U[0]==="->"||U[0]==="=>"||U[0]==="class"))return!1;if(Array.isArray(U))return U.some((_)=>this.containsAwait(_));return!1}containsYield(U){if(!U)return!1;if(typeof U!=="object")return!1;if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="yield-from"))return!0;if(Array.isArray(U)&&(U[0]==="def"||U[0]==="->"||U[0]==="=>"||U[0]==="class"))return!1;if(Array.isArray(U))return U.some((_)=>this.containsYield(_));return!1}extractStringContent(U){let _=U.valueOf().slice(1,-1);if(U.indent){let E=new RegExp(`\\n${U.indent}`,"g");_=_.replace(E,`
|
|
180
|
+
`)}if(U.initialChunk&&_.startsWith(`
|
|
181
|
+
`))_=_.slice(1);if(U.finalChunk&&_.endsWith(`
|
|
182
|
+
`))_=_.slice(0,-1);return _}processHeregex(U){let _="",E=!1,$=0;while($<U.length){let A=U[$],R=$>0?U[$-1]:null,X=U[$+1],Y=()=>{let M=0,F=$-1;while(F>=0&&U[F]==="\\")M++,F--;return M%2===1};if(A==="["&&!Y()){E=!0,_+=A,$++;continue}if(A==="]"&&E&&!Y()){E=!1,_+=A,$++;continue}if(E){_+=A,$++;continue}if(/\s/.test(A)){$++;continue}if(A==="#"){if(Y()){_+=A,$++;continue}let M=$-1;while(M>=0&&U[M]==="\\")M--;if(M<$-1){_+=A,$++;continue}while($<U.length&&U[$]!==`
|
|
183
|
+
`)$++;continue}_+=A,$++}return _}collectVarsFromArray(U,_){U.slice(1).forEach((E)=>{if(E===",")return;if(E==="...")return;if(typeof E==="string")_.add(E);else if(Array.isArray(E)){if(E[0]==="..."){if(typeof E[1]==="string")_.add(E[1])}else if(E[0]==="array")this.collectVarsFromArray(E,_);else if(E[0]==="object")this.collectVarsFromObject(E,_)}})}collectVarsFromObject(U,_){U.slice(1).forEach((E)=>{if(Array.isArray(E)){if(E[0]==="..."){if(typeof E[1]==="string")_.add(E[1])}else if(E.length>=2){let[$,A,R]=E;if(R==="="){if(typeof $==="string")_.add($)}else if(typeof A==="string")_.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,_);else if(A[0]==="object")this.collectVarsFromObject(A,_)}}}})}indent(){return this.indentString.repeat(this.indentLevel)}unwrapBlock(U){if(!Array.isArray(U))return[U];if(U[0]==="block")return U.slice(1);if(Array.isArray(U[0]))return U;return[U]}needsSemicolon(U,_){if(!_||_.endsWith(";"))return!1;if(!_.endsWith("}"))return!0;let E=Array.isArray(U)?U[0]:null;return!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(E)}addSemicolon(U,_){return _+(this.needsSemicolon(U,_)?";":"")}formatStatements(U,_="statement"){return U.map((E)=>this.indent()+this.addSemicolon(E,this.generate(E,_)))}hasExplicitControlFlow(U){if(!Array.isArray(U))return!1;let _=U[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block"){let E=U.slice(1);if(E.length===0)return!1;return E.some(($)=>Array.isArray($)&&($[0]==="return"||$[0]==="throw"||$[0]==="break"||$[0]==="continue"))}if(_==="switch"){let[,,E]=U;return E&&E.some(($)=>{let A=$[2];return this.unwrapBlock(A).some((X)=>Array.isArray(X)&&(X[0]==="return"||X[0]==="throw"||X[0]==="break"||X[0]==="continue"))})}if(_==="if"||_==="unless"){let[,,E,$]=U,A=this.branchHasControlFlow(E),R=$&&this.branchHasControlFlow($);return A&&R}return!1}branchHasControlFlow(U){if(!Array.isArray(U))return!1;let _=this.unwrapBlock(U);if(_.length===0)return!1;let E=_[_.length-1];return Array.isArray(E)&&(E[0]==="return"||E[0]==="throw"||E[0]==="break"||E[0]==="continue")}withIndent(U){this.indentLevel++;let _=U();return this.indentLevel--,_}isNegativeStep(U){if(!Array.isArray(U))return!1;if(U.length!==2)return!1;return(U[0]instanceof String?U[0].valueOf():U[0])==="-"}generateBranchWithReturn(U){let _=this.unwrapBlock(U),E="";for(let $=0;$<_.length;$++){let A=$===_.length-1,R=_[$],X=Array.isArray(R)?R[0]:null;if(A&&!(X==="return"||X==="throw"||X==="break"||X==="continue"))E+=this.indent()+`return ${this.generate(R,"value")};
|
|
184
|
+
`;else E+=this.indent()+this.generate(R,"statement")+`;
|
|
185
|
+
`}return E}generateComprehensionWithTarget(U,_,E,$){let A="";A+=this.indent()+`${$} = [];
|
|
186
|
+
`;let R=U;if(Array.isArray(U)&&U[0]==="block"&&U.length===2)R=U[1];if(_.length===1){let M=_[0],[F,D,G,J]=M;if(F==="for-in"){let Q=J,Z=Array.isArray(D)?D:[D],O=Z.length===0,[K,H]=O?["_i",null]:Z,W=K;if(Array.isArray(K)&&(K[0]==="array"||K[0]==="object"))W=this.generateDestructuringPattern(K);if(Q&&Q!==null){let N=Array.isArray(G)&&G[0];if(N instanceof String)N=N.valueOf();if(N===".."||N==="..."){let S=N==="...",[L,I]=G.slice(1),T=this.generate(L,"value"),j=this.generate(I,"value"),w=this.generate(Q,"value"),P=S?"<":"<=";A+=this.indent()+`for (let ${W} = ${T}; ${W} ${P} ${j}; ${W} += ${w}) {
|
|
187
|
+
`}else{let S=this.generate(G,"value"),L=H||"_i",I=this.generate(Q,"value");if(this.isNegativeStep(Q))A+=this.indent()+`for (let ${L} = ${S}.length - 1; ${L} >= 0; ${L} += ${I}) {
|
|
188
|
+
`;else A+=this.indent()+`for (let ${L} = 0; ${L} < ${S}.length; ${L} += ${I}) {
|
|
189
|
+
`;if(this.indentLevel++,!O)A+=this.indent()+`const ${W} = ${S}[${L}];
|
|
190
|
+
`}}else{let N=this.generate(G,"value");A+=this.indent()+`for (const ${W} of ${N}) {
|
|
191
|
+
`}if(this.indentLevel++,E&&E.length>0)A+=this.indent()+`if (${E.map((N)=>this.generate(N,"value")).join(" && ")}) {
|
|
192
|
+
`,this.indentLevel++;let q=this.unwrap(this.generate(R,"value"));if(A+=this.indent()+`${$}.push(${q});
|
|
193
|
+
`,E&&E.length>0)this.indentLevel--,A+=this.indent()+`}
|
|
194
|
+
`;return this.indentLevel--,A+=this.indent()+`}
|
|
195
|
+
`,A}}let Y=this.containsAwait(U)?"async ":"";return this.indent()+`${$} = (${Y}() => { /* complex comprehension */ })();
|
|
196
|
+
`}generateComprehensionAsLoop(U,_,E){let $="";if(_.length===1){let A=_[0],[R,X,Y,M]=A;if(R==="for-in"){let F=M,D=Array.isArray(X)?X:[X],G=D.length===0,[J,Q]=G?["_i",null]:D,Z=J;if(Array.isArray(J)&&(J[0]==="array"||J[0]==="object"))Z=this.generateDestructuringPattern(J);if(F&&F!==null){let O=Array.isArray(Y)&&Y[0];if(O instanceof String)O=O.valueOf();let K=O===".."||O==="...";if(K){let H=O==="...",[W,q]=Y.slice(1),N=this.generate(W,"value"),z=this.generate(q,"value"),S=this.generate(F,"value");$+=`for (let ${Z} = ${N}; ${Z} ${H?"<":"<="} ${z}; ${Z} += ${S}) `}else{let H=this.generate(Y,"value"),W=Q||"_i",q=this.generate(F,"value"),N=this.isNegativeStep(F),z=N&&(F[1]==="1"||F[1]===1||F[1]instanceof String&&F[1].valueOf()==="1"),S=!N&&(F==="1"||F===1||F instanceof String&&F.valueOf()==="1");if(z)$+=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W}--) `;else if(S)$+=`for (let ${W} = 0; ${W} < ${H}.length; ${W}++) `;else if(N)$+=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W} += ${q}) `;else $+=`for (let ${W} = 0; ${W} < ${H}.length; ${W} += ${q}) `;if($+=`{
|
|
197
|
+
`,this.indentLevel++,!G)$+=this.indent()+`const ${Z} = ${H}[${W}];
|
|
198
|
+
`}if(E&&E.length>0){if(!K)$+=this.indent();$+=`{
|
|
199
|
+
`,this.indentLevel++,$+=this.indent()+`if (${E.map((H)=>this.generate(H,"value")).join(" && ")}) {
|
|
200
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
201
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
202
|
+
`,this.indentLevel--,$+=this.indent()+"}"}else{if(!K)$+=this.indent();$+=`{
|
|
203
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
204
|
+
`,this.indentLevel--,$+=this.indent()+"}"}if(!K)this.indentLevel--,$+=`
|
|
205
|
+
`+this.indent()+"}";return $}else if(Q){let O=this.generate(Y,"value");$+=`for (let ${Q} = 0; ${Q} < ${O}.length; ${Q}++) `,$+=`{
|
|
206
|
+
`,this.indentLevel++,$+=this.indent()+`const ${Z} = ${O}[${indexVarName}];
|
|
207
|
+
`}else{if($+=`for (const ${Z} of ${this.generate(Y,"value")}) `,E&&E.length>0)$+=`{
|
|
208
|
+
`,this.indentLevel++,$+=this.indent()+`if (${E.map((O)=>this.generate(O,"value")).join(" && ")}) {
|
|
209
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
210
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
211
|
+
`,this.indentLevel--,$+=this.indent()+"}";else $+=`{
|
|
212
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
213
|
+
`,this.indentLevel--,$+=this.indent()+"}";return $}}else if(R==="for-from"){let F=Array.isArray(X)?X:[X],[D]=F,G=D;if(Array.isArray(D)&&(D[0]==="array"||D[0]==="object"))G=this.generateDestructuringPattern(D);if($+=`for (const ${G} of ${this.generate(Y,"value")}) `,E&&E.length>0)$+=`{
|
|
214
|
+
`,this.indentLevel++,$+=this.indent()+`if (${E.map((J)=>this.generate(J,"value")).join(" && ")}) {
|
|
215
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
216
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
217
|
+
`,this.indentLevel--,$+=this.indent()+"}";else $+=`{
|
|
218
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
219
|
+
`,this.indentLevel--,$+=this.indent()+"}";return $}else if(R==="for-of"){let F=Array.isArray(X)?X:[X],[D,G]=F,J=M,Q=this.generate(Y,"value");if($+=`for (const ${D} in ${Q}) `,$+=`{
|
|
220
|
+
`,this.indentLevel++,J&&!G&&!E?.length)$+=this.indent()+`if (!Object.hasOwn(${Q}, ${D})) continue;
|
|
221
|
+
`,$+=this.indent()+this.generate(U,"statement")+`;
|
|
222
|
+
`;else if(J&&G&&E?.length)$+=this.indent()+`if (Object.hasOwn(${Q}, ${D})) {
|
|
223
|
+
`,this.indentLevel++,$+=this.indent()+`const ${G} = ${Q}[${D}];
|
|
224
|
+
`,$+=this.indent()+`if (${E.map((Z)=>this.generate(Z,"value")).join(" && ")}) {
|
|
225
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
226
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
227
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
228
|
+
`;else if(J&&G)$+=this.indent()+`if (Object.hasOwn(${Q}, ${D})) {
|
|
229
|
+
`,this.indentLevel++,$+=this.indent()+`const ${G} = ${Q}[${D}];
|
|
230
|
+
`,$+=this.indent()+this.generate(U,"statement")+`;
|
|
231
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
232
|
+
`;else if(G&&E?.length)$+=this.indent()+`const ${G} = ${Q}[${D}];
|
|
233
|
+
`,$+=this.indent()+`if (${E.map((Z)=>this.generate(Z,"value")).join(" && ")}) {
|
|
234
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
235
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
236
|
+
`;else if(G)$+=this.indent()+`const ${G} = ${Q}[${D}];
|
|
237
|
+
`,$+=this.indent()+this.generate(U,"statement")+`;
|
|
238
|
+
`;else if(E?.length)$+=this.indent()+`if (${E.map((Z)=>this.generate(Z,"value")).join(" && ")}) {
|
|
239
|
+
`,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
|
|
240
|
+
`,this.indentLevel--,$+=this.indent()+`}
|
|
241
|
+
`;else $+=this.indent()+this.generate(U,"statement")+`;
|
|
242
|
+
`;return this.indentLevel--,$+=this.indent()+"}",$}}return this.generate(["comprehension",U,_,E],"value")}generateIfElseWithEarlyReturns(U){let[_,E,$,...A]=U,R="",X=_==="unless"?`!${this.generate(E,"value")}`:this.generate(E,"value");R+=this.indent()+`if (${X}) {
|
|
243
|
+
`,R+=this.withIndent(()=>this.generateBranchWithReturn($)),R+=this.indent()+"}";for(let Y of A)if(R+=" else ",Array.isArray(Y)&&Y[0]==="if"){let[,M,F,...D]=Y;if(R+=`if (${this.generate(M,"value")}) {
|
|
244
|
+
`,R+=this.withIndent(()=>this.generateBranchWithReturn(F)),R+=this.indent()+"}",D.length>0)for(let G of D)R+=` else {
|
|
245
|
+
`,R+=this.withIndent(()=>this.generateBranchWithReturn(G)),R+=this.indent()+"}"}else R+=`{
|
|
246
|
+
`,R+=this.withIndent(()=>this.generateBranchWithReturn(Y)),R+=this.indent()+"}";return R}unwrap(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let _=0,E=!0;for(let $=0;$<U.length;$++){if(U[$]==="(")_++;if(U[$]===")")_--;if(_===0&&$<U.length-1){E=!1;break}}if(E)U=U.slice(1,-1);else break}return U}flattenBinaryChain(U){if(!Array.isArray(U)||U.length<3)return U;let[_,...E]=U;if(_!=="&&"&&_!=="||")return U;let $=[],A=(R)=>{if(Array.isArray(R)&&R[0]===_)for(let X=1;X<R.length;X++)A(R[X]);else $.push(R)};for(let R of E)A(R);return[_,...$]}unwrapLogical(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let _=0,E=1/0;for(let $=1;$<U.length-1;$++){if(U[$]==="(")_++;if(U[$]===")")_--;E=Math.min(E,_)}if(E>=0)U=U.slice(1,-1);else break}return U}unwrapIfBranch(U){if(Array.isArray(U)&&U.length===1){let _=U[0];if(!Array.isArray(_)||_[0]!=="block")return _}return U}isNegativeOneLiteral(U){return Array.isArray(U)&&U[0]==="-"&&U.length===2&&(U[1]==="1"||U[1]===1||U[1]instanceof String&&U[1].valueOf()==="1")}hasStatementInBranch(U){if(!Array.isArray(U))return!1;let _=U[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block")return U.slice(1).some(($)=>this.hasStatementInBranch($));return!1}isMultiStatementBlock(U){return Array.isArray(U)&&U[0]==="block"&&U.length>2}hasNestedMultiStatement(U){if(!Array.isArray(U))return!1;if(U[0]==="if"){let[_,E,$,...A]=U;return this.isMultiStatementBlock($)||A.some((R)=>this.hasNestedMultiStatement(R))}return!1}buildTernaryChain(U){if(U.length===0)return"undefined";if(U.length===1)return this.extractExpression(this.unwrapIfBranch(U[0]));let _=U[0];if(Array.isArray(_)&&_[0]==="if"){let[E,$,A,...R]=_,X=this.extractExpression(this.unwrapIfBranch(A)),Y=this.buildTernaryChain([...R,...U.slice(1)]);return`(${this.generate($,"value")} ? ${X} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(_))}generateIfAsExpression(U,_,E){if(this.isMultiStatementBlock(_)||this.hasStatementInBranch(_)||E.some((Y)=>this.isMultiStatementBlock(Y)||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait(U)||this.containsAwait(_)||E.some((G)=>this.containsAwait(G)),D=`${Y?"await ":""}(${Y?"async ":""}() => { `;D+=`if (${this.generate(U,"value")}) `,D+=this.generateBlockWithReturns(_);for(let G of E)if(D+=" else ",Array.isArray(G)&&G[0]==="if"){let[J,Q,Z,...O]=G;D+=`if (${this.generate(Q,"value")}) `,D+=this.generateBlockWithReturns(Z);for(let K of O)if(D+=" else ",Array.isArray(K)&&K[0]==="if"){let[H,W,q,...N]=K;D+=`if (${this.generate(W,"value")}) `,D+=this.generateBlockWithReturns(q),E.push(...N)}else D+=this.generateBlockWithReturns(K)}else D+=this.generateBlockWithReturns(G);return D+=" })()",D}let A=this.extractExpression(this.unwrapIfBranch(_)),R=this.buildTernaryChain(E),X=this.generate(U,"value");if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="await"))X=`(${X})`;return`(${X} ? ${A} : ${R})`}generateIfAsStatement(U,_,E){let A=`if (${this.unwrap(this.generate(U,"value"))}) `;A+=this.generate(this.unwrapIfBranch(_),"statement");for(let R of E)A+=" else ",A+=this.generate(this.unwrapIfBranch(R),"statement");return A}isStaticMember(U){return Array.isArray(U)&&U[0]==="."&&U[1]==="this"}isComputedMember(U){return Array.isArray(U)&&U[0]==="computed"}extractMemberName(U){if(this.isStaticMember(U))return U[2];else if(this.isComputedMember(U))return`[${this.generate(U[1],"value")}]`;else return U}isBoundMethod(U){return Array.isArray(U)&&U[0]==="=>"}generateSwitchCaseBody(U,_){let E="";if(this.hasExplicitControlFlow(U)){let A=this.unwrapBlock(U);for(let R of A)E+=this.indent()+this.generate(R,"statement")+`;
|
|
247
|
+
`}else if(_==="value")if(Array.isArray(U)&&U[0]==="block"&&U.length>2){let A=U.slice(1);for(let R=0;R<A.length;R++)if(R===A.length-1){let Y=this.generate(A[R],"value");E+=this.indent()+`return ${Y};
|
|
248
|
+
`}else E+=this.indent()+this.generate(A[R],"statement")+`;
|
|
249
|
+
`}else{let A=this.extractExpression(U);E+=this.indent()+`return ${A};
|
|
250
|
+
`}else{if(Array.isArray(U)&&U[0]==="block"&&U.length>1){let A=U.slice(1);for(let R of A)E+=this.indent()+this.generate(R,"statement")+`;
|
|
251
|
+
`}else{let A=this.generate(U,"statement");E+=this.indent()+A+`;
|
|
252
|
+
`}E+=this.indent()+`break;
|
|
253
|
+
`}return E}generateSwitchAsIfChain(U,_,E){let $="";for(let A=0;A<U.length;A++){let R=U[A],[,X,Y]=R;if(A===0)$+=`if (${this.generate(X,"value")}) {
|
|
254
|
+
`;else $+=` else if (${this.generate(X,"value")}) {
|
|
255
|
+
`;if(this.indentLevel++,E==="value"){let M=this.extractExpression(Y);$+=this.indent()+`return ${M};
|
|
256
|
+
`}else{let M=this.unwrapBlock(Y);for(let F of M)$+=this.indent()+this.generate(F,"statement")+`;
|
|
257
|
+
`}this.indentLevel--,$+=this.indent()+"}"}if(_){if($+=` else {
|
|
258
|
+
`,this.indentLevel++,E==="value"){let A=this.extractExpression(_);$+=this.indent()+`return ${A};
|
|
259
|
+
`}else{let A=this.unwrapBlock(_);for(let R of A)$+=this.indent()+this.generate(R,"statement")+`;
|
|
260
|
+
`}this.indentLevel--,$+=this.indent()+"}"}if(E==="value")return`(() => { ${$} })()`;return $}getReactiveRuntime(){return`// ============================================================================
|
|
270
261
|
// Rip Reactive Runtime
|
|
271
262
|
// A minimal, fine-grained reactivity system
|
|
272
263
|
//
|
|
273
264
|
// Reactivity:
|
|
274
|
-
//
|
|
275
|
-
// __computed(fn) -
|
|
265
|
+
// __state(value) - Reactive state container
|
|
266
|
+
// __computed(fn) - Computed value (lazy, cached)
|
|
276
267
|
// __effect(fn) - Side effect that re-runs when dependencies change
|
|
277
268
|
// __batch(fn) - Group multiple updates into one flush
|
|
278
269
|
// __readonly(value) - Immutable value wrapper
|
|
279
270
|
//
|
|
280
|
-
// Context API:
|
|
281
|
-
// setContext(key, value) - Set context in current component
|
|
282
|
-
// getContext(key) - Get context from nearest ancestor
|
|
283
|
-
// hasContext(key) - Check if context exists
|
|
284
|
-
//
|
|
285
271
|
// Error Handling:
|
|
286
|
-
// __catchErrors(fn)
|
|
287
|
-
// __handleError(
|
|
272
|
+
// __catchErrors(fn) - Wrap function to route errors to handler
|
|
273
|
+
// __handleError(err) - Route error to handler
|
|
288
274
|
//
|
|
289
275
|
// How reactivity works:
|
|
290
|
-
// - Reading a
|
|
291
|
-
// - Writing to a
|
|
276
|
+
// - Reading a state/computed inside an effect tracks it as a dependency
|
|
277
|
+
// - Writing to a state notifies all subscribers
|
|
292
278
|
// - Batching defers effect execution until the batch completes
|
|
293
279
|
// ============================================================================
|
|
294
280
|
|
|
@@ -297,14 +283,14 @@ let __currentEffect = null; // The effect/computed currently being evaluated
|
|
|
297
283
|
let __pendingEffects = new Set(); // Effects queued to run
|
|
298
284
|
let __batching = false; // Are we inside a batch()?
|
|
299
285
|
|
|
300
|
-
// Flush all pending effects (called after
|
|
286
|
+
// Flush all pending effects (called after state updates, or at end of batch)
|
|
301
287
|
function __flushEffects() {
|
|
302
288
|
const effects = [...__pendingEffects];
|
|
303
289
|
__pendingEffects.clear();
|
|
304
290
|
for (const effect of effects) effect.run();
|
|
305
291
|
}
|
|
306
292
|
|
|
307
|
-
// Shared primitive coercion (used by
|
|
293
|
+
// Shared primitive coercion (used by state and computed)
|
|
308
294
|
const __primitiveCoercion = {
|
|
309
295
|
valueOf() { return this.value; },
|
|
310
296
|
toString() { return String(this.value); },
|
|
@@ -312,59 +298,59 @@ const __primitiveCoercion = {
|
|
|
312
298
|
};
|
|
313
299
|
|
|
314
300
|
/**
|
|
315
|
-
* Create a reactive
|
|
301
|
+
* Create a reactive state container
|
|
316
302
|
* @param {*} initialValue - The initial value
|
|
317
|
-
* @returns {object}
|
|
303
|
+
* @returns {object} State with .value getter/setter
|
|
318
304
|
*/
|
|
319
|
-
function
|
|
305
|
+
function __state(initialValue) {
|
|
320
306
|
let value = initialValue;
|
|
321
|
-
const subscribers = new Set(); // Effects/computeds that depend on this
|
|
322
|
-
|
|
307
|
+
const subscribers = new Set(); // Effects/computeds that depend on this state
|
|
308
|
+
|
|
323
309
|
// State flags
|
|
324
310
|
let notifying = false; // Prevents re-entry during notification
|
|
325
311
|
let locked = false; // Prevents writes (used during SSR/hydration)
|
|
326
|
-
let dead = false; //
|
|
312
|
+
let dead = false; // State has been killed (cleanup)
|
|
327
313
|
|
|
328
|
-
const
|
|
314
|
+
const state = {
|
|
329
315
|
get value() {
|
|
330
316
|
if (dead) return value;
|
|
331
|
-
// Track this
|
|
317
|
+
// Track this state as a dependency of the current effect/computed
|
|
332
318
|
if (__currentEffect) {
|
|
333
319
|
subscribers.add(__currentEffect);
|
|
334
320
|
__currentEffect.dependencies.add(subscribers);
|
|
335
321
|
}
|
|
336
322
|
return value;
|
|
337
323
|
},
|
|
338
|
-
|
|
324
|
+
|
|
339
325
|
set value(newValue) {
|
|
340
326
|
// Skip if: dead, locked, same value, or already notifying
|
|
341
327
|
if (dead || locked || newValue === value || notifying) return;
|
|
342
328
|
value = newValue;
|
|
343
329
|
notifying = true;
|
|
344
|
-
|
|
330
|
+
|
|
345
331
|
// Notify subscribers: computeds mark dirty, effects get queued
|
|
346
332
|
for (const sub of subscribers) {
|
|
347
333
|
if (sub.markDirty) sub.markDirty(); // Computed
|
|
348
334
|
else __pendingEffects.add(sub); // Effect
|
|
349
335
|
}
|
|
350
|
-
|
|
336
|
+
|
|
351
337
|
// Flush immediately unless we're batching
|
|
352
338
|
if (!__batching) __flushEffects();
|
|
353
339
|
notifying = false;
|
|
354
340
|
},
|
|
355
|
-
|
|
341
|
+
|
|
356
342
|
read() { return value; }, // Read without tracking
|
|
357
|
-
lock() { locked = true; return
|
|
358
|
-
free() { subscribers.clear(); return
|
|
343
|
+
lock() { locked = true; return state; }, // Prevent further writes
|
|
344
|
+
free() { subscribers.clear(); return state; }, // Clear all subscribers
|
|
359
345
|
kill() { dead = true; subscribers.clear(); return value; }, // Cleanup
|
|
360
|
-
|
|
346
|
+
|
|
361
347
|
...__primitiveCoercion
|
|
362
348
|
};
|
|
363
|
-
return
|
|
349
|
+
return state;
|
|
364
350
|
}
|
|
365
351
|
|
|
366
352
|
/**
|
|
367
|
-
* Create a computed value (
|
|
353
|
+
* Create a computed value (lazy & cached)
|
|
368
354
|
* @param {function} fn - Function that computes the value
|
|
369
355
|
* @returns {object} Computed with .value getter
|
|
370
356
|
*/
|
|
@@ -372,14 +358,14 @@ function __computed(fn) {
|
|
|
372
358
|
let value;
|
|
373
359
|
let dirty = true; // Needs recomputation?
|
|
374
360
|
const subscribers = new Set(); // Things that depend on this computed
|
|
375
|
-
|
|
361
|
+
|
|
376
362
|
// State flags
|
|
377
363
|
let locked = false; // Prevents recomputation
|
|
378
364
|
let dead = false; // Computed has been killed
|
|
379
365
|
|
|
380
366
|
const computed = {
|
|
381
|
-
dependencies: new Set(), //
|
|
382
|
-
|
|
367
|
+
dependencies: new Set(), // States/computeds this depends on
|
|
368
|
+
|
|
383
369
|
// Called by dependencies when they change
|
|
384
370
|
markDirty() {
|
|
385
371
|
if (dead || locked || dirty) return;
|
|
@@ -390,7 +376,7 @@ function __computed(fn) {
|
|
|
390
376
|
else __pendingEffects.add(sub);
|
|
391
377
|
}
|
|
392
378
|
},
|
|
393
|
-
|
|
379
|
+
|
|
394
380
|
get value() {
|
|
395
381
|
if (dead) return value;
|
|
396
382
|
// Track this computed as a dependency
|
|
@@ -411,7 +397,7 @@ function __computed(fn) {
|
|
|
411
397
|
}
|
|
412
398
|
return value;
|
|
413
399
|
},
|
|
414
|
-
|
|
400
|
+
|
|
415
401
|
read() { return value; }, // Return cached value without tracking or recomputing
|
|
416
402
|
lock() { locked = true; computed.value; return computed; }, // Lock after computing
|
|
417
403
|
free() {
|
|
@@ -426,7 +412,7 @@ function __computed(fn) {
|
|
|
426
412
|
computed.free();
|
|
427
413
|
return result;
|
|
428
414
|
},
|
|
429
|
-
|
|
415
|
+
|
|
430
416
|
...__primitiveCoercion
|
|
431
417
|
};
|
|
432
418
|
return computed;
|
|
@@ -439,8 +425,8 @@ function __computed(fn) {
|
|
|
439
425
|
*/
|
|
440
426
|
function __effect(fn) {
|
|
441
427
|
const effect = {
|
|
442
|
-
dependencies: new Set(), //
|
|
443
|
-
|
|
428
|
+
dependencies: new Set(), // States/computeds this effect depends on
|
|
429
|
+
|
|
444
430
|
run() {
|
|
445
431
|
// Clear old dependencies before re-running
|
|
446
432
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
@@ -450,13 +436,13 @@ function __effect(fn) {
|
|
|
450
436
|
__currentEffect = effect;
|
|
451
437
|
try { fn(); } finally { __currentEffect = prev; }
|
|
452
438
|
},
|
|
453
|
-
|
|
439
|
+
|
|
454
440
|
dispose() {
|
|
455
441
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
456
442
|
effect.dependencies.clear();
|
|
457
443
|
}
|
|
458
444
|
};
|
|
459
|
-
|
|
445
|
+
|
|
460
446
|
effect.run(); // Run immediately to establish dependencies
|
|
461
447
|
return () => effect.dispose();
|
|
462
448
|
}
|
|
@@ -487,76 +473,14 @@ function __readonly(value) {
|
|
|
487
473
|
}
|
|
488
474
|
|
|
489
475
|
// ============================================================================
|
|
490
|
-
//
|
|
491
|
-
//
|
|
492
|
-
//
|
|
493
|
-
// Usage:
|
|
494
|
-
// // In parent component constructor or methods:
|
|
495
|
-
// setContext('theme', { dark: true })
|
|
496
|
-
//
|
|
497
|
-
// // In any descendant component:
|
|
498
|
-
// theme = getContext('theme')
|
|
499
|
-
// ============================================================================
|
|
500
|
-
|
|
501
|
-
let __currentComponent = null; // The component currently being initialized
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* Set a context value in the current component
|
|
505
|
-
* @param {*} key - The context key (usually a string or symbol)
|
|
506
|
-
* @param {*} value - The value to store
|
|
507
|
-
*/
|
|
508
|
-
function setContext(key, value) {
|
|
509
|
-
if (!__currentComponent) {
|
|
510
|
-
throw new Error('setContext must be called during component initialization');
|
|
511
|
-
}
|
|
512
|
-
if (!__currentComponent._context) {
|
|
513
|
-
__currentComponent._context = new Map();
|
|
514
|
-
}
|
|
515
|
-
__currentComponent._context.set(key, value);
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Get a context value from the nearest ancestor that set it
|
|
520
|
-
* @param {*} key - The context key to look up
|
|
521
|
-
* @returns {*} The context value, or undefined if not found
|
|
522
|
-
*/
|
|
523
|
-
function getContext(key) {
|
|
524
|
-
let component = __currentComponent;
|
|
525
|
-
while (component) {
|
|
526
|
-
if (component._context && component._context.has(key)) {
|
|
527
|
-
return component._context.get(key);
|
|
528
|
-
}
|
|
529
|
-
component = component._parent;
|
|
530
|
-
}
|
|
531
|
-
return undefined;
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
/**
|
|
535
|
-
* Check if a context key exists in any ancestor
|
|
536
|
-
* @param {*} key - The context key to check
|
|
537
|
-
* @returns {boolean} True if the key exists
|
|
538
|
-
*/
|
|
539
|
-
function hasContext(key) {
|
|
540
|
-
let component = __currentComponent;
|
|
541
|
-
while (component) {
|
|
542
|
-
if (component._context && component._context.has(key)) return true;
|
|
543
|
-
component = component._parent;
|
|
544
|
-
}
|
|
545
|
-
return false;
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
// ============================================================================
|
|
549
|
-
// Error Boundaries
|
|
550
|
-
// Catch and handle errors in component trees gracefully
|
|
551
|
-
//
|
|
552
|
-
// Usage in component:
|
|
553
|
-
// error: (err) -> console.error "Caught:", err
|
|
476
|
+
// Error Handling
|
|
477
|
+
// Catch and handle errors gracefully
|
|
554
478
|
// ============================================================================
|
|
555
479
|
|
|
556
|
-
let __errorHandler = null; // Current error handler
|
|
480
|
+
let __errorHandler = null; // Current error handler
|
|
557
481
|
|
|
558
482
|
/**
|
|
559
|
-
* Set the current error handler
|
|
483
|
+
* Set the current error handler
|
|
560
484
|
* @param {function} handler - Error handler function
|
|
561
485
|
* @returns {function} Previous handler (for restoration)
|
|
562
486
|
*/
|
|
@@ -599,8 +523,8 @@ function __catchErrors(fn) {
|
|
|
599
523
|
}
|
|
600
524
|
|
|
601
525
|
// === End Reactive Runtime ===
|
|
602
|
-
`}}class
|
|
603
|
-
`)
|
|
526
|
+
`}}class H1{constructor(U={}){this.options={showTokens:!1,showSExpr:!1,...U}}compile(U){let _=null,E=U.split(`
|
|
527
|
+
`),$=E.findIndex((F)=>F==="__DATA__");if($!==-1){let F=E.slice($+1);_=F.length>0?F.join(`
|
|
604
528
|
`)+`
|
|
605
|
-
`:"",U
|
|
606
|
-
`)}let
|
|
529
|
+
`:"",U=E.slice(0,$).join(`
|
|
530
|
+
`)}let R=new x1().tokenize(U);if(this.options.showTokens)R.forEach((F)=>console.log(`${F[0].padEnd(12)} ${JSON.stringify(F[1])}`)),console.log();_1.lexer={tokens:R,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let F=this.tokens[this.pos++];return this.yytext=F[1],this.yylloc=F[2],F[0]}};let X;try{X=_1.parse(U)}catch(F){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(U)||/\?\s+\w+\s+\?\s+/.test(U))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw F}if(this.options.showSExpr)console.log(a(X,0,!0)),console.log();let Y=new k({dataSection:_,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),M=Y.compile(X);return{tokens:R,sexpr:X,code:M,data:_,reactiveVars:Y.reactiveVars}}compileToJS(U){return this.compile(U).code}compileToSExpr(U){return this.compile(U).sexpr}}function o2(U,_={}){return new H1(_).compile(U)}function N1(U,_={}){return new H1(_).compileToJS(U)}var Y3="2.7.2",M3="2026-02-03@11:22:57GMT",t2=(U)=>{let _=U.match(/^[ \t]*(?=\S)/gm),E=Math.min(...(_||[]).map(($)=>$.length));return U.replace(RegExp(`^[ ]{${E}}`,"gm"),"").trim()};async function v2(){let U=document.querySelectorAll('script[type="text/rip"]');for(let _ of U){if(_.hasAttribute("data-rip-processed"))continue;try{let E=t2(_.textContent),$=N1(E);(0,eval)($),_.setAttribute("data-rip-processed","true")}catch(E){console.error("Error compiling Rip script:",E),console.error("Script content:",_.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",v2);else v2();function e2(U){try{let E=N1(U).replace(/^let\s+[^;]+;\s*\n\s*/m,"");E=E.replace(/^const\s+/gm,"var ");let $=(0,eval)(E);if($!==void 0)globalThis._=$;return $}catch(_){console.error("Rip compilation error:",_.message);return}}if(typeof globalThis<"u")globalThis.rip=e2;export{e2 as rip,v2 as processRipScripts,_1 as parser,a as formatSExpr,N1 as compileToJS,o2 as compile,Y3 as VERSION,x1 as Lexer,H1 as Compiler,k as CodeGenerator,M3 as BUILD_DATE};
|