rip-lang 2.9.2 → 3.0.0

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.
@@ -1,266 +1,240 @@
1
- var j1,R2,c2,F1,K1,A2,_2,l2,E2,V1,b1,n,y1,p,a,U2,$2,X2,Y2,F2,G2,M2,Z2,u1,J2,g1,v1,x1,D2,k1,H1,Q2,N1,Y1,W2,K2,H2,N2,q2,z2,O2,S2,P2,L2,T2,B2,I2,q1,c1,l1,m,w2,j2,V2,f1,p1,y2,u2,v2,f2,C2,C1,h2,G1,b2,h1,r,x,g2,W1,E1,I1,o1,U1,w1,I=[].indexOf,d=[].slice,p2={}.hasOwnProperty,x2=function(U,_){var E="";while(_>0){if(_&1)E+=U;_>>>=1,U+=U}return E},m2=function(U,_){var E=0,X=0;if(!_.length)return 1/0;while(X=1+U.indexOf(_,X))E++;return E},t1=function(U,_){for(var E in _)U[E]=_[E];return U},i2=function(U,_){return t1(t1({},U),_)},s2=function(U){return U.flat(1/0)},d2=function(U){var _={},E,X=[];for(var R=0;R<U.length;R++){var A=U[R];if(A.comments)for(var $=0;$<A.comments.length;$++){var Y=A.comments[$],F=Y.locationData.range[0];_[F]=Y}}E=Object.keys(_).sort((Z,M)=>Z-M);for(var G=0;G<E.length;G++)X.push(_[E[G]]);return X},e1=function(U,_){if(!U||U.length===0)return;if(!_.comments)_.comments=[];_.comments.push(...U)},n2=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,""))},r2=function(){if(!(this.code&&this.location))return Error.prototype.toString.call(this);var{first_line:U,first_column:_,last_line:E,last_column:X}=this.location;if(E==null)E=U;if(X==null)X=_;var R=this.filename||"[stdin]";if(R.startsWith("<anonymous"))R="[stdin]";var A=this.code.split(`
2
- `)[U],$=_,Y=U===E?X+1:A.length,F=A.slice(0,$).replace(/[^\s]/g," ")+x2("^",Y-$),G=typeof process<"u"&&process!==null&&process.stdout?.isTTY&&!process.env?.NODE_DISABLE_COLORS;if(this.colorful!=null?this.colorful:G){var Z=(M)=>`\x1B[1;31m${M}\x1B[0m`;A=A.slice(0,$)+Z(A.slice($,Y))+A.slice(Y),F=Z(F)}return`${R}:${U+1}:${_+1}: error: ${this.message}
3
- ${A}
4
- ${F}`},a2=function(U,_){var E=SyntaxError(U);throw E.location=_,E.toString=r2,E.stack=E.toString(),E},o2=/(\\\\)|\\u\{([\da-fA-F]+)\}/g,t2=function(U){var _=function(R){var A=R.toString(16);return`\\u${x2("0",4-A.length)}${A}`};if(U<65536)return _(U);var E=Math.floor((U-65536)/1024)+55296,X=(U-65536)%1024+56320;return`${_(E)}${_(X)}`},e2=function(U,{flags:_,error:E,delimiter:X=""}={}){var R=_!=null&&I.call(_,"u")<0;return U.replace(o2,function(A,$,Y,F){if($)return $;var G=parseInt(Y,16);if(G>1114111)E("unicode code point escapes greater than \\u{10ffff} are not allowed",{offset:F+X.length,length:Y.length+4});if(!R)return A;return t2(G)})},m1=class U{constructor(){this.error=this.error.bind(this)}tokenize(_,E={}){var X,R,A,$;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(_),A=0;while(this.chunk=_.slice(A))if(X=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(X),A+=X,E.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:A};if(this.closeIndentation(),R=this.ends.pop())this.error(`missing ${R.tag}`,(($=R.origin)!=null?$:R)[2]);if(E.rewrite===!1)return this.tokens;return new w2().rewrite(this.tokens)}clean(_){var E,X;if(X=0,_.charCodeAt(0)===R2)_=_.slice(1),this.locTweaks[0]=1,X+=1;if(h1.test(_)){if(_=`
5
- ${_}`,this.chunkLine--,(E=this.locTweaks)[0]==null)E[0]=0;this.locTweaks[0]-=1}return _.replace(/\r/g,(R,A)=>{return this.locTweaks[X+A]=1,""}).replace(C2,"")}identifierToken(){var _,E,X,R,A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P,V,v;if(/^~[=>]/.test(this.chunk)||/^=!/.test(this.chunk))return 0;if(!(G=Z2.exec(this.chunk)))return 0;if([F,$,X]=G,Y=$.length,Z=void 0,$==="own"&&this.tag()==="FOR")return this.token("OWN",$),$.length;if($==="from"&&this.tag()==="YIELD")return this.token("FROM",$),$.length;if($==="as"&&this.seenImport){if(this.value()==="*")this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(Q=this.value(!0),I.call(m,Q)>=0)M=this.prev(),[M[0],M[1]]=["IDENTIFIER",this.value(!0)];if((J=this.tag())==="DEFAULT"||J==="IMPORT_ALL"||J==="IDENTIFIER")return this.token("AS",$),$.length}if($==="as"&&this.seenExport){if((W=this.tag())==="IDENTIFIER"||W==="DEFAULT")return this.token("AS",$),$.length;if(z=this.value(!0),I.call(m,z)>=0)return M=this.prev(),[M[0],M[1]]=["IDENTIFIER",this.value(!0)],this.token("AS",$),$.length}if($==="default"&&this.seenExport&&((H=this.tag())==="EXPORT"||H==="AS"))return this.token("DEFAULT",$),$.length;if($==="do"&&(j=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.token("SUPER","super"),this.token("CALL_START","("),this.token("CALL_END",")"),[F,w]=j,w.length+3;if(M=this.prev(),X&&M&&M[0]==="SPACE?")X=null;if(P=X||M!=null&&((O=M[0])==="."||O==="?."||O==="::"||O==="?::"||!M.spaced&&M[0]==="@")?"PROPERTY":"IDENTIFIER",v={},P==="IDENTIFIER"&&(I.call(N1,$)>=0||I.call(m,$)>=0)&&!(this.exportSpecifierList&&I.call(m,$)>=0)){if(P=$.toUpperCase(),P==="WHEN"&&(S=this.tag(),I.call(W2,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(I.call(C1,P)>=0)P="UNARY";else if(I.call(I2,P)>=0){if(P!=="INSTANCEOF"&&this.seenFor)P="FOR"+P,this.seenFor=!1;else if(P="RELATION",this.value()==="!")Z=this.tokens.pop(),v.invert=(T=(B=Z.data)!=null?B.original:void 0)!=null?T:Z[1]}}else if(P==="IDENTIFIER"&&this.seenFor&&$==="from"&&g2(M))P="FORFROM",this.seenFor=!1;else if(P==="PROPERTY"&&M){if(M.spaced&&(L=M[0],I.call(F1,L)>=0)&&/^[gs]et$/.test(M[1])&&this.tokens.length>1&&((K=this.tokens[this.tokens.length-2][0])!=="."&&K!=="?."&&K!=="@"))this.error(`'${M[1]}' cannot be used as a keyword, or as a function call without parentheses`,M[2]);else if(M[0]==="."&&this.tokens.length>1&&(D=this.tokens[this.tokens.length-2])[0]==="UNARY"&&D[1]==="new")D[0]="NEW_TARGET";else if(M[0]==="."&&this.tokens.length>1&&(D=this.tokens[this.tokens.length-2])[0]==="IMPORT"&&D[1]==="import")this.seenImport=!1,D[0]="IMPORT_META";else if(this.tokens.length>2){if(D=this.tokens[this.tokens.length-2],((q=M[0])==="@"||q==="THIS")&&D&&D.spaced&&/^[gs]et$/.test(D[1])&&((N=this.tokens[this.tokens.length-3][0])!=="."&&N!=="?."&&N!=="@"))this.error(`'${D[1]}' cannot be used as a keyword, or as a function call without parentheses`,D[2])}}if(P==="IDENTIFIER"&&I.call(q1,$)>=0)this.error(`reserved word '${$}'`,{length:$.length});if(!(P==="PROPERTY"||this.exportSpecifierList||this.importSpecifierList)){if($==="is"&&this.chunk.slice(Y,Y+4)===" not"){if(_=this.chunk.slice(Y+4).trim(),!_.match(/^(false|true)\s+(is|isnt|==|!=)/))$="isnt",Y+=4}if(I.call(c1,$)>=0)E=$,$=l1[$],v.original=E;P=function(){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";case"&&":case"||":return $;default:return P}}()}let f=Y;if($.length>1&&$.endsWith("!"))v.await=!0,$=$.slice(0,-1);if(V=this.token(P,$,{length:f,data:v}),E)V.origin=[P,E,V[2]];if(Z)[V[2].first_line,V[2].first_column,V[2].range[0]]=[Z[2].first_line,Z[2].first_column,Z[2].range[0]];if(X)R=F.lastIndexOf(":"),A=this.token(":",":",{offset:R});if(X)return f+X.length;else return f}commentToken(_=this.chunk,{heregex:E,returnCommentTokens:X=!1,offsetInChunk:R=0}={}){var A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P,V,v;if(!(T=_.match(_2)))return 0;if([Y,Q,D,J,S]=T,G=null,N=/^\s*\n+\s*#/.test(Y),D){if(B=U2.exec(D),B)this.error(`block comments cannot contain ${B[0]}`,{offset:3+B.index,length:B[0].length});_=_.replace(`###${D}###`,""),_=_.replace(/^\n+/,""),this.lineToken({chunk:_}),F=D,G=[{content:F,length:Y.length-Q.length-J.length,leadingWhitespace:Q}]}else z="",F=S.replace(/^(\n*)/,function(f){return z=f,""}),V="",M=!1,G=F.split(`
6
- `).map(function(f,c){var C,t;if(!(f.indexOf("#")>-1)){V+=`
7
- ${f}`;return}return t="",F=f.replace(/^([ |\t]*)#/,function(g,Z1){return t=Z1,""}),C={content:F,length:1+F.length,leadingWhitespace:`${!M?z:""}${V}${t}`,precededByBlankLine:!!V},M=!0,V="",C}).filter(function(f){return f});if(Z=function({leadingWhitespace:f,nonInitial:c}){var C=f.lastIndexOf(`
8
- `);if(D!=null||!c){if(!(C>-1))return null}else if(C==null)C=-1;return f.length-1-C},$=function(){var f,c,C;C=[];for(K=f=0,c=G.length;f<c;K=++f){if({content:F,length:O,leadingWhitespace:H,precededByBlankLine:P}=G[K],j=K!==0,W=j?1:0,R+=W+H.length,q=Z({leadingWhitespace:H,nonInitial:j}),L=q==null||q===-1,A={content:F,here:D!=null,newLine:N||j,locationData:this.makeLocationData({offsetInChunk:R,length:O}),precededByBlankLine:P,indentSize:q,indented:!L&&q>this.indent,outdented:!L&&q<this.indent},E)A.heregex=!0;R+=O,C.push(A)}return C}.call(this),v=this.prev(),!v)$[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=$,this.tokens.push(w),this.newlineToken(Y.length);else e1($,v);if(X)return $;return Y.length}whitespaceToken(){var _,E,X;if(!((_=h1.exec(this.chunk))||(E=this.chunk.charAt(0)===`
9
- `)))return 0;if(X=this.prev(),X)X[_?"spaced":"newLine"]=!0;if(_)return _[0].length;else return 0}lineToken({chunk:_=this.chunk,offset:E=0}={}){var X,R,A,$,Y,F,G,Z,M,D,Q;if(!(Y=N2.exec(_)))return 0;if($=Y[0],M=this.prev(),X=(M!=null?M[0]:void 0)==="\\",!((X||((D=this.seenFor)!=null?D.endsLength:void 0)<this.ends.length)&&this.seenFor))this.seenFor=!1;if(!(X&&this.seenImport||this.importSpecifierList))this.seenImport=!1;if(!(X&&this.seenExport||this.exportSpecifierList))this.seenExport=!1;if(Q=$.length-1-$.lastIndexOf(`
10
- `),Z=this.unfinished(),G=Q>0?$.slice(-Q):"",!/^(.?)\1*$/.exec(G))return this.error("mixed indentation",{offset:$.length}),$.length;if(F=Math.min(G.length,this.indentLiteral.length),G.slice(0,F)!==this.indentLiteral.slice(0,F))return this.error("indentation mismatch",{offset:$.length}),$.length;if(Q-this.overIndent===this.indent){if(Z)this.suppressNewlines();else this.newlineToken(E);return $.length}if(Q>this.indent){if(Z){if(!X)this.overIndent=Q-this.indent;if(this.overIndent)M.continuationLineIndent=this.indent+this.overIndent;return this.suppressNewlines(),$.length}if(!this.tokens.length)return this.baseIndent=this.indent=Q,this.indentLiteral=G,$.length;R=Q-this.indent+this.outdebt,this.token("INDENT",R,{offset:E+$.length-Q,length:Q}),this.indents.push(R),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.overIndent=0,this.indent=Q,this.indentLiteral=G}else if(Q<this.baseIndent)this.error("missing indentation",{offset:E+$.length});else A=this.overIndent>0,this.overIndent=0,this.outdentToken({moveOut:this.indent-Q,noNewlines:Z,outdentLength:$.length,offset:E,indentSize:Q,endsContinuationLineIndentation:A});return $.length}getHeredocClosingColumn(_,E){let X=_-E,R=X-1;while(R>=0&&this.chunk[R]!==`
11
- `)R--;R++;let A=this.chunk.slice(R,X);return/^\s*$/.test(A)?A.length:null}extractHeredocContent(_){let E=[];for(let X=0;X<_.length;X++)if(_[X][0]==="NEOSTRING")E.push(_[X][1]);return E.join("#{}")}findMinimumIndent(_){let E=null,X;while(X=X2.exec(_)){let R=X[1];if(E===null||0<R.length&&R.length<E.length)E=R}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 X=E[1].split(`
12
- `),R=X[X.length-1];if(/^\s*$/.test(R))X.pop(),E[1]=X.join(`
13
- `)}stringToken(){var _,E,X,R,A,$,Y,F,G,Z,M,D,Q,J;if([Z]=f2.exec(this.chunk)||[],!Z)return 0;if(G=this.prev(),G&&this.value()==="from"&&(this.seenImport||this.seenExport))G[0]="FROM";if(D=function(){switch(Z){case"'":return v2;case'"':return y2;case"'''":return Y2;case'"""':return $2}}(),{tokens:J,index:R}=this.matchWithInterpolations(D,Z),A=Z.length===3,A){let K=this.getHeredocClosingColumn(R,Z.length);if(X=this.extractHeredocContent(J),Y=this.findMinimumIndent(X),Y=this.selectHeredocIndent(K,Y),K!==null&&Y!==null&&K>Y.length)this.removeTrailingWhitespaceLine(J)}return E=Z.charAt(0),this.mergeInterpolationTokens(J,{quote:Z,indent:Y,endOffset:R},(K)=>{return this.validateUnicodeCodePointEscapes(K,{delimiter:Z})}),R}numberToken(){var _,E,X,R,A,$;if(!(E=z2.exec(this.chunk)))return 0;switch(X=E[0],_=X.length,!1){case!/^0[BOX]/.test(X):this.error(`radix prefix in '${X}' must be lowercase`,{offset:1});break;case!/^0\d*[89]/.test(X):this.error(`decimal literal '${X}' must not be prefixed with '0'`,{length:_});break;case!/^0\d+/.test(X):this.error(`octal literal '${X}' must be prefixed with '0o'`,{length:_})}if(R=n2(X),$={parsedValue:R},A=R===1/0?"INFINITY":"NUMBER",A==="INFINITY")$.original=X;return this.token(A,X,{length:_,data:$}),_}regexToken(){var _,E,X,R,A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O;switch(!1){case!(J=T2.exec(this.chunk)):this.error(`regular expressions cannot begin with ${J[2]}`,{offset:J.index+J[1].length});break;case!(J=this.matchWithInterpolations(F2,"///")):({tokens:O,index:D}=J),Y=[];while(K=G2.exec(this.chunk.slice(0,D)))({index:R}=K),[M,Q,X]=K,Y.push({comment:X,offsetInChunk:R+Q.length});$=s2(function(){var S,T,B;B=[];for(S=0,T=Y.length;S<T;S++)A=Y[S],B.push(this.commentToken(A.comment,Object.assign(A,{heregex:!0,returnCommentTokens:!0})));return B}.call(this));break;case!(J=P2.exec(this.chunk)):if([H,_,E]=J,this.validateEscapes(_,{isRegex:!0,offsetInChunk:1}),D=H.length,N=this.prev(),N){if(N.spaced&&(W=N[0],I.call(F1,W)>=0)){if(!E||S2.test(H))return 0}else if(z=N[0],I.call(q2,z)>=0)return 0}if(!E)this.error("missing / (unclosed regex)");break;default:return 0}switch([Z]=L2.exec(this.chunk.slice(D)),G=D+Z.length,q=this.makeToken("REGEX",null,{length:G}),!1){case!!b2.test(Z):this.error(`invalid regular expression flags ${Z}`,{offset:D,length:Z.length});break;case!(H||O.length===1):if(F=_?"/":"///",_==null)_=O[0][1];this.validateUnicodeCodePointEscapes(_,{delimiter:F});let S={delimiter:F};if(F==="///")S.heregex={flags:Z};this.token("REGEX",`/${_}/${Z}`,{length:G,origin:q,data:S});break;default:if(this.token("REGEX_START","(",{length:0,origin:q,generated:!0}),this.token("IDENTIFIER","RegExp",{length:0,generated:!0}),this.token("CALL_START","(",{length:0,generated:!0}),this.mergeInterpolationTokens(O,{double:!0,heregex:{flags:Z},endOffset:G-Z.length,quote:"///"},(T)=>{return this.validateUnicodeCodePointEscapes(T,{delimiter:F})}),Z)this.token(",",",",{offset:D-1,length:0,generated:!0}),this.token("STRING",'"'+Z+'"',{offset:D,length:Z.length});this.token(")",")",{offset:G,length:0,generated:!0}),this.token("REGEX_END",")",{offset:G,length:0,generated:!0})}if($!=null?$.length:void 0)r(this.tokens[this.tokens.length-1],{heregexCommentTokens:$});return G}jsToken(){var _,E,X,R;if(!(this.chunk.charAt(0)==="`"&&(E=(X=M2.exec(this.chunk))||Q2.exec(this.chunk))))return 0;return R=E[1],{length:_}=E[0],this.token("JS",R,{length:_,data:{here:!!X}}),_}literalToken(){var _,E,X,R,A,$,Y,F,G,Z,M,D,Q,J;if(_=O2.exec(this.chunk)){if([J]=_,A2.test(J))this.tagParameters()}else J=this.chunk.charAt(0);if(D=J,R=this.prev(),R&&I.call(["=",...V1],J)>=0){if(M=!1,J==="="&&((A=R[1])==="||"||A==="&&"||A==="??")&&!R.spaced){if(R[0]="COMPOUND_ASSIGN",R[1]+="=",($=R.data)!=null?$.original:void 0)R.data.original+="=";R[2].range=[R[2].range[0],R[2].range[1]+1],R[2].last_column+=1,R[2].last_column_exclusive+=1,R=this.tokens[this.tokens.length-2],M=!0}if(R&&R[0]!=="PROPERTY"){if(X=(Y=R.origin)!=null?Y:R,E=R3(R[1],X[1]),E)this.error(E,X[2])}if(M)return J.length}if(J==="("&&(R!=null?R[0]:void 0)==="IMPORT")R[0]="DYNAMIC_IMPORT";if(J==="{"&&this.seenImport)this.importSpecifierList=!0;else if(this.importSpecifierList&&J==="}")this.importSpecifierList=!1;else if(J==="{"&&(R!=null?R[0]:void 0)==="EXPORT")this.exportSpecifierList=!0;else if(this.exportSpecifierList&&J==="}")this.exportSpecifierList=!1;if(J===";"){if(F=R!=null?R[0]:void 0,I.call(["=",...G1],F)>=0)this.error("unexpected ;");this.seenFor=this.seenImport=this.seenExport=!1,D="TERMINATOR"}else if(J==="*"&&(R!=null?R[0]:void 0)==="EXPORT")D="EXPORT_ALL";else if(J==="<=>")D="BIND";else if(J==="~=")D="COMPUTED_ASSIGN";else if(J===":=")D="REACTIVE_ASSIGN";else if(J==="~>")D="REACT_ASSIGN";else if(J==="=!")D="READONLY_ASSIGN";else if(I.call(H2,J)>=0)D="MATH";else if(I.call(E2,J)>=0)D="COMPARE";else if(I.call(V1,J)>=0)D="COMPOUND_ASSIGN";else if(I.call(C1,J)>=0)D="UNARY";else if(I.call(h2,J)>=0)D="UNARY_MATH";else if(I.call(j2,J)>=0)D="SHIFT";else if(J==="?"&&(R!=null?R.spaced:void 0))D="SPACE?";else if(R){if(J==="("&&!R.spaced&&(G=R[0],I.call(F1,G)>=0)){if(R[0]==="?")R[0]="FUNC_EXIST";else if(R[0]==="?.")R[0]="ES6_OPTIONAL_CALL";D="CALL_START"}else if(J==="["&&((Z=R[0],I.call(k1,Z)>=0)&&!R.spaced||R[0]==="::"))switch(D="INDEX_START",R[0]){case"?":R[0]="INDEX_SOAK";break;case"?.":R[0]="ES6_OPTIONAL_INDEX";break}}switch(Q=this.makeToken(D,J),J){case"(":case"{":case"[":this.ends.push({tag:H1[J],origin:Q});break;case")":case"}":case"]":this.pair(J)}return this.tokens.push(this.makeToken(D,J)),J.length}outdentToken({moveOut:_,noNewlines:E,outdentLength:X=0,offset:R=0,indentSize:A,endsContinuationLineIndentation:$}){var Y,F,G,Z,M;Y=this.indent-_;while(_>0)if(G=this.indents[this.indents.length-1],!G)this.outdebt=_=0;else if(this.outdebt&&_<=this.outdebt)this.outdebt-=_,_=0;else{if(F=this.indents.pop()+this.outdebt,X&&(Z=this.chunk[X],I.call(D2,Z)>=0))Y-=F-_,_=F;this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",_,{length:X,indentSize:A+_-F}),_-=F}if(F)this.outdebt-=_;if(this.suppressSemicolons(),!(this.tag()==="TERMINATOR"||E)){if(M=this.token("TERMINATOR",`
14
- `,{offset:R+X,length:0}),$)M.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)e1(_.comments,this.tokens[this.tokens.length-2]);this.tokens.pop()}return this}tagParameters(){var _,E,X,R,A;if(this.tag()!==")")return this.tagDoIife();X=[],{tokens:A}=this,_=A.length,E=A[--_],E[0]="PARAM_END";while(R=A[--_])switch(R[0]){case")":X.push(R);break;case"(":case"CALL_START":if(X.length)X.pop();else if(R[0]==="(")return R[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,X=E,R=/^[#$]\{/){var A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S;if(S=[],K=E.length,this.chunk.slice(0,K)!==E)return null;H=this.chunk.slice(K);while(!0){if([O]=_.exec(H),this.validateEscapes(O,{isRegex:E.charAt(0)==="/",offsetInChunk:K}),S.push(this.makeToken("NEOSTRING",O,{offset:K})),H=H.slice(O.length),K+=O.length,!(D=R.exec(H)))break;if([Z]=D,G=Z.length-1,[M,Y,J]=this.getLineAndColumnFromChunk(K+G),z=H.slice(G),{tokens:Q,index:F}=new U().tokenize(z,{line:M,column:Y,offset:J,untilBalanced:!0,locTweaks:this.locTweaks}),F+=G,A=H[F-1]==="}",A)[q]=Q,[$]=d.call(Q,-1),q[0]="INTERPOLATION_START",q[1]="(",q[2].first_column-=G,q[2].range=[q[2].range[0]-G,q[2].range[1]],$[0]="INTERPOLATION_END",$[1]=")",$.origin=["","end of interpolation",$[2]];if(((N=Q[1])!=null?N[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(!A)q=this.makeToken("INTERPOLATION_START","(",{offset:K,length:0,generated:!0}),$=this.makeToken("INTERPOLATION_END",")",{offset:K+F,length:0,generated:!0}),Q=[q,...Q,$];S.push(["TOKENS",Q]),H=H.slice(F),K+=F}if(H.slice(0,X.length)!==X)this.error(`missing ${X}`,{length:E.length});return{tokens:S,index:K+X.length}}mergeInterpolationTokens(_,E,X){var R,A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P;if({quote:H,indent:M,double:$,heregex:G,endOffset:Y}=E,_.length>1)W=this.token("STRING_START","(",{length:(O=H!=null?H.length:void 0)!=null?O:0,data:{quote:H},generated:!(H!=null?H.length:void 0)});F=this.tokens.length,R=_.length-1;for(Z=D=0,K=_.length;D<K;Z=++D){switch(L=_[Z],[B,P]=L,B){case"TOKENS":if(P.length===2&&(P[0].comments||P[1].comments)){z=this.makeToken("JS","",{generated:!0}),z[2]=P[0][2];for(Q=0,q=P.length;Q<q;Q++){if(w=P[Q],!w.comments)continue;if(z.comments==null)z.comments=[];z.comments.push(...w.comments)}P.splice(1,0,z)}N=P[0],j=P;break;case"NEOSTRING":if(A=X.call(this,L[1],Z),Z===0)r(L,{initialChunk:!0});if(Z===R)r(L,{finalChunk:!0});if(r(L,{indent:M,quote:H,double:$}),G)r(L,{heregex:G});if(L[0]="STRING",L[1]='"'+A+'"',_.length===1&&H!=null){if(L[2].first_column-=H.length,L[1].substr(-2,1)===`
16
- `)L[2].last_line+=1,L[2].last_column=H.length-1;else if(L[2].last_column+=H.length,L[1].length===2)L[2].last_column-=1;L[2].last_column_exclusive+=H.length,L[2].range=[L[2].range[0]-H.length,L[2].range[1]+H.length]}N=L,j=[L]}this.tokens.push(...j)}if(W){if([J]=d.call(_,-1),W.origin=["STRING",null,{first_line:W[2].first_line,first_column:W[2].first_column,last_line:J[2].last_line,last_column:J[2].last_column,last_line_exclusive:J[2].last_line_exclusive,last_column_exclusive:J[2].last_column_exclusive,range:[W[2].range[0],J[2].range[1]]}],!(H!=null?H.length:void 0))W[2]=W.origin[2];return T=this.token("STRING_END",")",{offset:Y-(H!=null?H:"").length,length:(S=H!=null?H.length:void 0)!=null?S:0,generated:!(H!=null?H.length:void 0)})}}pair(_){var E,X,R,A,$;if(R=this.ends,[X]=d.call(R,-1),_!==($=X!=null?X.tag:void 0)){if($!=="OUTDENT")this.error(`unmatched ${_}`);return A=this.indents,[E]=d.call(A,-1),this.outdentToken({moveOut:E,noNewlines:!0}),this.pair(_)}return this.ends.pop()}getLocationDataCompensation(_,E){var X,R,A,$;$=0,A=E,R=_;while(R<=E){if(R===E&&_!==A)break;if(X=this.locTweaks[R],X!=null)$+=X,E+=X;R++}return $}getLineAndColumnFromChunk(_){var E,X,R,A,$,Y,F,G;if(R=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_),_===0)return[this.chunkLine,this.chunkColumn+R,this.chunkOffset+R];if(_>=this.chunk.length)G=this.chunk;else G=this.chunk.slice(0,+(_-1)+1||9000000000);if($=m2(G,`
17
- `),E=this.chunkColumn,$>0){if(F=G.split(`
18
- `),[A]=d.call(F,-1),E=A.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_-E),Y<0)Y=0;X=this.getLocationDataCompensation(this.chunkOffset+_+Y-E,this.chunkOffset+_+Y)}else E+=G.length,X=R;return[this.chunkLine+$,E+X,this.chunkOffset+_+R]}makeLocationData({offsetInChunk:_,length:E}){var X,R,A;return A={range:[]},[A.first_line,A.first_column,A.range[0]]=this.getLineAndColumnFromChunk(_),R=E>0?E-1:0,[A.last_line,A.last_column,X]=this.getLineAndColumnFromChunk(_+R),[A.last_line_exclusive,A.last_column_exclusive]=this.getLineAndColumnFromChunk(_+R+(E>0?1:0)),A.range[1]=E>0?X+1:X,A}makeToken(_,E,{offset:X=0,length:R=E.length,origin:A,generated:$,indentSize:Y}={}){var F=[_,E,this.makeLocationData({offsetInChunk:X,length:R})];if(A)F.origin=A;if($)F.generated=!0;if(Y!=null)F.indentSize=Y;return F}token(_,E,{offset:X,length:R,origin:A,data:$,generated:Y,indentSize:F}={}){var G=this.makeToken(_,E,{offset:X,length:R,origin:A,generated:Y,indentSize:F});if($)r(G,$);return this.tokens.push(G),G}tag(){var _,E;return _=this.tokens,[E]=d.call(_,-1),E!=null?E[0]:void 0}value(_=!1){var E,X;if(E=this.tokens,[X]=d.call(E,-1),_&&(X!=null?X.origin:void 0)!=null)return X.origin[1];else return X!=null?X[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var _;return K2.test(this.chunk)||(_=this.tag(),I.call(G1,_)>=0)}validateUnicodeCodePointEscapes(_,E){return e2(_,i2(E,{error:this.error}))}validateEscapes(_,E={}){var X,R,A,$,Y,F,G,Z,M,D;if($=E.isRegex?B2:u2,Y=$.exec(_),!Y)return;return Y[0],X=Y[1],G=Y[2],R=Y[3],D=Y[4],M=Y[5],F=G?"octal escape sequences are not allowed":"invalid escape sequence",A=`\\${G||R||D||M}`,this.error(`${F} ${A}`,{offset:((Z=E.offsetInChunk)!=null?Z:0)+Y.index+X.length,length:A.length})}suppressSemicolons(){var _,E,X;X=[];while(this.value()===";")if(this.tokens.pop(),_=(E=this.prev())!=null?E[0]:void 0,I.call(["=",...G1],_)>=0)X.push(this.error("unexpected ;"));else X.push(void 0);return X}error(_,E={}){var X,R,A,$,Y;return A="first_line"in E?E:([R,X]=this.getLineAndColumnFromChunk(($=E.offset)!=null?$:0),{first_line:R,first_column:X,last_column:X+((Y=E.length)!=null?Y:1)-1}),a2(_,A)}},R3=function(U,_=U){switch(!1){case I.call([...N1,...m],U)<0:return`keyword '${_}' can't be assigned`;case I.call(p1,U)<0:return`'${_}' can't be assigned`;case I.call(q1,U)<0:return`reserved word '${_}' can't be assigned`;default:return!1}};g2=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};r=function(U,_){return Object.assign(U.data!=null?U.data:U.data={},_)};N1=["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"];m=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"];l1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};c1=function(){var U=[];for(E1 in l1)U.push(E1);return U}();m=m.concat(c1);q1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];p1=["arguments","eval"];var Y3=N1.concat(q1).concat(p1);R2=65279;Z2=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;z2=/^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;O2=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;h1=/^[^\n\S]+/;_2=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;A2=/^[-=]>/;N2=/^(?:\n[^\n\S]*)+/;Q2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;M2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;f2=/^(?:'''|"""|'|")/;v2=/^(?:[^\\']|\\[\s\S])*/;y2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;Y2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;$2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;X2=/\n+([^\n\S]*)(?=\S)/g;P2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;L2=/^\w*/;b2=/^(?!.*(.).*\1)[gimsuy]*$/;F2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;G2=/(\s+)(#(?!{).*)/gm;T2=/^(\/|\/{3}\s*)(\*)/;S2=/^\/=?\s/;U2=/\*\//;K2=/^\s*(?:,|\??\.(?![.\d])|\??::)/;u2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;B2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;C2=/\s+$/;V1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];C1=["NEW","TYPEOF","DELETE"];h2=["!","~"];j2=["<<",">>",">>>"];E2=["==","!=","===","!==","<",">","<=",">=","=~"];H2=["*","/","%","//","%%"];I2=["IN","OF","INSTANCEOF"];c2=["TRUE","FALSE"];F1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];k1=F1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);l2=["IDENTIFIER",")","]","NUMBER"];q2=k1.concat(["++","--"]);W2=["INDENT","OUTDENT","TERMINATOR"];D2=[")","}","]"];U1=function(U,_){var E,X,R,A,$;if(!U.comments)return;if(_.comments&&_.comments.length!==0){$=[],A=U.comments;for(X=0,R=A.length;X<R;X++)if(E=A[X],E.unshift)$.push(E);else _.comments.push(E);_.comments=$.concat(_.comments)}else _.comments=U.comments;return delete U.comments};x=function(U,_,E,X){var R=[U,_];if(R.generated=!0,E)R.origin=E;if(X)U1(X,R);return R};w2=function(){class U{rewrite(_){var E,X,R;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 A,$,Y,F;Y=this.tokens,F=[];for(A=0,$=Y.length;A<$;A++)R=Y[A],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?(X=process.env)!=null?X.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var A,$,Y,F;Y=this.tokens,F=[];for(A=0,$=Y.length;A<$;A++)R=Y[A],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}return this.tokens}scanTokens(_){var E,X,R;({tokens:R}=this),E=0;while(X=R[E])E+=_.call(this,X,E,R);return!0}detectEnd(_,E,X,R={}){var A,$,Y,F,G;({tokens:G}=this),A=0;while(F=G[_]){if(A===0&&E.call(this,F,_))return X.call(this,F,_);if($=F[0],I.call(a,$)>=0)A+=1;else if(Y=F[0],I.call(p,Y)>=0)A-=1;if(A<0){if(R.returnOnNegativeLevel)return;return X.call(this,F,_)}_+=1}return _-1}removeLeadingNewlines(){var _,E,X,R,A,$,Y,F,G;Y=this.tokens;for(_=E=0,A=Y.length;E<A;_=++E)if([G]=Y[_],G!=="TERMINATOR")break;if(_===0)return;F=this.tokens.slice(0,_);for(X=0,$=F.length;X<$;X++)R=F[X],U1(R,this.tokens[_]);return this.tokens.splice(0,_)}closeOpenCalls(){var _,E;return E=function(X,R){var A;return(A=X[0])===")"||A==="CALL_END"},_=function(X,R){return X[0]="CALL_END"},this.scanTokens(function(X,R){if(X[0]==="CALL_START")this.detectEnd(R+1,E,_);return 1})}closeOpenIndexes(){var _,E,X;return X=null,E=function(R,A){var $;return($=R[0])==="]"||$==="INDEX_END"},_=function(R,A){if(this.tokens.length>=A&&this.tokens[A+1][0]===":")return X[0]="[",R[0]="]";else return R[0]="INDEX_END"},this.scanTokens(function(R,A){if(R[0]==="INDEX_START")X=R,this.detectEnd(A+1,E,_);return 1})}indexOfTag(_,...E){var X,R,A,$,Y;X=0;for(R=A=0,$=E.length;0<=$?A<$:A>$;R=0<=$?++A:--A){if(E[R]==null)continue;if(typeof E[R]==="string")E[R]=[E[R]];if(Y=this.tag(_+R+X),I.call(E[R],Y)<0)return-1}return _+R+X-1}looksObjectish(_){var E,X;if(this.indexOfTag(_,"@",null,":")!==-1||this.indexOfTag(_,null,":")!==-1)return!0;if(X=this.indexOfTag(_,a),X!==-1){if(E=null,this.detectEnd(X+1,function(R){var A;return A=R[0],I.call(p,A)>=0},function(R,A){return E=A}),this.tag(E+1)===":")return!0}return!1}findTagsBackwards(_,E){var X,R,A,$,Y,F,G;X=[];while(_>=0&&(X.length||($=this.tag(_),I.call(E,$)<0)&&((Y=this.tag(_),I.call(a,Y)<0)||this.tokens[_].generated)&&(F=this.tag(_),I.call(Y1,F)<0))){if(R=this.tag(_),I.call(p,R)>=0)X.push(this.tag(_));if((A=this.tag(_),I.call(a,A)>=0)&&X.length)X.pop();_-=1}return G=this.tag(_),I.call(E,G)>=0}addImplicitBracesAndParens(){var _,E,X;return _=[],E=null,X=!1,this.scanTokens(function(R,A,$){var Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P,V,v,f,c,C,t,g,Z1,P1,J1,D1,Q1,h,i1,L1,s1,e,d1,R1,y;if([y]=R,[w]=P=A>0?$[A-1]:[],[S]=T=A<$.length-1?$[A+1]:[],h=function(){return _[_.length-1]},i1=A,G=function(u){return A-i1+u},N=function(u){var b;return u!=null?(b=u[2])!=null?b.ours:void 0:void 0},z=function(u){return N(u)&&(u!=null?u[0]:void 0)==="{"},W=function(u){return N(u)&&(u!=null?u[0]:void 0)==="("},Q=function(){return N(h())},J=function(){return W(h())},q=function(){return z(h())},K=function(){var u;return Q()&&((u=h())!=null?u[0]:void 0)==="CONTROL"},L1=function(u){return _.push(["(",u,{ours:!0}]),$.splice(u,0,x("CALL_START","(",["","implicit function call",R[2]],P))},Y=function(){return _.pop(),$.splice(A,0,x("CALL_END",")",["","end of input",R[2]],P)),A+=1},s1=function(u,{startsLine:b=!0,continuationLineIndent:s}={}){var l;return _.push(["{",u,{sameLine:!0,startsLine:b,ours:!0,continuationLineIndent:s}]),l=new String("{"),l.generated=!0,$.splice(u,0,x("{",l,R,P))},F=function(u){return u=u!=null?u:A,_.pop(),$.splice(u,0,x("}","}",R,P)),A+=1},Z=(u)=>{var b=null;if(this.detectEnd(u,function(s){return s[0]==="TERMINATOR"},function(s,l){return b=l},{returnOnNegativeLevel:!0}),b==null)return!1;return this.looksObjectish(b+1)},(J()||q())&&I.call(b1,y)>=0||q()&&w===":"&&y==="FOR")return _.push(["CONTROL",A,{ours:!0}]),G(1);if(y==="INDENT"&&Q()){if(w!=="=>"&&w!=="->"&&w!=="["&&w!=="("&&w!==","&&w!=="{"&&w!=="ELSE"&&w!=="=")while(J()||q()&&w!==":")if(J())Y();else F();if(K())_.pop();return _.push([y,A]),G(1)}if(I.call(a,y)>=0)return _.push([y,A]),G(1);if(I.call(p,y)>=0){while(Q())if(J())Y();else if(q())F();else _.pop();E=_.pop()}if(D=()=>{var u,b,s,l;if(s=this.findTagsBackwards(A,["FOR"])&&this.findTagsBackwards(A,["FORIN","FOROF","FORFROM"]),u=s||this.findTagsBackwards(A,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!u)return!1;return b=!1,l=R[2].first_line,this.detectEnd(A,function(r1,a1){var X1;return X1=r1[0],I.call(Y1,X1)>=0},function(r1,a1){var X1;return[w,,{first_line:X1}]=$[a1-1]||[],b=l===X1&&(w==="->"||w==="=>")},{returnOnNegativeLevel:!0}),b},(I.call(v1,y)>=0&&R.spaced||y==="?"&&A>0&&!$[A-1].spaced)&&(I.call(u1,S)>=0||S==="..."&&(V=this.tag(A+2),I.call(u1,V)>=0)&&!this.findTagsBackwards(A,["INDEX_START","["])||I.call(x1,S)>=0&&!T.spaced&&!T.newLine)&&!D()&&!((y==="]"||y==="}")&&(S==="->"||S==="=>"))){if(y==="?")y=R[0]="FUNC_EXIST";return L1(A+1),G(2)}if(I.call(v1,y)>=0&&this.indexOfTag(A+1,"INDENT")>-1&&this.looksObjectish(A+2)&&!this.findTagsBackwards(A,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((v=g=(f=h())!=null?f[0]:void 0)==="{"||v==="[")&&!N(h())&&this.findTagsBackwards(A,g)))return L1(A+1),_.push(["INDENT",A+2]),G(3);if(y==="SPACE?")X=!0;if(y===":"){if(X)return X=!1,G(1);if(g=function(){var u;switch(!1){case(u=this.tag(A-1),I.call(p,u)<0):if([d1,e]=E,d1==="["&&e>0&&this.tag(e-1)==="@"&&!$[e-1].spaced)return e-1;else return e;break;case this.tag(A-2)!=="@":return A-2;default:return A-1}}.call(this),R1=g<=0||(c=this.tag(g-1),I.call(Y1,c)>=0)||$[g-1].newLine,h()){if([Q1,P1]=h(),D1=_[_.length-2],(Q1==="{"||Q1==="INDENT"&&(D1!=null?D1[0]:void 0)==="{"&&!N(D1)&&this.findTagsBackwards(P1-1,["{"]))&&(R1||this.tag(g-1)===","||this.tag(g-1)==="{")&&(C=this.tag(g-1),I.call(G1,C)<0))return G(1)}return j=A>1?$[A-2]:[],s1(g,{startsLine:!!R1,continuationLineIndent:j.continuationLineIndent}),G(2)}if(I.call(Y1,y)>=0)for(H=_.length-1;H>=0;H+=-1){if(J1=_[H],!N(J1))break;if(z(J1))J1[2].sameLine=!1}if(y==="TERMINATOR"&&R.endsContinuationLineIndentation){({preContinuationLineIndent:L}=R.endsContinuationLineIndentation);while(q()&&(M=h()[2].continuationLineIndent)!=null&&M>L)F()}O=w==="OUTDENT"||P.newLine;var T1=y==="||"||y==="&&",n1=!1;if(T1&&A+1<$.length){var A1=$[A+1][0],i=A+1;if(A1==="("||A1==="["||A1==="{"){var B1=1;i++;while(i<$.length&&B1>0){var _1=$[i][0];if(_1==="("||_1==="["||_1==="{")B1++;else if(_1===")"||_1==="]"||_1==="}")B1--;i++}}else if(A1!=="TERMINATOR"&&A1!=="OUTDENT"&&A1!==",")i++;if(i<$.length&&$[i][0]===",")n1=!0}if(I.call(g1,y)>=0&&!(T1&&n1)||I.call(K1,y)>=0&&O||(y===".."||y==="...")&&this.findTagsBackwards(A,["INDEX_START"]))while(Q())if([Q1,P1,{sameLine:Z1,startsLine:R1}]=h(),J()&&w!==","||w===","&&y==="TERMINATOR"&&S==null)Y();else if(q()&&!T1&&Z1&&y!=="TERMINATOR"&&w!==":"&&!((y==="POST_IF"||y==="POST_UNLESS"||y==="FOR"||y==="WHILE"||y==="UNTIL")&&R1&&Z(A+1)))F();else if(q()&&y==="TERMINATOR"&&w!==","&&!(R1&&this.looksObjectish(A+1)))F();else if(K()&&$[h()[1]][0]==="CLASS"&&y==="TERMINATOR")_.pop();else break;if(y===","&&!this.looksObjectish(A+1)&&q()&&!((t=this.tag(A+2))==="FOROF"||t==="FORIN")&&(S!=="TERMINATOR"||!this.looksObjectish(A+2))){B=S==="OUTDENT"?1:0;while(q())F(A+B)}return G(1)})}addImplicitCallCommas(){var _,E,X,R,A,$;$=this.tokens,_=0,E=0;while(E<$.length){if(A=$[E][0],X=E>0?$[E-1][0]:null,A==="CALL_START"||A==="(")_++;else if(A==="CALL_END"||A===")")_--;if(_>0&&(A==="->"||A==="=>")&&(R=X,I.call(J2,R)>=0))$.splice(E,0,x(",",",",$[E],$[E-1])),E++;E++}}rescueStowawayComments(){var _,E,X,R;return E=function(A,$,Y,F){if(Y[$][0]!=="TERMINATOR")Y[F](x("TERMINATOR",`
19
- `,Y[$]));return Y[F](x("JS","",Y[$],A))},_=function(A,$){var Y,F;Y=A+1;while(Y!==$.length&&(F=$[Y][0],I.call(n,F)>=0)){if($[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},R=function(A,$,Y){var F,G,Z,M,D,Q,J;G=$;while(G!==Y.length&&(D=Y[G][0],I.call(n,D)>=0))G++;if(!(G===Y.length||(Q=Y[G][0],I.call(n,Q)>=0))){J=A.comments;for(Z=0,M=J.length;Z<M;Z++)F=J[Z],F.unshift=!0;return U1(A,Y[G]),1}else return G=Y.length-1,E(A,G,Y,"push"),1},X=function(A,$,Y){var F,G,Z;F=$;while(F!==-1&&(G=Y[F][0],I.call(n,G)>=0))F--;if(!(F===-1||(Z=Y[F][0],I.call(n,Z)>=0)))return U1(A,Y[F]),1;else return E(A,0,Y,"unshift"),3},this.scanTokens(function(A,$,Y){var F,G,Z,M,D;if(!A.comments)return 1;if(D=1,Z=A[0],I.call(n,Z)>=0){F={comments:[]},G=A.comments.length-1;while(G!==-1){if(A.comments[G].newLine===!1&&A.comments[G].here===!1)F.comments.unshift(A.comments[G]),A.comments.splice(G,1);G--}if(F.comments.length!==0)D=X(F,$-1,Y);if(A.comments.length!==0)R(A,$,Y)}else if(!_($,Y)){F={comments:[]},G=A.comments.length-1;while(G!==-1){if(A.comments[G].newLine&&!A.comments[G].unshift&&!(A[0]==="JS"&&A.generated))F.comments.unshift(A.comments[G]),A.comments.splice(G,1);G--}if(F.comments.length!==0)D=R(F,$+1,Y)}if(((M=A.comments)!=null?M.length:void 0)===0)delete A.comments;return D})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(_,E,X){var R,A,$,Y,F,G,Z;if(_[2])return 1;if(!(_.generated||_.explicit))return 1;if(_.fromThen&&_[0]==="INDENT")return _[2]=_.origin[2],1;if(_[0]==="{"&&($=(G=X[E+1])!=null?G[2]:void 0))({first_line:A,first_column:R,range:[F]}=$);else if(Y=(Z=X[E-1])!=null?Z[2]:void 0)({last_line:A,last_column:R,range:[,F]}=Y),R+=1;else A=R=0,F=0;return _[2]={first_line:A,first_column:R,last_line:A,last_column:R,last_line_exclusive:A,last_column_exclusive:R,range:[F,F]},1})}fixIndentationLocationData(){var _;if(this.allComments==null)this.allComments=d2(this.tokens);return _=(E,{afterPosition:X,indentSize:R,first:A,indented:$})=>{var Y,F,G,Z,M,D,Q,J;if(J=E[2].range[0],M=function(K){if(K.outdented){if(!(R!=null&&K.indentSize>R))return!1}if($&&!K.indented)return!1;if(!(K.locationData.range[0]<J))return!1;if(!(K.locationData.range[0]>X))return!1;return!0},A){Z=null,D=this.allComments;for(F=D.length-1;F>=0;F+=-1)if(Y=D[F],M(Y))Z=Y;else if(Z)return Z;return Z}Q=this.allComments;for(G=Q.length-1;G>=0;G+=-1)if(Y=Q[G],M(Y))return Y;return null},this.scanTokens(function(E,X,R){var A,$,Y,F,G,Z,M,D,Q,J;if(!((M=E[0])==="INDENT"||M==="OUTDENT"||E.generated&&E[0]==="CALL_END"&&!((D=E.data)!=null?D.closingTagNameToken:void 0)||E.generated&&E[0]==="}"))return 1;if(A=E[0]==="INDENT",Z=(Q=E.prevToken)!=null?Q:R[X-1],G=Z[2],J=E.explicit||E.generated,J){$=E,Y=X;while(($.explicit||$.generated)&&Y!==R.length-1)$=R[Y++]}if(F=_(J?$:E,{afterPosition:G.range[0],indentSize:E.indentSize,first:A,indented:J}),A){if(!(F!=null?F.newLine:void 0))return 1}if(E.generated&&E[0]==="CALL_END"&&(F!=null?F.indented:void 0))return 1;if(F!=null)G=F.locationData;return E[2]={first_line:F!=null?G.first_line:G.last_line,first_column:F!=null?A?0:G.first_column:G.last_column,last_line:G.last_line,last_column:G.last_column,last_line_exclusive:G.last_line_exclusive,last_column_exclusive:G.last_column_exclusive,range:A&&F!=null?[G.range[0]-F.indentSize,G.range[1]]:G.range},1})}normalizeLines(){var _,E,X,R,A,$,Y,F,G;return G=A=F=null,Y=null,$=null,R=[],X=function(Z,M){var D,Q,J,K;return Z[1]!==";"&&(D=Z[0],I.call(V2,D)>=0)&&!(Z[0]==="TERMINATOR"&&(Q=this.tag(M+1),I.call(y1,Q)>=0))&&!(Z[0]==="ELSE"&&(G!=="THEN"||($||Y)))&&!(((J=Z[0])==="CATCH"||J==="FINALLY")&&(G==="->"||G==="=>"))||(K=Z[0],I.call(K1,K)>=0)&&(this.tokens[M-1].newLine||this.tokens[M-1][0]==="OUTDENT")},_=function(Z,M){if(Z[0]==="ELSE"&&G==="THEN")R.pop();return this.tokens.splice(this.tag(M-1)===","?M-1:M,0,F)},E=(Z,M)=>{var D,Q,J;if(J=R.length,!(J>0))return M;return D=R.pop(),[,Q]=this.indentation(Z[D]),Q[1]=J*2,Z.splice(M,0,Q),Q[1]=2,Z.splice(M+1,0,Q),this.detectEnd(M+2,function(K,q){var N;return(N=K[0])==="OUTDENT"||N==="TERMINATOR"},function(K,q){if(this.tag(q)==="OUTDENT"&&this.tag(q+1)==="OUTDENT")return Z.splice(q,2)}),M+2},this.scanTokens(function(Z,M,D){var Q,J,K,q,N,W,z;if([z]=Z,Q=(z==="->"||z==="=>")&&this.findTagsBackwards(M,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(M,["THEN","..","..."]),z==="TERMINATOR"){if(this.tag(M+1)==="ELSE"&&this.tag(M-1)!=="OUTDENT")return D.splice(M,1,...this.indentation()),1;if(q=this.tag(M+1),I.call(y1,q)>=0){if(Z[1]===";"&&this.tag(M+1)==="OUTDENT")D[M+1].prevToken=Z,U1(Z,D[M+1]);return D.splice(M,1),0}}if(z==="CATCH")for(J=K=1;K<=2;J=++K){if(!((N=this.tag(M+J))==="OUTDENT"||N==="TERMINATOR"||N==="FINALLY"))continue;return D.splice(M+J,0,...this.indentation()),2+J}if((z==="->"||z==="=>")&&((W=this.tag(M+1))===","||W==="]"||this.tag(M+1)==="."&&Z.newLine))return[A,F]=this.indentation(D[M]),D.splice(M+1,0,A,F),1;if(I.call(f1,z)>=0&&this.tag(M+1)!=="INDENT"&&!(z==="ELSE"&&this.tag(M+1)==="IF")&&!Q){if(G=z,[A,F]=this.indentation(D[M]),G==="THEN")A.fromThen=!0;if(z==="THEN")Y=this.findTagsBackwards(M,["LEADING_WHEN"])&&this.tag(M+1)==="IF",$=this.findTagsBackwards(M,["IF"])&&this.tag(M+1)==="IF";if(z==="THEN"&&this.findTagsBackwards(M,["IF"]))R.push(M);if(z==="ELSE"&&this.tag(M-1)!=="OUTDENT")M=E(D,M);if(D.splice(M+1,0,A),this.detectEnd(M+2,X,_),z==="THEN")D.splice(M,1);return 1}return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(_,E,X){var R,A,$,Y,F,G,Z,M,D,Q;if(_[0]!=="..."&&_[0]!=="..")return 1;let J=0;for(let K=E-1;K>=0;K--){if(X[K][0]==="INDEX_END")J++;if(X[K][0]==="INDEX_START")J--}if(A=J<0,A)return 1;if(Z=X[E-1],F=X[E+1],!Z||!F)return 1;if(M=Z[0],G=F[0],M===","&&G===",")return 1;if(M==="NUMBER")return 1;if(Q=["IDENTIFIER","PROPERTY",")","]","THIS","@"],D=M,I.call(Q,D)>=0){if(R=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],D=G,I.call(R,D)>=0)return X[E-1]=_,X[E]=Z,1}return 1})}tagPostfixConditionals(){var _,E,X;return X=null,E=function(R,A){var $,Y;return[Y]=R,[$]=this.tokens[A-1],Y==="TERMINATOR"||Y==="INDENT"&&I.call(f1,$)<0},_=function(R,A){if(R[0]!=="INDENT"||R.generated&&!R.fromThen)return X[0]="POST_"+X[0]},this.scanTokens(function(R,A){if(R[0]!=="IF"&&R[0]!=="UNLESS")return 1;return X=R,this.detectEnd(A+1,E,_),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(_,E){var X,R,A;if(_.generated||_.data&&Object.keys(_.data).length!==0){_[1]=new String(_[1]),R=(X=_.data)!=null?X:{};for(E1 in R){if(!p2.call(R,E1))continue;A=R[E1],_[1][E1]=A}if(_.generated)_[1].generated=!0}return 1})}indentation(_){var E,X;if(E=["INDENT",2],X=["OUTDENT",2],_)E.generated=X.generated=!0,E.origin=X.origin=_;else E.explicit=X.explicit=!0;return[E,X]}tag(_){var E;return(E=this.tokens[_])!=null?E[0]:void 0}}return U.prototype.generate=x,U}.call(null);j1=[["(",")"],["[","]"],["{","}"],["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"]];H1={};a=[];p=[];for(W1=0,o1=j1.length;W1<o1;W1++)[I1,w1]=j1[W1],a.push(H1[w1]=I1),p.push(H1[I1]=w1);y1=["CATCH","THEN","ELSE","FINALLY"].concat(p);v1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];u1=["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","@","->","=>","[","(","{","--","++"];x1=["+","-"];g1=["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"];J2=["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"];f1=["ELSE","->","=>","TRY","FINALLY","THEN"];V2=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];Y1=["TERMINATOR","INDENT","OUTDENT"];K1=[".","?.","::","?::"];b1=["IF","TRY","FINALLY","CATCH","CLASS","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(x1.concat(g1.concat(K1.concat(b1))));G1=["\\",".","?.","?::","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,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,130,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,-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,-118,87,77,-118,81,-118,32,37,36,78,79,-118,63,165,-118,166,84,85,66,49,33,35,38,82,83,93,-118,-118,-118,-118,58,64,65,80,-118,53,59,76,-118,54,-118,-118,55,92,-118,-118,-118,46,57,51,88,52,89,-118,-118,167,168,169,43,44,45,47,48,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,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,280,161,278,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,279,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,281,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,282,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,286,161,284,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,285,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,287,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,288,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,289,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,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,-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,295,93,292,293,294,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,296,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,297,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,298,99,100,299,2,33,60,238,300,2,50,1,301,241,2,50,1,302,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,303,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,304,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,305,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,306,50,60,67,98,68,94,95,99,100,310,96,97,34,308,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,307,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,313,1,99,314,3,33,22,1,-251,-251,-251,2,50,1,315,241,2,50,1,316,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,317,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,318,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,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,320,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,321,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,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,332,331,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,333,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,335,334,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,336,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,338,-125,337,339,-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,340,-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,341,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,342,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,344,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,343,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,113,-368,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,113,-369,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,113,-370,115,-370,-370,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,345,-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,113,-371,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,113,-372,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,113,-373,115,-373,-373,2,47,74,346,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,349,347,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,348,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,350,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,351,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,352,158,353,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,354,355,356,-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,358,357,359,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,360,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,361,192,3,36,3,130,362,158,363,4,68,56,44,2,364,-344,-344,-344,5,68,8,48,44,2,-342,365,-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,366,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,367,368,369,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,370,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,371,-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,372,-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,373,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,374,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,375,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,376,377,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,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,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,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,120,-116,-116,-116,-116,-116,-116,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,378,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,379,380,1,48,381,7,32,7,10,76,9,1,2,386,385,98,382,383,384,387,2,48,20,-221,-221,1,136,388,7,32,7,10,76,12,3,2,393,392,98,389,394,390,391,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,395,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,396,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,397,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,398,2,6,156,101,399,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,400,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,312,121,401,311,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,342,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,402,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,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,406,-125,407,-125,405,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,408,-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,342,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,410,409,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,411,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,412,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,413,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,414,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,342,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,415,30,418,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,416,80,417,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,419,241,2,50,1,420,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,421,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,422,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,423,-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,424,-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,425,-82,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,427,-125,426,-125,7,6,33,1,28,8,4,45,-91,-91,-91,-91,428,-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,429,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,430,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,433,98,258,241,431,259,81,432,434,435,436,437,438,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,439,-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,440,441,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,442,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,443,50,24,25,60,67,98,68,94,95,99,100,444,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,113,-380,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,113,-381,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,113,-382,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,113,-383,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,113,-384,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,113,-385,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,113,-386,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,113,-387,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,113,-388,115,116,-388,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,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-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,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,-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,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,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,120,-396,-396,-396,-396,-396,-396,119,104,103,102,105,106,107,108,109,110,111,-396,113,114,115,116,-396,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,-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,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,-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,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,121,-397,-397,-397,-397,-397,120,90,91,-397,-397,-397,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,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,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,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,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,-395,113,-395,115,116,-395,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,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,121,-398,-398,-398,-398,-398,120,90,91,-398,-398,-398,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,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,120,-399,-399,-399,-399,-399,-399,119,104,103,102,105,106,107,-399,-399,-399,-399,-399,113,-399,115,-399,-399,23,80,42,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,445,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,447,446,448,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,449,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,450,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,451,-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,312,452,121,453,311,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,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,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,455,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,456,1,100,457,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,458,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,459,-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,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,461,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,462,33,35,38,82,83,93,56,58,64,65,80,309,311,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,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,464,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,465,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,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,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,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,468,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,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,-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,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,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,473,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,474,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,475,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,476,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,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,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,478,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,479,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,480,148,152,93,-126,2,6,33,481,482,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,483,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,484,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,338,-125,485,339,-125,1,40,486,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,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,120,-401,-401,-401,-401,-401,-401,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,487,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,488,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,489,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,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,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,491,-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,492,158,6,32,4,3,8,2,72,493,495,158,494,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,496,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,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,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,498,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,499,1,170,500,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,501,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,502,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,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,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,504,368,369,4,40,135,1,1,505,506,507,369,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,509,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,508,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,510,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,511,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,512,1,40,513,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,514,-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,515,3,54,1,1,516,99,100,3,121,12,5,518,517,214,3,54,1,1,519,99,100,1,48,520,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,521,-125,5,6,33,1,28,57,-212,-212,-212,-212,-212,6,32,7,10,85,1,2,386,385,98,523,384,387,6,6,33,1,28,57,11,-217,-217,-217,-217,-217,524,6,6,33,1,28,57,11,-219,-219,-219,-219,-219,525,2,32,17,526,98,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-223,-223,-223,-223,-223,527,-223,-223,-223,-223,-223,-223,-223,-223,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,529,-125,528,-125,5,6,33,1,28,57,-235,-235,-235,-235,-235,6,32,7,10,88,3,2,393,392,98,394,530,391,6,6,33,1,28,57,11,-240,-240,-240,-240,-240,531,6,6,33,1,28,57,11,-243,-243,-243,-243,-243,532,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,534,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,535,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,536,93,3,54,1,1,537,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,538,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,539,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,408,-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,541,540,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,342,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,543,231,542,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,544,-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,406,-125,407,-125,545,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,342,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,403,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,546,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,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,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,549,-125,548,-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,342,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,418,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,550,80,417,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,551,-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,552,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,553,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,554,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,555,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,557,558,556,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,559,560,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,561,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,562,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,563,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,564,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,565,-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,566,567,568,569,570,571,572,-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,573,236,237,134,2,33,60,238,574,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,575,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,576,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,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,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,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,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,579,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,580,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,581,1,170,582,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,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,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,584,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,585,312,121,453,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,586,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,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,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,312,588,121,453,311,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,589,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,312,32,37,36,78,79,63,165,166,84,85,66,49,590,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,591,23,100,22,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,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,593,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,594,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,595,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,596,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,597,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,598,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,599,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,600,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,601,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,603,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,602,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,604,148,152,93,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,605,-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,606,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,607,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,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,120,-403,-403,-403,-403,-403,-403,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,608,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,609,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,610,158,2,36,3,611,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,612,158,121,613,120,90,91,614,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,615,158,121,616,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,617,158,121,618,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,619,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,620,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,621,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,622,623,507,369,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,624,158,3,40,135,2,-351,-351,-351,3,36,3,29,625,158,626,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,627,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,628,-125,-125,338,-125,339,-125,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,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-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,629,6,32,7,10,85,1,2,386,385,98,630,384,387,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,631,99,100,3,6,33,86,633,634,632,10,6,26,3,4,1,9,35,41,10,2,-126,386,-126,-126,-126,98,-126,-126,635,387,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,636,-125,2,32,17,637,98,2,32,17,638,98,1,48,-222,3,54,1,1,639,99,100,3,6,33,86,641,642,640,10,6,26,3,4,1,9,35,41,12,5,-126,393,-126,-126,-126,98,-126,-126,394,643,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,529,-125,644,-125,3,32,17,88,645,98,646,2,32,17,647,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,648,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,649,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,650,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,651,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,652,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,342,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,410,653,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,342,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,404,403,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,342,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,410,231,654,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,541,655,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,656,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,658,657,659,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,342,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,660,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,549,-125,661,-125,2,36,3,662,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,663,-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,664,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,665,560,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,560,260,252,259,253,254,261,-192,666,5,6,33,1,28,57,-194,-194,-194,-194,-194,6,6,33,1,28,12,45,-82,-82,-82,-82,667,-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,668,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,669,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,670,2,33,60,238,671,2,50,1,672,241,2,50,1,673,241,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-110,-110,-110,-110,674,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,675,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,676,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,677,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,678,2,33,60,238,679,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,680,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,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,120,-400,-400,-400,-400,-400,-400,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,681,-327,-327,120,-327,-327,-327,682,-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,683,-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,684,-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,685,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,686,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,687,1,100,688,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,689,312,121,453,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,690,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,691,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,692,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,693,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,338,-125,694,-125,2,36,3,602,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,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,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,695,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,696,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,697,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,698,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,699,158,121,700,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,701,158,121,702,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,703,158,1,40,704,4,6,34,135,2,705,-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,706,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,707,158,3,54,1,1,708,99,100,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,709,-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,710,4,32,17,86,2,386,98,711,387,6,32,7,10,85,1,2,386,385,98,712,384,387,5,6,33,1,28,57,-213,-213,-213,-213,-213,3,6,33,1,633,634,713,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,714,-224,-224,-224,-224,-224,-224,-224,-224,4,32,17,88,5,393,98,394,715,6,32,7,10,88,3,2,393,392,98,394,716,391,5,6,33,1,28,57,-236,-236,-236,-236,-236,3,6,33,1,641,642,717,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,718,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,406,-125,407,-125,719,5,6,33,1,28,16,-278,-278,-278,-278,-278,5,6,33,1,28,16,-279,-279,-279,-279,-279,1,100,720,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,342,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,721,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,342,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,418,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,722,80,417,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,658,659,723,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,295,93,724,725,294,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,726,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,427,-125,727,-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,728,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,555,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,729,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,730,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,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,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,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,733,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,734,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,735,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,736,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,737,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,738,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,739,-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,740,-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,741,1,100,742,1,100,743,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,744,3,6,33,1,481,482,745,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,746,158,121,120,90,91,747,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,748,158,121,749,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,750,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,751,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,752,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,753,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,754,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,633,634,755,3,54,1,1,756,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,522,-125,757,-125,5,6,33,1,28,57,-215,-215,-215,-215,-215,3,54,1,1,758,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,529,-125,759,-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,541,760,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,549,-125,761,-125,5,6,29,4,1,28,-270,-270,-270,-270,-270,3,124,44,2,762,446,448,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,763,192,5,6,33,1,28,57,-85,-85,-85,-85,-85,3,6,33,1,557,558,764,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,765,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,766,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,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,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,768,-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,769,-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,770,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,771,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,772,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,773,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,774,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,775,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,776,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,633,634,777,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,641,642,778,5,6,33,1,28,16,-280,-280,-280,-280,-280,3,6,33,1,658,659,779,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,780,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,781,5,6,33,1,28,57,-196,-196,-196,-196,-196,1,100,782,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,783,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,784,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,785,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,786,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,787,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,788,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,791,-332,-332,-332,-332,-332,789,-332,-332,-332,790,-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,792,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,793,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,794,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,795,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,791,-334,-334,-334,-334,-334,796,-334,-334,-334,797,-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,791,-333,-333,-333,-333,-333,798,-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,799,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,800,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,801,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,791,-335,-335,-335,-335,-335,802,-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,803,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,X,R,A,$;while(E<U.length){X=U[E++],R={},A=0,$=[];while(X--)A+=U[E++],$.push(A);for(A of $)R[A]=U[E++];_.push(R)}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,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,117,2],ruleActions:(U,_,E,X)=>{let R=_,A=_.length-1;switch(U){case 1:return["program"];case 2:return["program",...R[A]];case 3:case 61:case 128:case 193:case 212:case 235:case 267:case 281:case 285:case 289:case 344:case 350:return[R[A]];case 4:case 129:case 194:case 213:case 236:case 268:case 290:return[...R[A-2],R[A]];case 5:case 63:case 288:return R[A-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 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 309:case 342:case 358:case 360:return R[A];case 30:return["def",R[A-4],R[A-2],R[A]];case 31:return["def",R[A-1],[],R[A]];case 32:return["state",R[A-2],R[A]];case 33:return["state",R[A-3],R[A]];case 34:return["state",R[A-4],R[A-1]];case 35:return["computed",R[A-2],R[A]];case 36:return["computed",R[A-3],R[A]];case 37:return["computed",R[A-4],R[A-1]];case 38:return["readonly",R[A-2],R[A]];case 39:return["readonly",R[A-3],R[A]];case 40:return["readonly",R[A-4],R[A-1]];case 41:return["effect",R[A-2],R[A]];case 42:return["effect",R[A-3],R[A]];case 43:return["effect",R[A-4],R[A-1]];case 44:case 45:return["effect",null,R[A]];case 46:return["effect",null,R[A-1]];case 49:return["yield"];case 50:return["yield",R[A]];case 51:return["yield",R[A-1]];case 52:return["yield-from",R[A]];case 53:return["block"];case 54:return["block",...R[A-1]];case 60:return["str",...R[A-1]];case 62:case 282:case 286:case 351:return[...R[A-1],R[A]];case 64:case 215:case 238:case 253:case 270:return R[A-2];case 65:return"";case 68:return["regex",R[A-1]];case 69:return["regex-index",R[A-2],R[A]];case 70:return["regex-index",R[A],null];case 74:return"undefined";case 75:return"null";case 79:return["=",R[A-2],R[A]];case 80:return["=",R[A-3],R[A]];case 81:return["=",R[A-4],R[A-1]];case 82:return[R[A],R[A],null];case 84:return[R[A-2],R[A],":"];case 85:return[R[A-4],R[A-1],":"];case 86:return[R[A-2],R[A],"="];case 87:return[R[A-4],R[A-1],"="];case 92:return["dynamicKey",R[A-1]];case 93:return["[]","this",R[A-1]];case 95:case 96:case 140:return["...",R[A]];case 102:case 248:return["super",...R[A]];case 103:case 249:return[R[A-1],...R[A]];case 104:case 105:return[R[A-2],...R[A]];case 106:case 143:case 160:return[".",R[A-2],R[A]];case 107:case 144:case 161:return["?.",R[A-2],R[A]];case 108:case 145:case 162:return["::",R[A-2],R[A]];case 109:case 146:case 163:return["?::",R[A-2],R[A]];case 110:case 147:case 164:return["::",R[A-1],"prototype"];case 111:case 148:case 165:return["?::",R[A-1],"prototype"];case 112:case 149:case 151:case 166:return["[]",R[A-3],R[A-1]];case 113:case 150:case 152:case 167:return["[]",R[A-5],R[A-2]];case 114:case 154:case 156:case 168:return["?[]",R[A-4],R[A-1]];case 115:case 155:case 157:case 169:return["?[]",R[A-6],R[A-2]];case 116:return["return",R[A]];case 117:return["return",R[A-1]];case 118:return["return"];case 119:case 121:return[R[A-1],R[A-3],R[A]];case 120:case 122:return[R[A-1],[],R[A]];case 127:case 192:case 252:case 283:return[];case 130:case 195:case 214:case 237:case 269:return[...R[A-3],R[A]];case 131:case 196:case 216:case 239:case 271:return[...R[A-5],...R[A-2]];case 133:case 343:return["default",R[A-2],R[A]];case 134:return["rest",R[A]];case 135:return["expansion"];case 153:return[R[A-1][0],R[A-3],...R[A-1].slice(1)];case 158:return["optindex",R[A-4],R[A-1]];case 159:return["optindex",R[A-6],R[A-2]];case 182:return[".","super",R[A]];case 183:return["[]","super",R[A-1]];case 184:return["[]","super",R[A-2]];case 185:return[".","new",R[A]];case 186:return[".","import",R[A]];case 187:return["object-comprehension",R[A-8],R[A-6],[["for-of",R[A-4],R[A-2],!1]],[]];case 188:return["object-comprehension",R[A-10],R[A-8],[["for-of",R[A-6],R[A-4],!1]],[R[A-2]]];case 189:return["object-comprehension",R[A-9],R[A-7],[["for-of",R[A-4],R[A-2],!0]],[]];case 190:return["object-comprehension",R[A-11],R[A-9],[["for-of",R[A-6],R[A-4],!0]],[R[A-2]]];case 191:return["object",...R[A-2]];case 197:return["class",null,null];case 198:return["class",null,null,R[A]];case 199:return["class",null,R[A]];case 200:return["class",null,R[A-1],R[A]];case 201:return["class",R[A],null];case 202:return["class",R[A-1],null,R[A]];case 203:return["class",R[A-2],R[A]];case 204:return["class",R[A-3],R[A-1],R[A]];case 205:case 208:return["import","{}",R[A]];case 206:case 207:return["import",R[A-2],R[A]];case 209:return["import",R[A-4],R[A]];case 210:return["import",[R[A-4],R[A-2]],R[A]];case 211:return["import",[R[A-7],R[A-4]],R[A]];case 218:case 220:case 241:case 242:case 244:case 345:return[R[A-2],R[A]];case 222:return["*",R[A]];case 223:return["export","{}"];case 224:return["export",R[A-2]];case 225:case 226:return["export",R[A]];case 227:return["export",["=",R[A-2],R[A]]];case 228:return["export",["=",R[A-3],R[A]]];case 229:return["export",["=",R[A-4],R[A-1]]];case 230:return["export-default",R[A]];case 231:return["export-default",R[A-1]];case 232:return["export-all",R[A]];case 233:return["export-from","{}",R[A]];case 234:return["export-from",R[A-4],R[A]];case 245:return["tagged-template",R[A-2],R[A]];case 246:return R[A-1]?["?call",R[A-2],...R[A]]:[R[A-2],...R[A]];case 247:return["optcall",R[A-2],...R[A]];case 250:case 287:return null;case 251:return!0;case 254:case 255:return"this";case 256:return[".","this",R[A]];case 257:return["array"];case 258:return["array",...R[A-1]];case 259:return["array",...R[A-2],...R[A-1]];case 260:return"..";case 261:case 275:return"...";case 262:return[R[A-2],R[A-3],R[A-1]];case 263:case 382:case 384:case 385:case 399:case 401:return[R[A-1],R[A-2],R[A]];case 264:return[R[A],R[A-1],null];case 265:return[R[A-1],null,R[A]];case 266:return[R[A],null,null];case 277:return[...R[A-2],...R[A]];case 278:return[...R[A-3],...R[A]];case 279:return[...R[A-2],...R[A-1]];case 280:return[...R[A-5],...R[A-4],...R[A-2],...R[A-1]];case 284:return[...R[A]];case 291:return["try",R[A]];case 292:return["try",R[A-1],R[A]];case 293:return["try",R[A-2],R[A]];case 294:return["try",R[A-3],R[A-2],R[A]];case 295:case 296:case 365:case 368:case 370:return[R[A-1],R[A]];case 297:return[null,R[A]];case 298:return["throw",R[A]];case 299:return["throw",R[A-1]];case 300:return R[A-1].length===1?R[A-1][0]:["block",...R[A-1]];case 301:return R[A-2].length===1?R[A-2][0]:["block",...R[A-2]];case 302:return["while",R[A]];case 303:return["while",R[A-2],R[A]];case 304:return["until",R[A]];case 305:return["until",R[A-2],R[A]];case 306:return R[A-1].length===2?[R[A-1][0],R[A-1][1],R[A]]:[R[A-1][0],R[A-1][1],R[A-1][2],R[A]];case 307:case 308:return R[A].length===2?[R[A][0],R[A][1],[R[A-1]]]:[R[A][0],R[A][1],R[A][2],[R[A-1]]];case 310:return["loop",R[A]];case 311:return["loop",[R[A]]];case 312:return["for-in",R[A-3],R[A-1],null,null,R[A]];case 313:return["for-in",R[A-5],R[A-3],null,R[A-1],R[A]];case 314:return["for-in",R[A-5],R[A-3],R[A-1],null,R[A]];case 315:return["for-in",R[A-7],R[A-5],R[A-1],R[A-3],R[A]];case 316:return["for-in",R[A-7],R[A-5],R[A-3],R[A-1],R[A]];case 317:return["for-of",R[A-3],R[A-1],!1,null,R[A]];case 318:return["for-of",R[A-5],R[A-3],!1,R[A-1],R[A]];case 319:return["for-of",R[A-3],R[A-1],!0,null,R[A]];case 320:return["for-of",R[A-5],R[A-3],!0,R[A-1],R[A]];case 321:return["for-from",R[A-3],R[A-1],!1,null,R[A]];case 322:return["for-from",R[A-5],R[A-3],!1,R[A-1],R[A]];case 323:return["for-from",R[A-3],R[A-1],!0,null,R[A]];case 324:return["for-from",R[A-5],R[A-3],!0,R[A-1],R[A]];case 325:return["for-in",[],R[A-1],null,null,R[A]];case 326:return["for-in",[],R[A-3],R[A-1],null,R[A]];case 327:return["comprehension",R[A-4],[["for-in",R[A-2],R[A],null]],[]];case 328:return["comprehension",R[A-6],[["for-in",R[A-4],R[A-2],null]],[R[A]]];case 329:return["comprehension",R[A-6],[["for-in",R[A-4],R[A-2],R[A]]],[]];case 330:return["comprehension",R[A-8],[["for-in",R[A-6],R[A-4],R[A]]],[R[A-2]]];case 331:return["comprehension",R[A-8],[["for-in",R[A-6],R[A-4],R[A-2]]],[R[A]]];case 332:return["comprehension",R[A-4],[["for-of",R[A-2],R[A],!1]],[]];case 333:return["comprehension",R[A-6],[["for-of",R[A-4],R[A-2],!1]],[R[A]]];case 334:return["comprehension",R[A-5],[["for-of",R[A-2],R[A],!0]],[]];case 335:return["comprehension",R[A-7],[["for-of",R[A-4],R[A-2],!0]],[R[A]]];case 336:return["comprehension",R[A-4],[["for-from",R[A-2],R[A],!1,null]],[]];case 337:return["comprehension",R[A-6],[["for-from",R[A-4],R[A-2],!1,null]],[R[A]]];case 338:return["comprehension",R[A-5],[["for-from",R[A-2],R[A],!0,null]],[]];case 339:return["comprehension",R[A-7],[["for-from",R[A-4],R[A-2],!0,null]],[R[A]]];case 340:return["comprehension",R[A-2],[["for-in",[],R[A],null]],[]];case 341:return["comprehension",R[A-4],[["for-in",[],R[A-2],R[A]]],[]];case 346:return["switch",R[A-3],R[A-1],null];case 347:return["switch",R[A-5],R[A-3],R[A-1]];case 348:return["switch",null,R[A-1],null];case 349:return["switch",null,R[A-3],R[A-1]];case 352:return["when",R[A-1],R[A]];case 353:return["when",R[A-2],R[A-1]];case 354:return["if",R[A-1],R[A]];case 355:return R[A-4].length===3?["if",R[A-4][1],R[A-4][2],["if",R[A-1],R[A]]]:[...R[A-4],["if",R[A-1],R[A]]];case 356:return["unless",R[A-1],R[A]];case 357:return["if",["!",R[A-3]],R[A-2],R[A]];case 359:return R[A-2].length===3?["if",R[A-2][1],R[A-2][2],R[A]]:[...R[A-2],R[A]];case 361:case 362:return["if",R[A],[R[A-2]]];case 363:case 364:return["unless",R[A],[R[A-2]]];case 366:case 367:case 369:case 404:return["do-iife",R[A]];case 371:return["-",R[A]];case 372:return["+",R[A]];case 373:return["await",R[A]];case 374:return["await",R[A-1]];case 375:return["--",R[A],!1];case 376:return["++",R[A],!1];case 377:return["--",R[A-1],!0];case 378:return["++",R[A-1],!0];case 379:return["?",R[A-1]];case 380:return["+",R[A-2],R[A]];case 381:return["-",R[A-2],R[A]];case 383:return["**",R[A-2],R[A]];case 386:return["&",R[A-2],R[A]];case 387:return["^",R[A-2],R[A]];case 388:return["|",R[A-2],R[A]];case 389:case 390:case 391:case 392:case 393:case 394:return["control",R[A-1],R[A-2],R[A]];case 395:return["&&",R[A-2],R[A]];case 396:return["||",R[A-2],R[A]];case 397:return["??",R[A-2],R[A]];case 398:return["!?",R[A-2],R[A]];case 400:return["?:",R[A-4],R[A-2],R[A]];case 402:return[R[A-3],R[A-4],R[A-1]];case 403:return[R[A-2],R[A-3],R[A]]}},parseError(U,_){let E,X,R,A,$,Y,F;if(_.recoverable)return this.trace(U);else throw R=(_.line||0)+1,E=_.loc?.first_column||0,F=_.token?` (token: ${_.token})`:"",Y=_.text?` near '${_.text}'`:"",A=`line ${R}, column ${E}`,$=`Parse error at ${A}${F}${Y}: ${U}`,X=Error($),X.hash=_,X},parse(U){let _,E,X,R,A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P;[O,T,G]=[[0],[null],[]],[J,w,L,B,W]=[this.parseTable,"",0,0,0],[E,_]=[2,1],F=Object.create(this.lexer),z={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let v=this.yy[V];z.yy[V]=v}if(F.setInput(U,z.yy),[z.yy.lexer,z.yy.parser]=[F,this],F.yylloc==null)F.yylloc={};j=F.yylloc,G.push(j),N=F.options?.ranges,this.parseError=typeof z.yy.parseError==="function"?z.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=F.lex()||_,typeof V!=="number")V=this.symbolIds[V]||V;return V},[S,K,H,X,q,P,Q,$,D,A]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(H=O[O.length-1],S==null)S=Y();if(X=J[H]!=null?J[H][S]:void 0,X==null){if(R="",!W)A=(()=>{let V=[];for(let v in J[H]){if(!Object.hasOwn(J[H],v))continue;if(this.tokenNames[v]&&v>E)V.push(`'${this.tokenNames[v]}'`)}return V})();throw R=(()=>{if(F.showPosition)return`Parse error on line ${L+1}:
20
- ${F.showPosition()}
21
- Expecting ${A.join(", ")}, got '${this.tokenNames[S]||S}'`;else return`Parse error on line ${L+1}: Unexpected ${S===_?"end of input":`'${this.tokenNames[S]||S}'`}`,this.parseError(R,{text:F.match,token:this.tokenNames[S]||S,line:F.yylineno,loc:j,expected:A})})(),Error(R)}if(X>0)if(O.push(S,X),T.push(F.yytext),G.push(F.yylloc),S=null,!K){if([B,w,L,j]=[F.yyleng,F.yytext,F.yylineno,F.yylloc],W>0)W--}else[S,K]=[K,null];else if(X<0){if($=this.ruleTable[-X*2+1],P.$=T[T.length-$],[Z,M]=[G[G.length-($||1)],G[G.length-1]],P._$={first_line:Z.first_line,last_line:M.last_line,first_column:Z.first_column,last_column:M.last_column},N)P._$.range=[Z.range[0],M.range[1]];if(q=this.ruleActions.apply(P,[-X,T,G,z.yy]),q!=null)P.$=q;if($)O.length-=$*2,T.length-=$,G.length-=$;O.push(this.ruleTable[-X*2]),T.push(P.$),G.push(P._$),D=J[O[O.length-2]][O[O.length-1]],O.push(D)}else if(X===0)return T[T.length-1]}},trace(){},yy:{}},_3=(U={})=>{let _=Object.create(A3);return Object.defineProperty(_,"yy",{value:{...U},enumerable:!1,writable:!0,configurable:!0}),_},$1=_3();var G3=$1.parse.bind($1);var E3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","?[]","::","?::","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function z1(U){if(!Array.isArray(U)||U.length===0)return!1;let _=U[0]?.valueOf?.()??U[0];if(E3.has(_))return!0;return U.length<=4&&!U.some(Array.isArray)}function M1(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]*)$/),X=E?E[1]:"",R=_.slice(1);if(X)R=R.slice(0,-X.length-1);else R=R.slice(0,-1);return`"/${R.split(`
23
- `).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${X}"`}return _}function o(U,_=0,E=!1){if(!Array.isArray(U))return M1(U);if(E&&U[0]==="program"){let G=U[1],M=[Array.isArray(G)?"(program":"(program "+M1(G)],D=Array.isArray(G)?1:2;for(let Q=D;Q<U.length;Q++){let J=o(U[Q],2,!1);M.push(J[0]==="("?" "+J:J)}return M.push(")"),M.join(`
24
- `)}let X=U[0];if(z1(U)&&U.slice(1).every((G)=>!Array.isArray(G)||z1(G))){let Z=`(${U.map((M)=>Array.isArray(M)?o(M,0,!1):M1(M)).join(" ")})`;if(!Z.includes(`
25
- `))return" ".repeat(_)+Z}let A=" ".repeat(_),$;if(Array.isArray(X)){if($=o(X,0,!1),$.includes(`
26
- `))$=$.split(`
27
- `).map((Z,M)=>M===0?Z:" ".repeat(_+2)+Z).join(`
28
- `)}else $=M1(X);let Y=[`${A}(${$}`],F=X==="block";for(let G=1;G<U.length;G++){let Z=U[G];if(!Array.isArray(Z))Y[Y.length-1]+=" "+M1(Z);else{let M=z1(Z)&&Z.every((D)=>!Array.isArray(D)||z1(D));if(!F&&M){let D=o(Z,0,!1);if(!D.includes(`
29
- `)){Y[Y.length-1]+=" "+D;continue}}Y.push(o(Z,_+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",control:"generateControl",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,X=_ instanceof String?_.await:void 0,R=_ instanceof String?_.invert:void 0;if(_ instanceof String)_=_.valueOf();if(X!==void 0)U[0].await=X;if(R!==void 0)U[0].invert=R;if(Array.isArray(_)){U.forEach((A)=>this.collectProgramVariables(A));return}if(_==="export"||_==="export-default"||_==="export-all"||_==="export-from")return;if(_==="state"||_==="computed"){let[A]=E,$=typeof A==="string"?A:A.valueOf();if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add($);return}if(_==="readonly")return;if(k.ASSIGNMENT_OPS.has(_)){let[A,$]=E;if(typeof A==="string"||A instanceof String){let Y=A instanceof String?A.valueOf():A;if(!this.reactiveVars?.has(Y))this.programVars.add(Y)}else if(Array.isArray(A)&&A[0]==="array")this.collectVarsFromArray(A,this.programVars);else if(Array.isArray(A)&&A[0]==="object")this.collectVarsFromObject(A,this.programVars);this.collectProgramVariables($);return}if(_==="def"||_==="->"||_==="=>")return;if(_==="if"){let[A,$,Y]=E;if(this.collectProgramVariables(A),this.collectProgramVariables($),Y)this.collectProgramVariables(Y);return}if(_==="unless"){let[A,$]=E;this.collectProgramVariables(A),this.collectProgramVariables($);return}if(_==="try"){if(this.collectProgramVariables(E[0]),E.length>=2&&Array.isArray(E[1])&&E[1].length===2&&E[1][0]!=="block"){let[A,$]=E[1];if(A&&Array.isArray(A)&&A[0]==="object")A.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2){let F=Y[1];if(typeof F==="string")this.programVars.add(F)}});else if(A&&Array.isArray(A)&&A[0]==="array")A.slice(1).forEach((Y)=>{if(typeof Y==="string")this.programVars.add(Y)});this.collectProgramVariables($)}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((A)=>this.collectProgramVariables(A))}collectFunctionVariables(U){let _=new Set,E=(X)=>{if(!Array.isArray(X))return;let[R,...A]=X;if(R instanceof String)R=R.valueOf();if(Array.isArray(R)){X.forEach(($)=>E($));return}if(k.ASSIGNMENT_OPS.has(R)){let[$,Y]=A;if(typeof $==="string")_.add($);else if(Array.isArray($)&&$[0]==="array")this.collectVarsFromArray($,_);else if(Array.isArray($)&&$[0]==="object")this.collectVarsFromObject($,_);E(Y);return}if(R==="def"||R==="->"||R==="=>")return;if(R==="try"){if(E(A[0]),A.length>=2&&Array.isArray(A[1])&&A[1].length===2&&A[1][0]!=="block"){let[$,Y]=A[1];if($&&Array.isArray($)&&$[0]==="object")$.slice(1).forEach((F)=>{if(Array.isArray(F)&&F.length===2&&typeof F[1]==="string")_.add(F[1])});else if($&&Array.isArray($)&&$[0]==="array")$.slice(1).forEach((F)=>{if(typeof F==="string")_.add(F)});E(Y)}if(A.length===3)E(A[2]);else if(A.length===2&&(!Array.isArray(A[1])||A[1][0]==="block"))E(A[1]);return}A.forEach(($)=>E($))};return E(U),_}generate(U,_="statement"){if(U instanceof String){if(U.await===!0)return`await ${U.valueOf()}()`;if(U.delimiter==="///"&&U.heregex){let $=U.valueOf(),Y=$.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,F,G]=Y;return`/${this.processHeregex(F)}/${G}`}return $}if(U.quote){let $=U.valueOf(),Y=U.quote;if(Y==='"""'||Y==="'''"){let G=this.extractStringContent(U);return G=G.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${G}\``}if($[0]===Y)return $;let F=$.slice(1,-1);return`${Y}${F}${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 $=U.slice(1,-1);if($.includes(`
31
- `))return`\`${$.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=$.includes("'")&&!$.includes('"')?'"':"'",F=$.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${F}${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,...X]=U,R=E instanceof String?E.await:void 0;if(E instanceof String)E=E.valueOf();let A=k.GENERATORS[E];if(A)return this[A](E,X,_,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 Z=X.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`super.${this.currentMethodName}(${Z})`}if(_==="statement"&&X.length===1){let Z=this.findPostfixConditional(X[0]);if(Z){let M;if(Z.parentOp){let q=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;M=[Z.parentOp,...Z.otherOperands,q]}else M=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;let D=this.generate(E,"value"),Q=this.generate(Z.condition,"value"),J=this.generate(M,"value"),K=`${D}(${J})`;if(Z.type==="unless")return`if (!${Q}) ${K}`;else return`if (${Q}) ${K}`}}let $=R===!0,Y=this.generate(E,"value"),F=X.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", "),G=`${Y}(${F})`;return $?`await ${G}`:G}if(Array.isArray(E)&&typeof E[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(E[0]))return`(${U.map((F)=>this.generate(F,"value")).join(", ")})`}if(Array.isArray(E)){if(E[0]==="."&&(E[2]==="new"||E[2]instanceof String&&E[2].valueOf()==="new")){let Z=E[1],M=this.generate(Z,"value"),D=X.map((K)=>this.unwrap(this.generate(K,"value"))).join(", ");return`new ${Array.isArray(Z)?`(${M})`:M}(${D})`}if(_==="statement"&&X.length===1){let Z=this.findPostfixConditional(X[0]);if(Z){let M;if(Z.parentOp){let q=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;M=[Z.parentOp,...Z.otherOperands,q]}else M=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;let D=this.generate(E,"value"),Q=this.generate(Z.condition,"value"),J=this.generate(M,"value"),K=`${D}(${J})`;if(Z.type==="unless")return`if (!${Q}) ${K}`;else return`if (${Q}) ${K}`}}let $=!1,Y;if(Array.isArray(E)&&(E[0]==="."||E[0]==="::")&&E[2]instanceof String&&E[2].await===!0){$=!0;let[Z,M]=E.slice(1),D=this.generate(Z,"value"),Q=k.NUMBER_LITERAL_REGEX.test(D),J=Array.isArray(Z)&&Z[0]==="object",K=Array.isArray(Z)&&(Z[0]==="await"||Z[0]==="yield"),N=Q||J||K?`(${D})`:D,W=M.valueOf();if(E[0]==="::")Y=`${N}.prototype.${W}`;else Y=`${N}.${W}`}else Y=this.generate(E,"value");let F=X.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", "),G=`${Y}(${F})`;return $?`await ${G}`:G}throw Error(`Unknown s-expression type: ${E}`)}generateProgram(U,_,E,X){let R="",A=[],$=[],Y=[];_.forEach((Z)=>{if(Array.isArray(Z)){let M=Z[0];if(M==="import")A.push(Z);else if(M==="export"||M==="export-default"||M==="export-all"||M==="export-from")$.push(Z);else Y.push(Z)}else Y.push(Z)});let F=Y.map((Z,M)=>{let D=Y.length===1&&A.length===0&&$.length===0,Q=Array.isArray(Z)&&Z[0]==="object",J=Q&&Z.length===2&&Array.isArray(Z[1])&&Array.isArray(Z[1][1])&&Z[1][1][0]==="comprehension",K=Array.isArray(Z)&&(Z[0]==="comprehension"||Z[0]==="object-comprehension"||Z[0]==="do-iife"),q=this.programVars.size===0,N=D&&Q&&q&&!K&&!J,z=M===Y.length-1&&K,H;if(N)H=`(${this.generate(Z,"value")})`;else if(z)H=this.generate(Z,"value");else H=this.generate(Z,"statement");if(H&&!H.endsWith(";")){let O=Array.isArray(Z)?Z[0]:null;if(!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(O)||!H.endsWith("}"))return H+";"}return H}).join(`
32
- `),G=!1;if(A.length>0)R+=A.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
33
- `),G=!0;if(this.programVars.size>0){let Z=Array.from(this.programVars).sort().join(", ");if(G)R+=`
34
- `;R+=`let ${Z};
35
- `,G=!0}if(this.helpers.has("slice"))R+=`const slice = [].slice;
36
- `,G=!0;if(this.helpers.has("modulo"))R+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
37
- `,G=!0;if(this.helpers.has("toSearchable"))R+=`const toSearchable = (v, allowNewlines) => {
38
- `,R+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
39
- `,R+=` if (v == null) return "";
40
- `,R+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
41
- `,R+=` if (typeof v === "symbol") return v.description || "";
42
- `,R+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
43
- `,R+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
44
- `,R+=` }
45
- `,R+=` if (Array.isArray(v)) return v.join(",");
46
- `,R+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
47
- `,R+=` try { return v.toString(); } catch { return ""; }
48
- `,R+=` }
49
- `,R+=` return "";
50
- `,R+=`};
51
- `,G=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)R+=this.getReactiveRuntime(),G=!0;if(this.dataSection!==null&&this.dataSection!==void 0)R+=`var DATA;
52
- `,R+=`_setDataSection();
53
- `,G=!0;if(G&&R.length>0)R+=`
54
- `;if(R+=F,$.length>0)R+=`
55
- `+$.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
56
- `);if(this.dataSection!==null&&this.dataSection!==void 0)R+=`
1
+ var a=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),o=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"]),s={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},d=new Set(Object.keys(s)),D1=new Set(["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"]),Q1=new Set(["break","continue","debugger"]),Z1=new Set(["NEW","TYPEOF","DELETE"]),X1=new Set(["IN","OF","INSTANCEOF"]),c=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),Y1=new Set([...c,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),r=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),J1=new Set(["+","-"]),G1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"]),z1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),b=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),v=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),R1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},t=new Set(["CATCH","THEN","ELSE","FINALLY",...v]),e=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),K1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH"]),A1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),_1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),m=new Set(["INDENT","OUTDENT","TERMINATOR"]),F1=new Set([".","?."]),H1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),O1=new Set([...Y1,"++","--"]),$1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),P1=new Set(["*","/","%","//","%%"]),q1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),u1=new Set(["<<",">>",">>>"]),L1=new Set(["!","~"]),I1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,N1=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,w1=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,E1=/^[^\n\S]+/,B1=/^(?:\n[^\n\S]*)+/,j1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,f1=/^[-=]>/,S1=/^(?:~[=>]|=!)/,V1=/^(?:'''|"""|'|")/,C1=/^(?:[^\\']|\\[\s\S])*/,y1=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,k1=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,h1=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,T1=/\n+([^\n\S]*)(?=\S)/g,v1=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,U1=/^\w*/,g1=/^(?!.*(.).*\1)[gimsuy]*$/,b1=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,x1=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,l1=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,m1=/\s+$/,c1=/^\s*(?:,|\??\.(?![.\d]))/,n1=65279;function W1($,T,{pre:Y=0,row:U=0,col:A=0,len:F=0,data:W=null}={}){let M=[$,T];return M.pre=Y,M.data=W,M.loc={r:U,c:A,n:F},M.spaced=Y>0,M.newLine=!1,M}function k($,T,Y){let U=W1($,T);if(U.generated=!0,Y)U.origin=Y;return U}function C($,{row:T=0,col:Y=0,len:U=1}={}){let A=SyntaxError($);throw A.location={first_line:T,first_column:Y,last_column:Y+U-1},A}function p1($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class x{tokenize($,T={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=T.row||0,this.col=T.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let Y=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(Y===0)C(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(Y),T.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let Y=this.ends[this.ends.length-1];C(`missing ${Y.tag}`,{row:this.row,col:this.col})}if(T.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===n1)$=$.slice(1);if($=$.replace(/\r\n?/g,`
2
+ `),$=$.replace(m1,""),/^[^\n\S]/.test($))$=`
3
+ `+$;return $}advance($){let T=this.code.slice(this.pos,this.pos+$);for(let Y=0;Y<T.length;Y++)if(T[Y]===`
4
+ `)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,T,{len:Y,data:U,pre:A}={}){let F=W1($,T,{pre:A??0,row:this.row,col:this.col,len:Y??(typeof T==="string"?T.length:0),data:U});return this.tokens.push(F),F}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let $=this.prev();return $?$[0]:void 0}prevVal(){let $=this.prev();return $?$[1]:void 0}identifierToken(){if(S1.test(this.chunk))return 0;let $=I1.exec(this.chunk);if(!$)return 0;let[T,Y,U]=$,A=Y.length,F={},W;if(Y==="own"&&this.prevTag()==="FOR")return this.emit("OWN",Y,{len:A}),A;if(Y==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",Y,{len:A}),A;if(Y==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let Q=this.prevTag();if(Q==="DEFAULT"||Q==="IMPORT_ALL"||Q==="IDENTIFIER")return this.emit("AS",Y,{len:A}),A}if((Y==="as"||Y==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(Y==="as!"?"FORASAWAIT":"FORAS","as",{len:A}),A;if(Y==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",Y,{len:A}),A;if(Y==="do"&&/^(\s*super)(?!\(\))/.test(this.chunk.slice(3))){let Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3));return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3}let M=this.prev();if(U&&M&&M[0]==="SPACE?")U=null;if(U||M&&(M[0]==="."||M[0]==="?."||!M.spaced&&M[0]==="@"))W="PROPERTY";else W="IDENTIFIER";let D=Y.endsWith("!")||Y.endsWith("?")?Y.slice(0,-1):Y;if(W==="IDENTIFIER"&&!Y.endsWith("!")&&!Y.endsWith("?")&&(a.has(Y)||o.has(Y)||d.has(Y))&&!(this.exportSpecifierList&&d.has(Y))){if(s[Y]!==void 0)F.original=Y,Y=s[Y];W=this.classifyKeyword(Y,W,F)}if(W==="IDENTIFIER"&&D1.has(D))C(`reserved word '${D}'`,{row:this.row,col:this.col,len:A});if(W==="PROPERTY"&&M){if(M[0]==="."&&this.tokens.length>1){let Q=this.tokens[this.tokens.length-2];if(Q[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";if(Q[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META"}}if(Y.length>1&&Y.endsWith("!"))F.await=!0,Y=Y.slice(0,-1);if(Y.length>1&&Y.endsWith("?"))F.predicate=!0,Y=Y.slice(0,-1);let Z=this.emit(W,Y,{len:A,data:Object.keys(F).length?F:null});if(U)return this.emit(":",":",{len:1}),A+U.length;return A}classifyKeyword($,T,Y){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(Q1.has($))return"STATEMENT";let U=$.toUpperCase();if(U==="WHEN"&&m.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(Z1.has(U))return"UNARY";if(X1.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let A=this.tokens.pop();Y.invert=A.data?.original||A[1]}return"RELATION"}if(a.has($)||o.has($))return U;return T}commentToken(){let $=j1.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=E1.exec(this.chunk);if(!$&&this.chunk[0]!==`
5
+ `)return 0;let T=this.prev();if(T)if($)T.spaced=!0,T.pre=$[0].length;else T.newLine=!0;return $?$[0].length:0}lineToken(){let $=B1.exec(this.chunk);if(!$)return 0;let T=$[0],Y=T.length-1-T.lastIndexOf(`
6
+ `);if(this.isUnfinished())return T.length;if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(Y===this.indent)return this.emitNewline(),T.length;if(Y>this.indent){if(!this.tokens.length)return this.indent=Y,T.length;let U=Y-this.indent;return this.emit("INDENT",U,{len:Y}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=Y,T.length}return this.outdentTo(Y,T.length),T.length}outdentTo($,T=0){let Y=this.indent-$;while(Y>0){let U=this.indents[this.indents.length-1];if(!U)Y=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",Y,{len:T}),Y-=U}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
7
+ `,{len:0})}isUnfinished(){return c1.test(this.chunk)||H1.has(this.prevTag())}pair($){let T=this.ends[this.ends.length-1];if(!T||$!==T.tag){if(T?.tag==="OUTDENT"){let Y=this.indents[this.indents.length-1];if(Y)this.outdentTo(this.indent-Y);return this.pair($)}C(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=V1.exec(this.chunk);if(!$)return 0;let T=$[0],Y=this.prev();if(Y&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))Y[0]="FROM";let U;switch(T){case"'":U=C1;break;case'"':U=y1;break;case"'''":U=k1;break;case'"""':U=h1;break}let{tokens:A,index:F}=this.matchWithInterpolations(U,T),W=T.length===3,M=null;if(W)M=this.processHeredocIndent(F,T,A);return this.mergeInterpolationTokens(A,{quote:T,indent:M,endOffset:F}),F}processHeredocIndent($,T,Y){let U=$-T.length,A=U-1;while(A>=0&&this.chunk[A]!==`
8
+ `)A--;A++;let F=this.chunk.slice(A,U),W=/^\s*$/.test(F)?F.length:null,M="";for(let Q of Y)if(Q[0]==="NEOSTRING")M+=Q[1];let D=null,Z;T1.lastIndex=0;while(Z=T1.exec(M))if(D===null||Z[1].length>0&&Z[1].length<D.length)D=Z[1];if(W===null)return D;if(D===null)return" ".repeat(W);if(W<=D.length)return" ".repeat(W);return D}matchWithInterpolations($,T,Y,U){if(!Y)Y=T;if(!U)U=/^[#$]\{/;let A=[],F=T.length;if(this.chunk.slice(0,F)!==T)return null;let W=this.chunk.slice(F);while(!0){let[M]=$.exec(W);A.push(["NEOSTRING",M,{offset:F}]),W=W.slice(M.length),F+=M.length;let D=U.exec(W);if(!D)break;let Q=D[0].length-1,X=W.slice(Q),J=new x().tokenize(X,{row:this.row,col:this.col+F+Q,untilBalanced:!0,rewrite:!1}),z=J.index+Q;if(W[z-1]==="}"){let R=J.tokens[0],_=J.tokens[J.tokens.length-1];R[0]="INTERPOLATION_START",R[1]="(",_[0]="INTERPOLATION_END",_[1]=")"}if(J.tokens[1]?.[0]==="TERMINATOR")J.tokens.splice(1,1);let G=J.tokens.length;if(G>2&&J.tokens[G-3]?.[0]==="INDENT"&&J.tokens[G-2]?.[0]==="OUTDENT")J.tokens.splice(G-3,2);A.push(["TOKENS",J.tokens]),W=W.slice(z),F+=z}if(W.slice(0,Y.length)!==Y)C(`missing ${Y}`,{row:this.row,col:this.col});return{tokens:A,index:F+Y.length}}mergeInterpolationTokens($,{quote:T,indent:Y,endOffset:U}){if($.length>1)this.emit("STRING_START","(",{len:T?.length||0,data:{quote:T}});for(let A=0;A<$.length;A++){let[F,W]=$[A];if(F==="TOKENS")for(let M of W)this.tokens.push(M);else if(F==="NEOSTRING"){let M=W;if(Y){let D=new RegExp("\\n"+Y,"g");M=M.replace(D,`
9
+ `)}if(A===0&&T?.length===3)M=M.replace(/^\n/,"");if(A===$.length-1&&T?.length===3)M=M.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${M}"`,{len:W.length,data:{quote:T}})}}if($.length>1)this.emit("STRING_END",")",{len:T?.length||0});return U}numberToken(){let $=N1.exec(this.chunk);if(!$)return 0;let T=$[0],Y=T.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(T))C(`radix prefix in '${T}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(T))C(`decimal literal '${T}' must not be prefixed with '0'`,{...U,len:Y});if(/^0\d+/.test(T))C(`octal literal '${T}' must be prefixed with '0o'`,{...U,len:Y});let A=p1(T),F=A===1/0?"INFINITY":"NUMBER",W={parsedValue:A};if(F==="INFINITY")W.original=T;return this.emit(F,T,{len:Y,data:W}),Y}regexToken(){let $=this.matchWithInterpolations(b1,"///");if($){let{tokens:Z,index:Q}=$,[X]=U1.exec(this.chunk.slice(Q)),J=Q+X.length;if(Z.length===1||!Z.some((z)=>z[0]==="TOKENS")){let z=Z[0]?.[1]||"";this.emit("REGEX",`/${z}/${X}`,{len:J,data:{delimiter:"///",heregex:{flags:X}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:J-X.length}),X)this.emit(",",",",{len:0}),this.emit("STRING",`"${X}"`,{len:X.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return J}let T=v1.exec(this.chunk);if(!T)return 0;let[Y,U,A]=T,F=this.prev();if(F){if(F.spaced&&c.has(F[0])&&(!A||/^\/=?\s/.test(Y)))return 0;if(O1.has(F[0])&&!(F.spaced&&c.has(F[0])))return 0}if(!A)C("missing / (unclosed regex)",{row:this.row,col:this.col});let W=Y.length,[M]=U1.exec(this.chunk.slice(W)),D=W+M.length;if(!g1.test(M))C(`invalid regular expression flags ${M}`,{row:this.row,col:this.col+W,len:M.length});return this.emit("REGEX",`/${U}/${M}`,{len:D,data:{delimiter:"/"}}),D}jsToken(){if(this.chunk[0]!=="`")return 0;let $=l1.exec(this.chunk)||x1.exec(this.chunk);if(!$)return 0;let T=$[1],Y=$[0].length;return this.emit("JS",T,{len:Y,data:{here:$[0].startsWith("```")}}),Y}literalToken(){let $=w1.exec(this.chunk),T=$?$[0]:this.chunk.charAt(0),Y=T,U=this.prev();if(f1.test(T))this.tagParameters();if(U&&(T==="="||$1.has(T))){if(T==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",T.length}if(T==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(T==="{"&&this.seenImport)this.importSpecifierList=!0;if(T==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(T==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(T==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(T===";")this.seenFor=this.seenImport=this.seenExport=!1,Y="TERMINATOR";else if(T==="~=")Y="COMPUTED_ASSIGN";else if(T===":=")Y="REACTIVE_ASSIGN";else if(T==="~>")Y="REACT_ASSIGN";else if(T==="=!")Y="READONLY_ASSIGN";else if(T==="*"&&U?.[0]==="EXPORT")Y="EXPORT_ALL";else if(P1.has(T))Y="MATH";else if(q1.has(T))Y="COMPARE";else if($1.has(T))Y="COMPOUND_ASSIGN";else if(L1.has(T))Y="UNARY_MATH";else if(u1.has(T))Y="SHIFT";else if(T==="?"&&U?.spaced)Y="SPACE?";else if(U){if(T==="("&&!U.spaced&&c.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";Y="CALL_START"}if(T==="["&&!U.spaced&&Y1.has(U[0])){if(Y="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(T==="("||T==="{"||T==="[")this.ends.push({tag:R1[T],origin:[Y,T]});else if(T===")"||T==="}"||T==="]")this.pair(T);return this.emit(Y,T,{len:T.length}),T.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,T=[];this.tokens[$][0]="PARAM_END";while($-- >0){let Y=this.tokens[$];if(Y[0]===")")T.push(Y);else if(Y[0]==="("||Y[0]==="CALL_START")if(T.length)T.pop();else if(Y[0]==="(")return Y[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let T=this.tokens[$??this.tokens.length-1];if(T?.[0]==="DO")T[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,T)=>{if($[0]==="CALL_START")this.detectEnd(T+1,(Y)=>Y[0]===")"||Y[0]==="CALL_END",(Y)=>Y[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,T)=>{if($[0]==="INDEX_START")this.detectEnd(T+1,(Y)=>Y[0]==="]"||Y[0]==="INDEX_END",(Y,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",Y[0]="]";else Y[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,T=null,Y=null,U=(F,W)=>{return F[1]!==";"&&_1.has(F[0])&&!(F[0]==="TERMINATOR"&&t.has(this.tokens[W+1]?.[0]))&&!(F[0]==="ELSE"&&$!=="THEN")||F[0]===","&&($==="->"||$==="=>")||F1.has(F[0])&&(this.tokens[W-1]?.newLine||this.tokens[W-1]?.[0]==="OUTDENT")},A=(F,W)=>{let M=this.tokens[W-1]?.[0]===","?W-1:W;this.tokens.splice(M,0,Y)};this.scanTokens((F,W,M)=>{let[D]=F;if(D==="TERMINATOR"){if(this.tokens[W+1]?.[0]==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")return M.splice(W,1,...this.makeIndentation()),1;if(t.has(this.tokens[W+1]?.[0]))return M.splice(W,1),0}if(D==="CATCH")for(let Z=1;Z<=2;Z++){let Q=this.tokens[W+Z]?.[0];if(Q==="OUTDENT"||Q==="TERMINATOR"||Q==="FINALLY")return M.splice(W+Z,0,...this.makeIndentation()),2+Z}if((D==="->"||D==="=>")&&(this.tokens[W+1]?.[0]===","||this.tokens[W+1]?.[0]==="]"))return[T,Y]=this.makeIndentation(),M.splice(W+1,0,T,Y),1;if(A1.has(D)&&this.tokens[W+1]?.[0]!=="INDENT"&&!(D==="ELSE"&&this.tokens[W+1]?.[0]==="IF")){if($=D,[T,Y]=this.makeIndentation(),D==="THEN")T.fromThen=!0;if(M.splice(W+1,0,T),this.detectEnd(W+2,U,A),D==="THEN")M.splice(W,1);return 1}return 1})}tagPostfixConditionals(){let $=null,T=(U,A)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!A1.has(this.tokens[A-1]?.[0])},Y=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,A)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return $=U,this.detectEnd(A+1,T,Y),1})}addImplicitBracesAndParens(){let $=[],T=!1;this.scanTokens((Y,U,A)=>{let[F]=Y,W=A[U-1]||[],M=A[U+1]||[],[D]=W,[Z]=M,Q=U,X=(O)=>U-Q+O,J=()=>$[$.length-1],z=(O)=>O?.[2]?.ours,G=()=>z(J())&&J()?.[0]==="(",R=()=>z(J())&&J()?.[0]==="{",_=(O)=>{$.push(["(",O,{ours:!0}]),A.splice(O,0,k("CALL_START","("))},K=()=>{$.pop(),A.splice(U,0,k("CALL_END",")")),U+=1},P=(O,I={})=>{$.push(["{",O,{sameLine:!0,startsLine:I.startsLine??!0,ours:!0}]);let w=k("{","{");if(!w.data)w.data={};w.data.generated=!0,A.splice(O,0,w)},H=(O)=>{O=O??U,$.pop(),A.splice(O,0,k("}","}")),U+=1};if((G()||R())&&K1.has(F))return $.push(["CONTROL",U,{ours:!0}]),X(1);if(F==="INDENT"&&z(J())){if(D!=="=>"&&D!=="->"&&D!=="["&&D!=="("&&D!==","&&D!=="{"&&D!=="ELSE"&&D!=="=")while(G()||R()&&D!==":")if(G())K();else H();if(J()?.[2]?.ours&&J()[0]==="CONTROL")$.pop();return $.push([F,U]),X(1)}if(b.has(F))return $.push([F,U]),X(1);if(v.has(F)){while(z(J()))if(G())K();else if(R())H();else $.pop();$.pop()}if(e.has(F)&&Y.spaced&&(r.has(Z)||Z==="..."&&r.has(A[U+2]?.[0])||J1.has(Z)&&!M.spaced&&!M.newLine)&&!((F==="]"||F==="}")&&(Z==="->"||Z==="=>")))return _(U+1),X(2);if(e.has(F)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return _(U+1),$.push(["INDENT",U+2]),X(3);if(F==="SPACE?")T=!0;if(F===":"){if(T)return T=!1,X(1);let O=v.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")O=U-2;let I=O<=0||m.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(J()){let[w,N]=J(),S=$[$.length-2];if((w==="{"||w==="INDENT"&&S?.[0]==="{"&&!z(S))&&(I||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return X(1)}return P(O,{startsLine:!!I}),X(2)}if(m.has(F))for(let O=$.length-1;O>=0;O--){if(!z($[O]))break;if($[O][0]==="{")$[O][2].sameLine=!1}let u=D==="OUTDENT"||W.newLine,q=F==="||"||F==="&&",L=!1;if(q){let O=U+1,I=A[O]?.[0];if(I==="("||I==="["||I==="{"){for(let w=1;++O<A.length&&w>0;)if(I=A[O][0],I==="("||I==="["||I==="{")w++;else if(I===")"||I==="]"||I==="}")w--}else if(I&&I!=="TERMINATOR"&&I!=="OUTDENT"&&I!==",")O++;L=A[O]?.[0]===","}if(G1.has(F)&&!L||F1.has(F)&&u)while(z(J())){let[O,,{sameLine:I,startsLine:w}]=J();if(G()&&D!==",")K();else if(R()&&!q&&I&&F!=="TERMINATOR"&&D!==":")H();else if(R()&&F==="TERMINATOR"&&D!==","&&!(w&&this.looksObjectish(U+1)))H();else if(J()?.[2]?.ours&&J()[0]==="CONTROL"&&A[J()[1]]?.[0]==="CLASS"&&F==="TERMINATOR")$.pop();else break}if(F===","&&!this.looksObjectish(U+1)&&R()&&(Z!=="TERMINATOR"||!this.looksObjectish(U+2))){let O=Z==="OUTDENT"?1:0;while(R())H(U+O)}return X(1)})}addImplicitCallCommas(){let $=0,T=0,Y=this.tokens;while(T<Y.length){let U=Y[T][0],A=T>0?Y[T-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&z1.has(A))Y.splice(T,0,k(",",",")),T++;T++}}scanTokens($){let T=0;while(T<this.tokens.length)T+=$.call(this,this.tokens[T],T,this.tokens)}detectEnd($,T,Y,U={}){let A=0;while($<this.tokens.length){let F=this.tokens[$];if(A===0&&T.call(this,F,$))return Y.call(this,F,$);if(b.has(F[0]))A++;if(v.has(F[0]))A--;if(A<0){if(U.returnOnNegativeLevel)return;return Y.call(this,F,$)}$++}}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(b.has(this.tokens[$]?.[0])){let T=null;if(this.detectEnd($+1,(Y)=>v.has(Y[0]),(Y,U)=>T=U),T&&this.tokens[T+1]?.[0]===":")return!0}return!1}findTagsBackwards($,T){let Y=new Set(T),U=[];while($>=0){let A=this.tokens[$]?.[0];if(!U.length&&Y.has(A))return!0;if(v.has(A))U.push(A);if(b.has(A)&&U.length)U.pop();if(!U.length&&(b.has(A)&&!this.tokens[$]?.generated||m.has(A)))break;$--}return!1}makeIndentation($){let T=k("INDENT",2),Y=k("OUTDENT",2);if($)T.generated=Y.generated=!0,T.origin=Y.origin=$;else T.explicit=Y.explicit=!0;return[T,Y]}}var i1={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Throw:28,Yield:29,Def:30,CodeLine:31,OperationLine:32,Assignable:33,Literal:34,Parenthetical:35,Range:36,Invocation:37,DoIife:38,This:39,Super:40,MetaProperty:41,AlphaNumeric:42,JS:43,Regex:44,UNDEFINED:45,NULL:46,BOOL:47,INFINITY:48,NAN:49,NUMBER:50,String:51,Identifier:52,IDENTIFIER:53,Property:54,PROPERTY:55,STRING:56,STRING_START:57,Interpolations:58,STRING_END:59,InterpolationChunk:60,INTERPOLATION_START:61,INTERPOLATION_END:62,INDENT:63,OUTDENT:64,REGEX:65,REGEX_START:66,REGEX_END:67,RegexWithIndex:68,",":69,"=":70,REACTIVE_ASSIGN:71,COMPUTED_ASSIGN:72,READONLY_ASSIGN:73,REACT_ASSIGN:74,SimpleAssignable:75,Array:76,Object:77,ThisProperty:78,".":79,"?.":80,INDEX_START:81,INDEX_END:82,Slice:83,ES6_OPTIONAL_INDEX:84,"{":85,ObjAssignable:86,":":87,FOR:88,ForVariables:89,FOROF:90,OptComma:91,"}":92,WHEN:93,OWN:94,AssignList:95,AssignObj:96,ObjRestValue:97,SimpleObjAssignable:98,"[":99,"]":100,"@":101,"...":102,ObjSpreadExpr:103,SUPER:104,Arguments:105,DYNAMIC_IMPORT:106,Elisions:107,ArgElisionList:108,OptElisions:109,ArgElision:110,Arg:111,Elision:112,RangeDots:113,"..":114,DEF:115,CALL_START:116,ParamList:117,CALL_END:118,Block:119,PARAM_START:120,PARAM_END:121,FuncGlyph:122,"->":123,"=>":124,Param:125,ParamVar:126,Splat:127,ES6_OPTIONAL_CALL:128,ArgList:129,SimpleArgs:130,THIS:131,NEW_TARGET:132,IMPORT_META:133,"(":134,")":135,RETURN:136,THROW:137,YIELD:138,FROM:139,IfBlock:140,IF:141,ELSE:142,UnlessBlock:143,UNLESS:144,POST_IF:145,POST_UNLESS:146,TRY:147,Catch:148,FINALLY:149,CATCH:150,SWITCH:151,Whens:152,When:153,LEADING_WHEN:154,WhileSource:155,WHILE:156,UNTIL:157,Loop:158,LOOP:159,FORIN:160,BY:161,FORAS:162,AWAIT:163,FORASAWAIT:164,ForValue:165,CLASS:166,EXTENDS:167,IMPORT:168,ImportDefaultSpecifier:169,ImportNamespaceSpecifier:170,ImportSpecifierList:171,ImportSpecifier:172,AS:173,DEFAULT:174,IMPORT_ALL:175,EXPORT:176,ExportSpecifierList:177,EXPORT_ALL:178,ExportSpecifier:179,UNARY:180,DO:181,DO_IIFE:182,UNARY_MATH:183,"-":184,"+":185,"--":186,"++":187,MATH:188,"**":189,SHIFT:190,COMPARE:191,"&":192,"^":193,"|":194,"||":195,"??":196,"&&":197,"!?":198,RELATION:199,"SPACE?":200,COMPOUND_ASSIGN:201},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",43:"JS",45:"UNDEFINED",46:"NULL",47:"BOOL",48:"INFINITY",49:"NAN",50:"NUMBER",53:"IDENTIFIER",55:"PROPERTY",56:"STRING",57:"STRING_START",59:"STRING_END",61:"INTERPOLATION_START",62:"INTERPOLATION_END",63:"INDENT",64:"OUTDENT",65:"REGEX",66:"REGEX_START",67:"REGEX_END",69:",",70:"=",71:"REACTIVE_ASSIGN",72:"COMPUTED_ASSIGN",73:"READONLY_ASSIGN",74:"REACT_ASSIGN",79:".",80:"?.",81:"INDEX_START",82:"INDEX_END",84:"ES6_OPTIONAL_INDEX",85:"{",87:":",88:"FOR",90:"FOROF",92:"}",93:"WHEN",94:"OWN",99:"[",100:"]",101:"@",102:"...",104:"SUPER",106:"DYNAMIC_IMPORT",114:"..",115:"DEF",116:"CALL_START",118:"CALL_END",120:"PARAM_START",121:"PARAM_END",123:"->",124:"=>",128:"ES6_OPTIONAL_CALL",131:"THIS",132:"NEW_TARGET",133:"IMPORT_META",134:"(",135:")",136:"RETURN",137:"THROW",138:"YIELD",139:"FROM",141:"IF",142:"ELSE",144:"UNLESS",145:"POST_IF",146:"POST_UNLESS",147:"TRY",149:"FINALLY",150:"CATCH",151:"SWITCH",154:"LEADING_WHEN",156:"WHILE",157:"UNTIL",159:"LOOP",160:"FORIN",161:"BY",162:"FORAS",163:"AWAIT",164:"FORASAWAIT",166:"CLASS",167:"EXTENDS",168:"IMPORT",173:"AS",174:"DEFAULT",175:"IMPORT_ALL",176:"EXPORT",178:"EXPORT_ALL",180:"UNARY",181:"DO",182:"DO_IIFE",183:"UNARY_MATH",184:"-",185:"+",186:"--",187:"++",188:"MATH",189:"**",190:"SHIFT",191:"COMPARE",192:"&",193:"^",194:"|",195:"||",196:"??",197:"&&",198:"!?",199:"RELATION",200:"SPACE?",201:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[101,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,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,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,1,1,0,2,1,5,-2,101,5,1,5,56,2,71,-3,-3,-3,-3,-3,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,120,-6,-6,-6,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,9,1,5,56,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,56,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,121,122,123,90,91,51,1,5,45,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,124,99,100,-13,-13,-13,-13,127,128,129,-13,130,-13,-13,-13,-13,-13,-13,-13,125,-13,131,-13,-13,126,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,44,1,5,56,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,132,133,134,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,9,1,5,56,1,1,5,31,18,17,-30,-30,-30,-30,-30,-30,-30,-30,-30,9,1,5,56,1,1,5,31,18,17,-31,-31,-31,-31,-31,-31,-31,-31,-31,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,135,136,137,138,139,-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,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,140,-170,-170,141,142,100,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,151,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,152,96,97,50,49,66,67,87,93,56,77,81,78,79,61,150,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,97,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,153,154,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,97,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,156,157,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,158,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,164,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,165,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,166,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,167,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,169,170,171,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,168,66,67,87,93,77,81,78,79,159,160,84,85,80,82,83,76,163,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,169,170,171,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,172,66,67,87,93,77,81,78,79,159,160,84,85,80,82,83,76,163,57,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,173,174,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,175,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,177,176,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,178,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,179,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,2,63,56,152,180,2,63,56,152,181,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,185,144,98,146,147,145,93,182,183,77,148,187,184,186,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,188,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,189,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,88,1,5,8,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,10,1,10,1,3,1,1,2,3,15,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,169,170,171,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-299,152,-299,96,97,-299,192,66,67,87,-299,93,-299,-299,-299,-299,-299,77,-299,81,-299,78,79,-299,-299,190,159,-299,160,84,85,80,82,83,76,-299,-299,-299,-299,-299,-299,-299,-299,-299,191,163,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,193,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,194,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,131,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,8,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,195,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-221,196,-221,96,97,-221,50,49,66,67,87,-221,93,-221,-221,-221,-221,-221,77,-221,81,-221,78,79,-221,61,-221,159,-221,160,84,85,80,82,83,76,-221,63,59,60,197,51,88,52,89,-221,-221,53,57,54,-221,-221,55,92,-221,-221,-221,46,-221,58,64,65,161,162,163,43,44,45,47,48,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,2,52,1,198,98,6,15,16,89,2,1,1,200,199,39,40,84,85,130,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,8,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,201,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-218,202,-218,96,97,-218,50,49,66,67,87,-218,93,-218,-218,-218,-218,-218,77,-218,81,-218,78,79,-218,61,-218,159,-218,160,84,85,80,82,83,76,-218,63,59,60,51,88,52,89,-218,-218,53,57,54,-218,-218,55,92,-218,-218,-218,46,-218,58,64,65,161,162,163,43,44,45,47,48,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,9,51,1,1,3,1,28,84,1,5,203,207,98,99,100,206,204,205,208,9,27,3,22,1,32,30,51,8,4,210,211,212,98,209,61,58,213,214,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,100,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,215,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,216,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,217,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,218,81,228,78,79,219,220,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,79,2,24,11,230,231,229,131,2,105,11,232,131,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,51,1,5,48,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,233,234,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,1,79,235,1,79,236,51,11,32,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,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,51,11,32,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,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,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,237,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,238,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,239,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,240,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,242,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,152,96,97,50,49,66,67,87,93,56,77,81,78,79,61,241,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,23,6,36,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-106,248,94,95,250,98,251,234,99,100,-106,-106,-106,252,243,-106,244,249,253,245,246,247,254,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,169,170,171,31,32,33,255,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,256,66,67,87,93,77,81,78,79,159,160,84,85,80,82,83,76,163,60,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,6,1,10,1,3,1,1,2,3,6,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,52,1,5,50,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,6,51,5,1,1,2,1,260,99,100,257,258,259,103,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-5,261,-5,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-5,-5,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,-5,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,262,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,263,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,264,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,265,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,266,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,267,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,268,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,269,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,270,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,273,155,271,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,272,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,276,155,274,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,275,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,279,155,277,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,278,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,280,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,281,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,282,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,283,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,284,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,288,144,98,146,147,145,93,285,286,77,148,187,287,186,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,289,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,290,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,2,105,11,291,131,2,54,1,292,234,2,54,1,293,234,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,294,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,299,71,72,73,74,75,94,95,86,98,99,100,295,96,97,297,50,49,66,67,87,296,93,56,77,81,301,78,79,298,300,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,81,302,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,306,96,97,50,49,66,67,87,93,56,77,81,228,78,79,305,61,303,39,40,84,85,227,304,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,2,54,1,308,234,2,54,1,309,234,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,310,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,311,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,313,312,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,314,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,316,315,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,317,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,319,318,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,320,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,322,321,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,323,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,325,324,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,326,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,9,6,57,1,5,22,1,8,18,3,-214,-214,-214,328,329,-214,-214,-214,327,6,6,57,1,5,49,3,-171,-171,-171,-171,-171,-171,7,6,57,1,5,1,48,3,-175,-175,-175,-175,330,-175,-175,15,6,46,1,10,1,5,7,1,1,7,14,2,17,3,5,-178,144,98,-178,-178,-178,146,147,145,93,149,148,-178,-178,331,11,6,57,1,5,1,20,28,3,39,2,2,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,11,6,57,1,5,1,20,28,3,39,2,2,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,11,6,57,1,5,1,20,28,3,39,2,2,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,11,6,57,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,2,54,1,233,234,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,218,81,228,78,79,219,220,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,9,1,5,56,1,1,5,31,18,17,-167,-167,-167,-167,-167,-167,-167,-167,-167,100,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,333,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,332,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,118,119,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,112,-350,114,-350,-350,9,1,5,56,1,1,5,31,18,17,-347,-347,-347,-347,-347,-347,-347,-347,-347,5,145,1,9,1,1,121,122,123,90,91,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,118,119,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,112,-351,114,-351,-351,9,1,5,56,1,1,5,31,18,17,-348,-348,-348,-348,-348,-348,-348,-348,-348,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,118,119,-352,-352,-352,-352,-352,-352,-352,-352,-352,105,-352,-352,-352,-352,-352,-352,112,-352,114,-352,-352,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,334,-170,-170,141,142,2,63,56,152,150,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,153,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,156,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,5,15,105,2,1,1,200,159,160,84,85,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-353,-353,-353,-353,-353,-353,-353,-353,-353,105,-353,-353,-353,-353,-353,-353,112,-353,114,-353,-353,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,118,119,-354,-354,-354,-354,-354,-354,-354,-354,-354,105,-354,-354,-354,-354,-354,-354,112,-354,114,-354,-354,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,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,118,119,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,112,-355,114,-355,-355,2,77,8,335,93,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-83,-83,-357,-357,-357,-357,-83,-83,-83,-83,-83,-83,-83,-83,-357,-83,-357,-357,-357,-357,-357,-357,-357,-357,-83,-357,-357,-83,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,10,51,5,1,22,1,1,3,21,11,12,124,99,100,127,128,129,130,125,131,126,3,79,1,1,132,133,134,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-83,-83,-358,-358,-358,-358,-83,-83,-83,-83,-83,-83,-83,-83,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-83,-358,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,338,336,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,337,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,120,-80,-80,-80,-80,-80,-80,-80,-80,-80,117,118,119,90,91,-80,-80,-80,-80,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,339,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,340,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,63,56,22,152,341,342,44,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,2,1,1,6,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,343,344,345,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,4,90,70,2,2,347,346,348,349,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,350,149,148,187,186,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,351,149,148,187,186,3,63,56,42,152,352,353,5,69,21,70,2,2,354,-297,-297,-297,-297,6,69,1,20,70,2,2,-295,355,-295,-295,-295,-295,22,63,25,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,356,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,3,152,1,1,357,358,359,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,360,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,56,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,10,1,10,1,3,1,1,2,3,17,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-83,-83,-303,152,-303,-303,-83,-83,-83,-83,-83,-83,-83,-83,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-83,-303,361,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-303,362,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,118,119,-219,-219,-219,-219,-219,-219,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,363,93,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,118,119,-222,-222,-222,-222,-222,-222,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,364,93,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,365,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,63,53,3,152,366,367,9,1,5,56,1,1,5,31,18,17,-349,-349,-349,-349,-349,-349,-349,-349,-349,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,118,119,-216,-216,-216,-216,-216,-216,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,368,93,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,69,70,370,369,1,139,371,7,52,1,10,29,79,1,2,376,98,375,372,373,374,377,2,69,70,-323,-323,1,173,378,7,52,1,10,29,82,3,2,383,98,382,379,384,380,381,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,70,385,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,386,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,387,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,139,388,2,6,129,101,389,99,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,390,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,30,6,57,1,5,19,12,2,11,1,4,27,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,120,-196,301,391,300,-196,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,224,50,49,66,67,87,93,56,77,392,81,228,78,79,394,393,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,396,397,-214,-214,395,-214,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,1,1,398,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,5,6,57,1,5,31,-142,-142,-142,-142,-142,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,400,399,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,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,5,6,57,1,5,31,-147,-147,-147,-147,-147,6,6,57,1,5,31,18,-197,-197,-197,-197,-197,-197,6,6,57,1,5,31,18,-198,-198,-198,-198,-198,-198,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-199,401,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-199,-199,96,97,-199,50,49,66,67,87,93,56,77,-199,81,78,79,61,-199,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,2,54,1,402,234,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,403,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,404,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,2,54,1,405,234,2,54,1,406,234,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,407,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,408,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,120,-251,-251,409,-251,-251,-251,-251,-251,-251,-251,118,119,90,91,-251,-251,-251,-251,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,120,-253,-253,410,-253,-253,-253,-253,-253,-253,-253,118,119,90,91,-253,-253,-253,-253,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,120,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,118,119,90,91,-260,-260,-260,-260,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,6,6,57,1,5,18,5,-111,-111,-111,-111,411,-111,8,6,57,1,5,22,1,8,18,-214,-214,-214,413,412,-214,-214,-214,7,6,57,1,5,1,17,5,-120,-120,-120,-120,414,-120,-120,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,415,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,54,1,44,233,234,416,6,6,57,1,5,18,5,-123,-123,-123,-123,-123,-123,5,6,57,1,5,23,-107,-107,-107,-107,-107,11,6,57,1,5,1,9,1,1,6,5,24,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,11,6,57,1,5,1,9,1,1,6,5,24,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,11,6,57,1,5,1,9,1,1,6,5,24,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,5,6,57,1,5,23,-112,-112,-112,-112,-112,17,35,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,420,422,421,250,98,251,234,419,252,93,417,81,418,423,424,80,76,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,425,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,6,51,5,1,2,1,1,260,99,100,426,427,259,4,56,1,2,2,-55,-55,-55,-55,101,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,428,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,430,429,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,56,1,2,2,-60,-60,-60,-60,5,1,5,56,2,71,-4,-4,-4,-4,-4,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-361,-361,-361,-361,-361,-361,-361,-361,104,105,-361,-361,-361,-361,-361,-361,112,-361,114,-361,-361,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-362,-362,-362,-362,-362,-362,-362,-362,104,105,-362,-362,-362,-362,-362,-362,112,-362,114,-362,-362,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,118,119,-363,-363,-363,-363,-363,-363,-363,-363,-363,105,-363,-363,-363,-363,-363,-363,112,-363,114,-363,-363,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,118,119,-364,-364,-364,-364,-364,-364,-364,-364,-364,105,-364,-364,-364,-364,-364,-364,112,-364,114,-364,-364,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,118,119,-365,-365,-365,-365,-365,-365,103,102,104,105,-365,-365,-365,-365,-365,-365,112,-365,114,-365,-365,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,118,119,-366,-366,-366,-366,-366,-366,103,102,104,105,106,-366,-366,-366,-366,-366,112,-366,114,115,-366,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-367,-367,-367,-367,-367,-367,103,102,104,105,106,107,-367,-367,-367,-367,112,-367,114,115,-367,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-368,-368,-368,-368,-368,-368,103,102,104,105,106,107,108,-368,-368,-368,112,-368,114,115,-368,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-369,-369,-369,-369,-369,-369,103,102,104,105,106,107,108,109,-369,-369,112,-369,114,115,-369,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,119,-377,-377,-377,-377,-377,-377,103,102,104,105,106,107,108,109,110,-377,112,113,114,115,-377,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,120,-378,-378,-378,-378,-378,-378,-378,-378,-378,117,118,119,90,91,-378,-378,-378,-378,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,119,-376,-376,-376,-376,-376,-376,103,102,104,105,106,107,108,109,110,-376,112,-376,114,115,-376,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,120,-379,-379,-379,-379,-379,-379,-379,-379,-379,117,118,119,90,91,-379,-379,-379,-379,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,118,119,-380,-380,-380,-380,-380,-380,103,102,104,105,106,-380,-380,-380,-380,-380,112,-380,114,-380,-380,22,87,1,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,431,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,120,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,118,119,90,91,-233,-233,-233,-233,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,120,-235,-235,-235,-235,-235,-235,-235,-235,-235,117,118,119,90,91,-235,-235,-235,-235,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,90,70,2,2,433,432,434,435,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,436,149,148,187,186,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,437,149,148,187,186,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,438,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,120,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,118,119,90,91,-232,-232,-232,-232,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,120,-234,-234,-234,-234,-234,-234,-234,-234,-234,117,118,119,90,91,-234,-234,-234,-234,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,25,82,6,14,11,1,31,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,439,120,301,440,300,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,441,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,442,93,56,77,81,301,78,79,298,300,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,82,443,1,82,444,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,445,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-161,96,97,50,49,66,67,87,-161,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,446,-43,-43,-43,-64,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,52,11,32,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,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,52,11,32,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,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,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,447,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,448,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,8,6,57,1,5,22,1,8,18,-214,-214,-214,450,449,-214,-214,-214,5,6,57,1,5,49,-191,-191,-191,-191,-191,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,306,96,97,50,49,66,67,87,93,56,77,81,228,78,79,305,61,39,40,84,85,227,451,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,27,6,57,1,5,19,12,18,27,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,120,-196,-196,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,452,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,453,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,118,119,-65,-65,-65,-65,-65,-65,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,454,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,455,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,120,-68,-68,-68,-68,-68,-68,-68,-68,-68,117,118,119,90,91,-68,-68,-68,-68,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,456,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,457,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,120,-71,-71,-71,-71,-71,-71,-71,-71,-71,117,118,119,90,91,-71,-71,-71,-71,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,458,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,459,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,120,-74,-74,-74,-74,-74,-74,-74,-74,-74,117,118,119,90,91,-74,-74,-74,-74,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,460,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,461,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,120,-77,-77,-77,-77,-77,-77,-77,-77,-77,117,118,119,90,91,-77,-77,-77,-77,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,462,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,463,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,122,1,1,464,84,85,17,6,46,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-215,144,98,-215,-215,146,147,145,93,-215,149,-215,148,143,-215,465,142,2,6,57,466,467,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,468,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,6,6,57,1,5,49,3,-177,-177,-177,-177,-177,-177,53,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,2,6,58,101,469,9,6,57,1,5,22,1,8,18,3,-214,-214,-214,328,329,-214,-214,-214,470,1,64,471,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,118,119,-382,-382,-382,-382,-382,-382,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,472,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,473,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,120,-81,-81,-81,-81,-81,-81,-81,-81,-81,117,118,119,90,91,-81,-81,-81,-81,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,474,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,475,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,476,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,2,63,56,152,477,6,52,1,10,14,8,34,478,98,152,479,93,480,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,481,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,482,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,483,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,484,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,90,485,1,162,486,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,487,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,10,52,1,23,1,1,7,14,2,25,39,144,98,146,147,145,93,149,148,187,488,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,489,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,152,1,1,490,358,359,4,64,78,11,1,491,492,493,359,3,64,78,12,-247,-247,-247,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,495,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,494,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,43,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,152,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,496,-301,-301,-301,118,119,-301,-301,-301,-301,-301,-301,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,497,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,64,498,1,64,499,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,118,119,-224,-224,-224,-224,-224,-224,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,500,-170,-170,141,142,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,1,64,501,3,51,5,1,502,99,100,3,85,85,5,504,503,208,3,51,5,1,505,99,100,1,139,506,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,507,-214,-214,-214,5,6,57,1,5,23,-314,-314,-314,-314,-314,6,52,1,10,108,1,2,376,98,375,509,374,377,6,6,57,1,5,23,81,-319,-319,-319,-319,-319,510,6,6,57,1,5,23,81,-321,-321,-321,-321,-321,511,2,52,1,512,98,14,1,5,56,1,1,5,31,18,17,4,6,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,513,-325,-325,-325,-325,8,6,57,1,5,22,1,8,18,-214,-214,-214,515,514,-214,-214,-214,5,6,57,1,5,23,-337,-337,-337,-337,-337,6,52,1,10,111,3,2,383,98,382,384,516,381,6,6,57,1,5,23,81,-342,-342,-342,-342,-342,517,6,6,57,1,5,23,81,-345,-345,-345,-345,-345,518,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,520,519,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,521,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,120,-332,-332,-332,-332,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,522,93,3,51,5,1,523,99,100,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,2,6,58,101,524,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,525,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,1,1,398,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,5,6,57,1,5,31,-148,-148,-148,-148,-148,2,63,37,527,526,110,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-215,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-215,-215,96,97,224,50,49,66,67,87,93,56,-215,77,-215,81,228,78,79,529,528,225,221,61,-215,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,6,57,1,36,530,-149,-149,-149,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,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,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,396,397,-214,-214,531,-214,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,394,393,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,27,6,57,1,5,19,12,18,27,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,120,-183,-183,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,532,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,533,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,534,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,535,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,536,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,537,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,538,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,6,57,29,540,541,539,23,6,36,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-215,248,94,95,250,98,251,234,99,100,-215,-215,252,543,-215,542,253,245,246,-215,247,254,-215,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,544,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,545,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,22,88,12,45,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,120,546,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,547,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,10,6,57,1,5,10,1,1,11,13,11,-124,-124,-124,-124,-126,-126,-126,-124,548,131,10,6,57,1,5,10,1,1,11,13,11,-125,-125,-125,-125,550,551,552,-125,549,131,9,6,57,1,5,10,1,1,11,24,-127,-127,-127,-127,-127,-127,-127,-127,-127,9,6,57,1,5,10,1,1,11,24,-128,-128,-128,-128,-128,-128,-128,-128,-128,9,6,57,1,5,10,1,1,11,24,-129,-129,-129,-129,-129,-129,-129,-129,-129,9,6,57,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,4,79,2,24,11,230,231,553,131,2,105,11,554,131,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,52,1,5,50,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,4,56,1,2,2,-56,-56,-56,-56,2,6,56,101,555,99,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,556,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,56,1,2,2,-59,-59,-59,-59,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,557,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,558,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,559,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,560,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,561,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,90,562,1,162,563,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,564,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,565,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-159,96,97,50,49,66,67,87,-159,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,25,64,24,14,11,1,31,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,566,120,301,440,300,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,64,567,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,23,64,18,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,568,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,569,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,570,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,6,57,55,572,573,571,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-215,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-215,-215,96,97,50,49,66,67,87,93,56,-215,77,-215,81,228,78,79,574,61,-215,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,8,6,57,1,5,22,1,8,18,-214,-214,-214,450,575,-214,-214,-214,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,576,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,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,118,119,-66,-66,-66,-66,-66,-66,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,577,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,120,-69,-69,-69,-69,-69,-69,-69,-69,-69,117,118,119,90,91,-69,-69,-69,-69,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,578,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,120,-72,-72,-72,-72,-72,-72,-72,-72,-72,117,118,119,90,91,-72,-72,-72,-72,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,579,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,120,-75,-75,-75,-75,-75,-75,-75,-75,-75,117,118,119,90,91,-75,-75,-75,-75,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,580,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,120,-78,-78,-78,-78,-78,-78,-78,-78,-78,117,118,119,90,91,-78,-78,-78,-78,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,581,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,100,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,583,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,152,96,97,50,49,66,67,87,93,56,77,81,78,79,61,582,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,6,6,57,1,5,49,3,-172,-172,-172,-172,-172,-172,11,52,1,23,1,1,7,14,2,1,23,1,144,98,146,147,145,93,149,148,143,584,142,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,585,-170,-170,141,142,27,6,57,1,5,19,30,3,24,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,120,-176,-176,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,53,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,3,122,1,1,586,84,85,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,587,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,118,119,-384,-384,-384,-384,-384,-384,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,588,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,63,56,152,589,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,2,63,56,152,590,2,63,56,152,591,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,25,63,25,5,26,26,1,9,1,1,4,23,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,593,592,117,118,119,90,91,594,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,596,595,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,598,597,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,600,599,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,601,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,602,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,603,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,90,70,2,2,-298,-298,-298,-298,26,69,19,2,55,1,9,1,1,3,2,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-296,120,-296,117,118,119,90,91,-296,-296,-296,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,64,78,11,1,604,605,493,359,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,2,63,56,152,606,3,64,78,12,-248,-248,-248,3,63,6,50,152,608,607,23,63,6,19,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,43,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,152,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,609,-305,-305,-305,118,119,-305,-305,-305,-305,-305,-305,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,8,6,57,1,5,22,1,8,18,-214,-214,-214,328,329,-214,-214,610,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,1,139,611,6,52,1,10,108,1,2,376,98,375,612,374,377,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,3,51,5,1,613,99,100,3,6,57,29,615,616,614,10,6,46,1,10,1,28,8,18,54,2,-215,376,98,-215,-215,-215,-215,-215,617,377,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,618,-214,-214,-214,2,52,1,619,98,2,52,1,620,98,1,139,-324,3,51,5,1,621,99,100,3,6,57,29,623,624,622,10,6,46,1,10,1,28,8,18,56,5,-215,383,98,-215,-215,-215,-215,-215,384,625,8,6,57,1,5,22,1,8,18,-214,-214,-214,515,626,-214,-214,-214,3,52,1,121,627,98,628,2,52,1,629,98,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,120,-329,-329,-329,-329,118,119,-329,-329,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,630,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,631,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,64,632,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,1,135,633,22,88,12,45,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,120,634,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,400,635,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,5,6,57,1,5,31,-143,-143,-143,-143,-143,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-150,-150,96,97,224,50,49,66,67,87,93,56,77,-150,81,228,78,79,394,393,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,400,636,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,2,63,1,527,637,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,638,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,63,56,152,639,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,118,119,-252,-252,-252,-252,-252,-252,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,118,119,-254,-254,-254,-254,-254,-254,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,26,6,57,1,5,19,4,53,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,640,-113,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,641,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,17,42,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,248,94,95,250,98,251,234,99,100,252,543,642,253,245,246,247,254,23,6,36,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-106,248,94,95,250,98,251,234,99,100,-106,-106,-106,252,543,-106,643,249,253,245,246,247,254,5,6,57,1,5,23,-108,-108,-108,-108,-108,6,6,57,1,5,18,5,-111,-111,-111,-111,644,-111,26,6,57,1,5,19,4,53,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,120,-115,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,645,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,6,6,57,1,5,18,5,-121,-121,-121,-121,-121,-121,22,88,12,45,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,120,646,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,9,6,57,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,57,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,2,54,1,647,234,2,54,1,648,234,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,649,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,650,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,9,6,57,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,57,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,4,56,1,2,2,-57,-57,-57,-57,2,6,58,101,651,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,118,119,-381,-381,-381,-381,-381,-381,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,652,-278,-278,-278,-278,-278,-278,-278,118,119,-278,-278,-278,653,-278,-278,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,654,-283,-283,-283,-283,-283,-283,-283,118,119,-283,-283,-283,-283,-283,-283,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,655,-287,-287,-287,-287,-287,-287,-287,118,119,-287,-287,-287,-287,-287,-287,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,656,-291,-291,-291,-291,-291,-291,-291,118,119,-291,-291,-291,-291,-291,-291,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,657,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,658,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,118,119,-294,-294,-294,-294,-294,-294,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,64,18,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,82,659,1,82,660,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,661,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,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,100,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,228,78,79,662,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,306,96,97,50,49,66,67,87,93,56,77,81,228,78,79,305,61,39,40,84,85,227,663,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,5,6,57,1,5,49,-192,-192,-192,-192,-192,3,6,57,1,572,573,664,1,82,665,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,9,1,5,56,1,1,5,31,18,17,-166,-166,-166,-166,-166,-166,-166,-166,-166,6,6,57,1,5,49,3,-173,-173,-173,-173,-173,-173,8,6,57,1,5,22,1,8,18,-214,-214,-214,328,666,-214,-214,-214,2,63,56,152,582,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,667,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,668,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,669,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,670,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,671,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,673,672,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,675,674,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,63,56,152,676,1,64,677,4,6,58,78,12,678,-249,-249,-249,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,679,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,63,56,152,680,3,51,5,1,681,99,100,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,682,-214,-214,-214,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,1,139,683,4,52,1,119,2,376,98,684,377,6,52,1,10,108,1,2,376,98,375,685,374,377,5,6,57,1,5,23,-315,-315,-315,-315,-315,3,6,57,1,615,616,686,5,6,57,1,5,23,-320,-320,-320,-320,-320,5,6,57,1,5,23,-322,-322,-322,-322,-322,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,14,1,5,56,1,1,5,31,18,17,4,6,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,687,-326,-326,-326,-326,4,52,1,121,5,383,98,384,688,6,52,1,10,111,3,2,383,98,382,384,689,381,5,6,57,1,5,23,-338,-338,-338,-338,-338,3,6,57,1,623,624,690,5,6,57,1,5,23,-343,-343,-343,-343,-343,5,6,57,1,5,23,-344,-344,-344,-344,-344,5,6,57,1,5,23,-346,-346,-346,-346,-346,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,120,-330,-330,-330,-330,118,119,-330,-330,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,691,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,396,397,-214,-214,692,-214,5,6,57,1,5,31,-144,-144,-144,-144,-144,5,6,57,1,5,31,-145,-145,-145,-145,-145,1,82,693,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,288,144,98,146,147,145,93,694,695,77,148,187,287,186,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,696,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,23,-109,-109,-109,-109,-109,8,6,57,1,5,22,1,8,18,-214,-214,-214,413,697,-214,-214,-214,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,698,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,538,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,699,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,6,6,57,1,5,18,5,-122,-122,-122,-122,-122,-122,9,6,57,1,5,10,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,9,6,57,1,5,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,700,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,701,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,62,702,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,703,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,704,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,705,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,706,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,707,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,708,-285,-285,-285,-285,-285,-285,-285,118,119,-285,-285,-285,-285,-285,-285,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,709,-289,-289,-289,-289,-289,-289,-289,118,119,-289,-289,-289,-289,-289,-289,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,1,82,710,5,6,57,1,5,49,-193,-193,-193,-193,-193,8,6,57,1,5,22,1,8,18,-214,-214,-214,450,711,-214,-214,-214,5,6,57,1,5,49,-194,-194,-194,-194,-194,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,3,6,57,1,466,467,712,24,63,25,31,26,1,9,1,1,4,23,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,713,117,118,119,90,91,714,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,716,715,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,717,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,718,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,719,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,720,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,721,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,64,722,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,3,64,78,12,-250,-250,-250,23,63,6,19,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,3,6,57,29,615,616,723,3,51,5,1,724,99,100,5,6,57,1,5,23,-316,-316,-316,-316,-316,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,725,-214,-214,-214,5,6,57,1,5,23,-317,-317,-317,-317,-317,3,51,5,1,726,99,100,5,6,57,1,5,23,-339,-339,-339,-339,-339,8,6,57,1,5,22,1,8,18,-214,-214,-214,515,727,-214,-214,-214,5,6,57,1,5,23,-340,-340,-340,-340,-340,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,63,1,527,728,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,4,90,70,2,2,729,432,434,435,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,730,149,148,187,186,5,6,57,1,5,23,-114,-114,-114,-114,-114,3,6,57,1,540,541,731,26,6,57,1,5,19,4,53,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,120,-113,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,23,-116,-116,-116,-116,-116,9,6,57,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,732,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,56,1,2,2,-58,-58,-58,-58,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,118,119,-279,-279,-279,733,-279,-279,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,734,-280,-280,-280,-280,-280,-280,-280,118,119,-280,-280,-280,-280,-280,-280,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,118,119,-284,-284,-284,-284,-284,-284,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,118,119,-288,-288,-288,-288,-288,-288,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,118,119,-292,-292,-292,-292,-292,-292,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,735,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,736,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,3,6,57,1,572,573,737,6,6,57,1,5,49,3,-174,-174,-174,-174,-174,-174,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,738,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,739,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,740,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,741,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,1,139,742,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,3,6,57,1,615,616,743,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,3,6,57,1,623,624,744,5,6,57,1,5,31,-146,-146,-146,-146,-146,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,745,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,90,746,5,6,57,1,5,23,-110,-110,-110,-110,-110,1,82,747,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,748,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,749,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,118,119,-286,-286,-286,-286,-286,-286,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,118,119,-290,-290,-290,-290,-290,-290,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,49,-195,-195,-195,-195,-195,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,750,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,751,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,3,51,5,1,752,99,100,5,6,57,1,5,23,-318,-318,-318,-318,-318,5,6,57,1,5,23,-341,-341,-341,-341,-341,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,755,-283,-283,-283,-283,753,-283,754,-283,-283,-283,-283,-283,-283,-283,118,119,-283,-283,-283,-283,-283,-283,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,756,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,9,6,57,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,118,119,-281,-281,-281,-281,-281,-281,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,118,119,-282,-282,-282,-282,-282,-282,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,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,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,92,757,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,758,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,6,6,57,1,28,8,18,-215,-215,-215,-215,-215,-215,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,755,-285,-285,-285,-285,759,-285,760,-285,-285,-285,-285,-285,-285,-285,118,119,-285,-285,-285,-285,-285,-285,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,755,-284,-284,-284,-284,761,-284,-284,-284,-284,-284,-284,-284,-284,-284,118,119,-284,-284,-284,-284,-284,-284,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,92,762,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,763,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,92,764,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,755,-286,-286,-286,-286,765,-286,-286,-286,-286,-286,-286,-286,-286,-286,118,119,-286,-286,-286,-286,-286,-286,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,1,92,766,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104],T=[],Y=0,U,A,F,W;while(Y<$.length){U=$[Y++],A={},F=0,W=[];while(U--)F+=$[Y++],W.push(F);for(F of W)A[F]=$[Y++];T.push(A)}return T})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,42,1,42,1,52,1,54,1,51,1,51,3,58,1,58,2,60,3,60,5,60,2,60,1,44,1,44,3,68,3,68,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,33,1,33,1,33,1,75,1,75,1,75,3,75,3,75,4,75,6,75,4,75,6,75,4,75,5,75,7,75,3,75,3,75,4,75,6,77,10,77,12,77,11,77,13,77,4,95,0,95,1,95,3,95,4,95,6,96,1,96,1,96,3,96,5,96,3,96,5,98,1,98,1,98,1,86,1,86,3,86,4,86,1,97,2,97,2,103,1,103,1,103,1,103,1,103,1,103,2,103,2,103,2,103,2,103,3,103,3,103,4,103,6,76,2,76,3,76,4,108,1,108,3,108,4,108,4,108,6,110,1,110,2,109,1,109,2,107,1,107,2,112,1,112,2,113,1,113,1,36,5,83,3,83,2,83,2,83,1,30,6,30,3,15,5,15,2,31,5,31,2,122,1,122,1,117,0,117,1,117,3,117,4,117,6,125,1,125,3,125,2,125,1,126,1,126,1,126,1,126,1,127,2,37,2,37,2,37,3,37,2,37,2,105,2,105,4,129,1,129,3,129,4,129,4,129,6,111,1,111,1,111,1,111,1,130,1,130,3,39,1,39,1,78,2,40,3,40,4,40,6,41,3,41,3,119,2,119,3,35,3,35,5,91,0,91,1,10,2,10,4,10,1,28,2,28,4,29,1,29,2,29,4,29,3,140,3,140,5,143,3,143,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,23,2,23,3,23,4,23,5,148,3,148,3,148,2,26,5,26,7,26,4,26,6,152,1,152,2,153,3,153,4,155,2,155,4,155,2,155,4,24,2,24,2,24,2,24,1,158,2,158,2,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,165,1,165,3,89,1,89,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,171,1,171,3,171,4,171,4,171,6,172,1,172,3,172,1,172,3,169,1,170,3,13,3,13,5,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,177,1,177,3,177,4,177,4,177,6,179,1,179,3,179,3,179,1,179,3,32,2,32,2,32,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,38,2],ruleActions:($,T,Y,U)=>{let A=T,F=T.length-1;switch($){case 1:return["program"];case 2:return["program",...A[F]];case 3:case 55:case 107:case 147:case 151:case 171:case 191:case 200:case 247:case 297:case 314:case 337:return[A[F]];case 4:case 108:case 172:case 192:case 201:case 315:case 338:return[...A[F-2],A[F]];case 5:case 57:case 154:return A[F-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 60:case 61:case 83:case 84:case 85:case 86:case 87:case 112:case 117:case 118:case 119:case 120:case 123:case 126:case 127:case 128:case 129:case 130:case 142:case 168:case 169:case 175:case 179:case 180:case 181:case 182:case 196:case 197:case 198:case 214:case 215:case 229:case 231:case 258:case 295:case 319:case 321:case 323:case 342:case 345:return A[F];case 44:return"undefined";case 45:return"null";case 54:return["str",...A[F-1]];case 56:case 148:case 152:case 248:return[...A[F-1],A[F]];case 58:case 190:case 194:case 317:case 340:return A[F-2];case 59:return"";case 62:return["regex",A[F-1]];case 63:return["regex-index",A[F-2],A[F]];case 64:return["regex-index",A[F],null];case 65:return["=",A[F-2],A[F]];case 66:return["=",A[F-3],A[F]];case 67:return["=",A[F-4],A[F-1]];case 68:return["state",A[F-2],A[F]];case 69:return["state",A[F-3],A[F]];case 70:return["state",A[F-4],A[F-1]];case 71:return["computed",A[F-2],A[F]];case 72:return["computed",A[F-3],A[F]];case 73:return["computed",A[F-4],A[F-1]];case 74:return["readonly",A[F-2],A[F]];case 75:return["readonly",A[F-3],A[F]];case 76:return["readonly",A[F-4],A[F-1]];case 77:return["effect",A[F-2],A[F]];case 78:return["effect",A[F-3],A[F]];case 79:return["effect",A[F-4],A[F-1]];case 80:case 81:return["effect",null,A[F]];case 82:return["effect",null,A[F-1]];case 88:case 97:case 135:return[".",A[F-2],A[F]];case 89:case 98:case 136:return["?.",A[F-2],A[F]];case 90:case 92:case 99:case 137:return["[]",A[F-3],A[F-1]];case 91:case 93:case 100:case 138:return["[]",A[F-5],A[F-2]];case 94:return[A[F-1][0],A[F-3],...A[F-1].slice(1)];case 95:return["optindex",A[F-4],A[F-1]];case 96:return["optindex",A[F-6],A[F-2]];case 101:return["object-comprehension",A[F-8],A[F-6],[["for-of",A[F-4],A[F-2],!1]],[]];case 102:return["object-comprehension",A[F-10],A[F-8],[["for-of",A[F-6],A[F-4],!1]],[A[F-2]]];case 103:return["object-comprehension",A[F-9],A[F-7],[["for-of",A[F-4],A[F-2],!0]],[]];case 104:return["object-comprehension",A[F-11],A[F-9],[["for-of",A[F-6],A[F-4],!0]],[A[F-2]]];case 105:return["object",...A[F-2]];case 106:case 149:case 170:case 189:return[];case 109:case 173:case 193:case 316:case 339:return[...A[F-3],A[F]];case 110:case 174:case 195:case 318:case 341:return[...A[F-5],...A[F-2]];case 111:return[A[F],A[F],null];case 113:return[A[F-2],A[F],":"];case 114:return[A[F-4],A[F-1],":"];case 115:return[A[F-2],A[F],"="];case 116:return[A[F-4],A[F-1],"="];case 121:return["dynamicKey",A[F-1]];case 122:return["[]","this",A[F-1]];case 124:case 125:case 183:return["...",A[F]];case 131:case 187:return["super",...A[F]];case 132:case 133:case 134:case 185:case 188:return[A[F-1],...A[F]];case 139:return["array"];case 140:return["array",...A[F-1]];case 141:return["array",...A[F-2],...A[F-1]];case 143:return[...A[F-2],...A[F]];case 144:return[...A[F-3],...A[F]];case 145:return[...A[F-2],...A[F-1]];case 146:return[...A[F-5],...A[F-4],...A[F-2],...A[F-1]];case 150:return[...A[F]];case 153:return null;case 155:return"..";case 156:case 199:return"...";case 157:return[A[F-2],A[F-3],A[F-1]];case 158:case 363:case 365:case 366:case 380:case 382:return[A[F-1],A[F-2],A[F]];case 159:return[A[F],A[F-1],null];case 160:return[A[F-1],null,A[F]];case 161:return[A[F],null,null];case 162:return["def",A[F-4],A[F-2],A[F]];case 163:return["def",A[F-1],[],A[F]];case 164:case 166:return[A[F-1],A[F-3],A[F]];case 165:case 167:return[A[F-1],[],A[F]];case 176:case 296:return["default",A[F-2],A[F]];case 177:return["rest",A[F]];case 178:return["expansion"];case 184:return["tagged-template",A[F-1],A[F]];case 186:return["optcall",A[F-2],...A[F]];case 202:case 203:return"this";case 204:return[".","this",A[F]];case 205:return[".","super",A[F]];case 206:return["[]","super",A[F-1]];case 207:return["[]","super",A[F-2]];case 208:return[".","new",A[F]];case 209:return[".","import",A[F]];case 210:return["block"];case 211:return["block",...A[F-1]];case 212:return A[F-1].length===1?A[F-1][0]:["block",...A[F-1]];case 213:return A[F-2].length===1?A[F-2][0]:["block",...A[F-2]];case 216:return["return",A[F]];case 217:return["return",A[F-1]];case 218:return["return"];case 219:return["throw",A[F]];case 220:return["throw",A[F-1]];case 221:return["yield"];case 222:return["yield",A[F]];case 223:return["yield",A[F-1]];case 224:return["yield-from",A[F]];case 225:return["if",A[F-1],A[F]];case 226:return A[F-4].length===3?["if",A[F-4][1],A[F-4][2],["if",A[F-1],A[F]]]:[...A[F-4],["if",A[F-1],A[F]]];case 227:return["unless",A[F-1],A[F]];case 228:return["if",["!",A[F-3]],A[F-2],A[F]];case 230:return A[F-2].length===3?["if",A[F-2][1],A[F-2][2],A[F]]:[...A[F-2],A[F]];case 232:case 233:return["if",A[F],[A[F-2]]];case 234:case 235:return["unless",A[F],[A[F-2]]];case 236:return["try",A[F]];case 237:return["try",A[F-1],A[F]];case 238:return["try",A[F-2],A[F]];case 239:return["try",A[F-3],A[F-2],A[F]];case 240:case 241:case 347:case 350:case 352:return[A[F-1],A[F]];case 242:return[null,A[F]];case 243:return["switch",A[F-3],A[F-1],null];case 244:return["switch",A[F-5],A[F-3],A[F-1]];case 245:return["switch",null,A[F-1],null];case 246:return["switch",null,A[F-3],A[F-1]];case 249:return["when",A[F-1],A[F]];case 250:return["when",A[F-2],A[F-1]];case 251:return["while",A[F]];case 252:return["while",A[F-2],A[F]];case 253:return["until",A[F]];case 254:return["until",A[F-2],A[F]];case 255:return A[F-1].length===2?[A[F-1][0],A[F-1][1],A[F]]:[A[F-1][0],A[F-1][1],A[F-1][2],A[F]];case 256:case 257:return A[F].length===2?[A[F][0],A[F][1],[A[F-1]]]:[A[F][0],A[F][1],A[F][2],[A[F-1]]];case 259:return["loop",A[F]];case 260:return["loop",[A[F]]];case 261:return["for-in",A[F-3],A[F-1],null,null,A[F]];case 262:return["for-in",A[F-5],A[F-3],null,A[F-1],A[F]];case 263:return["for-in",A[F-5],A[F-3],A[F-1],null,A[F]];case 264:return["for-in",A[F-7],A[F-5],A[F-1],A[F-3],A[F]];case 265:return["for-in",A[F-7],A[F-5],A[F-3],A[F-1],A[F]];case 266:return["for-of",A[F-3],A[F-1],!1,null,A[F]];case 267:return["for-of",A[F-5],A[F-3],!1,A[F-1],A[F]];case 268:return["for-of",A[F-3],A[F-1],!0,null,A[F]];case 269:return["for-of",A[F-5],A[F-3],!0,A[F-1],A[F]];case 270:return["for-as",A[F-3],A[F-1],!1,null,A[F]];case 271:return["for-as",A[F-5],A[F-3],!1,A[F-1],A[F]];case 272:case 274:return["for-as",A[F-3],A[F-1],!0,null,A[F]];case 273:case 275:return["for-as",A[F-5],A[F-3],!0,A[F-1],A[F]];case 276:return["for-in",[],A[F-1],null,null,A[F]];case 277:return["for-in",[],A[F-3],A[F-1],null,A[F]];case 278:return["comprehension",A[F-4],[["for-in",A[F-2],A[F],null]],[]];case 279:return["comprehension",A[F-6],[["for-in",A[F-4],A[F-2],null]],[A[F]]];case 280:return["comprehension",A[F-6],[["for-in",A[F-4],A[F-2],A[F]]],[]];case 281:return["comprehension",A[F-8],[["for-in",A[F-6],A[F-4],A[F]]],[A[F-2]]];case 282:return["comprehension",A[F-8],[["for-in",A[F-6],A[F-4],A[F-2]]],[A[F]]];case 283:return["comprehension",A[F-4],[["for-of",A[F-2],A[F],!1]],[]];case 284:return["comprehension",A[F-6],[["for-of",A[F-4],A[F-2],!1]],[A[F]]];case 285:return["comprehension",A[F-5],[["for-of",A[F-2],A[F],!0]],[]];case 286:return["comprehension",A[F-7],[["for-of",A[F-4],A[F-2],!0]],[A[F]]];case 287:return["comprehension",A[F-4],[["for-as",A[F-2],A[F],!1,null]],[]];case 288:return["comprehension",A[F-6],[["for-as",A[F-4],A[F-2],!1,null]],[A[F]]];case 289:return["comprehension",A[F-5],[["for-as",A[F-2],A[F],!0,null]],[]];case 290:return["comprehension",A[F-7],[["for-as",A[F-4],A[F-2],!0,null]],[A[F]]];case 291:return["comprehension",A[F-4],[["for-as",A[F-2],A[F],!0,null]],[]];case 292:return["comprehension",A[F-6],[["for-as",A[F-4],A[F-2],!0,null]],[A[F]]];case 293:return["comprehension",A[F-2],[["for-in",[],A[F],null]],[]];case 294:return["comprehension",A[F-4],[["for-in",[],A[F-2],A[F]]],[]];case 298:case 320:case 322:case 343:case 344:case 346:return[A[F-2],A[F]];case 299:return["class",null,null];case 300:return["class",null,null,A[F]];case 301:return["class",null,A[F]];case 302:return["class",null,A[F-1],A[F]];case 303:return["class",A[F],null];case 304:return["class",A[F-1],null,A[F]];case 305:return["class",A[F-2],A[F]];case 306:return["class",A[F-3],A[F-1],A[F]];case 307:case 310:return["import","{}",A[F]];case 308:case 309:return["import",A[F-2],A[F]];case 311:return["import",A[F-4],A[F]];case 312:return["import",[A[F-4],A[F-2]],A[F]];case 313:return["import",[A[F-7],A[F-4]],A[F]];case 324:return["*",A[F]];case 325:return["export","{}"];case 326:return["export",A[F-2]];case 327:case 328:return["export",A[F]];case 329:return["export",["=",A[F-2],A[F]]];case 330:return["export",["=",A[F-3],A[F]]];case 331:return["export",["=",A[F-4],A[F-1]]];case 332:return["export-default",A[F]];case 333:return["export-default",A[F-1]];case 334:return["export-all",A[F]];case 335:return["export-from","{}",A[F]];case 336:return["export-from",A[F-4],A[F]];case 348:case 349:case 351:case 385:return["do-iife",A[F]];case 353:return["-",A[F]];case 354:return["+",A[F]];case 355:return["await",A[F]];case 356:return["await",A[F-1]];case 357:return["--",A[F],!1];case 358:return["++",A[F],!1];case 359:return["--",A[F-1],!0];case 360:return["++",A[F-1],!0];case 361:return["+",A[F-2],A[F]];case 362:return["-",A[F-2],A[F]];case 364:return["**",A[F-2],A[F]];case 367:return["&",A[F-2],A[F]];case 368:return["^",A[F-2],A[F]];case 369:return["|",A[F-2],A[F]];case 370:case 371:case 372:case 373:case 374:case 375:return["control",A[F-1],A[F-2],A[F]];case 376:return["&&",A[F-2],A[F]];case 377:return["||",A[F-2],A[F]];case 378:return["??",A[F-2],A[F]];case 379:return["!?",A[F-2],A[F]];case 381:return["?:",A[F-4],A[F-2],A[F]];case 383:return[A[F-3],A[F-4],A[F-1]];case 384:return[A[F-2],A[F-3],A[F]]}},parseError($,T){let Y,U,A,F,W,M,D;if(T.recoverable)return this.trace($);else throw A=(T.line||0)+1,Y=T.loc?.first_column||0,D=T.token?` (token: ${T.token})`:"",M=T.text?` near '${T.text}'`:"",F=`line ${A}, column ${Y}`,W=`Parse error at ${F}${D}${M}: ${$}`,U=Error(W),U.hash=T,U},parse($){let T,Y,U,A,F,W,M,D,Z,Q,X,J,z,G,R,_,K,P,H,u,q,L,O,I,w,N,S,j;[q,O,Z]=[[0],[null],[]],[G,S,w,I,P]=[this.parseTable,"",0,0,0],[Y,T]=[2,1],D=Object.create(this.lexer),H={yy:{}};for(let f in this.yy)if(Object.hasOwn(this.yy,f)){let V=this.yy[f];H.yy[f]=V}if(D.setInput($,H.yy),[H.yy.lexer,H.yy.parser]=[D,this],D.yylloc==null)D.yylloc={};N=D.yylloc,Z.push(N),K=D.options?.ranges,this.parseError=typeof H.yy.parseError==="function"?H.yy.parseError:Object.getPrototypeOf(this).parseError,M=()=>{let f;if(f=D.lex()||T,typeof f!=="number")f=this.symbolIds[f]||f;return f},[L,R,u,U,_,j,z,W,J,F]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(u=q[q.length-1],L==null)L=M();if(U=G[u]!=null?G[u][L]:void 0,U==null){if(A="",!P)F=(()=>{let f=[];for(let V in G[u]){if(!Object.hasOwn(G[u],V))continue;if(this.tokenNames[V]&&V>Y)f.push(`'${this.tokenNames[V]}'`)}return f})();throw A=(()=>{if(D.showPosition)return`Parse error on line ${w+1}:
10
+ ${D.showPosition()}
11
+ Expecting ${F.join(", ")}, got '${this.tokenNames[L]||L}'`;else return`Parse error on line ${w+1}: Unexpected ${L===T?"end of input":`'${this.tokenNames[L]||L}'`}`,this.parseError(A,{text:D.match,token:this.tokenNames[L]||L,line:D.yylineno,loc:N,expected:F})})(),Error(A)}if(U>0)if(q.push(L,U),O.push(D.yytext),Z.push(D.yylloc),L=null,!R){if([I,S,w,N]=[D.yyleng,D.yytext,D.yylineno,D.yylloc],P>0)P--}else[L,R]=[R,null];else if(U<0){if(W=this.ruleTable[-U*2+1],j.$=O[O.length-W],[Q,X]=[Z[Z.length-(W||1)],Z[Z.length-1]],j._$={first_line:Q.first_line,last_line:X.last_line,first_column:Q.first_column,last_column:X.last_column},K)j._$.range=[Q.range[0],X.range[1]];if(_=this.ruleActions.apply(j,[-U,O,Z,H.yy]),_!=null)j.$=_;if(W)q.length-=W*2,O.length-=W,Z.length-=W;q.push(this.ruleTable[-U*2]),O.push(j.$),Z.push(j._$),J=G[q[q.length-2]][q[q.length-1]],q.push(J)}else if(U===0)return O[O.length-1]}},trace(){},yy:{}},s1=($={})=>{let T=Object.create(i1);return Object.defineProperty(T,"yy",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),T},g=s1();var e1=g.parse.bind(g);var B=($,T)=>$ instanceof String?$[T]:void 0,E=($)=>$ instanceof String?$.valueOf():$,a1=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function n($){if(!Array.isArray($)||$.length===0)return!1;let T=$[0]?.valueOf?.()??$[0];if(a1.has(T))return!0;return $.length<=4&&!$.some(Array.isArray)}function l($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let T=String($);if(T[0]==="/"&&T.indexOf(`
12
+ `)>=0){let Y=T.match(/\/([gimsuvy]*)$/),U=Y?Y[1]:"",A=T.slice(1);return A=U?A.slice(0,-U.length-1):A.slice(0,-1),`"/${A.split(`
13
+ `).map((M)=>M.replace(/#.*$/,"").trim()).join("")}/${U}"`}return T}function h($,T=0,Y=!1){if(!Array.isArray($))return l($);if(Y&&$[0]==="program"){let Z=$[1],X=[Array.isArray(Z)?"(program":"(program "+l(Z)],J=Array.isArray(Z)?1:2;for(let z=J;z<$.length;z++){let G=h($[z],2,!1);X.push(G[0]==="("?" "+G:G)}return X.push(")"),X.join(`
14
+ `)}let U=$[0];if(n($)&&$.slice(1).every((Z)=>!Array.isArray(Z)||n(Z))){let Q=`(${$.map((X)=>Array.isArray(X)?h(X,0,!1):l(X)).join(" ")})`;if(!Q.includes(`
15
+ `))return" ".repeat(T)+Q}let F=" ".repeat(T),W;if(Array.isArray(U)){if(W=h(U,0,!1),W.includes(`
16
+ `))W=W.split(`
17
+ `).map((Q,X)=>X===0?Q:" ".repeat(T+2)+Q).join(`
18
+ `)}else W=l(U);let M=[`${F}(${W}`],D=U==="block";for(let Z=1;Z<$.length;Z++){let Q=$[Z];if(!Array.isArray(Q))M[M.length-1]+=" "+l(Q);else{let X=n(Q)&&Q.every((J)=>!Array.isArray(J)||n(J));if(!D&&X){let J=h(Q,0,!1);if(!J.includes(`
19
+ `)){M[M.length-1]+=" "+J;continue}}M.push(h(Q,T+2,!1))}}return M[M.length-1]+=")",M.join(`
20
+ `)}class y{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary",loop:"generateLoop",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor($={}){if(this.options=$,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=$.dataSection,$.reactiveVars)this.reactiveVars=new Set($.reactiveVars)}compile($){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables($),this.generate($)}collectProgramVariables($){if(!Array.isArray($))return;let[T,...Y]=$;if(T=E(T),Array.isArray(T)){$.forEach((U)=>this.collectProgramVariables(U));return}if(T==="export"||T==="export-default"||T==="export-all"||T==="export-from")return;if(T==="state"||T==="computed"){let[U]=Y,A=E(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(T==="readonly")return;if(y.ASSIGNMENT_OPS.has(T)){let[U,A]=Y;if(typeof U==="string"||U instanceof String){let F=E(U);if(!this.reactiveVars?.has(F))this.programVars.add(F)}else if(Array.isArray(U)&&U[0]==="array")this.collectVarsFromArray(U,this.programVars);else if(Array.isArray(U)&&U[0]==="object")this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(A);return}if(T==="def"||T==="->"||T==="=>")return;if(T==="if"){let[U,A,F]=Y;if(this.collectProgramVariables(U),this.collectProgramVariables(A),F)this.collectProgramVariables(F);return}if(T==="unless"){let[U,A]=Y;this.collectProgramVariables(U),this.collectProgramVariables(A);return}if(T==="try"){if(this.collectProgramVariables(Y[0]),Y.length>=2&&Array.isArray(Y[1])&&Y[1].length===2&&Y[1][0]!=="block"){let[U,A]=Y[1];if(U&&Array.isArray(U)&&U[0]==="object")U.slice(1).forEach((F)=>{if(Array.isArray(F)&&F.length===2&&typeof F[1]==="string")this.programVars.add(F[1])});else if(U&&Array.isArray(U)&&U[0]==="array")U.slice(1).forEach((F)=>{if(typeof F==="string")this.programVars.add(F)});this.collectProgramVariables(A)}if(Y.length===3)this.collectProgramVariables(Y[2]);else if(Y.length===2&&(!Array.isArray(Y[1])||Y[1][0]==="block"))this.collectProgramVariables(Y[1]);return}Y.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let T=new Set,Y=(U)=>{if(!Array.isArray(U))return;let[A,...F]=U;if(A=E(A),Array.isArray(A)){U.forEach((W)=>Y(W));return}if(y.ASSIGNMENT_OPS.has(A)){let[W,M]=F;if(typeof W==="string")T.add(W);else if(Array.isArray(W)&&W[0]==="array")this.collectVarsFromArray(W,T);else if(Array.isArray(W)&&W[0]==="object")this.collectVarsFromObject(W,T);Y(M);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(Y(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[W,M]=F[1];if(W&&Array.isArray(W)&&W[0]==="object")W.slice(1).forEach((D)=>{if(Array.isArray(D)&&D.length===2&&typeof D[1]==="string")T.add(D[1])});else if(W&&Array.isArray(W)&&W[0]==="array")W.slice(1).forEach((D)=>{if(typeof D==="string")T.add(D)});Y(M)}if(F.length===3)Y(F[2]);else if(F.length===2&&(!Array.isArray(F[1])||F[1][0]==="block"))Y(F[1]);return}F.forEach((W)=>Y(W))};return Y($),T}generate($,T="statement"){if($ instanceof String){if(B($,"await")===!0)return`await ${E($)}()`;if(B($,"predicate"))return`(${E($)} != null)`;if(B($,"delimiter")==="///"&&B($,"heregex")){let M=E($),D=M.match(/^\/(.*)\/([gimsuvy]*)$/s);if(D){let[,Z,Q]=D;return`/${this.processHeregex(Z)}/${Q}`}return M}let W=B($,"quote");if(W){let M=E($);if(W==='"""'||W==="'''"){let Z=this.extractStringContent($);return Z=Z.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${Z}\``}if(M[0]===W)return M;let D=M.slice(1,-1);return`${W}${D}${W}`}$=E($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let W=$.slice(1,-1);if(W.includes(`
21
+ `))return`\`${W.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let M=W.includes("'")&&!W.includes('"')?'"':"'",D=W.replace(new RegExp(M,"g"),`\\${M}`);return`${M}${D}${M}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[Y,...U]=$,A=B(Y,"await");Y=E(Y);let F=y.GENERATORS[Y];if(F)return this[F](Y,U,T,$);if(typeof Y==="string"&&!Y.startsWith('"')&&!Y.startsWith("'")){if(y.NUMBER_START_RE.test(Y))return Y;if(Y==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Q=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", ");return`super.${this.currentMethodName}(${Q})`}if(T==="statement"&&U.length===1){let Q=this.findPostfixConditional(U[0]);if(Q){let X=this.rebuildWithoutConditional(Q),J=this.generate(Y,"value"),z=this.generate(Q.condition,"value"),G=this.generate(X,"value"),R=`${J}(${G})`;return Q.type==="unless"?`if (!${z}) ${R}`:`if (${z}) ${R}`}}let W=A===!0,M=this.generate(Y,"value"),D=U.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),Z=`${M}(${D})`;return W?`await ${Z}`:Z}if(Array.isArray(Y)&&typeof Y[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(Y[0]))return`(${$.map((D)=>this.generate(D,"value")).join(", ")})`}if(Array.isArray(Y)){if(Y[0]==="."&&(Y[2]==="new"||E(Y[2])==="new")){let Q=Y[1],X=this.generate(Q,"value"),J=U.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`new ${Array.isArray(Q)?`(${X})`:X}(${J})`}if(T==="statement"&&U.length===1){let Q=this.findPostfixConditional(U[0]);if(Q){let X=this.rebuildWithoutConditional(Q),J=this.generate(Y,"value"),z=this.generate(Q.condition,"value"),G=this.generate(X,"value"),R=`${J}(${G})`;return Q.type==="unless"?`if (!${z}) ${R}`:`if (${z}) ${R}`}}let W=!1,M;if(Y[0]==="."&&B(Y[2],"await")===!0){W=!0;let[Q,X]=Y.slice(1),J=this.generate(Q,"value");M=`${y.NUMBER_LITERAL_RE.test(J)||Array.isArray(Q)&&(Q[0]==="object"||Q[0]==="await"||Q[0]==="yield")?`(${J})`:J}.${E(X)}`}else M=this.generate(Y,"value");let D=U.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),Z=`${M}(${D})`;return W?`await ${Z}`:Z}throw Error(`Unknown s-expression type: ${Y}`)}generateProgram($,T,Y,U){let A="",F=[],W=[],M=[];for(let X of T){if(!Array.isArray(X)){M.push(X);continue}let J=X[0];if(J==="import")F.push(X);else if(J==="export"||J==="export-default"||J==="export-all"||J==="export-from")W.push(X);else M.push(X)}let D=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],Z=M.map((X,J)=>{let z=M.length===1&&F.length===0&&W.length===0,G=Array.isArray(X)&&X[0]==="object",R=G&&X.length===2&&Array.isArray(X[1])&&Array.isArray(X[1][1])&&X[1][1][0]==="comprehension",_=Array.isArray(X)&&(X[0]==="comprehension"||X[0]==="object-comprehension"||X[0]==="do-iife"),K=this.programVars.size===0,P=z&&G&&K&&!_&&!R,u=J===M.length-1&&_,q;if(P)q=`(${this.generate(X,"value")})`;else if(u)q=this.generate(X,"value");else q=this.generate(X,"statement");if(q&&!q.endsWith(";")){let L=Array.isArray(X)?X[0]:null;if(!D.includes(L)||!q.endsWith("}"))return q+";"}return q}).join(`
22
+ `),Q=!1;if(F.length>0)A+=F.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
23
+ `),Q=!0;if(this.programVars.size>0){let X=Array.from(this.programVars).sort().join(", ");if(Q)A+=`
24
+ `;A+=`let ${X};
25
+ `,Q=!0}if(this.helpers.has("slice"))A+=`const slice = [].slice;
26
+ `,Q=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
27
+ `,Q=!0;if(this.helpers.has("toSearchable"))A+=`const toSearchable = (v, allowNewlines) => {
28
+ `,A+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
29
+ `,A+=` if (v == null) return "";
30
+ `,A+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
31
+ `,A+=` if (typeof v === "symbol") return v.description || "";
32
+ `,A+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
33
+ `,A+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
34
+ `,A+=` }
35
+ `,A+=` if (Array.isArray(v)) return v.join(",");
36
+ `,A+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
37
+ `,A+=` try { return v.toString(); } catch { return ""; }
38
+ `,A+=` }
39
+ `,A+=` return "";
40
+ `,A+=`};
41
+ `,Q=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)A+=this.getReactiveRuntime(),Q=!0;if(this.dataSection!==null&&this.dataSection!==void 0)A+=`var DATA;
42
+ _setDataSection();
43
+ `,Q=!0;if(Q&&A.length>0)A+=`
44
+ `;if(A+=Z,W.length>0)A+=`
45
+ `+W.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
46
+ `);if(this.dataSection!==null&&this.dataSection!==void 0)A+=`
57
47
 
58
48
  function _setDataSection() {
59
49
  DATA = ${JSON.stringify(this.dataSection)};
60
- }`;return R}generateBinaryOp(U,_,E,X){if((U==="+"||U==="-")&&_.length===1){let[$]=_;return`(${U}${this.generate($,"value")})`}let[R,A]=_;if(U==="!?"){let $=this.generate(R,"value"),Y=this.generate(A,"value");return`(${$} !== undefined ? ${$} : ${Y})`}if(U==="==")U="===";if(U==="!=")U="!==";return`(${this.generate(R,"value")} ${U} ${this.generate(A,"value")})`}generateModulo(U,_,E,X){let[R,A]=_;return this.helpers.add("modulo"),`modulo(${this.generate(R,"value")}, ${this.generate(A,"value")})`}generateFloorDiv(U,_,E,X){let[R,A]=_;return`Math.floor(${this.generate(R,"value")} / ${this.generate(A,"value")})`}generateFloorDivAssign(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value");return`${$} = Math.floor(${$} / ${Y})`}generateAssignment(U,_,E,X){let[R,A]=_,$=U==="?="?"??=":U,Y=Array.isArray(A)&&(A[0]==="->"||A[0]==="=>"||A[0]==="def");if(R instanceof String&&R.await!==void 0&&!Y){let q=R.await===!0?"!":"&";throw Error(`Cannot use ${q} sigil in variable declaration '${R.valueOf()}'. Sigils are only for call-sites.`)}if(R instanceof String&&R.await===!0&&Y)this.nextFunctionIsVoid=!0;let G=Array.isArray(R)&&R[0]==="array"&&R.length===1,Z=Array.isArray(R)&&R[0]==="object"&&R.length===1;if(G||Z){let q=this.generate(A,"value");if(Z&&E==="statement")return`(${q})`;return q}if(Array.isArray(A)&&$==="="&&A[0]==="control"){let[,q,N,W]=A,z=q instanceof String?q.valueOf():q,H=W[0]==="return",O=this.generate(R,"value");if(typeof R==="string")this.programVars.add(R);let S=this.generate(N,"value"),T=W.length>1?W[1]:null,B=H?T?`return ${this.generate(T,"value")}`:"return":T?`throw ${this.generate(T,"value")}`:"throw new Error()";if(E==="value")if(z==="??")return`(() => { const __v = ${S}; if (__v == null) ${B}; return (${O} = __v); })()`;else if(z==="||")return`(() => { const __v = ${S}; if (!__v) ${B}; return (${O} = __v); })()`;else return`(() => { const __v = ${S}; if (__v) ${B}; return (${O} = __v); })()`;if(z==="??")return`if ((${O} = ${S}) == null) ${B}`;else if(z==="||")return`if (!(${O} = ${S})) ${B}`;else return`if ((${O} = ${S})) ${B}`}if(Array.isArray(R)&&R[0]==="array"){let q=R.slice(1).findIndex((N)=>Array.isArray(N)&&N[0]==="..."||N==="...");if(q!==-1&&q<R.length-2){let N=R.slice(1),W=N.slice(q+1),z=W.length;if(z>0){let H=this.generate(A,"value"),S=N.slice(0,q).map((P)=>{if(P===",")return"";if(typeof P==="string")return P;return this.generate(P,"value")}).join(", "),T=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])}})})(N);let L=N[q],j=Array.isArray(L)&&L[0]==="..."?L[1]:null,w=[];if(S)w.push(`[${S}] = ${H}`);if(j)w.push(`[...${j}] = ${H}.slice(${q}, -${z})`);return w.push(`[${T}] = slice.call(${H}, -${z})`),w.join(", ")}}}if(E==="statement"&&U==="="&&Array.isArray(A)&&(A[0]==="||"||A[0]==="&&")&&A.length===3){let[q,N,W]=A;if(Array.isArray(W)&&(W[0]==="unless"||W[0]==="if")&&W.length===3){let[z,H,O]=W,S=Array.isArray(O)&&O.length===1?O[0]:O,T=[q,N,S],B=this.generate(R,"value"),L=this.generate(H,"value"),j=this.generate(T,"value");if(z==="unless")return`if (!${L}) ${B} = ${j}`;else return`if (${L}) ${B} = ${j}`}}if(E==="statement"&&U==="="&&Array.isArray(A)&&A.length===3){let q=A[0],[N,W,z]=A,H=Array.isArray(z)&&z.length===1&&(!Array.isArray(z[0])||z[0][0]!=="block");if((q==="unless"||q==="if")&&H){let O=z;if(Array.isArray(z)&&z.length===1)O=z[0];let S=this.generate(R,"value"),T=this.unwrapLogical(this.generate(W,"value")),B=this.generate(O,"value");if(q==="unless"){if(T.includes(" ")||T.includes("===")||T.includes("!==")||T.includes(">")||T.includes("<")||T.includes("&&")||T.includes("||"))T=`(${T})`;return`if (!${T}) ${S} = ${B}`}else return`if (${T}) ${S} = ${B}`}}let M;if(R instanceof String&&R.await!==void 0)M=R.valueOf();else if(typeof R==="string"&&this.reactiveVars?.has(R))M=`${R}.value`;else this.suppressReactiveUnwrap=!0,M=this.generate(R,"value"),this.suppressReactiveUnwrap=!1;let D=this.generate(A,"value");if(!(Array.isArray(A)&&A[0]==="object"))D=this.unwrap(D);let J=E==="value",K=E==="statement"&&Array.isArray(R)&&R[0]==="object";if(J||K)return`(${M} ${$} ${D})`;return`${M} ${$} ${D}`}generatePropertyAccess(U,_,E,X){let[R,A]=_;this.suppressReactiveUnwrap=!0;let $=this.generate(R,"value");this.suppressReactiveUnwrap=!1;let Y=k.NUMBER_LITERAL_REGEX.test($),F=Array.isArray(R)&&R[0]==="object",G=Array.isArray(R)&&(R[0]==="await"||R[0]==="yield"),M=Y||F||G?`(${$})`:$;if(A instanceof String&&A.await===!0){let Q=A.valueOf();return`await ${M}.${Q}()`}let D=A instanceof String?A.valueOf():A;return`${M}.${D}`}generateOptionalProperty(U,_,E,X){let[R,A]=_;return`${this.generate(R,"value")}?.${A}`}generatePrototype(U,_,E,X){let[R,A]=_,$=this.generate(R,"value");if(A==="prototype")return`${$}.prototype`;let Y=A instanceof String?A.valueOf():A;return`${$}.prototype.${Y}`}generateOptionalPrototype(U,_,E,X){let[R,A]=_,$=this.generate(R,"value");if(A==="prototype")return`(${$} != null ? ${$}.prototype : undefined)`;return`(${$} != null ? ${$}.prototype.${A} : undefined)`}generateRegexIndex(U,_,E,X){let[R,A,$]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let Y=this.generate(R,"value"),F=this.generate(A,"value"),G=$!==null?this.generate($,"value"):"0",M=F.includes("/m")?", true":"";return`(_ = toSearchable(${Y}${M}).match(${F})) && _[${G}]`}generateIndexAccess(U,_,E,X){let[R,A]=_;if(Array.isArray(A)&&(A[0]===".."||A[0]==="...")){let Y=A[0]==="..",F=this.generate(R,"value"),[G,Z]=A.slice(1);if(G===null&&Z===null)return`${F}.slice()`;else if(G===null){if(Y&&this.isNegativeOneLiteral(Z))return`${F}.slice(0)`;let M=this.generate(Z,"value");if(Y)return`${F}.slice(0, +${M} + 1 || 9e9)`;else return`${F}.slice(0, ${M})`}else if(Z===null){let M=this.generate(G,"value");return`${F}.slice(${M})`}else{let M=this.generate(G,"value");if(Y&&this.isNegativeOneLiteral(Z))return`${F}.slice(${M})`;let D=this.generate(Z,"value");if(Y)return`${F}.slice(${M}, +${D} + 1 || 9e9)`;else return`${F}.slice(${M}, ${D})`}}let $=this.unwrap(this.generate(A,"value"));return`${this.generate(R,"value")}[${$}]`}generateSoakIndex(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value");return`(${$} != null ? ${$}[${Y}] : undefined)`}generateOptIndex(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value");return`${$}?.[${Y}]`}generateOptCall(U,_,E,X){let[R,...A]=_,$=this.generate(R,"value"),Y=A.map((F)=>this.generate(F,"value")).join(", ");return`${$}?.(${Y})`}generateDef(U,_,E,X){let[R,A,$]=_,Y=R instanceof String&&R.await===!0,F=R instanceof String?R.valueOf():R,G=this.generateParamList(A),Z=this.generateFunctionBody($,A,Y),M=this.containsAwait($),D=this.containsYield($);return`${M?"async ":""}function${D?"*":""} ${F}(${G}) ${Z}`}generateThinArrow(U,_,E,X){let[R,A]=_,$=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(R),F=this.generateFunctionBody(A,R,$),G=this.containsAwait(A),Z=this.containsYield(A),Q=`${G?"async ":""}function${Z?"*":""}(${Y}) ${F}`;return E==="value"?`(${Q})`:Q}generateFatArrow(U,_,E,X){let[R,A]=_,$=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(R),G=R.length===1&&typeof R[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,M=this.containsAwait(A)?"async ":"";if(!$){if(Array.isArray(A)&&A[0]==="block"&&A.length===2){let Q=A[1];if(!Array.isArray(Q)||Q[0]!=="return")return`${M}${G} => ${this.generate(Q,"value")}`}if(!Array.isArray(A)||A[0]!=="block")return`${M}${G} => ${this.generate(A,"value")}`}let D=this.generateFunctionBody(A,R,$);return`${M}${G} => ${D}`}generateReturn(U,_,E,X){if(_.length===0)return"return";let[R]=_;if(this.sideEffectOnly)return"return";if(Array.isArray(R)&&R[0]==="unless"){let[,A,$]=R,Y=Array.isArray($)&&$.length===1?$[0]:$;return`if (!${this.generate(A,"value")}) return ${this.generate(Y,"value")}`}if(Array.isArray(R)&&R[0]==="if"){let[,A,$,...Y]=R;if(Y.length===0){let F=Array.isArray($)&&$.length===1?$[0]:$;return`if (${this.generate(A,"value")}) return ${this.generate(F,"value")}`}}if(Array.isArray(R)&&R[0]==="new"&&Array.isArray(R[1])&&R[1][0]==="unless"){let[,A]=R,[,$,Y]=A,F=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (!${this.generate($,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate(R,"value")}`}generateState(U,_,E,X){let[R,A]=_;this.usesReactivity=!0;let $=typeof R==="string"?R:R.valueOf(),Y=this.generate(A,"value");if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add($),`const ${$} = __state(${Y})`}generateComputed(U,_,E,X){let[R,A]=_;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let $=typeof R==="string"?R:R.valueOf();this.reactiveVars.add($);let Y=this.generate(A,"value");return`const ${$} = __computed(() => ${Y})`}generateReadonly(U,_,E,X){let[R,A]=_,$=typeof R==="string"?R:R.valueOf(),Y=this.generate(A,"value");return`const ${$} = ${Y}`}generateEffect(U,_,E,X){let[R,A]=_;this.usesReactivity=!0;let $;if(Array.isArray(A)&&A[0]==="block"){let F=A.slice(1);$=`{
61
- ${this.withIndent(()=>this.formatStatements(F)).join(`
50
+ }`;return A}generateBinaryOp($,T,Y,U){if(($==="+"||$==="-")&&T.length===1)return`(${$}${this.generate(T[0],"value")})`;let[A,F]=T;if($==="!?"){let W=this.generate(A,"value"),M=this.generate(F,"value");return`(${W} !== undefined ? ${W} : ${M})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(A,"value")} ${$} ${this.generate(F,"value")})`}generateModulo($,T){let[Y,U]=T;return this.helpers.add("modulo"),`modulo(${this.generate(Y,"value")}, ${this.generate(U,"value")})`}generateFloorDiv($,T){let[Y,U]=T;return`Math.floor(${this.generate(Y,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,T){let[Y,U]=T,A=this.generate(Y,"value"),F=this.generate(U,"value");return`${A} = Math.floor(${A} / ${F})`}generateAssignment($,T,Y,U){let[A,F]=T,W=$==="?="?"??=":$,M=Array.isArray(F)&&(F[0]==="->"||F[0]==="=>"||F[0]==="def");if(A instanceof String&&B(A,"await")!==void 0&&!M){let R=B(A,"await")===!0?"!":"&";throw Error(`Cannot use ${R} sigil in variable declaration '${E(A)}'.`)}if(A instanceof String&&B(A,"await")===!0&&M)this.nextFunctionIsVoid=!0;let D=Array.isArray(A)&&A[0]==="array"&&A.length===1,Z=Array.isArray(A)&&A[0]==="object"&&A.length===1;if(D||Z){let R=this.generate(F,"value");return Z&&Y==="statement"?`(${R})`:R}if(Array.isArray(F)&&W==="="&&F[0]==="control"){let[,R,_,K]=F,P=E(R),H=K[0]==="return",u=this.generate(A,"value");if(typeof A==="string")this.programVars.add(A);let q=this.generate(_,"value"),L=K.length>1?K[1]:null,O=H?L?`return ${this.generate(L,"value")}`:"return":L?`throw ${this.generate(L,"value")}`:"throw new Error()";if(Y==="value"){if(P==="??")return`(() => { const __v = ${q}; if (__v == null) ${O}; return (${u} = __v); })()`;if(P==="||")return`(() => { const __v = ${q}; if (!__v) ${O}; return (${u} = __v); })()`;return`(() => { const __v = ${q}; if (__v) ${O}; return (${u} = __v); })()`}if(P==="??")return`if ((${u} = ${q}) == null) ${O}`;if(P==="||")return`if (!(${u} = ${q})) ${O}`;return`if ((${u} = ${q})) ${O}`}if(Array.isArray(A)&&A[0]==="array"){let R=A.slice(1).findIndex((_)=>Array.isArray(_)&&_[0]==="..."||_==="...");if(R!==-1&&R<A.length-2){let _=A.slice(1),K=_.slice(R+1),P=K.length;if(P>0){let H=this.generate(F,"value"),q=_.slice(0,R).map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),L=K.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");this.helpers.add("slice"),_.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])});let O=_[R],I=Array.isArray(O)&&O[0]==="..."?O[1]:null,w=[];if(q)w.push(`[${q}] = ${H}`);if(I)w.push(`[...${I}] = ${H}.slice(${R}, -${P})`);return w.push(`[${L}] = slice.call(${H}, -${P})`),w.join(", ")}}}if(Y==="statement"&&$==="="&&Array.isArray(F)&&(F[0]==="||"||F[0]==="&&")&&F.length===3){let[R,_,K]=F;if(Array.isArray(K)&&(K[0]==="unless"||K[0]==="if")&&K.length===3){let[P,H,u]=K,q=Array.isArray(u)&&u.length===1?u[0]:u,L=[R,_,q],O=this.generate(A,"value"),I=this.generate(H,"value"),w=this.generate(L,"value");return P==="unless"?`if (!${I}) ${O} = ${w}`:`if (${I}) ${O} = ${w}`}}if(Y==="statement"&&$==="="&&Array.isArray(F)&&F.length===3){let[R,_,K]=F,P=Array.isArray(K)&&K.length===1&&(!Array.isArray(K[0])||K[0][0]!=="block");if((R==="unless"||R==="if")&&P){let H=Array.isArray(K)&&K.length===1?K[0]:K,u=this.generate(A,"value"),q=this.unwrapLogical(this.generate(_,"value")),L=this.generate(H,"value");if(R==="unless"){if(q.includes(" ")||/[<>=&|]/.test(q))q=`(${q})`;return`if (!${q}) ${u} = ${L}`}return`if (${q}) ${u} = ${L}`}}let Q;if(A instanceof String&&B(A,"await")!==void 0)Q=E(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))Q=`${A}.value`;else this.suppressReactiveUnwrap=!0,Q=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let X=this.generate(F,"value");if(!(Array.isArray(F)&&F[0]==="object"))X=this.unwrap(X);let z=Y==="value",G=Y==="statement"&&Array.isArray(A)&&A[0]==="object";if(z||G)return`(${Q} ${W} ${X})`;return`${Q} ${W} ${X}`}generatePropertyAccess($,T,Y,U){let[A,F]=T;this.suppressReactiveUnwrap=!0;let W=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let D=y.NUMBER_LITERAL_RE.test(W)||Array.isArray(A)&&(A[0]==="object"||A[0]==="await"||A[0]==="yield")?`(${W})`:W;if(B(F,"await")===!0)return`await ${D}.${E(F)}()`;if(B(F,"predicate"))return`(${D}.${E(F)} != null)`;return`${D}.${E(F)}`}generateOptionalProperty($,T){let[Y,U]=T;return`${this.generate(Y,"value")}?.${U}`}generateRegexIndex($,T){let[Y,U,A]=T;this.helpers.add("toSearchable"),this.programVars.add("_");let F=this.generate(Y,"value"),W=this.generate(U,"value"),M=A!==null?this.generate(A,"value"):"0",D=W.includes("/m")?", true":"";return`(_ = toSearchable(${F}${D}).match(${W})) && _[${M}]`}generateIndexAccess($,T){let[Y,U]=T;if(Array.isArray(U)&&(U[0]===".."||U[0]==="...")){let A=U[0]==="..",F=this.generate(Y,"value"),[W,M]=U.slice(1);if(W===null&&M===null)return`${F}.slice()`;if(W===null){if(A&&this.isNegativeOneLiteral(M))return`${F}.slice(0)`;let Q=this.generate(M,"value");return A?`${F}.slice(0, +${Q} + 1 || 9e9)`:`${F}.slice(0, ${Q})`}if(M===null)return`${F}.slice(${this.generate(W,"value")})`;let D=this.generate(W,"value");if(A&&this.isNegativeOneLiteral(M))return`${F}.slice(${D})`;let Z=this.generate(M,"value");return A?`${F}.slice(${D}, +${Z} + 1 || 9e9)`:`${F}.slice(${D}, ${Z})`}return`${this.generate(Y,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,T){let[Y,U]=T;return`${this.generate(Y,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,T){let[Y,...U]=T;return`${this.generate(Y,"value")}?.(${U.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef($,T,Y,U){let[A,F,W]=T,M=B(A,"await")===!0,D=E(A),Z=this.generateParamList(F),Q=this.generateFunctionBody(W,F,M),X=this.containsAwait(W),J=this.containsYield(W);return`${X?"async ":""}function${J?"*":""} ${D}(${Z}) ${Q}`}generateThinArrow($,T,Y,U){let[A,F]=T,W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let M=this.generateParamList(A),D=this.generateFunctionBody(F,A,W),Z=this.containsAwait(F),Q=this.containsYield(F),X=`${Z?"async ":""}function${Q?"*":""}(${M}) ${D}`;return Y==="value"?`(${X})`:X}generateFatArrow($,T,Y,U){let[A,F]=T,W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let M=this.generateParamList(A),Z=A.length===1&&typeof A[0]==="string"&&!M.includes("=")&&!M.includes("...")&&!M.includes("[")&&!M.includes("{")?M:`(${M})`,X=this.containsAwait(F)?"async ":"";if(!W){if(Array.isArray(F)&&F[0]==="block"&&F.length===2){let z=F[1];if(!Array.isArray(z)||z[0]!=="return")return`${X}${Z} => ${this.generate(z,"value")}`}if(!Array.isArray(F)||F[0]!=="block")return`${X}${Z} => ${this.generate(F,"value")}`}let J=this.generateFunctionBody(F,A,W);return`${X}${Z} => ${J}`}generateReturn($,T,Y,U){if(T.length===0)return"return";let[A]=T;if(this.sideEffectOnly)return"return";if(Array.isArray(A)&&A[0]==="unless"){let[,F,W]=A,M=Array.isArray(W)&&W.length===1?W[0]:W;return`if (!${this.generate(F,"value")}) return ${this.generate(M,"value")}`}if(Array.isArray(A)&&A[0]==="if"){let[,F,W,...M]=A;if(M.length===0){let D=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.generate(F,"value")}) return ${this.generate(D,"value")}`}}if(Array.isArray(A)&&A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,F]=A,[,W,M]=F,D=Array.isArray(M)&&M.length===1?M[0]:M;return`if (!${this.generate(W,"value")}) return ${this.generate(["new",D],"value")}`}return`return ${this.generate(A,"value")}`}generateState($,T){let[Y,U]=T;this.usesReactivity=!0;let A=E(Y)??Y;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(U,"value")})`}generateComputed($,T){let[Y,U]=T;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=E(Y)??Y;return this.reactiveVars.add(A),`const ${A} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,T){let[Y,U]=T;return`const ${E(Y)??Y} = ${this.generate(U,"value")}`}generateEffect($,T){let[Y,U]=T;this.usesReactivity=!0;let A;if(Array.isArray(U)&&U[0]==="block")A=`{
51
+ ${this.withIndent(()=>this.formatStatements(U.slice(1))).join(`
62
52
  `)}
63
- ${this.indent()}}`}else if(Array.isArray(A)&&(A[0]==="->"||A[0]==="=>")){let F=this.generate(A,"value");if(R)return`const ${typeof R==="string"?R:this.generate(R,"value")} = __effect(${F})`;return`__effect(${F})`}else $=`{ ${this.generate(A,"value")}; }`;let Y=`__effect(() => ${$})`;if(R)return`const ${typeof R==="string"?R:this.generate(R,"value")} = ${Y}`;return Y}generateBreak(U,_,E,X){return"break"}generateBreakIf(U,_,E,X){let[R]=_;return`if (${this.generate(R,"value")}) break`}generateContinue(U,_,E,X){return"continue"}generateContinueIf(U,_,E,X){let[R]=_;return`if (${this.generate(R,"value")}) continue`}generateExistential(U,_,E,X){let[R]=_;return`(${this.generate(R,"value")} != null)`}generateTernary(U,_,E,X){let[R,A,$]=_;return`(${this.unwrap(this.generate(R,"value"))} ? ${this.generate(A,"value")} : ${this.generate($,"value")})`}generateLoop(U,_,E,X){let[R]=_;return`while (true) ${this.generateLoopBody(R)}`}generateAwait(U,_,E,X){let[R]=_;return`await ${this.generate(R,"value")}`}generateYield(U,_,E,X){if(_.length===0)return"yield";let[R]=_;return`yield ${this.generate(R,"value")}`}generateYieldFrom(U,_,E,X){let[R]=_;return`yield* ${this.generate(R,"value")}`}generateIf(U,_,E,X){if(U==="unless"){let[Y,F]=_;if(Array.isArray(F)&&F.length===1){let Z=F[0];if(!Array.isArray(Z)||Z[0]!=="block")F=Z}if(E==="value"){let Z=this.extractExpression(F);return`(!${this.generate(Y,"value")} ? ${Z} : undefined)`}let G=this.unwrap(this.generate(Y,"value"));if(G.includes(" ")||G.includes("===")||G.includes("!==")||G.includes(">")||G.includes("<")||G.includes("&&")||G.includes("||"))G=`(${G})`;return`if (!${G}) `+this.generate(F,"statement")}let[R,A,...$]=_;if(E==="value")return this.generateIfAsExpression(R,A,$);else return this.generateIfAsStatement(R,A,$)}generateForIn(U,_,E,X){let[R,A,$,Y,F]=_;if(E==="value"&&this.comprehensionDepth===0){let N=["for-in",R,A,$],W=Y?[Y]:[];return this.generate(["comprehension",F,[N],W],E)}let G=Array.isArray(R)?R:[R],Z=G.length===0,[M,D]=Z?["_i",null]:G,Q=M;if(Array.isArray(M)&&(M[0]==="array"||M[0]==="object"))Q=this.generateDestructuringPattern(M);if($&&$!==null){let N=this.generate(A,"value"),W=D||"_i",z=this.generate($,"value"),H=this.isNegativeStep($),O=H&&($[1]==="1"||$[1]===1||$[1]instanceof String&&$[1].valueOf()==="1"),S=!H&&($==="1"||$===1||$ instanceof String&&$.valueOf()==="1"),T;if(O)T=`for (let ${W} = ${N}.length - 1; ${W} >= 0; ${W}--) `;else if(S)T=`for (let ${W} = 0; ${W} < ${N}.length; ${W}++) `;else if(H)T=`for (let ${W} = ${N}.length - 1; ${W} >= 0; ${W} += ${z}) `;else T=`for (let ${W} = 0; ${W} < ${N}.length; ${W} += ${z}) `;if(Array.isArray(F)&&F[0]==="block"){let B=F.slice(1);this.indentLevel++;let L=[];if(!Z)L.push(`const ${Q} = ${N}[${W}];`);if(Y){let j=this.generate(Y,"value");L.push(`if (${j}) {`),this.indentLevel++,L.push(...this.formatStatements(B)),this.indentLevel--,L.push(this.indent()+"}")}else L.push(...B.map((j)=>this.addSemicolon(j,this.generate(j,"statement"))));return this.indentLevel--,T+`{
64
- ${L.map((j)=>this.indent()+j).join(`
53
+ ${this.indent()}}`;else if(Array.isArray(U)&&(U[0]==="->"||U[0]==="=>")){let W=this.generate(U,"value");if(Y)return`const ${E(Y)??this.generate(Y,"value")} = __effect(${W})`;return`__effect(${W})`}else A=`{ ${this.generate(U,"value")}; }`;let F=`__effect(() => ${A})`;if(Y)return`const ${E(Y)??this.generate(Y,"value")} = ${F}`;return F}generateBreak(){return"break"}generateBreakIf($,T){return`if (${this.generate(T[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf($,T){return`if (${this.generate(T[0],"value")}) continue`}generateExistential($,T){return`(${this.generate(T[0],"value")} != null)`}generateTernary($,T){let[Y,U,A]=T;return`(${this.unwrap(this.generate(Y,"value"))} ? ${this.generate(U,"value")} : ${this.generate(A,"value")})`}generateLoop($,T){return`while (true) ${this.generateLoopBody(T[0])}`}generateAwait($,T){return`await ${this.generate(T[0],"value")}`}generateYield($,T){return T.length===0?"yield":`yield ${this.generate(T[0],"value")}`}generateYieldFrom($,T){return`yield* ${this.generate(T[0],"value")}`}generateIf($,T,Y,U){if($==="unless"){let[M,D]=T;if(Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block"))D=D[0];if(Y==="value")return`(!${this.generate(M,"value")} ? ${this.extractExpression(D)} : undefined)`;let Z=this.unwrap(this.generate(M,"value"));if(/[ <>=&|]/.test(Z))Z=`(${Z})`;return`if (!${Z}) `+this.generate(D,"statement")}let[A,F,...W]=T;return Y==="value"?this.generateIfAsExpression(A,F,W):this.generateIfAsStatement(A,F,W)}generateForIn($,T,Y,U){let[A,F,W,M,D]=T;if(Y==="value"&&this.comprehensionDepth===0){let _=["for-in",A,F,W];return this.generate(["comprehension",D,[_],M?[M]:[]],Y)}let Z=Array.isArray(A)?A:[A],Q=Z.length===0,[X,J]=Q?["_i",null]:Z,z=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(W&&W!==null){let _=this.generate(F,"value"),K=J||"_i",P=this.generate(W,"value"),H=this.isNegativeStep(W),u=H&&(W[1]==="1"||W[1]===1||E(W[1])==="1"),q=!H&&(W==="1"||W===1||E(W)==="1"),L;if(u)L=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K}--) `;else if(q)L=`for (let ${K} = 0; ${K} < ${_}.length; ${K}++) `;else if(H)L=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K} += ${P}) `;else L=`for (let ${K} = 0; ${K} < ${_}.length; ${K} += ${P}) `;if(Array.isArray(D)&&D[0]==="block"){let O=D.slice(1);this.indentLevel++;let I=[];if(!Q)I.push(`const ${z} = ${_}[${K}];`);if(M)I.push(`if (${this.generate(M,"value")}) {`),this.indentLevel++,I.push(...this.formatStatements(O)),this.indentLevel--,I.push(this.indent()+"}");else I.push(...O.map((w)=>this.addSemicolon(w,this.generate(w,"statement"))));return this.indentLevel--,L+`{
54
+ ${I.map((w)=>this.indent()+w).join(`
65
55
  `)}
66
- ${this.indent()}}`}else if(Z)if(Y){let B=this.generate(Y,"value");return T+`{ if (${B}) ${this.generate(F,"statement")}; }`}else return T+`{ ${this.generate(F,"statement")}; }`;else if(Y){let B=this.generate(Y,"value");return T+`{ const ${Q} = ${N}[${W}]; if (${B}) ${this.generate(F,"statement")}; }`}else return T+`{ const ${Q} = ${N}[${W}]; ${this.generate(F,"statement")}; }`}if(D){let N=this.generate(A,"value"),W=`for (let ${D} = 0; ${D} < ${N}.length; ${D}++) `;if(Array.isArray(F)&&F[0]==="block"){let z=F.slice(1);if(W+=`{
67
- `,this.indentLevel++,W+=this.indent()+`const ${Q} = ${N}[${D}];
68
- `,Y){let H=this.unwrap(this.generate(Y,"value"));W+=this.indent()+`if (${H}) {
69
- `,this.indentLevel++,W+=this.formatStatements(z).join(`
56
+ ${this.indent()}}`}if(Q)return M?L+`{ if (${this.generate(M,"value")}) ${this.generate(D,"statement")}; }`:L+`{ ${this.generate(D,"statement")}; }`;return M?L+`{ const ${z} = ${_}[${K}]; if (${this.generate(M,"value")}) ${this.generate(D,"statement")}; }`:L+`{ const ${z} = ${_}[${K}]; ${this.generate(D,"statement")}; }`}if(J){let _=this.generate(F,"value"),K=`for (let ${J} = 0; ${J} < ${_}.length; ${J}++) `;if(Array.isArray(D)&&D[0]==="block"){if(K+=`{
57
+ `,this.indentLevel++,K+=this.indent()+`const ${z} = ${_}[${J}];
58
+ `,M)K+=this.indent()+`if (${this.unwrap(this.generate(M,"value"))}) {
59
+ `,this.indentLevel++,K+=this.formatStatements(D.slice(1)).join(`
70
60
  `)+`
71
- `,this.indentLevel--,W+=this.indent()+`}
72
- `}else W+=this.formatStatements(z).join(`
61
+ `,this.indentLevel--,K+=this.indent()+`}
62
+ `;else K+=this.formatStatements(D.slice(1)).join(`
73
63
  `)+`
74
- `;this.indentLevel--,W+=this.indent()+"}"}else if(Y){let z=this.unwrap(this.generate(Y,"value"));W+=`{ const ${Q} = ${N}[${D}]; if (${z}) ${this.generate(F,"statement")}; }`}else W+=`{ const ${Q} = ${N}[${D}]; ${this.generate(F,"statement")}; }`;return W}let J=Array.isArray(A)&&A[0];if(J instanceof String)J=J.valueOf();if(J===".."||J==="..."){let N=J==="...",[W,z]=A.slice(1),H=(O)=>{if(typeof O==="number")return!0;if(O instanceof String)return!O.valueOf().includes("(");if(typeof O==="string"&&!O.includes("("))return!0;if(Array.isArray(O)&&O[0]===".")return!0;return!1};if(H(W)&&H(z)){let O=this.generate(W,"value"),S=this.generate(z,"value"),T=N?"<":"<=",B=`${Q}++`;if($&&$!==null){let j=this.generate($,"value");B=`${Q} += ${j}`}let L=`for (let ${Q} = ${O}; ${Q} ${T} ${S}; ${B}) `;if(Y)L+=this.generateLoopBodyWithGuard(F,Y);else L+=this.generateLoopBody(F);return L}}let q=`for (const ${Q} of ${this.generate(A,"value")}) `;if(Y)q+=this.generateLoopBodyWithGuard(F,Y);else q+=this.generateLoopBody(F);return q}generateForOf(U,_,E,X){let[R,A,$,Y,F]=_,[G,Z]=Array.isArray(R)?R:[R],M=this.generate(A,"value"),D=`for (const ${G} in ${M}) `;if($&&!Z&&!Y){if(Array.isArray(F)&&F[0]==="block"){let Q=F.slice(1);this.indentLevel++;let J=[`if (!Object.hasOwn(${M}, ${G})) continue;`,...Q.map((K)=>this.addSemicolon(K,this.generate(K,"statement")))];this.indentLevel--,D+=`{
75
- ${J.map((K)=>this.indent()+K).join(`
64
+ `;this.indentLevel--,K+=this.indent()+"}"}else K+=M?`{ const ${z} = ${_}[${J}]; if (${this.unwrap(this.generate(M,"value"))}) ${this.generate(D,"statement")}; }`:`{ const ${z} = ${_}[${J}]; ${this.generate(D,"statement")}; }`;return K}let G=Array.isArray(F)&&F[0];if(G instanceof String)G=E(G);if(G===".."||G==="..."){let _=G==="...",[K,P]=F.slice(1),H=(u)=>typeof u==="number"||typeof u==="string"&&!u.includes("(")||u instanceof String&&!E(u).includes("(")||Array.isArray(u)&&u[0]===".";if(H(K)&&H(P)){let u=this.generate(K,"value"),q=this.generate(P,"value"),L=_?"<":"<=",O=W?`${z} += ${this.generate(W,"value")}`:`${z}++`,I=`for (let ${z} = ${u}; ${z} ${L} ${q}; ${O}) `;return I+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),I}}let R=`for (const ${z} of ${this.generate(F,"value")}) `;return R+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),R}generateForOf($,T,Y,U){let[A,F,W,M,D]=T,[Z,Q]=Array.isArray(A)?A:[A],X=this.generate(F,"value"),J=`for (const ${Z} in ${X}) `;if(W&&!Q&&!M){if(Array.isArray(D)&&D[0]==="block"){this.indentLevel++;let z=[`if (!Object.hasOwn(${X}, ${Z})) continue;`,...D.slice(1).map((G)=>this.addSemicolon(G,this.generate(G,"statement")))];return this.indentLevel--,J+`{
65
+ ${z.map((G)=>this.indent()+G).join(`
76
66
  `)}
77
- ${this.indent()}}`}else D+=`{ if (!Object.hasOwn(${M}, ${G})) continue; ${this.generate(F,"statement")}; }`;return D}if(Z)if($&&Y)if(Array.isArray(F)&&F[0]==="block"){let Q=F.slice(1);this.indentLevel++;let J=this.indent(),K=this.generate(Y,"value");this.indentLevel++;let q=this.indent(),N=Q.map((W)=>q+this.addSemicolon(W,this.generate(W,"statement")));this.indentLevel-=2,D+=`{
78
- ${J}if (!Object.hasOwn(${M}, ${G})) continue;
79
- ${J}const ${Z} = ${M}[${G}];
80
- ${J}if (${K}) {
81
- ${N.join(`
67
+ ${this.indent()}}`}return J+`{ if (!Object.hasOwn(${X}, ${Z})) continue; ${this.generate(D,"statement")}; }`}if(Q){if(Array.isArray(D)&&D[0]==="block"){let G=D.slice(1);this.indentLevel++;let R=[];if(W)R.push(`if (!Object.hasOwn(${X}, ${Z})) continue;`);if(R.push(`const ${Q} = ${X}[${Z}];`),M)R.push(`if (${this.generate(M,"value")}) {`),this.indentLevel++,R.push(...G.map((_)=>this.addSemicolon(_,this.generate(_,"statement")))),this.indentLevel--,R.push(this.indent()+"}");else R.push(...G.map((_)=>this.addSemicolon(_,this.generate(_,"statement"))));return this.indentLevel--,J+`{
68
+ ${R.map((_)=>this.indent()+_).join(`
82
69
  `)}
83
- ${J}}
84
- ${this.indent()}}`}else{let Q=this.generate(Y,"value");D+=`{ if (!Object.hasOwn(${M}, ${G})) continue; const ${Z} = ${M}[${G}]; if (${Q}) ${this.generate(F,"statement")}; }`}else if($)if(Array.isArray(F)&&F[0]==="block"){let Q=F.slice(1);this.indentLevel++;let J=[`if (!Object.hasOwn(${M}, ${G})) continue;`,`const ${Z} = ${M}[${G}];`,...Q.map((K)=>this.addSemicolon(K,this.generate(K,"statement")))];this.indentLevel--,D+=`{
85
- ${J.map((K)=>this.indent()+K).join(`
70
+ ${this.indent()}}`}let z="";if(W)z+=`if (!Object.hasOwn(${X}, ${Z})) continue; `;if(z+=`const ${Q} = ${X}[${Z}]; `,M)z+=`if (${this.generate(M,"value")}) `;return z+=`${this.generate(D,"statement")};`,J+`{ ${z} }`}return J+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),J}generateForAs($,T,Y,U){let A=Array.isArray(T[0])?T[0]:[T[0]],[F]=A,W=T[1],M=T[2],D=T[3],Z=T[4],Q=!1,X=[];if(Array.isArray(F)&&F[0]==="array"){let _=F.slice(1),K=_.findIndex((P)=>Array.isArray(P)&&P[0]==="..."||P==="...");if(K!==-1&&K<_.length-1){Q=!0;let P=_.slice(K+1),H=P.length,u=_.slice(0,K),q=_[K],L=Array.isArray(q)&&q[0]==="..."?q[1]:"_rest",O=u.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),I=O?`${O}, ...${L}`:`...${L}`,w=P.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");X.push(`[${I}] = _item`),X.push(`[${w}] = ${L}.splice(-${H})`),this.helpers.add("slice"),_.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])})}}let J=this.generate(W,"value"),z=M?"await ":"",G;if(Q)G="_item";else if(Array.isArray(F)&&(F[0]==="array"||F[0]==="object"))G=this.generateDestructuringPattern(F);else G=F;let R=`for ${z}(const ${G} of ${J}) `;if(Q&&X.length>0){let _=this.unwrapBlock(Z),K=this.withIndent(()=>[...X.map((P)=>this.indent()+P+";"),...this.formatStatements(_)]);R+=`{
71
+ ${K.join(`
86
72
  `)}
87
- ${this.indent()}}`}else D+=`{ if (!Object.hasOwn(${M}, ${G})) continue; const ${Z} = ${M}[${G}]; ${this.generate(F,"statement")}; }`;else if(Y)if(Array.isArray(F)&&F[0]==="block"){let Q=F.slice(1);this.indentLevel++;let J=this.indent(),K=this.generate(Y,"value");this.indentLevel++;let q=this.indent(),N=Q.map((W)=>q+this.addSemicolon(W,this.generate(W,"statement")));this.indentLevel-=2,D+=`{
88
- ${J}const ${Z} = ${M}[${G}];
89
- ${J}if (${K}) {
90
- ${N.join(`
73
+ ${this.indent()}}`}else R+=D?this.generateLoopBodyWithGuard(Z,D):this.generateLoopBody(Z);return R}generateWhile($,T){let Y=T[0],U=T.length===3?T[1]:null,A=T[T.length-1];return`while (${this.unwrap(this.generate(Y,"value"))}) `+(U?this.generateLoopBodyWithGuard(A,U):this.generateLoopBody(A))}generateUntil($,T){let[Y,U]=T;return`while (!(${this.unwrap(this.generate(Y,"value"))})) `+this.generateLoopBody(U)}generateRange($,T){if($==="..."){if(T.length===1)return`...${this.generate(T[0],"value")}`;let[W,M]=T,D=this.generate(W,"value"),Z=this.generate(M,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${D}, ${Z})`}let[Y,U]=T,A=this.generate(Y,"value"),F=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${F})`}generateNot($,T){let[Y]=T;if(typeof Y==="string"||Y instanceof String)return`!${this.generate(Y,"value")}`;if(Array.isArray(Y)){if([".","?.","[]","optindex","optcall"].includes(Y[0]))return`!${this.generate(Y,"value")}`}let U=this.generate(Y,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,T){return`(~${this.generate(T[0],"value")})`}generateIncDec($,T){let[Y,U]=T,A=this.generate(Y,"value");return U?`(${A}${$})`:`(${$}${A})`}generateTypeof($,T){return`typeof ${this.generate(T[0],"value")}`}generateDelete($,T){return`(delete ${this.generate(T[0],"value")})`}generateInstanceof($,T,Y,U){let[A,F]=T,W=B(U[0],"invert"),M=`(${this.generate(A,"value")} instanceof ${this.generate(F,"value")})`;return W?`(!${M})`:M}generateIn($,T,Y,U){let[A,F]=T,W=this.generate(A,"value"),M=B(U[0],"invert");if(Array.isArray(F)&&F[0]==="object"){let Q=`(${W} in ${this.generate(F,"value")})`;return M?`(!${Q})`:Q}let D=this.generate(F,"value"),Z=`(Array.isArray(${D}) || typeof ${D} === 'string' ? ${D}.includes(${W}) : (${W} in ${D}))`;return M?`(!${Z})`:Z}generateOf($,T,Y,U){let[A,F]=T,W=this.generate(A,"value"),M=this.generate(F,"value"),D=B(U[0],"invert"),Z=`(${W} in ${M})`;return D?`(!${Z})`:Z}generateRegexMatch($,T){let[Y,U]=T;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(U,"value"),F=A.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(Y,"value")}${F}).match(${A}))`}generateNew($,T){let[Y]=T;if(Array.isArray(Y)&&(Y[0]==="."||Y[0]==="?.")){let[U,A,F]=Y;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${F}`;return`new ${this.generate(A,"value")}.${F}`}if(Array.isArray(Y)){let[U,...A]=Y;return`new ${this.generate(U,"value")}(${A.map((F)=>this.unwrap(this.generate(F,"value"))).join(", ")})`}return`new ${this.generate(Y,"value")}()`}generateLogicalAnd($,T,Y,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((F)=>this.generate(F,"value")).join(" && ")})`}generateLogicalOr($,T,Y,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((F)=>this.generate(F,"value")).join(" || ")})`}generateArray($,T){let Y=T.length>0&&T[T.length-1]===",",U=T.map((A)=>{if(A===",")return"";if(A==="...")return"";if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return Y?`[${U},]`:`[${U}]`}generateObject($,T,Y){if(T.length===1&&Array.isArray(T[0])&&Array.isArray(T[0][1])&&T[0][1][0]==="comprehension"){let[A,F]=T[0],[,W,M,D]=F;return this.generate(["object-comprehension",A,W,M,D],Y)}return`{${T.map((A)=>{if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;let[F,W,M]=A,D;if(Array.isArray(F)&&F[0]==="dynamicKey")D=`[${this.generate(F[1],"value")}]`;else if(Array.isArray(F)&&F[0]==="str")D=`[${this.generate(F,"value")}]`;else D=this.generate(F,"value");let Z=this.generate(W,"value");if(M==="=")return`${D} = ${Z}`;if(M===":")return`${D}: ${Z}`;if(D===Z&&!Array.isArray(F))return D;return`${D}: ${Z}`}).join(", ")}}`}generateBlock($,T,Y){if(Y==="statement")return`{
74
+ ${this.withIndent(()=>this.formatStatements(T)).join(`
91
75
  `)}
92
- ${J}}
93
- ${this.indent()}}`}else D+=`{ const ${Z} = ${M}[${G}]; if (${this.generate(Y,"value")}) ${this.generate(F,"statement")}; }`;else if(Array.isArray(F)&&F[0]==="block"){let Q=F.slice(1);this.indentLevel++;let J=[`const ${Z} = ${M}[${G}];`,...Q.map((K)=>this.addSemicolon(K,this.generate(K,"statement")))];this.indentLevel--,D+=`{
94
- ${J.map((K)=>this.indent()+K).join(`
95
- `)}
96
- ${this.indent()}}`}else D+=`{ const ${Z} = ${M}[${G}]; ${this.generate(F,"statement")}; }`;else if(Y)D+=this.generateLoopBodyWithGuard(F,Y);else D+=this.generateLoopBody(F);return D}generateForFrom(U,_,E,X){let R=Array.isArray(_[0])?_[0]:[_[0]],[A]=R,$=_[1],Y=_[2],F=_[3],G=_[4],Z=!1,M=[];if(Array.isArray(A)&&A[0]==="array"){let q=A.slice(1),N=q.findIndex((W)=>Array.isArray(W)&&W[0]==="..."||W==="...");if(N!==-1&&N<q.length-1){Z=!0;let W=q.slice(N+1),z=W.length,H=q.slice(0,N),O=q[N],S=Array.isArray(O)&&O[0]==="..."?O[1]:"_rest",T=H.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", "),B=T?`${T}, ...${S}`:`...${S}`,L=W.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", ");M.push(`[${B}] = _item`),M.push(`[${L}] = ${S}.splice(-${z})`),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])}})})(A)}}let D=this.generate($,"value"),Q=Y?"await ":"",J;if(Z)J="_item";else if(Array.isArray(A)&&(A[0]==="array"||A[0]==="object"))J=this.generateDestructuringPattern(A);else J=A;let K=`for ${Q}(const ${J} of ${D}) `;if(Z&&M.length>0){let q=this.unwrapBlock(G),N=this.withIndent(()=>[...M.map((W)=>this.indent()+W+";"),...this.formatStatements(q)]);K+=`{
97
- ${N.join(`
98
- `)}
99
- ${this.indent()}}`}else if(F)K+=this.generateLoopBodyWithGuard(G,F);else K+=this.generateLoopBody(G);return K}generateWhile(U,_,E,X){let R=_[0],A=_.length===3?_[1]:null,$=_[_.length-1],F=`while (${this.unwrap(this.generate(R,"value"))}) `;if(A)F+=this.generateLoopBodyWithGuard($,A);else F+=this.generateLoopBody($);return F}generateUntil(U,_,E,X){let[R,A]=_,Y=`while (!(${this.unwrap(this.generate(R,"value"))})) `;return Y+=this.generateLoopBody(A),Y}generateRange(U,_,E,X){if(U==="..."){if(_.length===1){let[D]=_;return`...${this.generate(D,"value")}`}let[F,G]=_,Z=this.generate(F,"value"),M=this.generate(G,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${M})`}let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${$}, ${Y})`}generateNot(U,_,E,X){let[R]=_;if(typeof R==="string"||R instanceof String)return`!${this.generate(R,"value")}`;if(Array.isArray(R)){let $=R[0];if([".","?.","::","?::","[]","?[]","optindex","optcall"].includes($))return`!${this.generate(R,"value")}`}let A=this.generate(R,"value");if(A.startsWith("("))return`!${A}`;return`(!${A})`}generateBitwiseNot(U,_,E,X){let[R]=_;return`(~${this.generate(R,"value")})`}generateIncDec(U,_,E,X){let[R,A]=_,$=this.generate(R,"value");if(A)return`(${$}${U})`;else return`(${U}${$})`}generateTypeof(U,_,E,X){let[R]=_;return`typeof ${this.generate(R,"value")}`}generateDelete(U,_,E,X){let[R]=_;return`(delete ${this.generate(R,"value")})`}generateInstanceof(U,_,E,X){let[R,A]=_,$=X[0]?.invert,Y=`(${this.generate(R,"value")} instanceof ${this.generate(A,"value")})`;return $?`(!${Y})`:Y}generateIn(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=X[0]?.invert;if(Array.isArray(A)&&A[0]==="object"){let Z=this.generate(A,"value"),M=`(${$} in ${Z})`;return Y?`(!${M})`:M}let F=this.generate(A,"value"),G=`(Array.isArray(${F}) || typeof ${F} === 'string' ? ${F}.includes(${$}) : (${$} in ${F}))`;return Y?`(!${G})`:G}generateOf(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value"),F=X[0]?.invert,G=`(${$} in ${Y})`;return F?`(!${G})`:G}generateRegexMatch(U,_,E,X){let[R,A]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(A,"value"),F=$.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(R,"value")}${F}).match(${$}))`}generateNew(U,_,E,X){let[R]=_;if(Array.isArray(R)&&(R[0]==="."||R[0]==="?.")){let[A,$,Y]=R;if(Array.isArray($)&&!$[0].startsWith)return`(${this.generate(["new",$],"value")}).${Y}`;return`new ${this.generate($,"value")}.${Y}`}if(Array.isArray(R)){let[A,...$]=R,Y=this.generate(A,"value"),F=$.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`new ${Y}(${F})`}return`new ${this.generate(R,"value")}()`}generateLogicalAnd(U,_,E,X){let A=this.flattenBinaryChain(X).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(U,_,E,X){let A=this.flattenBinaryChain(X).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(U,_,E,X){let R=_.length>0&&_[_.length-1]===",",A=_.map(($)=>{if($===",")return"";if($==="...")return"";if(Array.isArray($)&&$[0]==="...")return`...${this.generate($[1],"value")}`;return this.generate($,"value")}).join(", ");return R?`[${A},]`:`[${A}]`}generateObject(U,_,E,X){if(_.length===1&&Array.isArray(_[0])&&Array.isArray(_[0][1])&&_[0][1][0]==="comprehension"){let[A,$]=_[0],[,Y,F,G]=$;return this.generate(["object-comprehension",A,Y,F,G],E)}return`{${_.map((A)=>{if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;let[$,Y,F]=A,G;if(Array.isArray($)&&$[0]==="dynamicKey"){let M=$[1];G=`[${this.generate(M,"value")}]`}else if(Array.isArray($)&&$[0]==="str")G=`[${this.generate($,"value")}]`;else G=this.generate($,"value");let Z=this.generate(Y,"value");if(F==="=")return`${G} = ${Z}`;else if(F===":")return`${G}: ${Z}`;else{if(G===Z&&!Array.isArray($))return G;return`${G}: ${Z}`}}).join(", ")}}`}generateBlock(U,_,E,X){if(E==="statement")return`{
100
- ${this.withIndent(()=>this.formatStatements(_)).join(`
101
- `)}
102
- ${this.indent()}}`;if(_.length===0)return"undefined";if(_.length===1)return this.generate(_[0],E);let R=_[_.length-1];if(Array.isArray(R)&&["break","continue","return","throw"].includes(R[0])){let Y=_.map((F)=>this.addSemicolon(F,this.generate(F,"statement")));return`{
103
- ${this.withIndent(()=>Y.map((F)=>this.indent()+F).join(`
76
+ ${this.indent()}}`;if(T.length===0)return"undefined";if(T.length===1)return this.generate(T[0],Y);let U=T[T.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let F=T.map((W)=>this.addSemicolon(W,this.generate(W,"statement")));return`{
77
+ ${this.withIndent(()=>F.map((W)=>this.indent()+W).join(`
104
78
  `))}
105
- ${this.indent()}}`}return`(${_.map((Y)=>this.generate(Y,"value")).join(", ")})`}generateTry(U,_,E,X){let R=E==="value",A="try ",$=_[0];if(R&&Array.isArray($)&&$[0]==="block")A+=this.generateBlockWithReturns($);else A+=this.generate($,"statement");if(_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[Y,F]=_[1];if(A+=" catch",Y&&Array.isArray(Y)&&(Y[0]==="object"||Y[0]==="array")){A+=" (error)";let M=`(${this.generate(Y,"value")} = error)`;if(Array.isArray(F)&&F[0]==="block")F=["block",M,...F.slice(1)];else F=["block",M,F]}else if(Y)A+=` (${Y})`;if(R&&Array.isArray(F)&&F[0]==="block")A+=" "+this.generateBlockWithReturns(F);else A+=" "+this.generate(F,"statement")}else if(_.length===2)A+=" finally "+this.generate(_[1],"statement");if(_.length===3)A+=" finally "+this.generate(_[2],"statement");if(R)return`(${this.containsAwait(_[0])||_[1]&&this.containsAwait(_[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(U,_,E,X){let[R]=_,A=null;if(Array.isArray(R)){let Y=R,F=null;if(R[0]==="new"&&Array.isArray(R[1])&&(R[1][0]==="if"||R[1][0]==="unless"))F="new",Y=R[1];else if(R[0]==="if"||R[0]==="unless")Y=R;if(Y[0]==="if"||Y[0]==="unless"){let[G,Z,M]=Y,D=G==="unless",Q=M;if(Array.isArray(M)&&M.length===1)Q=M[0];if(F==="new")R=["new",Q];else R=Q;let J=this.generate(Z,"value"),K=`throw ${this.generate(R,"value")}`;if(D)return`if (!(${J})) {
106
- ${this.indent()} ${K};
107
- ${this.indent()}}`;else return`if (${J}) {
108
- ${this.indent()} ${K};
109
- ${this.indent()}}`}}let $=`throw ${this.generate(R,"value")}`;if(E==="value")return`(() => { ${$}; })()`;return $}generateControl(U,_,E,X){let[R,A,$]=_,Y=R instanceof String?R.valueOf():R,F=$[0]==="return",G=this.generate(A,"value"),Z=$.length>1?$[1]:null,M=F?Z?`return ${this.generate(Z,"value")}`:"return":Z?`throw ${this.generate(Z,"value")}`:"throw new Error()",D=this.wrapForCondition(G);if(E==="value")if(Y==="??")return`(() => { const __v = ${G}; if (__v == null) ${M}; return __v; })()`;else if(Y==="||")return`(() => { const __v = ${G}; if (!__v) ${M}; return __v; })()`;else return`(() => { const __v = ${G}; if (__v) ${M}; return __v; })()`;if(Y==="??")return`if (${D} == null) ${M}`;else if(Y==="||")return`if (!${D}) ${M}`;else return`if (${D}) ${M}`}wrapForCondition(U){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(U))return U;if(U.startsWith("(")&&U.endsWith(")"))return U;return`(${U})`}generateSwitch(U,_,E,X){let[R,A,$]=_;if(R===null)return this.generateSwitchAsIfChain(A,$,E);let Y=`switch (${this.generate(R,"value")}) {
110
- `;this.indentLevel++;let F=(G)=>G instanceof String?G.valueOf():G;for(let G of A){let[,Z,M]=G,D=Z;for(let Q of D){let J=F(Q),K;if(Array.isArray(J))K=this.generate(J,"value");else if(typeof J==="string"&&(J.startsWith('"')||J.startsWith("'")))K=`'${J.slice(1,-1)}'`;else K=this.generate(J,"value");Y+=this.indent()+`case ${K}:
111
- `}this.indentLevel++,Y+=this.generateSwitchCaseBody(M,E),this.indentLevel--}if($)Y+=this.indent()+`default:
112
- `,this.indentLevel++,Y+=this.generateSwitchCaseBody($,E),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",E==="value")return`(${A.some((M)=>this.containsAwait(M[2]))||$&&this.containsAwait($)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(U,_,E,X){throw Error("when clause should be handled by switch")}generateComprehension(U,_,E,X){let[R,A,$]=_;if(E==="statement")return this.generateComprehensionAsLoop(R,A,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(R,A,$,this.comprehensionTarget);let G=`(${this.containsAwait(R)?"async ":""}() => {
113
- `;this.indentLevel++,this.comprehensionDepth++,G+=this.indent()+`const result = [];
114
- `;for(let M of A){let[D,Q,J,K]=M;if(D==="for-in"){let q=K,N=Array.isArray(Q)?Q:[Q],W=N.length===0,[z,H]=W?["_i",null]:N,O=z;if(Array.isArray(z)&&(z[0]==="array"||z[0]==="object"))O=this.generateDestructuringPattern(z);if(q&&q!==null){let S=Array.isArray(J)&&J[0];if(S instanceof String)S=S.valueOf();if(S===".."||S==="..."){let B=S==="...",[L,j]=J.slice(1),w=this.generate(L,"value"),P=this.generate(j,"value"),V=this.generate(q,"value"),v=B?"<":"<=";G+=this.indent()+`for (let ${O} = ${w}; ${O} ${v} ${P}; ${O} += ${V}) {
115
- `,this.indentLevel++}else{let B=this.generate(J,"value"),L=H||"_i",j=this.generate(q,"value");if(this.isNegativeStep(q))G+=this.indent()+`for (let ${L} = ${B}.length - 1; ${L} >= 0; ${L} += ${j}) {
116
- `;else G+=this.indent()+`for (let ${L} = 0; ${L} < ${B}.length; ${L} += ${j}) {
117
- `;if(this.indentLevel++,!W)G+=this.indent()+`const ${O} = ${B}[${L}];
118
- `}}else if(H){let S=this.generate(J,"value");G+=this.indent()+`for (let ${H} = 0; ${H} < ${S}.length; ${H}++) {
119
- `,this.indentLevel++,G+=this.indent()+`const ${O} = ${S}[${H}];
120
- `}else G+=this.indent()+`for (const ${O} of ${this.generate(J,"value")}) {
121
- `,this.indentLevel++}else if(D==="for-of"){let q=K,N=Array.isArray(Q)?Q:[Q],[W,z]=N,H=W;if(Array.isArray(W)&&(W[0]==="array"||W[0]==="object"))H=this.generateDestructuringPattern(W);let O=this.generate(J,"value");if(G+=this.indent()+`for (const ${H} in ${O}) {
122
- `,this.indentLevel++,q)G+=this.indent()+`if (!Object.hasOwn(${O}, ${H})) continue;
123
- `;if(z)G+=this.indent()+`const ${z} = ${O}[${H}];
124
- `}else if(D==="for-from"){let q=M[3],N=Array.isArray(Q)?Q:[Q],[W]=N,z=W;if(Array.isArray(W)&&(W[0]==="array"||W[0]==="object"))z=this.generateDestructuringPattern(W);let H=q?"await ":"";G+=this.indent()+`for ${H}(const ${z} of ${this.generate(J,"value")}) {
125
- `,this.indentLevel++}}for(let M of $)G+=this.indent()+`if (${this.generate(M,"value")}) {
126
- `,this.indentLevel++;let Z=(M)=>{if(typeof M==="string"&&(M==="break"||M==="continue"))return!0;if(!Array.isArray(M))return!1;if(M[0]==="break"||M[0]==="continue"||M[0]==="break-if"||M[0]==="continue-if"||M[0]==="return"||M[0]==="throw")return!0;if(M[0]==="if"||M[0]==="unless")return M.slice(1).some((D)=>Z(D));return M.some((D)=>Z(D))};if(Array.isArray(R)&&R[0]==="block"){let M=R.slice(1);for(let D=0;D<M.length;D++){let Q=M[D],J=D===M.length-1,K=Z(Q);if(!J||K)G+=this.indent()+this.generate(Q,"statement")+`;
127
- `;else if(Array.isArray(Q)&&["for-in","for-of","for-from","while","until","loop"].includes(Q[0]))G+=this.indent()+this.generate(Q,"statement")+`;
128
- `;else G+=this.indent()+`result.push(${this.generate(Q,"value")});
129
- `}}else if(Z(R))G+=this.indent()+this.generate(R,"statement")+`;
130
- `;else if(Array.isArray(R)&&["for-in","for-of","for-from","while","until","loop"].includes(R[0]))G+=this.indent()+this.generate(R,"statement")+`;
131
- `;else G+=this.indent()+`result.push(${this.generate(R,"value")});
132
- `;for(let M=0;M<$.length;M++)this.indentLevel--,G+=this.indent()+`}
133
- `;for(let M=0;M<A.length;M++)this.indentLevel--,G+=this.indent()+`}
134
- `;return G+=this.indent()+`return result;
135
- `,this.indentLevel--,this.comprehensionDepth--,G+=this.indent()+"})()",G}generateObjectComprehension(U,_,E,X){let[R,A,$,Y]=_,F=`(() => {
136
- `;this.indentLevel++,F+=this.indent()+`const result = {};
137
- `;for(let M of $){let[D,Q,J,K]=M;if(D==="for-of"){let[q,N]=Q,W=this.generate(J,"value");if(F+=this.indent()+`for (const ${q} in ${W}) {
138
- `,this.indentLevel++,K)F+=this.indent()+`if (!Object.hasOwn(${W}, ${q})) continue;
139
- `;if(N)F+=this.indent()+`const ${N} = ${W}[${q}];
140
- `}}for(let M of Y)F+=this.indent()+`if (${this.generate(M,"value")}) {
141
- `,this.indentLevel++;let G=this.generate(R,"value"),Z=this.generate(A,"value");F+=this.indent()+`result[${G}] = ${Z};
142
- `;for(let M=0;M<Y.length;M++)this.indentLevel--,F+=this.indent()+`}
143
- `;for(let M=0;M<$.length;M++)this.indentLevel--,F+=this.indent()+`}
144
- `;return F+=this.indent()+`return result;
145
- `,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(U,_,E,X){let[R,A,...$]=_,Y=R?`class ${R}`:"class";if(A)Y+=` extends ${this.generate(A,"value")}`;if(Y+=` {
146
- `,$.length>0&&Array.isArray($[0])){let F=$[0];if(F[0]==="block"){let G=F.slice(1),Z=G.length>0&&Array.isArray(G[0])&&G[0][0]==="object";if(Z&&G.length===1){let D=G[0].slice(1);this.indentLevel++;let Q=[];for(let[J,K]of D){let q=this.isStaticMember(J),N=this.isComputedMember(J),W=this.extractMemberName(J);if(this.isBoundMethod(K)&&!q&&!N&&W!=="constructor")Q.push(W)}for(let[J,K]of D){let q=this.isStaticMember(J),N=this.isComputedMember(J),W=this.extractMemberName(J);if(Array.isArray(K)&&(K[0]==="->"||K[0]==="=>")){let[z,H,O]=K,S=this.containsAwait(O),T=this.containsYield(O),B=H,L=[];if(W==="constructor"){B=H.map((v)=>{if(Array.isArray(v)&&v[0]==="."&&v[1]==="this"){let f=v[2];return L.push(`this.${f} = ${f}`),f}return v});for(let v of Q)L.unshift(`this.${v} = this.${v}.bind(this)`)}let j=this.generateParamList(B),w=S?"async ":"",P=T?"*":"";if(q)Y+=this.indent()+`static ${w}${P}${W}(${j}) `;else Y+=this.indent()+`${w}${P}${W}(${j}) `;let V=W==="constructor";if(!N)this.currentMethodName=W;Y+=this.generateMethodBody(O,L,V,B),this.currentMethodName=null,Y+=`
147
- `}else if(q){let z=this.generate(K,"value");Y+=this.indent()+`static ${W} = ${z};
148
- `}else{let z=this.generate(K,"value");Y+=this.indent()+`${W} = ${z};
149
- `}}this.indentLevel--}else if(Z){let D=G[0].slice(1),Q=G.slice(1);this.indentLevel++;for(let[J,K]of D){let q=this.isStaticMember(J),N=this.isComputedMember(J),W=this.extractMemberName(J);if(Array.isArray(K)&&(K[0]==="->"||K[0]==="=>")){let[z,H,O]=K,S=this.containsAwait(O),T=this.containsYield(O),B=this.generateParamList(H),L=S?"async ":"",j=T?"*":"";if(q)Y+=this.indent()+`static ${L}${j}${W}(${B}) `;else Y+=this.indent()+`${L}${j}${W}(${B}) `;this.currentMethodName=W,Y+=this.generateMethodBody(O,[],W==="constructor",H),this.currentMethodName=null,Y+=`
150
- `}else if(q){let z=this.generate(K,"value");Y+=this.indent()+`static ${W} = ${z};
151
- `}else{let z=this.generate(K,"value");Y+=this.indent()+`${W} = ${z};
152
- `}}for(let J of Q)if(Array.isArray(J)&&J[0]==="class"){let[,K,q,...N]=J;if(Array.isArray(K)&&K[0]==="."&&K[1]==="this"){let W=K[2];Y+=this.indent()+`static ${W} = `;let z=this.generate(["class",null,q,...N],"value");Y+=z+`;
153
- `}}else Y+=this.indent()+this.generate(J,"statement")+`;
154
- `;this.indentLevel--}else{this.indentLevel++;for(let M of G)if(Array.isArray(M)&&M[0]==="="&&Array.isArray(M[1])&&M[1][0]==="."&&M[1][1]==="this"){let D=M[1][2],Q=this.generate(M[2],"value");Y+=this.indent()+`static ${D} = ${Q};
155
- `}else Y+=this.indent()+this.generate(M,"statement")+`;
156
- `;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper(U,_,E,X){if(_.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let R=_.map((A)=>this.unwrap(this.generate(A,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${R})`;return`super(${R})`}generateSoakCall(U,_,E,X){let[R,...A]=_,$=this.generate(R,"value"),Y=A.map((F)=>this.generate(F,"value")).join(", ");return`(typeof ${$} === 'function' ? ${$}(${Y}) : undefined)`}generateImport(U,_,E,X){if(_.length===1){let[Y]=_,F=`import(${this.generate(Y,"value")})`;if(X[0]instanceof String&&X[0].await===!0)return`(await ${F})`;return F}let[R,A]=_,$=this.addJsExtensionAndAssertions(A);if(typeof R==="string")return`import ${R} from ${$}`;if(Array.isArray(R)){if(R[0]==="*"&&R.length===2)return`import * as ${R[1]} from ${$}`;if(typeof R[0]==="string"&&Array.isArray(R[1])){let F=R[0],G=R[1];if(G[0]==="*"&&G.length===2)return`import ${F}, * as ${G[1]} from ${$}`;let Z=(Array.isArray(G)?G:[G]).map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ");return`import ${F}, { ${Z} } from ${$}`}return`import { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${$}`}return`import ${this.generate(R,"value")} from ${$}`}generateExport(U,_,E,X){let[R]=_;if(Array.isArray(R)&&R.every((A)=>typeof A==="string"))return`export { ${R.join(", ")} }`;if(Array.isArray(R)&&R[0]==="="){let[,A,$]=R;return`export const ${A} = ${this.generate($,"value")}`}return`export ${this.generate(R,"statement")}`}generateExportDefault(U,_,E,X){let[R]=_;if(Array.isArray(R)&&R[0]==="="){let[,A,$]=R;return`${`const ${A} = ${this.generate($,"value")}`};
157
- export default ${A}`}return`export default ${this.generate(R,"statement")}`}generateExportAll(U,_,E,X){let[R]=_;return`export * from ${this.addJsExtensionAndAssertions(R)}`}generateExportFrom(U,_,E,X){let[R,A]=_,$=this.addJsExtensionAndAssertions(A);if(Array.isArray(R))return`export { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${$}`;return`export ${R} from ${$}`}generateDoIIFE(U,_,E,X){let[R]=_;return`(${this.generate(R,"statement")})()`}generateRegex(U,_,E,X){if(_.length===0)return U;let[R]=_;return this.generate(R,"value")}generateTaggedTemplate(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value");if(Y.startsWith("`"))return`${$}${Y}`;if(Y.startsWith('"')||Y.startsWith("'")){let F=Y.slice(1,-1);return`${$}\`${F}\``}return`${$}\`${Y}\``}generateString(U,_,E,X){let R="`";for(let A=0;A<_.length;A++){let $=_[A];if($ instanceof String)R+=this.extractStringContent($);else if(typeof $==="string")if($.startsWith('"')||$.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str interpolation:",$);R+=$.slice(1,-1)}else R+=$;else if(Array.isArray($))if($.length===1&&typeof $[0]==="string"&&!Array.isArray($[0])){let Y=$[0];if(/^[\d"']/.test(Y))R+="${"+this.generate(Y,"value")+"}";else R+="${"+Y+"}"}else{let Y=$;if($.length===1&&Array.isArray($[0]))Y=$[0];R+="${"+this.generate(Y,"value")+"}"}}return R+="`",R}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 X=this.findPostfixConditional(U[E]);if(X)return X.parentOp=_,X.operandIndex=E,X.otherOperands=U.slice(1).filter((R,A)=>A!==E-1),X}return null}generateDestructuringPattern(U){return this.formatParam(U)}generateParamList(U){let _=U.findIndex((X)=>Array.isArray(X)&&X[0]==="expansion");if(_!==-1){let X=U.slice(0,_),R=U.slice(_+1),A=X.map((Y)=>this.formatParam(Y)).join(", "),$=A?`${A}, ..._rest`:"..._rest";return this.expansionAfterParams=R,$}let E=U.findIndex((X)=>Array.isArray(X)&&X[0]==="rest");if(E!==-1&&E<U.length-1){let X=U.slice(0,E),R=U[E],A=U.slice(E+1),$=X.map((F)=>this.formatParam(F)),Y=$.length>0?`${$.join(", ")}, ...${R[1]}`:`...${R[1]}`;return this.restMiddleParam={restName:R[1],afterParams:A,beforeCount:X.length},Y}return this.expansionAfterParams=null,this.restMiddleParam=null,U.map((X)=>this.formatParam(X)).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[,X,R]=E;return`${X} = ${this.generate(R,"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[,A,$]=E,Y=this.generate($,"value");return`${A} = ${Y}`}let[X,R]=E;if(X===R)return X;return`${X}: ${R}`}).join(", ")}}`;return JSON.stringify(U)}generateBodyWithReturns(U,_=[],E={}){let{sideEffectOnly:X=!1,autoAssignments:R=[],isConstructor:A=!1,hasExpansionParams:$=!1}=E,Y=this.sideEffectOnly;this.sideEffectOnly=X;let F=new Set,G=(J)=>{if(typeof J==="string")F.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,F)}};if(Array.isArray(_))_.forEach(G);let Z=this.collectFunctionVariables(U),M=new Set([...Z].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!F.has(J))),D=["return","throw","break","continue"],Q=["for-in","for-of","for-from","while","until","loop"];if(Array.isArray(U)&&U[0]==="block"){let J=this.unwrapBlock(U);if($&&this.expansionAfterParams&&this.expansionAfterParams.length>0)J=[...this.expansionAfterParams.map((W,z)=>{return`const ${typeof W==="string"?W:JSON.stringify(W)} = _rest[_rest.length - ${this.expansionAfterParams.length-z}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:N,afterParams:W}=this.restMiddleParam,z=W.length,H=[];if(W.forEach((O,S)=>{let T=typeof O==="string"?O:Array.isArray(O)&&O[0]==="default"?O[1]:JSON.stringify(O),B=z-S;H.push(`const ${T} = ${N}[${N}.length - ${B}]`)}),z>0)H.push(`${N} = ${N}.slice(0, -${z})`);J=[...H,...J],this.restMiddleParam=null}this.indentLevel++;let K=`{
158
- `;if(M.size>0){let N=Array.from(M).sort().join(", ");K+=this.indent()+`let ${N};
159
- `}if(R.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super"){if(J.length===1&&!A)K+=this.indent()+"return "+this.generate(J[0],"value")+`;
160
- `;else K+=this.indent()+this.generate(J[0],"statement")+`;
161
- `;for(let W of R)K+=this.indent()+W+`;
162
- `;J.slice(1).forEach((W,z)=>{let H=z===J.length-2,O=Array.isArray(W)?W[0]:null;if(!H&&O==="comprehension"){let[,L,j,w]=W;K+=this.indent()+this.generateComprehensionAsLoop(L,j,w)+`
163
- `;return}if(!A&&H&&(O==="if"||O==="unless")){let[L,j,...w]=W.slice(1),P=(V)=>{return Array.isArray(V)&&V[0]==="block"&&V.length>2};if(P(j)||w.some(P)){K+=this.generateIfElseWithEarlyReturns(W);return}}let S=!A&&!X&&H&&!D.includes(O)&&!Q.includes(O)&&!this.hasExplicitControlFlow(W),T=S?"value":"statement",B=this.generate(W,T);if(S)K+=this.indent()+"return "+B+`;
164
- `;else K+=this.indent()+this.addSemicolon(W,B)+`
165
- `})}else{for(let N of R)K+=this.indent()+N+`;
166
- `;J.forEach((N,W)=>{let z=W===J.length-1,H=Array.isArray(N)?N[0]:null;if(!z&&H==="comprehension"){let[,B,L,j]=N;K+=this.indent()+this.generateComprehensionAsLoop(B,L,j)+`
167
- `;return}if(!A&&!X&&z&&(H==="if"||H==="unless")){let[B,L,...j]=N.slice(1),w=(P)=>{return Array.isArray(P)&&P[0]==="block"&&P.length>2};if(w(L)||j.some(w)){K+=this.generateIfElseWithEarlyReturns(N);return}}if(!A&&!X&&z&&H==="="){let[B,L]=N.slice(1);if(typeof B==="string"&&Array.isArray(L)){let j=L[0];if(j==="comprehension"||j==="for-in"){this.comprehensionTarget=B,K+=this.generate(L,"value"),this.comprehensionTarget=null,K+=this.indent()+`return ${B};
168
- `;return}}}let O=!A&&!X&&z&&!D.includes(H)&&!Q.includes(H)&&!this.hasExplicitControlFlow(N),S=O?"value":"statement",T=this.generate(N,S);if(O)K+=this.indent()+"return "+T+`;
169
- `;else K+=this.indent()+this.addSemicolon(N,T)+`
170
- `})}if(X&&J.length>0){let N=J[J.length-1],W=Array.isArray(N)?N[0]:null;if(!D.includes(W))K+=this.indent()+`return;
171
- `}return this.indentLevel--,K+=this.indent()+"}",this.sideEffectOnly=Y,K}if(A||this.hasExplicitControlFlow(U))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(Array.isArray(U)&&(D.includes(U[0])||Q.includes(U[0])))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(this.sideEffectOnly=Y,X)return`{ ${this.generate(U,"statement")}; return; }`;return`{ return ${this.generate(U,"value")}; }`}generateFunctionBody(U,_=[],E=!1){let X=this.expansionAfterParams?.length>0;return this.generateBodyWithReturns(U,_,{sideEffectOnly:E,hasExpansionParams:X})}generateBlockWithReturns(U){if(!Array.isArray(U)||U[0]!=="block")return this.generate(U,"statement");let _=this.unwrapBlock(U);return`{
172
- ${this.withIndent(()=>{return _.map((X,R)=>{let A=R===_.length-1,$=Array.isArray(X)?X[0]:null,F=A&&!["return","throw","break","continue"].includes($),G=F?"value":"statement",Z=this.generate(X,G);if(F)return this.indent()+"return "+Z+";";return this.indent()+Z+";"})}).join(`
79
+ ${this.indent()}}`}return`(${T.map((F)=>this.generate(F,"value")).join(", ")})`}generateTry($,T,Y){let U=Y==="value",A="try ",F=T[0];if(A+=U&&Array.isArray(F)&&F[0]==="block"?this.generateBlockWithReturns(F):this.generate(F,"statement"),T.length>=2&&Array.isArray(T[1])&&T[1].length===2&&T[1][0]!=="block"){let[W,M]=T[1];if(A+=" catch",W&&Array.isArray(W)&&(W[0]==="object"||W[0]==="array")){A+=" (error)";let D=`(${this.generate(W,"value")} = error)`;M=Array.isArray(M)&&M[0]==="block"?["block",D,...M.slice(1)]:["block",D,M]}else if(W)A+=` (${W})`;A+=" "+(U&&Array.isArray(M)&&M[0]==="block"?this.generateBlockWithReturns(M):this.generate(M,"statement"))}else if(T.length===2)A+=" finally "+this.generate(T[1],"statement");if(T.length===3)A+=" finally "+this.generate(T[2],"statement");if(U)return`(${this.containsAwait(T[0])||T[1]&&this.containsAwait(T[1])?"async ":""}() => { ${A} })()`;return A}generateThrow($,T,Y){let[U]=T;if(Array.isArray(U)){let F=U,W=null;if(U[0]==="new"&&Array.isArray(U[1])&&(U[1][0]==="if"||U[1][0]==="unless"))W="new",F=U[1];else if(U[0]==="if"||U[0]==="unless")F=U;if(F[0]==="if"||F[0]==="unless"){let[M,D,Z]=F,Q=Array.isArray(Z)&&Z.length===1?Z[0]:Z;U=W==="new"?["new",Q]:Q;let X=this.generate(D,"value"),J=`throw ${this.generate(U,"value")}`;return M==="unless"?`if (!(${X})) {
80
+ ${this.indent()} ${J};
81
+ ${this.indent()}}`:`if (${X}) {
82
+ ${this.indent()} ${J};
83
+ ${this.indent()}}`}}let A=`throw ${this.generate(U,"value")}`;return Y==="value"?`(() => { ${A}; })()`:A}generateControl($,T,Y){let[U,A,F]=T,W=E(U),M=F[0]==="return",D=this.generate(A,"value"),Z=F.length>1?F[1]:null,Q=M?Z?`return ${this.generate(Z,"value")}`:"return":Z?`throw ${this.generate(Z,"value")}`:"throw new Error()",X=this.wrapForCondition(D);if(Y==="value"){if(W==="??")return`(() => { const __v = ${D}; if (__v == null) ${Q}; return __v; })()`;if(W==="||")return`(() => { const __v = ${D}; if (!__v) ${Q}; return __v; })()`;return`(() => { const __v = ${D}; if (__v) ${Q}; return __v; })()`}if(W==="??")return`if (${X} == null) ${Q}`;if(W==="||")return`if (!${X}) ${Q}`;return`if (${X}) ${Q}`}generateSwitch($,T,Y){let[U,A,F]=T;if(U===null)return this.generateSwitchAsIfChain(A,F,Y);let W=`switch (${this.generate(U,"value")}) {
84
+ `;this.indentLevel++;for(let M of A){let[,D,Z]=M;for(let Q of D){let X=E(Q)??Q,J;if(Array.isArray(X))J=this.generate(X,"value");else if(typeof X==="string"&&(X.startsWith('"')||X.startsWith("'")))J=`'${X.slice(1,-1)}'`;else J=this.generate(X,"value");W+=this.indent()+`case ${J}:
85
+ `}this.indentLevel++,W+=this.generateSwitchCaseBody(Z,Y),this.indentLevel--}if(F)W+=this.indent()+`default:
86
+ `,this.indentLevel++,W+=this.generateSwitchCaseBody(F,Y),this.indentLevel--;if(this.indentLevel--,W+=this.indent()+"}",Y==="value")return`(${A.some((D)=>this.containsAwait(D[2]))||F&&this.containsAwait(F)?"async ":""}() => { ${W} })()`;return W}generateWhen(){throw Error("when clause should be handled by switch")}generateComprehension($,T,Y){let[U,A,F]=T;if(Y==="statement")return this.generateComprehensionAsLoop(U,A,F);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,A,F,this.comprehensionTarget);let M=`(${this.containsAwait(U)?"async ":""}() => {
87
+ `;this.indentLevel++,this.comprehensionDepth++,M+=this.indent()+`const result = [];
88
+ `;for(let Q of A){let[X,J,z,G]=Q;if(X==="for-in"){let R=G,_=Array.isArray(J)?J:[J],K=_.length===0,[P,H]=K?["_i",null]:_,u=Array.isArray(P)&&(P[0]==="array"||P[0]==="object")?this.generateDestructuringPattern(P):P;if(R&&R!==null){let q=Array.isArray(z)&&z[0];if(q instanceof String)q=E(q);if(q===".."||q==="..."){let O=q==="...",[I,w]=z.slice(1),N=this.generate(I,"value"),S=this.generate(w,"value"),j=this.generate(R,"value");M+=this.indent()+`for (let ${u} = ${N}; ${u} ${O?"<":"<="} ${S}; ${u} += ${j}) {
89
+ `,this.indentLevel++}else{let O=this.generate(z,"value"),I=H||"_i",w=this.generate(R,"value"),N=this.isNegativeStep(R);if(M+=N?this.indent()+`for (let ${I} = ${O}.length - 1; ${I} >= 0; ${I} += ${w}) {
90
+ `:this.indent()+`for (let ${I} = 0; ${I} < ${O}.length; ${I} += ${w}) {
91
+ `,this.indentLevel++,!K)M+=this.indent()+`const ${u} = ${O}[${I}];
92
+ `}}else if(H){let q=this.generate(z,"value");M+=this.indent()+`for (let ${H} = 0; ${H} < ${q}.length; ${H}++) {
93
+ `,this.indentLevel++,M+=this.indent()+`const ${u} = ${q}[${H}];
94
+ `}else M+=this.indent()+`for (const ${u} of ${this.generate(z,"value")}) {
95
+ `,this.indentLevel++}else if(X==="for-of"){let R=G,_=Array.isArray(J)?J:[J],[K,P]=_,H=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K,u=this.generate(z,"value");if(M+=this.indent()+`for (const ${H} in ${u}) {
96
+ `,this.indentLevel++,R)M+=this.indent()+`if (!Object.hasOwn(${u}, ${H})) continue;
97
+ `;if(P)M+=this.indent()+`const ${P} = ${u}[${H}];
98
+ `}else if(X==="for-as"){let R=Q[3],_=Array.isArray(J)?J:[J],[K]=_,P=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;M+=this.indent()+`for ${R?"await ":""}(const ${P} of ${this.generate(z,"value")}) {
99
+ `,this.indentLevel++}}for(let Q of F)M+=this.indent()+`if (${this.generate(Q,"value")}) {
100
+ `,this.indentLevel++;let D=(Q)=>{if(typeof Q==="string"&&(Q==="break"||Q==="continue"))return!0;if(!Array.isArray(Q))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(Q[0]))return!0;if(Q[0]==="if"||Q[0]==="unless")return Q.slice(1).some(D);return Q.some(D)},Z=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(U)&&U[0]==="block")for(let Q=0;Q<U.length-1;Q++){let X=U[Q+1];if(Q!==U.length-2||D(X))M+=this.indent()+this.generate(X,"statement")+`;
101
+ `;else if(Array.isArray(X)&&Z.includes(X[0]))M+=this.indent()+this.generate(X,"statement")+`;
102
+ `;else M+=this.indent()+`result.push(${this.generate(X,"value")});
103
+ `}else if(D(U))M+=this.indent()+this.generate(U,"statement")+`;
104
+ `;else if(Array.isArray(U)&&Z.includes(U[0]))M+=this.indent()+this.generate(U,"statement")+`;
105
+ `;else M+=this.indent()+`result.push(${this.generate(U,"value")});
106
+ `;for(let Q=0;Q<F.length;Q++)this.indentLevel--,M+=this.indent()+`}
107
+ `;for(let Q=0;Q<A.length;Q++)this.indentLevel--,M+=this.indent()+`}
108
+ `;return M+=this.indent()+`return result;
109
+ `,this.indentLevel--,this.comprehensionDepth--,M+=this.indent()+"})()",M}generateObjectComprehension($,T,Y){let[U,A,F,W]=T,M=`(() => {
110
+ `;this.indentLevel++,M+=this.indent()+`const result = {};
111
+ `;for(let D of F){let[Z,Q,X,J]=D;if(Z==="for-of"){let[z,G]=Q,R=this.generate(X,"value");if(M+=this.indent()+`for (const ${z} in ${R}) {
112
+ `,this.indentLevel++,J)M+=this.indent()+`if (!Object.hasOwn(${R}, ${z})) continue;
113
+ `;if(G)M+=this.indent()+`const ${G} = ${R}[${z}];
114
+ `}}for(let D of W)M+=this.indent()+`if (${this.generate(D,"value")}) {
115
+ `,this.indentLevel++;M+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(A,"value")};
116
+ `;for(let D=0;D<W.length;D++)this.indentLevel--,M+=this.indent()+`}
117
+ `;for(let D=0;D<F.length;D++)this.indentLevel--,M+=this.indent()+`}
118
+ `;return M+=this.indent()+`return result;
119
+ `,this.indentLevel--,M+=this.indent()+"})()",M}generateClass($,T,Y){let[U,A,...F]=T,W=U?`class ${U}`:"class";if(A)W+=` extends ${this.generate(A,"value")}`;if(W+=` {
120
+ `,F.length>0&&Array.isArray(F[0])){let M=F[0];if(M[0]==="block"){let D=M.slice(1),Z=D.length>0&&Array.isArray(D[0])&&D[0][0]==="object";if(Z&&D.length===1){let Q=D[0].slice(1);this.indentLevel++;let X=[];for(let[J,z]of Q){let G=this.isStaticMember(J),R=this.isComputedMember(J),_=this.extractMemberName(J);if(this.isBoundMethod(z)&&!G&&!R&&_!=="constructor")X.push(_)}for(let[J,z]of Q){let G=this.isStaticMember(J),R=this.isComputedMember(J),_=this.extractMemberName(J);if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,K,P]=z,H=this.containsAwait(P),u=this.containsYield(P),q=K,L=[];if(_==="constructor"){q=K.map((w)=>{if(Array.isArray(w)&&w[0]==="."&&w[1]==="this")return L.push(`this.${w[2]} = ${w[2]}`),w[2];return w});for(let w of X)L.unshift(`this.${w} = this.${w}.bind(this)`)}let O=this.generateParamList(q),I=(G?"static ":"")+(H?"async ":"")+(u?"*":"");if(W+=this.indent()+`${I}${_}(${O}) `,!R)this.currentMethodName=_;W+=this.generateMethodBody(P,L,_==="constructor",q),this.currentMethodName=null,W+=`
121
+ `}else if(G)W+=this.indent()+`static ${_} = ${this.generate(z,"value")};
122
+ `;else W+=this.indent()+`${_} = ${this.generate(z,"value")};
123
+ `}this.indentLevel--}else if(Z){let Q=D[0].slice(1),X=D.slice(1);this.indentLevel++;for(let[J,z]of Q){let G=this.isStaticMember(J),R=this.extractMemberName(J);if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,_,K]=z,P=this.generateParamList(_),H=(G?"static ":"")+(this.containsAwait(K)?"async ":"")+(this.containsYield(K)?"*":"");W+=this.indent()+`${H}${R}(${P}) `,this.currentMethodName=R,W+=this.generateMethodBody(K,[],R==="constructor",_),this.currentMethodName=null,W+=`
124
+ `}else if(G)W+=this.indent()+`static ${R} = ${this.generate(z,"value")};
125
+ `;else W+=this.indent()+`${R} = ${this.generate(z,"value")};
126
+ `}for(let J of X)if(Array.isArray(J)&&J[0]==="class"){let[,z,G,...R]=J;if(Array.isArray(z)&&z[0]==="."&&z[1]==="this")W+=this.indent()+`static ${z[2]} = ${this.generate(["class",null,G,...R],"value")};
127
+ `}else W+=this.indent()+this.generate(J,"statement")+`;
128
+ `;this.indentLevel--}else{this.indentLevel++;for(let Q of D)if(Array.isArray(Q)&&Q[0]==="="&&Array.isArray(Q[1])&&Q[1][0]==="."&&Q[1][1]==="this")W+=this.indent()+`static ${Q[1][2]} = ${this.generate(Q[2],"value")};
129
+ `;else W+=this.indent()+this.generate(Q,"statement")+`;
130
+ `;this.indentLevel--}}}return W+=this.indent()+"}",W}generateSuper($,T){if(T.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Y=T.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Y})`;return`super(${Y})`}generateImport($,T,Y,U){if(T.length===1){let M=`import(${this.generate(T[0],"value")})`;if(B(U[0],"await")===!0)return`(await ${M})`;return M}let[A,F]=T,W=this.addJsExtensionAndAssertions(F);if(typeof A==="string")return`import ${A} from ${W}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${W}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let D=A[0],Z=A[1];if(Z[0]==="*"&&Z.length===2)return`import ${D}, * as ${Z[1]} from ${W}`;let Q=(Array.isArray(Z)?Z:[Z]).map((X)=>Array.isArray(X)&&X.length===2?`${X[0]} as ${X[1]}`:X).join(", ");return`import ${D}, { ${Q} } from ${W}`}return`import { ${A.map((D)=>Array.isArray(D)&&D.length===2?`${D[0]} as ${D[1]}`:D).join(", ")} } from ${W}`}return`import ${this.generate(A,"value")} from ${W}`}generateExport($,T){let[Y]=T;if(Array.isArray(Y)&&Y.every((U)=>typeof U==="string"))return`export { ${Y.join(", ")} }`;if(Array.isArray(Y)&&Y[0]==="=")return`export const ${Y[1]} = ${this.generate(Y[2],"value")}`;return`export ${this.generate(Y,"statement")}`}generateExportDefault($,T){let[Y]=T;if(Array.isArray(Y)&&Y[0]==="=")return`const ${Y[1]} = ${this.generate(Y[2],"value")};
131
+ export default ${Y[1]}`;return`export default ${this.generate(Y,"statement")}`}generateExportAll($,T){return`export * from ${this.addJsExtensionAndAssertions(T[0])}`}generateExportFrom($,T){let[Y,U]=T,A=this.addJsExtensionAndAssertions(U);if(Array.isArray(Y))return`export { ${Y.map((W)=>Array.isArray(W)&&W.length===2?`${W[0]} as ${W[1]}`:W).join(", ")} } from ${A}`;return`export ${Y} from ${A}`}generateDoIIFE($,T){return`(${this.generate(T[0],"statement")})()`}generateRegex($,T){return T.length===0?$:this.generate(T[0],"value")}generateTaggedTemplate($,T){let[Y,U]=T,A=this.generate(Y,"value"),F=this.generate(U,"value");if(F.startsWith("`"))return`${A}${F}`;if(F.startsWith('"')||F.startsWith("'"))return`${A}\`${F.slice(1,-1)}\``;return`${A}\`${F}\``}generateString($,T){let Y="`";for(let U of T)if(U instanceof String)Y+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);Y+=U.slice(1,-1)}else Y+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let A=U[0];Y+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=U.length===1&&Array.isArray(U[0])?U[0]:U;Y+="${"+this.generate(A,"value")+"}"}return Y+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let T=$[0];if((T==="unless"||T==="if")&&$.length===3)return{type:T,condition:$[1],value:$[2]};if(T==="+"||T==="-"||T==="*"||T==="/")for(let Y=1;Y<$.length;Y++){let U=this.findPostfixConditional($[Y]);if(U)return U.parentOp=T,U.operandIndex=Y,U.otherOperands=$.slice(1).filter((A,F)=>F!==Y-1),U}return null}rebuildWithoutConditional($){let T=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,T];return T}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let T=$.findIndex((U)=>Array.isArray(U)&&U[0]==="expansion");if(T!==-1){let U=$.slice(0,T),A=$.slice(T+1),F=U.map((W)=>this.formatParam(W)).join(", ");return this.expansionAfterParams=A,F?`${F}, ..._rest`:"..._rest"}let Y=$.findIndex((U)=>Array.isArray(U)&&U[0]==="rest");if(Y!==-1&&Y<$.length-1){let U=$.slice(0,Y),A=$[Y],F=$.slice(Y+1),W=U.map((M)=>this.formatParam(M));return this.restMiddleParam={restName:A[1],afterParams:F,beforeCount:U.length},W.length>0?`${W.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((U)=>this.formatParam(U)).join(", ")}formatParam($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="rest")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="default")return`${$[1]} = ${this.generate($[2],"value")}`;if(Array.isArray($)&&$[0]==="."&&$[1]==="this")return $[2];if(Array.isArray($)&&$[0]==="array")return`[${$.slice(1).map((Y)=>{if(Y===",")return"";if(Y==="...")return"";if(Array.isArray(Y)&&Y[0]==="...")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="="&&typeof Y[1]==="string")return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(typeof Y==="string")return Y;return this.formatParam(Y)}).join(", ")}]`;if(Array.isArray($)&&$[0]==="object")return`{${$.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y[0]==="...")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="default")return`${Y[1]} = ${this.generate(Y[2],"value")}`;let[U,A]=Y;if(U===A)return U;return`${U}: ${A}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,T=[],Y={}){let{sideEffectOnly:U=!1,autoAssignments:A=[],isConstructor:F=!1,hasExpansionParams:W=!1}=Y,M=this.sideEffectOnly;this.sideEffectOnly=U;let D=new Set,Z=(G)=>{if(typeof G==="string")D.add(G);else if(Array.isArray(G)){if(G[0]==="rest"||G[0]==="..."){if(typeof G[1]==="string")D.add(G[1])}else if(G[0]==="default"){if(typeof G[1]==="string")D.add(G[1])}else if(G[0]==="array"||G[0]==="object")this.collectVarsFromArray(G,D)}};if(Array.isArray(T))T.forEach(Z);let Q=this.collectFunctionVariables($),X=new Set([...Q].filter((G)=>!this.programVars.has(G)&&!this.reactiveVars?.has(G)&&!D.has(G))),J=["return","throw","break","continue"],z=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray($)&&$[0]==="block"){let G=this.unwrapBlock($);if(W&&this.expansionAfterParams?.length>0)G=[...this.expansionAfterParams.map((H,u)=>{return`const ${typeof H==="string"?H:JSON.stringify(H)} = _rest[_rest.length - ${this.expansionAfterParams.length-u}]`}),...G],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:P,afterParams:H}=this.restMiddleParam,u=H.length,q=[];if(H.forEach((L,O)=>{let I=typeof L==="string"?L:Array.isArray(L)&&L[0]==="default"?L[1]:JSON.stringify(L);q.push(`const ${I} = ${P}[${P}.length - ${u-O}]`)}),u>0)q.push(`${P} = ${P}.slice(0, -${u})`);G=[...q,...G],this.restMiddleParam=null}this.indentLevel++;let R=`{
132
+ `;if(X.size>0)R+=this.indent()+`let ${Array.from(X).sort().join(", ")};
133
+ `;let _=A.length>0&&G.length>0&&Array.isArray(G[0])&&G[0][0]==="super",K=(P)=>{P.forEach((H,u)=>{let q=u===P.length-1,L=Array.isArray(H)?H[0]:null;if(!q&&L==="comprehension"){let[,N,S,j]=H;R+=this.indent()+this.generateComprehensionAsLoop(N,S,j)+`
134
+ `;return}if(!F&&!U&&q&&(L==="if"||L==="unless")){let[N,S,...j]=H.slice(1),f=(V)=>Array.isArray(V)&&V[0]==="block"&&V.length>2;if(f(S)||j.some(f)){R+=this.generateIfElseWithEarlyReturns(H);return}}if(!F&&!U&&q&&L==="="){let[N,S]=H.slice(1);if(typeof N==="string"&&Array.isArray(S)){let j=S[0];if(j==="comprehension"||j==="for-in"){this.comprehensionTarget=N,R+=this.generate(S,"value"),this.comprehensionTarget=null,R+=this.indent()+`return ${N};
135
+ `;return}}}let O=!F&&!U&&q&&!J.includes(L)&&!z.includes(L)&&!this.hasExplicitControlFlow(H),I=O?"value":"statement",w=this.generate(H,I);if(O)R+=this.indent()+"return "+w+`;
136
+ `;else R+=this.indent()+this.addSemicolon(H,w)+`
137
+ `})};if(_){if(G.length===1&&!F)R+=this.indent()+"return "+this.generate(G[0],"value")+`;
138
+ `;else R+=this.indent()+this.generate(G[0],"statement")+`;
139
+ `;for(let H of A)R+=this.indent()+H+`;
140
+ `;K(G.slice(1))}else{for(let P of A)R+=this.indent()+P+`;
141
+ `;K(G)}if(U&&G.length>0){let P=Array.isArray(G[G.length-1])?G[G.length-1][0]:null;if(!J.includes(P))R+=this.indent()+`return;
142
+ `}return this.indentLevel--,R+=this.indent()+"}",this.sideEffectOnly=M,R}if(this.sideEffectOnly=M,F||this.hasExplicitControlFlow($))return`{ ${this.generate($,"statement")}; }`;if(Array.isArray($)&&(J.includes($[0])||z.includes($[0])))return`{ ${this.generate($,"statement")}; }`;if(U)return`{ ${this.generate($,"statement")}; return; }`;return`{ return ${this.generate($,"value")}; }`}generateFunctionBody($,T=[],Y=!1){return this.generateBodyWithReturns($,T,{sideEffectOnly:Y,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,T=[],Y=!1,U=[]){return this.generateBodyWithReturns($,U,{autoAssignments:T,isConstructor:Y})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let T=this.unwrapBlock($);return`{
143
+ ${this.withIndent(()=>T.map((U,A)=>{let F=A===T.length-1,W=Array.isArray(U)?U[0]:null,M=F&&!["return","throw","break","continue"].includes(W),D=this.generate(U,M?"value":"statement");return M?this.indent()+"return "+D+";":this.indent()+D+";"})).join(`
173
144
  `)}
174
- ${this.indent()}}`}extractExpression(U){let _=this.unwrapBlock(U);if(_.length>0)return this.generate(_[_.length-1],"value");return"undefined"}generateMethodBody(U,_=[],E=!1,X=[]){return this.generateBodyWithReturns(U,X,{autoAssignments:_,isConstructor:E})}generateLoopBody(U){if(!Array.isArray(U)){if(Array.isArray(U)&&U[0]==="comprehension"){let[,_,E,X]=U;return`{ ${this.generateComprehensionAsLoop(_,E,X)} }`}return`{ ${this.generate(U,"statement")}; }`}if(U[0]==="block"||Array.isArray(U[0])){let _=U[0]==="block"?U.slice(1):U;return`{
175
- ${this.withIndent(()=>{return _.map((X)=>{if(Array.isArray(X)&&X[0]==="comprehension"){let[,R,A,$]=X;return this.indent()+this.generateComprehensionAsLoop(R,A,$)}return this.indent()+this.addSemicolon(X,this.generate(X,"statement"))})}).join(`
145
+ ${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let T=$[0]==="block"?$.slice(1):$;return`{
146
+ ${this.withIndent(()=>T.map((U)=>{if(Array.isArray(U)&&U[0]==="comprehension"){let[,A,F,W]=U;return this.indent()+this.generateComprehensionAsLoop(A,F,W)}return this.indent()+this.addSemicolon(U,this.generate(U,"statement"))})).join(`
176
147
  `)}
177
- ${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 X=U[0]==="block"?U.slice(1):U,R=this.withIndent(()=>this.indent()),A=`if (${E}) {
178
- `,$=this.withIndent(()=>{this.indentLevel++;let F=this.formatStatements(X);return this.indentLevel--,F}),Y=this.withIndent(()=>this.indent()+"}");return`{
179
- ${R}${A}${$.join(`
148
+ ${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,T){let Y=this.unwrap(this.generate(T,"value"));if(!Array.isArray($))return`{ if (${Y}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$,A=this.withIndent(()=>this.indent()),F=`if (${Y}) {
149
+ `,W=this.withIndent(()=>{this.indentLevel++;let D=this.formatStatements(U);return this.indentLevel--,D}),M=this.withIndent(()=>this.indent()+"}");return`{
150
+ ${A}${F}${W.join(`
180
151
  `)}
181
- ${Y}
182
- ${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,X=E.startsWith("./")||E.startsWith("../"),R=E,A="";if(X){let Y=E.lastIndexOf("/"),F=Y>=0?E.substring(Y+1):E;if(F.includes(".")){if(F.endsWith(".json"))A=" with { type: 'json' }"}else R=E+".js"}return`'${R}'`+A}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,`
183
- `)}if(U.initialChunk&&_.startsWith(`
184
- `))_=_.slice(1);if(U.finalChunk&&_.endsWith(`
185
- `))_=_.slice(0,-1);return _}processHeregex(U){let _="",E=!1,X=0;while(X<U.length){let R=U[X],A=X>0?U[X-1]:null,$=U[X+1],Y=()=>{let F=0,G=X-1;while(G>=0&&U[G]==="\\")F++,G--;return F%2===1};if(R==="["&&!Y()){E=!0,_+=R,X++;continue}if(R==="]"&&E&&!Y()){E=!1,_+=R,X++;continue}if(E){_+=R,X++;continue}if(/\s/.test(R)){X++;continue}if(R==="#"){if(Y()){_+=R,X++;continue}let F=X-1;while(F>=0&&U[F]==="\\")F--;if(F<X-1){_+=R,X++;continue}while(X<U.length&&U[X]!==`
186
- `)X++;continue}_+=R,X++}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[X,R,A]=E;if(A==="="){if(typeof X==="string")_.add(X)}else if(typeof R==="string")_.add(R);else if(Array.isArray(R)){if(R[0]==="array")this.collectVarsFromArray(R,_);else if(R[0]==="object")this.collectVarsFromObject(R,_)}}}})}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((X)=>Array.isArray(X)&&(X[0]==="return"||X[0]==="throw"||X[0]==="break"||X[0]==="continue"))}if(_==="switch"){let[,,E]=U;return E&&E.some((X)=>{let R=X[2];return this.unwrapBlock(R).some(($)=>Array.isArray($)&&($[0]==="return"||$[0]==="throw"||$[0]==="break"||$[0]==="continue"))})}if(_==="if"||_==="unless"){let[,,E,X]=U,R=this.branchHasControlFlow(E),A=X&&this.branchHasControlFlow(X);return R&&A}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 X=0;X<_.length;X++){let R=X===_.length-1,A=_[X],$=Array.isArray(A)?A[0]:null;if(R&&!($==="return"||$==="throw"||$==="break"||$==="continue"))E+=this.indent()+`return ${this.generate(A,"value")};
187
- `;else E+=this.indent()+this.generate(A,"statement")+`;
188
- `}return E}generateComprehensionWithTarget(U,_,E,X){let R="";R+=this.indent()+`${X} = [];
189
- `;let A=U;if(Array.isArray(U)&&U[0]==="block"&&U.length===2)A=U[1];if(_.length===1){let F=_[0],[G,Z,M,D]=F;if(G==="for-in"){let Q=D,J=Array.isArray(Z)?Z:[Z],K=J.length===0,[q,N]=K?["_i",null]:J,W=q;if(Array.isArray(q)&&(q[0]==="array"||q[0]==="object"))W=this.generateDestructuringPattern(q);if(Q&&Q!==null){let H=Array.isArray(M)&&M[0];if(H instanceof String)H=H.valueOf();if(H===".."||H==="..."){let S=H==="...",[T,B]=M.slice(1),L=this.generate(T,"value"),j=this.generate(B,"value"),w=this.generate(Q,"value"),P=S?"<":"<=";R+=this.indent()+`for (let ${W} = ${L}; ${W} ${P} ${j}; ${W} += ${w}) {
190
- `}else{let S=this.generate(M,"value"),T=N||"_i",B=this.generate(Q,"value");if(this.isNegativeStep(Q))R+=this.indent()+`for (let ${T} = ${S}.length - 1; ${T} >= 0; ${T} += ${B}) {
191
- `;else R+=this.indent()+`for (let ${T} = 0; ${T} < ${S}.length; ${T} += ${B}) {
192
- `;if(this.indentLevel++,!K)R+=this.indent()+`const ${W} = ${S}[${T}];
193
- `}}else{let H=this.generate(M,"value");R+=this.indent()+`for (const ${W} of ${H}) {
194
- `}if(this.indentLevel++,E&&E.length>0)R+=this.indent()+`if (${E.map((H)=>this.generate(H,"value")).join(" && ")}) {
195
- `,this.indentLevel++;let z=this.unwrap(this.generate(A,"value"));if(R+=this.indent()+`${X}.push(${z});
196
- `,E&&E.length>0)this.indentLevel--,R+=this.indent()+`}
197
- `;return this.indentLevel--,R+=this.indent()+`}
198
- `,R}}let Y=this.containsAwait(U)?"async ":"";return this.indent()+`${X} = (${Y}() => { /* complex comprehension */ })();
199
- `}generateComprehensionAsLoop(U,_,E){let X="";if(_.length===1){let R=_[0],[A,$,Y,F]=R;if(A==="for-in"){let G=F,Z=Array.isArray($)?$:[$],M=Z.length===0,[D,Q]=M?["_i",null]:Z,J=D;if(Array.isArray(D)&&(D[0]==="array"||D[0]==="object"))J=this.generateDestructuringPattern(D);if(G&&G!==null){let K=Array.isArray(Y)&&Y[0];if(K instanceof String)K=K.valueOf();let q=K===".."||K==="...";if(q){let N=K==="...",[W,z]=Y.slice(1),H=this.generate(W,"value"),O=this.generate(z,"value"),S=this.generate(G,"value");X+=`for (let ${J} = ${H}; ${J} ${N?"<":"<="} ${O}; ${J} += ${S}) `}else{let N=this.generate(Y,"value"),W=Q||"_i",z=this.generate(G,"value"),H=this.isNegativeStep(G),O=H&&(G[1]==="1"||G[1]===1||G[1]instanceof String&&G[1].valueOf()==="1"),S=!H&&(G==="1"||G===1||G instanceof String&&G.valueOf()==="1");if(O)X+=`for (let ${W} = ${N}.length - 1; ${W} >= 0; ${W}--) `;else if(S)X+=`for (let ${W} = 0; ${W} < ${N}.length; ${W}++) `;else if(H)X+=`for (let ${W} = ${N}.length - 1; ${W} >= 0; ${W} += ${z}) `;else X+=`for (let ${W} = 0; ${W} < ${N}.length; ${W} += ${z}) `;if(X+=`{
200
- `,this.indentLevel++,!M)X+=this.indent()+`const ${J} = ${N}[${W}];
201
- `}if(E&&E.length>0){if(!q)X+=this.indent();X+=`{
202
- `,this.indentLevel++,X+=this.indent()+`if (${E.map((N)=>this.generate(N,"value")).join(" && ")}) {
203
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
204
- `,this.indentLevel--,X+=this.indent()+`}
205
- `,this.indentLevel--,X+=this.indent()+"}"}else{if(!q)X+=this.indent();X+=`{
206
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
207
- `,this.indentLevel--,X+=this.indent()+"}"}if(!q)this.indentLevel--,X+=`
208
- `+this.indent()+"}";return X}else if(Q){let K=this.generate(Y,"value");X+=`for (let ${Q} = 0; ${Q} < ${K}.length; ${Q}++) `,X+=`{
209
- `,this.indentLevel++,X+=this.indent()+`const ${J} = ${K}[${Q}];
210
- `}else{if(X+=`for (const ${J} of ${this.generate(Y,"value")}) `,E&&E.length>0)X+=`{
211
- `,this.indentLevel++,X+=this.indent()+`if (${E.map((K)=>this.generate(K,"value")).join(" && ")}) {
212
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
213
- `,this.indentLevel--,X+=this.indent()+`}
214
- `,this.indentLevel--,X+=this.indent()+"}";else X+=`{
215
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
216
- `,this.indentLevel--,X+=this.indent()+"}";return X}}else if(A==="for-from"){let G=Array.isArray($)?$:[$],[Z]=G,M=Z;if(Array.isArray(Z)&&(Z[0]==="array"||Z[0]==="object"))M=this.generateDestructuringPattern(Z);if(X+=`for (const ${M} of ${this.generate(Y,"value")}) `,E&&E.length>0)X+=`{
217
- `,this.indentLevel++,X+=this.indent()+`if (${E.map((D)=>this.generate(D,"value")).join(" && ")}) {
218
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
219
- `,this.indentLevel--,X+=this.indent()+`}
220
- `,this.indentLevel--,X+=this.indent()+"}";else X+=`{
221
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
222
- `,this.indentLevel--,X+=this.indent()+"}";return X}else if(A==="for-of"){let G=Array.isArray($)?$:[$],[Z,M]=G,D=F,Q=this.generate(Y,"value");if(X+=`for (const ${Z} in ${Q}) `,X+=`{
223
- `,this.indentLevel++,D&&!M&&!E?.length)X+=this.indent()+`if (!Object.hasOwn(${Q}, ${Z})) continue;
224
- `,X+=this.indent()+this.generate(U,"statement")+`;
225
- `;else if(D&&M&&E?.length)X+=this.indent()+`if (Object.hasOwn(${Q}, ${Z})) {
226
- `,this.indentLevel++,X+=this.indent()+`const ${M} = ${Q}[${Z}];
227
- `,X+=this.indent()+`if (${E.map((J)=>this.generate(J,"value")).join(" && ")}) {
228
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
229
- `,this.indentLevel--,X+=this.indent()+`}
230
- `,this.indentLevel--,X+=this.indent()+`}
231
- `;else if(D&&M)X+=this.indent()+`if (Object.hasOwn(${Q}, ${Z})) {
232
- `,this.indentLevel++,X+=this.indent()+`const ${M} = ${Q}[${Z}];
233
- `,X+=this.indent()+this.generate(U,"statement")+`;
234
- `,this.indentLevel--,X+=this.indent()+`}
235
- `;else if(M&&E?.length)X+=this.indent()+`const ${M} = ${Q}[${Z}];
236
- `,X+=this.indent()+`if (${E.map((J)=>this.generate(J,"value")).join(" && ")}) {
237
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
238
- `,this.indentLevel--,X+=this.indent()+`}
239
- `;else if(M)X+=this.indent()+`const ${M} = ${Q}[${Z}];
240
- `,X+=this.indent()+this.generate(U,"statement")+`;
241
- `;else if(E?.length)X+=this.indent()+`if (${E.map((J)=>this.generate(J,"value")).join(" && ")}) {
242
- `,this.indentLevel++,X+=this.indent()+this.generate(U,"statement")+`;
243
- `,this.indentLevel--,X+=this.indent()+`}
244
- `;else X+=this.indent()+this.generate(U,"statement")+`;
245
- `;return this.indentLevel--,X+=this.indent()+"}",X}}return this.generate(["comprehension",U,_,E],"value")}generateIfElseWithEarlyReturns(U){let[_,E,X,...R]=U,A="",$=_==="unless"?`!${this.generate(E,"value")}`:this.generate(E,"value");A+=this.indent()+`if (${$}) {
246
- `,A+=this.withIndent(()=>this.generateBranchWithReturn(X)),A+=this.indent()+"}";for(let Y of R)if(A+=" else ",Array.isArray(Y)&&Y[0]==="if"){let[,F,G,...Z]=Y;if(A+=`if (${this.generate(F,"value")}) {
247
- `,A+=this.withIndent(()=>this.generateBranchWithReturn(G)),A+=this.indent()+"}",Z.length>0)for(let M of Z)A+=` else {
248
- `,A+=this.withIndent(()=>this.generateBranchWithReturn(M)),A+=this.indent()+"}"}else A+=`{
249
- `,A+=this.withIndent(()=>this.generateBranchWithReturn(Y)),A+=this.indent()+"}";return A}unwrap(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let _=0,E=0,X=!0,R=!1;for(let A=0;A<U.length;A++){let $=U[A];if($==="(")_++;if($===")")_--;if($==="["||$==="{")E++;if($==="]"||$==="}")E--;if($===","&&_===1&&E===0)R=!0;if(_===0&&A<U.length-1){X=!1;break}}if(R)X=!1;if(X)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 X=[],R=(A)=>{if(Array.isArray(A)&&A[0]===_)for(let $=1;$<A.length;$++)R(A[$]);else X.push(A)};for(let A of E)R(A);return[_,...X]}unwrapLogical(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let _=0,E=1/0;for(let X=1;X<U.length-1;X++){if(U[X]==="(")_++;if(U[X]===")")_--;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((X)=>this.hasStatementInBranch(X));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,X,...R]=U;return this.isMultiStatementBlock(X)||R.some((A)=>this.hasNestedMultiStatement(A))}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,X,R,...A]=_,$=this.extractExpression(this.unwrapIfBranch(R)),Y=this.buildTernaryChain([...A,...U.slice(1)]);return`(${this.generate(X,"value")} ? ${$} : ${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((M)=>this.containsAwait(M)),Z=`${Y?"await ":""}(${Y?"async ":""}() => { `;Z+=`if (${this.generate(U,"value")}) `,Z+=this.generateBlockWithReturns(_);for(let M of E)if(Z+=" else ",Array.isArray(M)&&M[0]==="if"){let[D,Q,J,...K]=M;Z+=`if (${this.generate(Q,"value")}) `,Z+=this.generateBlockWithReturns(J);for(let q of K)if(Z+=" else ",Array.isArray(q)&&q[0]==="if"){let[N,W,z,...H]=q;Z+=`if (${this.generate(W,"value")}) `,Z+=this.generateBlockWithReturns(z),E.push(...H)}else Z+=this.generateBlockWithReturns(q)}else Z+=this.generateBlockWithReturns(M);return Z+=" })()",Z}let R=this.extractExpression(this.unwrapIfBranch(_)),A=this.buildTernaryChain(E),$=this.generate(U,"value");if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="await"))$=`(${$})`;return`(${$} ? ${R} : ${A})`}generateIfAsStatement(U,_,E){let R=`if (${this.unwrap(this.generate(U,"value"))}) `;R+=this.generate(this.unwrapIfBranch(_),"statement");for(let A of E)R+=" else ",R+=this.generate(this.unwrapIfBranch(A),"statement");return R}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 R=this.unwrapBlock(U);for(let A of R)E+=this.indent()+this.generate(A,"statement")+`;
250
- `}else if(_==="value")if(Array.isArray(U)&&U[0]==="block"&&U.length>2){let R=U.slice(1);for(let A=0;A<R.length;A++)if(A===R.length-1){let Y=this.generate(R[A],"value");E+=this.indent()+`return ${Y};
251
- `}else E+=this.indent()+this.generate(R[A],"statement")+`;
252
- `}else{let R=this.extractExpression(U);E+=this.indent()+`return ${R};
253
- `}else{if(Array.isArray(U)&&U[0]==="block"&&U.length>1){let R=U.slice(1);for(let A of R)E+=this.indent()+this.generate(A,"statement")+`;
254
- `}else{let R=this.generate(U,"statement");E+=this.indent()+R+`;
255
- `}E+=this.indent()+`break;
256
- `}return E}generateSwitchAsIfChain(U,_,E){let X="";for(let R=0;R<U.length;R++){let A=U[R],[,$,Y]=A,F=Array.isArray($)?$[0]:$;if(R===0)X+=`if (${this.generate(F,"value")}) {
257
- `;else X+=` else if (${this.generate(F,"value")}) {
258
- `;if(this.indentLevel++,E==="value"){let G=this.extractExpression(Y);X+=this.indent()+`return ${G};
259
- `}else{let G=this.unwrapBlock(Y);for(let Z of G)X+=this.indent()+this.generate(Z,"statement")+`;
260
- `}this.indentLevel--,X+=this.indent()+"}"}if(_){if(X+=` else {
261
- `,this.indentLevel++,E==="value"){let R=this.extractExpression(_);X+=this.indent()+`return ${R};
262
- `}else{let R=this.unwrapBlock(_);for(let A of R)X+=this.indent()+this.generate(A,"statement")+`;
263
- `}this.indentLevel--,X+=this.indent()+"}"}if(E==="value")return`(() => { ${X} })()`;return X}getReactiveRuntime(){return`// ============================================================================
152
+ ${M}
153
+ ${this.indent()}}`}return`{ if (${this.generate(T,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,T,Y,U){let A="";A+=this.indent()+`${U} = [];
154
+ `;let F=Array.isArray($)&&$[0]==="block"&&$.length===2?$[1]:$;if(T.length===1){let[W,M,D,Z]=T[0];if(W==="for-in"){let Q=Z,X=Array.isArray(M)?M:[M],J=X.length===0,[z,G]=J?["_i",null]:X,R=Array.isArray(z)&&(z[0]==="array"||z[0]==="object")?this.generateDestructuringPattern(z):z;if(Q&&Q!==null){let _=Array.isArray(D)&&D[0];if(_ instanceof String)_=E(_);if(_===".."||_==="..."){let P=_==="...",[H,u]=D.slice(1);A+=this.indent()+`for (let ${R} = ${this.generate(H,"value")}; ${R} ${P?"<":"<="} ${this.generate(u,"value")}; ${R} += ${this.generate(Q,"value")}) {
155
+ `}else{let P=this.generate(D,"value"),H=G||"_i",u=this.generate(Q,"value"),q=this.isNegativeStep(Q);if(A+=q?this.indent()+`for (let ${H} = ${P}.length - 1; ${H} >= 0; ${H} += ${u}) {
156
+ `:this.indent()+`for (let ${H} = 0; ${H} < ${P}.length; ${H} += ${u}) {
157
+ `,this.indentLevel++,!J)A+=this.indent()+`const ${R} = ${P}[${H}];
158
+ `}}else A+=this.indent()+`for (const ${R} of ${this.generate(D,"value")}) {
159
+ `;if(this.indentLevel++,Y&&Y.length>0)A+=this.indent()+`if (${Y.map((_)=>this.generate(_,"value")).join(" && ")}) {
160
+ `,this.indentLevel++;if(A+=this.indent()+`${U}.push(${this.unwrap(this.generate(F,"value"))});
161
+ `,Y&&Y.length>0)this.indentLevel--,A+=this.indent()+`}
162
+ `;return this.indentLevel--,A+=this.indent()+`}
163
+ `,A}}return this.indent()+`${U} = (() => { /* complex comprehension */ })();
164
+ `}generateComprehensionAsLoop($,T,Y){let U="";if(T.length===1){let[A,F,W,M]=T[0];if(A==="for-in"){let D=M,Z=Array.isArray(F)?F:[F],Q=Z.length===0,[X,J]=Q?["_i",null]:Z,z=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(D&&D!==null){let G=Array.isArray(W)&&W[0];if(G instanceof String)G=E(G);let R=G===".."||G==="...";if(R){let _=G==="...",[K,P]=W.slice(1);U+=`for (let ${z} = ${this.generate(K,"value")}; ${z} ${_?"<":"<="} ${this.generate(P,"value")}; ${z} += ${this.generate(D,"value")}) `}else{let _=this.generate(W,"value"),K=J||"_i",P=this.generate(D,"value"),H=this.isNegativeStep(D),u=H&&(D[1]==="1"||D[1]===1||E(D[1])==="1"),q=!H&&(D==="1"||D===1||E(D)==="1");if(u)U+=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K}--) `;else if(q)U+=`for (let ${K} = 0; ${K} < ${_}.length; ${K}++) `;else if(H)U+=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K} += ${P}) `;else U+=`for (let ${K} = 0; ${K} < ${_}.length; ${K} += ${P}) `;if(U+=`{
165
+ `,this.indentLevel++,!Q)U+=this.indent()+`const ${z} = ${_}[${K}];
166
+ `}if(Y?.length){if(!R)U+=this.indent();U+=`{
167
+ `,this.indentLevel++,U+=this.indent()+`if (${Y.map((_)=>this.generate(_,"value")).join(" && ")}) {
168
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
169
+ `,this.indentLevel--,U+=this.indent()+`}
170
+ `,this.indentLevel--,U+=this.indent()+"}"}else{if(!R)U+=this.indent();U+=`{
171
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
172
+ `,this.indentLevel--,U+=this.indent()+"}"}if(!R)this.indentLevel--,U+=`
173
+ `+this.indent()+"}";return U}if(J){let G=this.generate(W,"value");U+=`for (let ${J} = 0; ${J} < ${G}.length; ${J}++) `,U+=`{
174
+ `,this.indentLevel++,U+=this.indent()+`const ${z} = ${G}[${J}];
175
+ `}else{if(U+=`for (const ${z} of ${this.generate(W,"value")}) `,Y?.length)U+=`{
176
+ `,this.indentLevel++,U+=this.indent()+`if (${Y.map((G)=>this.generate(G,"value")).join(" && ")}) {
177
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
178
+ `,this.indentLevel--,U+=this.indent()+`}
179
+ `,this.indentLevel--,U+=this.indent()+"}";else U+=`{
180
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
181
+ `,this.indentLevel--,U+=this.indent()+"}";return U}if(Y?.length)U+=this.indent()+`if (${Y.map((G)=>this.generate(G,"value")).join(" && ")}) {
182
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
183
+ `,this.indentLevel--,U+=this.indent()+`}
184
+ `;else U+=this.indent()+this.generate($,"statement")+`;
185
+ `;return this.indentLevel--,U+=this.indent()+"}",U}if(A==="for-as"){let D=Array.isArray(F)?F:[F],[Z]=D,Q=Array.isArray(Z)&&(Z[0]==="array"||Z[0]==="object")?this.generateDestructuringPattern(Z):Z;if(U+=`for (const ${Q} of ${this.generate(W,"value")}) `,Y?.length)U+=`{
186
+ `,this.indentLevel++,U+=this.indent()+`if (${Y.map((X)=>this.generate(X,"value")).join(" && ")}) {
187
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
188
+ `,this.indentLevel--,U+=this.indent()+`}
189
+ `,this.indentLevel--,U+=this.indent()+"}";else U+=`{
190
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
191
+ `,this.indentLevel--,U+=this.indent()+"}";return U}if(A==="for-of"){let D=Array.isArray(F)?F:[F],[Z,Q]=D,X=M,J=this.generate(W,"value");if(U+=`for (const ${Z} in ${J}) {
192
+ `,this.indentLevel++,X&&!Q&&!Y?.length)U+=this.indent()+`if (!Object.hasOwn(${J}, ${Z})) continue;
193
+ `,U+=this.indent()+this.generate($,"statement")+`;
194
+ `;else if(X&&Q&&Y?.length)U+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
195
+ `,this.indentLevel++,U+=this.indent()+`const ${Q} = ${J}[${Z}];
196
+ `,U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
197
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
198
+ `,this.indentLevel--,U+=this.indent()+`}
199
+ `,this.indentLevel--,U+=this.indent()+`}
200
+ `;else if(X&&Q)U+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
201
+ `,this.indentLevel++,U+=this.indent()+`const ${Q} = ${J}[${Z}];
202
+ `,U+=this.indent()+this.generate($,"statement")+`;
203
+ `,this.indentLevel--,U+=this.indent()+`}
204
+ `;else if(Q&&Y?.length)U+=this.indent()+`const ${Q} = ${J}[${Z}];
205
+ `,U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
206
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
207
+ `,this.indentLevel--,U+=this.indent()+`}
208
+ `;else if(Q)U+=this.indent()+`const ${Q} = ${J}[${Z}];
209
+ `,U+=this.indent()+this.generate($,"statement")+`;
210
+ `;else if(Y?.length)U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
211
+ `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
212
+ `,this.indentLevel--,U+=this.indent()+`}
213
+ `;else U+=this.indent()+this.generate($,"statement")+`;
214
+ `;return this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,T,Y],"value")}generateIfElseWithEarlyReturns($){let[T,Y,U,...A]=$,F="",W=T==="unless"?`!${this.generate(Y,"value")}`:this.generate(Y,"value");F+=this.indent()+`if (${W}) {
215
+ `,F+=this.withIndent(()=>this.generateBranchWithReturn(U)),F+=this.indent()+"}";for(let M of A)if(F+=" else ",Array.isArray(M)&&M[0]==="if"){let[,D,Z,...Q]=M;F+=`if (${this.generate(D,"value")}) {
216
+ `,F+=this.withIndent(()=>this.generateBranchWithReturn(Z)),F+=this.indent()+"}";for(let X of Q)F+=` else {
217
+ `,F+=this.withIndent(()=>this.generateBranchWithReturn(X)),F+=this.indent()+"}"}else F+=`{
218
+ `,F+=this.withIndent(()=>this.generateBranchWithReturn(M)),F+=this.indent()+"}";return F}generateBranchWithReturn($){let T=this.unwrapBlock($),Y="";for(let U=0;U<T.length;U++){let A=U===T.length-1,F=T[U],W=Array.isArray(F)?F[0]:null;if(A&&!(W==="return"||W==="throw"||W==="break"||W==="continue"))Y+=this.indent()+`return ${this.generate(F,"value")};
219
+ `;else Y+=this.indent()+this.generate(F,"statement")+`;
220
+ `}return Y}generateIfAsExpression($,T,Y){if(this.isMultiStatementBlock(T)||this.hasStatementInBranch(T)||Y.some((M)=>this.isMultiStatementBlock(M)||this.hasStatementInBranch(M)||this.hasNestedMultiStatement(M))){let M=this.containsAwait($)||this.containsAwait(T)||Y.some((Z)=>this.containsAwait(Z)),D=`${M?"await ":""}(${M?"async ":""}() => { `;D+=`if (${this.generate($,"value")}) `,D+=this.generateBlockWithReturns(T);for(let Z of Y)if(D+=" else ",Array.isArray(Z)&&Z[0]==="if"){let[Q,X,J,...z]=Z;D+=`if (${this.generate(X,"value")}) `,D+=this.generateBlockWithReturns(J);for(let G of z)if(D+=" else ",Array.isArray(G)&&G[0]==="if"){let[R,_,K,...P]=G;D+=`if (${this.generate(_,"value")}) `,D+=this.generateBlockWithReturns(K),Y.push(...P)}else D+=this.generateBlockWithReturns(G)}else D+=this.generateBlockWithReturns(Z);return D+" })()"}let A=this.extractExpression(this.unwrapIfBranch(T)),F=this.buildTernaryChain(Y),W=this.generate($,"value");if(Array.isArray($)&&($[0]==="yield"||$[0]==="await"))W=`(${W})`;return`(${W} ? ${A} : ${F})`}generateIfAsStatement($,T,Y){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(T),"statement");for(let A of Y)U+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return U}generateSwitchCaseBody($,T){let Y="";if(this.hasExplicitControlFlow($))for(let A of this.unwrapBlock($))Y+=this.indent()+this.generate(A,"statement")+`;
221
+ `;else if(T==="value")if(Array.isArray($)&&$[0]==="block"&&$.length>2){let A=$.slice(1);for(let F=0;F<A.length;F++)if(F===A.length-1)Y+=this.indent()+`return ${this.generate(A[F],"value")};
222
+ `;else Y+=this.indent()+this.generate(A[F],"statement")+`;
223
+ `}else Y+=this.indent()+`return ${this.extractExpression($)};
224
+ `;else{if(Array.isArray($)&&$[0]==="block"&&$.length>1)for(let A of $.slice(1))Y+=this.indent()+this.generate(A,"statement")+`;
225
+ `;else Y+=this.indent()+this.generate($,"statement")+`;
226
+ `;Y+=this.indent()+`break;
227
+ `}return Y}generateSwitchAsIfChain($,T,Y){let U="";for(let A=0;A<$.length;A++){let[,F,W]=$[A],M=Array.isArray(F)?F[0]:F;if(U+=(A===0?"":" else ")+`if (${this.generate(M,"value")}) {
228
+ `,this.indentLevel++,Y==="value")U+=this.indent()+`return ${this.extractExpression(W)};
229
+ `;else for(let D of this.unwrapBlock(W))U+=this.indent()+this.generate(D,"statement")+`;
230
+ `;this.indentLevel--,U+=this.indent()+"}"}if(T){if(U+=` else {
231
+ `,this.indentLevel++,Y==="value")U+=this.indent()+`return ${this.extractExpression(T)};
232
+ `;else for(let A of this.unwrapBlock(T))U+=this.indent()+this.generate(A,"statement")+`;
233
+ `;this.indentLevel--,U+=this.indent()+"}"}return Y==="value"?`(() => { ${U} })()`:U}extractExpression($){let T=this.unwrapBlock($);return T.length>0?this.generate(T[T.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0]))return $;return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,T){if(!T||T.endsWith(";"))return!1;if(!T.endsWith("}"))return!0;let Y=Array.isArray($)?$[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(Y)}addSemicolon($,T){return T+(this.needsSemicolon($,T)?";":"")}formatStatements($,T="statement"){return $.map((Y)=>this.indent()+this.addSemicolon(Y,this.generate(Y,T)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let T=$[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return $.slice(1).some((Y)=>Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0]));if(T==="switch"){let[,,Y]=$;return Y?.some((U)=>{return this.unwrapBlock(U[2]).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]))})}if(T==="if"||T==="unless"){let[,,Y,U]=$;return this.branchHasControlFlow(Y)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let T=this.unwrapBlock($);if(T.length===0)return!1;let Y=T[T.length-1];return Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0])}withIndent($){this.indentLevel++;let T=$();return this.indentLevel--,T}isNegativeStep($){if(!Array.isArray($)||$.length!==2)return!1;return(E($[0])??$[0])==="-"}isNegativeOneLiteral($){return Array.isArray($)&&$[0]==="-"&&$.length===2&&($[1]==="1"||$[1]===1||E($[1])==="1")}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let T=0,Y=0,U=!0,A=!1;for(let F=0;F<$.length;F++){if($[F]==="(")T++;if($[F]===")")T--;if($[F]==="["||$[F]==="{")Y++;if($[F]==="]"||$[F]==="}")Y--;if($[F]===","&&T===1&&Y===0)A=!0;if(T===0&&F<$.length-1){U=!1;break}}if(A)U=!1;if(U)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let T=0,Y=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")T++;if($[U]===")")T--;Y=Math.min(Y,T)}if(Y>=0)$=$.slice(1,-1);else break}return $}unwrapIfBranch($){if(Array.isArray($)&&$.length===1&&(!Array.isArray($[0])||$[0][0]!=="block"))return $[0];return $}flattenBinaryChain($){if(!Array.isArray($)||$.length<3)return $;let[T,...Y]=$;if(T!=="&&"&&T!=="||")return $;let U=[],A=(F)=>{if(Array.isArray(F)&&F[0]===T)for(let W=1;W<F.length;W++)A(F[W]);else U.push(F)};for(let F of Y)A(F);return[T,...U]}hasStatementInBranch($){if(!Array.isArray($))return!1;let T=$[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return $.slice(1).some((Y)=>this.hasStatementInBranch(Y));return!1}isMultiStatementBlock($){return Array.isArray($)&&$[0]==="block"&&$.length>2}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[T,Y,U,...A]=$;return this.isMultiStatementBlock(U)||A.some((F)=>this.hasNestedMultiStatement(F))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let T=$[0];if(Array.isArray(T)&&T[0]==="if"){let[Y,U,A,...F]=T,W=this.extractExpression(this.unwrapIfBranch(A)),M=this.buildTernaryChain([...F,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${W} : ${M})`}return this.extractExpression(this.unwrapIfBranch(T))}collectVarsFromArray($,T){$.slice(1).forEach((Y)=>{if(Y===","||Y==="...")return;if(typeof Y==="string"){T.add(Y);return}if(Array.isArray(Y)){if(Y[0]==="..."&&typeof Y[1]==="string")T.add(Y[1]);else if(Y[0]==="array")this.collectVarsFromArray(Y,T);else if(Y[0]==="object")this.collectVarsFromObject(Y,T)}})}collectVarsFromObject($,T){$.slice(1).forEach((Y)=>{if(!Array.isArray(Y))return;if(Y[0]==="..."&&typeof Y[1]==="string"){T.add(Y[1]);return}if(Y.length>=2){let[U,A,F]=Y;if(F==="="){if(typeof U==="string")T.add(U)}else if(typeof A==="string")T.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,T);else if(A[0]==="object")this.collectVarsFromObject(A,T)}}})}extractStringContent($){let T=E($).slice(1,-1),Y=B($,"indent");if(Y)T=T.replace(new RegExp(`\\n${Y}`,"g"),`
234
+ `);if(B($,"initialChunk")&&T.startsWith(`
235
+ `))T=T.slice(1);if(B($,"finalChunk")&&T.endsWith(`
236
+ `))T=T.slice(0,-1);return T}processHeregex($){let T="",Y=!1,U=0,A=()=>{let F=0,W=U-1;while(W>=0&&$[W]==="\\")F++,W--;return F%2===1};while(U<$.length){let F=$[U];if(F==="["&&!A()){Y=!0,T+=F,U++;continue}if(F==="]"&&Y&&!A()){Y=!1,T+=F,U++;continue}if(Y){T+=F,U++;continue}if(/\s/.test(F)){U++;continue}if(F==="#"){if(A()){T+=F,U++;continue}let W=U-1;while(W>=0&&$[W]==="\\")W--;if(W<U-1){T+=F,U++;continue}while(U<$.length&&$[U]!==`
237
+ `)U++;continue}T+=F,U++}return T}addJsExtensionAndAssertions($){if($ instanceof String)$=E($);if(typeof $!=="string")return $;let Y=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=Y.startsWith("./")||Y.startsWith("../"),A=Y,F="";if(U){let W=Y.lastIndexOf("/"),M=W>=0?Y.substring(W+1):Y;if(M.includes(".")){if(M.endsWith(".json"))F=" with { type: 'json' }"}else A=Y+".js"}return`'${A}'`+F}containsAwait($){if(!$)return!1;if($ instanceof String&&B($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(Array.isArray($)&&$[0]==="await")return!0;if(Array.isArray($)&&$[0]==="for-as"&&$[3]===!0)return!0;if(Array.isArray($)&&($[0]==="def"||$[0]==="->"||$[0]==="=>"||$[0]==="class"))return!1;if(Array.isArray($))return $.some((T)=>this.containsAwait(T));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(Array.isArray($)&&($[0]==="yield"||$[0]==="yield-from"))return!0;if(Array.isArray($)&&($[0]==="def"||$[0]==="->"||$[0]==="=>"||$[0]==="class"))return!1;if(Array.isArray($))return $.some((T)=>this.containsYield(T));return!1}isStaticMember($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}isComputedMember($){return Array.isArray($)&&$[0]==="computed"}extractMemberName($){if(this.isStaticMember($))return $[2];if(this.isComputedMember($))return`[${this.generate($[1],"value")}]`;return $}isBoundMethod($){return Array.isArray($)&&$[0]==="=>"}getReactiveRuntime(){return`// ============================================================================
264
238
  // Rip Reactive Runtime
265
239
  // A minimal, fine-grained reactivity system
266
240
  //
@@ -300,24 +274,16 @@ const __primitiveCoercion = {
300
274
  [Symbol.toPrimitive](hint) { return hint === 'string' ? this.toString() : this.valueOf(); }
301
275
  };
302
276
 
303
- /**
304
- * Create a reactive state container
305
- * @param {*} initialValue - The initial value
306
- * @returns {object} State with .value getter/setter
307
- */
308
277
  function __state(initialValue) {
309
278
  let value = initialValue;
310
- const subscribers = new Set(); // Effects/computeds that depend on this state
311
-
312
- // State flags
313
- let notifying = false; // Prevents re-entry during notification
314
- let locked = false; // Prevents writes (used during SSR/hydration)
315
- let dead = false; // State has been killed (cleanup)
279
+ const subscribers = new Set();
280
+ let notifying = false;
281
+ let locked = false;
282
+ let dead = false;
316
283
 
317
284
  const state = {
318
285
  get value() {
319
286
  if (dead) return value;
320
- // Track this state as a dependency of the current effect/computed
321
287
  if (__currentEffect) {
322
288
  subscribers.add(__currentEffect);
323
289
  __currentEffect.dependencies.add(subscribers);
@@ -326,54 +292,40 @@ function __state(initialValue) {
326
292
  },
327
293
 
328
294
  set value(newValue) {
329
- // Skip if: dead, locked, same value, or already notifying
330
295
  if (dead || locked || newValue === value || notifying) return;
331
296
  value = newValue;
332
297
  notifying = true;
333
-
334
- // Notify subscribers: computeds mark dirty, effects get queued
335
298
  for (const sub of subscribers) {
336
- if (sub.markDirty) sub.markDirty(); // Computed
337
- else __pendingEffects.add(sub); // Effect
299
+ if (sub.markDirty) sub.markDirty();
300
+ else __pendingEffects.add(sub);
338
301
  }
339
-
340
- // Flush immediately unless we're batching
341
302
  if (!__batching) __flushEffects();
342
303
  notifying = false;
343
304
  },
344
305
 
345
- read() { return value; }, // Read without tracking
346
- lock() { locked = true; return state; }, // Prevent further writes
347
- free() { subscribers.clear(); return state; }, // Clear all subscribers
348
- kill() { dead = true; subscribers.clear(); return value; }, // Cleanup
306
+ read() { return value; },
307
+ lock() { locked = true; return state; },
308
+ free() { subscribers.clear(); return state; },
309
+ kill() { dead = true; subscribers.clear(); return value; },
349
310
 
350
311
  ...__primitiveCoercion
351
312
  };
352
313
  return state;
353
314
  }
354
315
 
355
- /**
356
- * Create a computed value (lazy & cached)
357
- * @param {function} fn - Function that computes the value
358
- * @returns {object} Computed with .value getter
359
- */
360
316
  function __computed(fn) {
361
317
  let value;
362
- let dirty = true; // Needs recomputation?
363
- const subscribers = new Set(); // Things that depend on this computed
364
-
365
- // State flags
366
- let locked = false; // Prevents recomputation
367
- let dead = false; // Computed has been killed
318
+ let dirty = true;
319
+ const subscribers = new Set();
320
+ let locked = false;
321
+ let dead = false;
368
322
 
369
323
  const computed = {
370
- dependencies: new Set(), // States/computeds this depends on
324
+ dependencies: new Set(),
371
325
 
372
- // Called by dependencies when they change
373
326
  markDirty() {
374
327
  if (dead || locked || dirty) return;
375
328
  dirty = true;
376
- // Propagate dirty status to our subscribers
377
329
  for (const sub of subscribers) {
378
330
  if (sub.markDirty) sub.markDirty();
379
331
  else __pendingEffects.add(sub);
@@ -382,17 +334,13 @@ function __computed(fn) {
382
334
 
383
335
  get value() {
384
336
  if (dead) return value;
385
- // Track this computed as a dependency
386
337
  if (__currentEffect) {
387
338
  subscribers.add(__currentEffect);
388
339
  __currentEffect.dependencies.add(subscribers);
389
340
  }
390
- // Recompute if dirty (lazy evaluation)
391
341
  if (dirty && !locked) {
392
- // Clear old dependencies
393
342
  for (const dep of computed.dependencies) dep.delete(computed);
394
343
  computed.dependencies.clear();
395
- // Evaluate with this computed as the current effect (to track deps)
396
344
  const prev = __currentEffect;
397
345
  __currentEffect = computed;
398
346
  try { value = fn(); } finally { __currentEffect = prev; }
@@ -401,8 +349,8 @@ function __computed(fn) {
401
349
  return value;
402
350
  },
403
351
 
404
- read() { return value; }, // Return cached value without tracking or recomputing
405
- lock() { locked = true; computed.value; return computed; }, // Lock after computing
352
+ read() { return value; },
353
+ lock() { locked = true; computed.value; return computed; },
406
354
  free() {
407
355
  for (const dep of computed.dependencies) dep.delete(computed);
408
356
  computed.dependencies.clear();
@@ -421,20 +369,13 @@ function __computed(fn) {
421
369
  return computed;
422
370
  }
423
371
 
424
- /**
425
- * Create a reactive effect (side effect that re-runs on dependency changes)
426
- * @param {function} fn - The effect function
427
- * @returns {function} Dispose function to stop the effect
428
- */
429
372
  function __effect(fn) {
430
373
  const effect = {
431
- dependencies: new Set(), // States/computeds this effect depends on
374
+ dependencies: new Set(),
432
375
 
433
376
  run() {
434
- // Clear old dependencies before re-running
435
377
  for (const dep of effect.dependencies) dep.delete(effect);
436
378
  effect.dependencies.clear();
437
- // Run with this effect as current (to track deps)
438
379
  const prev = __currentEffect;
439
380
  __currentEffect = effect;
440
381
  try { fn(); } finally { __currentEffect = prev; }
@@ -446,57 +387,37 @@ function __effect(fn) {
446
387
  }
447
388
  };
448
389
 
449
- effect.run(); // Run immediately to establish dependencies
390
+ effect.run();
450
391
  return () => effect.dispose();
451
392
  }
452
393
 
453
- /**
454
- * Batch multiple state updates into a single effect flush
455
- * @param {function} fn - Function containing multiple state updates
456
- * @returns {*} The return value of fn
457
- */
458
394
  function __batch(fn) {
459
- if (__batching) return fn(); // Already batching, just run
395
+ if (__batching) return fn();
460
396
  __batching = true;
461
397
  try {
462
398
  return fn();
463
399
  } finally {
464
400
  __batching = false;
465
- __flushEffects(); // Flush all effects once at the end
401
+ __flushEffects();
466
402
  }
467
403
  }
468
404
 
469
- /**
470
- * Create a readonly value (immutable, no reactivity)
471
- * @param {*} value - The value to wrap
472
- * @returns {object} Frozen object with .value property
473
- */
474
405
  function __readonly(value) {
475
406
  return Object.freeze({ value });
476
407
  }
477
408
 
478
409
  // ============================================================================
479
410
  // Error Handling
480
- // Catch and handle errors gracefully
481
411
  // ============================================================================
482
412
 
483
- let __errorHandler = null; // Current error handler
413
+ let __errorHandler = null;
484
414
 
485
- /**
486
- * Set the current error handler
487
- * @param {function} handler - Error handler function
488
- * @returns {function} Previous handler (for restoration)
489
- */
490
415
  function __setErrorHandler(handler) {
491
416
  const prev = __errorHandler;
492
417
  __errorHandler = handler;
493
418
  return prev;
494
419
  }
495
420
 
496
- /**
497
- * Handle an error - calls nearest error boundary or rethrows
498
- * @param {Error} error - The error to handle
499
- */
500
421
  function __handleError(error) {
501
422
  if (__errorHandler) {
502
423
  try {
@@ -510,11 +431,6 @@ function __handleError(error) {
510
431
  }
511
432
  }
512
433
 
513
- /**
514
- * Wrap a function to catch errors and route to error boundary
515
- * @param {function} fn - Function to wrap
516
- * @returns {function} Wrapped function
517
- */
518
434
  function __catchErrors(fn) {
519
435
  return function(...args) {
520
436
  try {
@@ -526,8 +442,8 @@ function __catchErrors(fn) {
526
442
  }
527
443
 
528
444
  // === End Reactive Runtime ===
529
- `}}class O1{constructor(U={}){this.options={showTokens:!1,showSExpr:!1,...U}}compile(U){let _=null,E=U.split(`
530
- `),X=E.findIndex((G)=>G==="__DATA__");if(X!==-1){let G=E.slice(X+1);_=G.length>0?G.join(`
445
+ `}}class p{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($){let T=null,Y=$.split(`
446
+ `),U=Y.findIndex((Z)=>Z==="__DATA__");if(U!==-1){let Z=Y.slice(U+1);T=Z.length>0?Z.join(`
531
447
  `)+`
532
- `:"",U=E.slice(0,X).join(`
533
- `)}let A=new m1().tokenize(U);if(this.options.showTokens)A.forEach((G)=>console.log(`${G[0].padEnd(12)} ${JSON.stringify(G[1])}`)),console.log();$1.lexer={tokens:A,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let G=this.tokens[this.pos++];return this.yytext=G[1],this.yylloc=G[2],G[0]}};let $;try{$=$1.parse(U)}catch(G){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 G}if(this.options.showSExpr)console.log(o($,0,!0)),console.log();let Y=new k({dataSection:_,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),F=Y.compile($);return{tokens:A,sexpr:$,code:F,data:_,reactiveVars:Y.reactiveVars}}compileToJS(U){return this.compile(U).code}compileToSExpr(U){return this.compile(U).sexpr}}function U3(U,_={}){return new O1(_).compile(U)}function S1(U,_={}){return new O1(_).compileToJS(U)}var Q3="2.9.2",W3="2026-02-07@04:33:48GMT",$3=(U)=>{let _=U.match(/^[ \t]*(?=\S)/gm),E=Math.min(...(_||[]).map((X)=>X.length));return U.replace(RegExp(`^[ ]{${E}}`,"gm"),"").trim()};async function k2(){let U=document.querySelectorAll('script[type="text/rip"]');for(let _ of U){if(_.hasAttribute("data-rip-processed"))continue;try{let E=$3(_.textContent),X=S1(E);(0,eval)(X),_.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",k2);else k2();function X3(U){try{let E=S1(U).replace(/^let\s+[^;]+;\s*\n\s*/m,"");E=E.replace(/^const\s+/gm,"var ");let X=(0,eval)(E);if(X!==void 0)globalThis._=X;return X}catch(_){console.error("Rip compilation error:",_.message);return}}if(typeof globalThis<"u")globalThis.rip=X3;export{X3 as rip,k2 as processRipScripts,$1 as parser,o as formatSExpr,S1 as compileToJS,U3 as compile,Q3 as VERSION,m1 as Lexer,O1 as Compiler,k as CodeGenerator,W3 as BUILD_DATE};
448
+ `:"",$=Y.slice(0,U).join(`
449
+ `)}let F=new x().tokenize($);if(this.options.showTokens)F.forEach((Z)=>console.log(`${Z[0].padEnd(12)} ${JSON.stringify(Z[1])}`)),console.log();g.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Z=this.tokens[this.pos++],Q=Z[1];if(Z.data)Q=new String(Q),Object.assign(Q,Z.data);return this.yytext=Q,this.yylloc=Z.loc,Z[0]}};let W;try{W=g.parse($)}catch(Z){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Z}if(this.options.showSExpr)console.log(h(W,0,!0)),console.log();let M=new y({dataSection:T,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),D=M.compile(W);return{tokens:F,sexpr:W,code:D,data:T,reactiveVars:M.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}function o1($,T={}){return new p(T).compile($)}function i($,T={}){return new p(T).compileToJS($)}var U2="3.0.0",Y2="2026-02-07@13:13:24GMT",d1=($)=>{let T=$.match(/^[ \t]*(?=\S)/gm),Y=Math.min(...(T||[]).map((U)=>U.length));return $.replace(RegExp(`^[ ]{${Y}}`,"gm"),"").trim()};async function M1(){let $=document.querySelectorAll('script[type="text/rip"]');for(let T of $){if(T.hasAttribute("data-rip-processed"))continue;try{let Y=d1(T.textContent),U=i(Y);(0,eval)(U),T.setAttribute("data-rip-processed","true")}catch(Y){console.error("Error compiling Rip script:",Y),console.error("Script content:",T.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",M1);else M1();function r1($){try{let Y=i($).replace(/^let\s+[^;]+;\s*\n\s*/m,"");Y=Y.replace(/^const\s+/gm,"var ");let U=(0,eval)(Y);if(U!==void 0)globalThis._=U;return U}catch(T){console.error("Rip compilation error:",T.message);return}}if(typeof globalThis<"u")globalThis.rip=r1;export{r1 as rip,M1 as processRipScripts,g as parser,h as formatSExpr,i as compileToJS,o1 as compile,U2 as VERSION,x as Lexer,p as Compiler,y as CodeGenerator,Y2 as BUILD_DATE};