rip-lang 3.13.9 → 3.13.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/dist/rip.min.js +83 -83
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +1 -1
- package/src/app.rip +5 -1
- package/src/browser.js +6 -8
- package/src/components.js +2 -1
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
var v2=Object.defineProperty;var g2=($,W)=>{for(var A in W)v2($,A,{get:W[A],enumerable:!0,configurable:!0,set:(U)=>W[A]=()=>U})};function s1($){let W=$.prototype;W.rewriteTypes=function(){let A=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 _=F[f+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let X=F[f-1]?.[0]==="DEF",R=l2(F,f+1);if(R){let w=!X&&F[f+1+R.length]?.[0]==="TYPE_ALIAS";if(X||w){if(!u.data)u.data={};if(u.data.typeParams=$1(R),F.splice(f+1,R.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 _=F[f-1];if(!_)return 1;let X=o1(F,f+1),R=$1(X),w=_,H="type";if(_[0]==="CALL_END"||_[0]===")"){let K=1,Q=f-2;while(Q>=0&&K>0){let D=F[Q][0];if(D==="CALL_END"||D===")")K++;if(D==="CALL_START"||D==="(")K--;Q--}if(Q>=0)w=F[Q];H="returnType"}else if(_[0]==="PARAM_END"){let K=f+1+X.length,Q=F[K];if(Q&&(Q[0]==="->"||Q[0]==="=>"))w=Q;H="returnType"}else if(_[0]==="IDENTIFIER"&&f>=2&&F[f-2]?.[0]==="DEF")H="returnType";if(!w.data)w.data={};w.data[H]=R;let Z=1+X.length;return F.splice(f,Z),0}if(Y==="TYPE_ALIAS"){let _=F[f-1];if(!_)return 1;let X=_[1],R=f>=2&&F[f-2]?.[0]==="EXPORT",w=R?f-2:f-1,H=F[f+1],Z=(Q)=>{let D=U("TYPE_DECL",X,_);if(D.data={name:X,typeText:Q,exported:R},_.data?.typeParams)D.data.typeParams=_.data.typeParams;return D};if(H&&H[0]==="IDENTIFIER"&&H[1]==="type"&&F[f+2]?.[0]==="INDENT"){let Q=T1(F,f+2);return F.splice(w,Q-w+1,Z(a1(F,f+2))),0}if(H&&(H[0]==="TERMINATOR"||H[0]==="INDENT")){let Q=x2(F,f+1);if(Q)return F.splice(w,Q.endIdx-w+1,Z(Q.typeText)),0}let K=o1(F,f+1);return F.splice(w,f+1+K.length-w,Z($1(K))),0}if(Y==="INTERFACE"){let _=f>=1&&F[f-1]?.[0]==="EXPORT",X=f+1,R=F[X];if(!R)return 1;let w=R[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 K=a1(F,Z),Q=T1(F,Z),D=U("TYPE_DECL",w,R);D.data={name:w,kind:"interface",extends:H,typeText:K,exported:_};let M=_?f-1:f,q=Q-M+1;return F.splice(M,q,D),0}return 1}return 1})}}function o1($,W){let A=[],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,A.push(u),W++;continue}if(F){U++,A.push(u),W++;continue}if(Y){if(U>0){U--,A.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}A.push(u),W++}return A}function $1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((A)=>A[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 l2($,W){if(W>=$.length)return null;let A=$[W];if(A[0]!=="COMPARE"||A[1]!=="<")return null;let U=[A],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 a1($,W){let A=[],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,_=!1;if(U++,F==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(_=!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=[],R=0;while(U<$.length){let K=$[U];if(K[0]==="INDENT"){R++,U++;continue}if(K[0]==="OUTDENT"){if(R>0){R--,U++;continue}break}if(K[0]==="TERMINATOR"&&R===0)break;X.push(K),U++}let w=$1(X),H=_?"readonly ":"",Z=Y?"?":"";A.push(`${H}${F}${Z}: ${w}`)}else U++}return"{ "+A.join("; ")+" }"}function T1($,W){let A=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")A++;if($[U][0]==="OUTDENT"){if(A--,A===0)return U}}return $.length-1}function x2($,W){let A=W;if($[A]?.[0]==="TERMINATOR")A++;if($[A]?.[0]!=="INDENT")return null;let U=A;A++;while(A<$.length&&$[A][0]==="TERMINATOR")A++;if(!$[A]||$[A][1]!=="|")return null;let u=[],f=1;A=U+1;while(A<$.length&&f>0){let Y=$[A];if(Y[0]==="INDENT"){f++,A++;continue}if(Y[0]==="OUTDENT"){if(f--,f===0)break;A++;continue}if(Y[0]==="TERMINATOR"){A++;continue}if(Y[1]==="|"&&f===1){A++;let _=[];while(A<$.length){let X=$[A];if(X[0]==="TERMINATOR"||X[0]==="OUTDENT"||X[1]==="|"&&f===1)break;_.push(X),A++}if(_.length>0)u.push($1(_));continue}A++}if(u.length===0)return null;let F=T1($,U);return{typeText:u.join(" | "),endIdx:F}}function L1($,W=null){let A=[],U=0,u=" ",f=()=>u.repeat(U),F=!1,Y=!1,_=!1,X=(Z,K,Q)=>{if(K.startsWith("{ ")&&K.endsWith(" }")){let D=K.slice(2,-2).split("; ").filter((M)=>M.trim());if(D.length>0){A.push(`${f()}${Z}{`),U++;for(let M of D)A.push(`${f()}${M};`);U--,A.push(`${f()}}${Q}`);return}}A.push(`${f()}${Z}${K}${Q}`)},R=(Z,K)=>{let Q=[],D=K,M=Z[D]?.[0];if(M!=="CALL_START"&&M!=="PARAM_START")return{params:Q,endIdx:D};let q=M==="CALL_START"?"CALL_END":"PARAM_END";D++;let O=0;while(D<Z.length&&!(Z[D][0]===q&&O===0)){let z=Z[D];if(z[1]===","&&O===0){D++;continue}if(z[0]==="{"||z[0]==="["||z[0]==="CALL_START"||z[0]==="PARAM_START"||z[0]==="INDEX_START")O++;if(z[0]==="}"||z[0]==="]"||z[0]==="CALL_END"||z[0]==="PARAM_END"||z[0]==="INDEX_END"){O--,D++;continue}if(z[0]==="@"){if(D++,Z[D]?.[0]==="PROPERTY"||Z[D]?.[0]==="IDENTIFIER"){let E=Z[D][1],P=Z[D].data?.type;Q.push(P?`${E}: ${b(P)}`:E),D++}continue}if(z[0]==="SPREAD"||z[1]==="..."){if(D++,Z[D]?.[0]==="IDENTIFIER"){let E=Z[D][1],P=Z[D].data?.type;Q.push(P?`...${E}: ${b(P)}`:`...${E}: any[]`),D++}continue}if(z[0]==="{"){let E="{";D++;let P=1;while(D<Z.length&&P>0){if(Z[D][0]==="{")P++;if(Z[D][0]==="}")P--;if(P>0)E+=Z[D][1]+(Z[D+1]?.[0]==="}"?"":", ");D++}E+="}";let J=Z[D-1]?.data?.type;Q.push(J?`${E}: ${b(J)}`:E);continue}if(z[0]==="IDENTIFIER"){let E=z[1],P=z.data?.type,J=!1;if(Z[D+1]?.[0]==="=")J=!0;if(P)Q.push(`${E}${J?"?":""}: ${b(P)}`);else Q.push(E);if(D++,J){D++;let G=0;while(D<Z.length){let I=Z[D];if(I[0]==="("||I[0]==="["||I[0]==="{")G++;if(I[0]===")"||I[0]==="]"||I[0]==="}")G--;if(G===0&&(I[1]===","||I[0]==="CALL_END"))break;D++}}continue}D++}return{params:Q,endIdx:D}};for(let Z=0;Z<$.length;Z++){let K=$[Z],Q=K[0],D=!1;if(Q==="EXPORT"){if(D=!0,Z++,Z>=$.length)break;if(K=$[Z],Q=K[0],Q==="DEFAULT"){if(Z++,Z>=$.length)break;if(K=$[Z],Q=K[0],Q==="IDENTIFIER")A.push(`${f()}export default ${K[1]};`);continue}}if(Q==="IMPORT"){let M=[],q=Z+1;while(q<$.length&&$[q][0]!=="TERMINATOR")M.push($[q]),q++;let O="import "+M.map((z)=>z[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),A.push(`${f()}${O};`),Z=q;continue}if(Q==="TYPE_DECL"){let M=K.data;if(!M)continue;let q=D||M.exported?"export ":"",O=M.typeParams||"";if(M.kind==="interface"){let z=M.extends?` extends ${M.extends}`:"";X(`${q}interface ${M.name}${O}${z} `,M.typeText||"{}","")}else{let z=b(M.typeText||"");X(`${q}type ${M.name}${O} = `,z,";")}continue}if(Q==="ENUM"){let M=D?"export ":"",q=$[Z+1];if(!q)continue;let O=q[1],z=Z+2;if($[z]?.[0]==="INDENT"){A.push(`${f()}${M}enum ${O} {`),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 J=$[z]?.[1];E.push(`${P} = ${J}`),z++}else E.push(P)}else z++}for(let P=0;P<E.length;P++){let J=P<E.length-1?",":"";A.push(`${f()}${E[P]}${J}`)}U--,A.push(`${f()}}`)}continue}if(Q==="CLASS"){let M=D?"export ":"",q=$[Z+1];if(!q)continue;let O=q[1],z="",E=Z+2;if($[E]?.[0]==="EXTENDS")z=` extends ${$[E+1]?.[1]||""}`,E+=2;if($[E]?.[0]==="INDENT"){let P=!1,J=E+1;while(J<$.length&&$[J][0]!=="OUTDENT"){if($[J].data?.type||$[J].data?.returnType){P=!0;break}J++}if(P)A.push(`${f()}${M}declare class ${O}${z} {`),F=!0,U++}continue}if(Q==="DEF"){let M=$[Z+1];if(!M)continue;let q=M[1],O=M.data?.returnType,z=M.data?.typeParams||"",{params:E,endIdx:P}=R($,Z+2);if(O||E.some((J)=>J.includes(":"))){let J=D?"export ":"",G=F?"":D?"":"declare ",I=O?`: ${b(O)}`:"",B=E.join(", ");if(F)A.push(`${f()}${q}${z}(${B})${I};`);else A.push(`${f()}${J}${G}function ${q}${z}(${B})${I};`)}continue}if(Q==="{"&&F){let M=Z+1,q=1;while(M<$.length&&q>0){let O=$[M];if(O[0]==="{"){q++,M++;continue}if(O[0]==="}"){q--,M++;continue}if(O[0]==="TERMINATOR"){M++;continue}if(O[0]==="PROPERTY"&&q===1){let z=O[1],E=O.data?.returnType;if(M++,$[M]?.[1]===":")M++;let P=[];if($[M]?.[0]==="PARAM_START"){let J=R($,M);P=J.params,M=J.endIdx+1}if($[M]?.[0]==="->"||$[M]?.[0]==="=>")M++;if($[M]?.[0]==="INDENT"){let J=1;M++;while(M<$.length&&J>0){if($[M][0]==="INDENT")J++;if($[M][0]==="OUTDENT")J--;M++}}if(E||P.some((J)=>J.includes(":"))){let J=E?`: ${b(E)}`:"",G=P.join(", ");A.push(`${f()}${z}(${G})${J};`)}continue}M++}Z=M-1;continue}if(Q==="INDENT")continue;if(Q==="OUTDENT"){if(F)U--,A.push(`${f()}}`),F=!1;continue}if(Q==="IDENTIFIER"&&!F&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let M=K[1],q=Z+2,{params:O}=R($,q),z=q,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||O.some((J)=>J.includes(":"))){let J=D?"export ":"",G=D?"":"declare ",I=P?`: ${b(P)}`:"",B=O.join(", ");A.push(`${f()}${J}${G}function ${M}(${B})${I};`);continue}}if(Q==="IDENTIFIER"&&K.data?.type){let M=K[1],q=b(K.data.type),O=$[Z+1];if(O){let z=D?"export ":"",E=D?"":"declare ";if(O[0]==="READONLY_ASSIGN")A.push(`${f()}${z}${E}const ${M}: ${q};`);else if(O[0]==="REACTIVE_ASSIGN")Y=!0,A.push(`${f()}${z}${E}const ${M}: Signal<${q}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,A.push(`${f()}${z}${E}const ${M}: Computed<${q}>;`);else if(O[0]==="EFFECT")A.push(`${f()}${z}${E}const ${M}: () => void;`);else if(O[0]==="="){let P=Z+2;if($[P]?.[0]==="PARAM_START"){let G=1,I=P+1;while(I<$.length&&G>0){if($[I][0]==="PARAM_START")G++;if($[I][0]==="PARAM_END")G--;I++}P=I}let J=$[P];if(J&&(J[0]==="->"||J[0]==="=>")&&J.data?.returnType){let G=b(J.data.returnType),{params:I}=R($,Z+2),B=I.join(", ");A.push(`${f()}${z}${E}function ${M}(${B}): ${G};`)}else if(F)A.push(`${f()}${M}: ${q};`);else A.push(`${f()}${z}let ${M}: ${q};`)}else if(F)A.push(`${f()}${M}: ${q};`)}else if(F)A.push(`${f()}${M}: ${q};`)}}let w=new Set;if(W){if(S1(W,A,f,U,w),w.size>0)for(let Z=A.length-1;Z>=0;Z--){let K=A[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(K&&w.has(K[1]))A.splice(Z,1)}}if(A.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(_)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(A).join(`
|
|
1
|
+
var v2=Object.defineProperty;var g2=($,W)=>{for(var A in W)v2($,A,{get:W[A],enumerable:!0,configurable:!0,set:(U)=>W[A]=()=>U})};function s1($){let W=$.prototype;W.rewriteTypes=function(){let A=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 _=F[f+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let X=F[f-1]?.[0]==="DEF",R=l2(F,f+1);if(R){let K=!X&&F[f+1+R.length]?.[0]==="TYPE_ALIAS";if(X||K){if(!u.data)u.data={};if(u.data.typeParams=$1(R),F.splice(f+1,R.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 _=F[f-1];if(!_)return 1;let X=o1(F,f+1),R=$1(X),K=_,H="type";if(_[0]==="CALL_END"||_[0]===")"){let J=1,Q=f-2;while(Q>=0&&J>0){let D=F[Q][0];if(D==="CALL_END"||D===")")J++;if(D==="CALL_START"||D==="(")J--;Q--}if(Q>=0)K=F[Q];H="returnType"}else if(_[0]==="PARAM_END"){let J=f+1+X.length,Q=F[J];if(Q&&(Q[0]==="->"||Q[0]==="=>"))K=Q;H="returnType"}else if(_[0]==="IDENTIFIER"&&f>=2&&F[f-2]?.[0]==="DEF")H="returnType";if(!K.data)K.data={};K.data[H]=R;let Z=1+X.length;return F.splice(f,Z),0}if(Y==="TYPE_ALIAS"){let _=F[f-1];if(!_)return 1;let X=_[1],R=f>=2&&F[f-2]?.[0]==="EXPORT",K=R?f-2:f-1,H=F[f+1],Z=(Q)=>{let D=U("TYPE_DECL",X,_);if(D.data={name:X,typeText:Q,exported:R},_.data?.typeParams)D.data.typeParams=_.data.typeParams;return D};if(H&&H[0]==="IDENTIFIER"&&H[1]==="type"&&F[f+2]?.[0]==="INDENT"){let Q=T1(F,f+2);return F.splice(K,Q-K+1,Z(a1(F,f+2))),0}if(H&&(H[0]==="TERMINATOR"||H[0]==="INDENT")){let Q=x2(F,f+1);if(Q)return F.splice(K,Q.endIdx-K+1,Z(Q.typeText)),0}let J=o1(F,f+1);return F.splice(K,f+1+J.length-K,Z($1(J))),0}if(Y==="INTERFACE"){let _=f>=1&&F[f-1]?.[0]==="EXPORT",X=f+1,R=F[X];if(!R)return 1;let K=R[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 J=a1(F,Z),Q=T1(F,Z),D=U("TYPE_DECL",K,R);D.data={name:K,kind:"interface",extends:H,typeText:J,exported:_};let M=_?f-1:f,q=Q-M+1;return F.splice(M,q,D),0}return 1}return 1})}}function o1($,W){let A=[],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,A.push(u),W++;continue}if(F){U++,A.push(u),W++;continue}if(Y){if(U>0){U--,A.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}A.push(u),W++}return A}function $1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((A)=>A[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 l2($,W){if(W>=$.length)return null;let A=$[W];if(A[0]!=="COMPARE"||A[1]!=="<")return null;let U=[A],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 a1($,W){let A=[],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,_=!1;if(U++,F==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(_=!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=[],R=0;while(U<$.length){let J=$[U];if(J[0]==="INDENT"){R++,U++;continue}if(J[0]==="OUTDENT"){if(R>0){R--,U++;continue}break}if(J[0]==="TERMINATOR"&&R===0)break;X.push(J),U++}let K=$1(X),H=_?"readonly ":"",Z=Y?"?":"";A.push(`${H}${F}${Z}: ${K}`)}else U++}return"{ "+A.join("; ")+" }"}function T1($,W){let A=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")A++;if($[U][0]==="OUTDENT"){if(A--,A===0)return U}}return $.length-1}function x2($,W){let A=W;if($[A]?.[0]==="TERMINATOR")A++;if($[A]?.[0]!=="INDENT")return null;let U=A;A++;while(A<$.length&&$[A][0]==="TERMINATOR")A++;if(!$[A]||$[A][1]!=="|")return null;let u=[],f=1;A=U+1;while(A<$.length&&f>0){let Y=$[A];if(Y[0]==="INDENT"){f++,A++;continue}if(Y[0]==="OUTDENT"){if(f--,f===0)break;A++;continue}if(Y[0]==="TERMINATOR"){A++;continue}if(Y[1]==="|"&&f===1){A++;let _=[];while(A<$.length){let X=$[A];if(X[0]==="TERMINATOR"||X[0]==="OUTDENT"||X[1]==="|"&&f===1)break;_.push(X),A++}if(_.length>0)u.push($1(_));continue}A++}if(u.length===0)return null;let F=T1($,U);return{typeText:u.join(" | "),endIdx:F}}function L1($,W=null){let A=[],U=0,u=" ",f=()=>u.repeat(U),F=!1,Y=!1,_=!1,X=(Z,J,Q)=>{if(J.startsWith("{ ")&&J.endsWith(" }")){let D=J.slice(2,-2).split("; ").filter((M)=>M.trim());if(D.length>0){A.push(`${f()}${Z}{`),U++;for(let M of D)A.push(`${f()}${M};`);U--,A.push(`${f()}}${Q}`);return}}A.push(`${f()}${Z}${J}${Q}`)},R=(Z,J)=>{let Q=[],D=J,M=Z[D]?.[0];if(M!=="CALL_START"&&M!=="PARAM_START")return{params:Q,endIdx:D};let q=M==="CALL_START"?"CALL_END":"PARAM_END";D++;let O=0;while(D<Z.length&&!(Z[D][0]===q&&O===0)){let z=Z[D];if(z[1]===","&&O===0){D++;continue}if(z[0]==="{"||z[0]==="["||z[0]==="CALL_START"||z[0]==="PARAM_START"||z[0]==="INDEX_START")O++;if(z[0]==="}"||z[0]==="]"||z[0]==="CALL_END"||z[0]==="PARAM_END"||z[0]==="INDEX_END"){O--,D++;continue}if(z[0]==="@"){if(D++,Z[D]?.[0]==="PROPERTY"||Z[D]?.[0]==="IDENTIFIER"){let E=Z[D][1],P=Z[D].data?.type;Q.push(P?`${E}: ${b(P)}`:E),D++}continue}if(z[0]==="SPREAD"||z[1]==="..."){if(D++,Z[D]?.[0]==="IDENTIFIER"){let E=Z[D][1],P=Z[D].data?.type;Q.push(P?`...${E}: ${b(P)}`:`...${E}: any[]`),D++}continue}if(z[0]==="{"){let E="{";D++;let P=1;while(D<Z.length&&P>0){if(Z[D][0]==="{")P++;if(Z[D][0]==="}")P--;if(P>0)E+=Z[D][1]+(Z[D+1]?.[0]==="}"?"":", ");D++}E+="}";let w=Z[D-1]?.data?.type;Q.push(w?`${E}: ${b(w)}`:E);continue}if(z[0]==="IDENTIFIER"){let E=z[1],P=z.data?.type,w=!1;if(Z[D+1]?.[0]==="=")w=!0;if(P)Q.push(`${E}${w?"?":""}: ${b(P)}`);else Q.push(E);if(D++,w){D++;let G=0;while(D<Z.length){let I=Z[D];if(I[0]==="("||I[0]==="["||I[0]==="{")G++;if(I[0]===")"||I[0]==="]"||I[0]==="}")G--;if(G===0&&(I[1]===","||I[0]==="CALL_END"))break;D++}}continue}D++}return{params:Q,endIdx:D}};for(let Z=0;Z<$.length;Z++){let J=$[Z],Q=J[0],D=!1;if(Q==="EXPORT"){if(D=!0,Z++,Z>=$.length)break;if(J=$[Z],Q=J[0],Q==="DEFAULT"){if(Z++,Z>=$.length)break;if(J=$[Z],Q=J[0],Q==="IDENTIFIER")A.push(`${f()}export default ${J[1]};`);continue}}if(Q==="IMPORT"){let M=[],q=Z+1;while(q<$.length&&$[q][0]!=="TERMINATOR")M.push($[q]),q++;let O="import "+M.map((z)=>z[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),A.push(`${f()}${O};`),Z=q;continue}if(Q==="TYPE_DECL"){let M=J.data;if(!M)continue;let q=D||M.exported?"export ":"",O=M.typeParams||"";if(M.kind==="interface"){let z=M.extends?` extends ${M.extends}`:"";X(`${q}interface ${M.name}${O}${z} `,M.typeText||"{}","")}else{let z=b(M.typeText||"");X(`${q}type ${M.name}${O} = `,z,";")}continue}if(Q==="ENUM"){let M=D?"export ":"",q=$[Z+1];if(!q)continue;let O=q[1],z=Z+2;if($[z]?.[0]==="INDENT"){A.push(`${f()}${M}enum ${O} {`),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?",":"";A.push(`${f()}${E[P]}${w}`)}U--,A.push(`${f()}}`)}continue}if(Q==="CLASS"){let M=D?"export ":"",q=$[Z+1];if(!q)continue;let O=q[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)A.push(`${f()}${M}declare class ${O}${z} {`),F=!0,U++}continue}if(Q==="DEF"){let M=$[Z+1];if(!M)continue;let q=M[1],O=M.data?.returnType,z=M.data?.typeParams||"",{params:E,endIdx:P}=R($,Z+2);if(O||E.some((w)=>w.includes(":"))){let w=D?"export ":"",G=F?"":D?"":"declare ",I=O?`: ${b(O)}`:"",B=E.join(", ");if(F)A.push(`${f()}${q}${z}(${B})${I};`);else A.push(`${f()}${w}${G}function ${q}${z}(${B})${I};`)}continue}if(Q==="{"&&F){let M=Z+1,q=1;while(M<$.length&&q>0){let O=$[M];if(O[0]==="{"){q++,M++;continue}if(O[0]==="}"){q--,M++;continue}if(O[0]==="TERMINATOR"){M++;continue}if(O[0]==="PROPERTY"&&q===1){let z=O[1],E=O.data?.returnType;if(M++,$[M]?.[1]===":")M++;let P=[];if($[M]?.[0]==="PARAM_START"){let w=R($,M);P=w.params,M=w.endIdx+1}if($[M]?.[0]==="->"||$[M]?.[0]==="=>")M++;if($[M]?.[0]==="INDENT"){let w=1;M++;while(M<$.length&&w>0){if($[M][0]==="INDENT")w++;if($[M][0]==="OUTDENT")w--;M++}}if(E||P.some((w)=>w.includes(":"))){let w=E?`: ${b(E)}`:"",G=P.join(", ");A.push(`${f()}${z}(${G})${w};`)}continue}M++}Z=M-1;continue}if(Q==="INDENT")continue;if(Q==="OUTDENT"){if(F)U--,A.push(`${f()}}`),F=!1;continue}if(Q==="IDENTIFIER"&&!F&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let M=J[1],q=Z+2,{params:O}=R($,q),z=q,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||O.some((w)=>w.includes(":"))){let w=D?"export ":"",G=D?"":"declare ",I=P?`: ${b(P)}`:"",B=O.join(", ");A.push(`${f()}${w}${G}function ${M}(${B})${I};`);continue}}if(Q==="IDENTIFIER"&&J.data?.type){let M=J[1],q=b(J.data.type),O=$[Z+1];if(O){let z=D?"export ":"",E=D?"":"declare ";if(O[0]==="READONLY_ASSIGN")A.push(`${f()}${z}${E}const ${M}: ${q};`);else if(O[0]==="REACTIVE_ASSIGN")Y=!0,A.push(`${f()}${z}${E}const ${M}: Signal<${q}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,A.push(`${f()}${z}${E}const ${M}: Computed<${q}>;`);else if(O[0]==="EFFECT")A.push(`${f()}${z}${E}const ${M}: () => void;`);else if(O[0]==="="){let P=Z+2;if($[P]?.[0]==="PARAM_START"){let G=1,I=P+1;while(I<$.length&&G>0){if($[I][0]==="PARAM_START")G++;if($[I][0]==="PARAM_END")G--;I++}P=I}let w=$[P];if(w&&(w[0]==="->"||w[0]==="=>")&&w.data?.returnType){let G=b(w.data.returnType),{params:I}=R($,Z+2),B=I.join(", ");A.push(`${f()}${z}${E}function ${M}(${B}): ${G};`)}else if(F)A.push(`${f()}${M}: ${q};`);else A.push(`${f()}${z}let ${M}: ${q};`)}else if(F)A.push(`${f()}${M}: ${q};`)}else if(F)A.push(`${f()}${M}: ${q};`)}}let K=new Set;if(W){if(S1(W,A,f,U,K),K.size>0)for(let Z=A.length-1;Z>=0;Z--){let J=A[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(J&&K.has(J[1]))A.splice(Z,1)}}if(A.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(_)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(A).join(`
|
|
2
2
|
`)+`
|
|
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 S1($,W,A,U,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],F=!1,Y=null,_=null;if(f==="export"&&Array.isArray($[1])){F=!0;let X=$[1];if((X[0]?.valueOf?.()??X[0])==="="&&Array.isArray(X[2])&&(X[2][0]?.valueOf?.()??X[2][0])==="component")Y=X[1]?.valueOf?.()??X[1],_=X[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")Y=$[1]?.valueOf?.()??$[1],_=$[2];if(Y&&_){let X=F?"export ":"",R=_[2],
|
|
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 S1($,W,A,U,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],F=!1,Y=null,_=null;if(f==="export"&&Array.isArray($[1])){F=!0;let X=$[1];if((X[0]?.valueOf?.()??X[0])==="="&&Array.isArray(X[2])&&(X[2][0]?.valueOf?.()??X[2][0])==="component")Y=X[1]?.valueOf?.()??X[1],_=X[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")Y=$[1]?.valueOf?.()??$[1],_=$[2];if(Y&&_){let X=F?"export ":"",R=_[2],K=Array.isArray(R)&&(R[0]?.valueOf?.()??R[0])==="block"?R.slice(1):R?[R]:[],H=[],Z=!1;for(let J of K){if(!Array.isArray(J))continue;let Q=J[0]?.valueOf?.()??J[0],D,M,q,O,z;if(Q==="state"||Q==="readonly"||Q==="computed"){if(D=J[1],q=Array.isArray(D)&&(D[0]?.valueOf?.()??D[0])==="."&&(D[1]?.valueOf?.()??D[1])==="this",M=q?D[2]?.valueOf?.()??D[2]:D?.valueOf?.()??D,O=q?D[2]?.type:D?.type,z=!0,!q)u.add(M)}else if(Q==="."){if(q=(J[1]?.valueOf?.()??J[1])==="this",M=q?J[2]?.valueOf?.()??J[2]:null,O=q?J[2]?.type:null,z=!1,!q&&M)u.add(M)}else continue;if(!q||!M)continue;let E=O?b(O):"any",P=z?"?":"";if(!z)Z=!0;H.push(` ${M}${P}: ${E};`)}if(W.push(`${X}declare class ${Y} {`),H.length>0){let J=Z?"":"?";W.push(` constructor(props${J}: {`);for(let Q of H)W.push(Q);W.push(" });")}W.push("}")}if(f==="program"||f==="block"){for(let X=1;X<$.length;X++)if(Array.isArray($[X]))S1($[X],W,A,U,u)}if(f==="export"&&Array.isArray($[1])&&!_)S1($[1],W,A,U,u)}function t1($,W,A){let[U,u]=W,f=U?.valueOf?.()??U,F=[];if(Array.isArray(u)){let X=u[0]==="block"?u.slice(1):[u];for(let R of X)if(Array.isArray(R)){if(R[0]?.valueOf?.()==="="){let K=R[1]?.valueOf?.()??R[1],H=R[2]?.valueOf?.()??R[2];F.push([K,H])}}}if(F.length===0)return`const ${f} = {}`;let Y=F.map(([X,R])=>`${X}: ${R}`).join(", "),_=F.map(([X,R])=>`${R}: "${X}"`).join(", ");return`const ${f} = {${Y}, ${_}}`}var e1=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"]),V1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},f2=new Set(Object.keys(V1)),k2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),m2=new Set(["break","continue","debugger"]),n2=new Set(["NEW","TYPEOF","DELETE"]),i2=new Set(["IN","OF","INSTANCEOF"]),w1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),R2=new Set([...w1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),X1=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","@","->","=>","[","(","{","--","++"]),p2=new Set(["+","-"]),d2=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),r2=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),i=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),k=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),o2={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},$2=new Set(["CATCH","THEN","ELSE","FINALLY",...k]),h1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),a2=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),U2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),s2=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),U1=new Set(["INDENT","OUTDENT","TERMINATOR"]),W2=new Set([".","?."]),A2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),t2=new Set([...R2,"++","--"]),F2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),e2=new Set(["*","/","%","//","%%"]),u3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),f3=new Set(["<<",">>",">>>"]),$3=new Set(["!","~"]),U3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,W3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,A3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,F3=/^[^\n\S]+/,Y3=/^(?:\n[^\n\S]*)+/,_3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,Z3=/^[-=]>/,R3=/^(?:~[=>]|=!)/,Q3=/^(?:'''\\|"""\\|'''|"""|'|")/,X3=/^(?:[^\\']|\\[\s\S])*/,w3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,J3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,K3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,Y2=/\n+([^\n\S]*)(?=\S)/g,D3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,_2=/^\w*/,M3=/^(?!.*(.).*\1)[gimsuy]*$/,H3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,z3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,q3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,O3=/\s+$/,Z2=/^\s*(?:,|\??\.(?![.\d]))/,G3=65279;function J1($,W,{pre:A=0,row:U=0,col:u=0,len:f=0,data:F=null}={}){let Y=[$,W];return Y.pre=A,Y.data=F,Y.loc={r:U,c:u,n:f},Y.spaced=A>0,Y.newLine=!1,Y}function l($,W,A){let U=J1($,W);if(U.generated=!0,A)U.origin=A;return U}function g($,{row:W=0,col:A=0,len:U=1}={}){let u=SyntaxError($);throw u.location={first_line:W,first_column:A,last_column:A+U-1},u}function P3($){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 A=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(A===0)g(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(A),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let A=this.ends[this.ends.length-1];g(`missing ${A.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===G3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
4
4
|
`),$=$.replace(O3,""),/^[^\n\S]/.test($))$=`
|
|
5
5
|
`+$;return $}advance($){let W=this.code.slice(this.pos,this.pos+$);for(let A=0;A<W.length;A++)if(W[A]===`
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,W,{len:A,data:U,pre:u}={}){let f=
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,W,{len:A,data:U,pre:u}={}){let f=J1($,W,{pre:u??0,row:this.row,col:this.col,len:A??(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(R3.test(this.chunk))return 0;let $=U3.exec(this.chunk);if(!$)return 0;let[,W,A]=$,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 R=this.prevTag();if(R==="DEFAULT"||R==="IMPORT_ALL"||R==="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 F;if(W==="do"&&(F=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),F[1].length+3;let Y=this.prev();if(A&&Y&&Y[0]==="SPACE?")A=null;if(A||Y&&(Y[0]==="."||Y[0]==="?."||!Y.spaced&&Y[0]==="@")){if(f="PROPERTY",this.inRenderBlock&&Y&&Y[0]==="."&&!A){let R=this.chunk.slice(U);while(R[0]==="-"&&/^-[a-zA-Z]/.test(R)){let K=/^-([a-zA-Z][\w]*)/.exec(R);if(!K)break;W+="-"+K[1],U+=1+K[1].length,R=this.chunk.slice(U)}}}else f="IDENTIFIER";let _=W.endsWith("!")||W.endsWith("?")?W.slice(0,-1):W;if(f==="IDENTIFIER"&&!W.endsWith("!")&&!W.endsWith("?")&&(e1.has(W)||u2.has(W)||f2.has(W))&&!(this.exportSpecifierList&&f2.has(W))){if(V1[W]!==void 0)u.original=W,W=V1[W];f=this.classifyKeyword(W,f,u)}if(f==="IDENTIFIER"&&k2.has(_))g(`reserved word '${_}'`,{row:this.row,col:this.col,len:U});if(f==="PROPERTY"&&Y){if(Y[0]==="."&&this.tokens.length>1){let R=this.tokens[this.tokens.length-2];if(R[0]==="UNARY"&&R[1]==="new")R[0]="NEW_TARGET";if(R[0]==="IMPORT"&&R[1]==="import")this.seenImport=!1,R[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 X=this.emit(f,W,{len:U,data:Object.keys(u).length?u:null});if(f==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(A)return this.emit(":",":",{len:1}),U+A.length;return U}classifyKeyword($,W,A){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(m2.has($))return"STATEMENT";let U=$.toUpperCase();if(U==="WHEN"&&U1.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(n2.has(U))return"UNARY";if(i2.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let u=this.tokens.pop();A.invert=u.data?.original||u[1]}return"RELATION"}if(e1.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 A=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(A)return this.emit("IDENTIFIER","div#"+A[1]),A[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=_3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=F3.exec(this.chunk);if(!$&&this.chunk[0]!==`
|
|
7
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 $=Y3.exec(this.chunk);if(!$)return 0;let W=$[0],A=W.length-1-W.lastIndexOf(`
|
|
8
8
|
`);if(this.isUnfinished()){if(A<this.indent&&/^\s*,/.test(this.chunk)&&!A2.has(this.prevTag())){if(this.outdentTo(A,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(A===this.indent)return this.emitNewline(),W.length;if(A>this.indent){if(!this.tokens.length)return this.indent=A,W.length;let U=A-this.indent;return this.emit("INDENT",U,{len:A}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=A,W.length}return this.outdentTo(A,W.length),W.length}outdentTo($,W=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let A=this.indent-$;while(A>0){let U=this.indents[this.indents.length-1];if(!U)A=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",A,{len:W}),A-=U}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Z2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let W=this.tokens.length;if(W>=2){let A=this.tokens[W-2][0];if(A==="INDENT"||A==="TERMINATOR"||A==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let W=0;for(let A=this.tokens.length-1;A>=0;A--){let U=this.tokens[A];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 Z2.test(this.chunk)||A2.has(this.prevTag())}pair($){let W=this.ends[this.ends.length-1];if(!W||$!==W.tag){if(W?.tag==="OUTDENT"){let A=this.indents[this.indents.length-1];if(A)this.outdentTo(this.indent-A);return this.pair($)}g(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=Q3.exec(this.chunk);if(!$)return 0;let W=$[0],A=W.length>1&&W.endsWith("\\"),U=A?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=X3;break;case'"':f=
|
|
10
|
-
`)u--;u++;let f=this.chunk.slice(u,U),F=/^\s*$/.test(f)?f.length:null,Y="";for(let R of A)if(R[0]==="NEOSTRING")Y+=R[1];let _=null,X;Y2.lastIndex=0;while(X=Y2.exec(Y))if(_===null||X[1].length>0&&X[1].length<_.length)_=X[1];if(F===null)return _;if(_===null)return" ".repeat(F);if(F<=_.length)return" ".repeat(F);return _}matchWithInterpolations($,W,A,U){if(!A)A=W;if(!U)U=/^[#$]\{/;let u=[],f=W.length;if(this.chunk.slice(0,f)!==W)return null;let F=this.chunk.slice(f);while(!0){let[Y]=$.exec(F);u.push(["NEOSTRING",Y,{offset:f}]),F=F.slice(Y.length),f+=Y.length;let _=U.exec(F);if(!_)break;let R=_[0].length-1,
|
|
11
|
-
`)}if(f===0&&W?.length===3)_=_.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(u)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:Y.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=W3.exec(this.chunk);if(!$)return 0;let W=$[0],A=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:A});if(/^0\d+/.test(W))g(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:A});let u=P3(W),f=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if(f==="INFINITY")F.original=W;return this.emit(f,W,{len:A,data:F}),A}regexToken(){let $=this.matchWithInterpolations(H3,"///");if($){let{tokens:X,index:R}=$,[w]=_2.exec(this.chunk.slice(R)),H=R+w.length;if(X.length===1||!X.some((Z)=>Z[0]==="TOKENS")){let Z=(X[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${w}`,{len:H,data:{delimiter:"///",heregex:{flags:w}}})}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-w.length}),w)this.emit(",",",",{len:0}),this.emit("STRING",`"${w}"`,{len:w.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return H}let W=D3.exec(this.chunk);if(!W)return 0;let[A,U,u]=W,f=this.prev();if(f){if(f.spaced&&J1.has(f[0])&&(!u||/^\/=?\s/.test(A)))return 0;if(t2.has(f[0])&&!(f.spaced&&J1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let F=A.length,[Y]=_2.exec(this.chunk.slice(F)),_=F+Y.length;if(!M3.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:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=q3.exec(this.chunk)||z3.exec(this.chunk);if(!$)return 0;let W=$[1],A=$[0].length;return this.emit("JS",W,{len:A,data:{here:$[0].startsWith("```")}}),A}literalToken(){let $=A3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),A=W,U=this.prev();if(Z3.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(K1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(K1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||F2.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,A="TERMINATOR";else if(W==="|>")A="PIPE";else if(W==="::=")A="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==="::")A="TYPE_ANNOTATION";else if(W==="~=")A="COMPUTED_ASSIGN";else if(W===":=")A="REACTIVE_ASSIGN";else if(W==="<=>")A="BIND";else if(W==="~>")A="EFFECT";else if(W==="=!")A="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 _=this.emit("PROPERTY","assign");return _.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],_=F[2],X=Y.split("."),R=()=>{this.emit("IDENTIFIER",X[0]);for(let H=1;H<X.length;H++)this.emit(".","."),this.emit("PROPERTY",X[H])};R(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),R(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let w=this.prev();return w.mergeClose=!0,1+Y.length+_.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")A="EXPORT_ALL";else if(e2.has(W))A="MATH";else if(u3.has(W))A="COMPARE";else if(F2.has(W))A="COMPOUND_ASSIGN";else if($3.has(W))A="UNARY_MATH";else if(f3.has(W))A="SHIFT";else if(W==="?"&&U?.spaced)A="SPACE?";else if(W==="!?"&&U&&!U.spaced)A="DEFINED";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))A="?.";else if(U){if(W==="("&&!U.spaced&&J1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";A="CALL_START"}if(W==="["&&!U.spaced&&R2.has(U[0])){if(A="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:o2[W],origin:[A,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(A,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 A=this.tokens[$];if(A[0]===")")W.push(A);else if(A[0]==="("||A[0]==="CALL_START")if(W.length)W.pop();else if(A[0]==="(")return A[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,(A)=>A[0]===")"||A[0]==="CALL_END",(A)=>A[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(A)=>A[0]==="]"||A[0]==="INDEX_END",(A,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",A[0]="]";else A[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,A=null,U=(f,F)=>{return f[1]!==";"&&s2.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)||W2.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,A)};this.scanTokens((f,F,Y)=>{let[_]=f;if(_==="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(_==="CATCH")for(let X=1;X<=2;X++){let R=this.tokens[F+X]?.[0];if(R==="OUTDENT"||R==="TERMINATOR"||R==="FINALLY")return Y.splice(F+X,0,...this.makeIndentation()),2+X}if((_==="->"||_==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[W,A]=this.makeIndentation(),Y.splice(F+1,0,W,A),1;if(U2.has(_)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[F+1]?.[0]==="IF")){if($=_,[W,A]=this.makeIndentation(),_==="THEN")W.fromThen=!0;if(Y.splice(F+1,0,W),this.detectEnd(F+2,U,u),_==="THEN")Y.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!U2.has(this.tokens[u-1]?.[0])},A=(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;return $=U,this.detectEnd(u+1,W,A),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((A,U,u)=>{let[f]=A,F=u[U-1]||[],Y=u[U+1]||[],[_]=F,[X]=Y,R=U,w=(J)=>U-R+J,H=()=>$[$.length-1],Z=(J)=>J?.[2]?.ours,K=()=>Z(H())&&H()?.[0]==="(",Q=()=>Z(H())&&H()?.[0]==="{",D=(J)=>{$.push(["(",J,{ours:!0}]),u.splice(J,0,l("CALL_START","("))},M=()=>{$.pop(),u.splice(U,0,l("CALL_END",")")),U+=1},q=(J,G={})=>{$.push(["{",J,{sameLine:!0,startsLine:G.startsLine??!0,ours:!0}]);let I=l("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(J,0,I)},O=(J)=>{J=J??U,$.pop(),u.splice(J,0,l("}","}")),U+=1};if((K()||Q())&&a2.has(f))return $.push(["CONTROL",U,{ours:!0}]),w(1);if(f==="INDENT"&&Z(H())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(K()||Q()&&_!==":")if(K())M();else O();if(H()?.[2]?.ours&&H()[0]==="CONTROL")$.pop();return $.push([f,U]),w(1)}if(i.has(f))return $.push([f,U]),w(1);if(k.has(f)){while(Z(H()))if(K())M();else if(Q())O();else $.pop();$.pop()}if(V1.has(f)&&A.spaced&&(X1.has(X)||X==="..."&&X1.has(u[U+2]?.[0])||p2.has(X)&&!Y.spaced&&!Y.newLine)&&!((f==="]"||f==="}")&&(X==="->"||X==="=>")))return D(U+1),w(2);if(V1.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 D(U+1),$.push(["INDENT",U+2]),w(3);if(f==="SPACE?")W=!0;if(f===":"){if(W)return W=!1,w(1);let J=k.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")J=U-2;let G=J<=0||U1.has(this.tokens[J-1]?.[0])||this.tokens[J-1]?.newLine;if(H()){let[I,B]=H(),N=$[$.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(G||this.tokens[J-1]?.[0]===","||this.tokens[J-1]?.[0]==="{"||this.tokens[J]?.[0]==="{"))return w(1)}return q(J,{startsLine:!!G}),w(2)}if(U1.has(f))for(let J=$.length-1;J>=0;J--){if(!Z($[J]))break;if($[J][0]==="{")$[J][2].sameLine=!1}let z=_==="OUTDENT"||F.newLine,E=f==="||"||f==="&&",P=!1;if(E){let J=U+1,G=u[J]?.[0];if(G==="("||G==="["||G==="{"){for(let I=1;++J<u.length&&I>0;)if(G=u[J][0],G==="("||G==="["||G==="{")I++;else if(G===")"||G==="]"||G==="}")I--}else if(G&&G!=="TERMINATOR"&&G!=="OUTDENT"&&G!==",")J++;P=u[J]?.[0]===","}if(d2.has(f)&&!P||W2.has(f)&&z)while(Z(H())){let[J,,{sameLine:G,startsLine:I}]=H();if(K()&&_!==",")M();else if(Q()&&!E&&G&&f!=="TERMINATOR"&&_!==":")O();else if(Q()&&f==="TERMINATOR"&&_!==","&&!(I&&this.looksObjectish(U+1)))O();else if(H()?.[2]?.ours&&H()[0]==="CONTROL"&&u[H()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&Q()&&(X!=="TERMINATOR"||!this.looksObjectish(U+2))){let J=X==="OUTDENT"?1:0;while(Q())O(U+J)}return w(1)})}addImplicitCallCommas(){let $=0,W=0,A=this.tokens;while(W<A.length){let U=A[W][0],u=W>0?A[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&r2.has(u))A.splice(W,0,l(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,A,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return A.call(this,f,$);if(i.has(f[0]))u++;if(k.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return A.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let A=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")A++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")A--;if(A<0||A===0&&u==="TERMINATOR"){$.splice(U,0,l("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,l("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let A=$-1;A>=0;A--){let U=this.tokens[A][0];if(k.has(U)){W++;continue}if(i.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(V1.has(U)&&this.tokens[A].spaced){let u=this.tokens[A+1]?.[0];return X1.has(u)||u==="..."&&X1.has(this.tokens[A+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let A=$-1;A>=0;A--){let U=this.tokens[A][0];if(k.has(U)){W++;continue}if(i.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&A>0&&this.tokens[A-1][0]==="PROPERTY")return this.looksObjectish($+1);if(U1.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(i.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(A)=>k.has(A[0]),(A,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let A=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&A.has(u))return!0;if(k.has(u))U.push(u);if(i.has(u)&&U.length)U.pop();if(!U.length&&(i.has(u)&&!this.tokens[$]?.generated||U1.has(u)))break;$--}return!1}makeIndentation($){let W=l("INDENT",2),A=l("OUTDENT",2);if($)W.generated=A.generated=!0,W.origin=A.origin=$;else W.explicit=A.explicit=!0;return[W,A]}}s1(p);var E3={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,-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,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,-304,-304,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,-304,161,-304,102,103,-304,199,201,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,168,-304,169,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,200,172,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,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,-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,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,-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,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,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,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,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,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,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,-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,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,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,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,-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,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,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,125,126,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,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,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,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,-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,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,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-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,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,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,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,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,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,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-308,-308,-86,-86,-308,161,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,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,-369,-369,-369,-369,-369,-369,-369,-369,-369,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,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,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,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,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,-337,-337,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,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,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,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,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,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,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,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,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,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,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,-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,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,-264,-264,-264,161,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,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,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,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,-385,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,109,108,110,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,112,-388,-388,-388,-388,-388,118,-388,120,-388,122,-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,113,-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,114,-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,115,-391,-391,118,-391,120,-391,122,-391,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,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-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,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,119,120,-399,122,-399,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,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,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,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,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,-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,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,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,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,-398,120,-398,122,-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,-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,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,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,-402,122,-402,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,-403,-403,-403,-403,-403,118,-403,120,-403,-403,-403,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,-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,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,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,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,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,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,-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,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,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,500,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-251,-251,-251,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,-306,-306,-306,161,-306,-306,520,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,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,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-314,-314,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,-317,-317,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,-318,-318,7,6,61,81,1,9,1,1,-319,-319,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,-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,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,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,535,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,536,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,537,2,55,1,538,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,539,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,540,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,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,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,544,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,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,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,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,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,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,1,66,585,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,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,1,94,590,1,165,591,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,592,164,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,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,-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,594,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,595,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,596,164,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,597,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,598,164,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,600,601,599,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,602,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,603,-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,604,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,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,-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,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,-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,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,-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,609,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,608,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,610,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,611,-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,612,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,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,613,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,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,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,614,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,615,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,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,161,616,2,66,10,161,617,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,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,618,127,619,124,125,126,96,97,620,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,621,127,622,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,623,127,624,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,625,127,626,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,627,164,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,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,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,629,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,-303,-303,-303,-303,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,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,630,631,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,-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,2,66,10,161,632,3,67,78,12,-252,-252,-252,3,66,6,4,161,634,633,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,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,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,-310,-310,-310,161,-310,-310,635,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,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,-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,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,-316,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,-316,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,636,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,637,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,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,638,6,55,1,10,113,1,2,401,104,400,639,399,402,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,3,54,5,1,640,105,106,3,6,60,30,642,643,641,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,644,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,645,-217,-217,-217,2,55,1,646,104,2,55,1,647,104,1,142,-338,3,54,5,1,648,105,106,3,6,60,30,650,651,649,10,6,49,1,10,1,29,8,18,60,5,-218,543,104,-218,-218,-218,-218,-218,409,652,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,653,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,544,3,55,1,126,654,104,655,2,55,1,656,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,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,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,657,164,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,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,1,67,659,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,1,138,660,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,661,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,662,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,663,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,664,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,665,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,666,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,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,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,667,-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,668,164,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,669,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,670,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,671,-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,672,164,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,673,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,674,254,2,57,1,675,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,676,164,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,677,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,678,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,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,679,164,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,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,680,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,681,-283,-283,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,682,-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,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,683,-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,684,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,685,164,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,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,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,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,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,687,1,86,688,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,689,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,690,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,691,86,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,600,601,692,1,86,693,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,694,-217,-217,-217,2,66,10,161,608,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,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,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,-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,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,-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,-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,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,695,164,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,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,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,700,127,701,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,702,127,703,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,-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,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,-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,2,66,10,161,704,1,67,705,4,6,61,78,12,706,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,707,164,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,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,161,708,3,54,5,1,709,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,710,-217,-217,-217,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,1,142,711,4,55,1,124,2,401,104,712,402,6,55,1,10,113,1,2,401,104,400,713,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,642,643,714,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,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,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,715,-340,-340,-340,-340,4,55,1,126,5,543,104,409,716,6,55,1,10,116,3,2,543,104,407,409,717,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,650,651,718,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,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,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,719,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,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,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,720,-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,721,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,722,723,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,724,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,725,-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,726,164,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,727,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,728,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,729,164,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,730,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,731,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,732,164,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,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,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,737,-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,738,-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,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,739,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,740,-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,741,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,742,127,124,125,126,96,97,743,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,744,127,745,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,746,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,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,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,749,164,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,67,751,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,3,67,78,12,-254,-254,-254,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,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,642,643,752,3,54,5,1,753,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,754,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,755,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,756,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,554,757,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,758,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,759,158,157,196,195,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,567,568,760,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,761,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,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,762,-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,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,763,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-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,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-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,-293,-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,-297,-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,764,164,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,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,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,600,601,766,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,-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,767,164,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,-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,-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,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,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,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,769,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,770,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,-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,1,142,771,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,3,6,60,1,642,643,772,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,3,6,60,1,650,651,773,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,774,164,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,775,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,776,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,777,164,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,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,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,-291,-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,-295,-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,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,779,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,780,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,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,3,54,5,1,781,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,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,-288,-288,-288,-288,-288,784,-288,-288,-288,-288,782,-288,783,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,785,164,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,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-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,-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,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,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,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,1,96,786,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,787,164,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,-290,-290,-290,-290,-290,784,-290,-290,-290,-290,788,-290,789,-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,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,-289,-289,-289,-289,-289,784,-289,-289,-289,-289,790,-289,-289,-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,1,96,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,792,164,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,793,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,-291,-291,-291,-291,-291,784,-291,-291,-291,-291,794,-291,-291,-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,-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,795,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=[],A=0,U,u,f,F;while(A<$.length){U=$[A++],u={},f=0,F=[];while(U--)f+=$[A++],F.push(f);for(f of F)u[f]=$[A++];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,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,A,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 251:case 302:case 314:case 328:case 357:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...u[f-2],u[f]];case 5:case 60:case 157:case 316: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 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365: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 252:return[...u[f-1],u[f]];case 61:case 193:case 197:case 331:case 360: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 330:case 359:return[...u[f-3],u[f]];case 113:case 177:case 198:case 332:case 361: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 385:case 387:case 388:case 403:case 405: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 301: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:case 239:return["if",["!",u[f]],[u[f-2]]];case 240:return["try",u[f]];case 241:return["try",u[f-1],u[f]];case 242:return["try",u[f-2],u[f]];case 243:return["try",u[f-3],u[f-2],u[f]];case 244:case 245:case 367:case 370:case 372:return[u[f-1],u[f]];case 246:return[null,u[f]];case 247:return["switch",u[f-3],u[f-1],null];case 248:return["switch",u[f-5],u[f-3],u[f-1]];case 249:return["switch",null,u[f-1],null];case 250:return["switch",null,u[f-3],u[f-1]];case 253:return["when",u[f-1],u[f]];case 254:return["when",u[f-2],u[f-1]];case 255:return["while",u[f]];case 256:return["while",u[f-2],u[f]];case 257:return["while",["!",u[f]]];case 258:return["while",["!",u[f-2]],u[f]];case 259: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 260:case 261: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 263:return["loop",u[f]];case 264:return["loop",[u[f]]];case 265:return["loop-n",u[f-1],u[f]];case 266:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 267:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 268:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 269:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 271:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 272:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 273:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 274:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 275:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 276:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 277:case 279:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 278:case 280:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 281:return["for-in",[],u[f-1],null,null,u[f]];case 282:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 283:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 284:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 286:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 288:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 289:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 290:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 291:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 292:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 293:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 294:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 295:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 296:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 297:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 298:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 299:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[u[f-2],u[f]];case 304:return["class",null,null];case 305:return["class",null,null,u[f]];case 306:return["class",null,u[f]];case 307:return["class",null,u[f-1],u[f]];case 308:return["class",u[f],null];case 309:return["class",u[f-1],null,u[f]];case 310:return["class",u[f-2],u[f]];case 311:return["class",u[f-3],u[f-1],u[f]];case 312:return["enum",u[f-1],u[f]];case 313:return["component",null,["block",...u[f-1]]];case 320:return["render",u[f]];case 321:case 324:return["import","{}",u[f]];case 322:case 323:return["import",u[f-2],u[f]];case 325:return["import",u[f-4],u[f]];case 326:return["import",[u[f-4],u[f-2]],u[f]];case 327:return["import",[u[f-7],u[f-4]],u[f]];case 338:return["*",u[f]];case 339:return["export","{}"];case 340:return["export",u[f-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",u[f]];case 345:return["export",["=",u[f-2],u[f]]];case 346:return["export",["=",u[f-3],u[f]]];case 347:return["export",["=",u[f-4],u[f-1]]];case 352:return["export-default",u[f]];case 353:return["export-default",u[f-1]];case 354:return["export-all",u[f]];case 355:return["export-from","{}",u[f]];case 356:return["export-from",u[f-4],u[f]];case 368:case 369:case 371:case 408:return["do-iife",u[f]];case 373:return["-",u[f]];case 374:return["+",u[f]];case 375:return["?",u[f-1]];case 376:return["defined",u[f-1]];case 377:return["await",u[f]];case 378:return["await",u[f-1]];case 379:return["--",u[f],!1];case 380:return["++",u[f],!1];case 381:return["--",u[f-1],!0];case 382:return["++",u[f-1],!0];case 383:return["+",u[f-2],u[f]];case 384:return["-",u[f-2],u[f]];case 386:return["**",u[f-2],u[f]];case 389:return["&",u[f-2],u[f]];case 390:return["^",u[f-2],u[f]];case 391:return["|",u[f-2],u[f]];case 392:case 393:case 394:case 395:case 396:case 397:return["control",u[f-1],u[f-2],u[f]];case 398:return["&&",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 404:return["?:",u[f-4],u[f-2],u[f]];case 406:return[u[f-3],u[f-4],u[f-1]];case 407:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let A,U,u,f,F,Y,_;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,A=W.loc?.c||0,_=W.token?` (token: ${W.token})`:"",Y=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${A}`,F=`Parse error at ${f}${_}${Y}: ${$}`,U=Error(F),U.hash=W,U},parse($){let W,A,U,u,f,F,Y,_,X,R,w,H,Z,K,Q,D,M,q,O,z,E,P,J,G,I,B;[z,B,R]=[[0],[null],[]],[Z,I,J,P,D]=[this.parseTable,"",0,0,0],[A,W]=[2,1],_=Object.create(this.lexer),q={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];q.ctx[N]=T}if(_.setInput($,q.ctx),[q.ctx.lexer,q.ctx.parser]=[_,this],_.loc==null)_.loc={};G=_.loc,R.push(G),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let N;if(N=_.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=K=O=U=Q=H=F=w=f=null,M={};while(!0){if(O=z[z.length-1],E==null)E=Y();if(U=Z[O]?.[E],U==null){if(u="",!D)f=(()=>{let N=[];for(let T in Z[O]){if(!Object.hasOwn(Z[O],T))continue;if(this.tokenNames[T]&&T>A)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(_.showPosition)return`Parse error on line ${J+1}:
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Z2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let W=this.tokens.length;if(W>=2){let A=this.tokens[W-2][0];if(A==="INDENT"||A==="TERMINATOR"||A==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let W=0;for(let A=this.tokens.length-1;A>=0;A--){let U=this.tokens[A];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 Z2.test(this.chunk)||A2.has(this.prevTag())}pair($){let W=this.ends[this.ends.length-1];if(!W||$!==W.tag){if(W?.tag==="OUTDENT"){let A=this.indents[this.indents.length-1];if(A)this.outdentTo(this.indent-A);return this.pair($)}g(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=Q3.exec(this.chunk);if(!$)return 0;let W=$[0],A=W.length>1&&W.endsWith("\\"),U=A?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=X3;break;case'"':f=w3;break;case"'''":f=J3;break;case'"""':f=K3;break}let{tokens:F,index:Y}=this.matchWithInterpolations(f,W,U),_=U.length===3,X=null;if(_)X=this.processHeredocIndent(Y,U,F);return this.mergeInterpolationTokens(F,{quote:U,indent:X,endOffset:Y,raw:A}),Y}processHeredocIndent($,W,A){let U=$-W.length,u=U-1;while(u>=0&&this.chunk[u]!==`
|
|
10
|
+
`)u--;u++;let f=this.chunk.slice(u,U),F=/^\s*$/.test(f)?f.length:null,Y="";for(let R of A)if(R[0]==="NEOSTRING")Y+=R[1];let _=null,X;Y2.lastIndex=0;while(X=Y2.exec(Y))if(_===null||X[1].length>0&&X[1].length<_.length)_=X[1];if(F===null)return _;if(_===null)return" ".repeat(F);if(F<=_.length)return" ".repeat(F);return _}matchWithInterpolations($,W,A,U){if(!A)A=W;if(!U)U=/^[#$]\{/;let u=[],f=W.length;if(this.chunk.slice(0,f)!==W)return null;let F=this.chunk.slice(f);while(!0){let[Y]=$.exec(F);u.push(["NEOSTRING",Y,{offset:f}]),F=F.slice(Y.length),f+=Y.length;let _=U.exec(F);if(!_)break;let R=_[0].length-1,K=F.slice(R),H=new p().tokenize(K,{row:this.row,col:this.col+f+R,untilBalanced:!0,rewrite:!1}),Z=H.index+R;if(F[Z-1]==="}"){let Q=H.tokens[0],D=H.tokens[H.tokens.length-1];Q[0]="INTERPOLATION_START",Q[1]="(",D[0]="INTERPOLATION_END",D[1]=")"}if(H.tokens[1]?.[0]==="TERMINATOR")H.tokens.splice(1,1);let J=H.tokens.length;if(J>2&&H.tokens[J-3]?.[0]==="INDENT"&&H.tokens[J-2]?.[0]==="OUTDENT")H.tokens.splice(J-3,2);u.push(["TOKENS",H.tokens]),F=F.slice(Z),f+=Z}if(F.slice(0,A.length)!==A)g(`missing ${A}`,{row:this.row,col:this.col});return{tokens:u,index:f+A.length}}mergeInterpolationTokens($,{quote:W,indent:A,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[F,Y]=$[f];if(F==="TOKENS")for(let _ of Y)this.tokens.push(_);else if(F==="NEOSTRING"){let _=Y;if(A){let X=new RegExp("\\n"+A,"g");_=_.replace(X,`
|
|
11
|
+
`)}if(f===0&&W?.length===3)_=_.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(u)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:Y.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=W3.exec(this.chunk);if(!$)return 0;let W=$[0],A=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:A});if(/^0\d+/.test(W))g(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:A});let u=P3(W),f=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if(f==="INFINITY")F.original=W;return this.emit(f,W,{len:A,data:F}),A}regexToken(){let $=this.matchWithInterpolations(H3,"///");if($){let{tokens:X,index:R}=$,[K]=_2.exec(this.chunk.slice(R)),H=R+K.length;if(X.length===1||!X.some((Z)=>Z[0]==="TOKENS")){let Z=(X[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${K}`,{len:H,data:{delimiter:"///",heregex:{flags:K}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(X,{quote:"///",endOffset:H-K.length}),K)this.emit(",",",",{len:0}),this.emit("STRING",`"${K}"`,{len:K.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return H}let W=D3.exec(this.chunk);if(!W)return 0;let[A,U,u]=W,f=this.prev();if(f){if(f.spaced&&w1.has(f[0])&&(!u||/^\/=?\s/.test(A)))return 0;if(t2.has(f[0])&&!(f.spaced&&w1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let F=A.length,[Y]=_2.exec(this.chunk.slice(F)),_=F+Y.length;if(!M3.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:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=q3.exec(this.chunk)||z3.exec(this.chunk);if(!$)return 0;let W=$[1],A=$[0].length;return this.emit("JS",W,{len:A,data:{here:$[0].startsWith("```")}}),A}literalToken(){let $=A3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),A=W,U=this.prev();if(Z3.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(J1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(J1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||F2.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,A="TERMINATOR";else if(W==="|>")A="PIPE";else if(W==="::=")A="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==="::")A="TYPE_ANNOTATION";else if(W==="~=")A="COMPUTED_ASSIGN";else if(W===":=")A="REACTIVE_ASSIGN";else if(W==="<=>")A="BIND";else if(W==="~>")A="EFFECT";else if(W==="=!")A="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 _=this.emit("PROPERTY","assign");return _.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],_=F[2],X=Y.split("."),R=()=>{this.emit("IDENTIFIER",X[0]);for(let H=1;H<X.length;H++)this.emit(".","."),this.emit("PROPERTY",X[H])};R(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),R(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let K=this.prev();return K.mergeClose=!0,1+Y.length+_.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")A="EXPORT_ALL";else if(e2.has(W))A="MATH";else if(u3.has(W))A="COMPARE";else if(F2.has(W))A="COMPOUND_ASSIGN";else if($3.has(W))A="UNARY_MATH";else if(f3.has(W))A="SHIFT";else if(W==="?"&&U?.spaced)A="SPACE?";else if(W==="!?"&&U&&!U.spaced)A="DEFINED";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))A="?.";else if(U){if(W==="("&&!U.spaced&&w1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";A="CALL_START"}if(W==="["&&!U.spaced&&R2.has(U[0])){if(A="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:o2[W],origin:[A,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(A,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 A=this.tokens[$];if(A[0]===")")W.push(A);else if(A[0]==="("||A[0]==="CALL_START")if(W.length)W.pop();else if(A[0]==="(")return A[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,(A)=>A[0]===")"||A[0]==="CALL_END",(A)=>A[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(A)=>A[0]==="]"||A[0]==="INDEX_END",(A,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",A[0]="]";else A[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,A=null,U=(f,F)=>{return f[1]!==";"&&s2.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)||W2.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,A)};this.scanTokens((f,F,Y)=>{let[_]=f;if(_==="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(_==="CATCH")for(let X=1;X<=2;X++){let R=this.tokens[F+X]?.[0];if(R==="OUTDENT"||R==="TERMINATOR"||R==="FINALLY")return Y.splice(F+X,0,...this.makeIndentation()),2+X}if((_==="->"||_==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[W,A]=this.makeIndentation(),Y.splice(F+1,0,W,A),1;if(U2.has(_)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[F+1]?.[0]==="IF")){if($=_,[W,A]=this.makeIndentation(),_==="THEN")W.fromThen=!0;if(Y.splice(F+1,0,W),this.detectEnd(F+2,U,u),_==="THEN")Y.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!U2.has(this.tokens[u-1]?.[0])},A=(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;return $=U,this.detectEnd(u+1,W,A),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((A,U,u)=>{let[f]=A,F=u[U-1]||[],Y=u[U+1]||[],[_]=F,[X]=Y,R=U,K=(w)=>U-R+w,H=()=>$[$.length-1],Z=(w)=>w?.[2]?.ours,J=()=>Z(H())&&H()?.[0]==="(",Q=()=>Z(H())&&H()?.[0]==="{",D=(w)=>{$.push(["(",w,{ours:!0}]),u.splice(w,0,l("CALL_START","("))},M=()=>{$.pop(),u.splice(U,0,l("CALL_END",")")),U+=1},q=(w,G={})=>{$.push(["{",w,{sameLine:!0,startsLine:G.startsLine??!0,ours:!0}]);let I=l("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(w,0,I)},O=(w)=>{w=w??U,$.pop(),u.splice(w,0,l("}","}")),U+=1};if((J()||Q())&&a2.has(f))return $.push(["CONTROL",U,{ours:!0}]),K(1);if(f==="INDENT"&&Z(H())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(J()||Q()&&_!==":")if(J())M();else O();if(H()?.[2]?.ours&&H()[0]==="CONTROL")$.pop();return $.push([f,U]),K(1)}if(i.has(f))return $.push([f,U]),K(1);if(k.has(f)){while(Z(H()))if(J())M();else if(Q())O();else $.pop();$.pop()}if(h1.has(f)&&A.spaced&&(X1.has(X)||X==="..."&&X1.has(u[U+2]?.[0])||p2.has(X)&&!Y.spaced&&!Y.newLine)&&!((f==="]"||f==="}")&&(X==="->"||X==="=>")))return D(U+1),K(2);if(h1.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 D(U+1),$.push(["INDENT",U+2]),K(3);if(f==="SPACE?")W=!0;if(f===":"){if(W)return W=!1,K(1);let w=k.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")w=U-2;let G=w<=0||U1.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))&&(G||this.tokens[w-1]?.[0]===","||this.tokens[w-1]?.[0]==="{"||this.tokens[w]?.[0]==="{"))return K(1)}return q(w,{startsLine:!!G}),K(2)}if(U1.has(f))for(let w=$.length-1;w>=0;w--){if(!Z($[w]))break;if($[w][0]==="{")$[w][2].sameLine=!1}let z=_==="OUTDENT"||F.newLine,E=f==="||"||f==="&&",P=!1;if(E){let w=U+1,G=u[w]?.[0];if(G==="("||G==="["||G==="{"){for(let I=1;++w<u.length&&I>0;)if(G=u[w][0],G==="("||G==="["||G==="{")I++;else if(G===")"||G==="]"||G==="}")I--}else if(G&&G!=="TERMINATOR"&&G!=="OUTDENT"&&G!==",")w++;P=u[w]?.[0]===","}if(d2.has(f)&&!P||W2.has(f)&&z)while(Z(H())){let[w,,{sameLine:G,startsLine:I}]=H();if(J()&&_!==",")M();else if(Q()&&!E&&G&&f!=="TERMINATOR"&&_!==":")O();else if(Q()&&f==="TERMINATOR"&&_!==","&&!(I&&this.looksObjectish(U+1)))O();else if(H()?.[2]?.ours&&H()[0]==="CONTROL"&&u[H()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&Q()&&(X!=="TERMINATOR"||!this.looksObjectish(U+2))){let w=X==="OUTDENT"?1:0;while(Q())O(U+w)}return K(1)})}addImplicitCallCommas(){let $=0,W=0,A=this.tokens;while(W<A.length){let U=A[W][0],u=W>0?A[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&r2.has(u))A.splice(W,0,l(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,A,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return A.call(this,f,$);if(i.has(f[0]))u++;if(k.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return A.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let A=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")A++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")A--;if(A<0||A===0&&u==="TERMINATOR"){$.splice(U,0,l("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,l("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let A=$-1;A>=0;A--){let U=this.tokens[A][0];if(k.has(U)){W++;continue}if(i.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(h1.has(U)&&this.tokens[A].spaced){let u=this.tokens[A+1]?.[0];return X1.has(u)||u==="..."&&X1.has(this.tokens[A+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let A=$-1;A>=0;A--){let U=this.tokens[A][0];if(k.has(U)){W++;continue}if(i.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&A>0&&this.tokens[A-1][0]==="PROPERTY")return this.looksObjectish($+1);if(U1.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(i.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(A)=>k.has(A[0]),(A,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let A=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&A.has(u))return!0;if(k.has(u))U.push(u);if(i.has(u)&&U.length)U.pop();if(!U.length&&(i.has(u)&&!this.tokens[$]?.generated||U1.has(u)))break;$--}return!1}makeIndentation($){let W=l("INDENT",2),A=l("OUTDENT",2);if($)W.generated=A.generated=!0,W.origin=A.origin=$;else W.explicit=A.explicit=!0;return[W,A]}}s1(p);var E3={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,-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,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,-304,-304,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,-304,161,-304,102,103,-304,199,201,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,168,-304,169,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,200,172,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,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,-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,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,-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,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,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,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,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,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,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,-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,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,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,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,-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,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,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,125,126,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,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,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,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,-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,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,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-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,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,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,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,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,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,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-308,-308,-86,-86,-308,161,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,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,-369,-369,-369,-369,-369,-369,-369,-369,-369,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,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,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,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,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,-337,-337,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,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,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,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,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,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,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,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,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,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,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,-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,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,-264,-264,-264,161,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,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,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,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,-385,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,109,108,110,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,112,-388,-388,-388,-388,-388,118,-388,120,-388,122,-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,113,-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,114,-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,115,-391,-391,118,-391,120,-391,122,-391,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,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-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,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,119,120,-399,122,-399,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,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,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,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,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,-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,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,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,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,-398,120,-398,122,-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,-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,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,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,-402,122,-402,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,-403,-403,-403,-403,-403,118,-403,120,-403,-403,-403,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,-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,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,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,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,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,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,-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,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,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,500,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-251,-251,-251,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,-306,-306,-306,161,-306,-306,520,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,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,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-314,-314,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,-317,-317,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,-318,-318,7,6,61,81,1,9,1,1,-319,-319,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,-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,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,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,535,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,536,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,537,2,55,1,538,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,539,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,540,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,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,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,544,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,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,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,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,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,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,1,66,585,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,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,1,94,590,1,165,591,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,592,164,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,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,-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,594,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,595,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,596,164,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,597,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,598,164,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,600,601,599,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,602,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,603,-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,604,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,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,-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,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,-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,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,-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,609,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,608,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,610,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,611,-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,612,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,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,613,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,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,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,614,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,615,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,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,161,616,2,66,10,161,617,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,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,618,127,619,124,125,126,96,97,620,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,621,127,622,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,623,127,624,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,625,127,626,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,627,164,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,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,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,629,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,-303,-303,-303,-303,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,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,630,631,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,-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,2,66,10,161,632,3,67,78,12,-252,-252,-252,3,66,6,4,161,634,633,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,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,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,-310,-310,-310,161,-310,-310,635,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,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,-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,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,-316,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,-316,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,636,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,637,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,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,638,6,55,1,10,113,1,2,401,104,400,639,399,402,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,3,54,5,1,640,105,106,3,6,60,30,642,643,641,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,644,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,645,-217,-217,-217,2,55,1,646,104,2,55,1,647,104,1,142,-338,3,54,5,1,648,105,106,3,6,60,30,650,651,649,10,6,49,1,10,1,29,8,18,60,5,-218,543,104,-218,-218,-218,-218,-218,409,652,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,653,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,544,3,55,1,126,654,104,655,2,55,1,656,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,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,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,657,164,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,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,1,67,659,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,1,138,660,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,661,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,662,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,663,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,664,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,665,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,666,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,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,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,667,-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,668,164,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,669,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,670,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,671,-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,672,164,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,673,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,674,254,2,57,1,675,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,676,164,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,677,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,678,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,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,679,164,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,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,680,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,681,-283,-283,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,682,-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,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,683,-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,684,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,685,164,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,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,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,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,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,687,1,86,688,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,689,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,690,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,691,86,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,600,601,692,1,86,693,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,694,-217,-217,-217,2,66,10,161,608,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,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,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,-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,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,-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,-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,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,695,164,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,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,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,700,127,701,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,702,127,703,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,-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,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,-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,2,66,10,161,704,1,67,705,4,6,61,78,12,706,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,707,164,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,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,161,708,3,54,5,1,709,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,710,-217,-217,-217,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,1,142,711,4,55,1,124,2,401,104,712,402,6,55,1,10,113,1,2,401,104,400,713,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,642,643,714,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,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,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,715,-340,-340,-340,-340,4,55,1,126,5,543,104,409,716,6,55,1,10,116,3,2,543,104,407,409,717,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,650,651,718,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,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,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,719,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,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,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,720,-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,721,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,722,723,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,724,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,725,-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,726,164,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,727,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,728,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,729,164,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,730,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,731,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,732,164,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,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,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,737,-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,738,-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,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,739,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,740,-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,741,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,742,127,124,125,126,96,97,743,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,744,127,745,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,746,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,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,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,749,164,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,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,67,751,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,3,67,78,12,-254,-254,-254,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,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,642,643,752,3,54,5,1,753,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,754,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,755,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,756,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,554,757,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,758,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,759,158,157,196,195,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,567,568,760,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,761,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,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,762,-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,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,763,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-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,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-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,-293,-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,-297,-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,764,164,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,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,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,600,601,766,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,-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,767,164,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,-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,-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,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,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,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,769,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,770,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,-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,1,142,771,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,3,6,60,1,642,643,772,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,3,6,60,1,650,651,773,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,774,164,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,775,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,776,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,777,164,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,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,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,-291,-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,-295,-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,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,779,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,780,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,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,3,54,5,1,781,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,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,-288,-288,-288,-288,-288,784,-288,-288,-288,-288,782,-288,783,-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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,785,164,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,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-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,-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,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,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,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,1,96,786,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,787,164,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,-290,-290,-290,-290,-290,784,-290,-290,-290,-290,788,-290,789,-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,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,-289,-289,-289,-289,-289,784,-289,-289,-289,-289,790,-289,-289,-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,1,96,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,792,164,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,793,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,-291,-291,-291,-291,-291,784,-291,-291,-291,-291,794,-291,-291,-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,-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,795,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=[],A=0,U,u,f,F;while(A<$.length){U=$[A++],u={},f=0,F=[];while(U--)f+=$[A++],F.push(f);for(f of F)u[f]=$[A++];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,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,A,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 251:case 302:case 314:case 328:case 357:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...u[f-2],u[f]];case 5:case 60:case 157:case 316: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 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365: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 252:return[...u[f-1],u[f]];case 61:case 193:case 197:case 331:case 360: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 330:case 359:return[...u[f-3],u[f]];case 113:case 177:case 198:case 332:case 361: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 385:case 387:case 388:case 403:case 405: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 301: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:case 239:return["if",["!",u[f]],[u[f-2]]];case 240:return["try",u[f]];case 241:return["try",u[f-1],u[f]];case 242:return["try",u[f-2],u[f]];case 243:return["try",u[f-3],u[f-2],u[f]];case 244:case 245:case 367:case 370:case 372:return[u[f-1],u[f]];case 246:return[null,u[f]];case 247:return["switch",u[f-3],u[f-1],null];case 248:return["switch",u[f-5],u[f-3],u[f-1]];case 249:return["switch",null,u[f-1],null];case 250:return["switch",null,u[f-3],u[f-1]];case 253:return["when",u[f-1],u[f]];case 254:return["when",u[f-2],u[f-1]];case 255:return["while",u[f]];case 256:return["while",u[f-2],u[f]];case 257:return["while",["!",u[f]]];case 258:return["while",["!",u[f-2]],u[f]];case 259: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 260:case 261: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 263:return["loop",u[f]];case 264:return["loop",[u[f]]];case 265:return["loop-n",u[f-1],u[f]];case 266:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 267:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 268:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 269:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 271:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 272:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 273:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 274:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 275:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 276:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 277:case 279:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 278:case 280:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 281:return["for-in",[],u[f-1],null,null,u[f]];case 282:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 283:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 284:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 286:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 288:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 289:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 290:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 291:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 292:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 293:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 294:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 295:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 296:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 297:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 298:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 299:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[u[f-2],u[f]];case 304:return["class",null,null];case 305:return["class",null,null,u[f]];case 306:return["class",null,u[f]];case 307:return["class",null,u[f-1],u[f]];case 308:return["class",u[f],null];case 309:return["class",u[f-1],null,u[f]];case 310:return["class",u[f-2],u[f]];case 311:return["class",u[f-3],u[f-1],u[f]];case 312:return["enum",u[f-1],u[f]];case 313:return["component",null,["block",...u[f-1]]];case 320:return["render",u[f]];case 321:case 324:return["import","{}",u[f]];case 322:case 323:return["import",u[f-2],u[f]];case 325:return["import",u[f-4],u[f]];case 326:return["import",[u[f-4],u[f-2]],u[f]];case 327:return["import",[u[f-7],u[f-4]],u[f]];case 338:return["*",u[f]];case 339:return["export","{}"];case 340:return["export",u[f-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",u[f]];case 345:return["export",["=",u[f-2],u[f]]];case 346:return["export",["=",u[f-3],u[f]]];case 347:return["export",["=",u[f-4],u[f-1]]];case 352:return["export-default",u[f]];case 353:return["export-default",u[f-1]];case 354:return["export-all",u[f]];case 355:return["export-from","{}",u[f]];case 356:return["export-from",u[f-4],u[f]];case 368:case 369:case 371:case 408:return["do-iife",u[f]];case 373:return["-",u[f]];case 374:return["+",u[f]];case 375:return["?",u[f-1]];case 376:return["defined",u[f-1]];case 377:return["await",u[f]];case 378:return["await",u[f-1]];case 379:return["--",u[f],!1];case 380:return["++",u[f],!1];case 381:return["--",u[f-1],!0];case 382:return["++",u[f-1],!0];case 383:return["+",u[f-2],u[f]];case 384:return["-",u[f-2],u[f]];case 386:return["**",u[f-2],u[f]];case 389:return["&",u[f-2],u[f]];case 390:return["^",u[f-2],u[f]];case 391:return["|",u[f-2],u[f]];case 392:case 393:case 394:case 395:case 396:case 397:return["control",u[f-1],u[f-2],u[f]];case 398:return["&&",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 404:return["?:",u[f-4],u[f-2],u[f]];case 406:return[u[f-3],u[f-4],u[f-1]];case 407:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let A,U,u,f,F,Y,_;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,A=W.loc?.c||0,_=W.token?` (token: ${W.token})`:"",Y=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${A}`,F=`Parse error at ${f}${_}${Y}: ${$}`,U=Error(F),U.hash=W,U},parse($){let W,A,U,u,f,F,Y,_,X,R,K,H,Z,J,Q,D,M,q,O,z,E,P,w,G,I,B;[z,B,R]=[[0],[null],[]],[Z,I,w,P,D]=[this.parseTable,"",0,0,0],[A,W]=[2,1],_=Object.create(this.lexer),q={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];q.ctx[N]=T}if(_.setInput($,q.ctx),[q.ctx.lexer,q.ctx.parser]=[_,this],_.loc==null)_.loc={};G=_.loc,R.push(G),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let N;if(N=_.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=J=O=U=Q=H=F=K=f=null,M={};while(!0){if(O=z[z.length-1],E==null)E=Y();if(U=Z[O]?.[E],U==null){if(u="",!D)f=(()=>{let N=[];for(let T in Z[O]){if(!Object.hasOwn(Z[O],T))continue;if(this.tokenNames[T]&&T>A)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(_.showPosition)return`Parse error on line ${w+1}:
|
|
12
12
|
${_.showPosition()}
|
|
13
|
-
Expecting ${f.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${J+1}: Unexpected ${E===W?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:_.match,token:this.tokenNames[E]||E,line:_.line,loc:G,expected:f})})(),Error(u)}if(U>0)if(z.push(E,U),B.push(_.text),R.push(_.loc),E=null,!K){if([P,I,J,G]=[_.len,_.text,_.line,_.loc],D>0)D--}else[E,K]=[K,null];else if(U<0){if(F=this.ruleTable[-U*2+1],M.$=B[B.length-F],X=R[R.length-(F||1)],M._$={r:X.r,c:X.c},Q=this.ruleActions.call(M,-U,B,R,q.ctx),Q!=null)M.$=Q;if(Array.isArray(M.$))M.$.loc=M._$;if(F)z.length-=F*2,B.length-=F,R.length-=F;z.push(this.ruleTable[-U*2]),B.push(M.$),R.push(M._$),w=Z[z[z.length-2]][z[z.length-1]],z.push(w)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},I3=($={})=>{let W=Object.create(E3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},s=I3();var p3=s.parse.bind(s);var B3=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"]),W1=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"]),Q2=new Set([...B3,...W1]);var X2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),N3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function T3($){for(let W of $){if(!Array.isArray(W))continue;let A=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(A==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function w1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function j1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function J2($,W,A){let U=A($);if(!/_frag\d+$/.test(U))return null;let u=[],f=new RegExp(`^${U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let F of W){let Y=A(F).match(f);if(Y)u.push(Y[1])}return u.length>0?u:null}function K2($,W){W.prototype.rewriteRender=function(){let U=(Z,K,Q)=>{let D=[Z,K];if(D.pre=0,D.data=null,D.loc=Q?.loc??{r:0,c:0,n:0},D.spaced=!1,D.newLine=!1,D.generated=!0,Q)D.origin=Q;return D},u=!1,f=0,F=0,Y=[],_=(Z)=>{let K=Z.split("#")[0];return Q2.has(K)},X=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},R=(Z)=>{return _(Z)||X(Z)},w=(Z,K,Q,D)=>{let M=1,q=K;while(q>=0&&M>0){let O=Z[q][0];if(O===Q)M++;else if(O===D)M--;if(M>0)q--}return q},H=(Z,K)=>{let Q=K;while(Q>0){let D=Z[Q-1][0];if(D==="TERMINATOR"||D==="RENDER")break;if(D==="INDENT"||D==="OUTDENT"){let M=Z[Q][0];if(M==="CALL_END"||M===")"){Q=w(Z,Q-1,M,M==="CALL_END"?"CALL_START":"(");continue}break}if(D==="CALL_END"||D===")"){Q=w(Z,Q-2,D,D==="CALL_END"?"CALL_START":"(");continue}if(D==="INTERPOLATION_END"){Q=w(Z,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(D==="STRING_END"){Q=w(Z,Q-2,"STRING_END","STRING_START");continue}Q--}return Z[Q]&&Z[Q][0]==="IDENTIFIER"&&R(Z[Q][1])};this.scanTokens(function(Z,K,Q){let D=Z[0],M=K<Q.length-1?Q[K+1]:null;if(D==="RENDER")return u=!0,f=F+1,1;if(D==="INDENT")return F++,1;if(D==="OUTDENT"){F--;let q=0;while(Y.length>0&&Y[Y.length-1]>F){let O=U("CALL_END",")",Z);Q.splice(K+1+q,0,O),Y.pop(),q++}if(u&&F<f)u=!1;return 1+q}if(!u)return 1;if(D==="IDENTIFIER"&&!Z.spaced){let q=[Z[1]],O=K+1;while(O+1<Q.length){let z=Q[O],E=Q[O+1];if(z[0]==="-"&&!z.spaced&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")){if(q.push(E[1]),O+=2,E[0]==="PROPERTY")break}else break}if(q.length>1&&O>K+1&&Q[O-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${q.join("-")}"`,Q.splice(K+1,O-K-1),1}if(D==="."){let q=K>0?Q[K-1]:null,O=q?q[0]:null;if(O==="INDENT"||O==="TERMINATOR"){if(M&&M[0]==="PROPERTY"){let z=U("IDENTIFIER","div",Z);return Q.splice(K,0,z),2}if(!M||M[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(D==="IDENTIFIER"||D==="PROPERTY"){let q=Q[K+1],O=Q[K+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 Q.splice(K+1,2),1}}if(D==="BIND"){let q=K>0?Q[K-1]:null,O=Q[K+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(D==="@"){let q=K+1;if(q<Q.length&&Q[q][0]==="PROPERTY"){q++;while(q+1<Q.length&&Q[q][0]==="."&&Q[q+1][0]==="PROPERTY")q+=2;if(q>K+2&&q<Q.length&&Q[q][0]===":"){let O=U("[","[",Z);Q.splice(K,0,O);let z=U("]","]",Q[q+1]);return Q.splice(q+1,0,z),2}}}if(D==="."&&M&&M[0]==="("){let q=K>0?Q[K-1]:null,O=q?q[0]:null,z=O==="INDENT"||O==="TERMINATOR",E=U("PROPERTY","__clsx",Z);M[0]="CALL_START";let P=1;for(let J=K+2;J<Q.length&&P>0;J++)if(Q[J][0]==="("||Q[J][0]==="CALL_START")P++;else if(Q[J][0]===")"){if(P--,P===0)Q[J][0]="CALL_END"}else if(Q[J][0]==="CALL_END")P--;if(z){let J=U("IDENTIFIER","div",Z);return Q.splice(K,0,J),Q.splice(K+2,0,E),3}else if(O===":")return Q[K]=U("IDENTIFIER","__clsx",Z),1;else return Q.splice(K+1,0,E),2}if(M&&M[0]==="INDENT"){if(D==="->"||D==="=>"||D==="CALL_START"||D==="(")return 1;let q=!1,O=K>0?Q[K-1][0]:null,z=O==="IF"||O==="UNLESS"||O==="WHILE"||O==="UNTIL"||O==="WHEN",E=!1;if(D==="CALL_END"){let P=1;for(let J=K-1;J>=0&&P>0;J--)if(Q[J][0]==="CALL_END")P++;else if(Q[J][0]==="CALL_START"){if(P--,P===0&&J>0&&Q[J-1][0]==="PROPERTY"&&Q[J-1][1]==="__clsx")E=!0}}if(E)q=!0;else if(D==="IDENTIFIER"&&R(Z[1])&&!z)q=!0;else if(D==="PROPERTY"||D==="STRING"||D==="STRING_END"||D==="CALL_END"||D===")")q=H(Q,K);else if(D==="IDENTIFIER"&&K>1&&Q[K-1][0]==="..."){if(H(Q,K)){let P=U(",",",",Z),J=U("->","->",Z);return J.newLine=!0,Q.splice(K+1,0,P,J),3}}if(q){let P=D==="PROPERTY"&&K>0&&(Q[K-1][0]==="."||Q[K-1][0]==="#");if(E){let J=U("CALL_START","(",Z),G=U("->","->",Z);return G.newLine=!0,Q.splice(K+1,0,J,G),Y.push(F+1),3}else if(D==="IDENTIFIER"&&R(Z[1])||P){let J=U("CALL_START","(",Z),G=U("->","->",Z);return G.newLine=!0,Q.splice(K+1,0,J,G),Y.push(F+1),3}else{let J=U(",",",",Z),G=U("->","->",Z);return G.newLine=!0,Q.splice(K+1,0,J,G),3}}}if(D==="IDENTIFIER"&&X(Z[1])&&M&&(M[0]==="OUTDENT"||M[0]==="TERMINATOR"))return Q.splice(K+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let A=$.prototype;A.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},A.isHtmlTag=function(U){let u=U.split("#")[0];return Q2.has(u.toLowerCase())},A.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},A.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,_]=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]===".")return[".",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))},A.generateComponent=function(U,u,f,F){let[,Y]=u;this.usesTemplates=!0,this.usesReactivity=!0;let _=this.is(Y,"block")?Y.slice(1):[],X=[],R=[],w=[],H=[],Z=[],K=[],Q=null,D=new Set,M=new Set;for(let P of _){if(!Array.isArray(P))continue;let[J]=P;if(J==="state"){let G=w1(P[1]);if(G)X.push({name:G,value:P[2],isPublic:j1(P[1])}),D.add(G),M.add(G)}else if(J==="computed"){let G=w1(P[1]);if(G)R.push({name:G,expr:P[2]}),D.add(G),M.add(G)}else if(J==="readonly"){let G=w1(P[1]);if(G)w.push({name:G,value:P[2],isPublic:j1(P[1])}),D.add(G)}else if(J==="="){let G=w1(P[1]);if(G)if(X2.has(G))Z.push({name:G,value:P[2]});else{let I=P[2];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>"))H.push({name:G,func:I}),D.add(G);else X.push({name:G,value:I,isPublic:j1(P[1])}),D.add(G),M.add(G)}}else if(J==="effect")K.push(P);else if(J==="render")Q=P;else if(J==="object")for(let G=1;G<P.length;G++){let I=P[G];if(!Array.isArray(I))continue;let[B,N]=I;if(typeof B==="string"&&X2.has(B))Z.push({name:B,value:N});else if(typeof B==="string")H.push({name:B,func:N}),D.add(B)}}let q=this.componentMembers,O=this.reactiveMembers;this.componentMembers=D,this.reactiveMembers=M;let z=[],E="";z.push("class extends __Component {"),z.push(" _init(props) {");for(let{name:P,value:J,isPublic:G}of w){let I=this.generateInComponent(J,"value");z.push(G?` this.${P} = props.${P} ?? ${I};`:` this.${P} = ${I};`)}for(let{name:P,value:J,isPublic:G}of X){let I=this.generateInComponent(J,"value");z.push(G?` this.${P} = __state(props.${P} ?? ${I});`:` this.${P} = __state(${I});`)}for(let{name:P,expr:J}of R)if(this.is(J,"block")&&J.length>2){let G=this.transformComponentMembers(J),I=this.generateFunctionBody(G);z.push(` this.${P} = __computed(() => ${I});`)}else{let G=this.generateInComponent(J,"value");z.push(` this.${P} = __computed(() => ${G});`)}for(let P of K){let J=P[2],G=this.containsAwait(J)?"async ":"";if(this.is(J,"block")&&J.length>2){let I=this.transformComponentMembers(J),B=this.generateFunctionBody(I,[],!0);z.push(` __effect(${G}() => ${B});`)}else{let I=this.generateInComponent(J,"value");z.push(` __effect(${G}() => { ${I}; });`)}}z.push(" }");for(let{name:P,func:J}of H)if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let[,G,I]=J,B=Array.isArray(G)?G.map((h)=>this.formatParam(h)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(I):I,T=this.containsAwait(I),L=this.generateFunctionBody(N,G||[]);z.push(` ${T?"async ":""}${P}(${B}) ${L}`)}for(let{name:P,value:J}of Z)if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let[,,G]=J,I=this.reactiveMembers?this.transformComponentMembers(G):G,B=this.containsAwait(G),N=this.generateFunctionBody(I,[]);z.push(` ${B?"async ":""}${P}() ${N}`)}if(Q){let P=Q[1],J=this.buildRender(P);if(J.blockFactories.length>0)E=J.blockFactories.join(`
|
|
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:_.match,token:this.tokenNames[E]||E,line:_.line,loc:G,expected:f})})(),Error(u)}if(U>0)if(z.push(E,U),B.push(_.text),R.push(_.loc),E=null,!J){if([P,I,w,G]=[_.len,_.text,_.line,_.loc],D>0)D--}else[E,J]=[J,null];else if(U<0){if(F=this.ruleTable[-U*2+1],M.$=B[B.length-F],X=R[R.length-(F||1)],M._$={r:X.r,c:X.c},Q=this.ruleActions.call(M,-U,B,R,q.ctx),Q!=null)M.$=Q;if(Array.isArray(M.$))M.$.loc=M._$;if(F)z.length-=F*2,B.length-=F,R.length-=F;z.push(this.ruleTable[-U*2]),B.push(M.$),R.push(M._$),K=Z[z[z.length-2]][z[z.length-1]],z.push(K)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},I3=($={})=>{let W=Object.create(E3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},s=I3();var p3=s.parse.bind(s);var B3=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"]),W1=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"]),Q2=new Set([...B3,...W1]);var X2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),N3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function T3($){for(let W of $){if(!Array.isArray(W))continue;let A=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(A==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function K1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function j1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function w2($,W,A){let U=A($);if(!/_frag\d+$/.test(U))return null;let u=[],f=new RegExp(`^${U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let F of W){let Y=A(F).match(f);if(Y)u.push(Y[1])}return u.length>0?u:null}function J2($,W){W.prototype.rewriteRender=function(){let U=(Z,J,Q)=>{let D=[Z,J];if(D.pre=0,D.data=null,D.loc=Q?.loc??{r:0,c:0,n:0},D.spaced=!1,D.newLine=!1,D.generated=!0,Q)D.origin=Q;return D},u=!1,f=0,F=0,Y=[],_=(Z)=>{let J=Z.split("#")[0];return Q2.has(J)},X=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},R=(Z)=>{return _(Z)||X(Z)},K=(Z,J,Q,D)=>{let M=1,q=J;while(q>=0&&M>0){let O=Z[q][0];if(O===Q)M++;else if(O===D)M--;if(M>0)q--}return q},H=(Z,J)=>{let Q=J;while(Q>0){let D=Z[Q-1][0];if(D==="TERMINATOR"||D==="RENDER")break;if(D==="INDENT"||D==="OUTDENT"){let M=Z[Q][0];if(M==="CALL_END"||M===")"){Q=K(Z,Q-1,M,M==="CALL_END"?"CALL_START":"(");continue}break}if(D==="CALL_END"||D===")"){Q=K(Z,Q-2,D,D==="CALL_END"?"CALL_START":"(");continue}if(D==="INTERPOLATION_END"){Q=K(Z,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(D==="STRING_END"){Q=K(Z,Q-2,"STRING_END","STRING_START");continue}Q--}return Z[Q]&&Z[Q][0]==="IDENTIFIER"&&R(Z[Q][1])};this.scanTokens(function(Z,J,Q){let D=Z[0],M=J<Q.length-1?Q[J+1]:null;if(D==="RENDER")return u=!0,f=F+1,1;if(D==="INDENT")return F++,1;if(D==="OUTDENT"){F--;let q=0;while(Y.length>0&&Y[Y.length-1]>F){let O=U("CALL_END",")",Z);Q.splice(J+1+q,0,O),Y.pop(),q++}if(u&&F<f)u=!1;return 1+q}if(!u)return 1;if(D==="IDENTIFIER"&&!Z.spaced){let q=[Z[1]],O=J+1;while(O+1<Q.length){let z=Q[O],E=Q[O+1];if(z[0]==="-"&&!z.spaced&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")){if(q.push(E[1]),O+=2,E[0]==="PROPERTY")break}else break}if(q.length>1&&O>J+1&&Q[O-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${q.join("-")}"`,Q.splice(J+1,O-J-1),1}if(D==="."){let q=J>0?Q[J-1]:null,O=q?q[0]:null;if(O==="INDENT"||O==="TERMINATOR"){if(M&&M[0]==="PROPERTY"){let z=U("IDENTIFIER","div",Z);return Q.splice(J,0,z),2}if(!M||M[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(D==="IDENTIFIER"||D==="PROPERTY"){let q=Q[J+1],O=Q[J+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 Q.splice(J+1,2),0}}if(D==="BIND"){let q=J>0?Q[J-1]:null,O=Q[J+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(D==="@"){let q=J+1;if(q<Q.length&&Q[q][0]==="PROPERTY"){q++;while(q+1<Q.length&&Q[q][0]==="."&&Q[q+1][0]==="PROPERTY")q+=2;if(q>J+2&&q<Q.length&&Q[q][0]===":"){let O=U("[","[",Z);Q.splice(J,0,O);let z=U("]","]",Q[q+1]);return Q.splice(q+1,0,z),2}}}if(D==="."&&M&&M[0]==="("){let q=J>0?Q[J-1]:null,O=q?q[0]:null,z=O==="INDENT"||O==="TERMINATOR",E=U("PROPERTY","__clsx",Z);M[0]="CALL_START";let P=1;for(let w=J+2;w<Q.length&&P>0;w++)if(Q[w][0]==="("||Q[w][0]==="CALL_START")P++;else if(Q[w][0]===")"){if(P--,P===0)Q[w][0]="CALL_END"}else if(Q[w][0]==="CALL_END")P--;if(z){let w=U("IDENTIFIER","div",Z);return Q.splice(J,0,w),Q.splice(J+2,0,E),3}else if(O===":")return Q[J]=U("IDENTIFIER","__clsx",Z),1;else return Q.splice(J+1,0,E),2}if(M&&M[0]==="INDENT"){if(D==="->"||D==="=>"||D==="CALL_START"||D==="(")return 1;let q=!1,O=J>0?Q[J-1][0]:null,z=O==="IF"||O==="UNLESS"||O==="WHILE"||O==="UNTIL"||O==="WHEN",E=!1;if(D==="CALL_END"){let P=1;for(let w=J-1;w>=0&&P>0;w--)if(Q[w][0]==="CALL_END")P++;else if(Q[w][0]==="CALL_START"){if(P--,P===0&&w>0&&Q[w-1][0]==="PROPERTY"&&Q[w-1][1]==="__clsx")E=!0}}if(E)q=!0;else if(D==="IDENTIFIER"&&R(Z[1])&&!z)q=!0;else if(D==="PROPERTY"||D==="STRING"||D==="STRING_END"||D==="CALL_END"||D===")")q=H(Q,J);else if(D==="IDENTIFIER"&&J>1&&Q[J-1][0]==="..."){if(H(Q,J)){let P=U(",",",",Z),w=U("->","->",Z);return w.newLine=!0,Q.splice(J+1,0,P,w),3}}if(q){let P=D==="PROPERTY"&&J>0&&(Q[J-1][0]==="."||Q[J-1][0]==="#");if(E){let w=U("CALL_START","(",Z),G=U("->","->",Z);return G.newLine=!0,Q.splice(J+1,0,w,G),Y.push(F+1),3}else if(D==="IDENTIFIER"&&R(Z[1])||P){let w=U("CALL_START","(",Z),G=U("->","->",Z);return G.newLine=!0,Q.splice(J+1,0,w,G),Y.push(F+1),3}else{let w=U(",",",",Z),G=U("->","->",Z);return G.newLine=!0,Q.splice(J+1,0,w,G),3}}}if(D==="IDENTIFIER"&&X(Z[1])&&M&&(M[0]==="OUTDENT"||M[0]==="TERMINATOR"))return Q.splice(J+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let A=$.prototype;A.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},A.isHtmlTag=function(U){let u=U.split("#")[0];return Q2.has(u.toLowerCase())},A.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},A.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,_]=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]===".")return[".",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))},A.generateComponent=function(U,u,f,F){let[,Y]=u;this.usesTemplates=!0,this.usesReactivity=!0;let _=this.is(Y,"block")?Y.slice(1):[],X=[],R=[],K=[],H=[],Z=[],J=[],Q=null,D=new Set,M=new Set;for(let P of _){if(!Array.isArray(P))continue;let[w]=P;if(w==="state"){let G=K1(P[1]);if(G)X.push({name:G,value:P[2],isPublic:j1(P[1])}),D.add(G),M.add(G)}else if(w==="computed"){let G=K1(P[1]);if(G)R.push({name:G,expr:P[2]}),D.add(G),M.add(G)}else if(w==="readonly"){let G=K1(P[1]);if(G)K.push({name:G,value:P[2],isPublic:j1(P[1])}),D.add(G)}else if(w==="="){let G=K1(P[1]);if(G)if(X2.has(G))Z.push({name:G,value:P[2]});else{let I=P[2];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>"))H.push({name:G,func:I}),D.add(G);else X.push({name:G,value:I,isPublic:j1(P[1])}),D.add(G),M.add(G)}}else if(w==="effect")J.push(P);else if(w==="render")Q=P;else if(w==="object")for(let G=1;G<P.length;G++){let I=P[G];if(!Array.isArray(I))continue;let[B,N]=I;if(typeof B==="string"&&X2.has(B))Z.push({name:B,value:N});else if(typeof B==="string")H.push({name:B,func:N}),D.add(B)}}let q=this.componentMembers,O=this.reactiveMembers;this.componentMembers=D,this.reactiveMembers=M;let z=[],E="";z.push("class extends __Component {"),z.push(" _init(props) {");for(let{name:P,value:w,isPublic:G}of K){let I=this.generateInComponent(w,"value");z.push(G?` this.${P} = props.${P} ?? ${I};`:` this.${P} = ${I};`)}for(let{name:P,value:w,isPublic:G}of X){let I=this.generateInComponent(w,"value");z.push(G?` this.${P} = __state(props.${P} ?? ${I});`:` this.${P} = __state(${I});`)}for(let{name:P,expr:w}of R)if(this.is(w,"block")&&w.length>2){let G=this.transformComponentMembers(w),I=this.generateFunctionBody(G);z.push(` this.${P} = __computed(() => ${I});`)}else{let G=this.generateInComponent(w,"value");z.push(` this.${P} = __computed(() => ${G});`)}for(let P of J){let w=P[2],G=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(${G}() => ${B});`)}else{let I=this.generateInComponent(w,"value");z.push(` __effect(${G}() => { ${I}; });`)}}z.push(" }");for(let{name:P,func:w}of H)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,G,I]=w,B=Array.isArray(G)?G.map((V)=>this.formatParam(V)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(I):I,T=this.containsAwait(I),L=this.generateFunctionBody(N,G||[]);z.push(` ${T?"async ":""}${P}(${B}) ${L}`)}for(let{name:P,value:w}of Z)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,,G]=w,I=this.reactiveMembers?this.transformComponentMembers(G):G,B=this.containsAwait(G),N=this.generateFunctionBody(I,[]);z.push(` ${B?"async ":""}${P}() ${N}`)}if(Q){let P=Q[1],w=this.buildRender(P);if(w.blockFactories.length>0)E=w.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;z.push(" _create() {");for(let G of
|
|
17
|
+
`;z.push(" _create() {");for(let G of w.createLines)z.push(` ${G}`);if(z.push(` return ${w.rootVar};`),z.push(" }"),w.setupLines.length>0){z.push(" _setup() {");for(let G of w.setupLines)z.push(` ${G}`);z.push(" }")}}if(z.push("}"),this.componentMembers=q,this.reactiveMembers=O,E)return`(() => {
|
|
18
18
|
${E}return ${z.join(`
|
|
19
19
|
`)};
|
|
20
20
|
})()`;return z.join(`
|
|
21
|
-
`)},A.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)},A.generateRender=function(U,u,f,F){throw Error("render blocks can only be used inside a component")},A.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}},A.newBlockVar=function(){return`create_block_${this._blockCount++}`},A.newElementVar=function(U="el"){return`this._${U}${this._elementCount++}`},A.newTextVar=function(){return`this._t${this._textCount++}`},A.generateNode=function(U){if(typeof U==="string"||U instanceof String){let X=U.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode(${X});`),K}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${K}.data = this.${X}.value; });`),K}let[R,w]=X.split("#"),H=this.newElementVar(),Z=R||"div";if(W1.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(w)this._createLines.push(`${H}.id = '${w}';`);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,R]=F.split("#");return this.generateTag(X||"div",[],f,R)}if(F==="."){let[,X,R]=U;if(X==="this"&&typeof R==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(R)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${R}.value; });`),M}let D=this.newElementVar("slot");return this._createLines.push(`${D} = this.${R} instanceof Node ? this.${R} : (this.${R} != null ? document.createTextNode(String(this.${R})) : document.createComment(''));`),D}let{tag:w,classes:H,id:Z}=this.collectTemplateClasses(U);if(w&&this.isHtmlTag(w))return this.generateTag(w,H,[],Z);let K=this.newTextVar(),Q=this.generateInComponent(U,"value");return this._createLines.push(`${K} = document.createTextNode(String(${Q}));`),K}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:R,id:w}=this.collectTemplateClasses(u);if(X&&this.isHtmlTag(X)){if(R.length===1&&R[0]==="__clsx")return this.generateDynamicTag(X,f,[]);return this.generateTag(X,R,f,w)}}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(),_=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${Y} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Y}.data = ${_}; });`);else this._createLines.push(`${Y} = document.createTextNode(String(${_}));`);return Y},A.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 _=this.generateNode(Y);this._createLines.push(`${U}.appendChild(${_});`)}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});`)}},A.generateTag=function(U,u,f,F){let Y=this.newElementVar(),_=W1.has(U)||this._svgDepth>0;if(_)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,R=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(_)this._createLines.push(`${Y}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${Y}.className = '${u.join(" ")}';`);else{let w=this._pendingClassArgs.join(", ");if(_)this._setupLines.push(`__effect(() => { ${Y}.setAttribute('class', __clsx(${w})); });`);else this._setupLines.push(`__effect(() => { ${Y}.className = __clsx(${w}); });`)}this._pendingClassArgs=X,this._pendingClassEl=R}return Y},A.generateDynamicTag=function(U,u,f){let F=this.newElementVar();if(W1.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((R)=>this.generateInComponent(R,"value")),_=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 R=this._pendingClassArgs.join(", ");if(W1.has(U)||this._svgDepth>0)this._setupLines.push(`__effect(() => { ${F}.setAttribute('class', __clsx(${R})); });`);else this._setupLines.push(`__effect(() => { ${F}.className = __clsx(${R}); });`)}return this._pendingClassArgs=_,this._pendingClassEl=X,F},A.generateAttributes=function(U,u){let f=T3(u.slice(1));for(let F=1;F<u.length;F++){let[Y,_]=u[F];if(this.is(Y,".")&&Y[1]==="this"){let X=Y[2];if(typeof _==="string"&&this.componentMembers?.has(_))this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => this.${_}(e)));`);else{let R=this.generateInComponent(_,"value");this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => (${R})(e)));`)}continue}if(typeof Y==="string"){if(Y.startsWith('"')&&Y.endsWith('"'))Y=Y.slice(1,-1);if(Y==="class"||Y==="className"){let R=this.generateInComponent(_,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(R);else if(this.hasReactiveDeps(_))if(this._svgDepth>0)this._setupLines.push(`__effect(() => { ${U}.setAttribute('class', __clsx(${R})); });`);else this._setupLines.push(`__effect(() => { ${U}.className = __clsx(${R}); });`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${R});`);else this._createLines.push(`${U}.className = ${R};`);continue}if(Y==="ref"){let R=String(_).replace(/^["']|["']$/g,"");this._createLines.push(`this.${R} = ${U};`);continue}if(Y.startsWith("__bind_")&&Y.endsWith("__")){let R=Y.slice(7,-2),w=this.generateInComponent(_,"value"),H,Z;if(R==="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}.${R} = ${w}; });`);let K=`${w} = ${Z}`,Q=!this.isSimpleAssignable(_)&&this.findRootReactiveMember(_);if(Q)K+=`; this.${Q}.touch?.()`;this._createLines.push(`${U}.addEventListener('${H}', (e) => { ${K}; });`);continue}let X=this.generateInComponent(_,"value");if((Y==="value"||Y==="checked")&&this.hasReactiveDeps(_)){this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);let R=!this.isSimpleAssignable(_)&&this.findRootReactiveMember(_);if(this.isSimpleAssignable(_)||R){let w=Y==="checked"?"change":"input",Z=`${X} = ${Y==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(R)Z+=`; this.${R}.touch?.()`;this._createLines.push(`${U}.addEventListener('${w}', (e) => { ${Z}; });`)}continue}if(Y==="innerHTML"||Y==="textContent"||Y==="innerText")if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);else this._createLines.push(`${U}.${Y} = ${X};`);else if(N3.has(Y))if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.toggleAttribute('${Y}', !!${X}); });`);else this._createLines.push(`if (${X}) ${U}.setAttribute('${Y}', '');`);else if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.setAttribute('${Y}', ${X}); });`);else this._createLines.push(`${U}.setAttribute('${Y}', ${X});`)}}},A.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},A.generateConditional=function(U){let[,u,f,F]=U,Y=this.newElementVar("anchor");this._createLines.push(`${Y} = document.createComment('if');`);let _=this.generateInComponent(u,"value"),X=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),R=X?`, ${X}`:"",w=this.newBlockVar();this.generateConditionBranch(w,f);let H=null;if(F)H=this.newBlockVar(),this.generateConditionBranch(H,F);let Z=[];if(Z.push(`// Conditional: ${w}${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 = !!(${_});`),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 = ${w}(this${R});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${R});`),Z.push(" }"),F)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${H}(this${R});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${R});`),Z.push(" }");return Z.push(" });"),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
-
`)),Y},A.generateConditionBranch=function(U,u){let f=this._createLines,F=this._setupLines;this._createLines=[],this._setupLines=[];let Y=this.generateTemplateBlock(u),_=this._createLines,X=this._setupLines;this._createLines=f,this._setupLines=F;let R=(M)=>this.localizeVar(M),
|
|
23
|
-
`))},A.generateTemplateLoop=function(U){let[u,f,F,Y,_,X]=U,R=this.newBlockVar(),
|
|
24
|
-
`));let N=[];return N.push(`// Loop: ${R}`),N.push("{"),N.push(` const __anchor = ${
|
|
25
|
-
`)),
|
|
21
|
+
`)},A.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)},A.generateRender=function(U,u,f,F){throw Error("render blocks can only be used inside a component")},A.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}},A.newBlockVar=function(){return`create_block_${this._blockCount++}`},A.newElementVar=function(U="el"){return`this._${U}${this._elementCount++}`},A.newTextVar=function(){return`this._t${this._textCount++}`},A.generateNode=function(U){if(typeof U==="string"||U instanceof String){let X=U.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode(${X});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${J}.data = this.${X}.value; });`),J}let[R,K]=X.split("#"),H=this.newElementVar(),Z=R||"div";if(W1.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(K)this._createLines.push(`${H}.id = '${K}';`);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,R]=F.split("#");return this.generateTag(X||"div",[],f,R)}if(F==="."){let[,X,R]=U;if(X==="this"&&typeof R==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(R)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${R}.value; });`),M}let D=this.newElementVar("slot");return this._createLines.push(`${D} = this.${R} instanceof Node ? this.${R} : (this.${R} != null ? document.createTextNode(String(this.${R})) : document.createComment(''));`),D}let{tag:K,classes:H,id:Z}=this.collectTemplateClasses(U);if(K&&this.isHtmlTag(K))return this.generateTag(K,H,[],Z);let J=this.newTextVar(),Q=this.generateInComponent(U,"value");return this._createLines.push(`${J} = document.createTextNode(String(${Q}));`),J}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:R,id:K}=this.collectTemplateClasses(u);if(X&&this.isHtmlTag(X)){if(R.length===1&&R[0]==="__clsx")return this.generateDynamicTag(X,f,[]);return this.generateTag(X,R,f,K)}}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(),_=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${Y} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Y}.data = ${_}; });`);else this._createLines.push(`${Y} = document.createTextNode(String(${_}));`);return Y},A.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 _=this.generateNode(Y);this._createLines.push(`${U}.appendChild(${_});`)}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});`)}},A.generateTag=function(U,u,f,F){let Y=this.newElementVar(),_=W1.has(U)||this._svgDepth>0;if(_)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,R=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(_)this._createLines.push(`${Y}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${Y}.className = '${u.join(" ")}';`);else{let K=this._pendingClassArgs.join(", ");if(_)this._setupLines.push(`__effect(() => { ${Y}.setAttribute('class', __clsx(${K})); });`);else this._setupLines.push(`__effect(() => { ${Y}.className = __clsx(${K}); });`)}this._pendingClassArgs=X,this._pendingClassEl=R}return Y},A.generateDynamicTag=function(U,u,f){let F=this.newElementVar();if(W1.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((R)=>this.generateInComponent(R,"value")),_=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 R=this._pendingClassArgs.join(", ");if(W1.has(U)||this._svgDepth>0)this._setupLines.push(`__effect(() => { ${F}.setAttribute('class', __clsx(${R})); });`);else this._setupLines.push(`__effect(() => { ${F}.className = __clsx(${R}); });`)}return this._pendingClassArgs=_,this._pendingClassEl=X,F},A.generateAttributes=function(U,u){let f=T3(u.slice(1));for(let F=1;F<u.length;F++){let[Y,_]=u[F];if(this.is(Y,".")&&Y[1]==="this"){let X=Y[2];if(typeof _==="string"&&this.componentMembers?.has(_))this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => this.${_}(e)));`);else{let R=this.generateInComponent(_,"value");this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => (${R})(e)));`)}continue}if(typeof Y==="string"){if(Y.startsWith('"')&&Y.endsWith('"'))Y=Y.slice(1,-1);if(Y==="class"||Y==="className"){let R=this.generateInComponent(_,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(R);else if(this.hasReactiveDeps(_))if(this._svgDepth>0)this._setupLines.push(`__effect(() => { ${U}.setAttribute('class', __clsx(${R})); });`);else this._setupLines.push(`__effect(() => { ${U}.className = __clsx(${R}); });`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${R});`);else this._createLines.push(`${U}.className = ${R};`);continue}if(Y==="ref"){let R=String(_).replace(/^["']|["']$/g,"");this._createLines.push(`this.${R} = ${U};`);continue}if(Y.startsWith("__bind_")&&Y.endsWith("__")){let R=Y.slice(7,-2),K=this.generateInComponent(_,"value"),H,Z;if(R==="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}.${R} = ${K}; });`);let J=`${K} = ${Z}`,Q=!this.isSimpleAssignable(_)&&this.findRootReactiveMember(_);if(Q)J+=`; this.${Q}.touch?.()`;this._createLines.push(`${U}.addEventListener('${H}', (e) => { ${J}; });`);continue}let X=this.generateInComponent(_,"value");if((Y==="value"||Y==="checked")&&this.hasReactiveDeps(_)){this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);let R=!this.isSimpleAssignable(_)&&this.findRootReactiveMember(_);if(this.isSimpleAssignable(_)||R){let K=Y==="checked"?"change":"input",Z=`${X} = ${Y==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(R)Z+=`; this.${R}.touch?.()`;this._createLines.push(`${U}.addEventListener('${K}', (e) => { ${Z}; });`)}continue}if(Y==="innerHTML"||Y==="textContent"||Y==="innerText")if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);else this._createLines.push(`${U}.${Y} = ${X};`);else if(N3.has(Y))if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.toggleAttribute('${Y}', !!${X}); });`);else this._createLines.push(`if (${X}) ${U}.setAttribute('${Y}', '');`);else if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.setAttribute('${Y}', ${X}); });`);else this._createLines.push(`${U}.setAttribute('${Y}', ${X});`)}}},A.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},A.generateConditional=function(U){let[,u,f,F]=U,Y=this.newElementVar("anchor");this._createLines.push(`${Y} = document.createComment('if');`);let _=this.generateInComponent(u,"value"),X=this._loopVarStack.map((J)=>`${J.itemVar}, ${J.indexVar}`).join(", "),R=X?`, ${X}`:"",K=this.newBlockVar();this.generateConditionBranch(K,f);let H=null;if(F)H=this.newBlockVar(),this.generateConditionBranch(H,F);let Z=[];if(Z.push(`// Conditional: ${K}${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 = !!(${_});`),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 = ${K}(this${R});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${R});`),Z.push(" }"),F)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${H}(this${R});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${R});`),Z.push(" }");return Z.push(" });"),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
+
`)),Y},A.generateConditionBranch=function(U,u){let f=this._createLines,F=this._setupLines;this._createLines=[],this._setupLines=[];let Y=this.generateTemplateBlock(u),_=this._createLines,X=this._setupLines;this._createLines=f,this._setupLines=F;let R=(M)=>this.localizeVar(M),K=this._loopVarStack.map((M)=>`${M.itemVar}, ${M.indexVar}`).join(", "),H=K?`, ${K}`:"",Z=[];Z.push(`function ${U}(ctx${H}) {`);let J=new Set;for(let M of _){let q=M.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(q)J.add(q[1])}if(J.size>0)Z.push(` let ${[...J].join(", ")};`);let Q=X.length>0;if(Q)Z.push(" let disposers = [];");Z.push(" return {"),Z.push(" c() {");for(let M of _)Z.push(` ${R(M)}`);if(Z.push(" },"),Z.push(" m(target, anchor) {"),Z.push(` target.insertBefore(${R(Y)}, anchor);`),Z.push(" },"),Z.push(` p(ctx${H}) {`),Q){Z.push(" disposers.forEach(d => d());"),Z.push(" disposers = [];");for(let M of X){let O=R(M).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");Z.push(` ${O}`)}}if(Z.push(" },"),Z.push(" d(detaching) {"),Q)Z.push(" disposers.forEach(d => d());");let D=w2(Y,_,R);if(D)for(let M of D)Z.push(` if (detaching && ${M}) ${M}.remove();`);else Z.push(` if (detaching && ${R(Y)}) ${R(Y)}.remove();`);Z.push(" }"),Z.push(" };"),Z.push("}"),this._blockFactories.push(Z.join(`
|
|
23
|
+
`))},A.generateTemplateLoop=function(U){let[u,f,F,Y,_,X]=U,R=this.newBlockVar(),K=this.newElementVar("anchor");this._createLines.push(`${K} = document.createComment('for');`);let H=Array.isArray(f)?f:[f],Z=H[0],J=H[1]||"i",Q=this.generateInComponent(F,"value"),D=Z;if(this.is(X,"block")&&X.length>1){let T=X[1];if(Array.isArray(T))for(let L of T){if(this.is(L,"object"))for(let V=1;V<L.length;V++){let[c,Z1]=L[V];if(c==="key"){D=this.generate(Z1,"value");break}}if(D!==Z)break}}let M=this._createLines,q=this._setupLines;this._createLines=[],this._setupLines=[],this._loopVarStack.push({itemVar:Z,indexVar:J});let O=this.generateTemplateBlock(X);this._loopVarStack.pop();let z=this._createLines,E=this._setupLines;this._createLines=M,this._setupLines=q;let P=(T)=>this.localizeVar(T),w=[];w.push(`function ${R}(ctx, ${Z}, ${J}) {`);let G=new Set;for(let T of z){let L=T.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(L)G.add(L[1])}if(G.size>0)w.push(` let ${[...G].join(", ")};`);let I=E.length>0;if(I)w.push(" let disposers = [];");w.push(" return {"),w.push(" c() {");for(let T of z)w.push(` ${P(T)}`);w.push(" },");let B=w2(O,z,P);if(w.push(" m(target, anchor) {"),B)for(let T of B)w.push(` if (target) target.insertBefore(${T}, anchor);`);else w.push(` if (target) target.insertBefore(${P(O)}, anchor);`);if(w.push(" },"),w.push(` p(ctx, ${Z}, ${J}) {`),I){w.push(" disposers.forEach(d => d());"),w.push(" disposers = [];");for(let T of E){let V=P(T).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");w.push(` ${V}`)}}if(w.push(" },"),w.push(" d(detaching) {"),I)w.push(" disposers.forEach(d => d());");if(B)for(let T of B)w.push(` if (detaching && ${T}) ${T}.remove();`);else w.push(` if (detaching && ${P(O)}) ${P(O)}.remove();`);w.push(" }"),w.push(" };"),w.push("}"),this._blockFactories.push(w.join(`
|
|
24
|
+
`));let N=[];return N.push(`// Loop: ${R}`),N.push("{"),N.push(` const __anchor = ${K};`),N.push(" const __map = new Map();"),N.push(" __effect(() => {"),N.push(` const __items = ${Q};`),N.push(" const __parent = __anchor.parentNode;"),N.push(" const __newMap = new Map();"),N.push(""),N.push(` for (let ${J} = 0; ${J} < __items.length; ${J}++) {`),N.push(` const ${Z} = __items[${J}];`),N.push(` const __key = ${D};`),N.push(" let __block = __map.get(__key);"),N.push(" if (!__block) {"),N.push(` __block = ${R}(this, ${Z}, ${J});`),N.push(" __block.c();"),N.push(" }"),N.push(" __block.m(__parent, __anchor);"),N.push(` __block.p(this, ${Z}, ${J});`),N.push(" __newMap.set(__key, __block);"),N.push(" }"),N.push(""),N.push(" for (const [__k, __b] of __map) {"),N.push(" if (!__newMap.has(__k)) __b.d(true);"),N.push(" }"),N.push(""),N.push(" __map.clear();"),N.push(" for (const [__k, __v] of __newMap) __map.set(__k, __v);"),N.push(" });"),N.push("}"),this._setupLines.push(N.join(`
|
|
25
|
+
`)),K},A.generateChildComponent=function(U,u){let f=this.newElementVar("inst"),F=this.newElementVar("el"),{propsCode:Y,reactiveProps:_,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:R,valueCode:K}of _)this._setupLines.push(`__effect(() => { if (${f}.${R}) ${f}.${R}.value = ${K}; });`);for(let R of X)this._setupLines.push(R);return F},A.buildComponentProps=function(U){let u=[],f=[],F=null,Y=[];for(let X of U)if(this.is(X,"object"))for(let R=1;R<X.length;R++){let[K,H]=X[R];if(typeof K==="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 J=typeof H==="string"?H:H[2];u.push(`${K}: this.${J}`)}else{let J=this.generateInComponent(H,"value");if(u.push(`${K}: ${J}`),this.hasReactiveDeps(H))f.push({key:K,valueCode:J})}}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let R=X[2];if(R){if(this.is(R,"block")){let K=[];for(let H of R.slice(1))if(this.is(H,"object"))for(let Z=1;Z<H.length;Z++){let[J,Q]=H[Z];if(typeof J==="string")if(this.reactiveMembers&&(typeof Q==="string"&&this.reactiveMembers.has(Q)||Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"&&typeof Q[2]==="string"&&this.reactiveMembers.has(Q[2]))){let M=typeof Q==="string"?Q:Q[2];u.push(`${J}: this.${M}`)}else{let M=this.generateInComponent(Q,"value");if(u.push(`${J}: ${M}`),this.hasReactiveDeps(Q))f.push({key:J,valueCode:M})}}else K.push(H);R=K.length>0?["block",...K]:null}if(R){let K=this._createLines,H=this._setupLines;this._createLines=[],this._setupLines=[],F=this.generateTemplateBlock(R);let Z=this._createLines,J=this._setupLines;this._createLines=K,this._setupLines=H;for(let Q of Z)this._createLines.push(Q);Y.push(...J),u.push(`children: ${F}`)}}}return{propsCode:u.length>0?`{ ${u.join(", ")} }`:"{}",reactiveProps:f,childrenSetupLines:Y}},A.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},A.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},A.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},A._rootsAtThis=function(U){if(typeof U==="string")return U==="this";if(!Array.isArray(U)||U[0]!==".")return!1;return this._rootsAtThis(U[1])},A.getComponentRuntime=function(){return`
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Rip Component Runtime
|
|
28
28
|
// ============================================================================
|
|
@@ -103,25 +103,25 @@ if (typeof globalThis !== 'undefined') {
|
|
|
103
103
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
`}}function t($){let W="",A=$<0?-$<<1|1:$<<1;do{let U=A&31;if(A>>>=5,A>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(A>0);return W}class C1{constructor($,W,A=null){this.file=$,this.source=W,this.sourceContent=A,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,A,U,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(A==null){this.lines[$].push(t(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:$,genCol:W,origLine:A,origCol:U});let f=t(W-this.prevGenCol);if(this.prevGenCol=W,f+=t(0),f+=t(A-this.prevOrigLine),this.prevOrigLine=A,f+=t(U-this.prevOrigCol),this.prevOrigCol=U,u!=null){let F=this.addName(u);f+=t(F-this.prevNameIdx),this.prevNameIdx=F}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((A)=>A.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
|
|
106
|
+
`}}function t($){let W="",A=$<0?-$<<1|1:$<<1;do{let U=A&31;if(A>>>=5,A>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(A>0);return W}class C1{constructor($,W,A=null){this.file=$,this.source=W,this.sourceContent=A,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,A,U,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(A==null){this.lines[$].push(t(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:$,genCol:W,origLine:A,origCol:U});let f=t(W-this.prevGenCol);if(this.prevGenCol=W,f+=t(0),f+=t(A-this.prevOrigLine),this.prevOrigLine=A,f+=t(U-this.prevOrigCol),this.prevOrigCol=U,u!=null){let F=this.addName(u);f+=t(F-this.prevNameIdx),this.prevNameIdx=F}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((A)=>A.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 h=($,W)=>$ instanceof String?$[W]:void 0,S=($)=>$ instanceof String?$.valueOf():$,S3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function D1($){if(!Array.isArray($)||$.length===0)return!1;let W=$[0]?.valueOf?.()??$[0];if(S3.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(`
|
|
107
107
|
`)>=0){let A=W.match(/\/([gimsuvy]*)$/),U=A?A[1]:"",u=W.slice(1);return u=U?u.slice(0,-U.length-1):u.slice(0,-1),`"/${u.split(`
|
|
108
|
-
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function x($,W=0,A=!1){if(!Array.isArray($))return A1($);if(A&&$[0]==="program"){let X=$[1],
|
|
109
|
-
`)}let U=$[0];if(D1($)&&$.slice(1).every((X)=>!Array.isArray(X)||D1(X))){let R=`(${$.map((
|
|
108
|
+
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function x($,W=0,A=!1){if(!Array.isArray($))return A1($);if(A&&$[0]==="program"){let X=$[1],K=[Array.isArray(X)?"(program":"(program "+A1(X)],H=Array.isArray(X)?1:2;for(let Z=H;Z<$.length;Z++){let J=x($[Z],2,!1);K.push(J[0]==="("?" "+J:J)}return K.push(")"),K.join(`
|
|
109
|
+
`)}let U=$[0];if(D1($)&&$.slice(1).every((X)=>!Array.isArray(X)||D1(X))){let R=`(${$.map((K)=>Array.isArray(K)?x(K,0,!1):A1(K)).join(" ")})`;if(!R.includes(`
|
|
110
110
|
`))return" ".repeat(W)+R}let f=" ".repeat(W),F;if(Array.isArray(U)){if(F=x(U,0,!1),F.includes(`
|
|
111
111
|
`))F=F.split(`
|
|
112
|
-
`).map((R,
|
|
113
|
-
`)}else F=A1(U);let Y=[`${f}(${F}`],_=U==="block";for(let X=1;X<$.length;X++){let R=$[X];if(!Array.isArray(R))Y[Y.length-1]+=" "+A1(R);else{let
|
|
112
|
+
`).map((R,K)=>K===0?R:" ".repeat(W+2)+R).join(`
|
|
113
|
+
`)}else F=A1(U);let Y=[`${f}(${F}`],_=U==="block";for(let X=1;X<$.length;X++){let R=$[X];if(!Array.isArray(R))Y[Y.length-1]+=" "+A1(R);else{let K=D1(R)&&R.every((H)=>!Array.isArray(H)||D1(H));if(!_&&K){let H=x(R,0,!1);if(!H.includes(`
|
|
114
114
|
`)){Y[Y.length-1]+=" "+H;continue}}Y.push(x(R,W+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
|
|
115
115
|
`)}class y{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"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(`
|
|
116
|
-
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W,...A]=$;if(W=S(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]=A,u=S(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(W==="readonly")return;if(W==="component")return;if(y.ASSIGNMENT_OPS.has(W)){let[U,u]=A;if(typeof U==="string"||U instanceof String){let f=S(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]=A;if(this.collectProgramVariables(U),this.collectProgramVariables(u),f)this.collectProgramVariables(f);return}if(W==="try"){if(this.collectProgramVariables(A[0]),A.length>=2&&Array.isArray(A[1])&&A[1].length===2&&A[1][0]!=="block"){let[U,u]=A[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(A.length===3)this.collectProgramVariables(A[2]);else if(A.length===2&&(!Array.isArray(A[1])||A[1][0]==="block"))this.collectProgramVariables(A[1]);return}A.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let W=new Set,A=(U)=>{if(!Array.isArray(U))return;let[u,...f]=U;if(u=S(u),Array.isArray(u)){U.forEach((F)=>A(F));return}if(y.ASSIGNMENT_OPS.has(u)){let[F,Y]=f;if(typeof F==="string")W.add(F);else if(this.is(F,"array"))this.collectVarsFromArray(F,W);else if(this.is(F,"object"))this.collectVarsFromObject(F,W);A(Y);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(A(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[F,Y]=f[1];if(F&&this.is(F,"object"))F.slice(1).forEach((_)=>{if(Array.isArray(_)&&_.length===2&&typeof _[1]==="string")W.add(_[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((_)=>{if(typeof _==="string")W.add(_)});A(Y)}if(f.length===3)A(f[2]);else if(f.length===2&&(!Array.isArray(f[1])||f[1][0]==="block"))A(f[1]);return}f.forEach((F)=>A(F))};return A($),W}generate($,W="statement"){if($ instanceof String){if(
|
|
117
|
-
`))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=F.includes("'")&&!F.includes('"')?'"':"'",_=F.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${_}${Y}`}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[A,...U]=$,u=
|
|
118
|
-
`),
|
|
119
|
-
`),
|
|
120
|
-
`;u+=`let ${
|
|
121
|
-
`,
|
|
122
|
-
`;if(u+=H1(),
|
|
123
|
-
`,
|
|
124
|
-
`,
|
|
116
|
+
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W,...A]=$;if(W=S(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]=A,u=S(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(W==="readonly")return;if(W==="component")return;if(y.ASSIGNMENT_OPS.has(W)){let[U,u]=A;if(typeof U==="string"||U instanceof String){let f=S(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]=A;if(this.collectProgramVariables(U),this.collectProgramVariables(u),f)this.collectProgramVariables(f);return}if(W==="try"){if(this.collectProgramVariables(A[0]),A.length>=2&&Array.isArray(A[1])&&A[1].length===2&&A[1][0]!=="block"){let[U,u]=A[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(A.length===3)this.collectProgramVariables(A[2]);else if(A.length===2&&(!Array.isArray(A[1])||A[1][0]==="block"))this.collectProgramVariables(A[1]);return}A.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let W=new Set,A=(U)=>{if(!Array.isArray(U))return;let[u,...f]=U;if(u=S(u),Array.isArray(u)){U.forEach((F)=>A(F));return}if(y.ASSIGNMENT_OPS.has(u)){let[F,Y]=f;if(typeof F==="string")W.add(F);else if(this.is(F,"array"))this.collectVarsFromArray(F,W);else if(this.is(F,"object"))this.collectVarsFromObject(F,W);A(Y);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(A(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[F,Y]=f[1];if(F&&this.is(F,"object"))F.slice(1).forEach((_)=>{if(Array.isArray(_)&&_.length===2&&typeof _[1]==="string")W.add(_[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((_)=>{if(typeof _==="string")W.add(_)});A(Y)}if(f.length===3)A(f[2]);else if(f.length===2&&(!Array.isArray(f[1])||f[1][0]==="block"))A(f[1]);return}f.forEach((F)=>A(F))};return A($),W}generate($,W="statement"){if($ instanceof String){if(h($,"await")===!0)return`await ${S($)}()`;if(h($,"predicate"))return`(${S($)} != null)`;if(h($,"delimiter")==="///"&&h($,"heregex")){let Y=S($),_=Y.match(/^\/(.*)\/([gimsuvy]*)$/s);if(_){let[,X,R]=_;return`/${this.processHeregex(X)}/${R}`}return Y}let F=h($,"quote");if(F){let Y=S($);if(F==='"""'||F==="'''"){let X=this.extractStringContent($);return X=X.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${X}\``}if(Y[0]===F)return Y;let _=Y.slice(1,-1);return`${F}${_}${F}`}$=S($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let F=$.slice(1,-1);if(F.includes(`
|
|
117
|
+
`))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=F.includes("'")&&!F.includes('"')?'"':"'",_=F.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${_}${Y}`}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[A,...U]=$,u=h(A,"await");A=S(A);let f=y.GENERATORS[A];if(f)return this[f](A,U,W,$);if(typeof A==="string"&&!A.startsWith('"')&&!A.startsWith("'")){if(y.NUMBER_START_RE.test(A))return A;if(A==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let R=U.map((K)=>this.unwrap(this.generate(K,"value"))).join(", ");return`super.${this.currentMethodName}(${R})`}if(W==="statement"&&U.length===1){let R=this.findPostfixConditional(U[0]);if(R){let K=this.rebuildWithoutConditional(R),H=this.generate(A,"value"),Z=this.generate(R.condition,"value"),J=this.generate(K,"value"),Q=`${H}(${J})`;return`if (${Z}) ${Q}`}}let F=u===!0,Y=this.generate(A,"value"),_=U.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),X=`${Y}(${_})`;return F?`await ${X}`:X}if(Array.isArray(A)&&typeof A[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(A[0]))return`(${$.map((_)=>this.generate(_,"value")).join(", ")})`}if(Array.isArray(A)){if(A[0]==="."&&(A[2]==="new"||S(A[2])==="new")){let R=A[1],K=this.generate(R,"value"),H=U.map((J)=>this.unwrap(this.generate(J,"value"))).join(", ");return`new ${Array.isArray(R)?`(${K})`:K}(${H})`}if(W==="statement"&&U.length===1){let R=this.findPostfixConditional(U[0]);if(R){let K=this.rebuildWithoutConditional(R),H=this.generate(A,"value"),Z=this.generate(R.condition,"value"),J=this.generate(K,"value"),Q=`${H}(${J})`;return`if (${Z}) ${Q}`}}let F=!1,Y;if(A[0]==="."&&h(A[2],"await")===!0){F=!0;let[R,K]=A.slice(1),H=this.generate(R,"value");Y=`${y.NUMBER_LITERAL_RE.test(H)||(this.is(R,"object")||this.is(R,"await")||this.is(R,"yield"))?`(${H})`:H}.${S(K)}`}else Y=this.generate(A,"value");let _=U.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),X=`${Y}(${_})`;return F?`await ${X}`:X}throw Error(`Unknown s-expression type: ${A}`)}generateProgram($,W,A,U){let u="",f=[],F=[],Y=[];for(let J of W){if(!Array.isArray(J)){Y.push(J);continue}let Q=J[0];if(Q==="import")f.push(J);else if(Q==="export"||Q==="export-default"||Q==="export-all"||Q==="export-from")F.push(J);else Y.push(J)}let _=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],X=Y.map((J,Q)=>{let D=Y.length===1&&f.length===0&&F.length===0,M=this.is(J,"object"),q=M&&J.length===2&&Array.isArray(J[1])&&Array.isArray(J[1][1])&&J[1][1][0]==="comprehension",O=this.is(J,"comprehension")||this.is(J,"object-comprehension")||this.is(J,"do-iife"),z=this.programVars.size===0,E=D&&M&&z&&!O&&!q,w=Q===Y.length-1&&O,G;if(E)G=`(${this.generate(J,"value")})`;else if(w)G=this.generate(J,"value");else G=this.generate(J,"statement");if(G&&!G.endsWith(";")){let B=Array.isArray(J)?J[0]:null;if(!_.includes(B)||!G.endsWith("}"))G+=";"}let I=Array.isArray(J)?J.loc:null;return{code:G,loc:I}}),R=X.map((J)=>J.code).join(`
|
|
118
|
+
`),K=!1;if(f.length>0)u+=f.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))).join(`
|
|
119
|
+
`),K=!0;if(this.programVars.size>0){let J=Array.from(this.programVars).sort().join(", ");if(K)u+=`
|
|
120
|
+
`;u+=`let ${J};
|
|
121
|
+
`,K=!0}let H=this.options.skipPreamble;if(!H){if(K)u+=`
|
|
122
|
+
`;if(u+=H1(),K=!0,this.helpers.has("slice"))u+=`const slice = [].slice;
|
|
123
|
+
`,K=!0;if(this.helpers.has("modulo"))u+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
124
|
+
`,K=!0;if(this.helpers.has("toMatchable"))u+=`const toMatchable = (v, allowNewlines) => {
|
|
125
125
|
`,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
126
126
|
`,u+=` if (v == null) return "";
|
|
127
127
|
`,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
@@ -135,19 +135,19 @@ if (typeof globalThis !== 'undefined') {
|
|
|
135
135
|
`,u+=` }
|
|
136
136
|
`,u+=` return "";
|
|
137
137
|
`,u+=`};
|
|
138
|
-
`,
|
|
139
|
-
`+F.map((
|
|
138
|
+
`,K=!0}let Z="";if(F.length>0)Z=`
|
|
139
|
+
`+F.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))).join(`
|
|
140
140
|
`);if(this.usesReactivity&&!H){if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
141
|
-
`;else u+=this.getReactiveRuntime();
|
|
142
|
-
`;else u+=this.getComponentRuntime();
|
|
141
|
+
`;else u+=this.getReactiveRuntime();K=!0}if(this.usesTemplates&&!H){if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
|
|
142
|
+
`;else u+=this.getComponentRuntime();K=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!H)u+=`var DATA;
|
|
143
143
|
_setDataSection();
|
|
144
|
-
`,
|
|
144
|
+
`,K=!0;if(K&&u.length>0)u+=`
|
|
145
145
|
`;if(this._stmtEntries=X,this._preambleLines=u.length===0?0:u.split(`
|
|
146
146
|
`).length-1,u+=R,u+=Z,this.dataSection!==null&&this.dataSection!==void 0)u+=`
|
|
147
147
|
|
|
148
148
|
function _setDataSection() {
|
|
149
149
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
150
|
-
}`;return u}generateBinaryOp($,W,A,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 _=this.generate(u[1],"value"),X=this.generate(u[2],"value"),R=this.generate(f,"value");return`((${_} ${Y} ${X}) && (${X} ${$} ${R}))`}}if($==="!?"){let Y=this.generate(u,"value"),_=this.generate(f,"value");return`(${Y} !== undefined ? ${Y} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[A,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(A,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[A,U]=W;this.helpers.add("modulo");let u=this.generate(A,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[A,U]=W;return`Math.floor(${this.generate(A,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[A,U]=W,u=this.generate(A,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,A,U){let[u,f]=W,F=$==="?="?"??=":$,Y=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&V(u,"await")!==void 0&&!Y){let Q=V(u,"await")===!0?"!":"&";throw Error(`Cannot use ${Q} sigil in variable declaration '${S(u)}'.`)}if(u instanceof String&&V(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let _=this.is(u,"array",0),X=this.is(u,"object",0);if(_||X){let Q=this.generate(f,"value");return X&&A==="statement"?`(${Q})`:Q}if(Array.isArray(f)&&F==="="&&f[0]==="control"){let[,Q,D,M]=f,q=S(Q),O=M[0]==="return",z=this.generate(u,"value"),E=this.generate(D,"value"),P=M.length>1?M[1]:null,J=O?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(A==="value"){if(q==="??")return`(() => { const __v = ${E}; if (__v == null) ${J}; return (${z} = __v); })()`;if(q==="||")return`(() => { const __v = ${E}; if (!__v) ${J}; return (${z} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${J}; return (${z} = __v); })()`}if(q==="??")return`if ((${z} = ${E}) == null) ${J}`;if(q==="||")return`if (!(${z} = ${E})) ${J}`;return`if ((${z} = ${E})) ${J}`}if(this.is(u,"array")){let Q=u.slice(1).findIndex((D)=>this.is(D,"...")||D==="...");if(Q!==-1&&Q<u.length-2){let D=u.slice(1),M=D.slice(Q+1),q=M.length;if(q>0){let O=this.generate(f,"value"),E=D.slice(0,Q).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=M.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),D.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 J=D[Q],G=this.is(J,"...")?J[1]:null,I=[];if(E)I.push(`[${E}] = ${O}`);if(G)I.push(`[...${G}] = ${O}.slice(${Q}, -${q})`);return I.push(`[${P}] = slice.call(${O}, -${q})`),I.join(", ")}}}if(A==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[Q,D,M]=f;if(this.is(M,"if")&&M.length===3){let[,q,O]=M,z=Array.isArray(O)&&O.length===1?O[0]:O,E=[Q,D,z],P=this.generate(u,"value"),J=this.generate(q,"value"),G=this.generate(E,"value");return`if (${J}) ${P} = ${G}`}}if(A==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[Q,D,M]=f,q=Array.isArray(M)&&M.length===1&&(!Array.isArray(M[0])||M[0][0]!=="block");if(Q==="if"&&q){let O=Array.isArray(M)&&M.length===1?M[0]:M,z=this.generate(u,"value"),E=this.unwrapLogical(this.generate(D,"value")),P=this.generate(O,"value");return`if (${E}) ${z} = ${P}`}}let R;if(u instanceof String&&V(u,"await")!==void 0)R=S(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))R=`${u}.value`;else R=this.generate(u,"value");let w=this.generate(f,"value");if(!this.is(f,"object"))w=this.unwrap(w);let Z=A==="value",K=A==="statement"&&this.is(u,"object");if(Z||K)return`(${R} ${F} ${w})`;return`${R} ${F} ${w}`}generatePropertyAccess($,W,A,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"),_=y.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${F})`:F;if(V(f,"await")===!0)return`await ${_}.${S(f)}()`;if(V(f,"predicate"))return`(${_}.${S(f)} != null)`;return`${_}.${S(f)}`}generateOptionalProperty($,W){let[A,U]=W;return`${this.generate(A,"value")}?.${U}`}generateRegexIndex($,W){let[A,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(A,"value"),F=this.generate(U,"value"),Y=u!==null?this.generate(u,"value"):"0",_=F.includes("/m")?", true":"";return`(_ = toMatchable(${f}${_}).match(${F})) && _[${Y}]`}generateIndexAccess($,W){let[A,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(A,"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 R=this.generate(Y,"value");return u?`${f}.slice(0, +${R} + 1 || 9e9)`:`${f}.slice(0, ${R})`}if(Y===null)return`${f}.slice(${this.generate(F,"value")})`;let _=this.generate(F,"value");if(u&&this.is(Y,"-",1)&&(S(Y[1])??Y[1])==1)return`${f}.slice(${_})`;let X=this.generate(Y,"value");return u?`${f}.slice(${_}, +${X} + 1 || 9e9)`:`${f}.slice(${_}, ${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(A,"value")}.at(-${u})`}return`${this.generate(A,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[A,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(A,"value")}?.at(-${u})`}return`${this.generate(A,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[A,...U]=W;return`${this.generate(A,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,A,U){let[u,f,F]=W,Y=V(u,"await")===!0,_=S(u),X=this.generateParamList(f),R=this.generateFunctionBody(F,f,Y),w=this.containsAwait(F),H=this.containsYield(F);return`${w?"async ":""}function${H?"*":""} ${_}(${X}) ${R}`}generateThinArrow($,W,A,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),_=this.generateFunctionBody(f,u,F),X=this.containsAwait(f),R=this.containsYield(f),w=`${X?"async ":""}function${R?"*":""}(${Y}) ${_}`;return A==="value"?`(${w})`:w}generateFatArrow($,W,A,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})`,w=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 K=this.generate(Z,"value");if(K[0]==="{")K=`(${K})`;return`${w}${X} => ${K}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${w}${X} => ${Z}`}}let H=this.generateFunctionBody(f,u,F);return`${w}${X} => ${H}`}generateReturn($,W,A,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 _=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate(f,"value")}) return ${this.generate(_,"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[A,U]=W;this.usesReactivity=!0;let u=S(A)??A;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[A,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=S(A)??A;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[A,U]=W;return`const ${S(A)??A} = ${this.generate(U,"value")}`}generateEffect($,W){let[A,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(A)return`const ${S(A)??this.generate(A,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(A)return`const ${S(A)??this.generate(A,"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,A){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let Y=this.generate(u[1],"value"),_=this.generate(u[2],"value"),X=this.generate(f,"value");return`${Y} = (${this.unwrap(this.generate(U,"value"))} ? ${_} : ${X})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[A,U]=W,u=this.generate(A,"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"),_=U.slice(1).map((X)=>this.generate(X,"value"));return`${Y}(${u}, ${_.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[A,U]=W;return`for (let it = 0; it < ${this.generate(A,"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,A,U){let[u,f,...F]=W;return A==="value"?this.generateIfAsExpression(u,f,F):this.generateIfAsStatement(u,f,F)}generateForIn($,W,A,U){let[u,f,F,Y,_]=W;if(A==="value"&&this.comprehensionDepth===0){let D=["for-in",u,f,F];return this.generate(["comprehension",_,[D],Y?[Y]:[]],A)}let X=Array.isArray(u)?u:[u],R=X.length===0,[w,H]=R?["_i",null]:X,Z=this.is(w,"array")||this.is(w,"object")?this.generateDestructuringPattern(w):w;if(F&&F!==null){let D=this.generate(f,"value"),M=H||"_i",q=this.generate(F,"value"),O=this.is(F,"-",1),z=O&&(F[1]==="1"||F[1]===1||S(F[1])==="1"),E=!O&&(F==="1"||F===1||S(F)==="1"),P;if(z)P=`for (let ${M} = ${D}.length - 1; ${M} >= 0; ${M}--) `;else if(E)P=`for (let ${M} = 0; ${M} < ${D}.length; ${M}++) `;else if(O)P=`for (let ${M} = ${D}.length - 1; ${M} >= 0; ${M} += ${q}) `;else P=`for (let ${M} = 0; ${M} < ${D}.length; ${M} += ${q}) `;if(this.is(_,"block")){let J=_.slice(1);this.indentLevel++;let G=[];if(!R)G.push(`const ${Z} = ${D}[${M}];`);if(Y)G.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,G.push(...this.formatStatements(J)),this.indentLevel--,G.push(this.indent()+"}");else G.push(...J.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,P+`{
|
|
150
|
+
}`;return u}generateBinaryOp($,W,A,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 _=this.generate(u[1],"value"),X=this.generate(u[2],"value"),R=this.generate(f,"value");return`((${_} ${Y} ${X}) && (${X} ${$} ${R}))`}}if($==="!?"){let Y=this.generate(u,"value"),_=this.generate(f,"value");return`(${Y} !== undefined ? ${Y} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[A,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(A,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[A,U]=W;this.helpers.add("modulo");let u=this.generate(A,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[A,U]=W;return`Math.floor(${this.generate(A,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[A,U]=W,u=this.generate(A,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,A,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 Q=h(u,"await")===!0?"!":"&";throw Error(`Cannot use ${Q} sigil in variable declaration '${S(u)}'.`)}if(u instanceof String&&h(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let _=this.is(u,"array",0),X=this.is(u,"object",0);if(_||X){let Q=this.generate(f,"value");return X&&A==="statement"?`(${Q})`:Q}if(Array.isArray(f)&&F==="="&&f[0]==="control"){let[,Q,D,M]=f,q=S(Q),O=M[0]==="return",z=this.generate(u,"value"),E=this.generate(D,"value"),P=M.length>1?M[1]:null,w=O?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(A==="value"){if(q==="??")return`(() => { const __v = ${E}; if (__v == null) ${w}; return (${z} = __v); })()`;if(q==="||")return`(() => { const __v = ${E}; if (!__v) ${w}; return (${z} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${w}; return (${z} = __v); })()`}if(q==="??")return`if ((${z} = ${E}) == null) ${w}`;if(q==="||")return`if (!(${z} = ${E})) ${w}`;return`if ((${z} = ${E})) ${w}`}if(this.is(u,"array")){let Q=u.slice(1).findIndex((D)=>this.is(D,"...")||D==="...");if(Q!==-1&&Q<u.length-2){let D=u.slice(1),M=D.slice(Q+1),q=M.length;if(q>0){let O=this.generate(f,"value"),E=D.slice(0,Q).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=M.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),D.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=D[Q],G=this.is(w,"...")?w[1]:null,I=[];if(E)I.push(`[${E}] = ${O}`);if(G)I.push(`[...${G}] = ${O}.slice(${Q}, -${q})`);return I.push(`[${P}] = slice.call(${O}, -${q})`),I.join(", ")}}}if(A==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[Q,D,M]=f;if(this.is(M,"if")&&M.length===3){let[,q,O]=M,z=Array.isArray(O)&&O.length===1?O[0]:O,E=[Q,D,z],P=this.generate(u,"value"),w=this.generate(q,"value"),G=this.generate(E,"value");return`if (${w}) ${P} = ${G}`}}if(A==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[Q,D,M]=f,q=Array.isArray(M)&&M.length===1&&(!Array.isArray(M[0])||M[0][0]!=="block");if(Q==="if"&&q){let O=Array.isArray(M)&&M.length===1?M[0]:M,z=this.generate(u,"value"),E=this.unwrapLogical(this.generate(D,"value")),P=this.generate(O,"value");return`if (${E}) ${z} = ${P}`}}let R;if(u instanceof String&&h(u,"await")!==void 0)R=S(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))R=`${u}.value`;else R=this.generate(u,"value");let K=this.generate(f,"value");if(!this.is(f,"object"))K=this.unwrap(K);let Z=A==="value",J=A==="statement"&&this.is(u,"object");if(Z||J)return`(${R} ${F} ${K})`;return`${R} ${F} ${K}`}generatePropertyAccess($,W,A,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"),_=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 ${_}.${S(f)}()`;if(h(f,"predicate"))return`(${_}.${S(f)} != null)`;return`${_}.${S(f)}`}generateOptionalProperty($,W){let[A,U]=W;return`${this.generate(A,"value")}?.${U}`}generateRegexIndex($,W){let[A,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(A,"value"),F=this.generate(U,"value"),Y=u!==null?this.generate(u,"value"):"0",_=F.includes("/m")?", true":"";return`(_ = toMatchable(${f}${_}).match(${F})) && _[${Y}]`}generateIndexAccess($,W){let[A,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(A,"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 R=this.generate(Y,"value");return u?`${f}.slice(0, +${R} + 1 || 9e9)`:`${f}.slice(0, ${R})`}if(Y===null)return`${f}.slice(${this.generate(F,"value")})`;let _=this.generate(F,"value");if(u&&this.is(Y,"-",1)&&(S(Y[1])??Y[1])==1)return`${f}.slice(${_})`;let X=this.generate(Y,"value");return u?`${f}.slice(${_}, +${X} + 1 || 9e9)`:`${f}.slice(${_}, ${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(A,"value")}.at(-${u})`}return`${this.generate(A,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[A,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(A,"value")}?.at(-${u})`}return`${this.generate(A,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[A,...U]=W;return`${this.generate(A,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,A,U){let[u,f,F]=W,Y=h(u,"await")===!0,_=S(u),X=this.generateParamList(f),R=this.generateFunctionBody(F,f,Y),K=this.containsAwait(F),H=this.containsYield(F);return`${K?"async ":""}function${H?"*":""} ${_}(${X}) ${R}`}generateThinArrow($,W,A,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),_=this.generateFunctionBody(f,u,F),X=this.containsAwait(f),R=this.containsYield(f),K=`${X?"async ":""}function${R?"*":""}(${Y}) ${_}`;return A==="value"?`(${K})`:K}generateFatArrow($,W,A,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})`,K=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 J=this.generate(Z,"value");if(J[0]==="{")J=`(${J})`;return`${K}${X} => ${J}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${K}${X} => ${Z}`}}let H=this.generateFunctionBody(f,u,F);return`${K}${X} => ${H}`}generateReturn($,W,A,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 _=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate(f,"value")}) return ${this.generate(_,"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[A,U]=W;this.usesReactivity=!0;let u=S(A)??A;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[A,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=S(A)??A;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[A,U]=W;return`const ${S(A)??A} = ${this.generate(U,"value")}`}generateEffect($,W){let[A,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(A)return`const ${S(A)??this.generate(A,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(A)return`const ${S(A)??this.generate(A,"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,A){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let Y=this.generate(u[1],"value"),_=this.generate(u[2],"value"),X=this.generate(f,"value");return`${Y} = (${this.unwrap(this.generate(U,"value"))} ? ${_} : ${X})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[A,U]=W,u=this.generate(A,"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"),_=U.slice(1).map((X)=>this.generate(X,"value"));return`${Y}(${u}, ${_.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[A,U]=W;return`for (let it = 0; it < ${this.generate(A,"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,A,U){let[u,f,...F]=W;return A==="value"?this.generateIfAsExpression(u,f,F):this.generateIfAsStatement(u,f,F)}generateForIn($,W,A,U){let[u,f,F,Y,_]=W;if(A==="value"&&this.comprehensionDepth===0){let D=["for-in",u,f,F];return this.generate(["comprehension",_,[D],Y?[Y]:[]],A)}let X=Array.isArray(u)?u:[u],R=X.length===0,[K,H]=R?["_i",null]:X,Z=this.is(K,"array")||this.is(K,"object")?this.generateDestructuringPattern(K):K;if(F&&F!==null){let D=this.generate(f,"value"),M=H||"_i",q=this.generate(F,"value"),O=this.is(F,"-",1),z=O&&(F[1]==="1"||F[1]===1||S(F[1])==="1"),E=!O&&(F==="1"||F===1||S(F)==="1"),P;if(z)P=`for (let ${M} = ${D}.length - 1; ${M} >= 0; ${M}--) `;else if(E)P=`for (let ${M} = 0; ${M} < ${D}.length; ${M}++) `;else if(O)P=`for (let ${M} = ${D}.length - 1; ${M} >= 0; ${M} += ${q}) `;else P=`for (let ${M} = 0; ${M} < ${D}.length; ${M} += ${q}) `;if(this.is(_,"block")){let w=_.slice(1);this.indentLevel++;let G=[];if(!R)G.push(`const ${Z} = ${D}[${M}];`);if(Y)G.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,G.push(...this.formatStatements(w)),this.indentLevel--,G.push(this.indent()+"}");else G.push(...w.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,P+`{
|
|
151
151
|
${G.map((I)=>this.indent()+I).join(`
|
|
152
152
|
`)}
|
|
153
153
|
${this.indent()}}`}if(R)return Y?P+`{ if (${this.generate(Y,"value")}) ${this.generate(_,"statement")}; }`:P+`{ ${this.generate(_,"statement")}; }`;return Y?P+`{ const ${Z} = ${D}[${M}]; if (${this.generate(Y,"value")}) ${this.generate(_,"statement")}; }`:P+`{ const ${Z} = ${D}[${M}]; ${this.generate(_,"statement")}; }`}if(H){let D=this.generate(f,"value"),M=`for (let ${H} = 0; ${H} < ${D}.length; ${H}++) `;if(this.is(_,"block")){if(M+=`{
|
|
@@ -158,38 +158,38 @@ ${this.indent()}}`}if(R)return Y?P+`{ if (${this.generate(Y,"value")}) ${this.ge
|
|
|
158
158
|
`,this.indentLevel--,M+=this.indent()+`}
|
|
159
159
|
`;else M+=this.formatStatements(_.slice(1)).join(`
|
|
160
160
|
`)+`
|
|
161
|
-
`;this.indentLevel--,M+=this.indent()+"}"}else M+=Y?`{ const ${Z} = ${D}[${H}]; if (${this.unwrap(this.generate(Y,"value"))}) ${this.generate(_,"statement")}; }`:`{ const ${Z} = ${D}[${H}]; ${this.generate(_,"statement")}; }`;return M}let
|
|
162
|
-
${Z.map((
|
|
161
|
+
`;this.indentLevel--,M+=this.indent()+"}"}else M+=Y?`{ const ${Z} = ${D}[${H}]; if (${this.unwrap(this.generate(Y,"value"))}) ${this.generate(_,"statement")}; }`:`{ const ${Z} = ${D}[${H}]; ${this.generate(_,"statement")}; }`;return M}let J=Array.isArray(f)&&f[0];if(J instanceof String)J=S(J);if(J===".."||J==="..."){let D=J==="...",[M,q]=f.slice(1),O=(z)=>typeof z==="number"||typeof z==="string"&&!z.includes("(")||z instanceof String&&!S(z).includes("(")||this.is(z,".");if(O(M)&&O(q)){let z=this.generate(M,"value"),E=this.generate(q,"value"),P=D?"<":"<=",w=F?`${Z} += ${this.generate(F,"value")}`:`${Z}++`,G=`for (let ${Z} = ${z}; ${Z} ${P} ${E}; ${w}) `;return G+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),G}}let Q=`for (const ${Z} of ${this.generate(f,"value")}) `;return Q+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),Q}generateForOf($,W,A,U){let[u,f,F,Y,_]=W;if(A==="value"&&this.comprehensionDepth===0){let Z=["for-of",u,f,F];return this.generate(["comprehension",_,[Z],Y?[Y]:[]],A)}let[X,R]=Array.isArray(u)?u:[u],K=this.generate(f,"value"),H=`for (const ${X} in ${K}) `;if(F&&!R&&!Y){if(this.is(_,"block")){this.indentLevel++;let Z=[`if (!Object.hasOwn(${K}, ${X})) continue;`,..._.slice(1).map((J)=>this.addSemicolon(J,this.generate(J,"statement")))];return this.indentLevel--,H+`{
|
|
162
|
+
${Z.map((J)=>this.indent()+J).join(`
|
|
163
163
|
`)}
|
|
164
|
-
${this.indent()}}`}return H+`{ if (!Object.hasOwn(${
|
|
164
|
+
${this.indent()}}`}return H+`{ if (!Object.hasOwn(${K}, ${X})) continue; ${this.generate(_,"statement")}; }`}if(R){if(this.is(_,"block")){let J=_.slice(1);this.indentLevel++;let Q=[];if(F)Q.push(`if (!Object.hasOwn(${K}, ${X})) continue;`);if(Q.push(`const ${R} = ${K}[${X}];`),Y)Q.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,Q.push(...J.map((D)=>this.addSemicolon(D,this.generate(D,"statement")))),this.indentLevel--,Q.push(this.indent()+"}");else Q.push(...J.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))));return this.indentLevel--,H+`{
|
|
165
165
|
${Q.map((D)=>this.indent()+D).join(`
|
|
166
166
|
`)}
|
|
167
|
-
${this.indent()}}`}let Z="";if(F)Z+=`if (!Object.hasOwn(${
|
|
167
|
+
${this.indent()}}`}let Z="";if(F)Z+=`if (!Object.hasOwn(${K}, ${X})) continue; `;if(Z+=`const ${R} = ${K}[${X}]; `,Y)Z+=`if (${this.generate(Y,"value")}) `;return Z+=`${this.generate(_,"statement")};`,H+`{ ${Z} }`}return H+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),H}generateForAs($,W,A,U){let u=Array.isArray(W[0])?W[0]:[W[0]],[f]=u,F=W[1],Y=W[2],_=W[3],X=W[4],R=!1,K=[];if(this.is(f,"array")){let D=f.slice(1),M=D.findIndex((q)=>this.is(q,"...")||q==="...");if(M!==-1&&M<D.length-1){R=!0;let q=D.slice(M+1),O=q.length,z=D.slice(0,M),E=D[M],P=this.is(E,"...")?E[1]:"_rest",w=z.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),G=w?`${w}, ...${P}`:`...${P}`,I=q.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");K.push(`[${G}] = _item`),K.push(`[${I}] = ${P}.splice(-${O})`),this.helpers.add("slice"),D.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 H=this.generate(F,"value"),Z=Y?"await ":"",J;if(R)J="_item";else if(this.is(f,"array")||this.is(f,"object"))J=this.generateDestructuringPattern(f);else J=f;let Q=`for ${Z}(const ${J} of ${H}) `;if(R&&K.length>0){let D=this.unwrapBlock(X),M=this.withIndent(()=>[...K.map((q)=>this.indent()+q+";"),...this.formatStatements(D)]);Q+=`{
|
|
168
168
|
${M.join(`
|
|
169
169
|
`)}
|
|
170
|
-
${this.indent()}}`}else Q+=_?this.generateLoopBodyWithGuard(X,_):this.generateLoopBody(X);return Q}generateWhile($,W){let A=W[0],U=W.length===3?W[1]:null,u=W[W.length-1];return`while (${this.unwrap(this.generate(A,"value"))}) `+(U?this.generateLoopBodyWithGuard(u,U):this.generateLoopBody(u))}generateRange($,W){if($==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[F,Y]=W,_=this.generate(F,"value"),X=this.generate(Y,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${_}, ${X})`}let[A,U]=W,u=this.generate(A,"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[A]=W;if(typeof A==="string"||A instanceof String)return`!${this.generate(A,"value")}`;if(Array.isArray(A)){if([".","?.","[]","optindex","optcall"].includes(A[0]))return`!${this.generate(A,"value")}`}let U=this.generate(A,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,W){return`(~${this.generate(W[0],"value")})`}generateIncDec($,W){let[A,U]=W,u=this.generate(A,"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,A,U){let[u,f]=W,F=
|
|
170
|
+
${this.indent()}}`}else Q+=_?this.generateLoopBodyWithGuard(X,_):this.generateLoopBody(X);return Q}generateWhile($,W){let A=W[0],U=W.length===3?W[1]:null,u=W[W.length-1];return`while (${this.unwrap(this.generate(A,"value"))}) `+(U?this.generateLoopBodyWithGuard(u,U):this.generateLoopBody(u))}generateRange($,W){if($==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[F,Y]=W,_=this.generate(F,"value"),X=this.generate(Y,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${_}, ${X})`}let[A,U]=W,u=this.generate(A,"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[A]=W;if(typeof A==="string"||A instanceof String)return`!${this.generate(A,"value")}`;if(Array.isArray(A)){if([".","?.","[]","optindex","optcall"].includes(A[0]))return`!${this.generate(A,"value")}`}let U=this.generate(A,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,W){return`(~${this.generate(W[0],"value")})`}generateIncDec($,W){let[A,U]=W,u=this.generate(A,"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,A,U){let[u,f]=W,F=h(U[0],"invert"),Y=`(${this.generate(u,"value")} instanceof ${this.generate(f,"value")})`;return F?`(!${Y})`:Y}generateIn($,W,A,U){let[u,f]=W,F=this.generate(u,"value"),Y=h(U[0],"invert");if(this.is(f,"object")){let R=`(${F} in ${this.generate(f,"value")})`;return Y?`(!${R})`:R}let _=this.generate(f,"value"),X=`(Array.isArray(${_}) || typeof ${_} === 'string' ? ${_}.includes(${F}) : (${F} in ${_}))`;return Y?`(!${X})`:X}generateOf($,W,A,U){let[u,f]=W,F=this.generate(u,"value"),Y=this.generate(f,"value"),_=h(U[0],"invert"),X=`(${F} in ${Y})`;return _?`(!${X})`:X}generateRegexMatch($,W){let[A,U]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(U,"value"),f=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(A,"value")}${f}).match(${u}))`}generateNew($,W){let[A]=W;if(this.is(A,".")||this.is(A,"?.")){let[U,u,f]=A;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${f}`;return`new ${this.generate(u,"value")}.${f}`}if(Array.isArray(A)){let[U,...u]=A;return`new ${this.generate(U,"value")}(${u.map((f)=>this.unwrap(this.generate(f,"value"))).join(", ")})`}return`new ${this.generate(A,"value")}()`}generateLogicalAnd($,W,A,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,A,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 A=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 A?`[${U},]`:`[${U}]`}generateObject($,W,A){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[u,f]=W[0],[,F,Y,_]=f;return this.generate(["object-comprehension",u,F,Y,_],A)}return`{${W.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[f,F,Y]=u,_;if(this.is(f,"dynamicKey"))_=`[${this.generate(f[1],"value")}]`;else if(this.is(f,"str"))_=`[${this.generate(f,"value")}]`;else this.suppressReactiveUnwrap=!0,_=this.generate(f,"value"),this.suppressReactiveUnwrap=!1;let X=this.generate(F,"value");if(Y==="=")return`${_} = ${X}`;if(Y===":")return`${_}: ${X}`;if(_===X&&!Array.isArray(f))return _;return`${_}: ${X}`}).join(", ")}}`}generateBlock($,W,A){if(A==="statement")return`{
|
|
171
171
|
${this.withIndent(()=>this.formatStatements(W)).join(`
|
|
172
172
|
`)}
|
|
173
173
|
${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],A);let U=W[W.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let f=W.map((F)=>this.addSemicolon(F,this.generate(F,"statement")));return`{
|
|
174
174
|
${this.withIndent(()=>f.map((F)=>this.indent()+F).join(`
|
|
175
175
|
`))}
|
|
176
|
-
${this.indent()}}`}return`(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,W,A){let U=A==="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[F,Y]=W[1];if(u+=" catch",F&&(this.is(F,"object")||this.is(F,"array"))){u+=" (error)";let _=`(${this.generate(F,"value")} = error)`;Y=this.is(Y,"block")?["block",_,...Y.slice(1)]:["block",_,Y]}else if(F)u+=` (${F})`;u+=" "+(U&&this.is(Y,"block")?this.generateBlockWithReturns(Y):this.generate(Y,"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(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,W,A){let[U]=W;if(Array.isArray(U)){let f=U,F=null;if(U[0]==="new"&&Array.isArray(U[1])&&U[1][0]==="if")F="new",f=U[1];else if(U[0]==="if")f=U;if(f[0]==="if"){let[,Y,_]=f,X=Array.isArray(_)&&_.length===1?_[0]:_;U=F==="new"?["new",X]:X;let R=this.generate(Y,"value"),
|
|
177
|
-
${this.indent()} ${
|
|
178
|
-
${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return A==="value"?`(() => { ${u}; })()`:u}generateControl($,W,A){let[U,u,f]=W,F=S(U),Y=f[0]==="return",_=this.generate(u,"value"),X=f.length>1?f[1]:null,R=Y?X?`return ${this.generate(X,"value")}`:"return":X?`throw ${this.generate(X,"value")}`:"throw new Error()",
|
|
179
|
-
`;this.indentLevel++;for(let Y of u){let[,_,X]=Y;for(let R of _){let
|
|
176
|
+
${this.indent()}}`}return`(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,W,A){let U=A==="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[F,Y]=W[1];if(u+=" catch",F&&(this.is(F,"object")||this.is(F,"array"))){u+=" (error)";let _=`(${this.generate(F,"value")} = error)`;Y=this.is(Y,"block")?["block",_,...Y.slice(1)]:["block",_,Y]}else if(F)u+=` (${F})`;u+=" "+(U&&this.is(Y,"block")?this.generateBlockWithReturns(Y):this.generate(Y,"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(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,W,A){let[U]=W;if(Array.isArray(U)){let f=U,F=null;if(U[0]==="new"&&Array.isArray(U[1])&&U[1][0]==="if")F="new",f=U[1];else if(U[0]==="if")f=U;if(f[0]==="if"){let[,Y,_]=f,X=Array.isArray(_)&&_.length===1?_[0]:_;U=F==="new"?["new",X]:X;let R=this.generate(Y,"value"),K=`throw ${this.generate(U,"value")}`;return`if (${R}) {
|
|
177
|
+
${this.indent()} ${K};
|
|
178
|
+
${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return A==="value"?`(() => { ${u}; })()`:u}generateControl($,W,A){let[U,u,f]=W,F=S(U),Y=f[0]==="return",_=this.generate(u,"value"),X=f.length>1?f[1]:null,R=Y?X?`return ${this.generate(X,"value")}`:"return":X?`throw ${this.generate(X,"value")}`:"throw new Error()",K=this.wrapForCondition(_);if(A==="value"){if(F==="??")return`(() => { const __v = ${_}; if (__v == null) ${R}; return __v; })()`;if(F==="||")return`(() => { const __v = ${_}; if (!__v) ${R}; return __v; })()`;return`(() => { const __v = ${_}; if (__v) ${R}; return __v; })()`}if(F==="??")return`if (${K} == null) ${R}`;if(F==="||")return`if (!${K}) ${R}`;return`if (${K}) ${R}`}generateSwitch($,W,A){let[U,u,f]=W;if(U===null)return this.generateSwitchAsIfChain(u,f,A);let F=`switch (${this.generate(U,"value")}) {
|
|
179
|
+
`;this.indentLevel++;for(let Y of u){let[,_,X]=Y;for(let R of _){let K=S(R)??R,H;if(Array.isArray(K))H=this.generate(K,"value");else if(typeof K==="string"&&(K.startsWith('"')||K.startsWith("'")))H=`'${K.slice(1,-1)}'`;else H=this.generate(K,"value");F+=this.indent()+`case ${H}:
|
|
180
180
|
`}this.indentLevel++,F+=this.generateSwitchCaseBody(X,A),this.indentLevel--}if(f)F+=this.indent()+`default:
|
|
181
|
-
`,this.indentLevel++,F+=this.generateSwitchCaseBody(f,A),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",A==="value")return`(${u.some((_)=>this.containsAwait(_[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${F} })()`;return F}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,W,A){let U=Array.isArray($)?$:[$],u=U.length===0,[f,F]=u?["_i",null]:U,Y=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(A&&A!==null){let _=Array.isArray(W)&&W[0];if(_ instanceof String)_=S(_);if(_===".."||_==="..."){let q=_==="...",[O,z]=W.slice(1),E=this.generate(O,"value"),P=this.generate(z,"value"),
|
|
181
|
+
`,this.indentLevel++,F+=this.generateSwitchCaseBody(f,A),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",A==="value")return`(${u.some((_)=>this.containsAwait(_[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${F} })()`;return F}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,W,A){let U=Array.isArray($)?$:[$],u=U.length===0,[f,F]=u?["_i",null]:U,Y=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(A&&A!==null){let _=Array.isArray(W)&&W[0];if(_ instanceof String)_=S(_);if(_===".."||_==="..."){let q=_==="...",[O,z]=W.slice(1),E=this.generate(O,"value"),P=this.generate(z,"value"),w=this.generate(A,"value");return{header:`for (let ${Y} = ${E}; ${Y} ${q?"<":"<="} ${P}; ${Y} += ${w})`,setup:null}}let R=this.generate(W,"value"),K=F||"_i",H=this.generate(A,"value"),Z=this.is(A,"-",1),J=Z&&(A[1]==="1"||A[1]===1||S(A[1])==="1"),Q=!Z&&(A==="1"||A===1||S(A)==="1"),D=J?`${K}--`:Q?`${K}++`:`${K} += ${H}`;return{header:Z?`for (let ${K} = ${R}.length - 1; ${K} >= 0; ${D})`:`for (let ${K} = 0; ${K} < ${R}.length; ${D})`,setup:u?null:`const ${Y} = ${R}[${K}];`}}if(F){let _=this.generate(W,"value");return{header:`for (let ${F} = 0; ${F} < ${_}.length; ${F}++)`,setup:`const ${Y} = ${_}[${F}];`}}return{header:`for (const ${Y} of ${this.generate(W,"value")})`,setup:null}}_forOfHeader($,W,A){let U=Array.isArray($)?$:[$],[u,f]=U,F=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,Y=this.generate(W,"value");return{header:`for (const ${F} in ${Y})`,own:A,vv:f,oc:Y,kvp:F}}_forAsHeader($,W,A){let U=Array.isArray($)?$:[$],[u]=U,f=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${A?"await ":""}(const ${f} of ${this.generate(W,"value")})`}}generateComprehension($,W,A){let[U,u,f]=W;if(A==="statement")return this.generateComprehensionAsLoop(U,u,f);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,u,f,this.comprehensionTarget);let Y=`(${this.containsAwait(U)?"async ":""}() => {
|
|
182
182
|
`;this.indentLevel++,this.comprehensionDepth++,Y+=this.indent()+`const result = [];
|
|
183
|
-
`;for(let R of u){let[
|
|
183
|
+
`;for(let R of u){let[K,H,Z,J]=R;if(K==="for-in"){let{header:Q,setup:D}=this._forInHeader(H,Z,J);if(Y+=this.indent()+Q+` {
|
|
184
184
|
`,this.indentLevel++,D)Y+=this.indent()+D+`
|
|
185
|
-
`}else if(
|
|
185
|
+
`}else if(K==="for-of"){let{header:Q,own:D,vv:M,oc:q,kvp:O}=this._forOfHeader(H,Z,J);if(Y+=this.indent()+Q+` {
|
|
186
186
|
`,this.indentLevel++,D)Y+=this.indent()+`if (!Object.hasOwn(${q}, ${O})) continue;
|
|
187
187
|
`;if(M)Y+=this.indent()+`const ${M} = ${q}[${O}];
|
|
188
|
-
`}else if(
|
|
188
|
+
`}else if(K==="for-as"){let{header:Q}=this._forAsHeader(H,Z,R[3]);Y+=this.indent()+Q+` {
|
|
189
189
|
`,this.indentLevel++}}for(let R of f)Y+=this.indent()+`if (${this.generate(R,"value")}) {
|
|
190
|
-
`,this.indentLevel++;let _=(R)=>{if(typeof R==="string"&&(R==="break"||R==="continue"))return!0;if(!Array.isArray(R))return!1;if(["break","continue","return","throw"].includes(R[0]))return!0;if(R[0]==="if")return R.slice(1).some(_);return R.some(_)},X=["for-in","for-of","for-as","while","loop"];if(this.is(U,"block"))for(let R=0;R<U.length-1;R++){let
|
|
191
|
-
`;else if(Array.isArray(
|
|
192
|
-
`;else Y+=this.indent()+`result.push(${this.generate(
|
|
190
|
+
`,this.indentLevel++;let _=(R)=>{if(typeof R==="string"&&(R==="break"||R==="continue"))return!0;if(!Array.isArray(R))return!1;if(["break","continue","return","throw"].includes(R[0]))return!0;if(R[0]==="if")return R.slice(1).some(_);return R.some(_)},X=["for-in","for-of","for-as","while","loop"];if(this.is(U,"block"))for(let R=0;R<U.length-1;R++){let K=U[R+1];if(R!==U.length-2||_(K))Y+=this.indent()+this.generate(K,"statement")+`;
|
|
191
|
+
`;else if(Array.isArray(K)&&X.includes(K[0]))Y+=this.indent()+this.generate(K,"statement")+`;
|
|
192
|
+
`;else Y+=this.indent()+`result.push(${this.generate(K,"value")});
|
|
193
193
|
`}else if(_(U))Y+=this.indent()+this.generate(U,"statement")+`;
|
|
194
194
|
`;else if(Array.isArray(U)&&X.includes(U[0]))Y+=this.indent()+this.generate(U,"statement")+`;
|
|
195
195
|
`;else Y+=this.indent()+`result.push(${this.generate(U,"value")});
|
|
@@ -198,38 +198,38 @@ ${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return A==="value"
|
|
|
198
198
|
`;return Y+=this.indent()+`return result;
|
|
199
199
|
`,this.indentLevel--,this.comprehensionDepth--,Y+=this.indent()+"})()",Y}generateObjectComprehension($,W,A){let[U,u,f,F]=W,Y=`(() => {
|
|
200
200
|
`;this.indentLevel++,Y+=this.indent()+`const result = {};
|
|
201
|
-
`;for(let _ of f){let[X,R,
|
|
201
|
+
`;for(let _ of f){let[X,R,K,H]=_;if(X==="for-of"){let[Z,J]=R,Q=this.generate(K,"value");if(Y+=this.indent()+`for (const ${Z} in ${Q}) {
|
|
202
202
|
`,this.indentLevel++,H)Y+=this.indent()+`if (!Object.hasOwn(${Q}, ${Z})) continue;
|
|
203
|
-
`;if(
|
|
203
|
+
`;if(J)Y+=this.indent()+`const ${J} = ${Q}[${Z}];
|
|
204
204
|
`}}for(let _ of F)Y+=this.indent()+`if (${this.generate(_,"value")}) {
|
|
205
205
|
`,this.indentLevel++;Y+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(u,"value")};
|
|
206
206
|
`;for(let _=0;_<F.length;_++)this.indentLevel--,Y+=this.indent()+`}
|
|
207
207
|
`;for(let _=0;_<f.length;_++)this.indentLevel--,Y+=this.indent()+`}
|
|
208
208
|
`;return Y+=this.indent()+`return result;
|
|
209
209
|
`,this.indentLevel--,Y+=this.indent()+"})()",Y}generateClass($,W,A){let[U,u,...f]=W,F=U?`class ${U}`:"class";if(u)F+=` extends ${this.generate(u,"value")}`;if(F+=` {
|
|
210
|
-
`,f.length>0&&Array.isArray(f[0])){let Y=f[0];if(Y[0]==="block"){let _=Y.slice(1),X=_.length>0&&Array.isArray(_[0])&&_[0][0]==="object";if(X&&_.length===1){let R=_[0].slice(1);this.indentLevel++;let
|
|
211
|
-
`}else if(
|
|
210
|
+
`,f.length>0&&Array.isArray(f[0])){let Y=f[0];if(Y[0]==="block"){let _=Y.slice(1),X=_.length>0&&Array.isArray(_[0])&&_[0][0]==="object";if(X&&_.length===1){let R=_[0].slice(1);this.indentLevel++;let K=[];for(let[H,Z]of R){let J=this.is(H,".")&&H[1]==="this",Q=this.is(H,"computed"),D=this.extractMemberName(H);if(this.is(Z,"=>")&&!J&&!Q&&D!=="constructor")K.push(D)}for(let[H,Z]of R){let J=this.is(H,".")&&H[1]==="this",Q=this.is(H,"computed"),D=this.extractMemberName(H);if(this.is(Z,"->")||this.is(Z,"=>")){let[,M,q]=Z,O=this.containsAwait(q),z=this.containsYield(q),E=M,P=[];if(D==="constructor"){let I=!!u,B=I?new Map:null;E=M.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let T=N[2],L=I?`_${T}`:T;if(P.push(`this.${T} = ${L}`),I)B.set(T,L);return L}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let T=N[1][2],L=I?`_${T}`:T;if(P.push(`this.${T} = ${L}`),I)B.set(T,L);return["default",L,N[2]]}return N});for(let N of K)P.unshift(`this.${N} = this.${N}.bind(this)`);if(B?.size>0)this._atParamMap=B}let w=this.generateParamList(E),G=(J?"static ":"")+(O?"async ":"")+(z?"*":"");if(F+=this.indent()+`${G}${D}(${w}) `,!Q)this.currentMethodName=D;F+=this.generateMethodBody(q,P,D==="constructor",E),this._atParamMap=null,this.currentMethodName=null,F+=`
|
|
211
|
+
`}else if(J)F+=this.indent()+`static ${D} = ${this.generate(Z,"value")};
|
|
212
212
|
`;else F+=this.indent()+`${D} = ${this.generate(Z,"value")};
|
|
213
|
-
`}this.indentLevel--}else if(X){let R=_[0].slice(1),
|
|
214
|
-
`}else if(
|
|
213
|
+
`}this.indentLevel--}else if(X){let R=_[0].slice(1),K=_.slice(1);this.indentLevel++;for(let[H,Z]of R){let J=this.is(H,".")&&H[1]==="this",Q=this.extractMemberName(H);if(this.is(Z,"->")||this.is(Z,"=>")){let[,D,M]=Z,q=this.generateParamList(D),O=(J?"static ":"")+(this.containsAwait(M)?"async ":"")+(this.containsYield(M)?"*":"");F+=this.indent()+`${O}${Q}(${q}) `,this.currentMethodName=Q,F+=this.generateMethodBody(M,[],Q==="constructor",D),this.currentMethodName=null,F+=`
|
|
214
|
+
`}else if(J)F+=this.indent()+`static ${Q} = ${this.generate(Z,"value")};
|
|
215
215
|
`;else F+=this.indent()+`${Q} = ${this.generate(Z,"value")};
|
|
216
|
-
`}for(let H of
|
|
216
|
+
`}for(let H of K)if(this.is(H,"class")){let[,Z,J,...Q]=H;if(this.is(Z,".")&&Z[1]==="this")F+=this.indent()+`static ${Z[2]} = ${this.generate(["class",null,J,...Q],"value")};
|
|
217
217
|
`}else F+=this.indent()+this.generate(H,"statement")+`;
|
|
218
218
|
`;this.indentLevel--}else{this.indentLevel++;for(let R of _)if(this.is(R,"=")&&Array.isArray(R[1])&&R[1][0]==="."&&R[1][1]==="this")F+=this.indent()+`static ${R[1][2]} = ${this.generate(R[2],"value")};
|
|
219
219
|
`;else F+=this.indent()+this.generate(R,"statement")+`;
|
|
220
|
-
`;this.indentLevel--}}}return F+=this.indent()+"}",F}generateSuper($,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let A=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${A})`;return`super(${A})`}generateImport($,W,A,U){if(W.length===1){let Y=`import(${this.generate(W[0],"value")})`;if(
|
|
221
|
-
export default ${A[1]}`;return`export default ${this.generate(A,"statement")}`}generateExportAll($,W){return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom($,W){let[A,U]=W,u=this.addJsExtensionAndAssertions(U);if(Array.isArray(A))return`export { ${A.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${u}`;return`export ${A} from ${u}`}generateDoIIFE($,W){return`(${this.generate(W[0],"statement")})()`}generateRegex($,W){return W.length===0?$:this.generate(W[0],"value")}generateTaggedTemplate($,W){let[A,U]=W,u=this.generate(A,"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 A="`";for(let U of W)if(U instanceof String)A+=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);A+=U.slice(1,-1)}else A+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let u=U[0];A+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=U.length===1&&Array.isArray(U[0])?U[0]:U;A+="${"+this.generate(u,"value")+"}"}return A+"`"}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 A=1;A<$.length;A++){let U=this.findPostfixConditional($[A]);if(U)return U.parentOp=W,U.operandIndex=A,U.otherOperands=$.slice(1).filter((u,f)=>f!==A-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((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let A=$.findIndex((U)=>this.is(U,"rest"));if(A!==-1&&A<$.length-1){let U=$.slice(0,A),u=$[A],f=$.slice(A+1),F=U.map((Y)=>this.formatParam(Y));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:U.length},F.length>0?`${F.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((A)=>{if(A===",")return"";if(A==="...")return"";if(this.is(A,"..."))return`...${A[1]}`;if(this.is(A,"=")&&typeof A[1]==="string")return`${A[1]} = ${this.generate(A[2],"value")}`;if(typeof A==="string")return A;return this.formatParam(A)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((A)=>{if(this.is(A,"..."))return`...${A[1]}`;if(this.is(A,"default"))return`${A[1]} = ${this.generate(A[2],"value")}`;let[U,u]=A;if(U===u)return U;return`${U}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,W=[],A={}){let{sideEffectOnly:U=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:F=!1}=A,Y=this.sideEffectOnly;this.sideEffectOnly=U;let _=new Set,X=(Q)=>{if(typeof Q==="string")_.add(Q);else if(Array.isArray(Q)){if(Q[0]==="rest"||Q[0]==="..."){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="default"){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="array"||Q[0]==="object")this.collectVarsFromArray(Q,_)}};if(Array.isArray(W))W.forEach(X);let R=this.collectFunctionVariables($),
|
|
222
|
-
`;if(
|
|
223
|
-
`;let M=u.length>0&&Q.length>0&&Array.isArray(Q[0])&&Q[0][0]==="super",q=(O)=>{O.forEach((z,E)=>{let P=E===O.length-1,
|
|
224
|
-
`;return}if(!f&&!U&&P&&
|
|
225
|
-
`;return}}}let G=!f&&!U&&P&&!H.includes(
|
|
220
|
+
`;this.indentLevel--}}}return F+=this.indent()+"}",F}generateSuper($,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let A=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${A})`;return`super(${A})`}generateImport($,W,A,U){if(W.length===1){let Y=`import(${this.generate(W[0],"value")})`;if(h(U[0],"await")===!0)return`(await ${Y})`;return Y}let[u,f]=W,F=this.addJsExtensionAndAssertions(f);if(typeof u==="string")return`import ${u} from ${F}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${F}`;if(typeof u[0]==="string"&&Array.isArray(u[1])){let _=u[0],X=u[1];if(X[0]==="*"&&X.length===2)return`import ${_}, * as ${X[1]} from ${F}`;let R=(Array.isArray(X)?X:[X]).map((K)=>Array.isArray(K)&&K.length===2?`${K[0]} as ${K[1]}`:K).join(", ");return`import ${_}, { ${R} } from ${F}`}return`import { ${u.map((_)=>Array.isArray(_)&&_.length===2?`${_[0]} as ${_[1]}`:_).join(", ")} } from ${F}`}return`import ${this.generate(u,"value")} from ${F}`}generateExport($,W){let[A]=W;if(Array.isArray(A)&&A.every((U)=>typeof U==="string"))return`export { ${A.join(", ")} }`;if(this.is(A,"="))return`export const ${A[1]} = ${this.generate(A[2],"value")}`;return`export ${this.generate(A,"statement")}`}generateExportDefault($,W){let[A]=W;if(this.is(A,"="))return`const ${A[1]} = ${this.generate(A[2],"value")};
|
|
221
|
+
export default ${A[1]}`;return`export default ${this.generate(A,"statement")}`}generateExportAll($,W){return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom($,W){let[A,U]=W,u=this.addJsExtensionAndAssertions(U);if(Array.isArray(A))return`export { ${A.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${u}`;return`export ${A} from ${u}`}generateDoIIFE($,W){return`(${this.generate(W[0],"statement")})()`}generateRegex($,W){return W.length===0?$:this.generate(W[0],"value")}generateTaggedTemplate($,W){let[A,U]=W,u=this.generate(A,"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 A="`";for(let U of W)if(U instanceof String)A+=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);A+=U.slice(1,-1)}else A+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let u=U[0];A+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=U.length===1&&Array.isArray(U[0])?U[0]:U;A+="${"+this.generate(u,"value")+"}"}return A+"`"}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 A=1;A<$.length;A++){let U=this.findPostfixConditional($[A]);if(U)return U.parentOp=W,U.operandIndex=A,U.otherOperands=$.slice(1).filter((u,f)=>f!==A-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((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let A=$.findIndex((U)=>this.is(U,"rest"));if(A!==-1&&A<$.length-1){let U=$.slice(0,A),u=$[A],f=$.slice(A+1),F=U.map((Y)=>this.formatParam(Y));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:U.length},F.length>0?`${F.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((A)=>{if(A===",")return"";if(A==="...")return"";if(this.is(A,"..."))return`...${A[1]}`;if(this.is(A,"=")&&typeof A[1]==="string")return`${A[1]} = ${this.generate(A[2],"value")}`;if(typeof A==="string")return A;return this.formatParam(A)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((A)=>{if(this.is(A,"..."))return`...${A[1]}`;if(this.is(A,"default"))return`${A[1]} = ${this.generate(A[2],"value")}`;let[U,u]=A;if(U===u)return U;return`${U}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,W=[],A={}){let{sideEffectOnly:U=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:F=!1}=A,Y=this.sideEffectOnly;this.sideEffectOnly=U;let _=new Set,X=(Q)=>{if(typeof Q==="string")_.add(Q);else if(Array.isArray(Q)){if(Q[0]==="rest"||Q[0]==="..."){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="default"){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="array"||Q[0]==="object")this.collectVarsFromArray(Q,_)}};if(Array.isArray(W))W.forEach(X);let R=this.collectFunctionVariables($),K=new Set([...R].filter((Q)=>!this.programVars.has(Q)&&!this.reactiveVars?.has(Q)&&!_.has(Q)&&!this.scopeStack.some((D)=>D.has(Q)))),H=["return","throw","break","continue"],Z=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...K,..._])),this.is($,"block")){let Q=this.unwrapBlock($);if(F&&this.expansionAfterParams?.length>0)Q=[...this.expansionAfterParams.map((z,E)=>{return`const ${typeof z==="string"?z:JSON.stringify(z)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...Q],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:z}=this.restMiddleParam,E=z.length,P=[];if(z.forEach((w,G)=>{let I=typeof w==="string"?w:this.is(w,"default")?w[1]:JSON.stringify(w);P.push(`const ${I} = ${O}[${O}.length - ${E-G}]`)}),E>0)P.push(`${O} = ${O}.slice(0, -${E})`);Q=[...P,...Q],this.restMiddleParam=null}this.indentLevel++;let D=`{
|
|
222
|
+
`;if(K.size>0)D+=this.indent()+`let ${Array.from(K).sort().join(", ")};
|
|
223
|
+
`;let M=u.length>0&&Q.length>0&&Array.isArray(Q[0])&&Q[0][0]==="super",q=(O)=>{O.forEach((z,E)=>{let P=E===O.length-1,w=Array.isArray(z)?z[0]:null;if(!P&&w==="comprehension"){let[,N,T,L]=z;D+=this.indent()+this.generateComprehensionAsLoop(N,T,L)+`
|
|
224
|
+
`;return}if(!f&&!U&&P&&w==="if"){let[N,T,...L]=z.slice(1),V=(c)=>this.is(c,"block")&&c.length>2;if(V(T)||L.some(V)){D+=this.generateIfElseWithEarlyReturns(z);return}}if(!f&&!U&&P&&w==="="){let[N,T]=z.slice(1);if(typeof N==="string"&&Array.isArray(T)){let L=T[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,D+=this.generate(T,"value"),this.comprehensionTarget=null,D+=this.indent()+`return ${N};
|
|
225
|
+
`;return}}}let G=!f&&!U&&P&&!H.includes(w)&&!Z.includes(w)&&!this.hasExplicitControlFlow(z),I=G?"value":"statement",B=this.generate(z,I);if(G)D+=this.indent()+"return "+B+`;
|
|
226
226
|
`;else D+=this.indent()+this.addSemicolon(z,B)+`
|
|
227
227
|
`})};if(M){if(Q.length===1&&!f)D+=this.indent()+"return "+this.generate(Q[0],"value")+`;
|
|
228
228
|
`;else D+=this.indent()+this.generate(Q[0],"statement")+`;
|
|
229
229
|
`;for(let z of u)D+=this.indent()+z+`;
|
|
230
230
|
`;q(Q.slice(1))}else{for(let O of u)D+=this.indent()+O+`;
|
|
231
231
|
`;q(Q)}if(U&&Q.length>0){let O=Array.isArray(Q[Q.length-1])?Q[Q.length-1][0]:null;if(!H.includes(O))D+=this.indent()+`return;
|
|
232
|
-
`}return this.indentLevel--,D+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=Y,D}this.sideEffectOnly=Y;let
|
|
232
|
+
`}return this.indentLevel--,D+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=Y,D}this.sideEffectOnly=Y;let J;if(f&&u.length>0){let Q=Array.isArray($)&&$[0]==="super",D=this.generate($,"statement"),M=u.map((q)=>`${q};`).join(" ");J=Q?`{ ${D}; ${M} }`:`{ ${M} ${D}; }`}else if(f||this.hasExplicitControlFlow($))J=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(H.includes($[0])||Z.includes($[0])))J=`{ ${this.generate($,"statement")}; }`;else if(U)J=`{ ${this.generate($,"statement")}; return; }`;else J=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),J}generateFunctionBody($,W=[],A=!1){return this.generateBodyWithReturns($,W,{sideEffectOnly:A,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,W=[],A=!1,U=[]){return this.generateBodyWithReturns($,U,{autoAssignments:W,isConstructor:A})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let W=this.unwrapBlock($);return`{
|
|
233
233
|
${this.withIndent(()=>W.map((U,u)=>{let f=u===W.length-1,F=Array.isArray(U)?U[0]:null,Y=f&&!["return","throw","break","continue"].includes(F),_=this.generate(U,Y?"value":"statement");return Y?this.indent()+"return "+_+";":this.indent()+_+";"})).join(`
|
|
234
234
|
`)}
|
|
235
235
|
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let W=$[0]==="block"?$.slice(1):$;return`{
|
|
@@ -241,8 +241,8 @@ ${u}${f}${F.join(`
|
|
|
241
241
|
`)}
|
|
242
242
|
${Y}
|
|
243
243
|
${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,W,A,U){let u="";u+=this.indent()+`${U} = [];
|
|
244
|
-
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(W.length===1){let[F,Y,_,X]=W[0];if(F==="for-in"){let{header:R,setup:
|
|
245
|
-
`,this.indentLevel++,
|
|
244
|
+
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(W.length===1){let[F,Y,_,X]=W[0];if(F==="for-in"){let{header:R,setup:K}=this._forInHeader(Y,_,X);if(u+=this.indent()+R+` {
|
|
245
|
+
`,this.indentLevel++,K)u+=this.indent()+K+`
|
|
246
246
|
`;if(A&&A.length>0)u+=this.indent()+`if (${A.map((H)=>this.generate(H,"value")).join(" && ")}) {
|
|
247
247
|
`,this.indentLevel++;if(u+=this.indent()+`${U}.push(${this.unwrap(this.generate(f,"value"))});
|
|
248
248
|
`,A&&A.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
@@ -252,19 +252,19 @@ ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"
|
|
|
252
252
|
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
253
253
|
`,this.indentLevel--,U+=this.indent()+`}
|
|
254
254
|
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
255
|
-
`};if(W.length===1){let[F,Y,_,X]=W[0];if(F==="for-in"){let{header:R,setup:
|
|
256
|
-
`,this.indentLevel++,
|
|
255
|
+
`};if(W.length===1){let[F,Y,_,X]=W[0];if(F==="for-in"){let{header:R,setup:K}=this._forInHeader(Y,_,X);if(U+=R+` {
|
|
256
|
+
`,this.indentLevel++,K)U+=this.indent()+K+`
|
|
257
257
|
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}if(F==="for-as"){let{header:R}=this._forAsHeader(Y,_,X);return U+=R+` {
|
|
258
|
-
`,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(F==="for-of"){let{header:R,own:
|
|
259
|
-
`,this.indentLevel++,
|
|
260
|
-
`;if(H)U+=this.indent()+`const ${H} = ${Z}[${
|
|
258
|
+
`,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(F==="for-of"){let{header:R,own:K,vv:H,oc:Z,kvp:J}=this._forOfHeader(Y,_,X);if(U+=R+` {
|
|
259
|
+
`,this.indentLevel++,K)U+=this.indent()+`if (!Object.hasOwn(${Z}, ${J})) continue;
|
|
260
|
+
`;if(H)U+=this.indent()+`const ${H} = ${Z}[${J}];
|
|
261
261
|
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,W,A],"value")}generateIfElseWithEarlyReturns($){let[W,A,U,...u]=$,f="",F=this.generate(A,"value");f+=this.indent()+`if (${F}) {
|
|
262
262
|
`,f+=this.withIndent(()=>this.generateBranchWithReturn(U)),f+=this.indent()+"}";for(let Y of u)if(f+=" else ",this.is(Y,"if")){let[,_,X,...R]=Y;f+=`if (${this.generate(_,"value")}) {
|
|
263
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(X)),f+=this.indent()+"}";for(let
|
|
264
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(
|
|
263
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(X)),f+=this.indent()+"}";for(let K of R)f+=` else {
|
|
264
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(K)),f+=this.indent()+"}"}else f+=`{
|
|
265
265
|
`,f+=this.withIndent(()=>this.generateBranchWithReturn(Y)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let W=this.unwrapBlock($),A="";for(let U=0;U<W.length;U++){let u=U===W.length-1,f=W[U],F=Array.isArray(f)?f[0]:null;if(u&&!(F==="return"||F==="throw"||F==="break"||F==="continue"))A+=this.indent()+`return ${this.generate(f,"value")};
|
|
266
266
|
`;else A+=this.indent()+this.generate(f,"statement")+`;
|
|
267
|
-
`}return A}generateIfAsExpression($,W,A){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||A.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait($)||this.containsAwait(W)||A.some((X)=>this.containsAwait(X)),_=`${Y?"await ":""}(${Y?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(W);for(let X of A)if(_+=" else ",this.is(X,"if")){let[R,
|
|
267
|
+
`}return A}generateIfAsExpression($,W,A){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||A.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait($)||this.containsAwait(W)||A.some((X)=>this.containsAwait(X)),_=`${Y?"await ":""}(${Y?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(W);for(let X of A)if(_+=" else ",this.is(X,"if")){let[R,K,H,...Z]=X;_+=`if (${this.generate(K,"value")}) `,_+=this.generateBlockWithReturns(H);for(let J of Z)if(_+=" else ",this.is(J,"if")){let[Q,D,M,...q]=J;_+=`if (${this.generate(D,"value")}) `,_+=this.generateBlockWithReturns(M),A.push(...q)}else _+=this.generateBlockWithReturns(J)}else _+=this.generateBlockWithReturns(X);return _+" })()"}let u=this.extractExpression(this.unwrapIfBranch(W)),f=this.buildTernaryChain(A),F=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))F=`(${F})`;return`(${F} ? ${u} : ${f})`}generateIfAsStatement($,W,A){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let u of A)U+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return U}generateSwitchCaseBody($,W){let A="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))A+=this.indent()+this.generate(u,"statement")+`;
|
|
268
268
|
`;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)A+=this.indent()+`return ${this.generate(u[f],"value")};
|
|
269
269
|
`;else A+=this.indent()+this.generate(u[f],"statement")+`;
|
|
270
270
|
`}else A+=this.indent()+`return ${this.extractExpression($)};
|
|
@@ -277,11 +277,11 @@ ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"
|
|
|
277
277
|
`;this.indentLevel--,U+=this.indent()+"}"}if(W){if(U+=` else {
|
|
278
278
|
`,this.indentLevel++,A==="value")U+=this.indent()+`return ${this.extractExpression(W)};
|
|
279
279
|
`;else for(let u of this.unwrapBlock(W))U+=this.indent()+this.generate(u,"statement")+`;
|
|
280
|
-
`;this.indentLevel--,U+=this.indent()+"}"}return A==="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]))return $;return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let A=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(A)}addSemicolon($,W){return W+(this.needsSemicolon($,W)?";":"")}formatStatements($,W="statement"){return $.map((A)=>this.indent()+this.addSemicolon(A,this.generate(A,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((A)=>Array.isArray(A)&&["return","throw","break","continue"].includes(A[0]));if(W==="switch"){let[,,A]=$;return A?.some((U)=>{return this.unwrapBlock(U[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(W==="if"){let[,,A,U]=$;return this.branchHasControlFlow(A)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let W=this.unwrapBlock($);if(W.length===0)return!1;let A=W[W.length-1];return Array.isArray(A)&&["return","throw","break","continue"].includes(A[0])}withIndent($){this.indentLevel++;let W=$();return this.indentLevel--,W}is($,W,A){if(!Array.isArray($))return null;if((S($[0])??$[0])!==W)return null;let U=$.slice(1);if(A!=null&&U.length!==A)return null;return U}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,A=0,U=!0,u=!1;for(let f=0;f<$.length;f++){if($[f]==="(")W++;if($[f]===")")W--;if($[f]==="["||$[f]==="{")A++;if($[f]==="]"||$[f]==="}")A--;if($[f]===","&&W===1&&A===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,A=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")W++;if($[U]===")")W--;A=Math.min(A,W)}if(A>=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,...A]=$;if(W!=="&&"&&W!=="||")return $;let U=[],u=(f)=>{if(Array.isArray(f)&&f[0]===W)for(let F=1;F<f.length;F++)u(f[F]);else U.push(f)};for(let f of A)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((A)=>this.hasStatementInBranch(A));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[W,A,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[A,U,u,...f]=W,F=this.extractExpression(this.unwrapIfBranch(u)),Y=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${F} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray($,W){$.slice(1).forEach((A)=>{if(A===","||A==="...")return;if(typeof A==="string"){W.add(A);return}if(Array.isArray(A)){if(A[0]==="..."&&typeof A[1]==="string")W.add(A[1]);else if(A[0]==="array")this.collectVarsFromArray(A,W);else if(A[0]==="object")this.collectVarsFromObject(A,W)}})}collectVarsFromObject($,W){$.slice(1).forEach((A)=>{if(!Array.isArray(A))return;if(A[0]==="..."&&typeof A[1]==="string"){W.add(A[1]);return}if(A.length>=2){let[U,u,f]=A;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=S($).slice(1,-1),A=
|
|
281
|
-
`);if(
|
|
282
|
-
`))W=W.slice(1);if(
|
|
280
|
+
`;this.indentLevel--,U+=this.indent()+"}"}return A==="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]))return $;return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let A=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(A)}addSemicolon($,W){return W+(this.needsSemicolon($,W)?";":"")}formatStatements($,W="statement"){return $.map((A)=>this.indent()+this.addSemicolon(A,this.generate(A,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((A)=>Array.isArray(A)&&["return","throw","break","continue"].includes(A[0]));if(W==="switch"){let[,,A]=$;return A?.some((U)=>{return this.unwrapBlock(U[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(W==="if"){let[,,A,U]=$;return this.branchHasControlFlow(A)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let W=this.unwrapBlock($);if(W.length===0)return!1;let A=W[W.length-1];return Array.isArray(A)&&["return","throw","break","continue"].includes(A[0])}withIndent($){this.indentLevel++;let W=$();return this.indentLevel--,W}is($,W,A){if(!Array.isArray($))return null;if((S($[0])??$[0])!==W)return null;let U=$.slice(1);if(A!=null&&U.length!==A)return null;return U}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,A=0,U=!0,u=!1;for(let f=0;f<$.length;f++){if($[f]==="(")W++;if($[f]===")")W--;if($[f]==="["||$[f]==="{")A++;if($[f]==="]"||$[f]==="}")A--;if($[f]===","&&W===1&&A===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,A=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")W++;if($[U]===")")W--;A=Math.min(A,W)}if(A>=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,...A]=$;if(W!=="&&"&&W!=="||")return $;let U=[],u=(f)=>{if(Array.isArray(f)&&f[0]===W)for(let F=1;F<f.length;F++)u(f[F]);else U.push(f)};for(let f of A)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((A)=>this.hasStatementInBranch(A));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[W,A,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[A,U,u,...f]=W,F=this.extractExpression(this.unwrapIfBranch(u)),Y=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${F} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray($,W){$.slice(1).forEach((A)=>{if(A===","||A==="...")return;if(typeof A==="string"){W.add(A);return}if(Array.isArray(A)){if(A[0]==="..."&&typeof A[1]==="string")W.add(A[1]);else if(A[0]==="array")this.collectVarsFromArray(A,W);else if(A[0]==="object")this.collectVarsFromObject(A,W)}})}collectVarsFromObject($,W){$.slice(1).forEach((A)=>{if(!Array.isArray(A))return;if(A[0]==="..."&&typeof A[1]==="string"){W.add(A[1]);return}if(A.length>=2){let[U,u,f]=A;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=S($).slice(1,-1),A=h($,"indent");if(A)W=W.replace(new RegExp(`\\n${A}`,"g"),`
|
|
281
|
+
`);if(h($,"initialChunk")&&W.startsWith(`
|
|
282
|
+
`))W=W.slice(1);if(h($,"finalChunk")&&W.endsWith(`
|
|
283
283
|
`))W=W.slice(0,-1);return W}processHeregex($){let W="",A=!1,U=0,u=()=>{let f=0,F=U-1;while(F>=0&&$[F]==="\\")f++,F--;return f%2===1};while(U<$.length){let f=$[U];if(f==="["&&!u()){A=!0,W+=f,U++;continue}if(f==="]"&&A&&!u()){A=!1,W+=f,U++;continue}if(A){W+=f,U++;continue}if(/\s/.test(f)){U++;continue}if(f==="#"){if(u()){W+=f,U++;continue}let F=U-1;while(F>=0&&$[F]==="\\")F--;if(F<U-1){W+=f,U++;continue}while(U<$.length&&$[U]!==`
|
|
284
|
-
`)U++;continue}W+=f,U++}return W}addJsExtensionAndAssertions($){if($ instanceof String)$=S($);if(typeof $!=="string")return $;let A=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=A.startsWith("./")||A.startsWith("../"),u=A,f="";if(U){let F=A.lastIndexOf("/"),Y=F>=0?A.substring(F+1):A;if(Y.includes(".")){if(Y.endsWith(".json"))f=" with { type: 'json' }"}else u=A+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&S($)==="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&&
|
|
284
|
+
`)U++;continue}W+=f,U++}return W}addJsExtensionAndAssertions($){if($ instanceof String)$=S($);if(typeof $!=="string")return $;let A=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=A.startsWith("./")||A.startsWith("../"),u=A,f="";if(U){let F=A.lastIndexOf("/"),Y=F>=0?A.substring(F+1):A;if(Y.includes(".")){if(Y.endsWith(".json"))f=" with { type: 'json' }"}else u=A+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&S($)==="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&&h($,"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`// ============================================================================
|
|
285
285
|
// Rip Reactive Runtime
|
|
286
286
|
// A minimal, fine-grained reactivity system
|
|
287
287
|
//
|
|
@@ -514,9 +514,9 @@ if (typeof globalThis !== 'undefined') {
|
|
|
514
514
|
`),u=U.findIndex((Q)=>Q==="__DATA__");if(u!==-1){let Q=U.slice(u+1);A=Q.length>0?Q.join(`
|
|
515
515
|
`)+`
|
|
516
516
|
`:"",$=U.slice(0,u).join(`
|
|
517
|
-
`)}let F=new p().tokenize($);if(this.options.showTokens)F.forEach((Q)=>console.log(`${Q[0].padEnd(12)} ${JSON.stringify(Q[1])}`)),console.log();let Y=null,_=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)_=[...F];F=F.filter((Q)=>Q[0]!=="TYPE_DECL");while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((Q)=>Q[0]==="TERMINATOR")){if(_)Y=L1(_,["program"]);return{tokens:F,sexpr:["program"],code:"",dts:Y,data:A,reactiveVars:{}}}s.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Q=this.tokens[this.pos++],D=Q[1];if(Q.data)D=new String(D),Object.assign(D,Q.data);return this.text=D,this.loc=Q.loc,Q[0]}};let X;try{X=s.parse($)}catch(Q){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Q}if(this.options.showSExpr)console.log(x(X,0,!0)),console.log();let R=null;if(this.options.sourceMap){let Q=(this.options.filename||"output")+".js",D=this.options.filename||"input.rip";R=new C1(Q,D,$)}let
|
|
517
|
+
`)}let F=new p().tokenize($);if(this.options.showTokens)F.forEach((Q)=>console.log(`${Q[0].padEnd(12)} ${JSON.stringify(Q[1])}`)),console.log();let Y=null,_=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)_=[...F];F=F.filter((Q)=>Q[0]!=="TYPE_DECL");while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((Q)=>Q[0]==="TERMINATOR")){if(_)Y=L1(_,["program"]);return{tokens:F,sexpr:["program"],code:"",dts:Y,data:A,reactiveVars:{}}}s.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Q=this.tokens[this.pos++],D=Q[1];if(Q.data)D=new String(D),Object.assign(D,Q.data);return this.text=D,this.loc=Q.loc,Q[0]}};let X;try{X=s.parse($)}catch(Q){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Q}if(this.options.showSExpr)console.log(x(X,0,!0)),console.log();let R=null;if(this.options.sourceMap){let Q=(this.options.filename||"output")+".js",D=this.options.filename||"input.rip";R=new C1(Q,D,$)}let K=new y({dataSection:A,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:R}),H=K.compile(X),Z=R?R.toJSON():null,J=R?R.toReverseMap():null;if(Z&&this.options.sourceMap==="inline"){let Q=typeof Buffer<"u"?Buffer.from(Z).toString("base64"):btoa(Z);H+=`
|
|
518
518
|
//# sourceMappingURL=data:application/json;base64,${Q}`}else if(Z&&this.options.filename)H+=`
|
|
519
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)Y=L1(_,X);return{tokens:F,sexpr:X,code:H,dts:Y,map:Z,reverseMap:
|
|
519
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)Y=L1(_,X);return{tokens:F,sexpr:X,code:H,dts:Y,map:Z,reverseMap:J,data:A,reactiveVars:K.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}J2(y,p);y.prototype.generateEnum=t1;function y1($,W={}){return new M1(W).compile($)}function d($,W={}){return new M1(W).compileToJS($)}function H1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
520
520
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
521
521
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
522
522
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -529,10 +529,10 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
529
529
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
530
530
|
globalThis.warn ??= console.warn;
|
|
531
531
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
532
|
-
`}function z1(){return new y({}).getReactiveRuntime()}function b1(){return new y({}).getComponentRuntime()}var L3="3.13.
|
|
532
|
+
`}function z1(){return new y({}).getReactiveRuntime()}function b1(){return new y({}).getComponentRuntime()}var L3="3.13.11",h3="2026-02-23@23:03:41GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function(z1())();var V3=($)=>{let W=$.match(/^[ \t]*(?=\S)/gm),A=Math.min(...(W||[]).map((U)=>U.length));return $.replace(RegExp(`^[ ]{${A}}`,"gm"),"").trim()};async function j3(){let $=document.querySelectorAll('script[type="text/rip"]');for(let W of $){if(W.hasAttribute("data-rip-processed"))continue;if(W.hasAttribute("data-name"))continue;try{let A;if(W.src){let u=await fetch(W.src);if(!u.ok){console.error(`Rip: failed to fetch ${W.src} (${u.status})`);continue}A=await u.text()}else A=V3(W.textContent);let U;try{U=d(A)}catch(u){console.error("Rip compile error:",u.message),console.error("Source:",A);continue}await(0,eval)(`(async()=>{
|
|
533
533
|
${U}
|
|
534
534
|
})()`),W.setAttribute("data-rip-processed","true")}catch(A){console.error("Rip runtime error:",A)}}}async function e($){for(let[F,Y]of Object.entries(e.modules))if($.includes(F))return Y;let W=await fetch($).then((F)=>{if(!F.ok)throw Error(`importRip: ${$} (${F.status})`);return F.text()}),A=d(W),U=`// ${$}
|
|
535
535
|
`,u=new Blob([U+A],{type:"application/javascript"});return await import(URL.createObjectURL(u))}e.modules={};function C3($){try{let W=$.replace(/^/gm," "),U=d(`do ->
|
|
536
|
-
${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=C3,globalThis.importRip=e,globalThis.compileToJS=d,globalThis.__ripExports={compile:y1,compileToJS:d,formatSExpr:x,getStdlibCode:H1,VERSION:L3,BUILD_DATE:
|
|
537
|
-
`,
|
|
538
|
-
`:"",f=new Blob([R+w],{type:"application/javascript"}),D=URL.createObjectURL(f),H=await import(D),u){X=v1(H);for(let M in X){let q=X[M];u.classes[M]=q}}if(A&&U)A.setCompiled(U,H);return H};z2=function($){let W,A,U;return U=1000,A=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,A)}},W()};var V2=function($={}){return m1($)},h2=function($){return $?.[u1]?$[u1]:$},b3=function($){return $?.[G1]===!0},c3=function($,W={}){let A,U,u,f,F;if(A=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 $(),A.value=Y}catch(_){return U.value=_}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(F,"data",{get:function(){return A.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return U.value}}),!W.lazy)f();return F},j2=function($,W){let A,U;return A=_1(W),U=j(!!A()),r(function(){let u;if(A())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?Y1(U,W):U},v3=function($,W){let A,U;return A=_1(W),U=j(A()),r(function(){let u,f;return f=A(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Y1(U,W):U},g3=function($,W){let A,U,u;return A=_1(W),u=j(A()),U=0,r(function(){let f,F,Y,_;if(_=A(),f=Date.now(),F=$-(f-U),F<=0)return u.value=_,U=f;else return Y=setTimeout(function(){return u.value=A(),U=Date.now()},F),function(){return clearTimeout(Y)}}),typeof W!=="function"?Y1(u,W):u},l3=function($,W){let A,U;return A=_1(W),U=j(!!A()),r(function(){let u;if(A())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Y1(U,W):U},C2=function(){let $,W,A,U;return W=new Map,U=[],$=new Map,A=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),A(F?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),A("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[_]of W)if(_.startsWith(f)){if(F=_.slice(f.length),F.includes("/"))continue;Y.push(_)}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)}}},y2=function($,W={}){let A,U,u,f,F,Y,_,X,R,w,H,Z,K,Q,D,M,q,O,z,E,P;if(q=W.root||"components",R=W.base||"",w=W.hash||!1,K=W.onError||null,z=function(J){return R&&J.startsWith(R)?J.slice(R.length)||"/":J},X=function(J){return R?R+J:J},D=function(){let J;if(w){if(J=location.hash.slice(1),!J)return"/";return J[0]==="/"?J:"/"+J}else return location.pathname+location.search+location.hash},P=function(J){return w?J==="/"?location.pathname:"#"+J.slice(1):X(J)},F=j(z(w?D():location.pathname)),f=j({}),_=j(null),U=j([]),Y=j({}),A=j(""),u=j2(100,j(!1)),E=q1($,q),H=new Set,$.watch(function(J,G){if(!G.startsWith(q+"/"))return;return E=q1($,q)}),M=function(J){let G,I,B,N,T;if(N=J.split("?")[0].split("#")[0],I=z(N),I=I[0]==="/"?I:"/"+I,B=J.split("?")[1]?.split("#")[0]||"",G=J.includes("#")?J.split("#")[1]:"",T=I2(I,E.routes),T){D2(function(){return F.value=I,f.value=T.params,_.value=T.route,U.value=P2(T.route.file,q,E.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),A.value=G});for(let L of H)L(O.current);return!0}if(K)K({status:404,path:I});return!1},Q=function(){return M(D())},typeof window<"u")window.addEventListener("popstate",Q);if(Z=function(J){let G,I,B;if(J.button!==0||J.metaKey||J.ctrlKey||J.shiftKey||J.altKey)return;I=J.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 J.preventDefault(),G=w&&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(J){return M(J)?history.pushState(null,"",P(F.read())):void 0},replace:function(J){return M(J)?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(J){return H.add(J),function(){return H.delete(J)}},rebuild:function(){return E=q1($,q)},routes:void 0,init:function(){return M(D()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Q);if(typeof document<"u")document.removeEventListener("click",Z);return H.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:F.value,params:f.value,route:_.value,layouts:U.value,query:Y.value,hash:A.value}}}),Object.defineProperty(O,"path",{get:function(){return F.value}}),Object.defineProperty(O,"params",{get:function(){return f.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return U.value}}),Object.defineProperty(O,"query",{get:function(){return Y.value}}),Object.defineProperty(O,"hash",{get:function(){return A.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(J){return u.value=J}}),Object.defineProperty(O,"routes",{get:function(){return E.routes}}),O},b2=function($={}){let W,A,U,u,f,F,Y,_,X,R,w,H,Z,K,Q,D,M,q,O,z,E,P;if({router:z,app:W,components:f,resolver:O,compile:U,target:E,onError:M}=$,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,R=null,X=null,_=[],Z=[],Q=F,H=0,w=null,u=new Map,K=$.cacheSize||10,A=function(){let J,G;if(Y&&R){if(Y.beforeUnmount)Y.beforeUnmount();if(u.set(R,Y),u.size>K){if(G=u.keys().next().value,J=u.get(G),J.unmounted)J.unmounted();u.delete(G)}return Y=null,R=null}},P=function(){A();for(let J=Z.length-1;J>=0;J--){let G=Z[J];if(G.beforeUnmount)G.beforeUnmount();if(G.unmounted)G.unmounted();G._target?.remove()}return Z=[],Q=F},f.watch(function(J,G){let I;if(u.has(G)){if(I=u.get(G),I.unmounted)I.unmounted();return u.delete(G)}}),D=async function(J){let G,I,B,N,T,L,h,c,Z1,E1,f1,i1,n,p1,R1,o,Q1,I1,C,d1,B1,a;if({route:C,params:o,layouts:c,query:I1}=J,!C)return;if(C.file===R&&JSON.stringify(o)===JSON.stringify(X))return;return X=o,N=++H,z.navigating=!0,(async()=>{try{if(B1=f.read(C.file),!B1){if(M)M({status:404,message:`File not found: ${C.file}`});z.navigating=!1;return}if(i1=await O1(B1,U,f,C.file,O),N!==H){z.navigating=!1;return}if(G=g1(i1),!G){if(M)M({status:500,message:`No component found in ${C.file}`});z.navigating=!1;return}if(f1=!M2(c,_),p1=Y?._target,f1)P();else A();if(n=f1?F:Q,f1&&c.length>0){F.innerHTML="",n=F;for(let v of c){if(E1=f.read(v),!E1)continue;if(Z1=await O1(E1,U,f,v,O),N!==H){z.navigating=!1;return}if(I=g1(Z1),!I)continue;if(L=new I({app:W,params:o,router:z}),L.beforeMount)L.beforeMount();a=document.createElement("div"),a.setAttribute("data-layout",v),n.appendChild(a),L.mount(a),Z.push(L),d1=a.querySelector("#content")||a,n=d1}_=[...c],Q=n}else if(f1)F.innerHTML="",_=[],Q=F;if(B=u.get(C.file),B)u.delete(C.file),n.appendChild(B._target),Y=B,R=C.file;else{if(R1=document.createElement("div"),R1.setAttribute("data-component",C.file),n.appendChild(R1),h=new G({app:W,params:o,query:I1,router:z}),h.beforeMount)h.beforeMount();if(h.mount(R1),Y=h,R=C.file,h.load)await h.load(o,I1)}return p1?.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 ${C.file}:`,v),M)M({status:500,message:v.message,error:v});T=!1;for(let N1=Z.length-1;N1>=0;N1--){let r1=Z[N1];if(r1.onError)try{r1.onError(v),T=!0;break}catch(c2){console.error("Renderer: error boundary failed:",c2)}}return(()=>{if(!T)return Q1=document.createElement("pre"),Q1.style.cssText="color:red;padding:1em",Q1.textContent=v.stack||v.message,F.innerHTML="",F.appendChild(Q1)})()}})()},q={start:function(){return w=r(function(){let J;return J=z.current,J.route?D(J):void 0}),z.init(),q},stop:function(){if(P(),w)w(),w=null;return F.innerHTML=""},remount:function(){let J;return J=z.current,J.route?D(J):void 0},cache:u},q},x3=async function($="",W={}){let A,U,u,f,F,Y,_,X,R,w,H,Z,K,Q,D,M,q,O,z,E,P;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),P=W.target||"#app",R=W.compile||null,Q=W.persist||!1,Z=W.hash||!1,!R)R=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(P))H=document.createElement("div"),H.id=P.replace(/^#/,""),document.body.prepend(H);if(W.bundle)Y=W.bundle;else if(W.components&&Array.isArray(W.components)){w={};for(let J of W.components)if(M=await fetch(J),M.ok)K=J.split("/").pop(),w[`components/${K}`]=await M.text();Y={components:w,data:{}}}else if(typeof document<"u"&&document.querySelectorAll('script[type="text/rip"][data-name]').length>0){w={};for(let J of document.querySelectorAll('script[type="text/rip"][data-name]'))K=J.getAttribute("data-name"),K+=!K.endsWith(".rip")?".rip":void 0,w[`components/${K}`]=J.textContent;Y={components:w,data:{}}}else{if(_=`${$}/bundle`,M=await fetch(_,{cache:"no-cache"}),!M.ok)throw Error(`launch: ${_} (${M.status})`);Y=await M.json()}if(f=V2({components:{},routes:{},data:{}}),Y.data)f.data=Y.data;if(Y.routes)f.routes=Y.routes;if(Q&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=Q==="local"?localStorage:sessionStorage;try{if(z=U.getItem(u),z){E=JSON.parse(z);for(let J in E){let G=E[J];f.data[J]=G}}}catch{}A=function(){return(()=>{try{return U.setItem(u,JSON.stringify(h2(f.data)))}catch{return null}})()},r(function(){let J;return x1.value,J=setTimeout(A,2000),function(){return clearTimeout(J)}}),window.addEventListener("beforeunload",A)}if(F=C2(),Y.components)F.load(Y.components);if(X=`__rip_${$.replace(/\//g,"_")||"app"}`,q={map:H2(F),classes:{},key:X},typeof globalThis<"u")globalThis[X]=q.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(O=y2(F,{root:"components",base:$,hash:Z,onError:function(J){return console.error(`[Rip] Error ${J.status}: ${J.message||J.path}`)}}),D=b2({router:O,app:f,components:F,resolver:q,compile:R,target:P,onError:function(J){return console.error(`[Rip] ${J.message}`,J.error)}}),D.start(),Y.data?.watch)z2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:F,router:O,renderer:D,cache:D.cache,version:"0.3.0"};return{app:f,components:F,router:O,renderer:D}};e.modules["app.rip"]=P1;for(let[$,W]of Object.entries(P1))if(typeof W==="function")globalThis[$]=W;export{C3 as rip,j3 as processRipScripts,s as parser,e as importRip,H1 as getStdlibCode,z1 as getReactiveRuntime,b1 as getComponentRuntime,x as formatSExpr,d as compileToJS,y1 as compile,L3 as VERSION,p as Lexer,M1 as Compiler,y as CodeGenerator,V3 as BUILD_DATE};
|
|
536
|
+
${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=C3,globalThis.importRip=e,globalThis.compileToJS=d,globalThis.__ripExports={compile:y1,compileToJS:d,formatSExpr:x,getStdlibCode:H1,VERSION:L3,BUILD_DATE:h3,getReactiveRuntime:z1,getComponentRuntime:b1};async function y3(){if(globalThis.__ripLaunched)return;let $=e.modules?.["app.rip"];if(!$?.launch)return;let W=document.querySelector("script[data-url], script[data-hash]"),A=document.querySelectorAll('script[type="text/rip"][data-name]').length>0;if(!W&&!A)return;let U=W?.getAttribute("data-url")||"",f={hash:W?.getAttribute("data-hash")!=="false"};if(U)f.bundleUrl=U;await $.launch("",f)}if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let W=()=>j3().then(y3).then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(W));else queueMicrotask(W)});var P1={};g2(P1,{throttle:()=>g3,stash:()=>h2,setContext:()=>N2,raw:()=>V2,launch:()=>x3,isStash:()=>b3,hold:()=>l3,hasContext:()=>E2,getContext:()=>G2,delay:()=>j2,debounce:()=>v3,createRouter:()=>y2,createResource:()=>c3,createRenderer:()=>b2,createComponents:()=>C2});var K2,l1,u1,m,G1,D2,r,j,c1,Y1,_1,x1,M2,H2,q1,O1,z2,q2,O2,v1,g1,G2,P2,k1,E2,F1,m1,I2,B2,N2,T2,S2,n1,L2;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,A)=>$.map((U)=>U[A]));({__state:j,__effect:r,__batch:D2}=globalThis.__rip);({setContext:N2,getContext:G2,hasContext:E2}=globalThis.__ripComponent||{});G1=Symbol("stash");m=Symbol("signals");u1=Symbol("raw");l1=new WeakMap;c1=0;x1=j(0);k1=function($,W){let A;if(!$[m])Object.defineProperty($,m,{value:new Map,enumerable:!1});if(A=$[m].get(W),!A)A=j($[W]),$[m].set(W,A);return A};F1=function($){return k1($,Symbol.for("keys"))};L2=function($){let W;if(!($!=null&&typeof $==="object"))return $;if($[G1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(W=l1.get($),W)return W;return m1($)};m1=function($){let W,A;return A=null,W={get:function(U,u){let f,F;if(u===G1)return!0;if(u===u1)return U;if(typeof u==="symbol")return Reflect.get(U,u);if(u==="length"&&Array.isArray(U))return F1(U).value,U.length;if(u==="get")return function(Y){return T2(A,Y)};if(u==="set")return function(Y,_){return S2(A,Y,_)};if(f=k1(U,u),F=f.value,F!=null&&typeof F==="object")return L2(F);return F},set:function(U,u,f){let F,Y;if(F=U[u],Y=f?.[u1]?f[u1]:f,Y===F)return!0;if(U[u]=Y,U[m]?.has(u))U[m].get(u).value=Y;if(F===void 0&&Y!==void 0)F1(U).value=++c1;return x1.value++,!0},deleteProperty:function(U,u){let f;if(delete U[u],f=U[m]?.get(u),f)f.value=void 0;return F1(U).value=++c1,!0},ownKeys:function(U){return F1(U).value,Reflect.ownKeys(U)}},A=new Proxy($,W),l1.set($,A),A};K2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;n1=function($){let W,A,U,u,f;U=("."+$).split(K2),U.shift(),f=[],A=0;while(A<U.length){if(u=U[A],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));A+=2}return f};T2=function($,W){let A,U;U=n1(W),A=$;for(let u of U){if(A==null)return;A=A[u]}return A};S2=function($,W,A){let U,u;u=n1(W),U=$;for(let f=0;f<u.length;f++){let F=u[f];if(f===u.length-1)U[F]=A;else{if(U[F]==null)U[F]={};U=U[F]}}return A};_1=function($){return typeof $==="function"?$:function(){return $.value}};Y1=function($,W){let A;return A={read:function(){return $.read()}},Object.defineProperty(A,"value",{get:function(){return $.value},set:function(U){return W.value=U}}),A};O2=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};B2=function($){let W,A;return W=[],A=$.replace(/\*(\w+)/g,function(U,u){return W.push(u),"(.+)"}).replace(/:(\w+)/g,function(U,u){return W.push(u),"([^/]+)"}),{regex:new RegExp("^"+A+"$"),names:W}};I2=function($,W){let A,U;for(let u of W)if(A=$.match(u.regex.regex),A){U={};for(let f=0;f<u.regex.names.length;f++){let F=u.regex.names[f];U[F]=decodeURIComponent(A[f+1])}return{route:u,params:U}}return null};q1=function($,W="components"){let A,U,u,f,F,Y,_,X,R;_=[],u=new Map,A=$.listAll(W);for(let K of A){if(Y=K.slice(W.length+1),!Y.endsWith(".rip"))continue;if(f=Y.split("/").pop(),f==="_layout.rip"){U=Y==="_layout.rip"?"":Y.slice(0,-12),u.set(U,K);continue}if(f.startsWith("_"))continue;if(X=Y.split("/"),X.length>1&&X.some(function(H,Z){return Z<X.length-1&&H.startsWith("_")}))continue;R=O2(Y),F=B2(R),_.push({pattern:R,regex:F,file:K,rel:Y})}return _.sort(function(K,H){let Z,J,Q,D;if(J=(K.pattern.match(/:/g)||[]).length,D=(H.pattern.match(/:/g)||[]).length,Z=K.pattern.includes("*")?1:0,Q=H.pattern.includes("*")?1:0,Z!==Q)return Z-Q;if(J!==D)return J-D;return K.pattern.localeCompare(H.pattern)}),{routes:_,layouts:u}};P2=function($,W,A){let U,u,f,F;if(U=[],f=$.slice(W.length+1),F=f.split("/"),u="",A.has(""))U.push(A.get(""));for(let Y=0;Y<F.length;Y++){let _=F[Y];if(Y===F.length-1)break;if(u=u?u+"/"+_:_,A.has(u))U.push(A.get(u))}return U};M2=function($,W){if($.length!==W.length)return!1;for(let A=0;A<$.length;A++)if($[A]!==W[A])return!1;return!0};g1=function($){for(let W in $){let A=$[W];if(typeof A==="function"&&(A.prototype?.mount||A.prototype?._create))return A}return typeof $.default==="function"?$.default:void 0};v1=function($){let W;W={};for(let A in $){let U=$[A];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))W[A]=U}return W};q2=function($){let W;return W=$.split("/").pop().replace(/\.rip$/,""),W.replace(/(^|[-_])([a-z])/g,function(A,U,u){return u.toUpperCase()})};H2=function($,W="components"){let A,U,u;U={};for(let f of $.listAll(W)){if(!f.endsWith(".rip"))continue;if(A=f.split("/").pop(),A.startsWith("_"))continue;if(u=q2(f),U[u])console.warn(`[Rip] Component name collision: ${u} (${U[u]} vs ${f})`);U[u]=f}return U};O1=async function($,W,A=null,U=null,u=null){let f,F,Y,_,X,R,K,H,Z,J,Q,D;if(A&&U){if(F=A.getCompiled(U),F)return F}if(K=W($),u){J={};for(let M in u.map){let q=u.map[M];if(q!==U&&K.includes(`new ${M}(`)){if(!u.classes[M]){if(_=A.read(q),_){Y=await O1(_,W,A,q,u),X=v1(Y);for(let O in X){let z=X[O];u.classes[O]=z}}}if(u.classes[M])J[M]=!0}}if(Z=Object.keys(J),Z.length>0)Q=`const {${Z.join(", ")}} = globalThis['${u.key}'];
|
|
537
|
+
`,K=Q+K}if(R=U?`// ${U}
|
|
538
|
+
`:"",f=new Blob([R+K],{type:"application/javascript"}),D=URL.createObjectURL(f),H=await import(D),u){X=v1(H);for(let M in X){let q=X[M];u.classes[M]=q}}if(A&&U)A.setCompiled(U,H);return H};z2=function($){let W,A,U;return U=1000,A=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,A)}},W()};var h2=function($={}){return m1($)},V2=function($){return $?.[u1]?$[u1]:$},b3=function($){return $?.[G1]===!0},c3=function($,W={}){let A,U,u,f,F;if(A=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 $(),A.value=Y}catch(_){return U.value=_}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(F,"data",{get:function(){return A.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return U.value}}),!W.lazy)f();return F},j2=function($,W){let A,U;return A=_1(W),U=j(!!A()),r(function(){let u;if(A())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?Y1(U,W):U},v3=function($,W){let A,U;return A=_1(W),U=j(A()),r(function(){let u,f;return f=A(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Y1(U,W):U},g3=function($,W){let A,U,u;return A=_1(W),u=j(A()),U=0,r(function(){let f,F,Y,_;if(_=A(),f=Date.now(),F=$-(f-U),F<=0)return u.value=_,U=f;else return Y=setTimeout(function(){return u.value=A(),U=Date.now()},F),function(){return clearTimeout(Y)}}),typeof W!=="function"?Y1(u,W):u},l3=function($,W){let A,U;return A=_1(W),U=j(!!A()),r(function(){let u;if(A())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Y1(U,W):U},C2=function(){let $,W,A,U;return W=new Map,U=[],$=new Map,A=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),A(F?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),A("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[_]of W)if(_.startsWith(f)){if(F=_.slice(f.length),F.includes("/"))continue;Y.push(_)}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)}}},y2=function($,W={}){let A,U,u,f,F,Y,_,X,R,K,H,Z,J,Q,D,M,q,O,z,E,P;if(q=W.root||"components",R=W.base||"",K=W.hash||!1,J=W.onError||null,z=function(w){return R&&w.startsWith(R)?w.slice(R.length)||"/":w},X=function(w){return R?R+w:w},D=function(){let w;if(K){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 K?w==="/"?location.pathname:"#"+w.slice(1):X(w)},F=j(z(K?D():location.pathname)),f=j({}),_=j(null),U=j([]),Y=j({}),A=j(""),u=j2(100,j(!1)),E=q1($,q),H=new Set,$.watch(function(w,G){if(!G.startsWith(q+"/"))return;return E=q1($,q)}),M=function(w){let G,I,B,N,T;if(N=w.split("?")[0].split("#")[0],I=z(N),I=I[0]==="/"?I:"/"+I,B=w.split("?")[1]?.split("#")[0]||"",G=w.includes("#")?w.split("#")[1]:"",T=I2(I,E.routes),T){D2(function(){return F.value=I,f.value=T.params,_.value=T.route,U.value=P2(T.route.file,q,E.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),A.value=G});for(let L of H)L(O.current);return!0}if(J)J({status:404,path:I});return!1},Q=function(){return M(D())},typeof window<"u")window.addEventListener("popstate",Q);if(Z=function(w){let G,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(),G=K&&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(w){return M(w)?history.pushState(null,"",P(F.read())):void 0},replace:function(w){return M(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=q1($,q)},routes:void 0,init:function(){return M(D()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Q);if(typeof document<"u")document.removeEventListener("click",Z);return H.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:F.value,params:f.value,route:_.value,layouts:U.value,query:Y.value,hash:A.value}}}),Object.defineProperty(O,"path",{get:function(){return F.value}}),Object.defineProperty(O,"params",{get:function(){return f.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return U.value}}),Object.defineProperty(O,"query",{get:function(){return Y.value}}),Object.defineProperty(O,"hash",{get:function(){return A.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(w){return u.value=w}}),Object.defineProperty(O,"routes",{get:function(){return E.routes}}),O},b2=function($={}){let W,A,U,u,f,F,Y,_,X,R,K,H,Z,J,Q,D,M,q,O,z,E,P;if({router:z,app:W,components:f,resolver:O,compile:U,target:E,onError:M}=$,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,R=null,X=null,_=[],Z=[],Q=F,H=0,K=null,u=new Map,J=$.cacheSize||10,A=function(){let w,G;if(Y&&R){if(Y.beforeUnmount)Y.beforeUnmount();if(u.set(R,Y),u.size>J){if(G=u.keys().next().value,w=u.get(G),w.unmounted)w.unmounted();u.delete(G)}return Y=null,R=null}},P=function(){A();for(let w=Z.length-1;w>=0;w--){let G=Z[w];if(G.beforeUnmount)G.beforeUnmount();if(G.unmounted)G.unmounted();G._target?.remove()}return Z=[],Q=F},f.watch(function(w,G){let I;if(u.has(G)){if(I=u.get(G),I.unmounted)I.unmounted();return u.delete(G)}}),D=async function(w){let G,I,B,N,T,L,V,c,Z1,E1,f1,i1,n,p1,R1,o,Q1,I1,C,d1,B1,a;if({route:C,params:o,layouts:c,query:I1}=w,!C)return;if(C.file===R&&JSON.stringify(o)===JSON.stringify(X))return;return X=o,N=++H,z.navigating=!0,(async()=>{try{if(B1=f.read(C.file),!B1){if(M)M({status:404,message:`File not found: ${C.file}`});z.navigating=!1;return}if(i1=await O1(B1,U,f,C.file,O),N!==H){z.navigating=!1;return}if(G=g1(i1),!G){if(M)M({status:500,message:`No component found in ${C.file}`});z.navigating=!1;return}if(f1=!M2(c,_),p1=Y?._target,f1)P();else A();if(n=f1?F:Q,f1&&c.length>0){F.innerHTML="",n=F;for(let v of c){if(E1=f.read(v),!E1)continue;if(Z1=await O1(E1,U,f,v,O),N!==H){z.navigating=!1;return}if(I=g1(Z1),!I)continue;if(L=new I({app:W,params:o,router:z}),L.beforeMount)L.beforeMount();a=document.createElement("div"),a.setAttribute("data-layout",v),n.appendChild(a),L.mount(a),Z.push(L),d1=a.querySelector("#content")||a,n=d1}_=[...c],Q=n}else if(f1)F.innerHTML="",_=[],Q=F;if(B=u.get(C.file),B)u.delete(C.file),n.appendChild(B._target),Y=B,R=C.file;else{if(R1=document.createElement("div"),R1.setAttribute("data-component",C.file),n.appendChild(R1),V=new G({app:W,params:o,query:I1,router:z}),V.beforeMount)V.beforeMount();if(V.mount(R1),Y=V,R=C.file,V.load)await V.load(o,I1)}return p1?.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 ${C.file}:`,v),M)M({status:500,message:v.message,error:v});T=!1;for(let N1=Z.length-1;N1>=0;N1--){let r1=Z[N1];if(r1.onError)try{r1.onError(v),T=!0;break}catch(c2){console.error("Renderer: error boundary failed:",c2)}}return(()=>{if(!T)return Q1=document.createElement("pre"),Q1.style.cssText="color:red;padding:1em",Q1.textContent=v.stack||v.message,F.innerHTML="",F.appendChild(Q1)})()}})()},q={start:function(){return K=r(function(){let w;return w=z.current,w.route?D(w):void 0}),z.init(),q},stop:function(){if(P(),K)K(),K=null;return F.innerHTML=""},remount:function(){let w;return w=z.current,w.route?D(w):void 0},cache:u},q},x3=async function($="",W={}){let A,U,u,f,F,Y,_,X,R,K,H,Z,J,Q,D,M,q,O,z,E,P;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),P=W.target||"#app",R=W.compile||null,Q=W.persist||!1,Z=W.hash||!1,!R)R=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(P))H=document.createElement("div"),H.id=P.replace(/^#/,""),document.body.prepend(H);if(W.bundle)Y=W.bundle;else if(W.bundleUrl){if(M=await fetch(W.bundleUrl,{cache:"no-cache"}),!M.ok)throw Error(`launch: ${W.bundleUrl} (${M.status})`);Y=await M.json()}else if(W.components&&Array.isArray(W.components)){K={};for(let w of W.components)if(M=await fetch(w),M.ok)J=w.split("/").pop(),K[`components/${J}`]=await M.text();Y={components:K,data:{}}}else if(typeof document<"u"&&document.querySelectorAll('script[type="text/rip"][data-name]').length>0){K={};for(let w of document.querySelectorAll('script[type="text/rip"][data-name]'))J=w.getAttribute("data-name"),J+=!J.endsWith(".rip")?".rip":void 0,K[`components/${J}`]=w.textContent;Y={components:K,data:{}}}else{if(_=`${$}/bundle`,M=await fetch(_,{cache:"no-cache"}),!M.ok)throw Error(`launch: ${_} (${M.status})`);Y=await M.json()}if(f=h2({components:{},routes:{},data:{}}),Y.data)f.data=Y.data;if(Y.routes)f.routes=Y.routes;if(Q&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=Q==="local"?localStorage:sessionStorage;try{if(z=U.getItem(u),z){E=JSON.parse(z);for(let w in E){let G=E[w];f.data[w]=G}}}catch{}A=function(){return(()=>{try{return U.setItem(u,JSON.stringify(V2(f.data)))}catch{return null}})()},r(function(){let w;return x1.value,w=setTimeout(A,2000),function(){return clearTimeout(w)}}),window.addEventListener("beforeunload",A)}if(F=C2(),Y.components)F.load(Y.components);if(X=`__rip_${$.replace(/\//g,"_")||"app"}`,q={map:H2(F),classes:{},key:X},typeof globalThis<"u")globalThis[X]=q.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(O=y2(F,{root:"components",base:$,hash:Z,onError:function(w){return console.error(`[Rip] Error ${w.status}: ${w.message||w.path}`)}}),D=b2({router:O,app:f,components:F,resolver:q,compile:R,target:P,onError:function(w){return console.error(`[Rip] ${w.message}`,w.error)}}),D.start(),Y.data?.watch)z2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:F,router:O,renderer:D,cache:D.cache,version:"0.3.0"};return{app:f,components:F,router:O,renderer:D}};e.modules["app.rip"]=P1;for(let[$,W]of Object.entries(P1))if(typeof W==="function")globalThis[$]=W;export{C3 as rip,j3 as processRipScripts,s as parser,e as importRip,H1 as getStdlibCode,z1 as getReactiveRuntime,b1 as getComponentRuntime,x as formatSExpr,d as compileToJS,y1 as compile,L3 as VERSION,p as Lexer,M1 as Compiler,y as CodeGenerator,h3 as BUILD_DATE};
|