rip-lang 3.13.26 → 3.13.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -24
- package/bin/rip +29 -18
- package/docs/RIP-LANG.md +259 -4
- package/docs/RIP-TYPES.md +1 -1
- package/docs/dist/rip.js +414 -269
- package/docs/dist/rip.min.js +359 -178
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +1 -1
- package/src/app.rip +1 -1
- package/src/compiler.js +28 -2
- package/src/components.js +25 -13
- package/src/grammar/grammar.rip +6 -3
- package/src/lexer.js +15 -10
- package/src/parser.js +28 -27
- package/docs/RIP-INTERNALS.md +0 -593
- package/docs/WEB-FRAMEWORKS.md +0 -486
- package/docs/WEB-STYLING.md +0 -701
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
|
-
(()=>{var{defineProperty:L1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:p2}=Object,d2=Object.prototype.hasOwnProperty;var a1=new WeakMap,r2=($)=>{var W=a1.get($),_;if(W)return W;if(W=L1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((U)=>!d2.call(W,U)&&L1(W,U,{get:()=>$[U],enumerable:!(_=p2($,U))||_.enumerable}));return a1.set($,W),W};var s1=($,W)=>{for(var _ in W)L1($,_,{get:W[_],enumerable:!0,configurable:!0,set:(U)=>W[_]=()=>U})};var p3={};s1(p3,{rip:()=>q2,processRipScripts:()=>O2,parser:()=>a,importRip:()=>s,getStdlibCode:()=>Z1,getReactiveRuntime:()=>J1,getComponentRuntime:()=>Q1,formatSExpr:()=>l,compileToJS:()=>i,compile:()=>G1,VERSION:()=>H2,Lexer:()=>n,Compiler:()=>A1,CodeGenerator:()=>y,BUILD_DATE:()=>z2});function u2($){let W=$.prototype;W.rewriteTypes=function(){let _=this.tokens,U=(u,f,F)=>{let Y=[u,f];if(Y.pre=0,Y.data=null,Y.loc=F?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,F)Y.origin=F;return Y};this.scanTokens((u,f,F)=>{let Y=u[0];if(Y==="IDENTIFIER"){let A=F[f+1];if(A&&A[0]==="COMPARE"&&A[1]==="<"&&!A.spaced){let X=F[f-1]?.[0]==="DEF",Q=o2(F,f+1);if(Q){let R=!X&&F[f+1+Q.length]?.[0]==="TYPE_ALIAS";if(X||R){if(!u.data)u.data={};if(u.data.typeParams=W1(Q),F.splice(f+1,Q.length),X&&F[f+1]?.[0]==="("){F[f+1][0]="CALL_START";let H=1,Z=f+2;while(Z<F.length&&H>0){if(F[Z][0]==="("||F[Z][0]==="CALL_START")H++;if(F[Z][0]===")"||F[Z][0]==="CALL_END")H--;if(H===0)F[Z][0]="CALL_END";Z++}}}}}}if(Y==="TYPE_ANNOTATION"){let A=F[f-1];if(!A)return 1;let X=t1(F,f+1),Q=W1(X),R=A,H="type";if(A[0]==="CALL_END"||A[0]===")"){let M=1,J=f-2;while(J>=0&&M>0){let K=F[J][0];if(K==="CALL_END"||K===")")M++;if(K==="CALL_START"||K==="(")M--;J--}if(J>=0)R=F[J];H="returnType"}else if(A[0]==="PARAM_END"){let M=f+1+X.length,J=F[M];if(J&&(J[0]==="->"||J[0]==="=>"))R=J;H="returnType"}else if(A[0]==="IDENTIFIER"&&f>=2&&F[f-2]?.[0]==="DEF")H="returnType";if(!R.data)R.data={};R.data[H]=Q;let Z=1+X.length;return F.splice(f,Z),0}if(Y==="TYPE_ALIAS"){let A=F[f-1];if(!A)return 1;let X=A[1],Q=f>=2&&F[f-2]?.[0]==="EXPORT",R=Q?f-2:f-1,H=F[f+1],Z=(J)=>{let K=U("TYPE_DECL",X,A);if(K.data={name:X,typeText:J,exported:Q},A.data?.typeParams)K.data.typeParams=A.data.typeParams;return K};if(H&&H[0]==="IDENTIFIER"&&H[1]==="type"&&F[f+2]?.[0]==="INDENT"){let J=V1(F,f+2);return F.splice(R,J-R+1,Z(e1(F,f+2))),0}if(H&&(H[0]==="TERMINATOR"||H[0]==="INDENT")){let J=a2(F,f+1);if(J)return F.splice(R,J.endIdx-R+1,Z(J.typeText)),0}let M=t1(F,f+1);return F.splice(R,f+1+M.length-R,Z(W1(M))),0}if(Y==="INTERFACE"){let A=f>=1&&F[f-1]?.[0]==="EXPORT",X=f+1,Q=F[X];if(!Q)return 1;let R=Q[1],H=null,Z=X+1;if(F[Z]?.[0]==="EXTENDS")H=F[Z+1]?.[1],Z=Z+2;if(F[Z]?.[0]==="INDENT"){let M=e1(F,Z),J=V1(F,Z),K=U("TYPE_DECL",R,Q);K.data={name:R,kind:"interface",extends:H,typeText:M,exported:A};let D=A?f-1:f,O=J-D+1;return F.splice(D,O,K),0}return 1}return 1})}}function t1($,W){let _=[],U=0;while(W<$.length){let u=$[W],f=u[0],F=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",Y=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&U>=2){U-=2,_.push(u),W++;continue}if(F){U++,_.push(u),W++;continue}if(Y){if(U>0){U--,_.push(u),W++;continue}break}if(U===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="EFFECT"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}_.push(u),W++}return _}function W1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((_)=>_[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function o2($,W){if(W>=$.length)return null;let _=$[W];if(_[0]!=="COMPARE"||_[1]!=="<")return null;let U=[_],u=1,f=W+1;while(f<$.length&&u>0){let F=$[f];if(U.push(F),F[0]==="COMPARE"&&F[1]==="<")u++;else if(F[0]==="COMPARE"&&F[1]===">")u--;f++}return u===0?U:null}function e1($,W){let _=[],U=W+1,u=1;while(U<$.length&&u>0){let f=$[U];if(f[0]==="INDENT"){u++,U++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;U++;continue}if(f[0]==="TERMINATOR"){U++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let F=f[1],Y=!1,A=!1;if(U++,F==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(A=!0,F=$[U][1],$[U].data?.predicate)Y=!0;U++}if(f.data?.predicate)Y=!0;if($[U]?.[1]==="?"&&!$[U]?.spaced)Y=!0,U++;if($[U]?.[1]===":"||$[U]?.[0]==="TYPE_ANNOTATION")U++;let X=[],Q=0;while(U<$.length){let M=$[U];if(M[0]==="INDENT"){Q++,U++;continue}if(M[0]==="OUTDENT"){if(Q>0){Q--,U++;continue}break}if(M[0]==="TERMINATOR"&&Q===0)break;X.push(M),U++}let R=W1(X),H=A?"readonly ":"",Z=Y?"?":"";_.push(`${H}${F}${Z}: ${R}`)}else U++}return"{ "+_.join("; ")+" }"}function V1($,W){let _=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")_++;if($[U][0]==="OUTDENT"){if(_--,_===0)return U}}return $.length-1}function a2($,W){let _=W;if($[_]?.[0]==="TERMINATOR")_++;if($[_]?.[0]!=="INDENT")return null;let U=_;_++;while(_<$.length&&$[_][0]==="TERMINATOR")_++;if(!$[_]||$[_][1]!=="|")return null;let u=[],f=1;_=U+1;while(_<$.length&&f>0){let Y=$[_];if(Y[0]==="INDENT"){f++,_++;continue}if(Y[0]==="OUTDENT"){if(f--,f===0)break;_++;continue}if(Y[0]==="TERMINATOR"){_++;continue}if(Y[1]==="|"&&f===1){_++;let A=[];while(_<$.length){let X=$[_];if(X[0]==="TERMINATOR"||X[0]==="OUTDENT"||X[1]==="|"&&f===1)break;A.push(X),_++}if(A.length>0)u.push(W1(A));continue}_++}if(u.length===0)return null;let F=V1($,U);return{typeText:u.join(" | "),endIdx:F}}function j1($,W=null){let _=[],U=0,u=" ",f=()=>u.repeat(U),F=!1,Y=!1,A=!1,X=(Z,M,J)=>{if(M.startsWith("{ ")&&M.endsWith(" }")){let K=M.slice(2,-2).split("; ").filter((D)=>D.trim());if(K.length>0){_.push(`${f()}${Z}{`),U++;for(let D of K)_.push(`${f()}${D};`);U--,_.push(`${f()}}${J}`);return}}_.push(`${f()}${Z}${M}${J}`)},Q=(Z,M)=>{let J=[],K=M,D=Z[K]?.[0];if(D!=="CALL_START"&&D!=="PARAM_START")return{params:J,endIdx:K};let O=D==="CALL_START"?"CALL_END":"PARAM_END";K++;let G=0;while(K<Z.length&&!(Z[K][0]===O&&G===0)){let z=Z[K];if(z[1]===","&&G===0){K++;continue}if(z[0]==="{"||z[0]==="["||z[0]==="CALL_START"||z[0]==="PARAM_START"||z[0]==="INDEX_START")G++;if(z[0]==="}"||z[0]==="]"||z[0]==="CALL_END"||z[0]==="PARAM_END"||z[0]==="INDEX_END"){G--,K++;continue}if(z[0]==="@"){if(K++,Z[K]?.[0]==="PROPERTY"||Z[K]?.[0]==="IDENTIFIER"){let E=Z[K][1],P=Z[K].data?.type;J.push(P?`${E}: ${c(P)}`:E),K++}continue}if(z[0]==="SPREAD"||z[1]==="..."){if(K++,Z[K]?.[0]==="IDENTIFIER"){let E=Z[K][1],P=Z[K].data?.type;J.push(P?`...${E}: ${c(P)}`:`...${E}: any[]`),K++}continue}if(z[0]==="{"){let E="{";K++;let P=1;while(K<Z.length&&P>0){if(Z[K][0]==="{")P++;if(Z[K][0]==="}")P--;if(P>0)E+=Z[K][1]+(Z[K+1]?.[0]==="}"?"":", ");K++}E+="}";let w=Z[K-1]?.data?.type;J.push(w?`${E}: ${c(w)}`:E);continue}if(z[0]==="IDENTIFIER"){let E=z[1],P=z.data?.type,w=!1;if(Z[K+1]?.[0]==="=")w=!0;if(P)J.push(`${E}${w?"?":""}: ${c(P)}`);else J.push(E);if(K++,w){K++;let q=0;while(K<Z.length){let I=Z[K];if(I[0]==="("||I[0]==="["||I[0]==="{")q++;if(I[0]===")"||I[0]==="]"||I[0]==="}")q--;if(q===0&&(I[1]===","||I[0]==="CALL_END"))break;K++}}continue}K++}return{params:J,endIdx:K}};for(let Z=0;Z<$.length;Z++){let M=$[Z],J=M[0],K=!1;if(J==="EXPORT"){if(K=!0,Z++,Z>=$.length)break;if(M=$[Z],J=M[0],J==="DEFAULT"){if(Z++,Z>=$.length)break;if(M=$[Z],J=M[0],J==="IDENTIFIER")_.push(`${f()}export default ${M[1]};`);continue}}if(J==="IMPORT"){let D=[],O=Z+1;while(O<$.length&&$[O][0]!=="TERMINATOR")D.push($[O]),O++;let G="import "+D.map((z)=>z[1]).join(" ");G=G.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),_.push(`${f()}${G};`),Z=O;continue}if(J==="TYPE_DECL"){let D=M.data;if(!D)continue;let O=K||D.exported?"export ":"",G=D.typeParams||"";if(D.kind==="interface"){let z=D.extends?` extends ${D.extends}`:"";X(`${O}interface ${D.name}${G}${z} `,D.typeText||"{}","")}else{let z=c(D.typeText||"");X(`${O}type ${D.name}${G} = `,z,";")}continue}if(J==="ENUM"){let D=K?"export ":"",O=$[Z+1];if(!O)continue;let G=O[1],z=Z+2;if($[z]?.[0]==="INDENT"){_.push(`${f()}${D}enum ${G} {`),U++,z++;let E=[];while(z<$.length&&$[z][0]!=="OUTDENT"){if($[z][0]==="TERMINATOR"){z++;continue}if($[z][0]==="IDENTIFIER"){let P=$[z][1];if(z++,$[z]?.[1]==="="){z++;let w=$[z]?.[1];E.push(`${P} = ${w}`),z++}else E.push(P)}else z++}for(let P=0;P<E.length;P++){let w=P<E.length-1?",":"";_.push(`${f()}${E[P]}${w}`)}U--,_.push(`${f()}}`)}continue}if(J==="CLASS"){let D=K?"export ":"",O=$[Z+1];if(!O)continue;let G=O[1],z="",E=Z+2;if($[E]?.[0]==="EXTENDS")z=` extends ${$[E+1]?.[1]||""}`,E+=2;if($[E]?.[0]==="INDENT"){let P=!1,w=E+1;while(w<$.length&&$[w][0]!=="OUTDENT"){if($[w].data?.type||$[w].data?.returnType){P=!0;break}w++}if(P)_.push(`${f()}${D}declare class ${G}${z} {`),F=!0,U++}continue}if(J==="DEF"){let D=$[Z+1];if(!D)continue;let O=D[1],G=D.data?.returnType,z=D.data?.typeParams||"",{params:E,endIdx:P}=Q($,Z+2);if(G||E.some((w)=>w.includes(":"))){let w=K?"export ":"",q=F?"":K?"":"declare ",I=G?`: ${c(G)}`:"",B=E.join(", ");if(F)_.push(`${f()}${O}${z}(${B})${I};`);else _.push(`${f()}${w}${q}function ${O}${z}(${B})${I};`)}continue}if(J==="{"&&F){let D=Z+1,O=1;while(D<$.length&&O>0){let G=$[D];if(G[0]==="{"){O++,D++;continue}if(G[0]==="}"){O--,D++;continue}if(G[0]==="TERMINATOR"){D++;continue}if(G[0]==="PROPERTY"&&O===1){let z=G[1],E=G.data?.returnType;if(D++,$[D]?.[1]===":")D++;let P=[];if($[D]?.[0]==="PARAM_START"){let w=Q($,D);P=w.params,D=w.endIdx+1}if($[D]?.[0]==="->"||$[D]?.[0]==="=>")D++;if($[D]?.[0]==="INDENT"){let w=1;D++;while(D<$.length&&w>0){if($[D][0]==="INDENT")w++;if($[D][0]==="OUTDENT")w--;D++}}if(E||P.some((w)=>w.includes(":"))){let w=E?`: ${c(E)}`:"",q=P.join(", ");_.push(`${f()}${z}(${q})${w};`)}continue}D++}Z=D-1;continue}if(J==="INDENT")continue;if(J==="OUTDENT"){if(F)U--,_.push(`${f()}}`),F=!1;continue}if(J==="IDENTIFIER"&&!F&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let D=M[1],O=Z+2,{params:G}=Q($,O),z=O,E=0;while(z<$.length){if($[z][0]==="PARAM_START"||$[z][0]==="(")E++;if($[z][0]==="PARAM_END"||$[z][0]===")")E--;if(E===0&&($[z][0]==="->"||$[z][0]==="=>"))break;z++}let P=$[z]?.data?.returnType;if(P||G.some((w)=>w.includes(":"))){let w=K?"export ":"",q=K?"":"declare ",I=P?`: ${c(P)}`:"",B=G.join(", ");_.push(`${f()}${w}${q}function ${D}(${B})${I};`);continue}}if(J==="IDENTIFIER"&&M.data?.type){let D=M[1],O=c(M.data.type),G=$[Z+1];if(G){let z=K?"export ":"",E=K?"":"declare ";if(G[0]==="READONLY_ASSIGN")_.push(`${f()}${z}${E}const ${D}: ${O};`);else if(G[0]==="REACTIVE_ASSIGN")Y=!0,_.push(`${f()}${z}${E}const ${D}: Signal<${O}>;`);else if(G[0]==="COMPUTED_ASSIGN")A=!0,_.push(`${f()}${z}${E}const ${D}: Computed<${O}>;`);else if(G[0]==="EFFECT")_.push(`${f()}${z}${E}const ${D}: () => void;`);else if(G[0]==="="){let P=Z+2;if($[P]?.[0]==="PARAM_START"){let q=1,I=P+1;while(I<$.length&&q>0){if($[I][0]==="PARAM_START")q++;if($[I][0]==="PARAM_END")q--;I++}P=I}let w=$[P];if(w&&(w[0]==="->"||w[0]==="=>")&&w.data?.returnType){let q=c(w.data.returnType),{params:I}=Q($,Z+2),B=I.join(", ");_.push(`${f()}${z}${E}function ${D}(${B}): ${q};`)}else if(F)_.push(`${f()}${D}: ${O};`);else _.push(`${f()}${z}let ${D}: ${O};`)}else if(F)_.push(`${f()}${D}: ${O};`)}else if(F)_.push(`${f()}${D}: ${O};`)}}let R=new Set;if(W){if(h1(W,_,f,U,R),R.size>0)for(let Z=_.length-1;Z>=0;Z--){let M=_[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(M&&R.has(M[1]))_.splice(Z,1)}}if(_.length===0)return null;let H=[];if(Y)H.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(A)H.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(H.length>0)H.push("");return H.concat(_).join(`
|
|
1
|
+
(()=>{var{defineProperty:V1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;var a1=new WeakMap,d2=($)=>{var W=a1.get($),F;if(W)return W;if(W=V1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((U)=>!p2.call(W,U)&&V1(W,U,{get:()=>$[U],enumerable:!(F=n2($,U))||F.enumerable}));return a1.set($,W),W};var s1=($,W)=>{for(var F in W)V1($,F,{get:W[F],enumerable:!0,configurable:!0,set:(U)=>W[F]=()=>U})};var n3={};s1(n3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>s,importRip:()=>t,getStdlibCode:()=>Z1,getReactiveRuntime:()=>w1,getComponentRuntime:()=>J1,formatSExpr:()=>l,compileToJS:()=>d,compile:()=>P1,VERSION:()=>M2,Lexer:()=>p,Compiler:()=>Y1,CodeGenerator:()=>C,BUILD_DATE:()=>D2});function u2($){let W=$.prototype;W.rewriteTypes=function(){let F=this.tokens,U=(u,f,_)=>{let A=[u,f];if(A.pre=0,A.data=null,A.loc=_?.loc??{r:0,c:0,n:0},A.spaced=!1,A.newLine=!1,A.generated=!0,_)A.origin=_;return A};this.scanTokens((u,f,_)=>{let A=u[0];if(A==="IDENTIFIER"){let Y=_[f+1];if(Y&&Y[0]==="COMPARE"&&Y[1]==="<"&&!Y.spaced){let Q=_[f-1]?.[0]==="DEF",w=r2(_,f+1);if(w){let z=!Q&&_[f+1+w.length]?.[0]==="TYPE_ALIAS";if(Q||z){if(!u.data)u.data={};if(u.data.typeParams=W1(w),_.splice(f+1,w.length),Q&&_[f+1]?.[0]==="("){_[f+1][0]="CALL_START";let K=1,Z=f+2;while(Z<_.length&&K>0){if(_[Z][0]==="("||_[Z][0]==="CALL_START")K++;if(_[Z][0]===")"||_[Z][0]==="CALL_END")K--;if(K===0)_[Z][0]="CALL_END";Z++}}}}}}if(A==="TYPE_ANNOTATION"){let Y=_[f-1];if(!Y)return 1;let Q=t1(_,f+1),w=W1(Q),z=Y,K="type";if(Y[0]==="CALL_END"||Y[0]===")"){let R=1,J=f-2;while(J>=0&&R>0){let X=_[J][0];if(X==="CALL_END"||X===")")R++;if(X==="CALL_START"||X==="(")R--;J--}if(J>=0)z=_[J];K="returnType"}else if(Y[0]==="PARAM_END"){let R=f+1+Q.length,J=_[R];if(J&&(J[0]==="->"||J[0]==="=>"))z=J;K="returnType"}else if(Y[0]==="IDENTIFIER"&&f>=2&&_[f-2]?.[0]==="DEF")K="returnType";if(!z.data)z.data={};z.data[K]=w;let Z=1+Q.length;return _.splice(f,Z),0}if(A==="TYPE_ALIAS"){let Y=_[f-1];if(!Y)return 1;let Q=Y[1],w=f>=2&&_[f-2]?.[0]==="EXPORT",z=w?f-2:f-1,K=_[f+1],Z=(J)=>{let X=U("TYPE_DECL",Q,Y);if(X.data={name:Q,typeText:J,exported:w},Y.data?.typeParams)X.data.typeParams=Y.data.typeParams;return X};if(K&&K[0]==="IDENTIFIER"&&K[1]==="type"&&_[f+2]?.[0]==="INDENT"){let J=h1(_,f+2);return _.splice(z,J-z+1,Z(e1(_,f+2))),0}if(K&&(K[0]==="TERMINATOR"||K[0]==="INDENT")){let J=o2(_,f+1);if(J)return _.splice(z,J.endIdx-z+1,Z(J.typeText)),0}let R=t1(_,f+1);return _.splice(z,f+1+R.length-z,Z(W1(R))),0}if(A==="INTERFACE"){let Y=f>=1&&_[f-1]?.[0]==="EXPORT",Q=f+1,w=_[Q];if(!w)return 1;let z=w[1],K=null,Z=Q+1;if(_[Z]?.[0]==="EXTENDS")K=_[Z+1]?.[1],Z=Z+2;if(_[Z]?.[0]==="INDENT"){let R=e1(_,Z),J=h1(_,Z),X=U("TYPE_DECL",z,w);X.data={name:z,kind:"interface",extends:K,typeText:R,exported:Y};let D=Y?f-1:f,q=J-D+1;return _.splice(D,q,X),0}return 1}return 1})}}function t1($,W){let F=[],U=0;while(W<$.length){let u=$[W],f=u[0],_=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",A=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&U>=2){U-=2,F.push(u),W++;continue}if(_){U++,F.push(u),W++;continue}if(A){if(U>0){U--,F.push(u),W++;continue}break}if(U===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="EFFECT"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}F.push(u),W++}return F}function W1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((F)=>F[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function r2($,W){if(W>=$.length)return null;let F=$[W];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let U=[F],u=1,f=W+1;while(f<$.length&&u>0){let _=$[f];if(U.push(_),_[0]==="COMPARE"&&_[1]==="<")u++;else if(_[0]==="COMPARE"&&_[1]===">")u--;f++}return u===0?U:null}function e1($,W){let F=[],U=W+1,u=1;while(U<$.length&&u>0){let f=$[U];if(f[0]==="INDENT"){u++,U++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;U++;continue}if(f[0]==="TERMINATOR"){U++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let _=f[1],A=!1,Y=!1;if(U++,_==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(Y=!0,_=$[U][1],$[U].data?.predicate)A=!0;U++}if(f.data?.predicate)A=!0;if($[U]?.[1]==="?"&&!$[U]?.spaced)A=!0,U++;if($[U]?.[1]===":"||$[U]?.[0]==="TYPE_ANNOTATION")U++;let Q=[],w=0;while(U<$.length){let R=$[U];if(R[0]==="INDENT"){w++,U++;continue}if(R[0]==="OUTDENT"){if(w>0){w--,U++;continue}break}if(R[0]==="TERMINATOR"&&w===0)break;Q.push(R),U++}let z=W1(Q),K=Y?"readonly ":"",Z=A?"?":"";F.push(`${K}${_}${Z}: ${z}`)}else U++}return"{ "+F.join("; ")+" }"}function h1($,W){let F=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")F++;if($[U][0]==="OUTDENT"){if(F--,F===0)return U}}return $.length-1}function o2($,W){let F=W;if($[F]?.[0]==="TERMINATOR")F++;if($[F]?.[0]!=="INDENT")return null;let U=F;F++;while(F<$.length&&$[F][0]==="TERMINATOR")F++;if(!$[F]||$[F][1]!=="|")return null;let u=[],f=1;F=U+1;while(F<$.length&&f>0){let A=$[F];if(A[0]==="INDENT"){f++,F++;continue}if(A[0]==="OUTDENT"){if(f--,f===0)break;F++;continue}if(A[0]==="TERMINATOR"){F++;continue}if(A[1]==="|"&&f===1){F++;let Y=[];while(F<$.length){let Q=$[F];if(Q[0]==="TERMINATOR"||Q[0]==="OUTDENT"||Q[1]==="|"&&f===1)break;Y.push(Q),F++}if(Y.length>0)u.push(W1(Y));continue}F++}if(u.length===0)return null;let _=h1($,U);return{typeText:u.join(" | "),endIdx:_}}function C1($,W=null){let F=[],U=0,u=" ",f=()=>u.repeat(U),_=!1,A=!1,Y=!1,Q=(Z,R,J)=>{if(R.startsWith("{ ")&&R.endsWith(" }")){let X=R.slice(2,-2).split("; ").filter((D)=>D.trim());if(X.length>0){F.push(`${f()}${Z}{`),U++;for(let D of X)F.push(`${f()}${D};`);U--,F.push(`${f()}}${J}`);return}}F.push(`${f()}${Z}${R}${J}`)},w=(Z,R)=>{let J=[],X=R,D=Z[X]?.[0];if(D!=="CALL_START"&&D!=="PARAM_START")return{params:J,endIdx:X};let q=D==="CALL_START"?"CALL_END":"PARAM_END";X++;let O=0;while(X<Z.length&&!(Z[X][0]===q&&O===0)){let H=Z[X];if(H[1]===","&&O===0){X++;continue}if(H[0]==="{"||H[0]==="["||H[0]==="CALL_START"||H[0]==="PARAM_START"||H[0]==="INDEX_START")O++;if(H[0]==="}"||H[0]==="]"||H[0]==="CALL_END"||H[0]==="PARAM_END"||H[0]==="INDEX_END"){O--,X++;continue}if(H[0]==="@"){if(X++,Z[X]?.[0]==="PROPERTY"||Z[X]?.[0]==="IDENTIFIER"){let I=Z[X][1],P=Z[X].data?.type;J.push(P?`${I}: ${b(P)}`:I),X++}continue}if(H[0]==="SPREAD"||H[1]==="..."){if(X++,Z[X]?.[0]==="IDENTIFIER"){let I=Z[X][1],P=Z[X].data?.type;J.push(P?`...${I}: ${b(P)}`:`...${I}: any[]`),X++}continue}if(H[0]==="{"){let I="{";X++;let P=1;while(X<Z.length&&P>0){if(Z[X][0]==="{")P++;if(Z[X][0]==="}")P--;if(P>0)I+=Z[X][1]+(Z[X+1]?.[0]==="}"?"":", ");X++}I+="}";let M=Z[X-1]?.data?.type;J.push(M?`${I}: ${b(M)}`:I);continue}if(H[0]==="IDENTIFIER"){let I=H[1],P=H.data?.type,M=!1;if(Z[X+1]?.[0]==="=")M=!0;if(P)J.push(`${I}${M?"?":""}: ${b(P)}`);else J.push(I);if(X++,M){X++;let G=0;while(X<Z.length){let E=Z[X];if(E[0]==="("||E[0]==="["||E[0]==="{")G++;if(E[0]===")"||E[0]==="]"||E[0]==="}")G--;if(G===0&&(E[1]===","||E[0]==="CALL_END"))break;X++}}continue}X++}return{params:J,endIdx:X}};for(let Z=0;Z<$.length;Z++){let R=$[Z],J=R[0],X=!1;if(J==="EXPORT"){if(X=!0,Z++,Z>=$.length)break;if(R=$[Z],J=R[0],J==="DEFAULT"){if(Z++,Z>=$.length)break;if(R=$[Z],J=R[0],J==="IDENTIFIER")F.push(`${f()}export default ${R[1]};`);continue}}if(J==="IMPORT"){let D=[],q=Z+1;while(q<$.length&&$[q][0]!=="TERMINATOR")D.push($[q]),q++;let O="import "+D.map((H)=>H[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${f()}${O};`),Z=q;continue}if(J==="TYPE_DECL"){let D=R.data;if(!D)continue;let q=X||D.exported?"export ":"",O=D.typeParams||"";if(D.kind==="interface"){let H=D.extends?` extends ${D.extends}`:"";Q(`${q}interface ${D.name}${O}${H} `,D.typeText||"{}","")}else{let H=b(D.typeText||"");Q(`${q}type ${D.name}${O} = `,H,";")}continue}if(J==="ENUM"){let D=X?"export ":"",q=$[Z+1];if(!q)continue;let O=q[1],H=Z+2;if($[H]?.[0]==="INDENT"){F.push(`${f()}${D}enum ${O} {`),U++,H++;let I=[];while(H<$.length&&$[H][0]!=="OUTDENT"){if($[H][0]==="TERMINATOR"){H++;continue}if($[H][0]==="IDENTIFIER"){let P=$[H][1];if(H++,$[H]?.[1]==="="){H++;let M=$[H]?.[1];I.push(`${P} = ${M}`),H++}else I.push(P)}else H++}for(let P=0;P<I.length;P++){let M=P<I.length-1?",":"";F.push(`${f()}${I[P]}${M}`)}U--,F.push(`${f()}}`)}continue}if(J==="CLASS"){let D=X?"export ":"",q=$[Z+1];if(!q)continue;let O=q[1],H="",I=Z+2;if($[I]?.[0]==="EXTENDS")H=` extends ${$[I+1]?.[1]||""}`,I+=2;if($[I]?.[0]==="INDENT"){let P=!1,M=I+1;while(M<$.length&&$[M][0]!=="OUTDENT"){if($[M].data?.type||$[M].data?.returnType){P=!0;break}M++}if(P)F.push(`${f()}${D}declare class ${O}${H} {`),_=!0,U++}continue}if(J==="DEF"){let D=$[Z+1];if(!D)continue;let q=D[1],O=D.data?.returnType,H=D.data?.typeParams||"",{params:I,endIdx:P}=w($,Z+2);if(O||I.some((M)=>M.includes(":"))){let M=X?"export ":"",G=_?"":X?"":"declare ",E=O?`: ${b(O)}`:"",B=I.join(", ");if(_)F.push(`${f()}${q}${H}(${B})${E};`);else F.push(`${f()}${M}${G}function ${q}${H}(${B})${E};`)}continue}if(J==="{"&&_){let D=Z+1,q=1;while(D<$.length&&q>0){let O=$[D];if(O[0]==="{"){q++,D++;continue}if(O[0]==="}"){q--,D++;continue}if(O[0]==="TERMINATOR"){D++;continue}if(O[0]==="PROPERTY"&&q===1){let H=O[1],I=O.data?.returnType;if(D++,$[D]?.[1]===":")D++;let P=[];if($[D]?.[0]==="PARAM_START"){let M=w($,D);P=M.params,D=M.endIdx+1}if($[D]?.[0]==="->"||$[D]?.[0]==="=>")D++;if($[D]?.[0]==="INDENT"){let M=1;D++;while(D<$.length&&M>0){if($[D][0]==="INDENT")M++;if($[D][0]==="OUTDENT")M--;D++}}if(I||P.some((M)=>M.includes(":"))){let M=I?`: ${b(I)}`:"",G=P.join(", ");F.push(`${f()}${H}(${G})${M};`)}continue}D++}Z=D-1;continue}if(J==="INDENT")continue;if(J==="OUTDENT"){if(_)U--,F.push(`${f()}}`),_=!1;continue}if(J==="IDENTIFIER"&&!_&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let D=R[1],q=Z+2,{params:O}=w($,q),H=q,I=0;while(H<$.length){if($[H][0]==="PARAM_START"||$[H][0]==="(")I++;if($[H][0]==="PARAM_END"||$[H][0]===")")I--;if(I===0&&($[H][0]==="->"||$[H][0]==="=>"))break;H++}let P=$[H]?.data?.returnType;if(P||O.some((M)=>M.includes(":"))){let M=X?"export ":"",G=X?"":"declare ",E=P?`: ${b(P)}`:"",B=O.join(", ");F.push(`${f()}${M}${G}function ${D}(${B})${E};`);continue}}if(J==="IDENTIFIER"&&R.data?.type){let D=R[1],q=b(R.data.type),O=$[Z+1];if(O){let H=X?"export ":"",I=X?"":"declare ";if(O[0]==="READONLY_ASSIGN")F.push(`${f()}${H}${I}const ${D}: ${q};`);else if(O[0]==="REACTIVE_ASSIGN")A=!0,F.push(`${f()}${H}${I}const ${D}: Signal<${q}>;`);else if(O[0]==="COMPUTED_ASSIGN")Y=!0,F.push(`${f()}${H}${I}const ${D}: Computed<${q}>;`);else if(O[0]==="EFFECT")F.push(`${f()}${H}${I}const ${D}: () => void;`);else if(O[0]==="="){let P=Z+2;if($[P]?.[0]==="PARAM_START"){let G=1,E=P+1;while(E<$.length&&G>0){if($[E][0]==="PARAM_START")G++;if($[E][0]==="PARAM_END")G--;E++}P=E}let M=$[P];if(M&&(M[0]==="->"||M[0]==="=>")&&M.data?.returnType){let G=b(M.data.returnType),{params:E}=w($,Z+2),B=E.join(", ");F.push(`${f()}${H}${I}function ${D}(${B}): ${G};`)}else if(_)F.push(`${f()}${D}: ${q};`);else F.push(`${f()}${H}let ${D}: ${q};`)}else if(_)F.push(`${f()}${D}: ${q};`)}else if(_)F.push(`${f()}${D}: ${q};`)}}let z=new Set;if(W){if(j1(W,F,f,U,z),z.size>0)for(let Z=F.length-1;Z>=0;Z--){let R=F[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(R&&z.has(R[1]))F.splice(Z,1)}}if(F.length===0)return null;let K=[];if(A)K.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(Y)K.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(K.length>0)K.push("");return K.concat(F).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function
|
|
3
|
+
`}function b($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function j1($,W,F,U,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],_=!1,A=null,Y=null;if(f==="export"&&Array.isArray($[1])){_=!0;let Q=$[1];if((Q[0]?.valueOf?.()??Q[0])==="="&&Array.isArray(Q[2])&&(Q[2][0]?.valueOf?.()??Q[2][0])==="component")A=Q[1]?.valueOf?.()??Q[1],Y=Q[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")A=$[1]?.valueOf?.()??$[1],Y=$[2];if(A&&Y){let Q=_?"export ":"",w=Y[2],z=Array.isArray(w)&&(w[0]?.valueOf?.()??w[0])==="block"?w.slice(1):w?[w]:[],K=[],Z=!1;for(let R of z){if(!Array.isArray(R))continue;let J=R[0]?.valueOf?.()??R[0],X,D,q,O,H;if(J==="state"||J==="readonly"||J==="computed"){if(X=R[1],q=Array.isArray(X)&&(X[0]?.valueOf?.()??X[0])==="."&&(X[1]?.valueOf?.()??X[1])==="this",D=q?X[2]?.valueOf?.()??X[2]:X?.valueOf?.()??X,O=q?X[2]?.type:X?.type,H=!0,!q)u.add(D)}else if(J==="."){if(q=(R[1]?.valueOf?.()??R[1])==="this",D=q?R[2]?.valueOf?.()??R[2]:null,O=q?R[2]?.type:null,H=!1,!q&&D)u.add(D)}else continue;if(!q||!D)continue;let I=O?b(O):"any",P=H?"?":"";if(!H)Z=!0;K.push(` ${D}${P}: ${I};`)}if(W.push(`${Q}declare class ${A} {`),K.length>0){let R=Z?"":"?";W.push(` constructor(props${R}: {`);for(let J of K)W.push(J);W.push(" });")}W.push("}")}if(f==="program"||f==="block"){for(let Q=1;Q<$.length;Q++)if(Array.isArray($[Q]))j1($[Q],W,F,U,u)}if(f==="export"&&Array.isArray($[1])&&!Y)j1($[1],W,F,U,u)}function f2($,W,F){let[U,u]=W,f=U?.valueOf?.()??U,_=[];if(Array.isArray(u)){let Q=u[0]==="block"?u.slice(1):[u];for(let w of Q)if(Array.isArray(w)){if(w[0]?.valueOf?.()==="="){let z=w[1]?.valueOf?.()??w[1],K=w[2]?.valueOf?.()??w[2];_.push([z,K])}}}if(_.length===0)return`const ${f} = {}`;let A=_.map(([Q,w])=>`${Q}: ${w}`).join(", "),Y=_.map(([Q,w])=>`${w}: "${Q}"`).join(", ");return`const ${f} = {${A}, ${Y}}`}var $2=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"]),U2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),b1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},W2=new Set(Object.keys(b1)),a2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),s2=new Set(["break","continue","debugger"]),t2=new Set(["NEW","TYPEOF","DELETE"]),e2=new Set(["IN","OF","INSTANCEOF"]),H1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),X2=new Set([...H1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),D1=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","@","->","=>","[","(","{","--","++"]),u3=new Set(["+","-"]),f3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),$3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),a=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),n=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),U3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},F2=new Set(["CATCH","THEN","ELSE","FINALLY",...n]),y1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),W3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),_2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),F3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),F1=new Set(["INDENT","OUTDENT","TERMINATOR"]),A2=new Set([".","?."]),Y2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),_3=new Set([...X2,"++","--"]),Z2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),A3=new Set(["*","/","%","//","%%"]),Y3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),Z3=new Set(["<<",">>",">>>"]),w3=new Set(["!","~"]),J3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,Q3=/^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,X3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,z3=/^[^\n\S]+/,K3=/^(?:\n[^\n\S]*)+/,R3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,M3=/^[-=]>/,D3=/^(?:~[=>]|=!)/,H3=/^(?:'''\\|"""\\|'''|"""|'|")/,q3=/^(?:[^\\']|\\[\s\S])*/,O3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,G3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,P3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,w2=/\n+([^\n\S]*)(?=\S)/g,I3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,J2=/^\w*/,E3=/^(?!.*(.).*\1)[gimsuy]*$/,B3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,N3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,T3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,L3=/\s+$/,Q2=/^\s*(?:,|\??\.(?![.\d]))/,S3=65279;function q1($,W,{pre:F=0,row:U=0,col:u=0,len:f=0,data:_=null}={}){let A=[$,W];return A.pre=F,A.data=_,A.loc={r:U,c:u,n:f},A.spaced=F>0,A.newLine=!1,A}function m($,W,F){let U=q1($,W);if(U.generated=!0,F)U.origin=F;return U}function g($,{row:W=0,col:F=0,len:U=1}={}){let u=SyntaxError($);throw u.location={first_line:W,first_column:F,last_column:F+U-1},u}function V3($){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 p{tokenize($,W={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=W.row||0,this.col=W.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let F=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(F===0)g(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(F),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let F=this.ends[this.ends.length-1];g(`missing ${F.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===S3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
4
4
|
`),$=$.replace(L3,""),/^[^\n\S]/.test($))$=`
|
|
5
|
-
`+$;return $}advance($){let W=this.code.slice(this.pos,this.pos+$);for(let
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,W,{len:
|
|
7
|
-
`)return 0;let W=this.prev();if(W)if($)W.spaced=!0,W.pre=$[0].length;else W.newLine=!0;return $?$[0].length:0}lineToken(){let $=
|
|
8
|
-
`);if(this.isUnfinished()){if(
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&
|
|
10
|
-
`)u--;u++;let f=this.chunk.slice(u,U),
|
|
11
|
-
`)}if(f===0&&W?.length===3)A=A.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)A=A.replace(/\n[^\S\n]*$/,"");if(u)A=A.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${A}"`,{len:Y.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=K3.exec(this.chunk);if(!$)return 0;let W=$[0],_=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))g(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))g(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:_});if(/^0\d+/.test(W))g(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:_});let u=h3(W),f=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if(f==="INFINITY")F.original=W;return this.emit(f,W,{len:_,data:F}),_}regexToken(){let $=this.matchWithInterpolations(N3,"///");if($){let{tokens:X,index:Q}=$,[R]=Q2.exec(this.chunk.slice(Q)),H=Q+R.length;if(X.length===1||!X.some((Z)=>Z[0]==="TOKENS")){let Z=(X[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${R}`,{len:H,data:{delimiter:"///",heregex:{flags:R}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(X,{quote:"///",endOffset:H-R.length}),R)this.emit(",",",",{len:0}),this.emit("STRING",`"${R}"`,{len:R.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return H}let W=E3.exec(this.chunk);if(!W)return 0;let[_,U,u]=W,f=this.prev();if(f){if(f.spaced&&H1.has(f[0])&&(!u||/^\/=?\s/.test(_)))return 0;if(Y3.has(f[0])&&!(f.spaced&&H1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let F=_.length,[Y]=Q2.exec(this.chunk.slice(F)),A=F+Y.length;if(!B3.test(Y))g(`invalid regular expression flags ${Y}`,{row:this.row,col:this.col+F,len:Y.length});return this.emit("REGEX",`/${U}/${Y}`,{len:A,data:{delimiter:"/"}}),A}jsToken(){if(this.chunk[0]!=="`")return 0;let $=S3.exec(this.chunk)||T3.exec(this.chunk);if(!$)return 0;let W=$[1],_=$[0].length;return this.emit("JS",W,{len:_,data:{here:$[0].startsWith("```")}}),_}literalToken(){let $=R3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),_=W,U=this.prev();if(H3.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let F=u.slice(f,u.length-1);U[0]="=",U[1]="=";for(let Y of F)this.tokens.push(z1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(z1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||Z2.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,_="TERMINATOR";else if(W==="|>")_="PIPE";else if(W==="::=")_="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")_="TYPE_ANNOTATION";else if(W==="~=")_="COMPUTED_ASSIGN";else if(W===":=")_="REACTIVE_ASSIGN";else if(W==="<=>")_="BIND";else if(W==="~>")_="EFFECT";else if(W==="=!")_="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let Y=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let A=this.emit("PROPERTY","assign");return A.spaced=!0,this.emit("@","@"),this.emit(",",","),2+Y.length+1}let F=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(F){let Y=F[1],A=F[2],X=Y.split("."),Q=()=>{this.emit("IDENTIFIER",X[0]);for(let H=1;H<X.length;H++)this.emit(".","."),this.emit("PROPERTY",X[H])};Q(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),Q(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let R=this.prev();return R.mergeClose=!0,1+Y.length+A.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")_="EXPORT_ALL";else if(A3.has(W))_="MATH";else if(Z3.has(W))_="COMPARE";else if(Z2.has(W))_="COMPOUND_ASSIGN";else if(Q3.has(W))_="UNARY_MATH";else if(J3.has(W))_="SHIFT";else if(W==="?"&&U?.spaced)_="SPACE?";else if(W==="!?"&&U&&!U.spaced)_="DEFINED";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))_="?.";else if(U){if(W==="("&&!U.spaced&&H1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";_="CALL_START"}if(W==="["&&!U.spaced&&K2.has(U[0])){if(_="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:W3[W],origin:[_,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(_,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,W=[];this.tokens[$][0]="PARAM_END";while($-- >0){let _=this.tokens[$];if(_[0]===")")W.push(_);else if(_[0]==="("||_[0]==="CALL_START")if(W.length)W.pop();else if(_[0]==="(")return _[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let W=this.tokens[$??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,W)=>{if($[0]==="CALL_START")this.detectEnd(W+1,(_)=>_[0]===")"||_[0]==="CALL_END",(_)=>_[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(_)=>_[0]==="]"||_[0]==="INDEX_END",(_,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",_[0]="]";else _[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,_=null,U=(f,F)=>{return f[1]!==";"&&F3.has(f[0])&&!(f[0]==="TERMINATOR"&&_2.has(this.tokens[F+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(F)&&!this.commaInImplicitObject(F)||Y2.has(f[0])&&(this.tokens[F-1]?.newLine||this.tokens[F-1]?.[0]==="OUTDENT")},u=(f,F)=>{let Y=this.tokens[F-1]?.[0]===","?F-1:F;this.tokens.splice(Y,0,_)};this.scanTokens((f,F,Y)=>{let[A]=f;if(A==="TERMINATOR"){if(this.tokens[F+1]?.[0]==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")return Y.splice(F,1,...this.makeIndentation()),1;if(_2.has(this.tokens[F+1]?.[0]))return Y.splice(F,1),0}if(A==="CATCH")for(let X=1;X<=2;X++){let Q=this.tokens[F+X]?.[0];if(Q==="OUTDENT"||Q==="TERMINATOR"||Q==="FINALLY")return Y.splice(F+X,0,...this.makeIndentation()),2+X}if((A==="->"||A==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[W,_]=this.makeIndentation(),Y.splice(F+1,0,W,_),1;if(F2.has(A)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(A==="ELSE"&&this.tokens[F+1]?.[0]==="IF")&&!(A==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")){if($=A,[W,_]=this.makeIndentation(),A==="THEN")W.fromThen=!0;if(Y.splice(F+1,0,W),this.detectEnd(F+2,U,u),A==="THEN")Y.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!F2.has(this.tokens[u-1]?.[0])},_=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,u)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return $=U,this.detectEnd(u+1,W,_),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((_,U,u)=>{let[f]=_,F=u[U-1]||[],Y=u[U+1]||[],[A]=F,[X]=Y,Q=U,R=(w)=>U-Q+w,H=()=>$[$.length-1],Z=(w)=>w?.[2]?.ours,M=()=>Z(H())&&H()?.[0]==="(",J=()=>Z(H())&&H()?.[0]==="{",K=(w)=>{$.push(["(",w,{ours:!0}]),u.splice(w,0,x("CALL_START","("))},D=()=>{$.pop(),u.splice(U,0,x("CALL_END",")")),U+=1},O=(w,q={})=>{$.push(["{",w,{sameLine:!0,startsLine:q.startsLine??!0,ours:!0}]);let I=x("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(w,0,I)},G=(w)=>{w=w??U,$.pop(),u.splice(w,0,x("}","}")),U+=1};if((M()||J())&&_3.has(f))return $.push(["CONTROL",U,{ours:!0}]),R(1);if(f==="INDENT"&&Z(H())){if(A!=="=>"&&A!=="->"&&A!=="["&&A!=="("&&A!==","&&A!=="{"&&A!=="ELSE"&&A!=="=")while(M()||J()&&A!==":")if(M())D();else G();if(H()?.[2]?.ours&&H()[0]==="CONTROL")$.pop();return $.push([f,U]),R(1)}if(o.has(f))return $.push([f,U]),R(1);if(m.has(f)){while(Z(H()))if(M())D();else if(J())G();else $.pop();$.pop()}if(C1.has(f)&&_.spaced&&(D1.has(X)||X==="..."&&D1.has(u[U+2]?.[0])||f3.has(X)&&!Y.spaced&&!Y.newLine)&&!((f==="]"||f==="}")&&(X==="->"||X==="=>")))return K(U+1),R(2);if(C1.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 K(U+1),$.push(["INDENT",U+2]),R(3);if(f==="SPACE?")W=!0;if(f===":"){if(W)return W=!1,R(1);let w=m.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")w=U-2;let q=w<=0||_1.has(this.tokens[w-1]?.[0])||this.tokens[w-1]?.newLine;if(H()){let[I,B]=H(),N=$[$.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(q||this.tokens[w-1]?.[0]===","||this.tokens[w-1]?.[0]==="{"||this.tokens[w]?.[0]==="{"))return R(1)}return O(w,{startsLine:!!q}),R(2)}if(_1.has(f))for(let w=$.length-1;w>=0;w--){if(!Z($[w]))break;if($[w][0]==="{")$[w][2].sameLine=!1}let z=A==="OUTDENT"||F.newLine,E=f==="||"||f==="&&",P=!1;if(E){let w=U+1,q=u[w]?.[0];if(q==="("||q==="["||q==="{"){for(let I=1;++w<u.length&&I>0;)if(q=u[w][0],q==="("||q==="["||q==="{")I++;else if(q===")"||q==="]"||q==="}")I--}else if(q&&q!=="TERMINATOR"&&q!=="OUTDENT"&&q!==",")w++;P=u[w]?.[0]===","}if($3.has(f)&&!P||Y2.has(f)&&z)while(Z(H())){let[w,,{sameLine:q,startsLine:I}]=H();if(M()&&A!==",")D();else if(J()&&!E&&q&&f!=="TERMINATOR"&&A!==":")G();else if(J()&&f==="TERMINATOR"&&A!==","&&!(I&&this.looksObjectish(U+1)))G();else if(H()?.[2]?.ours&&H()[0]==="CONTROL"&&u[H()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&J()&&(X!=="TERMINATOR"||!this.looksObjectish(U+2))){let w=X==="OUTDENT"?1:0;while(J())G(U+w)}return R(1)})}addImplicitCallCommas(){let $=0,W=0,_=this.tokens;while(W<_.length){let U=_[W][0],u=W>0?_[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&U3.has(u))_.splice(W,0,x(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,_,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return _.call(this,f,$);if(o.has(f[0]))u++;if(m.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return _.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let _=0;for(let U=W+1;U<$.length;U++){let u=$[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")_++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")_--;if(_<0||_===0&&u==="TERMINATOR"){$.splice(U,0,x("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,x("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let _=$-1;_>=0;_--){let U=this.tokens[_][0];if(m.has(U)){W++;continue}if(o.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(C1.has(U)&&this.tokens[_].spaced){let u=this.tokens[_+1]?.[0];return D1.has(u)||u==="..."&&D1.has(this.tokens[_+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let _=$-1;_>=0;_--){let U=this.tokens[_][0];if(m.has(U)){W++;continue}if(o.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&_>0&&this.tokens[_-1][0]==="PROPERTY")return this.looksObjectish($+1);if(_1.has(U))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(o.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(_)=>m.has(_[0]),(_,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let _=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&_.has(u))return!0;if(m.has(u))U.push(u);if(o.has(u)&&U.length)U.pop();if(!U.length&&(o.has(u)&&!this.tokens[$]?.generated||_1.has(u)))break;$--}return!1}makeIndentation($){let W=x("INDENT",2),_=x("OUTDENT",2);if($)W.generated=_.generated=!0,W.origin=_.origin=$;else W.explicit=_.explicit=!0;return[W,_]}}u2(n);var j3={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,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,DEFINED:195,"--":196,"++":197,MATH:198,"**":199,SHIFT:200,COMPARE:201,"&":202,"^":203,"|":204,"||":205,"??":206,"&&":207,"!?":208,PIPE:209,RELATION:210,"SPACE?":211,COMPOUND_ASSIGN:212},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"DEFINED",196:"--",197:"++",198:"MATH",199:"**",200:"SHIFT",201:"COMPARE",202:"&",203:"^",204:"|",205:"||",206:"??",207:"&&",208:"!?",209:"PIPE",210:"RELATION",211:"SPACE?",212:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,55,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,133,105,106,-13,-13,-13,-13,136,137,138,-13,139,-13,-13,-13,-13,-13,-13,-13,134,-13,140,-13,-13,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,141,142,143,-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,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,148,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,149,-173,-173,150,151,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,160,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,159,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,163,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,166,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,167,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,173,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,174,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,175,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,176,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,177,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,181,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,182,183,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,184,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,186,185,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,187,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,188,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,161,189,2,66,10,161,190,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-263,-263,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,194,153,104,155,156,154,99,191,192,83,157,196,193,195,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,197,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,198,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,90,1,5,8,1,21,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,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,161,-305,102,103,-305,199,201,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,168,-305,169,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,200,172,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,202,2,66,10,161,203,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,204,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,205,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,206,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,207,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,168,-224,169,90,91,86,88,89,82,-224,69,64,65,208,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,209,104,2,55,1,210,104,6,15,19,89,2,1,1,212,211,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,213,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,214,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,168,-221,169,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,88,1,5,215,219,104,105,106,218,216,217,220,60,14,1,3,1,1,1,6,1,4,1,3,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,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,10,4,4,178,179,227,228,229,230,222,223,224,225,233,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,226,104,105,106,102,103,53,234,72,73,93,221,83,87,84,85,66,168,169,90,91,86,88,89,82,61,67,62,231,232,172,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,-49,-49,-49,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,235,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,236,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,237,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,250,251,249,140,2,109,11,252,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,55,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,253,254,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,255,1,83,256,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,257,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,258,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,259,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,260,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,262,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,261,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,263,-109,264,269,273,265,266,267,274,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,275,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,234,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,64,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,6,54,5,1,1,2,1,279,105,106,276,277,278,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,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,1,3,1,8,4,1,1,1,1,1,3,1,-5,280,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,281,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,282,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,283,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,284,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,285,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,286,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,287,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,288,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,289,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,292,164,290,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,291,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,295,164,293,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,294,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,298,164,296,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,297,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,299,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,300,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,301,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,302,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,303,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,304,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,305,306,83,157,196,307,195,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,309,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,310,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-377,-377,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,2,109,11,311,140,2,57,1,312,254,2,57,1,313,254,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,314,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,319,77,78,79,80,81,100,101,92,104,105,106,315,102,103,317,53,52,72,73,93,316,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,85,322,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,323,42,43,90,91,247,324,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,328,254,2,57,1,329,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,330,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,331,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,333,332,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,334,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,336,335,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,337,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,339,338,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,340,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,342,341,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,343,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,345,344,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,346,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,347,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,350,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,153,104,-181,-181,-181,155,156,154,99,158,157,-181,-181,351,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,253,254,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,353,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,352,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,354,-173,-173,150,151,2,66,10,161,159,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,5,15,108,2,1,1,212,168,169,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,118,-378,120,-378,-378,-378,2,81,8,355,99,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-86,-86,-380,-380,-380,-380,-86,-86,-86,-86,-86,-86,-86,-86,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-86,-380,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-86,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,10,54,5,1,23,1,1,3,21,11,11,133,105,106,136,137,138,139,134,140,135,3,83,1,1,141,142,143,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-86,-86,-381,-381,-381,-381,-86,-86,-86,-86,-86,-86,-86,-86,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-86,-381,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-86,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-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,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,358,356,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,357,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,359,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,161,360,361,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,5,1,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,362,363,364,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,369,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,370,158,157,196,195,3,66,10,88,161,371,372,5,72,22,69,2,2,373,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,374,-301,-301,-301,-301,23,66,26,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-306,-306,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,379,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,60,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,161,-309,-309,-86,-86,-86,380,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,381,-309,-309,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,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,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,3,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-321,-321,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,387,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,389,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,66,10,44,161,391,390,2,66,10,161,392,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-338,-338,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,268,100,101,408,104,271,254,105,106,407,-109,-109,272,263,404,264,269,273,265,266,267,274,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,411,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,142,413,57,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,-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,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,321,416,320,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,417,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,424,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,1,1,3,2,9,3,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,1,3,1,8,4,1,1,1,1,1,3,1,-202,426,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,2,57,1,427,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,428,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,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,2,57,1,430,254,2,57,1,431,254,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,432,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,434,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,435,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-264,-264,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,161,-265,-265,436,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,441,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,57,1,45,253,254,442,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,446,448,447,270,104,271,254,445,272,99,443,87,444,449,450,86,82,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-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,6,54,5,1,2,1,1,279,105,106,452,453,278,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,110,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,110,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-386,-386,125,126,-386,-386,-386,-386,-386,-386,-386,-386,-386,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-387,-387,125,126,-387,-387,-387,-387,-387,-387,-387,-387,-387,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,-389,-389,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,-390,-390,-390,-390,118,-390,120,-390,122,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,114,-391,-391,-391,118,-391,120,-391,122,-391,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,115,-392,-392,118,-392,120,-392,122,-392,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-393,-393,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-394,-394,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-400,-400,125,126,-400,-400,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,-400,118,119,120,-400,122,-400,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,127,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,124,125,126,96,97,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-399,-399,125,126,-399,-399,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,-399,118,-399,120,-399,122,-399,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,127,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,124,125,126,96,97,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,-403,122,-403,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,-404,-404,-404,-404,-404,118,-404,120,-404,-404,-404,23,91,1,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,463,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,464,158,157,196,195,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,465,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,468,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,86,470,1,86,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,472,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-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,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,474,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,480,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,481,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,482,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,483,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,484,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,485,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,486,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,487,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,488,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-82,-82,3,125,1,1,489,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,153,104,-218,-218,155,156,154,99,-218,158,-218,157,152,-218,490,151,2,6,60,491,492,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,493,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,494,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,495,1,67,496,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,497,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,498,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,499,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,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,500,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,161,501,6,55,1,10,10,5,8,502,104,161,504,503,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,505,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,506,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,507,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,508,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,509,1,165,510,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,511,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,153,104,155,156,154,99,158,157,196,512,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,513,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,155,1,1,514,377,378,4,67,78,11,1,515,516,517,378,3,67,78,12,-252,-252,-252,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,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,1,3,1,8,4,1,1,1,1,1,3,1,519,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,518,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,161,-307,-307,520,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-310,-310,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,521,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,2,6,61,523,522,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,1,67,524,1,67,525,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,526,-173,-173,150,151,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-313,-313,1,67,527,3,54,5,1,528,105,106,3,89,89,5,530,529,220,3,54,5,1,531,105,106,1,142,532,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,533,-217,-217,-217,5,6,60,1,5,24,-329,-329,-329,-329,-329,6,55,1,10,113,1,2,401,104,400,535,399,402,6,6,60,1,5,24,85,-334,-334,-334,-334,-334,536,6,6,60,1,5,24,85,-336,-336,-336,-336,-336,537,2,55,1,538,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,539,-340,-340,-340,-340,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,540,-217,-217,-217,5,6,60,1,5,24,-358,-358,-358,-358,-358,6,55,1,10,116,3,2,543,104,407,409,542,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-363,-363,-363,-363,-120,-120,-120,-120,-120,-363,-120,544,6,6,60,1,5,24,85,-366,-366,-366,-366,-366,545,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,547,546,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,548,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,127,-353,-353,-353,-353,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,549,99,3,54,5,1,550,105,106,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,551,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,552,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,554,553,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,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,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,244,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,556,555,245,241,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,557,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,558,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,559,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,560,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,561,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,562,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,563,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,564,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,30,567,568,566,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,268,100,101,270,104,271,254,105,106,-218,-218,272,570,-218,569,273,265,266,-218,267,274,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,571,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,572,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,573,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,574,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,575,140,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,577,578,579,-128,576,140,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,250,251,580,140,2,109,11,581,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,582,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,583,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,584,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,586,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,585,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,587,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,588,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,589,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,590,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,591,1,165,592,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,593,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,594,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,595,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,596,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,597,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,598,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,599,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,56,601,602,600,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,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,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,603,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,604,-217,-217,-217,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,605,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,606,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,610,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,609,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,153,104,155,156,154,99,158,157,152,611,151,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,612,-173,-173,150,151,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,613,90,91,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-379,-379,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,614,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,125,126,-408,-408,-408,-408,-408,-408,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,615,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,616,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,66,10,161,617,2,66,10,161,618,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,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,26,66,10,16,5,51,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,619,127,620,124,125,126,96,97,621,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,622,127,623,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,624,127,625,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,626,127,627,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,628,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,629,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,630,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,631,632,517,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,66,10,161,633,3,67,78,12,-253,-253,-253,3,66,6,4,161,635,634,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-308,-308,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,161,-311,-311,636,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-314,-314,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,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,3,1,-317,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-317,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,637,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,349,-217,-217,638,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,1,142,639,6,55,1,10,113,1,2,401,104,400,640,399,402,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,5,1,641,105,106,3,6,60,30,643,644,642,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,645,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,646,-217,-217,-217,2,55,1,647,104,2,55,1,648,104,1,142,-339,3,54,5,1,649,105,106,3,6,60,30,651,652,650,10,6,49,1,10,1,29,8,18,60,5,-218,543,104,-218,-218,-218,-218,-218,409,653,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,654,-217,-217,-217,6,6,60,1,5,24,85,-363,-363,-363,-363,-363,544,3,55,1,126,655,104,656,2,55,1,657,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,658,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,659,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,660,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,1,138,661,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,662,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,663,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,244,53,52,72,73,93,99,59,83,-153,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,664,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,554,665,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,666,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,667,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-259,-259,-259,-259,-259,-259,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,668,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,669,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,268,100,101,270,104,271,254,105,106,272,570,670,273,265,266,267,274,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,570,-109,671,269,273,265,266,267,274,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,672,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,673,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,674,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,11,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,11,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,675,254,2,57,1,676,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,677,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,678,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,679,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,125,126,-405,-405,-405,-405,-405,-405,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,680,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,681,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,682,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,683,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,684,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,685,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,686,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,687,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-300,-300,-300,-300,-300,-300,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,688,1,86,689,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,690,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,248,84,85,691,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,692,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,50,-195,-195,-195,-195,-195,3,6,60,1,601,602,693,1,86,694,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,695,-217,-217,-217,2,66,10,161,609,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,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,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,696,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,697,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,698,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-276,-276,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,699,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,700,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,701,127,702,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,703,127,704,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,2,66,10,161,705,1,67,706,4,6,61,78,12,707,-254,-254,-254,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,708,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-312,-312,2,6,61,-316,-316,2,66,10,161,709,3,54,5,1,710,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,711,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,712,4,55,1,124,2,401,104,713,402,6,55,1,10,113,1,2,401,104,400,714,399,402,5,6,60,1,5,24,-330,-330,-330,-330,-330,3,6,60,1,643,644,715,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-337,-337,-337,-337,-337,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,716,-341,-341,-341,-341,4,55,1,126,5,543,104,409,717,6,55,1,10,116,3,2,543,104,407,409,718,406,5,6,60,1,5,24,-359,-359,-359,-359,-359,3,6,60,1,651,652,719,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-365,-365,-365,-365,-365,5,6,60,1,5,24,-367,-367,-367,-367,-367,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,127,-347,-347,-347,-347,125,126,-347,-347,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,720,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,721,-217,5,6,60,1,5,32,-147,-147,-147,-147,-147,5,6,60,1,5,32,-148,-148,-148,-148,-148,1,86,722,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,723,724,83,157,196,307,195,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,725,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,726,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,727,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,728,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,11,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,11,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,730,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,65,731,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,732,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,733,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,734,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,735,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,736,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,737,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,738,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,739,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,740,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,741,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,491,492,742,25,66,10,16,56,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,743,127,124,125,126,96,97,744,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,745,127,746,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,747,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,748,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,749,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-274,-274,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,750,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,751,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,752,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,3,6,60,30,643,644,753,3,54,5,1,754,105,106,5,6,60,1,5,24,-331,-331,-331,-331,-331,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,755,-217,-217,-217,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,54,5,1,756,105,106,5,6,60,1,5,24,-360,-360,-360,-360,-360,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,757,-217,-217,-217,5,6,60,1,5,24,-361,-361,-361,-361,-361,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,66,1,554,758,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,4,94,69,2,2,759,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,760,158,157,196,195,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,567,568,761,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,762,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,763,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,764,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-298,-298,125,126,-298,-298,-298,-298,-298,-298,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,765,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,766,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,601,602,767,6,6,60,1,5,50,2,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,768,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,769,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-273,-273,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-277,-277,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,770,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,771,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,1,142,772,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,1,643,644,773,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,3,6,60,1,651,652,774,5,6,60,1,5,32,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,775,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,776,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,777,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,778,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,779,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,780,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,781,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,3,54,5,1,782,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,5,6,60,1,5,24,-362,-362,-362,-362,-362,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,785,-289,-289,-289,-289,783,-289,784,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,786,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,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,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,96,787,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,788,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,785,-291,-291,-291,-291,789,-291,790,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,785,-290,-290,-290,-290,791,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,792,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,793,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,96,794,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,785,-292,-292,-292,-292,795,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,796,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],_=0,U,u,f,F;while(_<$.length){U=$[_++],u={},f=0,F=[];while(U--)f+=$[_++],F.push(f);for(f of F)u[f]=$[_++];W.push(u)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,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,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,W,_,U)=>{let u=W,f=W.length-1;switch($){case 1:return["program"];case 2:return["program",...u[f]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 329:case 358:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 316:case 330:case 359:return[...u[f-2],u[f]];case 5:case 60:case 157:case 317:return u[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 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 263:case 301:case 318:case 319:case 320:case 334:case 336:case 338:case 363:case 366:return u[f];case 47:return"undefined";case 48:return"null";case 57:return["str",...u[f-1]];case 59:case 151:case 155:case 253:return[...u[f-1],u[f]];case 61:case 193:case 197:case 332:case 361:return u[f-2];case 62:return"";case 65:return["regex",u[f-1]];case 66:return["regex-index",u[f-2],u[f]];case 67:return["regex-index",u[f],null];case 68:return["=",u[f-2],u[f]];case 69:return["=",u[f-3],u[f]];case 70:return["=",u[f-4],u[f-1]];case 71:return["state",u[f-2],u[f]];case 72:return["state",u[f-3],u[f]];case 73:return["state",u[f-4],u[f-1]];case 74:case 76:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 77:return["readonly",u[f-2],u[f]];case 78:return["readonly",u[f-3],u[f]];case 79:return["readonly",u[f-4],u[f-1]];case 80:case 82:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 83:case 84:case 85:return["effect",null,u[f]];case 91:case 100:case 138:return[".",u[f-2],u[f]];case 92:case 101:case 139:return["?.",u[f-2],u[f]];case 93:case 95:case 102:case 140:return["[]",u[f-3],u[f-1]];case 94:case 96:case 103:case 141:return["[]",u[f-5],u[f-2]];case 97:return[u[f-1][0],u[f-3],...u[f-1].slice(1)];case 98:return["optindex",u[f-4],u[f-1]];case 99:return["optindex",u[f-6],u[f-2]];case 104:return["object-comprehension",u[f-8],u[f-6],[["for-of",u[f-4],u[f-2],!1]],[]];case 105:return["object-comprehension",u[f-10],u[f-8],[["for-of",u[f-6],u[f-4],!1]],[u[f-2]]];case 106:return["object-comprehension",u[f-9],u[f-7],[["for-of",u[f-4],u[f-2],!0]],[]];case 107:return["object-comprehension",u[f-11],u[f-9],[["for-of",u[f-6],u[f-4],!0]],[u[f-2]]];case 108:return["object",...u[f-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 331:case 360:return[...u[f-3],u[f]];case 113:case 177:case 198:case 333:case 362:return[...u[f-5],...u[f-2]];case 114:return[u[f],u[f],null];case 116:return[u[f-2],u[f],":"];case 117:return[u[f-4],u[f-1],":"];case 118:return[u[f-2],u[f],"="];case 119:return[u[f-4],u[f-1],"="];case 124:return["dynamicKey",u[f-1]];case 125:return["[]","this",u[f-1]];case 127:case 128:case 186:return["...",u[f]];case 134:case 190:return["super",...u[f]];case 135:case 136:case 137:case 188:case 191:return[u[f-1],...u[f]];case 142:return["array"];case 143:return["array",...u[f-1]];case 144:return["array",...u[f-2],...u[f-1]];case 146:return[...u[f-2],...u[f]];case 147:return[...u[f-3],...u[f]];case 148:return[...u[f-2],...u[f-1]];case 149:return[...u[f-5],...u[f-4],...u[f-2],...u[f-1]];case 153:return[...u[f]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[u[f-2],u[f-3],u[f-1]];case 161:case 386:case 388:case 389:case 404:case 406:return[u[f-1],u[f-2],u[f]];case 162:return[u[f],u[f-1],null];case 163:return[u[f-1],null,u[f]];case 164:return[u[f],null,null];case 165:return["def",u[f-4],u[f-2],u[f]];case 166:return["def",u[f-1],[],u[f]];case 167:case 169:return[u[f-1],u[f-3],u[f]];case 168:case 170:return[u[f-1],[],u[f]];case 179:case 302:return["default",u[f-2],u[f]];case 180:return["rest",u[f]];case 181:return["expansion"];case 187:return["tagged-template",u[f-1],u[f]];case 189:return["optcall",u[f-2],...u[f]];case 205:case 206:return"this";case 207:return[".","this",u[f]];case 208:return[".","super",u[f]];case 209:return["[]","super",u[f-1]];case 210:return["[]","super",u[f-2]];case 211:return[".","new",u[f]];case 212:return[".","import",u[f]];case 213:return["block"];case 214:return["block",...u[f-1]];case 215:return u[f-1].length===1?u[f-1][0]:["block",...u[f-1]];case 216:return u[f-2].length===1?u[f-2][0]:["block",...u[f-2]];case 219:return["return",u[f]];case 220:return["return",u[f-1]];case 221:return["return"];case 222:return["throw",u[f]];case 223:return["throw",u[f-1]];case 224:return["yield"];case 225:return["yield",u[f]];case 226:return["yield",u[f-1]];case 227:return["yield-from",u[f]];case 228:return["if",u[f-1],u[f]];case 229:return u[f-4].length===3?["if",u[f-4][1],u[f-4][2],["if",u[f-1],u[f]]]:[...u[f-4],["if",u[f-1],u[f]]];case 230:return["if",["!",u[f-1]],u[f]];case 231:return["if",["!",u[f-3]],u[f-2],u[f]];case 233:return u[f-2].length===3?["if",u[f-2][1],u[f-2][2],u[f]]:[...u[f-2],u[f]];case 235:case 236:return["if",u[f],[u[f-2]]];case 237:return["?:",u[f-4],u[f-6],u[f-1]];case 238:return["?:",u[f-2],u[f-4],u[f]];case 239:case 240:return["if",["!",u[f]],[u[f-2]]];case 241:return["try",u[f]];case 242:return["try",u[f-1],u[f]];case 243:return["try",u[f-2],u[f]];case 244:return["try",u[f-3],u[f-2],u[f]];case 245:case 246:case 368:case 371:case 373:return[u[f-1],u[f]];case 247:return[null,u[f]];case 248:return["switch",u[f-3],u[f-1],null];case 249:return["switch",u[f-5],u[f-3],u[f-1]];case 250:return["switch",null,u[f-1],null];case 251:return["switch",null,u[f-3],u[f-1]];case 254:return["when",u[f-1],u[f]];case 255:return["when",u[f-2],u[f-1]];case 256:return["while",u[f]];case 257:return["while",u[f-2],u[f]];case 258:return["while",["!",u[f]]];case 259:return["while",["!",u[f-2]],u[f]];case 260:return u[f-1].length===2?[u[f-1][0],u[f-1][1],u[f]]:[u[f-1][0],u[f-1][1],u[f-1][2],u[f]];case 261:case 262:return u[f].length===2?[u[f][0],u[f][1],[u[f-1]]]:[u[f][0],u[f][1],u[f][2],[u[f-1]]];case 264:return["loop",u[f]];case 265:return["loop",[u[f]]];case 266:return["loop-n",u[f-1],u[f]];case 267:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 268:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 269:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 271:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 272:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 273:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 274:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 275:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 276:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 277:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 278:case 280:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 279:case 281:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 282:return["for-in",[],u[f-1],null,null,u[f]];case 283:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 284:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 286:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 288:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 289:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 290:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 291:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 292:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 293:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 294:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 295:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 296:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 297:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 298:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 299:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 300:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 304:case 335:case 337:case 364:case 365:case 367:return[u[f-2],u[f]];case 305:return["class",null,null];case 306:return["class",null,null,u[f]];case 307:return["class",null,u[f]];case 308:return["class",null,u[f-1],u[f]];case 309:return["class",u[f],null];case 310:return["class",u[f-1],null,u[f]];case 311:return["class",u[f-2],u[f]];case 312:return["class",u[f-3],u[f-1],u[f]];case 313:return["enum",u[f-1],u[f]];case 314:return["component",null,["block",...u[f-1]]];case 321:return["render",u[f]];case 322:case 325:return["import","{}",u[f]];case 323:case 324:return["import",u[f-2],u[f]];case 326:return["import",u[f-4],u[f]];case 327:return["import",[u[f-4],u[f-2]],u[f]];case 328:return["import",[u[f-7],u[f-4]],u[f]];case 339:return["*",u[f]];case 340:return["export","{}"];case 341:return["export",u[f-2]];case 342:case 343:case 344:case 345:case 349:case 350:case 351:case 352:return["export",u[f]];case 346:return["export",["=",u[f-2],u[f]]];case 347:return["export",["=",u[f-3],u[f]]];case 348:return["export",["=",u[f-4],u[f-1]]];case 353:return["export-default",u[f]];case 354:return["export-default",u[f-1]];case 355:return["export-all",u[f]];case 356:return["export-from","{}",u[f]];case 357:return["export-from",u[f-4],u[f]];case 369:case 370:case 372:case 409:return["do-iife",u[f]];case 374:return["-",u[f]];case 375:return["+",u[f]];case 376:return["?",u[f-1]];case 377:return["defined",u[f-1]];case 378:return["await",u[f]];case 379:return["await",u[f-1]];case 380:return["--",u[f],!1];case 381:return["++",u[f],!1];case 382:return["--",u[f-1],!0];case 383:return["++",u[f-1],!0];case 384:return["+",u[f-2],u[f]];case 385:return["-",u[f-2],u[f]];case 387:return["**",u[f-2],u[f]];case 390:return["&",u[f-2],u[f]];case 391:return["^",u[f-2],u[f]];case 392:return["|",u[f-2],u[f]];case 393:case 394:case 395:case 396:case 397:case 398:return["control",u[f-1],u[f-2],u[f]];case 399:return["&&",u[f-2],u[f]];case 400:return["||",u[f-2],u[f]];case 401:return["??",u[f-2],u[f]];case 402:return["!?",u[f-2],u[f]];case 403:return["|>",u[f-2],u[f]];case 405:return["?:",u[f-4],u[f-2],u[f]];case 407:return[u[f-3],u[f-4],u[f-1]];case 408:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let _,U,u,f,F,Y,A;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,_=W.loc?.c||0,A=W.token?` (token: ${W.token})`:"",Y=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${_}`,F=`Parse error at ${f}${A}${Y}: ${$}`,U=Error(F),U.hash=W,U},parse($){let W,_,U,u,f,F,Y,A,X,Q,R,H,Z,M,J,K,D,O,G,z,E,P,w,q,I,B;[z,B,Q]=[[0],[null],[]],[Z,I,w,P,K]=[this.parseTable,"",0,0,0],[_,W]=[2,1],A=Object.create(this.lexer),O={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let L=this.ctx[N];O.ctx[N]=L}if(A.setInput($,O.ctx),[O.ctx.lexer,O.ctx.parser]=[A,this],A.loc==null)A.loc={};q=A.loc,Q.push(q),this.parseError=typeof O.ctx.parseError==="function"?O.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let N;if(N=A.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=M=G=U=J=H=F=R=f=null,D={};while(!0){if(G=z[z.length-1],E==null)E=Y();if(U=Z[G]?.[E],U==null){if(u="",!K)f=(()=>{let N=[];for(let L in Z[G]){if(!Object.hasOwn(Z[G],L))continue;if(this.tokenNames[L]&&L>_)N.push(`'${this.tokenNames[L]}'`)}return N})();throw u=(()=>{if(A.showPosition)return`Parse error on line ${w+1}:
|
|
12
|
-
${
|
|
13
|
-
Expecting ${f.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${w+1}: Unexpected ${E===W?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:A.match,token:this.tokenNames[E]||E,line:A.line,loc:q,expected:f})})(),Error(u)}if(U>0)if(z.push(E,U),B.push(A.text),Q.push(A.loc),E=null,!M){if([P,I,w,q]=[A.len,A.text,A.line,A.loc],K>0)K--}else[E,M]=[M,null];else if(U<0){if(F=this.ruleTable[-U*2+1],D.$=B[B.length-F],X=Q[Q.length-(F||1)],D._$={r:X.r,c:X.c},J=this.ruleActions.call(D,-U,B,Q,O.ctx),J!=null)D.$=J;if(Array.isArray(D.$))D.$.loc=D._$;if(F)z.length-=F*2,B.length-=F,Q.length-=F;z.push(this.ruleTable[-U*2]),B.push(D.$),Q.push(D._$),R=Z[z[z.length-2]][z[z.length-1]],z.push(R)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},C3=($={})=>{let W=Object.create(j3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},a=C3();var s3=a.parse.bind(a);var y3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),F1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),R2=new Set([...y3,...F1]);var w2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),b3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function c3($){for(let W of $){if(!Array.isArray(W))continue;let _=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(_==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function O1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function b1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function M2($,W,_){let U=_($);if(!/_frag\d+$/.test(U))return null;let u=[],f=new RegExp(`^${U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let F of W){let Y=_(F).match(f);if(Y)u.push(Y[1])}return u.length>0?u:null}function D2($,W){W.prototype.rewriteRender=function(){let U=(Z,M,J)=>{let K=[Z,M];if(K.pre=0,K.data=null,K.loc=J?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,J)K.origin=J;return K},u=!1,f=0,F=0,Y=[],A=(Z)=>{let M=Z.split("#")[0];return R2.has(M)},X=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return A(Z)||X(Z)},R=(Z,M,J,K)=>{let D=1,O=M;while(O>=0&&D>0){let G=Z[O][0];if(G===J)D++;else if(G===K)D--;if(D>0)O--}return O},H=(Z,M)=>{let J=M;while(J>0){let K=Z[J-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let D=Z[J][0];if(D==="CALL_END"||D===")"){J=R(Z,J-1,D,D==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){J=R(Z,J-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){J=R(Z,J-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){J=R(Z,J-2,"STRING_END","STRING_START");continue}J--}return Z[J]&&Z[J][0]==="IDENTIFIER"&&Q(Z[J][1])};this.scanTokens(function(Z,M,J){let K=Z[0],D=M<J.length-1?J[M+1]:null;if(K==="RENDER")return u=!0,f=F+1,1;if(K==="INDENT")return F++,1;if(K==="OUTDENT"){F--;let O=0;while(Y.length>0&&Y[Y.length-1]>F){let G=U("CALL_END",")",Z);J.splice(M+1+O,0,G),Y.pop(),O++}if(u&&F<f)u=!1;return 1+O}if(!u)return 1;if(K==="IDENTIFIER"&&!Z.spaced){let O=[Z[1]],G=M+1;while(G+1<J.length){let z=J[G],E=J[G+1];if(z[0]==="-"&&!z.spaced&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")){if(O.push(E[1]),G+=2,E[0]==="PROPERTY")break}else break}if(O.length>1&&G>M+1&&J[G-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${O.join("-")}"`,J.splice(M+1,G-M-1),1}if(K==="."){let O=M>0?J[M-1]:null,G=O?O[0]:null;if(G==="INDENT"||G==="TERMINATOR"){if(D&&D[0]==="PROPERTY"){let z=U("IDENTIFIER","div",Z);return J.splice(M,0,z),2}if(!D||D[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let O=J[M+1],G=J[M+2];if(O&&O[0]==="#"&&G&&(G[0]==="PROPERTY"||G[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+G[1],G.spaced)Z.spaced=!0;return J.splice(M+1,2),0}}if(K==="BIND"){let O=M>0?J[M-1]:null,G=J[M+1];if(O&&(O[0]==="IDENTIFIER"||O[0]==="PROPERTY")&&G&&G[0]==="IDENTIFIER")return O[1]=`__bind_${O[1]}__`,Z[0]=":",Z[1]=":",1}if(K==="@"){let O=M+1;if(O<J.length&&J[O][0]==="PROPERTY"){O++;while(O+1<J.length&&J[O][0]==="."&&J[O+1][0]==="PROPERTY")O+=2;if(O>M+2&&O<J.length&&J[O][0]===":"){let G=U("[","[",Z);J.splice(M,0,G);let z=U("]","]",J[O+1]);return J.splice(O+1,0,z),2}}}if(K==="."&&D&&D[0]==="("){let O=M>0?J[M-1]:null,G=O?O[0]:null,z=G==="INDENT"||G==="TERMINATOR",E=U("PROPERTY","__clsx",Z);D[0]="CALL_START";let P=1;for(let w=M+2;w<J.length&&P>0;w++)if(J[w][0]==="("||J[w][0]==="CALL_START")P++;else if(J[w][0]===")"){if(P--,P===0)J[w][0]="CALL_END"}else if(J[w][0]==="CALL_END")P--;if(z){let w=U("IDENTIFIER","div",Z);return J.splice(M,0,w),J.splice(M+2,0,E),3}else if(G===":")return J[M]=U("IDENTIFIER","__clsx",Z),1;else return J.splice(M+1,0,E),2}if(D&&D[0]==="INDENT"){if(D.fromThen){let P=0;for(let w=M;w>=0;w--){let q=J[w][0];if(q==="INTERPOLATION_END"||q==="STRING_END")P++;if(q==="INTERPOLATION_START"||q==="STRING_START")P--;if(P<0)return 1}}if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let O=!1,G=M>0?J[M-1][0]:null,z=G==="IF"||G==="UNLESS"||G==="WHILE"||G==="UNTIL"||G==="WHEN",E=!1;if(K==="CALL_END"){let P=1;for(let w=M-1;w>=0&&P>0;w--)if(J[w][0]==="CALL_END")P++;else if(J[w][0]==="CALL_START"){if(P--,P===0&&w>0&&J[w-1][0]==="PROPERTY"&&J[w-1][1]==="__clsx")E=!0}}if(E)O=!0;else if(K==="IDENTIFIER"&&Q(Z[1])&&!z)O=!0;else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="IDENTIFIER"||K==="NUMBER"||K==="BOOL"||K==="CALL_END"||K===")")O=H(J,M);else if(K==="IDENTIFIER"&&M>1&&J[M-1][0]==="..."){if(H(J,M)){let P=U(",",",",Z),w=U("->","->",Z);return w.newLine=!0,J.splice(M+1,0,P,w),3}}if(O){let P=K==="PROPERTY"&&M>0&&(J[M-1][0]==="."||J[M-1][0]==="#");if(E){let w=U("CALL_START","(",Z),q=U("->","->",Z);return q.newLine=!0,J.splice(M+1,0,w,q),Y.push(F+1),3}else if(K==="IDENTIFIER"&&Q(Z[1])||P){let w=U("CALL_START","(",Z),q=U("->","->",Z);return q.newLine=!0,J.splice(M+1,0,w,q),Y.push(F+1),3}else{let w=U(",",",",Z),q=U("->","->",Z);return q.newLine=!0,J.splice(M+1,0,w,q),3}}}if(K==="IDENTIFIER"&&X(Z[1])&&D&&(D[0]==="OUTDENT"||D[0]==="TERMINATOR"))return J.splice(M+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let _=$.prototype;_.localizeVar=function(U){let u=U.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return u=u.replace(/\bthis\b/g,"ctx"),u},_.isHtmlTag=function(U){let u=U.split("#")[0];return R2.has(u.toLowerCase())},_.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},_.collectTemplateClasses=function(U){let u=[],f=U;while(this.is(f,".")){let X=f[2];if(typeof X==="string"||X instanceof String)u.unshift(X.valueOf());f=f[1]}let F=typeof f==="string"?f:f instanceof String?f.valueOf():null;if(F===null)return{tag:null,classes:u,id:void 0};let[Y,A]=F.split("#");if(!Y)Y="div";return{tag:Y,classes:u,id:A}},_.transformComponentMembers=function(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return[".","this",U];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let u=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(u))return[".",U,"value"];return U}if(U[0]==="."||U[0]==="?.")return[U[0],this.transformComponentMembers(U[1]),U[2]];if(U[0]==="->")return["=>",...U.slice(1).map((u)=>this.transformComponentMembers(u))];if(U[0]==="object")return["object",...U.slice(1).map((u)=>{if(Array.isArray(u)&&u.length>=2){let f=u[0],F=Array.isArray(f)?this.transformComponentMembers(f):f,Y=this.transformComponentMembers(u[1]);return[F,Y,u[2]]}return this.transformComponentMembers(u)})];return U.map((u)=>this.transformComponentMembers(u))},_.generateComponent=function(U,u,f,F){let[,Y]=u;this.usesTemplates=!0,this.usesReactivity=!0;let A=this.is(Y,"block")?Y.slice(1):[],X=[],Q=[],R=[],H=[],Z=[],M=[],J=null,K=new Set,D=new Set;for(let P of A){if(!Array.isArray(P))continue;let[w]=P;if(w==="state"){let q=O1(P[1]);if(q)X.push({name:q,value:P[2],isPublic:b1(P[1])}),K.add(q),D.add(q)}else if(w==="computed"){let q=O1(P[1]);if(q)Q.push({name:q,expr:P[2]}),K.add(q),D.add(q)}else if(w==="readonly"){let q=O1(P[1]);if(q)R.push({name:q,value:P[2],isPublic:b1(P[1])}),K.add(q)}else if(w==="="){let q=O1(P[1]);if(q)if(w2.has(q))Z.push({name:q,value:P[2]});else{let I=P[2];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>"))H.push({name:q,func:I}),K.add(q);else X.push({name:q,value:I,isPublic:b1(P[1])}),K.add(q),D.add(q)}}else if(w==="effect")M.push(P);else if(w==="render")J=P;else if(w==="object")for(let q=1;q<P.length;q++){let I=P[q];if(!Array.isArray(I))continue;let[B,N]=I;if(typeof B==="string"&&w2.has(B))Z.push({name:B,value:N});else if(typeof B==="string")H.push({name:B,func:N}),K.add(B)}}let O=this.componentMembers,G=this.reactiveMembers;this.componentMembers=K,this.reactiveMembers=D;let z=[],E="";z.push("class extends __Component {"),z.push(" _init(props) {");for(let{name:P,value:w,isPublic:q}of R){let I=this.generateInComponent(w,"value");z.push(q?` this.${P} = props.${P} ?? ${I};`:` this.${P} = ${I};`)}for(let{name:P,value:w,isPublic:q}of X){let I=this.generateInComponent(w,"value");z.push(q?` this.${P} = __state(props.${P} ?? ${I});`:` this.${P} = __state(${I});`)}for(let{name:P,expr:w}of Q)if(this.is(w,"block")&&w.length>2){let q=this.transformComponentMembers(w),I=this.generateFunctionBody(q);z.push(` this.${P} = __computed(() => ${I});`)}else{let q=this.generateInComponent(w,"value");z.push(` this.${P} = __computed(() => ${q});`)}for(let P of M){let w=P[2],q=this.containsAwait(w)?"async ":"";if(this.is(w,"block")&&w.length>2){let I=this.transformComponentMembers(w),B=this.generateFunctionBody(I,[],!0);z.push(` __effect(${q}() => ${B});`)}else{let I=this.generateInComponent(w,"value");z.push(` __effect(${q}() => { ${I}; });`)}}z.push(" }");for(let{name:P,func:w}of H)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,q,I]=w,B=Array.isArray(q)?q.map((V)=>this.formatParam(V)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(I):I,L=this.containsAwait(I),T=this.generateFunctionBody(N,q||[]);z.push(` ${L?"async ":""}${P}(${B}) ${T}`)}for(let{name:P,value:w}of Z)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,,q]=w,I=this.reactiveMembers?this.transformComponentMembers(q):q,B=this.containsAwait(q),N=this.generateFunctionBody(I,[]);z.push(` ${B?"async ":""}${P}() ${N}`)}if(J){let P=J[1],w=this.buildRender(P);if(w.blockFactories.length>0)E=w.blockFactories.join(`
|
|
5
|
+
`+$;return $}advance($){let W=this.code.slice(this.pos,this.pos+$);for(let F=0;F<W.length;F++)if(W[F]===`
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,W,{len:F,data:U,pre:u}={}){let f=q1($,W,{pre:u??0,row:this.row,col:this.col,len:F??(typeof W==="string"?W.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(D3.test(this.chunk))return 0;let $=J3.exec(this.chunk);if(!$)return 0;let[,W,F]=$,U=W.length,u={},f;if(W==="own"&&this.prevTag()==="FOR")return this.emit("OWN",W,{len:U}),U;if(W==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",W,{len:U}),U;if(W==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let w=this.prevTag();if(w==="DEFAULT"||w==="IMPORT_ALL"||w==="IDENTIFIER")return this.emit("AS",W,{len:U}),U}if((W==="as"||W==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(W==="as!"?"FORASAWAIT":"FORAS","as",{len:U}),U;if(W==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",W,{len:U}),U;let _;if(W==="do"&&(_=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),_[1].length+3;let A=this.prev();if(F&&A&&A[0]==="SPACE?")F=null;if(F||A&&(A[0]==="."||A[0]==="?."||!A.spaced&&A[0]==="@")){if(f="PROPERTY",this.inRenderBlock&&A&&A[0]==="."&&!F){let w=this.chunk.slice(U);while(w[0]==="-"&&/^-[a-zA-Z]/.test(w)){let z=/^-([a-zA-Z][\w]*)/.exec(w);if(!z)break;W+="-"+z[1],U+=1+z[1].length,w=this.chunk.slice(U)}}}else f="IDENTIFIER";let Y=W.endsWith("!")||W.endsWith("?")?W.slice(0,-1):W;if(f==="IDENTIFIER"&&!W.endsWith("!")&&!W.endsWith("?")&&($2.has(W)||U2.has(W)||W2.has(W))&&!(this.exportSpecifierList&&W2.has(W))){if(b1[W]!==void 0)u.original=W,W=b1[W];f=this.classifyKeyword(W,f,u)}if(f==="IDENTIFIER"&&a2.has(Y))g(`reserved word '${Y}'`,{row:this.row,col:this.col,len:U});if(f==="PROPERTY"&&A){if(A[0]==="."&&this.tokens.length>1){let w=this.tokens[this.tokens.length-2];if(w[0]==="UNARY"&&w[1]==="new")w[0]="NEW_TARGET";if(w[0]==="IMPORT"&&w[1]==="import")this.seenImport=!1,w[0]="IMPORT_META"}}if(W.length>1&&W.endsWith("!"))u.await=!0,W=W.slice(0,-1);if(W.length>1&&W.endsWith("?"))u.predicate=!0,W=W.slice(0,-1);let Q=this.emit(f,W,{len:U,data:Object.keys(u).length?u:null});if(f==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(F)return this.emit(":",":",{len:1}),U+F.length;return U}classifyKeyword($,W,F){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(s2.has($))return"STATEMENT";let U=$.toUpperCase();if(U==="WHEN"&&F1.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(t2.has(U))return"UNARY";if(e2.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let u=this.tokens.pop();F.invert=u.data?.original||u[1]}return"RELATION"}if($2.has($)||U2.has($))return U;return W}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let W=this.prev();if(W&&(W[0]==="IDENTIFIER"||W[0]==="PROPERTY"))return 0;let F=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(F)return this.emit("IDENTIFIER",F[1]==="content"?"slot":"div#"+F[1]),F[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=R3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=z3.exec(this.chunk);if(!$&&this.chunk[0]!==`
|
|
7
|
+
`)return 0;let W=this.prev();if(W)if($)W.spaced=!0,W.pre=$[0].length;else W.newLine=!0;return $?$[0].length:0}lineToken(){let $=K3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length-1-W.lastIndexOf(`
|
|
8
|
+
`);if(this.isUnfinished()){if(F<this.indent&&/^\s*,/.test(this.chunk)&&!Y2.has(this.prevTag())){if(this.outdentTo(F,W.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return W.length}return W.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(F===this.indent)return this.emitNewline(),W.length;if(F>this.indent){if(!this.tokens.length)return this.indent=F,W.length;let U=F-this.indent;return this.emit("INDENT",U,{len:F}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=F,W.length}return this.outdentTo(F,W.length),W.length}outdentTo($,W=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let F=this.indent-$;while(F>0){let U=this.indents[this.indents.length-1];if(!U)F=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",F,{len:W}),F-=U}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let W=this.tokens.length;if(W>=2){let F=this.tokens[W-2][0];if(F==="INDENT"||F==="TERMINATOR"||F==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let W=0;for(let F=this.tokens.length-1;F>=0;F--){let U=this.tokens[F];if(U[0]==="COMPARE"&&U[1]===">")W++;else if(U[0]==="COMPARE"&&U[1]==="<")W--;if(W===0&&U[0]==="TYPE_ANNOTATION")return!1;if(U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")break}}return Q2.test(this.chunk)||Y2.has(this.prevTag())}pair($){let W=this.ends[this.ends.length-1];if(!W||$!==W.tag){if(W?.tag==="OUTDENT"){let F=this.indents[this.indents.length-1];if(F)this.outdentTo(this.indent-F);return this.pair($)}g(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=H3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length>1&&W.endsWith("\\"),U=F?W.slice(0,-1):W,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let f;switch(U){case"'":f=q3;break;case'"':f=O3;break;case"'''":f=G3;break;case'"""':f=P3;break}let{tokens:_,index:A}=this.matchWithInterpolations(f,W,U),Y=U.length===3,Q=null;if(Y)Q=this.processHeredocIndent(A,U,_);return this.mergeInterpolationTokens(_,{quote:U,indent:Q,endOffset:A,raw:F}),A}processHeredocIndent($,W,F){let U=$-W.length,u=U-1;while(u>=0&&this.chunk[u]!==`
|
|
10
|
+
`)u--;u++;let f=this.chunk.slice(u,U),_=/^\s*$/.test(f)?f.length:null,A="";for(let w of F)if(w[0]==="NEOSTRING")A+=w[1];let Y=null,Q;w2.lastIndex=0;while(Q=w2.exec(A))if(Y===null||Q[1].length>0&&Q[1].length<Y.length)Y=Q[1];if(_===null)return Y;if(Y===null)return" ".repeat(_);if(_<=Y.length)return" ".repeat(_);return Y}matchWithInterpolations($,W,F,U){if(!F)F=W;if(!U)U=/^[#$]\{/;let u=[],f=W.length;if(this.chunk.slice(0,f)!==W)return null;let _=this.chunk.slice(f);while(!0){let[A]=$.exec(_);u.push(["NEOSTRING",A,{offset:f}]),_=_.slice(A.length),f+=A.length;let Y=U.exec(_);if(!Y)break;let w=Y[0].length-1,z=_.slice(w),K=new p().tokenize(z,{row:this.row,col:this.col+f+w,untilBalanced:!0,rewrite:!1}),Z=K.index+w;if(_[Z-1]==="}"){let J=K.tokens[0],X=K.tokens[K.tokens.length-1];J[0]="INTERPOLATION_START",J[1]="(",X[0]="INTERPOLATION_END",X[1]=")"}if(K.tokens[1]?.[0]==="TERMINATOR")K.tokens.splice(1,1);let R=K.tokens.length;if(R>2&&K.tokens[R-3]?.[0]==="INDENT"&&K.tokens[R-2]?.[0]==="OUTDENT")K.tokens.splice(R-3,2);u.push(["TOKENS",K.tokens]),_=_.slice(Z),f+=Z}if(_.slice(0,F.length)!==F)g(`missing ${F}`,{row:this.row,col:this.col});return{tokens:u,index:f+F.length}}mergeInterpolationTokens($,{quote:W,indent:F,endOffset:U,raw:u}){if($.length>1)this.emit("STRING_START","(",{len:W?.length||0,data:{quote:W}});for(let f=0;f<$.length;f++){let[_,A]=$[f];if(_==="TOKENS")for(let Y of A)this.tokens.push(Y);else if(_==="NEOSTRING"){let Y=A;if(F){let Q=new RegExp("\\n"+F,"g");Y=Y.replace(Q,`
|
|
11
|
+
`)}if(f===0&&W?.length===3)Y=Y.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)Y=Y.replace(/\n[^\S\n]*$/,"");if(u)Y=Y.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${Y}"`,{len:A.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=Q3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))g(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))g(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:F});if(/^0\d+/.test(W))g(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:F});let u=V3(W),f=u===1/0?"INFINITY":"NUMBER",_={parsedValue:u};if(f==="INFINITY")_.original=W;return this.emit(f,W,{len:F,data:_}),F}regexToken(){let $=this.matchWithInterpolations(B3,"///");if($){let{tokens:Q,index:w}=$,[z]=J2.exec(this.chunk.slice(w)),K=w+z.length;if(Q.length===1||!Q.some((Z)=>Z[0]==="TOKENS")){let Z=(Q[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${z}`,{len:K,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Q,{quote:"///",endOffset:K-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return K}let W=I3.exec(this.chunk);if(!W)return 0;let[F,U,u]=W,f=this.prev();if(f){if(f.spaced&&H1.has(f[0])&&(!u||/^\/=?\s/.test(F)))return 0;if(_3.has(f[0])&&!(f.spaced&&H1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let _=F.length,[A]=J2.exec(this.chunk.slice(_)),Y=_+A.length;if(!E3.test(A))g(`invalid regular expression flags ${A}`,{row:this.row,col:this.col+_,len:A.length});return this.emit("REGEX",`/${U}/${A}`,{len:Y,data:{delimiter:"/"}}),Y}jsToken(){if(this.chunk[0]!=="`")return 0;let $=T3.exec(this.chunk)||N3.exec(this.chunk);if(!$)return 0;let W=$[1],F=$[0].length;return this.emit("JS",W,{len:F,data:{here:$[0].startsWith("```")}}),F}literalToken(){let $=X3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),F=W,U=this.prev();if(M3.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let _=u.slice(f,u.length-1);U[0]="=",U[1]="=";for(let A of _)this.tokens.push(q1(A[0],A[1],{pre:0,row:A[2],col:A[3],len:A[4]}));return this.tokens.push(q1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||Z2.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,F="TERMINATOR";else if(W==="|>")F="PIPE";else if(W==="::=")F="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")F="TYPE_ANNOTATION";else if(W==="~=")F="COMPUTED_ASSIGN";else if(W===":=")F="REACTIVE_ASSIGN";else if(W==="<=>")F="BIND";else if(W==="~>")F="EFFECT";else if(W==="=!")F="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let A=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let Y=this.emit("PROPERTY","assign");return Y.spaced=!0,this.emit("@","@"),this.emit(",",","),2+A.length+1}let _=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(_){let A=_[1],Y=_[2],Q=A.split("."),w=()=>{this.emit("IDENTIFIER",Q[0]);for(let K=1;K<Q.length;K++)this.emit(".","."),this.emit("PROPERTY",Q[K])};w(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),w(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+A.length+Y.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")F="EXPORT_ALL";else if(A3.has(W))F="MATH";else if(Y3.has(W))F="COMPARE";else if(Z2.has(W))F="COMPOUND_ASSIGN";else if(w3.has(W))F="UNARY_MATH";else if(Z3.has(W))F="SHIFT";else if(W==="?"&&U?.spaced)F="SPACE?";else if(W==="!?"&&U&&!U.spaced)F="DEFINED";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(U){if(W==="("&&!U.spaced&&H1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(W==="["&&!U.spaced&&X2.has(U[0])){if(F="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:U3[W],origin:[F,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(F,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,W=[];this.tokens[$][0]="PARAM_END";while($-- >0){let F=this.tokens[$];if(F[0]===")")W.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(W.length)W.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let W=this.tokens[$??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,W)=>{if($[0]==="CALL_START")this.detectEnd(W+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,F=null,U=(f,_)=>{return f[1]!==";"&&F3.has(f[0])&&!(f[0]==="TERMINATOR"&&F2.has(this.tokens[_+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(_)&&!this.commaInImplicitObject(_)||A2.has(f[0])&&(this.tokens[_-1]?.newLine||this.tokens[_-1]?.[0]==="OUTDENT")},u=(f,_)=>{let A=this.tokens[_-1]?.[0]===","?_-1:_;this.tokens.splice(A,0,F)};this.scanTokens((f,_,A)=>{let[Y]=f;if(Y==="TERMINATOR"){if(this.tokens[_+1]?.[0]==="ELSE"&&this.tokens[_-1]?.[0]!=="OUTDENT")return A.splice(_,1,...this.makeIndentation()),1;if(F2.has(this.tokens[_+1]?.[0]))return A.splice(_,1),0}if(Y==="CATCH")for(let Q=1;Q<=2;Q++){let w=this.tokens[_+Q]?.[0];if(w==="OUTDENT"||w==="TERMINATOR"||w==="FINALLY")return A.splice(_+Q,0,...this.makeIndentation()),2+Q}if((Y==="->"||Y==="=>")&&(this.tokens[_+1]?.[0]===","||this.tokens[_+1]?.[0]==="]"))return[W,F]=this.makeIndentation(),A.splice(_+1,0,W,F),1;if(_2.has(Y)&&this.tokens[_+1]?.[0]!=="INDENT"&&!(Y==="ELSE"&&this.tokens[_+1]?.[0]==="IF")&&!(Y==="ELSE"&&this.tokens[_-1]?.[0]!=="OUTDENT")){if($=Y,[W,F]=this.makeIndentation(),Y==="THEN")W.fromThen=!0;if(A.splice(_+1,0,W),this.detectEnd(_+2,U,u),Y==="THEN")A.splice(_,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!_2.has(this.tokens[u-1]?.[0])},F=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,u)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return $=U,this.detectEnd(u+1,W,F),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((F,U,u)=>{let[f]=F,_=u[U-1]||[],A=u[U+1]||[],[Y]=_,[Q]=A,w=U,z=(M)=>U-w+M,K=()=>$[$.length-1],Z=(M)=>M?.[2]?.ours,R=()=>Z(K())&&K()?.[0]==="(",J=()=>Z(K())&&K()?.[0]==="{",X=(M)=>{$.push(["(",M,{ours:!0}]),u.splice(M,0,m("CALL_START","("))},D=()=>{$.pop(),u.splice(U,0,m("CALL_END",")")),U+=1},q=(M,G={})=>{$.push(["{",M,{sameLine:!0,startsLine:G.startsLine??!0,ours:!0}]);let E=m("{","{");if(!E.data)E.data={};E.data.generated=!0,u.splice(M,0,E)},O=(M)=>{M=M??U,$.pop(),u.splice(M,0,m("}","}")),U+=1};if((R()||J())&&W3.has(f))return $.push(["CONTROL",U,{ours:!0}]),z(1);if(f==="INDENT"&&Z(K())){if(Y!=="=>"&&Y!=="->"&&Y!=="["&&Y!=="("&&Y!==","&&Y!=="{"&&Y!=="ELSE"&&Y!=="=")while(R()||J()&&Y!==":")if(R())D();else O();if(K()?.[2]?.ours&&K()[0]==="CONTROL")$.pop();return $.push([f,U]),z(1)}if(a.has(f))return $.push([f,U]),z(1);if(n.has(f)){while(Z(K()))if(R())D();else if(J())O();else $.pop();$.pop()}if(y1.has(f)&&F.spaced&&(D1.has(Q)||Q==="..."&&D1.has(u[U+2]?.[0])||u3.has(Q)&&!A.spaced&&!A.newLine)&&!((f==="]"||f==="}")&&(Q==="->"||Q==="=>")))return X(U+1),z(2);if(y1.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 X(U+1),$.push(["INDENT",U+2]),z(3);if(f==="SPACE?")W=!0;if(f===":"){if(W)return W=!1,z(1);let M=n.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")M=U-2;let G=M<=0||F1.has(this.tokens[M-1]?.[0])||this.tokens[M-1]?.newLine;if(K()){let[E,B]=K(),N=$[$.length-2];if((E==="{"||E==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(G||this.tokens[M-1]?.[0]===","||this.tokens[M-1]?.[0]==="{"||this.tokens[M]?.[0]==="{"))return z(1)}return q(M,{startsLine:!!G}),z(2)}if(F1.has(f))for(let M=$.length-1;M>=0;M--){if(!Z($[M]))break;if($[M][0]==="{")$[M][2].sameLine=!1}let H=Y==="OUTDENT"||_.newLine,I=f==="||"||f==="&&",P=!1;if(I){let M=U+1,G=u[M]?.[0];if(G==="("||G==="["||G==="{"){for(let E=1;++M<u.length&&E>0;)if(G=u[M][0],G==="("||G==="["||G==="{")E++;else if(G===")"||G==="]"||G==="}")E--}else if(G&&G!=="TERMINATOR"&&G!=="OUTDENT"&&G!==",")M++;P=u[M]?.[0]===","}if(f3.has(f)&&!P||A2.has(f)&&H)while(Z(K())){let[M,,{sameLine:G,startsLine:E}]=K();if(R()&&Y!==",")D();else if(J()&&!I&&G&&f!=="TERMINATOR"&&Y!==":")O();else if(J()&&f==="TERMINATOR"&&Y!==","&&!(E&&this.looksObjectish(U+1)))O();else if(K()?.[2]?.ours&&K()[0]==="CONTROL"&&u[K()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&J()&&(Q!=="TERMINATOR"||!this.looksObjectish(U+2))){let M=Q==="OUTDENT"?1:0;while(J())O(U+M)}return z(1)})}addImplicitCallCommas(){let $=0,W=0,F=this.tokens;while(W<F.length){let U=F[W][0],u=W>0?F[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&$3.has(u))F.splice(W,0,m(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,F,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return F.call(this,f,$);if(a.has(f[0]))u++;if(n.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return F.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let F=0;for(let U=W+1;U<$.length;U++){let u=$[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")F++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")F--;if(F<0||F===0&&u==="TERMINATOR"){$.splice(U,0,m("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,m("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let F=$-1;F>=0;F--){let U=this.tokens[F][0];if(n.has(U)){W++;continue}if(a.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(y1.has(U)&&this.tokens[F].spaced){let u=this.tokens[F+1]?.[0];return D1.has(u)||u==="..."&&D1.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let F=$-1;F>=0;F--){let U=this.tokens[F][0];if(n.has(U)){W++;continue}if(a.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish($+1);if(F1.has(U))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(a.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(F)=>n.has(F[0]),(F,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let F=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&F.has(u))return!0;if(n.has(u))U.push(u);if(a.has(u)&&U.length)U.pop();if(!U.length&&(a.has(u)&&!this.tokens[$]?.generated||F1.has(u)))break;$--}return!1}makeIndentation($){let W=m("INDENT",2),F=m("OUTDENT",2);if($)W.generated=F.generated=!0,W.origin=F.origin=$;else W.explicit=F.explicit=!0;return[W,F]}}u2(p);var h3={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,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,DEFINED:195,"--":196,"++":197,MATH:198,"**":199,SHIFT:200,COMPARE:201,"&":202,"^":203,"|":204,"||":205,"??":206,"&&":207,"!?":208,PIPE:209,RELATION:210,"SPACE?":211,COMPOUND_ASSIGN:212},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"DEFINED",196:"--",197:"++",198:"MATH",199:"**",200:"SHIFT",201:"COMPARE",202:"&",203:"^",204:"|",205:"||",206:"??",207:"&&",208:"!?",209:"PIPE",210:"RELATION",211:"SPACE?",212:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,55,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,133,105,106,-13,-13,-13,-13,136,137,138,-13,139,-13,-13,-13,-13,-13,-13,-13,134,-13,140,-13,-13,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,141,142,143,-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,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,148,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,149,-173,-173,150,151,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,160,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,159,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,163,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,166,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,167,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,173,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,174,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,175,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,176,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,177,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,181,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,182,183,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,184,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,186,185,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,187,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,188,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,161,189,2,66,10,161,190,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-263,-263,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,194,153,104,155,156,154,99,191,192,83,157,196,193,195,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,197,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,198,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,90,1,5,8,1,21,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,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,161,-305,102,103,-305,199,201,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,168,-305,169,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,200,172,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,202,2,66,10,161,203,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,204,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,205,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,206,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,207,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,168,-224,169,90,91,86,88,89,82,-224,69,64,65,208,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,209,104,2,55,1,210,104,6,15,19,89,2,1,1,212,211,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,213,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,214,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,168,-221,169,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,88,1,5,215,219,104,105,106,218,216,217,220,60,14,1,3,1,1,1,6,1,4,1,3,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,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,10,4,4,178,179,227,228,229,230,222,223,224,225,233,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,226,104,105,106,102,103,53,234,72,73,93,221,83,87,84,85,66,168,169,90,91,86,88,89,82,61,67,62,231,232,172,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,-49,-49,-49,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,235,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,236,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,237,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,250,251,249,140,2,109,11,252,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,55,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,253,254,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,255,1,83,256,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,257,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,258,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,259,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,260,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,262,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,261,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,263,-109,264,269,273,265,266,267,274,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,275,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,234,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,64,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,6,54,5,1,1,2,1,279,105,106,276,277,278,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,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,1,3,1,8,4,1,1,1,1,1,3,1,-5,280,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,281,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,282,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,283,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,284,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,285,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,286,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,287,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,288,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,289,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,292,164,290,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,291,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,295,164,293,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,294,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,298,164,296,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,297,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,299,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,300,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,301,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,302,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,303,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,304,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,305,306,83,157,196,307,195,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,309,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,310,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-377,-377,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,2,109,11,311,140,2,57,1,312,254,2,57,1,313,254,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,314,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,319,77,78,79,80,81,100,101,92,104,105,106,315,102,103,317,53,52,72,73,93,316,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,85,322,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,323,42,43,90,91,247,324,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,328,254,2,57,1,329,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,330,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,331,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,333,332,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,334,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,336,335,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,337,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,339,338,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,340,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,342,341,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,343,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,345,344,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,346,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,347,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,350,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,153,104,-181,-181,-181,155,156,154,99,158,157,-181,-181,351,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,253,254,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,353,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,352,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,354,-173,-173,150,151,2,66,10,161,159,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,5,15,108,2,1,1,212,168,169,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,118,-378,120,-378,-378,-378,2,81,8,355,99,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-86,-86,-380,-380,-380,-380,-86,-86,-86,-86,-86,-86,-86,-86,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-86,-380,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-86,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,10,54,5,1,23,1,1,3,21,11,11,133,105,106,136,137,138,139,134,140,135,3,83,1,1,141,142,143,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-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,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-86,-86,-381,-381,-381,-381,-86,-86,-86,-86,-86,-86,-86,-86,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-86,-381,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-86,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-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,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,358,356,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,357,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,359,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,161,360,361,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,5,1,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,362,363,364,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,369,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,370,158,157,196,195,3,66,10,88,161,371,372,5,72,22,69,2,2,373,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,374,-301,-301,-301,-301,23,66,26,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-306,-306,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,379,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,60,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,161,-309,-309,-86,-86,-86,380,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,381,-309,-309,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,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,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,3,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-321,-321,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,387,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,389,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,66,10,44,161,391,390,2,66,10,161,392,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-338,-338,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,268,100,101,408,104,271,254,105,106,407,-109,-109,272,263,404,264,269,273,265,266,267,274,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,411,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,142,413,57,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,-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,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,321,416,320,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,417,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,424,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,1,1,3,2,9,3,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,1,3,1,8,4,1,1,1,1,1,3,1,-202,426,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,2,57,1,427,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,428,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,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,2,57,1,430,254,2,57,1,431,254,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,432,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,434,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,435,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-264,-264,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,161,-265,-265,436,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,441,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,57,1,45,253,254,442,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,446,448,447,270,104,271,254,445,272,99,443,87,444,449,450,86,82,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-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,6,54,5,1,2,1,1,279,105,106,452,453,278,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,110,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,110,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-386,-386,125,126,-386,-386,-386,-386,-386,-386,-386,-386,-386,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-387,-387,125,126,-387,-387,-387,-387,-387,-387,-387,-387,-387,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,-389,-389,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,-390,-390,-390,-390,118,-390,120,-390,122,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,114,-391,-391,-391,118,-391,120,-391,122,-391,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,115,-392,-392,118,-392,120,-392,122,-392,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-393,-393,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-394,-394,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-400,-400,125,126,-400,-400,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,-400,118,119,120,-400,122,-400,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,127,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,124,125,126,96,97,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-399,-399,125,126,-399,-399,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,-399,118,-399,120,-399,122,-399,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,127,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,124,125,126,96,97,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,-403,122,-403,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,-404,-404,-404,-404,-404,118,-404,120,-404,-404,-404,23,91,1,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,463,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,464,158,157,196,195,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,465,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,468,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,86,470,1,86,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,472,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-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,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,474,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,480,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,481,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,482,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,483,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,484,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,485,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,486,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,487,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,488,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-82,-82,3,125,1,1,489,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,153,104,-218,-218,155,156,154,99,-218,158,-218,157,152,-218,490,151,2,6,60,491,492,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,493,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,494,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,495,1,67,496,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,497,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,498,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,499,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,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,500,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,161,501,6,55,1,10,10,5,8,502,104,161,504,503,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,505,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,506,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,507,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,508,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,509,1,165,510,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,511,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,153,104,155,156,154,99,158,157,196,512,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,513,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,155,1,1,514,377,378,4,67,78,11,1,515,516,517,378,3,67,78,12,-252,-252,-252,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,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,1,3,1,8,4,1,1,1,1,1,3,1,519,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,518,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,161,-307,-307,520,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-310,-310,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,521,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,2,6,61,523,522,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,1,67,524,1,67,525,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,526,-173,-173,150,151,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-313,-313,1,67,527,3,54,5,1,528,105,106,3,89,89,5,530,529,220,3,54,5,1,531,105,106,1,142,532,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,533,-217,-217,-217,5,6,60,1,5,24,-329,-329,-329,-329,-329,6,55,1,10,113,1,2,401,104,400,535,399,402,6,6,60,1,5,24,85,-334,-334,-334,-334,-334,536,6,6,60,1,5,24,85,-336,-336,-336,-336,-336,537,2,55,1,538,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,539,-340,-340,-340,-340,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,540,-217,-217,-217,5,6,60,1,5,24,-358,-358,-358,-358,-358,6,55,1,10,116,3,2,543,104,407,409,542,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-363,-363,-363,-363,-120,-120,-120,-120,-120,-363,-120,544,6,6,60,1,5,24,85,-366,-366,-366,-366,-366,545,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,547,546,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,548,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,127,-353,-353,-353,-353,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,549,99,3,54,5,1,550,105,106,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,551,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,552,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,554,553,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,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,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,244,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,556,555,245,241,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,557,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,558,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,559,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,560,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,561,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,562,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,563,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,564,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,30,567,568,566,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,268,100,101,270,104,271,254,105,106,-218,-218,272,570,-218,569,273,265,266,-218,267,274,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,571,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,572,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,573,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,574,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,575,140,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,577,578,579,-128,576,140,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,250,251,580,140,2,109,11,581,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,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,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,582,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,583,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,584,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,586,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,585,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,587,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,588,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,589,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,590,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,591,1,165,592,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,593,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,594,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,595,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,596,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,597,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,598,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,599,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,56,601,602,600,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,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,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,603,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,604,-217,-217,-217,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,605,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,606,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,610,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,609,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,153,104,155,156,154,99,158,157,152,611,151,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,612,-173,-173,150,151,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,613,90,91,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-379,-379,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,614,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,125,126,-408,-408,-408,-408,-408,-408,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,615,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,616,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,66,10,161,617,2,66,10,161,618,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,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,26,66,10,16,5,51,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,619,127,620,124,125,126,96,97,621,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,622,127,623,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,624,127,625,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,626,127,627,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,628,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,629,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,630,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,631,632,517,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,66,10,161,633,3,67,78,12,-253,-253,-253,3,66,6,4,161,635,634,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-308,-308,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,161,-311,-311,636,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-314,-314,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,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,3,1,-317,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-317,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,637,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,349,-217,-217,638,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,1,142,639,6,55,1,10,113,1,2,401,104,400,640,399,402,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,5,1,641,105,106,3,6,60,30,643,644,642,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,645,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,646,-217,-217,-217,2,55,1,647,104,2,55,1,648,104,1,142,-339,3,54,5,1,649,105,106,3,6,60,30,651,652,650,10,6,49,1,10,1,29,8,18,60,5,-218,543,104,-218,-218,-218,-218,-218,409,653,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,654,-217,-217,-217,6,6,60,1,5,24,85,-363,-363,-363,-363,-363,544,3,55,1,126,655,104,656,2,55,1,657,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,658,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,659,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,660,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,1,138,661,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,662,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,663,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,244,53,52,72,73,93,99,59,83,-153,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,664,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,554,665,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,666,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,667,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-259,-259,-259,-259,-259,-259,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,668,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,669,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,268,100,101,270,104,271,254,105,106,272,570,670,273,265,266,267,274,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,570,-109,671,269,273,265,266,267,274,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,672,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,673,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,674,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,11,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,11,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,675,254,2,57,1,676,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,677,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,678,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,679,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,125,126,-405,-405,-405,-405,-405,-405,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,680,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,681,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,682,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,683,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,684,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,685,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,686,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,687,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-300,-300,-300,-300,-300,-300,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,688,1,86,689,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,690,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,248,84,85,691,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,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,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,692,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,50,-195,-195,-195,-195,-195,3,6,60,1,601,602,693,1,86,694,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-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,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,695,-217,-217,-217,2,66,10,161,609,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,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,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,696,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,697,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,698,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-276,-276,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,699,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,700,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,701,127,702,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,703,127,704,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,2,66,10,161,705,1,67,706,4,6,61,78,12,707,-254,-254,-254,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,708,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,-312,-312,2,6,61,-316,-316,2,66,10,161,709,3,54,5,1,710,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,711,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,712,4,55,1,124,2,401,104,713,402,6,55,1,10,113,1,2,401,104,400,714,399,402,5,6,60,1,5,24,-330,-330,-330,-330,-330,3,6,60,1,643,644,715,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-337,-337,-337,-337,-337,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,716,-341,-341,-341,-341,4,55,1,126,5,543,104,409,717,6,55,1,10,116,3,2,543,104,407,409,718,406,5,6,60,1,5,24,-359,-359,-359,-359,-359,3,6,60,1,651,652,719,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-365,-365,-365,-365,-365,5,6,60,1,5,24,-367,-367,-367,-367,-367,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,127,-347,-347,-347,-347,125,126,-347,-347,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,720,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,721,-217,5,6,60,1,5,32,-147,-147,-147,-147,-147,5,6,60,1,5,32,-148,-148,-148,-148,-148,1,86,722,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,723,724,83,157,196,307,195,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,725,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,726,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,727,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,728,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,11,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,11,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,730,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,65,731,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,732,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,733,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,734,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,735,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,736,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,737,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,738,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,739,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,740,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,741,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,491,492,742,25,66,10,16,56,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,743,127,124,125,126,96,97,744,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,745,127,746,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,747,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,748,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,749,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-274,-274,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,750,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,751,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,752,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,3,6,60,30,643,644,753,3,54,5,1,754,105,106,5,6,60,1,5,24,-331,-331,-331,-331,-331,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,755,-217,-217,-217,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,54,5,1,756,105,106,5,6,60,1,5,24,-360,-360,-360,-360,-360,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,757,-217,-217,-217,5,6,60,1,5,24,-361,-361,-361,-361,-361,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,66,1,554,758,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,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,4,94,69,2,2,759,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,760,158,157,196,195,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,567,568,761,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,762,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,763,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,764,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-298,-298,125,126,-298,-298,-298,-298,-298,-298,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,765,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,766,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,601,602,767,6,6,60,1,5,50,2,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,768,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,769,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-273,-273,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-277,-277,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,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,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,770,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,771,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,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,1,142,772,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,1,643,644,773,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,3,6,60,1,651,652,774,5,6,60,1,5,32,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,775,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,776,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,777,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,778,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,779,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,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,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,780,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,781,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,3,54,5,1,782,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,5,6,60,1,5,24,-362,-362,-362,-362,-362,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,785,-289,-289,-289,-289,783,-289,784,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,786,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,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,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,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,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,96,787,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,788,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,785,-291,-291,-291,-291,789,-291,790,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,785,-290,-290,-290,-290,791,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,792,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,793,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,96,794,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,785,-292,-292,-292,-292,795,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,796,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],F=0,U,u,f,_;while(F<$.length){U=$[F++],u={},f=0,_=[];while(U--)f+=$[F++],_.push(f);for(f of _)u[f]=$[F++];W.push(u)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,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,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,W,F,U)=>{let u=W,f=W.length-1;switch($){case 1:return["program"];case 2:return["program",...u[f]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 329:case 358:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 316:case 330:case 359:return[...u[f-2],u[f]];case 5:case 60:case 157:case 317:return u[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 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 263:case 301:case 318:case 319:case 320:case 334:case 336:case 338:case 363:case 366:return u[f];case 47:return"undefined";case 48:return"null";case 57:return["str",...u[f-1]];case 59:case 151:case 155:case 253:return[...u[f-1],u[f]];case 61:case 193:case 197:case 332:case 361:return u[f-2];case 62:return"";case 65:return["regex",u[f-1]];case 66:return["regex-index",u[f-2],u[f]];case 67:return["regex-index",u[f],null];case 68:return["=",u[f-2],u[f]];case 69:return["=",u[f-3],u[f]];case 70:return["=",u[f-4],u[f-1]];case 71:return["state",u[f-2],u[f]];case 72:return["state",u[f-3],u[f]];case 73:return["state",u[f-4],u[f-1]];case 74:case 76:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 77:return["readonly",u[f-2],u[f]];case 78:return["readonly",u[f-3],u[f]];case 79:return["readonly",u[f-4],u[f-1]];case 80:case 82:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 83:case 84:case 85:return["effect",null,u[f]];case 91:case 100:case 138:return[".",u[f-2],u[f]];case 92:case 101:case 139:return["?.",u[f-2],u[f]];case 93:case 95:case 102:case 140:return["[]",u[f-3],u[f-1]];case 94:case 96:case 103:case 141:return["[]",u[f-5],u[f-2]];case 97:return[u[f-1][0],u[f-3],...u[f-1].slice(1)];case 98:return["optindex",u[f-4],u[f-1]];case 99:return["optindex",u[f-6],u[f-2]];case 104:return["object-comprehension",u[f-8],u[f-6],[["for-of",u[f-4],u[f-2],!1]],[]];case 105:return["object-comprehension",u[f-10],u[f-8],[["for-of",u[f-6],u[f-4],!1]],[u[f-2]]];case 106:return["object-comprehension",u[f-9],u[f-7],[["for-of",u[f-4],u[f-2],!0]],[]];case 107:return["object-comprehension",u[f-11],u[f-9],[["for-of",u[f-6],u[f-4],!0]],[u[f-2]]];case 108:return["object",...u[f-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 331:case 360:return[...u[f-3],u[f]];case 113:case 177:case 198:case 333:case 362:return[...u[f-5],...u[f-2]];case 114:return[u[f],u[f],null];case 116:return[u[f-2],u[f],":"];case 117:return[u[f-4],u[f-1],":"];case 118:return[u[f-2],u[f],"="];case 119:return[u[f-4],u[f-1],"="];case 124:return["dynamicKey",u[f-1]];case 125:return["[]","this",u[f-1]];case 127:case 128:case 186:return["...",u[f]];case 134:case 190:return["super",...u[f]];case 135:case 136:case 137:case 188:case 191:return[u[f-1],...u[f]];case 142:return["array"];case 143:return["array",...u[f-1]];case 144:return["array",...u[f-2],...u[f-1]];case 146:return[...u[f-2],...u[f]];case 147:return[...u[f-3],...u[f]];case 148:return[...u[f-2],...u[f-1]];case 149:return[...u[f-5],...u[f-4],...u[f-2],...u[f-1]];case 153:return[...u[f]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[u[f-2],u[f-3],u[f-1]];case 161:case 386:case 388:case 389:case 404:case 406:return[u[f-1],u[f-2],u[f]];case 162:return[u[f],u[f-1],null];case 163:return[u[f-1],null,u[f]];case 164:return[u[f],null,null];case 165:return["def",u[f-4],u[f-2],u[f]];case 166:return["def",u[f-1],[],u[f]];case 167:case 169:return[u[f-1],u[f-3],u[f]];case 168:case 170:return[u[f-1],[],u[f]];case 179:case 302:return["default",u[f-2],u[f]];case 180:return["rest",u[f]];case 181:return["expansion"];case 187:return["tagged-template",u[f-1],u[f]];case 189:return["optcall",u[f-2],...u[f]];case 205:case 206:return"this";case 207:return[".","this",u[f]];case 208:return[".","super",u[f]];case 209:return["[]","super",u[f-1]];case 210:return["[]","super",u[f-2]];case 211:return[".","new",u[f]];case 212:return[".","import",u[f]];case 213:return["block"];case 214:return["block",...u[f-1]];case 215:return u[f-1].length===1?u[f-1][0]:["block",...u[f-1]];case 216:return u[f-2].length===1?u[f-2][0]:["block",...u[f-2]];case 219:return["return",u[f]];case 220:return["return",u[f-1]];case 221:return["return"];case 222:return["throw",u[f]];case 223:return["throw",u[f-1]];case 224:return["yield"];case 225:return["yield",u[f]];case 226:return["yield",u[f-1]];case 227:return["yield-from",u[f]];case 228:return["if",u[f-1],u[f]];case 229:return u[f-4].length===3?["if",u[f-4][1],u[f-4][2],["if",u[f-1],u[f]]]:[...u[f-4],["if",u[f-1],u[f]]];case 230:return["if",["!",u[f-1]],u[f]];case 231:return["if",["!",u[f-3]],u[f-2],u[f]];case 233:return u[f-2].length===3?["if",u[f-2][1],u[f-2][2],u[f]]:[...u[f-2],u[f]];case 235:case 236:return["if",u[f],[u[f-2]]];case 237:return["?:",u[f-4],u[f-6],u[f-1]];case 238:return["?:",u[f-2],u[f-4],u[f]];case 239:case 240:return["if",["!",u[f]],[u[f-2]]];case 241:return["try",u[f]];case 242:return["try",u[f-1],u[f]];case 243:return["try",u[f-2],u[f]];case 244:return["try",u[f-3],u[f-2],u[f]];case 245:case 246:case 368:case 371:case 373:return[u[f-1],u[f]];case 247:return[null,u[f]];case 248:return["switch",u[f-3],u[f-1],null];case 249:return["switch",u[f-5],u[f-3],u[f-1]];case 250:return["switch",null,u[f-1],null];case 251:return["switch",null,u[f-3],u[f-1]];case 254:return["when",u[f-1],u[f]];case 255:return["when",u[f-2],u[f-1]];case 256:return["while",u[f]];case 257:return["while",u[f-2],u[f]];case 258:return["while",["!",u[f]]];case 259:return["while",["!",u[f-2]],u[f]];case 260:return u[f-1].length===2?[u[f-1][0],u[f-1][1],u[f]]:[u[f-1][0],u[f-1][1],u[f-1][2],u[f]];case 261:case 262:return u[f].length===2?[u[f][0],u[f][1],[u[f-1]]]:[u[f][0],u[f][1],u[f][2],[u[f-1]]];case 264:return["loop",u[f]];case 265:return["loop",[u[f]]];case 266:return["loop-n",u[f-1],u[f]];case 267:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 268:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 269:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 271:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 272:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 273:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 274:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 275:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 276:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 277:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 278:case 280:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 279:case 281:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 282:return["for-in",[],u[f-1],null,null,u[f]];case 283:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 284:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 286:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 288:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 289:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 290:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 291:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 292:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 293:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 294:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 295:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 296:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 297:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 298:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 299:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 300:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 304:case 335:case 337:case 364:case 365:case 367:return[u[f-2],u[f]];case 305:return["class",null,null];case 306:return["class",null,null,u[f]];case 307:return["class",null,u[f]];case 308:return["class",null,u[f-1],u[f]];case 309:return["class",u[f],null];case 310:return["class",u[f-1],null,u[f]];case 311:return["class",u[f-2],u[f]];case 312:return["class",u[f-3],u[f-1],u[f]];case 313:return["enum",u[f-1],u[f]];case 314:return["component",null,["block",...u[f-1]]];case 321:return["render",u[f]];case 322:case 325:return["import","{}",u[f]];case 323:case 324:return["import",u[f-2],u[f]];case 326:return["import",u[f-4],u[f]];case 327:return["import",[u[f-4],u[f-2]],u[f]];case 328:return["import",[u[f-7],u[f-4]],u[f]];case 339:return["*",u[f]];case 340:return["export","{}"];case 341:return["export",u[f-2]];case 342:case 343:case 344:case 345:case 349:case 350:case 351:case 352:return["export",u[f]];case 346:return["export",["=",u[f-2],u[f]]];case 347:return["export",["=",u[f-3],u[f]]];case 348:return["export",["=",u[f-4],u[f-1]]];case 353:return["export-default",u[f]];case 354:return["export-default",u[f-1]];case 355:return["export-all",u[f]];case 356:return["export-from","{}",u[f]];case 357:return["export-from",u[f-4],u[f]];case 369:case 370:case 372:case 409:return["do-iife",u[f]];case 374:return["-",u[f]];case 375:return["+",u[f]];case 376:return["?",u[f-1]];case 377:return["defined",u[f-1]];case 378:return["await",u[f]];case 379:return["await",u[f-1]];case 380:return["--",u[f],!1];case 381:return["++",u[f],!1];case 382:return["--",u[f-1],!0];case 383:return["++",u[f-1],!0];case 384:return["+",u[f-2],u[f]];case 385:return["-",u[f-2],u[f]];case 387:return["**",u[f-2],u[f]];case 390:return["&",u[f-2],u[f]];case 391:return["^",u[f-2],u[f]];case 392:return["|",u[f-2],u[f]];case 393:case 394:case 395:case 396:case 397:case 398:return["control",u[f-1],u[f-2],u[f]];case 399:return["&&",u[f-2],u[f]];case 400:return["||",u[f-2],u[f]];case 401:return["??",u[f-2],u[f]];case 402:return["!?",u[f-2],u[f]];case 403:return["|>",u[f-2],u[f]];case 405:return["?:",u[f-4],u[f-2],u[f]];case 407:return[u[f-3],u[f-4],u[f-1]];case 408:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let F,U,u,f,_,A,Y;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,F=W.loc?.c||0,Y=W.token?` (token: ${W.token})`:"",A=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${F}`,_=`Parse error at ${f}${Y}${A}: ${$}`,U=Error(_),U.hash=W,U},parse($){let W,F,U,u,f,_,A,Y,Q,w,z,K,Z,R,J,X,D,q,O,H,I,P,M,G,E,B;[H,B,w]=[[0],[null],[]],[Z,E,M,P,X]=[this.parseTable,"",0,0,0],[F,W]=[2,1],Y=Object.create(this.lexer),q={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let L=this.ctx[N];q.ctx[N]=L}if(Y.setInput($,q.ctx),[q.ctx.lexer,q.ctx.parser]=[Y,this],Y.loc==null)Y.loc={};G=Y.loc,w.push(G),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,A=()=>{let N;if(N=Y.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},I=R=O=U=J=K=_=z=f=null,D={};while(!0){if(O=H[H.length-1],I==null)I=A();if(U=Z[O]?.[I],U==null){if(u="",!X)f=(()=>{let N=[];for(let L in Z[O]){if(!Object.hasOwn(Z[O],L))continue;if(this.tokenNames[L]&&L>F)N.push(`'${this.tokenNames[L]}'`)}return N})();throw u=(()=>{if(Y.showPosition)return`Parse error on line ${M+1}:
|
|
12
|
+
${Y.showPosition()}
|
|
13
|
+
Expecting ${f.join(", ")}, got '${this.tokenNames[I]||I}'`;else return`Parse error on line ${M+1}: Unexpected ${I===W?"end of input":`'${this.tokenNames[I]||I}'`}`,this.parseError(u,{text:Y.match,token:this.tokenNames[I]||I,line:Y.line,loc:G,expected:f})})(),Error(u)}if(U>0)if(H.push(I,U),B.push(Y.text),w.push(Y.loc),I=null,!R){if([P,E,M,G]=[Y.len,Y.text,Y.line,Y.loc],X>0)X--}else[I,R]=[R,null];else if(U<0){if(_=this.ruleTable[-U*2+1],D.$=B[B.length-_],Q=w[w.length-(_||1)],D._$={r:Q.r,c:Q.c},J=this.ruleActions.call(D,-U,B,w,q.ctx),J!=null)D.$=J;if(Array.isArray(D.$))D.$.loc=D._$;if(_)H.length-=_*2,B.length-=_,w.length-=_;H.push(this.ruleTable[-U*2]),B.push(D.$),w.push(D._$),z=Z[H[H.length-2]][H[H.length-1]],H.push(z)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},j3=($={})=>{let W=Object.create(h3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},s=j3();var a3=s.parse.bind(s);var C3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),_1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),z2=new Set([...C3,..._1]);var K2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),y3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function b3($){for(let W of $){if(!Array.isArray(W))continue;let F=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(F==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function O1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function c1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function R2($,W){W.prototype.rewriteRender=function(){let U=(Z,R,J)=>{let X=[Z,R];if(X.pre=0,X.data=null,X.loc=J?.loc??{r:0,c:0,n:0},X.spaced=!1,X.newLine=!1,X.generated=!0,J)X.origin=J;return X},u=!1,f=0,_=0,A=[],Y=(Z)=>{let R=Z.split("#")[0];return z2.has(R)},Q=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},w=(Z)=>{return Y(Z)||Q(Z)},z=(Z,R,J,X)=>{let D=1,q=R;while(q>=0&&D>0){let O=Z[q][0];if(O===J)D++;else if(O===X)D--;if(D>0)q--}return q},K=(Z,R)=>{let J=R;while(J>0){let X=Z[J-1][0];if(X==="TERMINATOR"||X==="RENDER")break;if(X==="INDENT"||X==="OUTDENT"){let D=Z[J][0];if(D==="CALL_END"||D===")"){J=z(Z,J-1,D,D==="CALL_END"?"CALL_START":"(");continue}break}if(X==="CALL_END"||X===")"){J=z(Z,J-2,X,X==="CALL_END"?"CALL_START":"(");continue}if(X==="INTERPOLATION_END"){J=z(Z,J-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(X==="STRING_END"){J=z(Z,J-2,"STRING_END","STRING_START");continue}J--}return Z[J]&&Z[J][0]==="IDENTIFIER"&&w(Z[J][1])};this.scanTokens(function(Z,R,J){let X=Z[0],D=R<J.length-1?J[R+1]:null;if(X==="RENDER")return u=!0,f=_+1,1;if(X==="INDENT")return _++,1;if(X==="OUTDENT"){_--;let q=0;while(A.length>0&&A[A.length-1]>_){let O=U("CALL_END",")",Z);J.splice(R+1+q,0,O),A.pop(),q++}if(u&&_<f)u=!1;return 1+q}if(!u)return 1;if(X==="UNARY_MATH"&&Z[1]==="~"&&D&&D[0]==="IDENTIFIER"){Z[0]="PROPERTY",Z[1]="__transition__";let q=U(":",":",Z),O=U("STRING",`"${D[1]}"`,D);return J.splice(R+1,1,q,O),1}if(X==="IDENTIFIER"&&!Z.spaced){let q=[Z[1]],O=R+1;while(O+1<J.length){let H=J[O],I=J[O+1];if(H[0]==="-"&&!H.spaced&&(I[0]==="IDENTIFIER"||I[0]==="PROPERTY")){if(q.push(I[1]),O+=2,I[0]==="PROPERTY")break}else break}if(q.length>1&&O>R+1&&J[O-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${q.join("-")}"`,J.splice(R+1,O-R-1),1}if(X==="."){let q=R>0?J[R-1]:null,O=q?q[0]:null;if(O==="INDENT"||O==="TERMINATOR"){if(D&&D[0]==="PROPERTY"){let H=R+2<J.length?J[R+2]:null;if(!H||H[0]!==":"){let I=U("IDENTIFIER","div",Z);return J.splice(R,0,I),2}}if(!D||D[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(X==="IDENTIFIER"||X==="PROPERTY"){let q=J[R+1],O=J[R+2];if(q&&q[0]==="#"&&O&&(O[0]==="PROPERTY"||O[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+O[1],O.spaced)Z.spaced=!0;return J.splice(R+1,2),0}}if(X==="BIND"){let q=R>0?J[R-1]:null,O=J[R+1];if(q&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")&&O&&O[0]==="IDENTIFIER")return q[1]=`__bind_${q[1]}__`,Z[0]=":",Z[1]=":",1}if(X==="@"){let q=R+1;if(q<J.length&&J[q][0]==="PROPERTY"){q++;while(q+1<J.length&&J[q][0]==="."&&J[q+1][0]==="PROPERTY")q+=2;if(q>R+2&&q<J.length&&J[q][0]===":"){let O=U("[","[",Z);J.splice(R,0,O);let H=U("]","]",J[q+1]);return J.splice(q+1,0,H),2}}}if(X==="."&&D&&D[0]==="("){let q=R>0?J[R-1]:null,O=q?q[0]:null,H=O==="INDENT"||O==="TERMINATOR",I=U("PROPERTY","__clsx",Z);D[0]="CALL_START";let P=1;for(let M=R+2;M<J.length&&P>0;M++)if(J[M][0]==="("||J[M][0]==="CALL_START")P++;else if(J[M][0]===")"){if(P--,P===0)J[M][0]="CALL_END"}else if(J[M][0]==="CALL_END")P--;if(H){let M=U("IDENTIFIER","div",Z);return J.splice(R,0,M),J.splice(R+2,0,I),3}else if(O===":")return J[R]=U("IDENTIFIER","__clsx",Z),1;else return J.splice(R+1,0,I),2}if(D&&D[0]==="INDENT"){if(D.fromThen)return 1;if(X==="->"||X==="=>"||X==="CALL_START"||X==="(")return 1;let q=!1,O=R>0?J[R-1][0]:null,H=O==="IF"||O==="UNLESS"||O==="WHILE"||O==="UNTIL"||O==="WHEN",I=!1;if(X==="CALL_END"){let P=1;for(let M=R-1;M>=0&&P>0;M--)if(J[M][0]==="CALL_END")P++;else if(J[M][0]==="CALL_START"){if(P--,P===0&&M>0&&J[M-1][0]==="PROPERTY"&&J[M-1][1]==="__clsx")I=!0}}if(I)q=!0;else if(X==="IDENTIFIER"&&w(Z[1])&&!H)q=!0;else if(X==="IDENTIFIER"&&!H)q=K(J,R);else if(X==="PROPERTY"||X==="STRING"||X==="STRING_END"||X==="NUMBER"||X==="BOOL"||X==="CALL_END"||X===")")q=K(J,R);if(q){let P=X==="PROPERTY"&&R>0&&(J[R-1][0]==="."||J[R-1][0]==="#");if(I||X==="IDENTIFIER"&&w(Z[1])||P){let G=U("CALL_START","(",Z),E=U("->","->",Z);return E.newLine=!0,J.splice(R+1,0,G,E),A.push(_+1),3}else{let G=U(",",",",Z),E=U("->","->",Z);return E.newLine=!0,J.splice(R+1,0,G,E),3}}}if(X==="IDENTIFIER"&&Q(Z[1])&&D&&(D[0]==="OUTDENT"||D[0]==="TERMINATOR"))return J.splice(R+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let F=$.prototype;F.isHtmlTag=function(U){let u=U.split("#")[0];return z2.has(u.toLowerCase())},F.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},F.collectTemplateClasses=function(U){let u=[],f=U;while(this.is(f,".")){let Q=f[2];if(typeof Q==="string"||Q instanceof String)u.unshift(Q.valueOf());f=f[1]}let _=typeof f==="string"?f:f instanceof String?f.valueOf():null;if(_===null)return{tag:null,classes:u,id:void 0};let[A,Y]=_.split("#");if(!A)A="div";return{tag:A,classes:u,id:Y}},F.transformComponentMembers=function(U){let u=this._self;if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".",u,U],"value"];if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return[".",u,U];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let f=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(f))return[".",[".",u,f],"value"];return this._factoryMode?[".",u,U[2]]:U}if(U[0]==="."||U[0]==="?.")return[U[0],this.transformComponentMembers(U[1]),U[2]];if(U[0]==="->")return["=>",...U.slice(1).map((f)=>this.transformComponentMembers(f))];if(U[0]==="object")return["object",...U.slice(1).map((f)=>{if(Array.isArray(f)&&f.length>=2){let _=f[0],A=Array.isArray(_)?this.transformComponentMembers(_):_,Y=this.transformComponentMembers(f[1]);return[A,Y,f[2]]}return this.transformComponentMembers(f)})];return U.map((f)=>this.transformComponentMembers(f))},F.generateComponent=function(U,u,f,_){let[,A]=u;this.usesTemplates=!0,this.usesReactivity=!0;let Y=this.is(A,"block")?A.slice(1):[],Q=[],w=[],z=[],K=[],Z=[],R=[],J=null,X=new Set,D=new Set;for(let P of Y){if(!Array.isArray(P))continue;let[M]=P;if(M==="state"){let G=O1(P[1]);if(G)Q.push({name:G,value:P[2],isPublic:c1(P[1])}),X.add(G),D.add(G)}else if(M==="computed"){let G=O1(P[1]);if(G)w.push({name:G,expr:P[2]}),X.add(G),D.add(G)}else if(M==="readonly"){let G=O1(P[1]);if(G)z.push({name:G,value:P[2],isPublic:c1(P[1])}),X.add(G)}else if(M==="="){let G=O1(P[1]);if(G)if(K2.has(G))Z.push({name:G,value:P[2]});else{let E=P[2];if(Array.isArray(E)&&(E[0]==="->"||E[0]==="=>"))K.push({name:G,func:E}),X.add(G);else Q.push({name:G,value:E,isPublic:c1(P[1])}),X.add(G),D.add(G)}}else if(M==="effect")R.push(P);else if(M==="render")J=P;else if(M==="object")for(let G=1;G<P.length;G++){let E=P[G];if(!Array.isArray(E))continue;let[B,N]=E;if(typeof B==="string"&&K2.has(B))Z.push({name:B,value:N});else if(typeof B==="string")K.push({name:B,func:N}),X.add(B)}}let q=this.componentMembers,O=this.reactiveMembers;this.componentMembers=X,this.reactiveMembers=D;let H=[],I="";H.push("class extends __Component {"),H.push(" _init(props) {");for(let{name:P,value:M,isPublic:G}of z){let E=this.generateInComponent(M,"value");H.push(G?` this.${P} = props.${P} ?? ${E};`:` this.${P} = ${E};`)}for(let{name:P,value:M,isPublic:G}of Q){let E=this.generateInComponent(M,"value");H.push(G?` this.${P} = __state(props.${P} ?? ${E});`:` this.${P} = __state(${E});`)}for(let{name:P,expr:M}of w)if(this.is(M,"block")&&M.length>2){let G=this.transformComponentMembers(M),E=this.generateFunctionBody(G);H.push(` this.${P} = __computed(() => ${E});`)}else{let G=this.generateInComponent(M,"value");H.push(` this.${P} = __computed(() => ${G});`)}for(let P of R){let M=P[2],G=this.containsAwait(M)?"async ":"";if(this.is(M,"block")&&M.length>2){let E=this.transformComponentMembers(M),B=this.generateFunctionBody(E,[],!0);H.push(` __effect(${G}() => ${B});`)}else{let E=this.generateInComponent(M,"value");H.push(` __effect(${G}() => { ${E}; });`)}}H.push(" }");for(let{name:P,func:M}of K)if(Array.isArray(M)&&(M[0]==="->"||M[0]==="=>")){let[,G,E]=M,B=Array.isArray(G)?G.map((j)=>this.formatParam(j)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(E):E,L=this.containsAwait(E),S=this.generateFunctionBody(N,G||[]);H.push(` ${L?"async ":""}${P}(${B}) ${S}`)}for(let{name:P,value:M}of Z)if(Array.isArray(M)&&(M[0]==="->"||M[0]==="=>")){let[,G,E]=M,B=Array.isArray(G)?G.map((j)=>this.formatParam(j)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(E):E,L=this.containsAwait(E),S=this.generateFunctionBody(N,G||[]);H.push(` ${L?"async ":""}${P}(${B}) ${S}`)}if(J){let P=J[1],M=this.buildRender(P);if(M.blockFactories.length>0)I=M.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;
|
|
18
|
-
${
|
|
17
|
+
`;H.push(" _create() {");for(let G of M.createLines)H.push(` ${G}`);if(H.push(` return ${M.rootVar};`),H.push(" }"),M.setupLines.length>0){H.push(" _setup() {");for(let G of M.setupLines)H.push(` ${G}`);H.push(" }")}}if(H.push("}"),this.componentMembers=q,this.reactiveMembers=O,I)return`(() => {
|
|
18
|
+
${I}return ${H.join(`
|
|
19
19
|
`)};
|
|
20
|
-
})()`;return
|
|
21
|
-
`)},_.generateInComponent=function(U,u){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return`this.${U}`;if(Array.isArray(U)&&this.reactiveMembers){let f=this.transformComponentMembers(U);return this.generate(f,u)}return this.generate(U,u)},_.generateRender=function(U,u,f,F){throw Error("render blocks can only be used inside a component")},_.buildRender=function(U){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[];let u=this.is(U,"block")?U.slice(1):[U],f;if(u.length===0)f="null";else if(u.length===1)f=this.generateNode(u[0]);else{f=this.newElementVar("frag"),this._createLines.push(`${f} = document.createDocumentFragment();`);for(let F of u){let Y=this.generateNode(F);this._createLines.push(`${f}.appendChild(${Y});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:f}},_.newBlockVar=function(){return`create_block_${this._blockCount++}`},_.newElementVar=function(U="el"){return`this._${U}${this._elementCount++}`},_.newTextVar=function(){return`this._t${this._textCount++}`},_.generateNode=function(U){if(typeof U==="string"||U instanceof String){let X=U.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode(${X});`),M}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${X}.value; });`),M}let[Q,R]=X.split("#"),H=this.newElementVar(),Z=Q||"div";if(F1.has(Z)||this._svgDepth>0)this._createLines.push(`${H} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${H} = document.createElement('${Z}');`);if(R)this._createLines.push(`${H}.id = '${R}';`);return H}if(!Array.isArray(U)){let X=this.newElementVar("c");return this._createLines.push(`${X} = document.createComment('unknown');`),X}let[u,...f]=U,F=typeof u==="string"?u:u instanceof String?u.valueOf():null;if(F&&this.isComponent(F))return this.generateChildComponent(F,f);if(F&&this.isHtmlTag(F)){let[X,Q]=F.split("#");return this.generateTag(X||"div",[],f,Q)}if(F==="."){let[,X,Q]=U;if(X==="this"&&typeof Q==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(Q)){let D=this.newTextVar();return this._createLines.push(`${D} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${D}.data = this.${Q}.value; });`),D}let K=this.newElementVar("slot");return this._createLines.push(`${K} = this.${Q} instanceof Node ? this.${Q} : (this.${Q} != null ? document.createTextNode(String(this.${Q})) : document.createComment(''));`),K}let{tag:R,classes:H,id:Z}=this.collectTemplateClasses(U);if(R&&this.isHtmlTag(R))return this.generateTag(R,H,[],Z);let M=this.newTextVar(),J=this.generateInComponent(U,"value");return this._createLines.push(`${M} = document.createTextNode(String(${J}));`),M}if(Array.isArray(u)){if(Array.isArray(u[0])&&u[0][0]==="."&&(u[0][2]==="__clsx"||u[0][2]instanceof String&&u[0][2].valueOf()==="__clsx")){let H=typeof u[0][1]==="string"?u[0][1]:u[0][1].valueOf(),Z=u.slice(1);return this.generateDynamicTag(H,Z,f)}let{tag:X,classes:Q,id:R}=this.collectTemplateClasses(u);if(X&&this.isHtmlTag(X)){if(Q.length===1&&Q[0]==="__clsx")return this.generateDynamicTag(X,f,[]);return this.generateTag(X,Q,f,R)}}if(F==="->"||F==="=>")return this.generateTemplateBlock(f[1]);if(F==="if")return this.generateConditional(U);if(F==="for"||F==="for-in"||F==="for-of"||F==="for-as")return this.generateTemplateLoop(U);let Y=this.newTextVar(),A=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${Y} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Y}.data = ${A}; });`);else this._createLines.push(`${Y} = document.createTextNode(String(${A}));`);return Y},_.appendChildren=function(U,u){for(let f of u)if(this.is(f,"->")||this.is(f,"=>")){let F=f[2];if(this.is(F,"block"))for(let Y of F.slice(1))if(this.is(Y,"object"))this.generateAttributes(U,Y);else{let A=this.generateNode(Y);this._createLines.push(`${U}.appendChild(${A});`)}else if(F){let Y=this.generateNode(F);this._createLines.push(`${U}.appendChild(${Y});`)}}else if(this.is(f,"object"))this.generateAttributes(U,f);else if(typeof f==="string"||f instanceof String){let F=this.newTextVar(),Y=f.valueOf();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._createLines.push(`${F} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._createLines.push(`${F} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${F}.data = this.${Y}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Y))this._createLines.push(`${F} = document.createTextNode(String(this.${Y}));`);else this._createLines.push(`${F} = document.createTextNode(${this.generateInComponent(f,"value")});`);this._createLines.push(`${U}.appendChild(${F});`)}else if(f){let F=this.generateNode(f);this._createLines.push(`${U}.appendChild(${F});`)}},_.generateTag=function(U,u,f,F){let Y=this.newElementVar(),A=F1.has(U)||this._svgDepth>0;if(A)this._createLines.push(`${Y} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${Y} = document.createElement('${U}');`);if(F)this._createLines.push(`${Y}.id = '${F}';`);let X=this._pendingClassArgs,Q=this._pendingClassEl;if(u.length>0)this._pendingClassArgs=[`'${u.join(" ")}'`],this._pendingClassEl=Y;if(U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Y,f),U==="svg")this._svgDepth--;if(u.length>0){if(this._pendingClassArgs.length===1)if(A)this._createLines.push(`${Y}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${Y}.className = '${u.join(" ")}';`);else{let R=this._pendingClassArgs.join(", ");if(A)this._setupLines.push(`__effect(() => { ${Y}.setAttribute('class', __clsx(${R})); });`);else this._setupLines.push(`__effect(() => { ${Y}.className = __clsx(${R}); });`)}this._pendingClassArgs=X,this._pendingClassEl=Q}return Y},_.generateDynamicTag=function(U,u,f){let F=this.newElementVar();if(F1.has(U)||this._svgDepth>0)this._createLines.push(`${F} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${F} = document.createElement('${U}');`);let Y=u.map((Q)=>this.generateInComponent(Q,"value")),A=this._pendingClassArgs,X=this._pendingClassEl;if(this._pendingClassArgs=Y,this._pendingClassEl=F,U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(F,f),U==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let Q=this._pendingClassArgs.join(", ");if(F1.has(U)||this._svgDepth>0)this._setupLines.push(`__effect(() => { ${F}.setAttribute('class', __clsx(${Q})); });`);else this._setupLines.push(`__effect(() => { ${F}.className = __clsx(${Q}); });`)}return this._pendingClassArgs=A,this._pendingClassEl=X,F},_.generateAttributes=function(U,u){let f=c3(u.slice(1));for(let F=1;F<u.length;F++){let[Y,A]=u[F];if(this.is(Y,".")&&Y[1]==="this"){let X=Y[2];if(typeof A==="string"&&this.componentMembers?.has(A))this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => this.${A}(e)));`);else{let Q=this.generateInComponent(A,"value");this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => (${Q})(e)));`)}continue}if(typeof Y==="string"){if(Y.startsWith('"')&&Y.endsWith('"'))Y=Y.slice(1,-1);if(Y==="class"||Y==="className"){let Q=this.generateInComponent(A,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(Q);else if(this.hasReactiveDeps(A))if(this._svgDepth>0)this._setupLines.push(`__effect(() => { ${U}.setAttribute('class', __clsx(${Q})); });`);else this._setupLines.push(`__effect(() => { ${U}.className = __clsx(${Q}); });`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${Q});`);else this._createLines.push(`${U}.className = ${Q};`);continue}if(Y==="ref"){let Q=String(A).replace(/^["']|["']$/g,"");this._createLines.push(`this.${Q} = ${U};`);continue}if(Y.startsWith("__bind_")&&Y.endsWith("__")){let Q=Y.slice(7,-2),R=this.generateInComponent(A,"value"),H,Z;if(Q==="checked")H="change",Z="e.target.checked";else H="input",Z=f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${U}.${Q} = ${R}; });`);let M=`${R} = ${Z}`,J=!this.isSimpleAssignable(A)&&this.findRootReactiveMember(A);if(J)M+=`; this.${J}.touch?.()`;this._createLines.push(`${U}.addEventListener('${H}', (e) => { ${M}; });`);continue}let X=this.generateInComponent(A,"value");if((Y==="value"||Y==="checked")&&this.hasReactiveDeps(A)){this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);let Q=!this.isSimpleAssignable(A)&&this.findRootReactiveMember(A);if(this.isSimpleAssignable(A)||Q){let R=Y==="checked"?"change":"input",Z=`${X} = ${Y==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(Q)Z+=`; this.${Q}.touch?.()`;this._createLines.push(`${U}.addEventListener('${R}', (e) => { ${Z}; });`)}continue}if(Y==="innerHTML"||Y==="textContent"||Y==="innerText")if(this.hasReactiveDeps(A))this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);else this._createLines.push(`${U}.${Y} = ${X};`);else if(b3.has(Y))if(this.hasReactiveDeps(A))this._setupLines.push(`__effect(() => { ${U}.toggleAttribute('${Y}', !!${X}); });`);else this._createLines.push(`if (${X}) ${U}.setAttribute('${Y}', '');`);else if(this.hasReactiveDeps(A))this._setupLines.push(`__effect(() => { ${U}.setAttribute('${Y}', ${X}); });`);else this._createLines.push(`${U}.setAttribute('${Y}', ${X});`)}}},_.generateTemplateBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateNode(U);let u=U.slice(1);if(u.length===0){let F=this.newElementVar("empty");return this._createLines.push(`${F} = document.createComment('');`),F}if(u.length===1)return this.generateNode(u[0]);let f=this.newElementVar("frag");this._createLines.push(`${f} = document.createDocumentFragment();`);for(let F of u){let Y=this.generateNode(F);this._createLines.push(`${f}.appendChild(${Y});`)}return f},_.generateConditional=function(U){let[,u,f,F]=U,Y=this.newElementVar("anchor");this._createLines.push(`${Y} = document.createComment('if');`);let A=this.generateInComponent(u,"value"),X=this._loopVarStack.map((M)=>`${M.itemVar}, ${M.indexVar}`).join(", "),Q=X?`, ${X}`:"",R=this.newBlockVar();this.generateConditionBranch(R,f);let H=null;if(F)H=this.newBlockVar(),this.generateConditionBranch(H,F);let Z=[];if(Z.push(`// Conditional: ${R}${H?" / "+H:""}`),Z.push("{"),Z.push(` const anchor = ${Y};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;"),Z.push(" __effect(() => {"),Z.push(` const show = !!(${A});`),Z.push(` const want = show ? 'then' : ${F?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" currentBlock.d(true);"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${R}(this${Q});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${Q});`),Z.push(" }"),F)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${H}(this${Q});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${Q});`),Z.push(" }");return Z.push(" });"),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
-
`)),
|
|
23
|
-
`))},
|
|
24
|
-
`))
|
|
25
|
-
`)),R},_.generateChildComponent=function(U,u){let f=this.newElementVar("inst"),F=this.newElementVar("el"),{propsCode:Y,reactiveProps:A,childrenSetupLines:X}=this.buildComponentProps(u);this._createLines.push(`${f} = new ${U}(${Y});`),this._createLines.push(`${F} = ${f}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${f});`),this._setupLines.push(`if (${f}._setup) ${f}._setup();`),this._setupLines.push(`if (${f}.mounted) ${f}.mounted();`);for(let{key:Q,valueCode:R}of A)this._setupLines.push(`__effect(() => { if (${f}.${Q}) ${f}.${Q}.value = ${R}; });`);for(let Q of X)this._setupLines.push(Q);return F},_.buildComponentProps=function(U){let u=[],f=[],F=null,Y=[];for(let X of U)if(this.is(X,"object"))for(let Q=1;Q<X.length;Q++){let[R,H]=X[Q];if(typeof R==="string")if(this.reactiveMembers&&(typeof H==="string"&&this.reactiveMembers.has(H)||Array.isArray(H)&&H[0]==="."&&H[1]==="this"&&typeof H[2]==="string"&&this.reactiveMembers.has(H[2]))){let M=typeof H==="string"?H:H[2];u.push(`${R}: this.${M}`)}else{let M=this.generateInComponent(H,"value");if(u.push(`${R}: ${M}`),this.hasReactiveDeps(H))f.push({key:R,valueCode:M})}}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Q=X[2];if(Q){if(this.is(Q,"block")){let R=[];for(let H of Q.slice(1))if(this.is(H,"object"))for(let Z=1;Z<H.length;Z++){let[M,J]=H[Z];if(typeof M==="string")if(this.reactiveMembers&&(typeof J==="string"&&this.reactiveMembers.has(J)||Array.isArray(J)&&J[0]==="."&&J[1]==="this"&&typeof J[2]==="string"&&this.reactiveMembers.has(J[2]))){let D=typeof J==="string"?J:J[2];u.push(`${M}: this.${D}`)}else{let D=this.generateInComponent(J,"value");if(u.push(`${M}: ${D}`),this.hasReactiveDeps(J))f.push({key:M,valueCode:D})}}else R.push(H);Q=R.length>0?["block",...R]:null}if(Q){let R=this._createLines,H=this._setupLines;this._createLines=[],this._setupLines=[],F=this.generateTemplateBlock(Q);let Z=this._createLines,M=this._setupLines;this._createLines=R,this._setupLines=H;for(let J of Z)this._createLines.push(J);Y.push(...M),u.push(`children: ${F}`)}}}return{propsCode:u.length>0?`{ ${u.join(", ")} }`:"{}",reactiveProps:f,childrenSetupLines:Y}},_.hasReactiveDeps=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));if(U[0]==="."&&this._rootsAtThis(U[1]))return!0;for(let u of U)if(this.hasReactiveDeps(u))return!0;return!1},_.isSimpleAssignable=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));return!1},_.findRootReactiveMember=function(U){if(typeof U==="string")return this.reactiveMembers?.has(U)?U:null;if(!Array.isArray(U))return null;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers?.has(U[2])?U[2]:null;if(U[0]==="."||U[0]==="[]")return this.findRootReactiveMember(U[1]);return null},_._rootsAtThis=function(U){if(typeof U==="string")return U==="this";if(!Array.isArray(U)||U[0]!==".")return!1;return this._rootsAtThis(U[1])},_.getComponentRuntime=function(){return`
|
|
20
|
+
})()`;return H.join(`
|
|
21
|
+
`)},F.generateInComponent=function(U,u){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`${this._self}.${U}.value`;if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return`${this._self}.${U}`;if(Array.isArray(U)&&this.reactiveMembers){let f=this.transformComponentMembers(U);return this.generate(f,u)}return this.generate(U,u)},F.generateRender=function(U,u,f,_){throw Error("render blocks can only be used inside a component")},F.buildRender=function(U){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map;let u=this.is(U,"block")?U.slice(1):[U],f;if(u.length===0)f="null";else if(u.length===1)f=this.generateNode(u[0]);else{f=this.newElementVar("frag"),this._createLines.push(`${f} = document.createDocumentFragment();`);let _=[];for(let A of u){let Y=this.generateNode(A);this._createLines.push(`${f}.appendChild(${Y});`),_.push(Y)}this._fragChildren.set(f,_)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:f}},F.newBlockVar=function(){return`create_block_${this._blockCount++}`},F.newElementVar=function(U="el"){let u=`_${U}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(u);return this._factoryMode?u:`this.${u}`},F.newTextVar=function(){let U=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(U);return this._factoryMode?U:`this.${U}`},Object.defineProperty(F,"_self",{get(){return this._factoryMode?"ctx":"this"}}),F._pushEffect=function(U){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${U} }));`);else this._setupLines.push(`__effect(() => { ${U} });`)},F.generateNode=function(U){if(typeof U==="string"||U instanceof String){let Q=U.valueOf();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`")){let R=this.newTextVar();return this._createLines.push(`${R} = document.createTextNode(${Q});`),R}if(this.reactiveMembers&&this.reactiveMembers.has(Q)){let R=this.newTextVar();return this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${this._self}.${Q}.value;`),R}let[w,z]=Q.split("#"),K=this.newElementVar(),Z=w||"div";if(_1.has(Z)||this._svgDepth>0)this._createLines.push(`${K} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${K} = document.createElement('${Z}');`);if(z)this._createLines.push(`${K}.id = '${z}';`);return K}if(!Array.isArray(U)){let Q=this.newElementVar("c");return this._createLines.push(`${Q} = document.createComment('unknown');`),Q}let[u,...f]=U,_=typeof u==="string"?u:u instanceof String?u.valueOf():null;if(_&&this.isComponent(_))return this.generateChildComponent(_,f);if(_&&this.isHtmlTag(_)){let[Q,w]=_.split("#");return this.generateTag(Q||"div",[],f,w)}if(_==="."){let[,Q,w]=U;if(Q==="this"&&typeof w==="string"){let X=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(w)){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode('');`),this._pushEffect(`${q}.data = ${X}.${w}.value;`),q}let D=this.newElementVar("slot");return this._createLines.push(`${D} = ${X}.${w} instanceof Node ? ${X}.${w} : (${X}.${w} != null ? document.createTextNode(String(${X}.${w})) : document.createComment(''));`),D}let{tag:z,classes:K,id:Z}=this.collectTemplateClasses(U);if(z&&this.isHtmlTag(z))return this.generateTag(z,K,[],Z);let R=this.newTextVar(),J=this.generateInComponent(U,"value");return this._createLines.push(`${R} = document.createTextNode(String(${J}));`),R}if(Array.isArray(u)){if(Array.isArray(u[0])&&u[0][0]==="."&&(u[0][2]==="__clsx"||u[0][2]instanceof String&&u[0][2].valueOf()==="__clsx")){let K=typeof u[0][1]==="string"?u[0][1]:u[0][1].valueOf(),Z=u.slice(1);return this.generateDynamicTag(K,Z,f)}let{tag:Q,classes:w,id:z}=this.collectTemplateClasses(u);if(Q&&this.isHtmlTag(Q)){if(w.length===1&&w[0]==="__clsx")return this.generateDynamicTag(Q,f,[]);return this.generateTag(Q,w,f,z)}}if(_==="->"||_==="=>")return this.generateTemplateBlock(f[1]);if(_==="if")return this.generateConditional(U);if(_==="for"||_==="for-in"||_==="for-of"||_==="for-as")return this.generateTemplateLoop(U);let A=this.newTextVar(),Y=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${A} = document.createTextNode('');`),this._pushEffect(`${A}.data = ${Y};`);else this._createLines.push(`${A} = document.createTextNode(String(${Y}));`);return A},F.appendChildren=function(U,u){for(let f of u)if(this.is(f,"->")||this.is(f,"=>")){let _=f[2];if(this.is(_,"block"))for(let A of _.slice(1))if(this.is(A,"object"))this.generateAttributes(U,A);else{let Y=this.generateNode(A);this._createLines.push(`${U}.appendChild(${Y});`)}else if(_){let A=this.generateNode(_);this._createLines.push(`${U}.appendChild(${A});`)}}else if(this.is(f,"object"))this.generateAttributes(U,f);else if(typeof f==="string"||f instanceof String){let _=f.valueOf(),[A,Y]=_.split("#");if(this.isHtmlTag(A||"div")||this.isComponent(_)){let Q=this.generateNode(f);this._createLines.push(`${U}.appendChild(${Q});`)}else{let Q=this.newTextVar();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._createLines.push(`${Q} = document.createTextNode('');`),this._pushEffect(`${Q}.data = ${this._self}.${_}.value;`);else if(this.componentMembers&&this.componentMembers.has(_))this._createLines.push(`${Q} = document.createTextNode(String(${this._self}.${_}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.generateInComponent(f,"value")});`);this._createLines.push(`${U}.appendChild(${Q});`)}}else if(f){let _=this.generateNode(f);this._createLines.push(`${U}.appendChild(${_});`)}},F.generateTag=function(U,u,f,_){let A=this.newElementVar(),Y=_1.has(U)||this._svgDepth>0;if(Y)this._createLines.push(`${A} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${A} = document.createElement('${U}');`);if(_)this._createLines.push(`${A}.id = '${_}';`);let Q=this._pendingClassArgs,w=this._pendingClassEl;if(u.length>0)this._pendingClassArgs=[`'${u.join(" ")}'`],this._pendingClassEl=A;if(U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(A,f),U==="svg")this._svgDepth--;if(u.length>0){if(this._pendingClassArgs.length===1)if(Y)this._createLines.push(`${A}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${A}.className = '${u.join(" ")}';`);else{let z=this._pendingClassArgs.join(", ");if(Y)this._pushEffect(`${A}.setAttribute('class', __clsx(${z}));`);else this._pushEffect(`${A}.className = __clsx(${z});`)}this._pendingClassArgs=Q,this._pendingClassEl=w}return A},F.generateDynamicTag=function(U,u,f){let _=this.newElementVar();if(_1.has(U)||this._svgDepth>0)this._createLines.push(`${_} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${_} = document.createElement('${U}');`);let A=u.map((w)=>this.generateInComponent(w,"value")),Y=this._pendingClassArgs,Q=this._pendingClassEl;if(this._pendingClassArgs=A,this._pendingClassEl=_,U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,f),U==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let w=this._pendingClassArgs.join(", ");if(_1.has(U)||this._svgDepth>0)this._pushEffect(`${_}.setAttribute('class', __clsx(${w}));`);else this._pushEffect(`${_}.className = __clsx(${w});`)}return this._pendingClassArgs=Y,this._pendingClassEl=Q,_},F.generateAttributes=function(U,u){let f=b3(u.slice(1));for(let _=1;_<u.length;_++){let[A,Y]=u[_];if(this.is(A,".")&&A[1]==="this"){let Q=A[2];if(typeof Y==="string"&&this.componentMembers?.has(Y))this._createLines.push(`${U}.addEventListener('${Q}', (e) => __batch(() => ${this._self}.${Y}(e)));`);else{let w=this.generateInComponent(Y,"value");this._createLines.push(`${U}.addEventListener('${Q}', (e) => __batch(() => (${w})(e)));`)}continue}if(typeof A==="string"){if(A.startsWith('"')&&A.endsWith('"'))A=A.slice(1,-1);if(A==="class"||A==="className"){let w=this.generateInComponent(Y,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(w);else if(this.hasReactiveDeps(Y))if(this._svgDepth>0)this._pushEffect(`${U}.setAttribute('class', __clsx(${w}));`);else this._pushEffect(`${U}.className = __clsx(${w});`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${w});`);else this._createLines.push(`${U}.className = ${w};`);continue}if(A==="__transition__"){let w=String(Y).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${w}";`);continue}if(A==="ref"){let w=String(Y).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${w} = ${U};`);continue}if(A.startsWith("__bind_")&&A.endsWith("__")){let w=A.slice(7,-2),z=this.generateInComponent(Y,"value"),K,Z;if(w==="checked")K="change",Z="e.target.checked";else K="input",Z=f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${U}.${w} = ${z};`);let R=`${z} = ${Z}`,J=!this.isSimpleAssignable(Y)&&this.findRootReactiveMember(Y);if(J)R+=`; ${this._self}.${J}.touch?.()`;this._createLines.push(`${U}.addEventListener('${K}', (e) => { ${R}; });`);continue}let Q=this.generateInComponent(Y,"value");if((A==="value"||A==="checked")&&this.hasReactiveDeps(Y)){this._pushEffect(`${U}.${A} = ${Q};`);let w=!this.isSimpleAssignable(Y)&&this.findRootReactiveMember(Y);if(this.isSimpleAssignable(Y)||w){let z=A==="checked"?"change":"input",Z=`${Q} = ${A==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(w)Z+=`; ${this._self}.${w}.touch?.()`;this._createLines.push(`${U}.addEventListener('${z}', (e) => { ${Z}; });`)}continue}if(A==="innerHTML"||A==="textContent"||A==="innerText")if(this.hasReactiveDeps(Y))this._pushEffect(`${U}.${A} = ${Q};`);else this._createLines.push(`${U}.${A} = ${Q};`);else if(y3.has(A))if(this.hasReactiveDeps(Y))this._pushEffect(`${U}.toggleAttribute('${A}', !!${Q});`);else this._createLines.push(`if (${Q}) ${U}.setAttribute('${A}', '');`);else if(this.hasReactiveDeps(Y))this._pushEffect(`${U}.setAttribute('${A}', ${Q});`);else this._createLines.push(`${U}.setAttribute('${A}', ${Q});`)}}},F.generateTemplateBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateNode(U);let u=U.slice(1);if(u.length===0){let A=this.newElementVar("empty");return this._createLines.push(`${A} = document.createComment('');`),A}if(u.length===1)return this.generateNode(u[0]);let f=this.newElementVar("frag");this._createLines.push(`${f} = document.createDocumentFragment();`);let _=[];for(let A of u){let Y=this.generateNode(A);this._createLines.push(`${f}.appendChild(${Y});`),_.push(Y)}return this._fragChildren.set(f,_),f},F.generateConditional=function(U){let[,u,f,_]=U,A=this.newElementVar("anchor");this._createLines.push(`${A} = document.createComment('if');`);let Y=this.generateInComponent(u,"value"),Q=this._loopVarStack.map((X)=>`${X.itemVar}, ${X.indexVar}`).join(", "),w=Q?`, ${Q}`:"",z=this.newBlockVar();this.generateConditionBranch(z,f);let K=null;if(_)K=this.newBlockVar(),this.generateConditionBranch(K,_);let Z=[];Z.push(`// Conditional: ${z}${K?" / "+K:""}`),Z.push("{"),Z.push(` const anchor = ${A};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;");let R=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",J=this._factoryMode?"}));":"});";if(Z.push(` ${R}`),Z.push(` const show = !!(${Y});`),Z.push(` const want = show ? 'then' : ${_?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" const leaving = currentBlock;"),Z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),Z.push(" else { leaving.d(true); }"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${z}(${this._self}${w});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${w});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }"),_)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${K}(${this._self}${w});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${w});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }");return Z.push(` ${J}`),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
+
`)),A},F.generateConditionBranch=function(U,u){let f=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let _=this.generateTemplateBlock(u),A=this._createLines,Y=this._setupLines,Q=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=f;let w=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),z=w?`, ${w}`:"";this.emitBlockFactory(U,`ctx${z}`,_,A,Y,Q)},F.emitBlockFactory=function(U,u,f,_,A,Y,Q){let w=[];if(w.push(`function ${U}(${u}) {`),Y.size>0)w.push(` let ${[...Y].join(", ")};`);let z=A.length>0;if(z)w.push(" let disposers = [];");if(w.push(" return {"),Q)w.push(" _s: true,");let K=this._fragChildren.get(f),Z=K?K[0]:f;w.push(" c() {");for(let R of _)w.push(` ${R}`);if(w.push(` this._first = ${Z};`),w.push(" },"),w.push(" m(target, anchor) {"),K)for(let R of K)w.push(` if (target) target.insertBefore(${R}, anchor);`);else w.push(` if (target) target.insertBefore(${f}, anchor);`);if(w.push(" },"),w.push(` p(${u}) {`),z){w.push(" disposers.forEach(d => d());"),w.push(" disposers = [];");for(let R of A)w.push(` ${R}`)}if(w.push(" },"),w.push(" d(detaching) {"),z)w.push(" disposers.forEach(d => d());");if(K)for(let R of K)w.push(` if (detaching && ${R}) ${R}.remove();`);else w.push(` if (detaching && ${f}) ${f}.remove();`);w.push(" }"),w.push(" };"),w.push("}"),this._blockFactories.push(w.join(`
|
|
23
|
+
`))},F.generateTemplateLoop=function(U){let[u,f,_,A,Y,Q]=U,w=this.newBlockVar(),z=this.newElementVar("anchor");this._createLines.push(`${z} = document.createComment('for');`);let K=Array.isArray(f)?f:[f],Z=K[0],R=K[1]||"i",J=this.generateInComponent(_,"value"),X=Z;if(this.is(Q,"block")&&Q.length>1){let i=Q[1];if(Array.isArray(i))for(let o of i){if(this.is(o,"object"))for(let x=1;x<o.length;x++){let[K1,k]=o[x];if(K1==="key"){X=this.generate(k,"value");break}}if(X!==Z)break}}let D=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let q=this._loopVarStack.map((i)=>`${i.itemVar}, ${i.indexVar}`).join(", "),O=q?`, ${q}`:"";this._loopVarStack.push({itemVar:Z,indexVar:R});let H=this.generateTemplateBlock(Q);this._loopVarStack.pop();let I=this._createLines,P=this._setupLines,M=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=D;let G=P.length===0,E=`ctx, ${Z}, ${R}${O}`;this.emitBlockFactory(w,E,H,I,P,M,G);let N=X!==Z?`(${Z}, ${R}) => ${X}`:"null",L=q?`, ${q}`:"",S=[];S.push(`// Loop: ${w}`),S.push("{"),S.push(" const __s = { blocks: [], keys: [] };");let j=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",c=this._factoryMode?"}));":"});";return S.push(` ${j}`),S.push(` __reconcile(${z}, __s, ${J}, ${this._self}, ${w}, ${N}${L});`),S.push(` ${c}`),S.push("}"),this._setupLines.push(S.join(`
|
|
24
|
+
`)),z},F.generateChildComponent=function(U,u){let f=this.newElementVar("inst"),_=this.newElementVar("el"),{propsCode:A,reactiveProps:Y,childrenSetupLines:Q}=this.buildComponentProps(u),w=this._self;this._createLines.push(`${f} = new ${U}(${A});`),this._createLines.push(`${_} = ${f}._create();`),this._createLines.push(`(${w}._children || (${w}._children = [])).push(${f});`),this._setupLines.push(`try { if (${f}._setup) ${f}._setup(); if (${f}.mounted) ${f}.mounted(); } catch (__e) { __handleComponentError(__e, ${f}); }`);for(let{key:z,valueCode:K}of Y)this._pushEffect(`if (${f}.${z}) ${f}.${z}.value = ${K};`);for(let z of Q)this._setupLines.push(z);return _},F.buildComponentProps=function(U){let u=[],f=[],_=null,A=[],Y=(z,K)=>{if(this.reactiveMembers&&(typeof K==="string"&&this.reactiveMembers.has(K)||Array.isArray(K)&&K[0]==="."&&K[1]==="this"&&typeof K[2]==="string"&&this.reactiveMembers.has(K[2]))){let R=typeof K==="string"?K:K[2];u.push(`${z}: ${this._self}.${R}`)}else{let R=this.generateInComponent(K,"value");if(u.push(`${z}: ${R}`),this.hasReactiveDeps(K))f.push({key:z,valueCode:R})}},Q=(z)=>{for(let K=1;K<z.length;K++){let[Z,R]=z[K];if(typeof Z==="string")Y(Z,R)}};for(let z of U)if(this.is(z,"object"))Q(z);else if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let K=z[2];if(K){if(this.is(K,"block")){let Z=[];for(let R of K.slice(1))if(this.is(R,"object"))Q(R);else Z.push(R);K=Z.length>0?["block",...Z]:null}if(K){let Z=this._createLines,R=this._setupLines;this._createLines=[],this._setupLines=[],_=this.generateTemplateBlock(K);let J=this._createLines,X=this._setupLines;this._createLines=Z,this._setupLines=R;for(let D of J)this._createLines.push(D);A.push(...X),u.push(`children: ${_}`)}}}return{propsCode:u.length>0?`{ ${u.join(", ")} }`:"{}",reactiveProps:f,childrenSetupLines:A}},F.hasReactiveDeps=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));if(U[0]==="."&&this._rootsAtThis(U[1]))return!0;for(let u of U)if(this.hasReactiveDeps(u))return!0;return!1},F.isSimpleAssignable=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));return!1},F.findRootReactiveMember=function(U){if(typeof U==="string")return this.reactiveMembers?.has(U)?U:null;if(!Array.isArray(U))return null;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers?.has(U[2])?U[2]:null;if(U[0]==="."||U[0]==="[]")return this.findRootReactiveMember(U[1]);return null},F._rootsAtThis=function(U){if(typeof U==="string")return U==="this";if(!Array.isArray(U)||U[0]!==".")return!1;return this._rootsAtThis(U[1])},F.getComponentRuntime=function(){return`
|
|
26
25
|
// ============================================================================
|
|
27
26
|
// Rip Component Runtime
|
|
28
27
|
// ============================================================================
|
|
@@ -68,21 +67,203 @@ function __clsx(...args) {
|
|
|
68
67
|
return args.filter(Boolean).join(' ');
|
|
69
68
|
}
|
|
70
69
|
|
|
70
|
+
function __lis(arr) {
|
|
71
|
+
const n = arr.length;
|
|
72
|
+
if (n === 0) return [];
|
|
73
|
+
const tails = [], indices = [], prev = new Array(n).fill(-1);
|
|
74
|
+
for (let i = 0; i < n; i++) {
|
|
75
|
+
if (arr[i] === -1) continue;
|
|
76
|
+
let lo = 0, hi = tails.length;
|
|
77
|
+
while (lo < hi) {
|
|
78
|
+
const mid = (lo + hi) >> 1;
|
|
79
|
+
if (tails[mid] < arr[i]) lo = mid + 1; else hi = mid;
|
|
80
|
+
}
|
|
81
|
+
tails[lo] = arr[i];
|
|
82
|
+
indices[lo] = i;
|
|
83
|
+
if (lo > 0) prev[i] = indices[lo - 1];
|
|
84
|
+
}
|
|
85
|
+
const result = [];
|
|
86
|
+
let k = indices[tails.length - 1];
|
|
87
|
+
for (let i = tails.length - 1; i >= 0; i--) { result.push(k); k = prev[k]; }
|
|
88
|
+
result.reverse();
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function __reconcile(anchor, state, items, ctx, factory, keyFn, ...outer) {
|
|
93
|
+
const parent = anchor.parentNode;
|
|
94
|
+
if (!parent) return;
|
|
95
|
+
|
|
96
|
+
const oldKeys = state.keys;
|
|
97
|
+
const oldBlocks = state.blocks;
|
|
98
|
+
const oldLen = oldKeys.length;
|
|
99
|
+
const newLen = items.length;
|
|
100
|
+
const newBlocks = new Array(newLen);
|
|
101
|
+
const hasKeyFn = keyFn != null;
|
|
102
|
+
const newKeys = hasKeyFn ? items.map((item, i) => keyFn(item, i)) : items;
|
|
103
|
+
|
|
104
|
+
// Phase 0: first render — batch create via DocumentFragment
|
|
105
|
+
if (oldLen === 0) {
|
|
106
|
+
if (newLen > 0) {
|
|
107
|
+
const frag = document.createDocumentFragment();
|
|
108
|
+
for (let i = 0; i < newLen; i++) {
|
|
109
|
+
const block = factory(ctx, items[i], i, ...outer);
|
|
110
|
+
block.c();
|
|
111
|
+
block.m(frag, null);
|
|
112
|
+
if (!block._s) block.p(ctx, items[i], i, ...outer);
|
|
113
|
+
newBlocks[i] = block;
|
|
114
|
+
}
|
|
115
|
+
parent.insertBefore(frag, anchor);
|
|
116
|
+
}
|
|
117
|
+
state.keys = hasKeyFn ? newKeys : items.slice();
|
|
118
|
+
state.blocks = newBlocks;
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Phase 1: prefix scan — skip p() (item+index identical, effects already live)
|
|
123
|
+
let start = 0;
|
|
124
|
+
const minLen = oldLen < newLen ? oldLen : newLen;
|
|
125
|
+
while (start < minLen && oldKeys[start] === newKeys[start]) {
|
|
126
|
+
newBlocks[start] = oldBlocks[start];
|
|
127
|
+
start++;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Phase 2: suffix scan — call p() (index may differ)
|
|
131
|
+
let oldEnd = oldLen - 1;
|
|
132
|
+
let newEnd = newLen - 1;
|
|
133
|
+
while (oldEnd >= start && newEnd >= start && oldKeys[oldEnd] === newKeys[newEnd]) {
|
|
134
|
+
const block = oldBlocks[oldEnd];
|
|
135
|
+
if (!block._s) block.p(ctx, items[newEnd], newEnd, ...outer);
|
|
136
|
+
newBlocks[newEnd] = block;
|
|
137
|
+
oldEnd--;
|
|
138
|
+
newEnd--;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Remove old blocks in the middle that aren't in the new set
|
|
142
|
+
if (start > newEnd) {
|
|
143
|
+
for (let i = start; i <= oldEnd; i++) oldBlocks[i].d(true);
|
|
144
|
+
} else if (start > oldEnd) {
|
|
145
|
+
// Phase 3a: pure insertion — batch via DocumentFragment
|
|
146
|
+
const next = newEnd + 1 < newLen ? newBlocks[newEnd + 1]._first : anchor;
|
|
147
|
+
const frag = document.createDocumentFragment();
|
|
148
|
+
for (let i = start; i <= newEnd; i++) {
|
|
149
|
+
const block = factory(ctx, items[i], i, ...outer);
|
|
150
|
+
block.c();
|
|
151
|
+
block.m(frag, null);
|
|
152
|
+
if (!block._s) block.p(ctx, items[i], i, ...outer);
|
|
153
|
+
newBlocks[i] = block;
|
|
154
|
+
}
|
|
155
|
+
parent.insertBefore(frag, next);
|
|
156
|
+
} else {
|
|
157
|
+
// Phase 4: general case — temp Map + LIS
|
|
158
|
+
const oldKeyIdx = new Map();
|
|
159
|
+
for (let i = start; i <= oldEnd; i++) oldKeyIdx.set(oldKeys[i], i);
|
|
160
|
+
|
|
161
|
+
const seq = new Array(newEnd - start + 1);
|
|
162
|
+
for (let i = start; i <= newEnd; i++) {
|
|
163
|
+
const key = newKeys[i];
|
|
164
|
+
const oldIdx = oldKeyIdx.get(key);
|
|
165
|
+
if (oldIdx !== undefined) {
|
|
166
|
+
seq[i - start] = oldIdx - start;
|
|
167
|
+
const block = oldBlocks[oldIdx];
|
|
168
|
+
if (!block._s) block.p(ctx, items[i], i, ...outer);
|
|
169
|
+
newBlocks[i] = block;
|
|
170
|
+
oldKeyIdx.delete(key);
|
|
171
|
+
} else {
|
|
172
|
+
seq[i - start] = -1;
|
|
173
|
+
const block = factory(ctx, items[i], i, ...outer);
|
|
174
|
+
block.c();
|
|
175
|
+
if (!block._s) block.p(ctx, items[i], i, ...outer);
|
|
176
|
+
newBlocks[i] = block;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
for (const idx of oldKeyIdx.values()) oldBlocks[idx].d(true);
|
|
181
|
+
|
|
182
|
+
const lis = __lis(seq);
|
|
183
|
+
const lisSet = new Set(lis);
|
|
184
|
+
let next = newEnd + 1 < newLen ? newBlocks[newEnd + 1]._first : anchor;
|
|
185
|
+
for (let i = newEnd; i >= start; i--) {
|
|
186
|
+
const block = newBlocks[i];
|
|
187
|
+
if (!lisSet.has(i - start)) {
|
|
188
|
+
block.m(parent, next);
|
|
189
|
+
}
|
|
190
|
+
next = block._first;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
state.keys = hasKeyFn ? newKeys : items.slice();
|
|
195
|
+
state.blocks = newBlocks;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
let __cssInjected = false;
|
|
199
|
+
function __transitionCSS() {
|
|
200
|
+
if (__cssInjected) return;
|
|
201
|
+
__cssInjected = true;
|
|
202
|
+
const s = document.createElement('style');
|
|
203
|
+
s.textContent = [
|
|
204
|
+
'.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}',
|
|
205
|
+
'.fade-enter-from,.fade-leave-to{opacity:0}',
|
|
206
|
+
'.slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}',
|
|
207
|
+
'.slide-enter-from{opacity:0;transform:translateY(-8px)}',
|
|
208
|
+
'.slide-leave-to{opacity:0;transform:translateY(8px)}',
|
|
209
|
+
'.scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}',
|
|
210
|
+
'.scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}',
|
|
211
|
+
'.blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}',
|
|
212
|
+
'.blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}',
|
|
213
|
+
'.fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}',
|
|
214
|
+
'.fly-enter-from{opacity:0;transform:translateY(-20px)}',
|
|
215
|
+
'.fly-leave-to{opacity:0;transform:translateY(20px)}',
|
|
216
|
+
].join('');
|
|
217
|
+
document.head.appendChild(s);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function __transition(el, name, dir, done) {
|
|
221
|
+
__transitionCSS();
|
|
222
|
+
const cl = el.classList;
|
|
223
|
+
const from = name + '-' + dir + '-from';
|
|
224
|
+
const active = name + '-' + dir + '-active';
|
|
225
|
+
const to = name + '-' + dir + '-to';
|
|
226
|
+
cl.add(from, active);
|
|
227
|
+
requestAnimationFrame(() => {
|
|
228
|
+
requestAnimationFrame(() => {
|
|
229
|
+
cl.remove(from);
|
|
230
|
+
cl.add(to);
|
|
231
|
+
const end = () => { cl.remove(active, to); if (done) done(); };
|
|
232
|
+
el.addEventListener('transitionend', end, { once: true });
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function __handleComponentError(error, component) {
|
|
238
|
+
let current = component;
|
|
239
|
+
while (current) {
|
|
240
|
+
if (current.onError) {
|
|
241
|
+
try { current.onError(error, component); return; } catch (_) {}
|
|
242
|
+
}
|
|
243
|
+
current = current._parent;
|
|
244
|
+
}
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
|
|
71
248
|
class __Component {
|
|
72
249
|
constructor(props = {}) {
|
|
73
250
|
Object.assign(this, props);
|
|
74
251
|
const prev = __pushComponent(this);
|
|
75
|
-
this._init(props);
|
|
252
|
+
try { this._init(props); } catch (e) { __popComponent(prev); __handleComponentError(e, this); return; }
|
|
76
253
|
__popComponent(prev);
|
|
77
254
|
}
|
|
78
255
|
_init() {}
|
|
79
256
|
mount(target) {
|
|
80
257
|
if (typeof target === "string") target = document.querySelector(target);
|
|
81
258
|
this._target = target;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
259
|
+
try {
|
|
260
|
+
this._root = this._create();
|
|
261
|
+
target.appendChild(this._root);
|
|
262
|
+
if (this._setup) this._setup();
|
|
263
|
+
if (this.mounted) this.mounted();
|
|
264
|
+
} catch (error) {
|
|
265
|
+
__handleComponentError(error, this);
|
|
266
|
+
}
|
|
86
267
|
return this;
|
|
87
268
|
}
|
|
88
269
|
unmount() {
|
|
@@ -103,28 +284,28 @@ class __Component {
|
|
|
103
284
|
|
|
104
285
|
// Register on globalThis for runtime deduplication
|
|
105
286
|
if (typeof globalThis !== 'undefined') {
|
|
106
|
-
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
|
|
287
|
+
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
107
288
|
}
|
|
108
289
|
|
|
109
|
-
`}}function
|
|
110
|
-
`)>=0){let
|
|
111
|
-
`).map((
|
|
112
|
-
`)}let U=$[0];if(
|
|
113
|
-
`))return" ".repeat(W)+
|
|
114
|
-
`))
|
|
115
|
-
`).map((
|
|
116
|
-
`)}else
|
|
117
|
-
`)){
|
|
118
|
-
`)}class
|
|
119
|
-
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W,...
|
|
120
|
-
`))return`\`${
|
|
121
|
-
`),
|
|
122
|
-
`),
|
|
290
|
+
`}}function $1($){let W="",F=$<0?-$<<1|1:$<<1;do{let U=F&31;if(F>>>=5,F>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(F>0);return W}class v1{constructor($,W,F=null){this.file=$,this.source=W,this.sourceContent=F,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine($){while(this.lines.length<=$)this.lines.push([])}addName($){if(this.nameIndex.has($))return this.nameIndex.get($);let W=this.names.length;return this.names.push($),this.nameIndex.set($,W),W}addMapping($,W,F,U,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(F==null){this.lines[$].push($1(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:$,genCol:W,origLine:F,origCol:U});let f=$1(W-this.prevGenCol);if(this.prevGenCol=W,f+=$1(0),f+=$1(F-this.prevOrigLine),this.prevOrigLine=F,f+=$1(U-this.prevOrigCol),this.prevOrigCol=U,u!=null){let _=this.addName(u);f+=$1(_-this.prevNameIdx),this.prevNameIdx=_}this.lines[$].push(f)}toReverseMap(){let $=new Map;for(let W of this.mappings)if(!$.has(W.origLine))$.set(W.origLine,{genLine:W.genLine,genCol:W.genCol});return $}toJSON(){let $=this.lines.map((F)=>F.join(",")).join(";"),W={version:3,file:this.file,sources:[this.source],names:this.names,mappings:$};if(this.sourceContent!=null)W.sourcesContent=[this.sourceContent];return JSON.stringify(W)}}var V=($,W)=>$ instanceof String?$[W]:void 0,T=($)=>$ instanceof String?$.valueOf():$,c3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function G1($){if(!Array.isArray($)||$.length===0)return!1;let W=$[0]?.valueOf?.()??$[0];if(c3.has(W))return!0;return $.length<=4&&!$.some(Array.isArray)}function A1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let W=String($);if(W[0]==="/"&&W.indexOf(`
|
|
291
|
+
`)>=0){let F=W.match(/\/([gimsuvy]*)$/),U=F?F[1]:"",u=W.slice(1);return u=U?u.slice(0,-U.length-1):u.slice(0,-1),`"/${u.split(`
|
|
292
|
+
`).map((A)=>A.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function l($,W=0,F=!1){if(!Array.isArray($))return A1($);if(F&&$[0]==="program"){let Q=$[1],z=[Array.isArray(Q)?"(program":"(program "+A1(Q)],K=Array.isArray(Q)?1:2;for(let Z=K;Z<$.length;Z++){let R=l($[Z],2,!1);z.push(R[0]==="("?" "+R:R)}return z.push(")"),z.join(`
|
|
293
|
+
`)}let U=$[0];if(G1($)&&$.slice(1).every((Q)=>!Array.isArray(Q)||G1(Q))){let w=`(${$.map((z)=>Array.isArray(z)?l(z,0,!1):A1(z)).join(" ")})`;if(!w.includes(`
|
|
294
|
+
`))return" ".repeat(W)+w}let f=" ".repeat(W),_;if(Array.isArray(U)){if(_=l(U,0,!1),_.includes(`
|
|
295
|
+
`))_=_.split(`
|
|
296
|
+
`).map((w,z)=>z===0?w:" ".repeat(W+2)+w).join(`
|
|
297
|
+
`)}else _=A1(U);let A=[`${f}(${_}`],Y=U==="block";for(let Q=1;Q<$.length;Q++){let w=$[Q];if(!Array.isArray(w))A[A.length-1]+=" "+A1(w);else{let z=G1(w)&&w.every((K)=>!Array.isArray(K)||G1(K));if(!Y&&z){let K=l(w,0,!1);if(!K.includes(`
|
|
298
|
+
`)){A[A.length-1]+=" "+K;continue}}A.push(l(w,W+2,!1))}}return A[A.length-1]+=")",A.join(`
|
|
299
|
+
`)}class C{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"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",continue:"generateContinue","?":"generateExistential",defined:"generateDefined","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",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,this.sourceMap=$.sourceMap||null,$.reactiveVars)this.reactiveVars=new Set($.reactiveVars)}compile($){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables($);let W=this.generate($);if(this.sourceMap)this.buildMappings();return W}buildMappings(){if(!this._stmtEntries)return;let $=this._preambleLines;for(let W of this._stmtEntries){if(W.loc)this.sourceMap.addMapping($,0,W.loc.r,W.loc.c);$+=W.code.split(`
|
|
300
|
+
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W,...F]=$;if(W=T(W),Array.isArray(W)){$.forEach((U)=>this.collectProgramVariables(U));return}if(W==="export"||W==="export-default"||W==="export-all"||W==="export-from")return;if(W==="state"||W==="computed"){let[U]=F,u=T(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(W==="readonly")return;if(W==="component")return;if(C.ASSIGNMENT_OPS.has(W)){let[U,u]=F;if(typeof U==="string"||U instanceof String){let f=T(U);if(!this.reactiveVars?.has(f))this.programVars.add(f)}else if(this.is(U,"array"))this.collectVarsFromArray(U,this.programVars);else if(this.is(U,"object"))this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(u);return}if(W==="def"||W==="->"||W==="=>"||W==="effect")return;if(W==="if"){let[U,u,f]=F;if(this.collectProgramVariables(U),this.collectProgramVariables(u),f)this.collectProgramVariables(f);return}if(W==="try"){if(this.collectProgramVariables(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[U,u]=F[1];if(U&&this.is(U,"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&&this.is(U,"array"))U.slice(1).forEach((f)=>{if(typeof f==="string")this.programVars.add(f)});this.collectProgramVariables(u)}if(F.length===3)this.collectProgramVariables(F[2]);else if(F.length===2&&(!Array.isArray(F[1])||F[1][0]==="block"))this.collectProgramVariables(F[1]);return}F.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let W=new Set,F=(U)=>{if(!Array.isArray(U))return;let[u,...f]=U;if(u=T(u),Array.isArray(u)){U.forEach((_)=>F(_));return}if(C.ASSIGNMENT_OPS.has(u)){let[_,A]=f;if(typeof _==="string")W.add(_);else if(this.is(_,"array"))this.collectVarsFromArray(_,W);else if(this.is(_,"object"))this.collectVarsFromObject(_,W);F(A);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(F(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[_,A]=f[1];if(_&&this.is(_,"object"))_.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2&&typeof Y[1]==="string")W.add(Y[1])});else if(_&&this.is(_,"array"))_.slice(1).forEach((Y)=>{if(typeof Y==="string")W.add(Y)});F(A)}if(f.length===3)F(f[2]);else if(f.length===2&&(!Array.isArray(f[1])||f[1][0]==="block"))F(f[1]);return}f.forEach((_)=>F(_))};return F($),W}generate($,W="statement"){if($ instanceof String){if(V($,"await")===!0)return`await ${T($)}()`;if(V($,"predicate"))return`(${T($)} != null)`;if(V($,"delimiter")==="///"&&V($,"heregex")){let A=T($),Y=A.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,Q,w]=Y;return`/${this.processHeregex(Q)}/${w}`}return A}let _=V($,"quote");if(_){let A=T($);if(_==='"""'||_==="'''"){let Q=this.extractStringContent($);return Q=Q.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${Q}\``}if(A[0]===_)return A;let Y=A.slice(1,-1);return`${_}${Y}${_}`}$=T($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let _=$.slice(1,-1);if(_.includes(`
|
|
301
|
+
`))return`\`${_.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let A=_.includes("'")&&!_.includes('"')?'"':"'",Y=_.replace(new RegExp(A,"g"),`\\${A}`);return`${A}${Y}${A}`}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[F,...U]=$,u=V(F,"await");F=T(F);let f=C.GENERATORS[F];if(f)return this[f](F,U,W,$);if(typeof F==="string"&&!F.startsWith('"')&&!F.startsWith("'")){if(C.NUMBER_START_RE.test(F))return F;if(F==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let w=U.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${w})`}if(W==="statement"&&U.length===1){let w=this.findPostfixConditional(U[0]);if(w){let z=this.rebuildWithoutConditional(w),K=this.generate(F,"value"),Z=this.generate(w.condition,"value"),R=this.generate(z,"value"),J=`${K}(${R})`;return`if (${Z}) ${J}`}}let _=u===!0,A=this.generate(F,"value"),Y=U.map((w)=>this.unwrap(this.generate(w,"value"))).join(", "),Q=`${A}(${Y})`;return _?`await ${Q}`:Q}if(Array.isArray(F)&&typeof F[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(F[0]))return`(${$.map((Y)=>this.generate(Y,"value")).join(", ")})`}if(Array.isArray(F)){if(F[0]==="."&&(F[2]==="new"||T(F[2])==="new")){let w=F[1],z=this.generate(w,"value"),K=U.map((R)=>this.unwrap(this.generate(R,"value"))).join(", ");return`new ${Array.isArray(w)?`(${z})`:z}(${K})`}if(W==="statement"&&U.length===1){let w=this.findPostfixConditional(U[0]);if(w){let z=this.rebuildWithoutConditional(w),K=this.generate(F,"value"),Z=this.generate(w.condition,"value"),R=this.generate(z,"value"),J=`${K}(${R})`;return`if (${Z}) ${J}`}}let _=!1,A;if(F[0]==="."&&V(F[2],"await")===!0){_=!0;let[w,z]=F.slice(1),K=this.generate(w,"value");A=`${C.NUMBER_LITERAL_RE.test(K)||(this.is(w,"object")||this.is(w,"await")||this.is(w,"yield"))?`(${K})`:K}.${T(z)}`}else A=this.generate(F,"value");let Y=U.map((w)=>this.unwrap(this.generate(w,"value"))).join(", "),Q=`${A}(${Y})`;return _?`await ${Q}`:Q}throw Error(`Unknown s-expression type: ${F}`)}generateProgram($,W,F,U){let u="",f=[],_=[],A=[];for(let J of W){if(!Array.isArray(J)){A.push(J);continue}let X=J[0];if(X==="import")f.push(J);else if(X==="export"||X==="export-default"||X==="export-all"||X==="export-from")_.push(J);else A.push(J)}let Y=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],Q=A.map((J,X)=>{let D=A.length===1&&f.length===0&&_.length===0,q=this.is(J,"object"),O=q&&J.length===2&&Array.isArray(J[1])&&Array.isArray(J[1][1])&&J[1][1][0]==="comprehension",H=this.is(J,"comprehension")||this.is(J,"object-comprehension")||this.is(J,"do-iife"),I=this.programVars.size===0,P=D&&q&&I&&!H&&!O,G=X===A.length-1&&H,E;if(P)E=`(${this.generate(J,"value")})`;else if(G)E=this.generate(J,"value");else E=this.generate(J,"statement");if(E&&!E.endsWith(";")){let N=Array.isArray(J)?J[0]:null;if(!Y.includes(N)||!E.endsWith("}"))E+=";"}let B=Array.isArray(J)?J.loc:null;return{code:E,loc:B}}),w=Q.map((J)=>J.code).join(`
|
|
302
|
+
`),z=!1;if(f.length>0)u+=f.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))).join(`
|
|
303
|
+
`),z=!0;if(this.programVars.size>0){let J=Array.from(this.programVars).sort().join(", ");if(z)u+=`
|
|
123
304
|
`;u+=`let ${J};
|
|
124
|
-
`,
|
|
125
|
-
`;u+=Z1(),
|
|
126
|
-
`,
|
|
127
|
-
`,
|
|
305
|
+
`,z=!0}let K=this.options.skipPreamble,Z=this.options.skipRuntimes;if(!K){if(z)u+=`
|
|
306
|
+
`;u+=Z1(),z=!0;let J=Z?"var":"const";if(this.helpers.has("slice"))u+=`${J} slice = [].slice;
|
|
307
|
+
`,z=!0;if(this.helpers.has("modulo"))u+=`${J} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
308
|
+
`,z=!0;if(this.helpers.has("toMatchable"))u+=`${J} toMatchable = (v, allowNewlines) => {
|
|
128
309
|
`,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
129
310
|
`,u+=` if (v == null) return "";
|
|
130
311
|
`,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
@@ -138,155 +319,155 @@ if (typeof globalThis !== 'undefined') {
|
|
|
138
319
|
`,u+=` }
|
|
139
320
|
`,u+=` return "";
|
|
140
321
|
`,u+=`};
|
|
141
|
-
`,
|
|
142
|
-
`+
|
|
143
|
-
`);if(this.usesReactivity&&!
|
|
322
|
+
`,z=!0}let R="";if(_.length>0)R=`
|
|
323
|
+
`+_.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))).join(`
|
|
324
|
+
`);if(this.usesReactivity&&!K){if(Z)u+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
144
325
|
`;else if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
145
|
-
`;else u+=this.getReactiveRuntime();
|
|
146
|
-
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
|
|
147
|
-
`;else u+=this.getComponentRuntime();
|
|
326
|
+
`;else u+=this.getReactiveRuntime();z=!0}if(this.usesTemplates&&!K){if(Z)u+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
327
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
328
|
+
`;else u+=this.getComponentRuntime();z=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!K)u+=`var DATA;
|
|
148
329
|
_setDataSection();
|
|
149
|
-
`,
|
|
150
|
-
`;if(this._stmtEntries=
|
|
151
|
-
`).length-1,u+=
|
|
330
|
+
`,z=!0;if(z&&u.length>0)u+=`
|
|
331
|
+
`;if(this._stmtEntries=Q,this._preambleLines=u.length===0?0:u.split(`
|
|
332
|
+
`).length-1,u+=w,u+=R,this.dataSection!==null&&this.dataSection!==void 0)u+=`
|
|
152
333
|
|
|
153
334
|
function _setDataSection() {
|
|
154
335
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
155
|
-
}`;return u}generateBinaryOp($,W,_,U){if(($==="+"||$==="-")&&W.length===1)return`(${$}${this.generate(W[0],"value")})`;let[u,f]=W;if($==="*"){let Y=u?.valueOf?.()??u;if(typeof Y==="string"&&/^["']/.test(Y))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let F=new Set(["<",">","<=",">="]);if(F.has($)&&Array.isArray(u)){let Y=u[0]?.valueOf?.()??u[0];if(F.has(Y)){let A=this.generate(u[1],"value"),X=this.generate(u[2],"value"),Q=this.generate(f,"value");return`((${A} ${Y} ${X}) && (${X} ${$} ${Q}))`}}if($==="!?"){let Y=this.generate(u,"value"),A=this.generate(f,"value");return`(${Y} !== undefined ? ${Y} : ${A})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[_,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(_,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[_,U]=W;this.helpers.add("modulo");let u=this.generate(_,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[_,U]=W;return`Math.floor(${this.generate(_,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[_,U]=W,u=this.generate(_,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,_,U){let[u,f]=W,F=$==="?="?"??=":$,Y=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&h(u,"await")!==void 0&&!Y){let J=h(u,"await")===!0?"!":"&";throw Error(`Cannot use ${J} sigil in variable declaration '${S(u)}'.`)}if(u instanceof String&&h(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let A=this.is(u,"array",0),X=this.is(u,"object",0);if(A||X){let J=this.generate(f,"value");return X&&_==="statement"?`(${J})`:J}if(Array.isArray(f)&&F==="="&&f[0]==="control"){let[,J,K,D]=f,O=S(J),G=D[0]==="return",z=this.generate(u,"value"),E=this.generate(K,"value"),P=D.length>1?D[1]:null,w=G?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(_==="value"){if(O==="??")return`(() => { const __v = ${E}; if (__v == null) ${w}; return (${z} = __v); })()`;if(O==="||")return`(() => { const __v = ${E}; if (!__v) ${w}; return (${z} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${w}; return (${z} = __v); })()`}if(O==="??")return`if ((${z} = ${E}) == null) ${w}`;if(O==="||")return`if (!(${z} = ${E})) ${w}`;return`if ((${z} = ${E})) ${w}`}if(this.is(u,"array")){let J=u.slice(1).findIndex((K)=>this.is(K,"...")||K==="...");if(J!==-1&&J<u.length-2){let K=u.slice(1),D=K.slice(J+1),O=D.length;if(O>0){let G=this.generate(f,"value"),E=K.slice(0,J).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=D.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),K.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let w=K[J],q=this.is(w,"...")?w[1]:null,I=[];if(E)I.push(`[${E}] = ${G}`);if(q)I.push(`[...${q}] = ${G}.slice(${J}, -${O})`);return I.push(`[${P}] = slice.call(${G}, -${O})`),I.join(", ")}}}if(_==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[J,K,D]=f;if(this.is(D,"if")&&D.length===3){let[,O,G]=D,z=Array.isArray(G)&&G.length===1?G[0]:G,E=[J,K,z],P=this.generate(u,"value"),w=this.generate(O,"value"),q=this.generate(E,"value");return`if (${w}) ${P} = ${q}`}}if(_==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[J,K,D]=f,O=Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block");if(J==="if"&&O){let G=Array.isArray(D)&&D.length===1?D[0]:D,z=this.generate(u,"value"),E=this.unwrapLogical(this.generate(K,"value")),P=this.generate(G,"value");return`if (${E}) ${z} = ${P}`}}let Q;if(u instanceof String&&h(u,"await")!==void 0)Q=S(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))Q=`${u}.value`;else Q=this.generate(u,"value");let R=this.generate(f,"value");if(!this.is(f,"object"))R=this.unwrap(R);let Z=_==="value",M=_==="statement"&&this.is(u,"object");if(Z||M)return`(${Q} ${F} ${R})`;return`${Q} ${F} ${R}`}generatePropertyAccess($,W,_,U){let[u,f]=W;if(this._atParamMap&&u==="this"){let X=this._atParamMap.get(S(f));if(X)return X}let F=this.generate(u,"value"),A=y.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${F})`:F;if(h(f,"await")===!0)return`await ${A}.${S(f)}()`;if(h(f,"predicate"))return`(${A}.${S(f)} != null)`;return`${A}.${S(f)}`}generateOptionalProperty($,W){let[_,U]=W;return`${this.generate(_,"value")}?.${U}`}generateRegexIndex($,W){let[_,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(_,"value"),F=this.generate(U,"value"),Y=u!==null?this.generate(u,"value"):"0",A=F.includes("/m")?", true":"";return`(_ = toMatchable(${f}${A}).match(${F})) && _[${Y}]`}generateIndexAccess($,W){let[_,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(_,"value"),[F,Y]=U.slice(1);if(F===null&&Y===null)return`${f}.slice()`;if(F===null){if(u&&this.is(Y,"-",1)&&(S(Y[1])??Y[1])==1)return`${f}.slice(0)`;let Q=this.generate(Y,"value");return u?`${f}.slice(0, +${Q} + 1 || 9e9)`:`${f}.slice(0, ${Q})`}if(Y===null)return`${f}.slice(${this.generate(F,"value")})`;let A=this.generate(F,"value");if(u&&this.is(Y,"-",1)&&(S(Y[1])??Y[1])==1)return`${f}.slice(${A})`;let X=this.generate(Y,"value");return u?`${f}.slice(${A}, +${X} + 1 || 9e9)`:`${f}.slice(${A}, ${X})`}if(this.is(U,"-",1)){let u=S(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}.at(-${u})`}return`${this.generate(_,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[_,U]=W;if(this.is(U,"-",1)){let u=S(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}?.at(-${u})`}return`${this.generate(_,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[_,...U]=W;return`${this.generate(_,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,_,U){let[u,f,F]=W,Y=h(u,"await")===!0,A=S(u),X=this.generateParamList(f),Q=this.generateFunctionBody(F,f,Y),R=this.containsAwait(F),H=this.containsYield(F);return`${R?"async ":""}function${H?"*":""} ${A}(${X}) ${Q}`}generateThinArrow($,W,_,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(u),A=this.generateFunctionBody(f,u,F),X=this.containsAwait(f),Q=this.containsYield(f),R=`${X?"async ":""}function${Q?"*":""}(${Y}) ${A}`;return _==="value"?`(${R})`:R}generateFatArrow($,W,_,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(u),X=u.length===1&&typeof u[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,R=this.containsAwait(f)?"async ":"";if(!F){if(this.is(f,"block")&&f.length===2){let Z=f[1];if(!Array.isArray(Z)||Z[0]!=="return"){let M=this.generate(Z,"value");if(M[0]==="{")M=`(${M})`;return`${R}${X} => ${M}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${R}${X} => ${Z}`}}let H=this.generateFunctionBody(f,u,F);return`${R}${X} => ${H}`}generateReturn($,W,_,U){if(W.length===0)return"return";let[u]=W;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,F,...Y]=u;if(Y.length===0){let A=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate(f,"value")}) return ${this.generate(A,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,F]=u[1],Y=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate(f,"value")}) return ${this.generate(["new",Y],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,W){let[_,U]=W;this.usesReactivity=!0;let u=S(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[_,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=S(_)??_;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,W){let[_,U]=W;return`const ${S(_)??_} = ${this.generate(U,"value")}`}generateEffect($,W){let[_,U]=W;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.generateFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let F=this.generate(U,"value");if(_)return`const ${S(_)??this.generate(_,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(_)return`const ${S(_)??this.generate(_,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,W){return`(${this.generate(W[0],"value")} != null)`}generateDefined($,W){return`(${this.generate(W[0],"value")} !== undefined)`}generateTernary($,W,_){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let Y=this.generate(u[1],"value"),A=this.generate(u[2],"value"),X=this.generate(f,"value");return`${Y} = (${this.unwrap(this.generate(U,"value"))} ? ${A} : ${X})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[_,U]=W,u=this.generate(_,"value");if(Array.isArray(U)&&U.length>1){let f=U[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let Y=this.generate(f,"value"),A=U.slice(1).map((X)=>this.generate(X,"value"));return`${Y}(${u}, ${A.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[_,U]=W;return`for (let it = 0; it < ${this.generate(_,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait($,W){return`await ${this.generate(W[0],"value")}`}generateYield($,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom($,W){return`yield* ${this.generate(W[0],"value")}`}generateIf($,W,_,U){let[u,f,...F]=W;return _==="value"?this.generateIfAsExpression(u,f,F):this.generateIfAsStatement(u,f,F)}generateForIn($,W,_,U){let[u,f,F,Y,A]=W;if(_==="value"&&this.comprehensionDepth===0){let K=["for-in",u,f,F];return this.generate(["comprehension",A,[K],Y?[Y]:[]],_)}let X=Array.isArray(u)?u:[u],Q=X.length===0,[R,H]=Q?["_i",null]:X,Z=this.is(R,"array")||this.is(R,"object")?this.generateDestructuringPattern(R):R;if(F&&F!==null){let K=this.generate(f,"value"),D=H||"_i",O=this.generate(F,"value"),G=this.is(F,"-",1),z=G&&(F[1]==="1"||F[1]===1||S(F[1])==="1"),E=!G&&(F==="1"||F===1||S(F)==="1"),P;if(z)P=`for (let ${D} = ${K}.length - 1; ${D} >= 0; ${D}--) `;else if(E)P=`for (let ${D} = 0; ${D} < ${K}.length; ${D}++) `;else if(G)P=`for (let ${D} = ${K}.length - 1; ${D} >= 0; ${D} += ${O}) `;else P=`for (let ${D} = 0; ${D} < ${K}.length; ${D} += ${O}) `;if(this.is(A,"block")){let w=A.slice(1);this.indentLevel++;let q=[];if(!Q)q.push(`const ${Z} = ${K}[${D}];`);if(Y)q.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,q.push(...this.formatStatements(w)),this.indentLevel--,q.push(this.indent()+"}");else q.push(...w.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,P+`{
|
|
156
|
-
${
|
|
336
|
+
}`;return u}generateBinaryOp($,W,F,U){if(($==="+"||$==="-")&&W.length===1)return`(${$}${this.generate(W[0],"value")})`;let[u,f]=W;if($==="*"){let A=u?.valueOf?.()??u;if(typeof A==="string"&&/^["']/.test(A))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let _=new Set(["<",">","<=",">="]);if(_.has($)&&Array.isArray(u)){let A=u[0]?.valueOf?.()??u[0];if(_.has(A)){let Y=this.generate(u[1],"value"),Q=this.generate(u[2],"value"),w=this.generate(f,"value");return`((${Y} ${A} ${Q}) && (${Q} ${$} ${w}))`}}if($==="!?"){let A=this.generate(u,"value"),Y=this.generate(f,"value");return`(${A} !== undefined ? ${A} : ${Y})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[F,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[F,U]=W;this.helpers.add("modulo");let u=this.generate(F,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[F,U]=W;return`Math.floor(${this.generate(F,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,F,U){let[u,f]=W,_=$==="?="?"??=":$,A=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&V(u,"await")!==void 0&&!A){let J=V(u,"await")===!0?"!":"&";throw Error(`Cannot use ${J} sigil in variable declaration '${T(u)}'.`)}if(u instanceof String&&V(u,"await")===!0&&A)this.nextFunctionIsVoid=!0;let Y=this.is(u,"array",0),Q=this.is(u,"object",0);if(Y||Q){let J=this.generate(f,"value");return Q&&F==="statement"?`(${J})`:J}if(Array.isArray(f)&&_==="="&&f[0]==="control"){let[,J,X,D]=f,q=T(J),O=D[0]==="return",H=this.generate(u,"value"),I=this.generate(X,"value"),P=D.length>1?D[1]:null,M=O?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(F==="value"){if(q==="??")return`(() => { const __v = ${I}; if (__v == null) ${M}; return (${H} = __v); })()`;if(q==="||")return`(() => { const __v = ${I}; if (!__v) ${M}; return (${H} = __v); })()`;return`(() => { const __v = ${I}; if (__v) ${M}; return (${H} = __v); })()`}if(q==="??")return`if ((${H} = ${I}) == null) ${M}`;if(q==="||")return`if (!(${H} = ${I})) ${M}`;return`if ((${H} = ${I})) ${M}`}if(this.is(u,"array")){let J=u.slice(1).findIndex((X)=>this.is(X,"...")||X==="...");if(J!==-1&&J<u.length-2){let X=u.slice(1),D=X.slice(J+1),q=D.length;if(q>0){let O=this.generate(f,"value"),I=X.slice(0,J).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=D.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),X.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let M=X[J],G=this.is(M,"...")?M[1]:null,E=[];if(I)E.push(`[${I}] = ${O}`);if(G)E.push(`[...${G}] = ${O}.slice(${J}, -${q})`);return E.push(`[${P}] = slice.call(${O}, -${q})`),E.join(", ")}}}if(F==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[J,X,D]=f;if(this.is(D,"if")&&D.length===3){let[,q,O]=D,H=Array.isArray(O)&&O.length===1?O[0]:O,I=[J,X,H],P=this.generate(u,"value"),M=this.generate(q,"value"),G=this.generate(I,"value");return`if (${M}) ${P} = ${G}`}}if(F==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[J,X,D]=f,q=Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block");if(J==="if"&&q){let O=Array.isArray(D)&&D.length===1?D[0]:D,H=this.generate(u,"value"),I=this.unwrapLogical(this.generate(X,"value")),P=this.generate(O,"value");return`if (${I}) ${H} = ${P}`}}let w;if(u instanceof String&&V(u,"await")!==void 0)w=T(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))w=`${u}.value`;else w=this.generate(u,"value");let z=this.generate(f,"value");if(!this.is(f,"object"))z=this.unwrap(z);let Z=F==="value",R=F==="statement"&&this.is(u,"object");if(Z||R)return`(${w} ${_} ${z})`;return`${w} ${_} ${z}`}generatePropertyAccess($,W,F,U){let[u,f]=W;if(this._atParamMap&&u==="this"){let Q=this._atParamMap.get(T(f));if(Q)return Q}let _=this.generate(u,"value"),Y=C.NUMBER_LITERAL_RE.test(_)||_.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${_})`:_;if(V(f,"await")===!0)return`await ${Y}.${T(f)}()`;if(V(f,"predicate"))return`(${Y}.${T(f)} != null)`;return`${Y}.${T(f)}`}generateOptionalProperty($,W){let[F,U]=W;return`${this.generate(F,"value")}?.${U}`}generateRegexIndex($,W){let[F,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(F,"value"),_=this.generate(U,"value"),A=u!==null?this.generate(u,"value"):"0",Y=_.includes("/m")?", true":"";return`(_ = toMatchable(${f}${Y}).match(${_})) && _[${A}]`}generateIndexAccess($,W){let[F,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(F,"value"),[_,A]=U.slice(1),Y=(K)=>{if(K===null)return null;let Z=T(K)??K;if(typeof Z==="number")return Z;if(typeof Z==="string"&&/^\d+$/.test(Z))return+Z;if(Array.isArray(K)&&K[0]==="-"&&K.length===2){let R=T(K[1])??K[1];if(typeof R==="number")return-R;if(typeof R==="string"&&/^\d+$/.test(R))return-R}return null},Q=(K,Z,R)=>{let J=Y(R);if(J!==null&&J!==-1)return`${f}.slice(${K}, ${J+1})`;return`${f}.slice(${K}, +${Z} + 1 || 9e9)`};if(_===null&&A===null)return`${f}.slice()`;if(_===null){if(u&&this.is(A,"-",1)&&(T(A[1])??A[1])==1)return`${f}.slice(0)`;let K=this.generate(A,"value");return u?Q("0",K,A):`${f}.slice(0, ${K})`}if(A===null)return`${f}.slice(${this.generate(_,"value")})`;let w=this.generate(_,"value");if(u&&this.is(A,"-",1)&&(T(A[1])??A[1])==1)return`${f}.slice(${w})`;let z=this.generate(A,"value");return u?Q(w,z,A):`${f}.slice(${w}, ${z})`}if(this.is(U,"-",1)){let u=T(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}.at(-${u})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[F,U]=W;if(this.is(U,"-",1)){let u=T(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}?.at(-${u})`}return`${this.generate(F,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[F,...U]=W;return`${this.generate(F,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,F,U){let[u,f,_]=W,A=V(u,"await")===!0,Y=T(u),Q=this.generateParamList(f),w=this.generateFunctionBody(_,f,A),z=this.containsAwait(_),K=this.containsYield(_);return`${z?"async ":""}function${K?"*":""} ${Y}(${Q}) ${w}`}generateThinArrow($,W,F,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let _=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(u),Y=this.generateFunctionBody(f,u,_),Q=this.containsAwait(f),w=this.containsYield(f),z=`${Q?"async ":""}function${w?"*":""}(${A}) ${Y}`;return F==="value"?`(${z})`:z}generateFatArrow($,W,F,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let _=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(u),Q=u.length===1&&typeof u[0]==="string"&&!A.includes("=")&&!A.includes("...")&&!A.includes("[")&&!A.includes("{")?A:`(${A})`,z=this.containsAwait(f)?"async ":"";if(!_){if(this.is(f,"block")&&f.length===2){let Z=f[1];if(!Array.isArray(Z)||Z[0]!=="return"){let R=this.generate(Z,"value");if(R[0]==="{")R=`(${R})`;return`${z}${Q} => ${R}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${z}${Q} => ${Z}`}}let K=this.generateFunctionBody(f,u,_);return`${z}${Q} => ${K}`}generateReturn($,W,F,U){if(W.length===0)return"return";let[u]=W;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,_,...A]=u;if(A.length===0){let Y=Array.isArray(_)&&_.length===1?_[0]:_;return`if (${this.generate(f,"value")}) return ${this.generate(Y,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,_]=u[1],A=Array.isArray(_)&&_.length===1?_[0]:_;return`if (${this.generate(f,"value")}) return ${this.generate(["new",A],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,W){let[F,U]=W;this.usesReactivity=!0;let u=T(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[F,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=T(F)??F;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,W){let[F,U]=W;return`const ${T(F)??F} = ${this.generate(U,"value")}`}generateEffect($,W){let[F,U]=W;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.generateFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let _=this.generate(U,"value");if(F)return`const ${T(F)??this.generate(F,"value")} = __effect(${_})`;return`__effect(${_})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(F)return`const ${T(F)??this.generate(F,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,W){return`(${this.generate(W[0],"value")} != null)`}generateDefined($,W){return`(${this.generate(W[0],"value")} !== undefined)`}generateTernary($,W,F){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let A=this.generate(u[1],"value"),Y=this.generate(u[2],"value"),Q=this.generate(f,"value");return`${A} = (${this.unwrap(this.generate(U,"value"))} ? ${Y} : ${Q})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[F,U]=W,u=this.generate(F,"value");if(Array.isArray(U)&&U.length>1){let f=U[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let A=this.generate(f,"value"),Y=U.slice(1).map((Q)=>this.generate(Q,"value"));return`${A}(${u}, ${Y.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[F,U]=W;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait($,W){return`await ${this.generate(W[0],"value")}`}generateYield($,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom($,W){return`yield* ${this.generate(W[0],"value")}`}generateIf($,W,F,U){let[u,f,..._]=W;return F==="value"?this.generateIfAsExpression(u,f,_):this.generateIfAsStatement(u,f,_)}generateForIn($,W,F,U){let[u,f,_,A,Y]=W;if(F==="value"&&this.comprehensionDepth===0){let X=["for-in",u,f,_];return this.generate(["comprehension",Y,[X],A?[A]:[]],F)}let Q=Array.isArray(u)?u:[u],w=Q.length===0,[z,K]=w?["_i",null]:Q,Z=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(_&&_!==null){let X=this.generate(f,"value"),D=K||"_i",q=this.generate(_,"value"),O=this.is(_,"-",1),H=O&&(_[1]==="1"||_[1]===1||T(_[1])==="1"),I=!O&&(_==="1"||_===1||T(_)==="1"),P;if(H)P=`for (let ${D} = ${X}.length - 1; ${D} >= 0; ${D}--) `;else if(I)P=`for (let ${D} = 0; ${D} < ${X}.length; ${D}++) `;else if(O)P=`for (let ${D} = ${X}.length - 1; ${D} >= 0; ${D} += ${q}) `;else P=`for (let ${D} = 0; ${D} < ${X}.length; ${D} += ${q}) `;if(this.is(Y,"block")){let M=Y.slice(1);this.indentLevel++;let G=[];if(!w)G.push(`const ${Z} = ${X}[${D}];`);if(A)G.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,G.push(...this.formatStatements(M)),this.indentLevel--,G.push(this.indent()+"}");else G.push(...M.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,P+`{
|
|
337
|
+
${G.map((E)=>this.indent()+E).join(`
|
|
157
338
|
`)}
|
|
158
|
-
${this.indent()}}`}if(
|
|
159
|
-
`,this.indentLevel++,D+=this.indent()+`const ${Z} = ${
|
|
160
|
-
`,
|
|
161
|
-
`,this.indentLevel++,D+=this.formatStatements(
|
|
339
|
+
${this.indent()}}`}if(w)return A?P+`{ if (${this.generate(A,"value")}) ${this.generate(Y,"statement")}; }`:P+`{ ${this.generate(Y,"statement")}; }`;return A?P+`{ const ${Z} = ${X}[${D}]; if (${this.generate(A,"value")}) ${this.generate(Y,"statement")}; }`:P+`{ const ${Z} = ${X}[${D}]; ${this.generate(Y,"statement")}; }`}if(K){let X=this.generate(f,"value"),D=`for (let ${K} = 0; ${K} < ${X}.length; ${K}++) `;if(this.is(Y,"block")){if(D+=`{
|
|
340
|
+
`,this.indentLevel++,D+=this.indent()+`const ${Z} = ${X}[${K}];
|
|
341
|
+
`,A)D+=this.indent()+`if (${this.unwrap(this.generate(A,"value"))}) {
|
|
342
|
+
`,this.indentLevel++,D+=this.formatStatements(Y.slice(1)).join(`
|
|
162
343
|
`)+`
|
|
163
344
|
`,this.indentLevel--,D+=this.indent()+`}
|
|
164
|
-
`;else D+=this.formatStatements(
|
|
345
|
+
`;else D+=this.formatStatements(Y.slice(1)).join(`
|
|
165
346
|
`)+`
|
|
166
|
-
`;this.indentLevel--,D+=this.indent()+"}"}else D+=
|
|
167
|
-
${Z.map((
|
|
347
|
+
`;this.indentLevel--,D+=this.indent()+"}"}else D+=A?`{ const ${Z} = ${X}[${K}]; if (${this.unwrap(this.generate(A,"value"))}) ${this.generate(Y,"statement")}; }`:`{ const ${Z} = ${X}[${K}]; ${this.generate(Y,"statement")}; }`;return D}let R=Array.isArray(f)&&f[0];if(R instanceof String)R=T(R);if(R===".."||R==="..."){let X=R==="...",[D,q]=f.slice(1),O=(H)=>typeof H==="number"||typeof H==="string"&&!H.includes("(")||H instanceof String&&!T(H).includes("(")||this.is(H,".");if(O(D)&&O(q)){let H=this.generate(D,"value"),I=this.generate(q,"value"),P=X?"<":"<=",M=_?`${Z} += ${this.generate(_,"value")}`:`${Z}++`,G=`for (let ${Z} = ${H}; ${Z} ${P} ${I}; ${M}) `;return G+=A?this.generateLoopBodyWithGuard(Y,A):this.generateLoopBody(Y),G}}let J=`for (const ${Z} of ${this.generate(f,"value")}) `;return J+=A?this.generateLoopBodyWithGuard(Y,A):this.generateLoopBody(Y),J}generateForOf($,W,F,U){let[u,f,_,A,Y]=W;if(F==="value"&&this.comprehensionDepth===0){let Z=["for-of",u,f,_];return this.generate(["comprehension",Y,[Z],A?[A]:[]],F)}let[Q,w]=Array.isArray(u)?u:[u],z=this.generate(f,"value"),K=`for (const ${Q} in ${z}) `;if(_&&!w&&!A){if(this.is(Y,"block")){this.indentLevel++;let Z=[`if (!Object.hasOwn(${z}, ${Q})) continue;`,...Y.slice(1).map((R)=>this.addSemicolon(R,this.generate(R,"statement")))];return this.indentLevel--,K+`{
|
|
348
|
+
${Z.map((R)=>this.indent()+R).join(`
|
|
168
349
|
`)}
|
|
169
|
-
${this.indent()}}`}return
|
|
170
|
-
${J.map((
|
|
350
|
+
${this.indent()}}`}return K+`{ if (!Object.hasOwn(${z}, ${Q})) continue; ${this.generate(Y,"statement")}; }`}if(w){if(this.is(Y,"block")){let R=Y.slice(1);this.indentLevel++;let J=[];if(_)J.push(`if (!Object.hasOwn(${z}, ${Q})) continue;`);if(J.push(`const ${w} = ${z}[${Q}];`),A)J.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,J.push(...R.map((X)=>this.addSemicolon(X,this.generate(X,"statement")))),this.indentLevel--,J.push(this.indent()+"}");else J.push(...R.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))));return this.indentLevel--,K+`{
|
|
351
|
+
${J.map((X)=>this.indent()+X).join(`
|
|
171
352
|
`)}
|
|
172
|
-
${this.indent()}}`}let Z="";if(
|
|
353
|
+
${this.indent()}}`}let Z="";if(_)Z+=`if (!Object.hasOwn(${z}, ${Q})) continue; `;if(Z+=`const ${w} = ${z}[${Q}]; `,A)Z+=`if (${this.generate(A,"value")}) `;return Z+=`${this.generate(Y,"statement")};`,K+`{ ${Z} }`}return K+=A?this.generateLoopBodyWithGuard(Y,A):this.generateLoopBody(Y),K}generateForAs($,W,F,U){let u=Array.isArray(W[0])?W[0]:[W[0]],[f]=u,_=W[1],A=W[2],Y=W[3],Q=W[4],w=!1,z=[];if(this.is(f,"array")){let X=f.slice(1),D=X.findIndex((q)=>this.is(q,"...")||q==="...");if(D!==-1&&D<X.length-1){w=!0;let q=X.slice(D+1),O=q.length,H=X.slice(0,D),I=X[D],P=this.is(I,"...")?I[1]:"_rest",M=H.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),G=M?`${M}, ...${P}`:`...${P}`,E=q.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");z.push(`[${G}] = _item`),z.push(`[${E}] = ${P}.splice(-${O})`),this.helpers.add("slice"),X.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])})}}let K=this.generate(_,"value"),Z=A?"await ":"",R;if(w)R="_item";else if(this.is(f,"array")||this.is(f,"object"))R=this.generateDestructuringPattern(f);else R=f;let J=`for ${Z}(const ${R} of ${K}) `;if(w&&z.length>0){let X=this.unwrapBlock(Q),D=this.withIndent(()=>[...z.map((q)=>this.indent()+q+";"),...this.formatStatements(X)]);J+=`{
|
|
173
354
|
${D.join(`
|
|
174
355
|
`)}
|
|
175
|
-
${this.indent()}}`}else J+=
|
|
356
|
+
${this.indent()}}`}else J+=Y?this.generateLoopBodyWithGuard(Q,Y):this.generateLoopBody(Q);return J}generateWhile($,W){let F=W[0],U=W.length===3?W[1]:null,u=W[W.length-1];return`while (${this.unwrap(this.generate(F,"value"))}) `+(U?this.generateLoopBodyWithGuard(u,U):this.generateLoopBody(u))}generateRange($,W){if($==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[_,A]=W,Y=this.generate(_,"value"),Q=this.generate(A,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Y}, ${Q})`}let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${f})`}generateNot($,W){let[F]=W;if(typeof F==="string"||F instanceof String)return`!${this.generate(F,"value")}`;if(Array.isArray(F)){if([".","?.","[]","optindex","optcall"].includes(F[0]))return`!${this.generate(F,"value")}`}let U=this.generate(F,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,W){return`(~${this.generate(W[0],"value")})`}generateIncDec($,W){let[F,U]=W,u=this.generate(F,"value");return U?`(${u}${$})`:`(${$}${u})`}generateTypeof($,W){return`typeof ${this.generate(W[0],"value")}`}generateDelete($,W){return`(delete ${this.generate(W[0],"value")})`}generateInstanceof($,W,F,U){let[u,f]=W,_=V(U[0],"invert"),A=`(${this.generate(u,"value")} instanceof ${this.generate(f,"value")})`;return _?`(!${A})`:A}generateIn($,W,F,U){let[u,f]=W,_=this.generate(u,"value"),A=V(U[0],"invert");if(this.is(f,"object")){let w=`(${_} in ${this.generate(f,"value")})`;return A?`(!${w})`:w}let Y=this.generate(f,"value"),Q=`(Array.isArray(${Y}) || typeof ${Y} === 'string' ? ${Y}.includes(${_}) : (${_} in ${Y}))`;return A?`(!${Q})`:Q}generateOf($,W,F,U){let[u,f]=W,_=this.generate(u,"value"),A=this.generate(f,"value"),Y=V(U[0],"invert"),Q=`(${_} in ${A})`;return Y?`(!${Q})`:Q}generateRegexMatch($,W){let[F,U]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(U,"value"),f=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(F,"value")}${f}).match(${u}))`}generateNew($,W){let[F]=W;if(this.is(F,".")||this.is(F,"?.")){let[U,u,f]=F;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${f}`;return`new ${this.generate(u,"value")}.${f}`}if(Array.isArray(F)){let[U,...u]=F;return`new ${this.generate(U,"value")}(${u.map((f)=>this.unwrap(this.generate(f,"value"))).join(", ")})`}return`new ${this.generate(F,"value")}()`}generateLogicalAnd($,W,F,U){let u=this.flattenBinaryChain(U).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" && ")})`}generateLogicalOr($,W,F,U){let u=this.flattenBinaryChain(U).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" || ")})`}generateArray($,W){let F=W.length>0&&W[W.length-1]===",",U=W.map((u)=>{if(u===",")return"";if(u==="...")return"";if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;return this.generate(u,"value")}).join(", ");return F?`[${U},]`:`[${U}]`}generateObject($,W,F){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[u,f]=W[0],[,_,A,Y]=f;return this.generate(["object-comprehension",u,_,A,Y],F)}return`{${W.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[f,_,A]=u,Y;if(this.is(f,"dynamicKey"))Y=`[${this.generate(f[1],"value")}]`;else if(this.is(f,"str"))Y=`[${this.generate(f,"value")}]`;else this.suppressReactiveUnwrap=!0,Y=this.generate(f,"value"),this.suppressReactiveUnwrap=!1;let Q=this.generate(_,"value");if(A==="=")return`${Y} = ${Q}`;if(A===":")return`${Y}: ${Q}`;if(Y===Q&&!Array.isArray(f))return Y;return`${Y}: ${Q}`}).join(", ")}}`}generateBlock($,W,F){if(F==="statement")return`{
|
|
176
357
|
${this.withIndent(()=>this.formatStatements(W)).join(`
|
|
177
358
|
`)}
|
|
178
|
-
${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],
|
|
179
|
-
${this.withIndent(()=>f.map((
|
|
359
|
+
${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],F);let U=W[W.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let f=W.map((_)=>this.addSemicolon(_,this.generate(_,"statement")));return`{
|
|
360
|
+
${this.withIndent(()=>f.map((_)=>this.indent()+_).join(`
|
|
180
361
|
`))}
|
|
181
|
-
${this.indent()}}`}return`(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,W,
|
|
182
|
-
${this.indent()} ${
|
|
183
|
-
${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return
|
|
184
|
-
`;this.indentLevel++;for(let
|
|
185
|
-
`}this.indentLevel++,
|
|
186
|
-
`,this.indentLevel++,
|
|
187
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
188
|
-
`;for(let
|
|
189
|
-
`,this.indentLevel++,
|
|
190
|
-
`}else if(
|
|
191
|
-
`,this.indentLevel++,
|
|
192
|
-
`;if(D)
|
|
193
|
-
`}else if(
|
|
194
|
-
`,this.indentLevel++}}for(let
|
|
195
|
-
`,this.indentLevel++;let
|
|
196
|
-
`;else if(Array.isArray(
|
|
197
|
-
`;else
|
|
198
|
-
`}else if(
|
|
199
|
-
`;else if(Array.isArray(U)&&
|
|
200
|
-
`;else
|
|
201
|
-
`;for(let
|
|
202
|
-
`;for(let
|
|
203
|
-
`;return
|
|
204
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
205
|
-
`;this.indentLevel++,
|
|
206
|
-
`;for(let
|
|
207
|
-
`,this.indentLevel++,
|
|
208
|
-
`;if(
|
|
209
|
-
`}}for(let
|
|
210
|
-
`,this.indentLevel++;
|
|
211
|
-
`;for(let
|
|
212
|
-
`;for(let
|
|
213
|
-
`;return
|
|
214
|
-
`,this.indentLevel--,
|
|
215
|
-
`,f.length>0&&Array.isArray(f[0])){let
|
|
216
|
-
`}else if(
|
|
217
|
-
`;else
|
|
218
|
-
`}this.indentLevel--}else if(
|
|
219
|
-
`}else if(
|
|
220
|
-
`;else
|
|
221
|
-
`}for(let
|
|
222
|
-
`}else
|
|
223
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
224
|
-
`;else
|
|
225
|
-
`;this.indentLevel--}}}return
|
|
226
|
-
export default ${
|
|
227
|
-
`;if(
|
|
228
|
-
`;let D=u.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super",
|
|
229
|
-
`;return}if(!f&&!U&&P&&
|
|
230
|
-
`;return}}}let
|
|
231
|
-
`;else
|
|
232
|
-
`})};if(D){if(J.length===1&&!f)
|
|
233
|
-
`;else
|
|
234
|
-
`;for(let
|
|
235
|
-
`;
|
|
236
|
-
`;
|
|
237
|
-
`}return this.indentLevel--,
|
|
238
|
-
${this.withIndent(()=>W.map((U,u)=>{let f=u===W.length-1,
|
|
362
|
+
${this.indent()}}`}return`(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,W,F){let U=F==="value",u="try ",f=W[0];if(u+=U&&this.is(f,"block")?this.generateBlockWithReturns(f):this.generate(f,"statement"),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[_,A]=W[1];if(u+=" catch",_&&(this.is(_,"object")||this.is(_,"array"))){u+=" (error)";let Y=`(${this.generate(_,"value")} = error)`;A=this.is(A,"block")?["block",Y,...A.slice(1)]:["block",Y,A]}else if(_)u+=` (${_})`;u+=" "+(U&&this.is(A,"block")?this.generateBlockWithReturns(A):this.generate(A,"statement"))}else if(W.length===2)u+=" finally "+this.generate(W[1],"statement");if(W.length===3)u+=" finally "+this.generate(W[2],"statement");if(W.length===1)u+=" catch {}";if(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,W,F){let[U]=W;if(Array.isArray(U)){let f=U,_=null;if(U[0]==="new"&&Array.isArray(U[1])&&U[1][0]==="if")_="new",f=U[1];else if(U[0]==="if")f=U;if(f[0]==="if"){let[,A,Y]=f,Q=Array.isArray(Y)&&Y.length===1?Y[0]:Y;U=_==="new"?["new",Q]:Q;let w=this.generate(A,"value"),z=`throw ${this.generate(U,"value")}`;return`if (${w}) {
|
|
363
|
+
${this.indent()} ${z};
|
|
364
|
+
${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return F==="value"?`(() => { ${u}; })()`:u}generateControl($,W,F){let[U,u,f]=W,_=T(U),A=f[0]==="return",Y=this.generate(u,"value"),Q=f.length>1?f[1]:null,w=A?Q?`return ${this.generate(Q,"value")}`:"return":Q?`throw ${this.generate(Q,"value")}`:"throw new Error()",z=this.wrapForCondition(Y);if(F==="value"){if(_==="??")return`(() => { const __v = ${Y}; if (__v == null) ${w}; return __v; })()`;if(_==="||")return`(() => { const __v = ${Y}; if (!__v) ${w}; return __v; })()`;return`(() => { const __v = ${Y}; if (__v) ${w}; return __v; })()`}if(_==="??")return`if (${z} == null) ${w}`;if(_==="||")return`if (!${z}) ${w}`;return`if (${z}) ${w}`}generateSwitch($,W,F){let[U,u,f]=W;if(U===null)return this.generateSwitchAsIfChain(u,f,F);let _=`switch (${this.generate(U,"value")}) {
|
|
365
|
+
`;this.indentLevel++;for(let A of u){let[,Y,Q]=A;for(let w of Y){let z=T(w)??w,K;if(Array.isArray(z))K=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))K=`'${z.slice(1,-1)}'`;else K=this.generate(z,"value");_+=this.indent()+`case ${K}:
|
|
366
|
+
`}this.indentLevel++,_+=this.generateSwitchCaseBody(Q,F),this.indentLevel--}if(f)_+=this.indent()+`default:
|
|
367
|
+
`,this.indentLevel++,_+=this.generateSwitchCaseBody(f,F),this.indentLevel--;if(this.indentLevel--,_+=this.indent()+"}",F==="value")return`(${u.some((Y)=>this.containsAwait(Y[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${_} })()`;return _}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,W,F){let U=Array.isArray($)?$:[$],u=U.length===0,[f,_]=u?["_i",null]:U,A=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(F&&F!==null){let Y=Array.isArray(W)&&W[0];if(Y instanceof String)Y=T(Y);if(Y===".."||Y==="..."){let q=Y==="...",[O,H]=W.slice(1),I=this.generate(O,"value"),P=this.generate(H,"value"),M=this.generate(F,"value");return{header:`for (let ${A} = ${I}; ${A} ${q?"<":"<="} ${P}; ${A} += ${M})`,setup:null}}let w=this.generate(W,"value"),z=_||"_i",K=this.generate(F,"value"),Z=this.is(F,"-",1),R=Z&&(F[1]==="1"||F[1]===1||T(F[1])==="1"),J=!Z&&(F==="1"||F===1||T(F)==="1"),X=R?`${z}--`:J?`${z}++`:`${z} += ${K}`;return{header:Z?`for (let ${z} = ${w}.length - 1; ${z} >= 0; ${X})`:`for (let ${z} = 0; ${z} < ${w}.length; ${X})`,setup:u?null:`const ${A} = ${w}[${z}];`}}if(_){let Y=this.generate(W,"value");return{header:`for (let ${_} = 0; ${_} < ${Y}.length; ${_}++)`,setup:`const ${A} = ${Y}[${_}];`}}return{header:`for (const ${A} of ${this.generate(W,"value")})`,setup:null}}_forOfHeader($,W,F){let U=Array.isArray($)?$:[$],[u,f]=U,_=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,A=this.generate(W,"value");return{header:`for (const ${_} in ${A})`,own:F,vv:f,oc:A,kvp:_}}_forAsHeader($,W,F){let U=Array.isArray($)?$:[$],[u]=U,f=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${F?"await ":""}(const ${f} of ${this.generate(W,"value")})`}}generateComprehension($,W,F){let[U,u,f]=W;if(F==="statement")return this.generateComprehensionAsLoop(U,u,f);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,u,f,this.comprehensionTarget);let A=`(${this.containsAwait(U)?"async ":""}() => {
|
|
368
|
+
`;this.indentLevel++,this.comprehensionDepth++,A+=this.indent()+`const result = [];
|
|
369
|
+
`;for(let w of u){let[z,K,Z,R]=w;if(z==="for-in"){let{header:J,setup:X}=this._forInHeader(K,Z,R);if(A+=this.indent()+J+` {
|
|
370
|
+
`,this.indentLevel++,X)A+=this.indent()+X+`
|
|
371
|
+
`}else if(z==="for-of"){let{header:J,own:X,vv:D,oc:q,kvp:O}=this._forOfHeader(K,Z,R);if(A+=this.indent()+J+` {
|
|
372
|
+
`,this.indentLevel++,X)A+=this.indent()+`if (!Object.hasOwn(${q}, ${O})) continue;
|
|
373
|
+
`;if(D)A+=this.indent()+`const ${D} = ${q}[${O}];
|
|
374
|
+
`}else if(z==="for-as"){let{header:J}=this._forAsHeader(K,Z,w[3]);A+=this.indent()+J+` {
|
|
375
|
+
`,this.indentLevel++}}for(let w of f)A+=this.indent()+`if (${this.generate(w,"value")}) {
|
|
376
|
+
`,this.indentLevel++;let Y=(w)=>{if(typeof w==="string"&&(w==="break"||w==="continue"))return!0;if(!Array.isArray(w))return!1;if(["break","continue","return","throw"].includes(w[0]))return!0;if(w[0]==="if")return w.slice(1).some(Y);return w.some(Y)},Q=["for-in","for-of","for-as","while","loop"];if(this.is(U,"block"))for(let w=0;w<U.length-1;w++){let z=U[w+1];if(w!==U.length-2||Y(z))A+=this.indent()+this.generate(z,"statement")+`;
|
|
377
|
+
`;else if(Array.isArray(z)&&Q.includes(z[0]))A+=this.indent()+this.generate(z,"statement")+`;
|
|
378
|
+
`;else A+=this.indent()+`result.push(${this.generate(z,"value")});
|
|
379
|
+
`}else if(Y(U))A+=this.indent()+this.generate(U,"statement")+`;
|
|
380
|
+
`;else if(Array.isArray(U)&&Q.includes(U[0]))A+=this.indent()+this.generate(U,"statement")+`;
|
|
381
|
+
`;else A+=this.indent()+`result.push(${this.generate(U,"value")});
|
|
382
|
+
`;for(let w=0;w<f.length;w++)this.indentLevel--,A+=this.indent()+`}
|
|
383
|
+
`;for(let w=0;w<u.length;w++)this.indentLevel--,A+=this.indent()+`}
|
|
384
|
+
`;return A+=this.indent()+`return result;
|
|
385
|
+
`,this.indentLevel--,this.comprehensionDepth--,A+=this.indent()+"})()",A}generateObjectComprehension($,W,F){let[U,u,f,_]=W,A=`(() => {
|
|
386
|
+
`;this.indentLevel++,A+=this.indent()+`const result = {};
|
|
387
|
+
`;for(let Y of f){let[Q,w,z,K]=Y;if(Q==="for-of"){let[Z,R]=w,J=this.generate(z,"value");if(A+=this.indent()+`for (const ${Z} in ${J}) {
|
|
388
|
+
`,this.indentLevel++,K)A+=this.indent()+`if (!Object.hasOwn(${J}, ${Z})) continue;
|
|
389
|
+
`;if(R)A+=this.indent()+`const ${R} = ${J}[${Z}];
|
|
390
|
+
`}}for(let Y of _)A+=this.indent()+`if (${this.generate(Y,"value")}) {
|
|
391
|
+
`,this.indentLevel++;A+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(u,"value")};
|
|
392
|
+
`;for(let Y=0;Y<_.length;Y++)this.indentLevel--,A+=this.indent()+`}
|
|
393
|
+
`;for(let Y=0;Y<f.length;Y++)this.indentLevel--,A+=this.indent()+`}
|
|
394
|
+
`;return A+=this.indent()+`return result;
|
|
395
|
+
`,this.indentLevel--,A+=this.indent()+"})()",A}generateClass($,W,F){let[U,u,...f]=W,_=U?`class ${U}`:"class";if(u)_+=` extends ${this.generate(u,"value")}`;if(_+=` {
|
|
396
|
+
`,f.length>0&&Array.isArray(f[0])){let A=f[0];if(A[0]==="block"){let Y=A.slice(1),Q=Y.length>0&&Array.isArray(Y[0])&&Y[0][0]==="object";if(Q&&Y.length===1){let w=Y[0].slice(1);this.indentLevel++;let z=[];for(let[K,Z]of w){let R=this.is(K,".")&&K[1]==="this",J=this.is(K,"computed"),X=this.extractMemberName(K);if(this.is(Z,"=>")&&!R&&!J&&X!=="constructor")z.push(X)}for(let[K,Z]of w){let R=this.is(K,".")&&K[1]==="this",J=this.is(K,"computed"),X=this.extractMemberName(K);if(this.is(Z,"->")||this.is(Z,"=>")){let[,D,q]=Z,O=this.containsAwait(q),H=this.containsYield(q),I=D,P=[];if(X==="constructor"){let E=!!u,B=E?new Map:null;I=D.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let L=N[2],S=E?`_${L}`:L;if(P.push(`this.${L} = ${S}`),E)B.set(L,S);return S}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let L=N[1][2],S=E?`_${L}`:L;if(P.push(`this.${L} = ${S}`),E)B.set(L,S);return["default",S,N[2]]}return N});for(let N of z)P.unshift(`this.${N} = this.${N}.bind(this)`);if(B?.size>0)this._atParamMap=B}let M=this.generateParamList(I),G=(R?"static ":"")+(O?"async ":"")+(H?"*":"");if(_+=this.indent()+`${G}${X}(${M}) `,!J)this.currentMethodName=X;_+=this.generateMethodBody(q,P,X==="constructor",I),this._atParamMap=null,this.currentMethodName=null,_+=`
|
|
397
|
+
`}else if(R)_+=this.indent()+`static ${X} = ${this.generate(Z,"value")};
|
|
398
|
+
`;else _+=this.indent()+`${X} = ${this.generate(Z,"value")};
|
|
399
|
+
`}this.indentLevel--}else if(Q){let w=Y[0].slice(1),z=Y.slice(1);this.indentLevel++;for(let[K,Z]of w){let R=this.is(K,".")&&K[1]==="this",J=this.extractMemberName(K);if(this.is(Z,"->")||this.is(Z,"=>")){let[,X,D]=Z,q=this.generateParamList(X),O=(R?"static ":"")+(this.containsAwait(D)?"async ":"")+(this.containsYield(D)?"*":"");_+=this.indent()+`${O}${J}(${q}) `,this.currentMethodName=J,_+=this.generateMethodBody(D,[],J==="constructor",X),this.currentMethodName=null,_+=`
|
|
400
|
+
`}else if(R)_+=this.indent()+`static ${J} = ${this.generate(Z,"value")};
|
|
401
|
+
`;else _+=this.indent()+`${J} = ${this.generate(Z,"value")};
|
|
402
|
+
`}for(let K of z)if(this.is(K,"class")){let[,Z,R,...J]=K;if(this.is(Z,".")&&Z[1]==="this")_+=this.indent()+`static ${Z[2]} = ${this.generate(["class",null,R,...J],"value")};
|
|
403
|
+
`}else _+=this.indent()+this.generate(K,"statement")+`;
|
|
404
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let w of Y)if(this.is(w,"=")&&Array.isArray(w[1])&&w[1][0]==="."&&w[1][1]==="this")_+=this.indent()+`static ${w[1][2]} = ${this.generate(w[2],"value")};
|
|
405
|
+
`;else _+=this.indent()+this.generate(w,"statement")+`;
|
|
406
|
+
`;this.indentLevel--}}}return _+=this.indent()+"}",_}generateSuper($,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let F=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${F})`;return`super(${F})`}generateImport($,W,F,U){if(W.length===1){let A=`import(${this.generate(W[0],"value")})`;if(V(U[0],"await")===!0)return`(await ${A})`;return A}let[u,f]=W,_=this.addJsExtensionAndAssertions(f);if(typeof u==="string")return`import ${u} from ${_}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${_}`;if(typeof u[0]==="string"&&Array.isArray(u[1])){let Y=u[0],Q=u[1];if(Q[0]==="*"&&Q.length===2)return`import ${Y}, * as ${Q[1]} from ${_}`;let w=(Array.isArray(Q)?Q:[Q]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${Y}, { ${w} } from ${_}`}return`import { ${u.map((Y)=>Array.isArray(Y)&&Y.length===2?`${Y[0]} as ${Y[1]}`:Y).join(", ")} } from ${_}`}return`import ${this.generate(u,"value")} from ${_}`}generateExport($,W){let[F]=W;if(this.options.skipExports){if(Array.isArray(F)&&F.every((U)=>typeof U==="string"))return"";if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")}`;return this.generate(F,"statement")}if(Array.isArray(F)&&F.every((U)=>typeof U==="string"))return`export { ${F.join(", ")} }`;if(this.is(F,"="))return`export const ${F[1]} = ${this.generate(F[2],"value")}`;return`export ${this.generate(F,"statement")}`}generateExportDefault($,W){let[F]=W;if(this.options.skipExports){if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")}`;return this.generate(F,"statement")}if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")};
|
|
407
|
+
export default ${F[1]}`;return`export default ${this.generate(F,"statement")}`}generateExportAll($,W){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom($,W){if(this.options.skipExports)return"";let[F,U]=W,u=this.addJsExtensionAndAssertions(U);if(Array.isArray(F))return`export { ${F.map((_)=>Array.isArray(_)&&_.length===2?`${_[0]} as ${_[1]}`:_).join(", ")} } from ${u}`;return`export ${F} from ${u}`}generateDoIIFE($,W){return`(${this.generate(W[0],"statement")})()`}generateRegex($,W){return W.length===0?$:this.generate(W[0],"value")}generateTaggedTemplate($,W){let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");if(f.startsWith("`"))return`${u}${f}`;if(f.startsWith('"')||f.startsWith("'"))return`${u}\`${f.slice(1,-1)}\``;return`${u}\`${f}\``}generateString($,W){let F="`";for(let U of W)if(U instanceof String)F+=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);F+=U.slice(1,-1)}else F+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let u=U[0];F+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=U.length===1&&Array.isArray(U[0])?U[0]:U;F+="${"+this.generate(u,"value")+"}"}return F+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let W=$[0];if(W==="if"&&$.length===3)return{type:W,condition:$[1],value:$[2]};if(W==="+"||W==="-"||W==="*"||W==="/")for(let F=1;F<$.length;F++){let U=this.findPostfixConditional($[F]);if(U)return U.parentOp=W,U.operandIndex=F,U.otherOperands=$.slice(1).filter((u,f)=>f!==F-1),U}return null}rebuildWithoutConditional($){let W=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,W];return W}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let W=$.findIndex((U)=>this.is(U,"expansion"));if(W!==-1){let U=$.slice(0,W),u=$.slice(W+1),f=U.map((_)=>this.formatParam(_)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let F=$.findIndex((U)=>this.is(U,"rest"));if(F!==-1&&F<$.length-1){let U=$.slice(0,F),u=$[F],f=$.slice(F+1),_=U.map((A)=>this.formatParam(A));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:U.length},_.length>0?`${_.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((U)=>this.formatParam(U)).join(", ")}formatParam($){if(typeof $==="string")return $;if($ instanceof String)return $.valueOf();if(this.is($,"rest"))return`...${$[1]}`;if(this.is($,"default"))return`${$[1]} = ${this.generate($[2],"value")}`;if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"array"))return`[${$.slice(1).map((F)=>{if(F===",")return"";if(F==="...")return"";if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"=")&&typeof F[1]==="string")return`${F[1]} = ${this.generate(F[2],"value")}`;if(typeof F==="string")return F;return this.formatParam(F)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((F)=>{if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"default"))return`${F[1]} = ${this.generate(F[2],"value")}`;let[U,u]=F;if(U===u)return U;return`${U}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,W=[],F={}){let{sideEffectOnly:U=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:_=!1}=F,A=this.sideEffectOnly;this.sideEffectOnly=U;let Y=new Set,Q=(J)=>{if(typeof J==="string")Y.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")Y.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")Y.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,Y)}};if(Array.isArray(W))W.forEach(Q);let w=this.collectFunctionVariables($),z=new Set([...w].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!Y.has(J)&&!this.scopeStack.some((X)=>X.has(J)))),K=["return","throw","break","continue"],Z=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,...Y])),this.is($,"block")){let J=this.unwrapBlock($);if(_&&this.expansionAfterParams?.length>0)J=[...this.expansionAfterParams.map((H,I)=>{return`const ${typeof H==="string"?H:JSON.stringify(H)} = _rest[_rest.length - ${this.expansionAfterParams.length-I}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:H}=this.restMiddleParam,I=H.length,P=[];if(H.forEach((M,G)=>{let E=typeof M==="string"?M:this.is(M,"default")?M[1]:JSON.stringify(M);P.push(`const ${E} = ${O}[${O}.length - ${I-G}]`)}),I>0)P.push(`${O} = ${O}.slice(0, -${I})`);J=[...P,...J],this.restMiddleParam=null}this.indentLevel++;let X=`{
|
|
408
|
+
`;if(z.size>0)X+=this.indent()+`let ${Array.from(z).sort().join(", ")};
|
|
409
|
+
`;let D=u.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super",q=(O)=>{O.forEach((H,I)=>{let P=I===O.length-1,M=Array.isArray(H)?H[0]:null;if(!P&&M==="comprehension"){let[,N,L,S]=H;X+=this.indent()+this.generateComprehensionAsLoop(N,L,S)+`
|
|
410
|
+
`;return}if(!f&&!U&&P&&M==="if"){let[N,L,...S]=H.slice(1),j=(c)=>this.is(c,"block")&&c.length>2;if(j(L)||S.some(j)){X+=this.generateIfElseWithEarlyReturns(H);return}}if(!f&&!U&&P&&M==="="){let[N,L]=H.slice(1);if(typeof N==="string"&&Array.isArray(L)){let S=L[0];if(S==="comprehension"||S==="for-in"){this.comprehensionTarget=N,X+=this.generate(L,"value"),this.comprehensionTarget=null,X+=this.indent()+`return ${N};
|
|
411
|
+
`;return}}}let G=!f&&!U&&P&&!K.includes(M)&&!Z.includes(M)&&!this.hasExplicitControlFlow(H),E=G?"value":"statement",B=this.generate(H,E);if(G)X+=this.indent()+"return "+B+`;
|
|
412
|
+
`;else X+=this.indent()+this.addSemicolon(H,B)+`
|
|
413
|
+
`})};if(D){if(J.length===1&&!f)X+=this.indent()+"return "+this.generate(J[0],"value")+`;
|
|
414
|
+
`;else X+=this.indent()+this.generate(J[0],"statement")+`;
|
|
415
|
+
`;for(let H of u)X+=this.indent()+H+`;
|
|
416
|
+
`;q(J.slice(1))}else{for(let O of u)X+=this.indent()+O+`;
|
|
417
|
+
`;q(J)}if(U&&J.length>0){let O=Array.isArray(J[J.length-1])?J[J.length-1][0]:null;if(!K.includes(O))X+=this.indent()+`return;
|
|
418
|
+
`}return this.indentLevel--,X+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=A,X}this.sideEffectOnly=A;let R;if(f&&u.length>0){let J=Array.isArray($)&&$[0]==="super",X=this.generate($,"statement"),D=u.map((q)=>`${q};`).join(" ");R=J?`{ ${X}; ${D} }`:`{ ${D} ${X}; }`}else if(f||this.hasExplicitControlFlow($))R=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(K.includes($[0])||Z.includes($[0])))R=`{ ${this.generate($,"statement")}; }`;else if(U)R=`{ ${this.generate($,"statement")}; return; }`;else R=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),R}generateFunctionBody($,W=[],F=!1){return this.generateBodyWithReturns($,W,{sideEffectOnly:F,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,W=[],F=!1,U=[]){return this.generateBodyWithReturns($,U,{autoAssignments:W,isConstructor:F})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let W=this.unwrapBlock($);return`{
|
|
419
|
+
${this.withIndent(()=>W.map((U,u)=>{let f=u===W.length-1,_=Array.isArray(U)?U[0]:null,A=f&&!["return","throw","break","continue"].includes(_),Y=this.generate(U,A?"value":"statement");return A?this.indent()+"return "+Y+";":this.indent()+Y+";"})).join(`
|
|
239
420
|
`)}
|
|
240
421
|
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let W=$[0]==="block"?$.slice(1):$;return`{
|
|
241
|
-
${this.withIndent(()=>W.map((U)=>{if(this.is(U,"comprehension")){let[,u,f,
|
|
422
|
+
${this.withIndent(()=>W.map((U)=>{if(this.is(U,"comprehension")){let[,u,f,_]=U;return this.indent()+this.generateComprehensionAsLoop(u,f,_)}return this.indent()+this.addSemicolon(U,this.generate(U,"statement"))})).join(`
|
|
242
423
|
`)}
|
|
243
|
-
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,W){let
|
|
244
|
-
`,
|
|
245
|
-
${u}${f}${
|
|
424
|
+
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,W){let F=this.unwrap(this.generate(W,"value"));if(!Array.isArray($))return`{ if (${F}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$,u=this.withIndent(()=>this.indent()),f=`if (${F}) {
|
|
425
|
+
`,_=this.withIndent(()=>{this.indentLevel++;let Y=this.formatStatements(U);return this.indentLevel--,Y}),A=this.withIndent(()=>this.indent()+"}");return`{
|
|
426
|
+
${u}${f}${_.join(`
|
|
246
427
|
`)}
|
|
247
|
-
${
|
|
248
|
-
${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,W,
|
|
249
|
-
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(W.length===1){let[
|
|
250
|
-
`,this.indentLevel++,
|
|
251
|
-
`;if(
|
|
428
|
+
${A}
|
|
429
|
+
${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,W,F,U){let u="";u+=this.indent()+`${U} = [];
|
|
430
|
+
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(W.length===1){let[_,A,Y,Q]=W[0];if(_==="for-in"){let{header:w,setup:z}=this._forInHeader(A,Y,Q);if(u+=this.indent()+w+` {
|
|
431
|
+
`,this.indentLevel++,z)u+=this.indent()+z+`
|
|
432
|
+
`;if(F&&F.length>0)u+=this.indent()+`if (${F.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
252
433
|
`,this.indentLevel++;if(u+=this.indent()+`${U}.push(${this.unwrap(this.generate(f,"value"))});
|
|
253
|
-
`,
|
|
434
|
+
`,F&&F.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
254
435
|
`;return this.indentLevel--,u+=this.indent()+`}
|
|
255
436
|
`,u}}return this.indent()+`${U} = (() => { /* complex comprehension */ })();
|
|
256
|
-
`}generateComprehensionAsLoop($,W,
|
|
437
|
+
`}generateComprehensionAsLoop($,W,F){let U="",u=F?.length?F.map((_)=>this.generate(_,"value")).join(" && "):null,f=()=>{if(u)U+=this.indent()+`if (${u}) {
|
|
257
438
|
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
258
439
|
`,this.indentLevel--,U+=this.indent()+`}
|
|
259
440
|
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
260
|
-
`};if(W.length===1){let[
|
|
261
|
-
`,this.indentLevel++,
|
|
262
|
-
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}if(
|
|
263
|
-
`,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(
|
|
264
|
-
`,this.indentLevel++,
|
|
265
|
-
`;if(
|
|
266
|
-
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,W,
|
|
267
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(U)),f+=this.indent()+"}";for(let
|
|
268
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(
|
|
269
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(
|
|
270
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(
|
|
271
|
-
`;else
|
|
272
|
-
`}return
|
|
273
|
-
`;else if(W==="value")if(this.is($,"block")&&$.length>2){let u=$.slice(1);for(let f=0;f<u.length;f++)if(f===u.length-1)
|
|
274
|
-
`;else
|
|
275
|
-
`}else
|
|
276
|
-
`;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))
|
|
277
|
-
`;else
|
|
278
|
-
`;
|
|
279
|
-
`}return
|
|
280
|
-
`,this.indentLevel++,
|
|
281
|
-
`;else for(let
|
|
441
|
+
`};if(W.length===1){let[_,A,Y,Q]=W[0];if(_==="for-in"){let{header:w,setup:z}=this._forInHeader(A,Y,Q);if(U+=w+` {
|
|
442
|
+
`,this.indentLevel++,z)U+=this.indent()+z+`
|
|
443
|
+
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}if(_==="for-as"){let{header:w}=this._forAsHeader(A,Y,Q);return U+=w+` {
|
|
444
|
+
`,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(_==="for-of"){let{header:w,own:z,vv:K,oc:Z,kvp:R}=this._forOfHeader(A,Y,Q);if(U+=w+` {
|
|
445
|
+
`,this.indentLevel++,z)U+=this.indent()+`if (!Object.hasOwn(${Z}, ${R})) continue;
|
|
446
|
+
`;if(K)U+=this.indent()+`const ${K} = ${Z}[${R}];
|
|
447
|
+
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,W,F],"value")}generateIfElseWithEarlyReturns($){let[W,F,U,...u]=$,f="",_=this.generate(F,"value");f+=this.indent()+`if (${_}) {
|
|
448
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(U)),f+=this.indent()+"}";for(let A of u)if(f+=" else ",this.is(A,"if")){let[,Y,Q,...w]=A;f+=`if (${this.generate(Y,"value")}) {
|
|
449
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(Q)),f+=this.indent()+"}";for(let z of w)f+=` else {
|
|
450
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(z)),f+=this.indent()+"}"}else f+=`{
|
|
451
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(A)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let W=this.unwrapBlock($),F="";for(let U=0;U<W.length;U++){let u=U===W.length-1,f=W[U],_=Array.isArray(f)?f[0]:null;if(u&&!(_==="return"||_==="throw"||_==="break"||_==="continue"))F+=this.indent()+`return ${this.generate(f,"value")};
|
|
452
|
+
`;else F+=this.indent()+this.generate(f,"statement")+`;
|
|
453
|
+
`}return F}generateIfAsExpression($,W,F){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||F.some((A)=>this.is(A,"block")&&A.length>2||this.hasStatementInBranch(A)||this.hasNestedMultiStatement(A))){let A=this.containsAwait($)||this.containsAwait(W)||F.some((Q)=>this.containsAwait(Q)),Y=`${A?"await ":""}(${A?"async ":""}() => { `;Y+=`if (${this.generate($,"value")}) `,Y+=this.generateBlockWithReturns(W);for(let Q of F)if(Y+=" else ",this.is(Q,"if")){let[w,z,K,...Z]=Q;Y+=`if (${this.generate(z,"value")}) `,Y+=this.generateBlockWithReturns(K);for(let R of Z)if(Y+=" else ",this.is(R,"if")){let[J,X,D,...q]=R;Y+=`if (${this.generate(X,"value")}) `,Y+=this.generateBlockWithReturns(D),F.push(...q)}else Y+=this.generateBlockWithReturns(R)}else Y+=this.generateBlockWithReturns(Q);return Y+" })()"}let u=this.extractExpression(this.unwrapIfBranch(W)),f=this.buildTernaryChain(F),_=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))_=`(${_})`;return`(${_} ? ${u} : ${f})`}generateIfAsStatement($,W,F){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let u of F)U+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return U}generateSwitchCaseBody($,W){let F="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))F+=this.indent()+this.generate(u,"statement")+`;
|
|
454
|
+
`;else if(W==="value")if(this.is($,"block")&&$.length>2){let u=$.slice(1);for(let f=0;f<u.length;f++)if(f===u.length-1)F+=this.indent()+`return ${this.generate(u[f],"value")};
|
|
455
|
+
`;else F+=this.indent()+this.generate(u[f],"statement")+`;
|
|
456
|
+
`}else F+=this.indent()+`return ${this.extractExpression($)};
|
|
457
|
+
`;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))F+=this.indent()+this.generate(u,"statement")+`;
|
|
458
|
+
`;else F+=this.indent()+this.generate($,"statement")+`;
|
|
459
|
+
`;F+=this.indent()+`break;
|
|
460
|
+
`}return F}generateSwitchAsIfChain($,W,F){let U="";for(let u=0;u<$.length;u++){let[,f,_]=$[u],A=Array.isArray(f)?f[0]:f;if(U+=(u===0?"":" else ")+`if (${this.generate(A,"value")}) {
|
|
461
|
+
`,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(_)};
|
|
462
|
+
`;else for(let Y of this.unwrapBlock(_))U+=this.indent()+this.generate(Y,"statement")+`;
|
|
282
463
|
`;this.indentLevel--,U+=this.indent()+"}"}if(W){if(U+=` else {
|
|
283
|
-
`,this.indentLevel++,
|
|
464
|
+
`,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(W)};
|
|
284
465
|
`;else for(let u of this.unwrapBlock(W))U+=this.indent()+this.generate(u,"statement")+`;
|
|
285
|
-
`;this.indentLevel--,U+=this.indent()+"}"}return
|
|
286
|
-
`);if(
|
|
287
|
-
`))W=W.slice(1);if(
|
|
288
|
-
`))W=W.slice(0,-1);return W}processHeregex($){let W="",
|
|
289
|
-
`)U++;continue}W+=f,U++}return W}addJsExtensionAndAssertions($){if($ instanceof String)$=
|
|
466
|
+
`;this.indentLevel--,U+=this.indent()+"}"}return F==="value"?`(() => { ${U} })()`:U}extractExpression($){let W=this.unwrapBlock($);return W.length>0?this.generate(W[W.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0])){if(typeof $[0][0]==="string")return[$];return $}return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let F=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(F)}addSemicolon($,W){return W+(this.needsSemicolon($,W)?";":"")}formatStatements($,W="statement"){return $.map((F)=>this.indent()+this.addSemicolon(F,this.generate(F,W)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let W=$[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return $.slice(1).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]));if(W==="switch"){let[,,F]=$;return F?.some((U)=>{return this.unwrapBlock(U[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(W==="if"){let[,,F,U]=$;return this.branchHasControlFlow(F)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let W=this.unwrapBlock($);if(W.length===0)return!1;let F=W[W.length-1];return Array.isArray(F)&&["return","throw","break","continue"].includes(F[0])}withIndent($){this.indentLevel++;let W=$();return this.indentLevel--,W}is($,W,F){if(!Array.isArray($))return null;if((T($[0])??$[0])!==W)return null;let U=$.slice(1);if(F!=null&&U.length!==F)return null;return U}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,F=0,U=!0,u=!1;for(let f=0;f<$.length;f++){if($[f]==="(")W++;if($[f]===")")W--;if($[f]==="["||$[f]==="{")F++;if($[f]==="]"||$[f]==="}")F--;if($[f]===","&&W===1&&F===0)u=!0;if(W===0&&f<$.length-1){U=!1;break}}if(u)U=!1;if(U)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,F=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")W++;if($[U]===")")W--;F=Math.min(F,W)}if(F>=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[W,...F]=$;if(W!=="&&"&&W!=="||")return $;let U=[],u=(f)=>{if(Array.isArray(f)&&f[0]===W)for(let _=1;_<f.length;_++)u(f[_]);else U.push(f)};for(let f of F)u(f);return[W,...U]}hasStatementInBranch($){if(!Array.isArray($))return!1;let W=$[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return $.slice(1).some((F)=>this.hasStatementInBranch(F));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[W,F,U,...u]=$;return this.is(U,"block")&&U.length>2||u.some((f)=>this.hasNestedMultiStatement(f))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let W=$[0];if(this.is(W,"if")){let[F,U,u,...f]=W,_=this.extractExpression(this.unwrapIfBranch(u)),A=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${_} : ${A})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray($,W){$.slice(1).forEach((F)=>{if(F===","||F==="...")return;if(typeof F==="string"){W.add(F);return}if(Array.isArray(F)){if(F[0]==="..."&&typeof F[1]==="string")W.add(F[1]);else if(F[0]==="array")this.collectVarsFromArray(F,W);else if(F[0]==="object")this.collectVarsFromObject(F,W)}})}collectVarsFromObject($,W){$.slice(1).forEach((F)=>{if(!Array.isArray(F))return;if(F[0]==="..."&&typeof F[1]==="string"){W.add(F[1]);return}if(F.length>=2){let[U,u,f]=F;if(f==="="){if(typeof U==="string")W.add(U)}else if(typeof u==="string")W.add(u);else if(Array.isArray(u)){if(u[0]==="array")this.collectVarsFromArray(u,W);else if(u[0]==="object")this.collectVarsFromObject(u,W)}}})}extractStringContent($){let W=T($).slice(1,-1),F=V($,"indent");if(F)W=W.replace(new RegExp(`\\n${F}`,"g"),`
|
|
467
|
+
`);if(V($,"initialChunk")&&W.startsWith(`
|
|
468
|
+
`))W=W.slice(1);if(V($,"finalChunk")&&W.endsWith(`
|
|
469
|
+
`))W=W.slice(0,-1);return W}processHeregex($){let W="",F=!1,U=0,u=()=>{let f=0,_=U-1;while(_>=0&&$[_]==="\\")f++,_--;return f%2===1};while(U<$.length){let f=$[U];if(f==="["&&!u()){F=!0,W+=f,U++;continue}if(f==="]"&&F&&!u()){F=!1,W+=f,U++;continue}if(F){W+=f,U++;continue}if(/\s/.test(f)){U++;continue}if(f==="#"){if(u()){W+=f,U++;continue}let _=U-1;while(_>=0&&$[_]==="\\")_--;if(_<U-1){W+=f,U++;continue}while(U<$.length&&$[U]!==`
|
|
470
|
+
`)U++;continue}W+=f,U++}return W}addJsExtensionAndAssertions($){if($ instanceof String)$=T($);if(typeof $!=="string")return $;let F=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=F.startsWith("./")||F.startsWith("../"),u=F,f="";if(U){let _=F.lastIndexOf("/"),A=_>=0?F.substring(_+1):F;if(A.includes(".")){if(A.endsWith(".json"))f=" with { type: 'json' }"}else u=F+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&T($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((W)=>this.containsIt(W));return!1}containsAwait($){if(!$)return!1;if($ instanceof String&&V($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(this.is($,"await"))return!0;if(this.is($,"for-as")&&$[3]===!0)return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((W)=>this.containsAwait(W));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(this.is($,"yield")||this.is($,"yield-from"))return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((W)=>this.containsYield(W));return!1}extractMemberName($){if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"computed"))return`[${this.generate($[1],"value")}]`;return $}getReactiveRuntime(){return`// ============================================================================
|
|
290
471
|
// Rip Reactive Runtime
|
|
291
472
|
// A minimal, fine-grained reactivity system
|
|
292
473
|
//
|
|
@@ -515,13 +696,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
515
696
|
}
|
|
516
697
|
|
|
517
698
|
// === End Reactive Runtime ===
|
|
518
|
-
`}}class
|
|
519
|
-
`),u=U.findIndex((J)=>J==="__DATA__");if(u!==-1){let J=U.slice(u+1);
|
|
699
|
+
`}}class Y1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($,W){if(W)this.options={...this.options,...W};let F=null,U=$.split(`
|
|
700
|
+
`),u=U.findIndex((J)=>J==="__DATA__");if(u!==-1){let J=U.slice(u+1);F=J.length>0?J.join(`
|
|
520
701
|
`)+`
|
|
521
702
|
`:"",$=U.slice(0,u).join(`
|
|
522
|
-
`)}let
|
|
523
|
-
//# sourceMappingURL=data:application/json;base64,${J}`}else if(Z&&this.options.filename)
|
|
524
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(A
|
|
703
|
+
`)}let _=new p().tokenize($);if(this.options.showTokens)_.forEach((J)=>console.log(`${J[0].padEnd(12)} ${JSON.stringify(J[1])}`)),console.log();let A=null,Y=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)Y=[..._];_=_.filter((J)=>J[0]!=="TYPE_DECL");while(_.length>0&&_[0][0]==="TERMINATOR")_.shift();if(_.every((J)=>J[0]==="TERMINATOR")){if(Y)A=C1(Y,["program"]);return{tokens:_,sexpr:["program"],code:"",dts:A,data:F,reactiveVars:{}}}s.lexer={tokens:_,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let J=this.tokens[this.pos++],X=J[1];if(J.data)X=new String(X),Object.assign(X,J.data);return this.text=X,this.loc=J.loc,J[0]}};let Q;try{Q=s.parse($)}catch(J){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw J}if(this.options.showSExpr)console.log(l(Q,0,!0)),console.log();let w=null;if(this.options.sourceMap){let J=(this.options.filename||"output")+".js",X=this.options.filename||"input.rip";w=new v1(J,X,$)}let z=new C({dataSection:F,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,reactiveVars:this.options.reactiveVars,sourceMap:w}),K=z.compile(Q),Z=w?w.toJSON():null,R=w?w.toReverseMap():null;if(Z&&this.options.sourceMap==="inline"){let J=typeof Buffer<"u"?Buffer.from(Z).toString("base64"):btoa(Z);K+=`
|
|
704
|
+
//# sourceMappingURL=data:application/json;base64,${J}`}else if(Z&&this.options.filename)K+=`
|
|
705
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(Y)A=C1(Y,Q);return{tokens:_,sexpr:Q,code:K,dts:A,map:Z,reverseMap:R,data:F,reactiveVars:z.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}R2(C,p);C.prototype.generateEnum=f2;function P1($,W={}){return new Y1(W).compile($)}function d($,W={}){return new Y1(W).compileToJS($)}function Z1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
525
706
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
526
707
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
527
708
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -534,12 +715,12 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
534
715
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
535
716
|
globalThis.warn ??= console.warn;
|
|
536
717
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
537
|
-
`}function
|
|
538
|
-
`),
|
|
539
|
-
${
|
|
540
|
-
${
|
|
541
|
-
})()`)}catch(
|
|
542
|
-
`,u=new Blob([U+
|
|
543
|
-
${W}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(U);if(u&&typeof u.then==="function")return u.then((f)=>{if(f!==void 0)globalThis._=f;return f});if(u!==void 0)globalThis._=u;return u}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=
|
|
544
|
-
`,
|
|
545
|
-
`:"",f=new Blob([Q+R],{type:"application/javascript"}),K=URL.createObjectURL(f),H=await import(K),u){X=g1(H);for(let D in X){let O=X[D];u.classes[D]=O}}if(_&&U)_.setCompiled(U,H);return H};B2=function($){let W,_,U;return U=1000,_=30000,W=function(){let u;return u=new EventSource($),u.addEventListener("connected",function(){return U=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let f of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(f.href),$.searchParams.set("_t",Date.now()),f.href=$.toString()}),u.onerror=function(){return u.close(),setTimeout(W,U),U=Math.min(U*2,_)}},W()};var v2=function($={}){return n1($)},g2=function($){return $?.[$1]?$[$1]:$},l3=function($){return $?.[E1]===!0},x3=function($,W={}){let _,U,u,f,F;if(_=j(W.initial||null),u=j(!1),U=j(null),f=async function(){let Y;return u.value=!0,U.value=null,(async()=>{try{return Y=await $(),_.value=Y}catch(A){return U.value=A}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(F,"data",{get:function(){return _.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return U.value}}),!W.lazy)f();return F},l2=function($,W){let _,U;return _=R1(W),U=j(!!_()),t(function(){let u;if(_())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?K1(U,W):U},k3=function($,W){let _,U;return _=R1(W),U=j(_()),t(function(){let u,f;return f=_(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?K1(U,W):U},m3=function($,W){let _,U,u;return _=R1(W),u=j(_()),U=0,t(function(){let f,F,Y,A;if(A=_(),f=Date.now(),F=$-(f-U),F<=0)return u.value=A,U=f;else return Y=setTimeout(function(){return u.value=_(),U=Date.now()},F),function(){return clearTimeout(Y)}}),typeof W!=="function"?K1(u,W):u},n3=function($,W){let _,U;return _=R1(W),U=j(!!_()),t(function(){let u;if(_())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?K1(U,W):U},x2=function(){let $,W,_,U;return W=new Map,U=[],$=new Map,_=function(u,f){for(let F of U)F(u,f)},{read:function(u){return W.get(u)},write:function(u,f){let F;return F=!W.has(u),W.set(u,f),$.delete(u),_(F?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),_("delete",u)},exists:function(u){return W.has(u)},size:function(){return W.size},list:function(u=""){let f,F,Y;Y=[],f=u?u+"/":"";for(let[A]of W)if(A.startsWith(f)){if(F=A.slice(f.length),F.includes("/"))continue;Y.push(A)}return Y},listAll:function(u=""){let f,F;F=[],f=u?u+"/":"";for(let[Y]of W)if(Y.startsWith(f))F.push(Y);return F},load:function(u){for(let f in u){let F=u[f];W.set(f,F)}},watch:function(u){return U.push(u),function(){return U.splice(U.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},k2=function($,W={}){let _,U,u,f,F,Y,A,X,Q,R,H,Z,M,J,K,D,O,G,z,E,P;if(O=W.root||"components",Q=W.base||"",R=W.hash||!1,M=W.onError||null,z=function(w){return Q&&w.startsWith(Q)?w.slice(Q.length)||"/":w},X=function(w){return Q?Q+w:w},K=function(){let w;if(R){if(w=location.hash.slice(1),!w)return"/";return w[0]==="/"?w:"/"+w}else return location.pathname+location.search+location.hash},P=function(w){return R?w==="/"?location.pathname:"#"+w.slice(1):X(w)},F=j(z(R?K():location.pathname)),f=j({}),A=j(null),U=j([]),Y=j({}),_=j(""),u=l2(100,j(!1)),E=P1($,O),H=new Set,$.watch(function(w,q){if(!q.startsWith(O+"/"))return;return E=P1($,O)}),D=function(w){let q,I,B,N,L;if(N=w.split("?")[0].split("#")[0],I=z(N),I=I[0]==="/"?I:"/"+I,B=w.split("?")[1]?.split("#")[0]||"",q=w.includes("#")?w.split("#")[1]:"",L=h2(I,E.routes),L){P2(function(){return F.value=I,f.value=L.params,A.value=L.route,U.value=L2(L.route.file,O,E.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),_.value=q});for(let T of H)T(G.current);return!0}if(M)M({status:404,path:I});return!1},J=function(){return D(K())},typeof window<"u")window.addEventListener("popstate",J);if(Z=function(w){let q,I,B;if(w.button!==0||w.metaKey||w.ctrlKey||w.shiftKey||w.altKey)return;I=w.target;while(I&&I.tagName!=="A")I=I.parentElement;if(!I?.href)return;if(B=new URL(I.href,location.origin),B.origin!==location.origin)return;if(I.target==="_blank"||I.hasAttribute("data-external"))return;return w.preventDefault(),q=R&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,G.push(q)},typeof document<"u")document.addEventListener("click",Z);return G={push:function(w){return D(w)?history.pushState(null,"",P(F.read())):void 0},replace:function(w){return D(w)?history.replaceState(null,"",P(F.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(w){return H.add(w),function(){return H.delete(w)}},rebuild:function(){return E=P1($,O)},routes:void 0,init:function(){return D(K()),G},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",J);if(typeof document<"u")document.removeEventListener("click",Z);return H.clear()}},Object.defineProperty(G,"current",{get:function(){return{path:F.value,params:f.value,route:A.value,layouts:U.value,query:Y.value,hash:_.value}}}),Object.defineProperty(G,"path",{get:function(){return F.value}}),Object.defineProperty(G,"params",{get:function(){return f.value}}),Object.defineProperty(G,"route",{get:function(){return A.value}}),Object.defineProperty(G,"layouts",{get:function(){return U.value}}),Object.defineProperty(G,"query",{get:function(){return Y.value}}),Object.defineProperty(G,"hash",{get:function(){return _.value}}),Object.defineProperty(G,"navigating",{get:function(){return u.value},set:function(w){return u.value=w}}),Object.defineProperty(G,"routes",{get:function(){return E.routes}}),G},m2=function($={}){let W,_,U,u,f,F,Y,A,X,Q,R,H,Z,M,J,K,D,O,G,z,E,P;if({router:z,app:W,components:f,resolver:G,compile:U,target:E,onError:D}=$,F=typeof E==="string"?document.querySelector(E):E||document.getElementById("app"),!F)F=document.createElement("div"),F.id="app",document.body.appendChild(F);return F.style.opacity="0",Y=null,Q=null,X=null,A=[],Z=[],J=F,H=0,R=null,u=new Map,M=$.cacheSize||10,_=function(){let w,q;if(Y&&Q){if(Y.beforeUnmount)Y.beforeUnmount();if(u.set(Q,Y),u.size>M){if(q=u.keys().next().value,w=u.get(q),w.unmounted)w.unmounted();u.delete(q)}return Y=null,Q=null}},P=function(){_();for(let w=Z.length-1;w>=0;w--){let q=Z[w];if(q.beforeUnmount)q.beforeUnmount();if(q.unmounted)q.unmounted();q._target?.remove()}return Z=[],J=F},f.watch(function(w,q){let I;if(u.has(q)){if(I=u.get(q),I.unmounted)I.unmounted();return u.delete(q)}}),K=async function(w){let q,I,B,N,L,T,V,C,k,U1,d,p1,r,d1,w1,e,M1,N1,b,r1,T1,u1;if({route:b,params:e,layouts:C,query:N1}=w,!b)return;if(b.file===Q&&JSON.stringify(e)===JSON.stringify(X))return;return X=e,N=++H,z.navigating=!0,(async()=>{try{if(T1=f.read(b.file),!T1){if(D)D({status:404,message:`File not found: ${b.file}`});z.navigating=!1;return}if(p1=await I1(T1,U,f,b.file,G),N!==H){z.navigating=!1;return}if(q=l1(p1),!q){if(D)D({status:500,message:`No component found in ${b.file}`});z.navigating=!1;return}if(d=!I2(C,A),d1=Y?._target,d)P();else _();if(r=d?F:J,d&&C.length>0){F.innerHTML="",r=F;for(let v of C){if(U1=f.read(v),!U1)continue;if(k=await I1(U1,U,f,v,G),N!==H){z.navigating=!1;return}if(I=l1(k),!I)continue;if(T=new I({app:W,params:e,router:z}),T.beforeMount)T.beforeMount();u1=document.createElement("div"),u1.setAttribute("data-layout",v),r.appendChild(u1),T.mount(u1),Z.push(T),r1=u1.querySelector("#content")||u1,r=r1}A=[...C],J=r}else if(d)F.innerHTML="",A=[],J=F;if(B=u.get(b.file),B)u.delete(b.file),r.appendChild(B._target),Y=B,Q=b.file;else{if(w1=document.createElement("div"),w1.setAttribute("data-component",b.file),r.appendChild(w1),V=new q({app:W,params:e,query:N1,router:z}),V.beforeMount)V.beforeMount();if(V.mount(w1),Y=V,Q=b.file,V.load)await V.load(e,N1)}return d1?.remove(),z.navigating=!1,F.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return F.style.transition="opacity 150ms ease-in",F.style.opacity="1"})}):void 0}catch(v){if(z.navigating=!1,F.style.opacity="1",console.error(`Renderer: error mounting ${b.file}:`,v),D)D({status:500,message:v.message,error:v});L=!1;for(let S1=Z.length-1;S1>=0;S1--){let o1=Z[S1];if(o1.onError)try{o1.onError(v),L=!0;break}catch(n2){console.error("Renderer: error boundary failed:",n2)}}return(()=>{if(!L)return M1=document.createElement("pre"),M1.style.cssText="color:red;padding:1em",M1.textContent=v.stack||v.message,F.innerHTML="",F.appendChild(M1)})()}})()},O={start:function(){return R=t(function(){let w;return w=z.current,w.route?K(w):void 0}),z.init(),O},stop:function(){if(P(),R)R(),R=null;return F.innerHTML=""},remount:function(){let w;return w=z.current,w.route?K(w):void 0},cache:u},O},i3=async function($="",W={}){let _,U,u,f,F,Y,A,X,Q,R,H,Z,M,J,K,D,O,G,z,E,P,w;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),w=W.target||"#app",Q=W.compile||null,K=W.persist||!1,M=W.hash||!1,!Q)Q=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(w))R=document.createElement("div"),R.id=w.replace(/^#/,""),document.body.prepend(R);if(W.bundle)Y=W.bundle;else if(W.bundleUrl){if(J={},Z=`__rip_etag_${W.bundleUrl}`,A=sessionStorage.getItem(Z),A)J["If-None-Match"]=A;if(O=await fetch(W.bundleUrl,{headers:J}),O.status===304)Y=JSON.parse(sessionStorage.getItem(`${Z}_data`));else if(O.ok){if(Y=await O.json(),H=O.headers.get("etag"),H)sessionStorage.setItem(Z,H),sessionStorage.setItem(`${Z}_data`,JSON.stringify(Y))}else throw Error(`launch: ${W.bundleUrl} (${O.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(f=v2({components:{},routes:{},data:{}}),Y.data)f.data=Y.data;if(Y.routes)f.routes=Y.routes;if(K&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=K==="local"?localStorage:sessionStorage;try{if(E=U.getItem(u),E){P=JSON.parse(E);for(let q in P){let I=P[q];f.data[q]=I}}}catch{}_=function(){return(()=>{try{return U.setItem(u,JSON.stringify(g2(f.data)))}catch{return null}})()},t(function(){let q;return k1.value,q=setTimeout(_,2000),function(){return clearTimeout(q)}}),window.addEventListener("beforeunload",_)}if(F=x2(),Y.components)F.load(Y.components);if(X=`__rip_${$.replace(/\//g,"_")||"app"}`,G={map:E2(F),classes:{},key:X},typeof globalThis<"u")globalThis[X]=G.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(z=k2(F,{root:"components",base:$,hash:M,onError:function(q){return console.error(`[Rip] Error ${q.status}: ${q.message||q.path}`)}}),D=m2({router:z,app:f,components:F,resolver:G,compile:Q,target:w,onError:function(q){return console.error(`[Rip] ${q.message}`,q.error)}}),D.start(),Y.data?.watch)B2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:F,router:z,renderer:D,cache:D.cache,version:"0.3.0"};return{app:f,components:F,router:z,renderer:D}};s.modules["app.rip"]=B1;for(let[$,W]of Object.entries(B1))if(typeof W==="function")globalThis[$]=W;})();
|
|
718
|
+
`}function w1(){return new C({}).getReactiveRuntime()}function J1(){return new C({}).getComponentRuntime()}var M2="3.13.27",D2="2026-02-26@05:09:19GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(w1())();if(!globalThis.__ripComponent)Function(J1())()}var v3=($)=>{let W=$.match(/^[ \t]*(?=\S)/gm),F=Math.min(...(W||[]).map((U)=>U.length));return $.replace(RegExp(`^[ ]{${F}}`,"gm"),"").trim()};async function H2(){let $=[],W=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),F=W?.getAttribute("data-src");if(F){for(let u of F.trim().split(/\s+/))if(u)$.push({url:u})}for(let u of document.querySelectorAll('script[type="text/rip"]'))if(u.src)$.push({url:u.src});else{let f=v3(u.textContent);if(f)$.push({code:f})}if($.length>0){await Promise.all($.map(async(_)=>{if(!_.url)return;try{let A=await fetch(_.url);if(!A.ok){console.error(`Rip: failed to fetch ${_.url} (${A.status})`);return}_.code=await A.text()}catch(A){console.error(`Rip: failed to fetch ${_.url}:`,A.message)}}));let u={skipRuntimes:!0,skipExports:!0},f=[];for(let _ of $){if(!_.code)continue;try{f.push(d(_.code,u))}catch(A){console.error("Rip compile error:",A.message)}}if(f.length>0){let _=f.join(`
|
|
719
|
+
`),A=W?.getAttribute("data-mount");if(A){let Y=W.getAttribute("data-target")||"body";_+=`
|
|
720
|
+
${A}.mount(${JSON.stringify(Y)});`}try{await(0,eval)(`(async()=>{
|
|
721
|
+
${_}
|
|
722
|
+
})()`)}catch(Y){console.error("Rip runtime error:",Y)}}}let U=document.querySelector("script[data-launch]");if(U&&!globalThis.__ripLaunched){let u=t.modules?.["app.rip"];if(u?.launch){let f=U.getAttribute("data-launch")||"",_=U.getAttribute("data-hash"),A=U.getAttribute("data-persist"),Y={hash:_!=="false"};if(f)Y.bundleUrl=f;if(A!=null)Y.persist=A==="local"?"local":!0;await u.launch("",Y)}}}async function t($){for(let[_,A]of Object.entries(t.modules))if($.includes(_))return A;let W=await fetch($).then((_)=>{if(!_.ok)throw Error(`importRip: ${$} (${_.status})`);return _.text()}),F=d(W),U=`// ${$}
|
|
723
|
+
`,u=new Blob([U+F],{type:"application/javascript"});return await import(URL.createObjectURL(u))}t.modules={};function q2($){try{let W=$.replace(/^/gm," "),U=d(`do ->
|
|
724
|
+
${W}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(U);if(u&&typeof u.then==="function")return u.then((f)=>{if(f!==void 0)globalThis._=f;return f});if(u!==void 0)globalThis._=u;return u}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=t,globalThis.compileToJS=d,globalThis.__ripExports={compile:P1,compileToJS:d,formatSExpr:l,getStdlibCode:Z1,VERSION:M2,BUILD_DATE:D2,getReactiveRuntime:w1,getComponentRuntime:J1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let W=()=>H2().then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(W));else queueMicrotask(W)});var N1={};s1(N1,{throttle:()=>k3,stash:()=>c2,setContext:()=>j2,raw:()=>v2,launch:()=>i3,isStash:()=>g3,hold:()=>m3,hasContext:()=>S2,getContext:()=>T2,delay:()=>g2,debounce:()=>x3,createRouter:()=>x2,createResource:()=>l3,createRenderer:()=>k2,createComponents:()=>l2});var O2,k1,U1,r,B1,G2,e,h,g1,X1,z1,m1,P2,I2,I1,E1,E2,B2,N2,l1,x1,T2,L2,i1,S2,Q1,n1,V2,h2,j2,C2,y2,p1,b2;globalThis.abort??=($)=>{if($)console.error($);process.exit(1)};globalThis.assert??=($,W)=>{if(!$)throw Error(W||"Assertion failed")};globalThis.exit??=($)=>process.exit($||0);globalThis.kind??=($)=>$!=null?($.constructor?.name||Object.prototype.toString.call($).slice(8,-1)).toLowerCase():String($);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=($)=>{return console.log(JSON.stringify($,null,2)),$};globalThis.raise??=($,W)=>{throw W!==void 0?new $(W):Error($)};globalThis.rand??=($,W)=>W!==void 0?($>W&&([$,W]=[W,$]),Math.floor(Math.random()*(W-$+1)+$)):$?Math.floor(Math.random()*$):Math.random();globalThis.sleep??=($)=>new Promise((W)=>setTimeout(W,$));globalThis.todo??=($)=>{throw Error($||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...$)=>$[0].map((W,F)=>$.map((U)=>U[F]));({__state:h,__effect:e,__batch:G2}=globalThis.__rip);({setContext:j2,getContext:T2,hasContext:S2}=globalThis.__ripComponent||{});B1=Symbol("stash");r=Symbol("signals");U1=Symbol("raw");k1=new WeakMap;g1=0;m1=h(0);i1=function($,W){let F;if(!$[r])Object.defineProperty($,r,{value:new Map,enumerable:!1});if(F=$[r].get(W),!F)F=h($[W]),$[r].set(W,F);return F};Q1=function($){return i1($,Symbol.for("keys"))};b2=function($){let W;if(!($!=null&&typeof $==="object"))return $;if($[B1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(W=k1.get($),W)return W;return n1($)};n1=function($){let W,F;return F=null,W={get:function(U,u){let f,_;if(u===B1)return!0;if(u===U1)return U;if(typeof u==="symbol")return Reflect.get(U,u);if(u==="length"&&Array.isArray(U))return Q1(U).value,U.length;if(u==="get")return function(A){return C2(F,A)};if(u==="set")return function(A,Y){return y2(F,A,Y)};if(f=i1(U,u),_=f.value,_!=null&&typeof _==="object")return b2(_);return _},set:function(U,u,f){let _,A;if(_=U[u],A=f?.[U1]?f[U1]:f,A===_)return!0;if(U[u]=A,U[r]?.has(u))U[r].get(u).value=A;if(_===void 0&&A!==void 0)Q1(U).value=++g1;return m1.value++,!0},deleteProperty:function(U,u){let f;if(delete U[u],f=U[r]?.get(u),f)f.value=void 0;return Q1(U).value=++g1,!0},ownKeys:function(U){return Q1(U).value,Reflect.ownKeys(U)}},F=new Proxy($,W),k1.set($,F),F};O2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;p1=function($){let W,F,U,u,f;U=("."+$).split(O2),U.shift(),f=[],F=0;while(F<U.length){if(u=U[F],W=u[0],W==="."||W==="/")f.push(u.slice(1));else if(W==="[")if(u[1]==='"'||u[1]==="'")f.push(u.slice(2,-2));else f.push(+u.slice(1,-1));F+=2}return f};C2=function($,W){let F,U;U=p1(W),F=$;for(let u of U){if(F==null)return;F=F[u]}return F};y2=function($,W,F){let U,u;u=p1(W),U=$;for(let f=0;f<u.length;f++){let _=u[f];if(f===u.length-1)U[_]=F;else{if(U[_]==null)U[_]={};U=U[_]}}return F};z1=function($){return typeof $==="function"?$:function(){return $.value}};X1=function($,W){let F;return F={read:function(){return $.read()}},Object.defineProperty(F,"value",{get:function(){return $.value},set:function(U){return W.value=U}}),F};N2=function($){let W;if(W=$.replace(/\.rip$/,""),W=W.replace(/\[\.\.\.(\w+)\]/g,"*$1"),W=W.replace(/\[(\w+)\]/g,":$1"),W==="index")return"/";return W=W.replace(/\/index$/,""),"/"+W};h2=function($){let W,F;return W=[],F=$.replace(/\*(\w+)/g,function(U,u){return W.push(u),"(.+)"}).replace(/:(\w+)/g,function(U,u){return W.push(u),"([^/]+)"}),{regex:new RegExp("^"+F+"$"),names:W}};V2=function($,W){let F,U;for(let u of W)if(F=$.match(u.regex.regex),F){U={};for(let f=0;f<u.regex.names.length;f++){let _=u.regex.names[f];U[_]=decodeURIComponent(F[f+1])}return{route:u,params:U}}return null};I1=function($,W="components"){let F,U,u,f,_,A,Y,Q,w;Y=[],u=new Map,F=$.listAll(W);for(let z of F){if(A=z.slice(W.length+1),!A.endsWith(".rip"))continue;if(f=A.split("/").pop(),f==="_layout.rip"){U=A==="_layout.rip"?"":A.slice(0,-12),u.set(U,z);continue}if(f.startsWith("_"))continue;if(Q=A.split("/"),Q.length>1&&Q.some(function(K,Z){return Z<Q.length-1&&K.startsWith("_")}))continue;w=N2(A),_=h2(w),Y.push({pattern:w,regex:_,file:z,rel:A})}return Y.sort(function(z,K){let Z,R,J,X;if(R=(z.pattern.match(/:/g)||[]).length,X=(K.pattern.match(/:/g)||[]).length,Z=z.pattern.includes("*")?1:0,J=K.pattern.includes("*")?1:0,Z!==J)return Z-J;if(R!==X)return R-X;return z.pattern.localeCompare(K.pattern)}),{routes:Y,layouts:u}};L2=function($,W,F){let U,u,f,_;if(U=[],f=$.slice(W.length+1),_=f.split("/"),u="",F.has(""))U.push(F.get(""));for(let A=0;A<_.length;A++){let Y=_[A];if(A===_.length-1)break;if(u=u?u+"/"+Y:Y,F.has(u))U.push(F.get(u))}return U};P2=function($,W){if($.length!==W.length)return!1;for(let F=0;F<$.length;F++)if($[F]!==W[F])return!1;return!0};x1=function($){for(let W in $){let F=$[W];if(typeof F==="function"&&(F.prototype?.mount||F.prototype?._create))return F}return typeof $.default==="function"?$.default:void 0};l1=function($){let W;W={};for(let F in $){let U=$[F];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))W[F]=U}return W};B2=function($){let W;return W=$.split("/").pop().replace(/\.rip$/,""),W.replace(/(^|[-_])([a-z])/g,function(F,U,u){return u.toUpperCase()})};I2=function($,W="components"){let F,U,u;U={};for(let f of $.listAll(W)){if(!f.endsWith(".rip"))continue;if(F=f.split("/").pop(),F.startsWith("_"))continue;if(u=B2(f),U[u])console.warn(`[Rip] Component name collision: ${u} (${U[u]} vs ${f})`);U[u]=f}return U};E1=async function($,W,F=null,U=null,u=null){let f,_,A,Y,Q,w,z,K,Z,R,J,X;if(F&&U){if(_=F.getCompiled(U),_)return _}if(z=W($),u){R={};for(let D in u.map){let q=u.map[D];if(q!==U&&z.includes(`new ${D}(`)){if(!u.classes[D]){if(Y=F.read(q),Y){A=await E1(Y,W,F,q,u),Q=l1(A);for(let O in Q){let H=Q[O];u.classes[O]=H}}}if(u.classes[D])R[D]=!0}}if(Z=Object.keys(R),Z.length>0)J=`const {${Z.join(", ")}} = globalThis['${u.key}'];
|
|
725
|
+
`,z=J+z}if(w=U?`// ${U}
|
|
726
|
+
`:"",f=new Blob([w+z],{type:"application/javascript"}),X=URL.createObjectURL(f),K=await import(X),u){Q=l1(K);for(let D in Q){let q=Q[D];u.classes[D]=q}}if(F&&U)F.setCompiled(U,K);return K};E2=function($){let W,F,U;return U=1000,F=30000,W=function(){let u;return u=new EventSource($),u.addEventListener("connected",function(){return U=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let f of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(f.href),$.searchParams.set("_t",Date.now()),f.href=$.toString()}),u.onerror=function(){return u.close(),setTimeout(W,U),U=Math.min(U*2,F)}},W()};var c2=function($={}){return n1($)},v2=function($){return $?.[U1]?$[U1]:$},g3=function($){return $?.[B1]===!0},l3=function($,W={}){let F,U,u,f,_;if(F=h(W.initial||null),u=h(!1),U=h(null),f=async function(){let A;return u.value=!0,U.value=null,(async()=>{try{return A=await $(),F.value=A}catch(Y){return U.value=Y}finally{u.value=!1}})()},_={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(_,"data",{get:function(){return F.value}}),Object.defineProperty(_,"loading",{get:function(){return u.value}}),Object.defineProperty(_,"error",{get:function(){return U.value}}),!W.lazy)f();return _},g2=function($,W){let F,U;return F=z1(W),U=h(!!F()),e(function(){let u;if(F())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?X1(U,W):U},x3=function($,W){let F,U;return F=z1(W),U=h(F()),e(function(){let u,f;return f=F(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?X1(U,W):U},k3=function($,W){let F,U,u;return F=z1(W),u=h(F()),U=0,e(function(){let f,_,A,Y;if(Y=F(),f=Date.now(),_=$-(f-U),_<=0)return u.value=Y,U=f;else return A=setTimeout(function(){return u.value=F(),U=Date.now()},_),function(){return clearTimeout(A)}}),typeof W!=="function"?X1(u,W):u},m3=function($,W){let F,U;return F=z1(W),U=h(!!F()),e(function(){let u;if(F())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?X1(U,W):U},l2=function(){let $,W,F,U;return W=new Map,U=[],$=new Map,F=function(u,f){for(let _ of U)_(u,f)},{read:function(u){return W.get(u)},write:function(u,f){let _;return _=!W.has(u),W.set(u,f),$.delete(u),F(_?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),F("delete",u)},exists:function(u){return W.has(u)},size:function(){return W.size},list:function(u=""){let f,_,A;A=[],f=u?u+"/":"";for(let[Y]of W)if(Y.startsWith(f)){if(_=Y.slice(f.length),_.includes("/"))continue;A.push(Y)}return A},listAll:function(u=""){let f,_;_=[],f=u?u+"/":"";for(let[A]of W)if(A.startsWith(f))_.push(A);return _},load:function(u){for(let f in u){let _=u[f];W.set(f,_)}},watch:function(u){return U.push(u),function(){return U.splice(U.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},x2=function($,W={}){let F,U,u,f,_,A,Y,Q,w,z,K,Z,R,J,X,D,q,O,H,I,P;if(q=W.root||"components",w=W.base||"",z=W.hash||!1,R=W.onError||null,H=function(M){return w&&M.startsWith(w)?M.slice(w.length)||"/":M},Q=function(M){return w?w+M:M},X=function(){let M;if(z){if(M=location.hash.slice(1),!M)return"/";return M[0]==="/"?M:"/"+M}else return location.pathname+location.search+location.hash},P=function(M){return z?M==="/"?location.pathname:"#"+M.slice(1):Q(M)},_=h(H(z?X():location.pathname)),f=h({}),Y=h(null),U=h([]),A=h({}),F=h(""),u=g2(100,h(!1)),I=I1($,q),K=new Set,$.watch(function(M,G){if(!G.startsWith(q+"/"))return;return I=I1($,q)}),D=function(M){let G,E,B,N,L;if(N=M.split("?")[0].split("#")[0],E=H(N),E=E[0]==="/"?E:"/"+E,B=M.split("?")[1]?.split("#")[0]||"",G=M.includes("#")?M.split("#")[1]:"",L=V2(E,I.routes),L){G2(function(){return _.value=E,f.value=L.params,Y.value=L.route,U.value=L2(L.route.file,q,I.layouts),A.value=Object.fromEntries(new URLSearchParams(B)),F.value=G});for(let S of K)S(O.current);return!0}if(R)R({status:404,path:E});return!1},J=function(){return D(X())},typeof window<"u")window.addEventListener("popstate",J);if(Z=function(M){let G,E,B;if(M.button!==0||M.metaKey||M.ctrlKey||M.shiftKey||M.altKey)return;E=M.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E?.href)return;if(B=new URL(E.href,location.origin),B.origin!==location.origin)return;if(E.target==="_blank"||E.hasAttribute("data-external"))return;return M.preventDefault(),G=z&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,O.push(G)},typeof document<"u")document.addEventListener("click",Z);return O={push:function(M){return D(M)?history.pushState(null,"",P(_.read())):void 0},replace:function(M){return D(M)?history.replaceState(null,"",P(_.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(M){return K.add(M),function(){return K.delete(M)}},rebuild:function(){return I=I1($,q)},routes:void 0,init:function(){return D(X()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",J);if(typeof document<"u")document.removeEventListener("click",Z);return K.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:_.value,params:f.value,route:Y.value,layouts:U.value,query:A.value,hash:F.value}}}),Object.defineProperty(O,"path",{get:function(){return _.value}}),Object.defineProperty(O,"params",{get:function(){return f.value}}),Object.defineProperty(O,"route",{get:function(){return Y.value}}),Object.defineProperty(O,"layouts",{get:function(){return U.value}}),Object.defineProperty(O,"query",{get:function(){return A.value}}),Object.defineProperty(O,"hash",{get:function(){return F.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(M){return u.value=M}}),Object.defineProperty(O,"routes",{get:function(){return I.routes}}),O},k2=function($={}){let W,F,U,u,f,_,A,Y,Q,w,z,K,Z,R,J,X,D,q,O,H,I,P;if({router:H,app:W,components:f,resolver:O,compile:U,target:I,onError:D}=$,_=typeof I==="string"?document.querySelector(I):I||document.getElementById("app"),!_)_=document.createElement("div"),_.id="app",document.body.appendChild(_);return _.style.opacity="0",A=null,w=null,Q=null,Y=[],Z=[],J=_,K=0,z=null,u=new Map,R=$.cacheSize||10,F=function(){let M,G;if(A&&w){if(A.beforeUnmount)A.beforeUnmount();if(u.set(w,A),u.size>R){if(G=u.keys().next().value,M=u.get(G),M.unmounted)M.unmounted();u.delete(G)}return A=null,w=null}},P=function(){F();for(let M=Z.length-1;M>=0;M--){let G=Z[M];if(G.beforeUnmount)G.beforeUnmount();if(G.unmounted)G.unmounted();G._target?.remove()}return Z=[],J=_},f.watch(function(M,G){let E;if(u.has(G)){if(E=u.get(G),E.unmounted)E.unmounted();return u.delete(G)}}),X=async function(M){let G,E,B,N,L,S,j,c,i,o,x,K1,k,d1,R1,u1,M1,T1,y,r1,L1,f1;if({route:y,params:u1,layouts:c,query:T1}=M,!y)return;if(y.file===w&&JSON.stringify(u1)===JSON.stringify(Q))return;return Q=u1,N=++K,H.navigating=!0,(async()=>{try{if(L1=f.read(y.file),!L1){if(D)D({status:404,message:`File not found: ${y.file}`});H.navigating=!1;return}if(K1=await E1(L1,U,f,y.file,O),N!==K){H.navigating=!1;return}if(G=x1(K1),!G){if(D)D({status:500,message:`No component found in ${y.file}`});H.navigating=!1;return}if(x=!P2(c,Y),d1=A?._target,x)P();else F();if(k=x?_:J,x&&c.length>0){_.innerHTML="",k=_;for(let v of c){if(o=f.read(v),!o)continue;if(i=await E1(o,U,f,v,O),N!==K){H.navigating=!1;return}if(E=x1(i),!E)continue;if(S=new E({app:W,params:u1,router:H}),S.beforeMount)S.beforeMount();f1=document.createElement("div"),f1.setAttribute("data-layout",v),k.appendChild(f1),S.mount(f1),Z.push(S),r1=f1.querySelector("slot")||f1,k=r1}Y=[...c],J=k}else if(x)_.innerHTML="",Y=[],J=_;if(B=u.get(y.file),B)u.delete(y.file),k.appendChild(B._target),A=B,w=y.file;else{if(R1=document.createElement("div"),R1.setAttribute("data-component",y.file),k.appendChild(R1),j=new G({app:W,params:u1,query:T1,router:H}),j.beforeMount)j.beforeMount();if(j.mount(R1),A=j,w=y.file,j.load)await j.load(u1,T1)}return d1?.remove(),H.navigating=!1,_.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return _.style.transition="opacity 150ms ease-in",_.style.opacity="1"})}):void 0}catch(v){if(H.navigating=!1,_.style.opacity="1",console.error(`Renderer: error mounting ${y.file}:`,v),D)D({status:500,message:v.message,error:v});L=!1;for(let S1=Z.length-1;S1>=0;S1--){let o1=Z[S1];if(o1.onError)try{o1.onError(v),L=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!L)return M1=document.createElement("pre"),M1.style.cssText="color:red;padding:1em",M1.textContent=v.stack||v.message,_.innerHTML="",_.appendChild(M1)})()}})()},q={start:function(){return z=e(function(){let M;return M=H.current,M.route?X(M):void 0}),H.init(),q},stop:function(){if(P(),z)z(),z=null;return _.innerHTML=""},remount:function(){let M;return M=H.current,M.route?X(M):void 0},cache:u},q},i3=async function($="",W={}){let F,U,u,f,_,A,Y,Q,w,z,K,Z,R,J,X,D,q,O,H,I,P,M;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),M=W.target||"#app",w=W.compile||null,X=W.persist||!1,R=W.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(M))z=document.createElement("div"),z.id=M.replace(/^#/,""),document.body.prepend(z);if(W.bundle)A=W.bundle;else if(W.bundleUrl){if(J={},Z=`__rip_etag_${W.bundleUrl}`,Y=sessionStorage.getItem(Z),Y)J["If-None-Match"]=Y;if(q=await fetch(W.bundleUrl,{headers:J}),q.status===304)A=JSON.parse(sessionStorage.getItem(`${Z}_data`));else if(q.ok){if(A=await q.json(),K=q.headers.get("etag"),K)sessionStorage.setItem(Z,K),sessionStorage.setItem(`${Z}_data`,JSON.stringify(A))}else throw Error(`launch: ${W.bundleUrl} (${q.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(f=c2({components:{},routes:{},data:{}}),A.data)f.data=A.data;if(A.routes)f.routes=A.routes;if(X&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=X==="local"?localStorage:sessionStorage;try{if(I=U.getItem(u),I){P=JSON.parse(I);for(let G in P){let E=P[G];f.data[G]=E}}}catch{}F=function(){return(()=>{try{return U.setItem(u,JSON.stringify(v2(f.data)))}catch{return null}})()},e(function(){let G;return m1.value,G=setTimeout(F,2000),function(){return clearTimeout(G)}}),window.addEventListener("beforeunload",F)}if(_=l2(),A.components)_.load(A.components);if(Q=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(_),classes:{},key:Q},typeof globalThis<"u")globalThis[Q]=O.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(H=x2(_,{root:"components",base:$,hash:R,onError:function(G){return console.error(`[Rip] Error ${G.status}: ${G.message||G.path}`)}}),D=k2({router:H,app:f,components:_,resolver:O,compile:w,target:M,onError:function(G){return console.error(`[Rip] ${G.message}`,G.error)}}),D.start(),A.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:_,router:H,renderer:D,cache:D.cache,version:"0.3.0"};return{app:f,components:_,router:H,renderer:D}};t.modules["app.rip"]=N1;for(let[$,W]of Object.entries(N1))if(typeof W==="function")globalThis[$]=W;})();
|