rip-lang 3.13.113 → 3.13.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/dist/rip.js +10 -6
- package/docs/dist/rip.min.js +51 -51
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +1 -1
- package/src/compiler.js +3 -1
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
(()=>{var{defineProperty:k1,getOwnPropertyNames:Z3,getOwnPropertyDescriptor:z3}=Object,Q3=Object.prototype.hasOwnProperty;function X3(f){return this[f]}var K3=(f)=>{var U=(F2??=new WeakMap).get(f),_;if(U)return U;if(U=k1({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var w of Z3(f))if(!Q3.call(U,w))k1(U,w,{get:X3.bind(f,w),enumerable:!(_=z3(f,w))||_.enumerable})}return F2.set(f,U),U},F2;var J3=(f)=>f;function D3(f,U){this[f]=J3.bind(null,U)}var Y2=(f,U)=>{for(var _ in U)k1(f,_,{get:U[_],enumerable:!0,configurable:!0,set:D3.bind(U,_)})};var J7={};Y2(J7,{rip:()=>V2,processRipScripts:()=>T2,parser:()=>Q1,importRip:()=>K1,getStdlibCode:()=>I1,getReactiveRuntime:()=>B1,getComponentRuntime:()=>N1,formatSExpr:()=>W1,compileToJS:()=>Y1,compile:()=>b1,VERSION:()=>S2,Lexer:()=>A1,Compiler:()=>E1,CodeGenerator:()=>$1,BUILD_DATE:()=>L2});function z2(f){let U=f.prototype;U.rewriteTypes=function(){let _=this.tokens,w=(u,$,F)=>{let W=[u,$];if(W.pre=0,W.data=null,W.loc=F?.loc??{r:0,c:0,n:0},W.spaced=!1,W.newLine=!1,W.generated=!0,F)W.origin=F;return W};this.scanTokens((u,$,F)=>{let W=u[0];if(W==="IDENTIFIER"){let Y=F[$+1];if(Y&&Y[0]==="COMPARE"&&Y[1]==="<"&&!Y.spaced){let Z=F[$-1]?.[0]==="DEF",R=A2(F,$+1);if(R&&Z){if(!u.data)u.data={};if(u.data.typeParams=D1(R),F.splice($+1,R.length),F[$+1]?.[0]==="("){F[$+1][0]="CALL_START";let A=1,Q=$+2;while(Q<F.length&&A>0){if(F[Q][0]==="("||F[Q][0]==="CALL_START")A++;if(F[Q][0]===")"||F[Q][0]==="CALL_END")A--;if(A===0)F[Q][0]="CALL_END";Q++}}}}}if(W==="TYPE_ANNOTATION"){let Y=F[$-1];if(!Y)return 1;let Z=R2(F,$+1),R=D1(Z),A=Y,Q="type";if(Y[0]==="CALL_END"||Y[0]===")"){let H=1,M=$-2;while(M>=0&&H>0){let
|
|
2
|
-
`):[];for(let K=0;K<f.length;K++){let E=f[K][0];if(E==="REACTIVE_ASSIGN")Z=!0;else if(E==="COMPUTED_ASSIGN")R=!0}let X=(K,E,P)=>{if(E.startsWith("{ ")&&E.endsWith(" }")){let J=0,D=-1;for(let I=0;I<E.length;I++)if(E[I]==="{")J++;else if(E[I]==="}"){if(J--,J===0){D=I;break}}if(D===E.length-1){let I=E.slice(2,-2).split("; ").filter((S)=>S.trim());if(I.length>0){w.push(`${F()}${K}{`),u++;for(let S of I)w.push(`${F()}${S};`);u--,w.push(`${F()}}${P}`);return}}}w.push(`${F()}${K}${E}${P}`)},H=(K,E)=>{E++;let P=0;while(E<K.length){let J=K[E];if(J[0]==="("||J[0]==="["||J[0]==="{")P++;if(J[0]===")"||J[0]==="]"||J[0]==="}"){if(P===0)break;P--}if(P===0&&J[1]===",")break;E++}return E},M=(K,E)=>{let P=[],J=!1,D=E+1,I=1;while(D<K.length&&I>0){if(K[D][0]==="{")I++;if(K[D][0]==="}")I--;if(I<=0){D++;break}if(K[D][0]==="..."||K[D][0]==="SPREAD"){if(D++,K[D]?.[0]==="IDENTIFIER")P.push({kind:"rest",propName:K[D][1]}),D++;continue}if(K[D][0]==="PROPERTY"&&K[D+1]?.[0]===":"){let B=K[D][1];if(D+=2,K[D]?.[0]==="{"){let V=M(K,D);if(V.hasAnyType)J=!0;P.push({kind:"nested-obj",propName:B,inner:V}),D=V.endJ;continue}if(K[D]?.[0]==="["){let V=
|
|
1
|
+
(()=>{var{defineProperty:k1,getOwnPropertyNames:Z3,getOwnPropertyDescriptor:z3}=Object,Q3=Object.prototype.hasOwnProperty;function X3(f){return this[f]}var K3=(f)=>{var U=(F2??=new WeakMap).get(f),_;if(U)return U;if(U=k1({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var w of Z3(f))if(!Q3.call(U,w))k1(U,w,{get:X3.bind(f,w),enumerable:!(_=z3(f,w))||_.enumerable})}return F2.set(f,U),U},F2;var J3=(f)=>f;function D3(f,U){this[f]=J3.bind(null,U)}var Y2=(f,U)=>{for(var _ in U)k1(f,_,{get:U[_],enumerable:!0,configurable:!0,set:D3.bind(U,_)})};var J7={};Y2(J7,{rip:()=>V2,processRipScripts:()=>T2,parser:()=>Q1,importRip:()=>K1,getStdlibCode:()=>I1,getReactiveRuntime:()=>B1,getComponentRuntime:()=>N1,formatSExpr:()=>W1,compileToJS:()=>Y1,compile:()=>b1,VERSION:()=>S2,Lexer:()=>A1,Compiler:()=>E1,CodeGenerator:()=>$1,BUILD_DATE:()=>L2});function z2(f){let U=f.prototype;U.rewriteTypes=function(){let _=this.tokens,w=(u,$,F)=>{let W=[u,$];if(W.pre=0,W.data=null,W.loc=F?.loc??{r:0,c:0,n:0},W.spaced=!1,W.newLine=!1,W.generated=!0,F)W.origin=F;return W};this.scanTokens((u,$,F)=>{let W=u[0];if(W==="IDENTIFIER"){let Y=F[$+1];if(Y&&Y[0]==="COMPARE"&&Y[1]==="<"&&!Y.spaced){let Z=F[$-1]?.[0]==="DEF",R=A2(F,$+1);if(R&&Z){if(!u.data)u.data={};if(u.data.typeParams=D1(R),F.splice($+1,R.length),F[$+1]?.[0]==="("){F[$+1][0]="CALL_START";let A=1,Q=$+2;while(Q<F.length&&A>0){if(F[Q][0]==="("||F[Q][0]==="CALL_START")A++;if(F[Q][0]===")"||F[Q][0]==="CALL_END")A--;if(A===0)F[Q][0]="CALL_END";Q++}}}}}if(W==="TYPE_ANNOTATION"){let Y=F[$-1];if(!Y)return 1;let Z=R2(F,$+1),R=D1(Z),A=Y,Q="type";if(Y[0]==="CALL_END"||Y[0]===")"){let H=1,M=$-2;while(M>=0&&H>0){let O=F[M][0];if(O==="CALL_END"||O===")")H++;if(O==="CALL_START"||O==="(")H--;M--}if(M>=0)A=F[M];Q="returnType"}else if(Y[0]==="PARAM_END"){let H=$+1+Z.length,M=F[H];if(M&&(M[0]==="->"||M[0]==="=>"))A=M;Q="returnType"}else if(Y[0]==="IDENTIFIER"&&$>=2&&F[$-2]?.[0]==="DEF")Q="returnType";if(!A.data)A.data={};A.data[Q]=R;let X=1+Z.length;return F.splice($,X),0}if(W==="IDENTIFIER"&&u[1]==="type"){let Y=F[$-1]?.[0];if(!(!Y||Y==="TERMINATOR"||Y==="INDENT"||Y==="EXPORT"))return 1;let R=$+1,A=F[R];if(!A||A[0]!=="IDENTIFIER")return 1;let Q=A[1],X=Y==="EXPORT",H=X?$-1:$,M=R+1;if(F[M]?.[0]==="COMPARE"&&F[M]?.[1]==="<"&&!F[M].spaced){let K=A2(F,M);if(K){if(!A.data)A.data={};A.data.typeParams=D1(K),F.splice(M,K.length)}}if(F[M]?.[0]!=="=")return 1;let O=(K)=>{let E=w("TYPE_DECL",Q,A);if(E.data={name:Q,typeText:K,exported:X},A.data?.typeParams)E.data.typeParams=A.data.typeParams;return E},z=M+1,q=F[z];if(q&&(q[0]==="TERMINATOR"||q[0]==="INDENT")){let K=H3(F,z);if(K)return F.splice(H,K.endIdx-H+1,O(K.typeText)),0}if(q&&q[0]==="INDENT"){let K=m1(F,z);return F.splice(H,K-H+1,O(Z2(F,z))),0}let G=R2(F,z);return F.splice(H,z+G.length-H,O(D1(G))),0}if(W==="INTERFACE"){let Y=$>=1&&F[$-1]?.[0]==="EXPORT",Z=$+1,R=F[Z];if(!R)return 1;let A=R[1],Q=null,X=Z+1;if(F[X]?.[0]==="EXTENDS")Q=F[X+1]?.[1],X=X+2;if(F[X]?.[0]==="INDENT"){let H=Z2(F,X),M=m1(F,X),O=w("TYPE_DECL",A,R);O.data={name:A,kind:"interface",extends:Q,typeText:H,exported:Y};let z=Y?$-1:$,q=M-z+1;return F.splice(z,q,O),0}return 1}return 1})}}function R2(f,U){let _=[],w=0;while(U<f.length){let u=f[U],$=u[0],F=$==="("||$==="["||$==="{"||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&u[1]==="<",W=$===")"||$==="]"||$==="}"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&u[1]===">";if($==="SHIFT"&&u[1]===">>"&&w>=2){w-=2,_.push(u),U++;continue}if(F){w++,_.push(u),U++;continue}if(W){if(w>0){w--,_.push(u),U++;continue}break}if(w===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="EFFECT"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}_.push(u),U++}return _}function D1(f){if(f.length===0)return"";if(f[0]?.[0]==="=>")f.unshift(["","()"]);let U=f.map((_)=>_[1]).join(" ").replace(/\s+/g," ").trim();return U=U.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,": "),U}function A2(f,U){if(U>=f.length)return null;let _=f[U];if(_[0]!=="COMPARE"||_[1]!=="<")return null;let w=[_],u=1,$=U+1;while($<f.length&&u>0){let F=f[$];if(w.push(F),F[0]==="COMPARE"&&F[1]==="<")u++;else if(F[0]==="COMPARE"&&F[1]===">")u--;$++}return u===0?w:null}function Z2(f,U){let _=[],w=U+1,u=1;while(w<f.length&&u>0){let $=f[w];if($[0]==="INDENT"){u++,w++;continue}if($[0]==="OUTDENT"){if(u--,u===0)break;w++;continue}if($[0]==="TERMINATOR"){w++;continue}let F=$[0]==="PROPERTY"||$[0]==="IDENTIFIER"||u===1&&/^[a-zA-Z_$]/.test($[1])&&f[w+1]?.[0]==="TYPE_ANNOTATION";if(u===1&&F){let W=$[1],Y=!1,Z=!1;if(w++,W==="readonly"&&f[w]&&(f[w][0]==="PROPERTY"||f[w][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(f[w][1])&&f[w+1]?.[0]==="TYPE_ANNOTATION")){if(Z=!0,W=f[w][1],f[w].data?.predicate)Y=!0;w++}if($.data?.predicate)Y=!0;if(f[w]?.[1]==="?"&&!f[w]?.spaced)Y=!0,w++;if(f[w]?.[1]===":"||f[w]?.[0]==="TYPE_ANNOTATION")w++;let R=[],A=0;while(w<f.length){let M=f[w];if(M[0]==="INDENT"){A++,w++;continue}if(M[0]==="OUTDENT"){if(A>0){A--,w++;continue}break}if(M[0]==="TERMINATOR"&&A===0)break;R.push(M),w++}let Q=D1(R),X=Z?"readonly ":"",H=Y?"?":"";_.push(`${X}${W}${H}: ${Q}`)}else w++}return"{ "+_.join("; ")+" }"}function m1(f,U){let _=0;for(let w=U;w<f.length;w++){if(f[w][0]==="INDENT")_++;if(f[w][0]==="OUTDENT"){if(_--,_===0)return w}}return f.length-1}function H3(f,U){let _=U;if(f[_]?.[0]==="TERMINATOR")_++;if(f[_]?.[0]!=="INDENT")return null;let w=_;_++;while(_<f.length&&f[_][0]==="TERMINATOR")_++;if(!f[_]||f[_][1]!=="|")return null;let u=[],$=1;_=w+1;while(_<f.length&&$>0){let W=f[_];if(W[0]==="INDENT"){$++,_++;continue}if(W[0]==="OUTDENT"){if($--,$===0)break;_++;continue}if(W[0]==="TERMINATOR"){_++;continue}if(W[1]==="|"&&$===1){_++;let Y=[];while(_<f.length){let Z=f[_];if(Z[0]==="TERMINATOR"||Z[0]==="OUTDENT"||Z[1]==="|"&&$===1)break;Y.push(Z),_++}if(Y.length>0)u.push(D1(Y));continue}_++}if(u.length===0)return null;let F=m1(f,w);return{typeText:u.join(" | "),endIdx:F}}function n1(f,U=null,_=""){let w=[],u=0,$=" ",F=()=>$.repeat(u),W=!1,Y=new Set,Z=!1,R=!1,A=!1,Q=typeof _==="string"?_.split(`
|
|
2
|
+
`):[];for(let K=0;K<f.length;K++){let E=f[K][0];if(E==="REACTIVE_ASSIGN")Z=!0;else if(E==="COMPUTED_ASSIGN")R=!0}let X=(K,E,P)=>{if(E.startsWith("{ ")&&E.endsWith(" }")){let J=0,D=-1;for(let I=0;I<E.length;I++)if(E[I]==="{")J++;else if(E[I]==="}"){if(J--,J===0){D=I;break}}if(D===E.length-1){let I=E.slice(2,-2).split("; ").filter((S)=>S.trim());if(I.length>0){w.push(`${F()}${K}{`),u++;for(let S of I)w.push(`${F()}${S};`);u--,w.push(`${F()}}${P}`);return}}}w.push(`${F()}${K}${E}${P}`)},H=(K,E)=>{E++;let P=0;while(E<K.length){let J=K[E];if(J[0]==="("||J[0]==="["||J[0]==="{")P++;if(J[0]===")"||J[0]==="]"||J[0]==="}"){if(P===0)break;P--}if(P===0&&J[1]===",")break;E++}return E},M=(K,E)=>{let P=[],J=!1,D=E+1,I=1;while(D<K.length&&I>0){if(K[D][0]==="{")I++;if(K[D][0]==="}")I--;if(I<=0){D++;break}if(K[D][0]==="..."||K[D][0]==="SPREAD"){if(D++,K[D]?.[0]==="IDENTIFIER")P.push({kind:"rest",propName:K[D][1]}),D++;continue}if(K[D][0]==="PROPERTY"&&K[D+1]?.[0]===":"){let B=K[D][1];if(D+=2,K[D]?.[0]==="{"){let V=M(K,D);if(V.hasAnyType)J=!0;P.push({kind:"nested-obj",propName:B,inner:V}),D=V.endJ;continue}if(K[D]?.[0]==="["){let V=O(K,D);if(V.hasAnyType)J=!0;P.push({kind:"nested-arr",propName:B,inner:V}),D=V.endJ;continue}if(K[D]?.[0]==="IDENTIFIER"){let V=K[D][1],y=K[D].data?.type;if(y)J=!0;let L=K[D+1]?.[0]==="=";if(P.push({kind:"rename",propName:B,localName:V,type:y?u1(y):null,hasDefault:L}),D++,L)D=H(K,D)}continue}if(K[D][0]==="IDENTIFIER"){let B=K[D][1],V=K[D].data?.type;if(V)J=!0;let y=K[D+1]?.[0]==="=";if(P.push({kind:"simple",propName:B,type:V?u1(V):null,hasDefault:y}),D++,y)D=H(K,D);continue}D++}let S=[],N=[];for(let B of P)if(B.kind==="rest")S.push(`...${B.propName}`),N.push("[key: string]: unknown");else if(B.kind==="nested-obj"||B.kind==="nested-arr")S.push(`${B.propName}: ${B.inner.patternStr}`),N.push(`${B.propName}: ${B.inner.typeStr}`);else if(B.kind==="rename")S.push(`${B.propName}: ${B.localName}`),N.push(`${B.propName}${B.hasDefault?"?":""}: ${B.type||"any"}`);else S.push(B.propName),N.push(`${B.propName}${B.hasDefault?"?":""}: ${B.type||"any"}`);return{patternStr:`{${S.join(", ")}}`,typeStr:`{${N.join(", ")}}`,endJ:D,hasAnyType:J}},O=(K,E)=>{let P=[],J=[],D=!1,I=E+1,S=1;while(I<K.length&&S>0){if(K[I][0]==="[")S++;if(K[I][0]==="]")S--;if(S>0&&K[I][0]==="IDENTIFIER"){let N=K[I][1],B=K[I].data?.type;if(P.push(N),J.push(B?u1(B):null),B)D=!0}I++}return{patternStr:`[${P.join(", ")}]`,typeStr:`[${J.map((N)=>N||"any").join(", ")}]`,endJ:I,hasAnyType:D}},z=(K,E)=>{let P=[],J=[],D=E,I=K[D]?.[0];if(I!=="CALL_START"&&I!=="PARAM_START")return{params:P,fields:J,endIdx:D};let S=I==="CALL_START"?"CALL_END":"PARAM_END";D++;let N=0;while(D<K.length&&!(K[D][0]===S&&N===0)){let B=K[D];if(B[1]===","&&N===0){D++;continue}if(B[0]==="{"||B[0]==="["||B[0]==="CALL_START"||B[0]==="PARAM_START"||B[0]==="INDEX_START")N++;if(B[0]==="}"||B[0]==="]"||B[0]==="CALL_END"||B[0]==="PARAM_END"||B[0]==="INDEX_END"){N--,D++;continue}if(B[0]==="@"){if(D++,K[D]?.[0]==="PROPERTY"||K[D]?.[0]==="IDENTIFIER"){let V=K[D][1],y=K[D].data?.type;if(P.push(y?`${V}: ${u1(y)}`:V),y)J.push({name:V,type:u1(y)});D++}continue}if(B[0]==="SPREAD"||B[1]==="..."){if(D++,K[D]?.[0]==="IDENTIFIER"){let V=K[D][1],y=K[D].data?.type;P.push(y?`...${V}: ${u1(y)}`:`...${V}: any[]`),D++}continue}if(B[0]==="{"){N--;let V=M(K,D);if(D=V.endJ,V.hasAnyType)P.push(`${V.patternStr}: ${V.typeStr}`);else P.push(V.patternStr);continue}if(B[0]==="["){N--;let V=O(K,D);if(D=V.endJ,V.hasAnyType)P.push(`${V.patternStr}: ${V.typeStr}`);else P.push(V.patternStr);continue}if(B[0]==="IDENTIFIER"){let V=B[1],y=B.data?.type,L=!1;if(K[D+1]?.[0]==="=")L=!0;let a=L||B.data?.predicate;if(y)P.push(`${V}${a?"?":""}: ${u1(y)}`);else P.push(V);if(D++,L){D++;let T=0;while(D<K.length){let h=K[D];if(h[0]==="("||h[0]==="["||h[0]==="{")T++;if(h[0]===")"||h[0]==="]"||h[0]==="}")T--;if(T===0&&(h[1]===","||h[0]==="CALL_END"))break;D++}}continue}D++}return{params:P,fields:J,endIdx:D}};for(let K=0;K<f.length;K++){let E=f[K],P=E[0],J=!1;if(P==="EXPORT"){if(J=!0,K++,K>=f.length)break;if(E=f[K],P=E[0],P==="DEFAULT"){if(K++,K>=f.length)break;if(E=f[K],P=E[0],P==="IDENTIFIER")w.push(`${F()}export default ${E[1]};`);continue}}if(P==="IMPORT"){let D=[],I=K+1;while(I<f.length&&f[I][0]!=="TERMINATOR")D.push(f[I]),I++;let S="import "+D.map((N)=>N[1]).join(" ");S=S.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),w.push(`${F()}${S};`),K=I;continue}if(P==="TYPE_DECL"){let D=E.data;if(!D)continue;let I=J||D.exported?"export ":"",S=D.typeParams||"";if(D.kind==="interface"){let N=D.extends?` extends ${D.extends}`:"";X(`${I}interface ${D.name}${S}${N} `,D.typeText||"{}","")}else{let N=u1(D.typeText||"");X(`${I}type ${D.name}${S} = `,N,";")}continue}if(P==="ENUM"){let D=J?"export ":"",I=f[K+1];if(!I)continue;let S=I[1],N=K+2;if(f[N]?.[0]==="INDENT"){w.push(`${F()}${D}enum ${S} {`),u++,N++;let B=[];while(N<f.length&&f[N][0]!=="OUTDENT"){if(f[N][0]==="TERMINATOR"){N++;continue}if(f[N][0]==="IDENTIFIER"){let V=f[N][1];if(N++,f[N]?.[1]==="="){N++;let y=f[N]?.[1];B.push(`${V} = ${y}`),N++}else B.push(V)}else N++}for(let V=0;V<B.length;V++){let y=V<B.length-1?",":"";w.push(`${F()}${B[V]}${y}`)}u--,w.push(`${F()}}`)}continue}if(P==="CLASS"){let D=J?"export ":"",I=f[K+1];if(!I)continue;let S=I[1],N="",B=K+2;if(f[B]?.[0]==="EXTENDS")N=` extends ${f[B+1]?.[1]||""}`,B+=2;if(f[B]?.[0]==="INDENT"){let V=!1,y=B+1;while(y<f.length&&f[y][0]!=="OUTDENT"){if(f[y].data?.type||f[y].data?.returnType){V=!0;break}y++}if(V)w.push(`${F()}${D}declare class ${S}${N} {`),W=!0,Y.clear(),u++}continue}if(P==="DEF"){let D=f[K+1];if(!D)continue;let I=D[1],S=D.data?.returnType;if(!S&&D.data?.await===!0)S="void";let N=D.data?.typeParams||"",{params:B,endIdx:V}=z(f,K+2);if(S||B.some((y)=>y.includes(":"))){let y=J?"export ":"",L=W?"":J?"":"declare ",a=S?`: ${u1(S)}`:"",T=B.join(", ");if(W)w.push(`${F()}${I}${N}(${T})${a};`);else w.push(`${F()}${y}${L}function ${I}${N}(${T})${a};`)}K=V;continue}if(P==="{"&&W){let D=K+1,I=1;while(D<f.length&&I>0){let S=f[D];if(S[0]==="{"){I++,D++;continue}if(S[0]==="}"){I--,D++;continue}if(S[0]==="TERMINATOR"){D++;continue}if(S[0]==="PROPERTY"&&I===1){let N=S[1],B=S.data?.returnType;if(D++,f[D]?.[1]===":")D++;let V=[],y=[];if(f[D]?.[0]==="PARAM_START"){let L=z(f,D);V=L.params,y=L.fields,D=L.endIdx+1}if(f[D]?.[0]==="->"||f[D]?.[0]==="=>")D++;if(f[D]?.[0]==="INDENT"){let L=1;D++;while(D<f.length&&L>0){if(f[D][0]==="INDENT")L++;if(f[D][0]==="OUTDENT")L--;D++}}if(B||V.some((L)=>L.includes(":"))){let L=B?`: ${u1(B)}`:"",a=V.join(", ");if(N==="constructor"&&y.length){for(let T of y)if(!Y.has(T.name))w.push(`${F()}${T.name}: ${T.type};`),Y.add(T.name)}w.push(`${F()}${N}(${a})${L};`)}continue}D++}K=D-1;continue}if(P==="INDENT")continue;if(P==="OUTDENT"){if(W)u--,w.push(`${F()}}`),W=!1;continue}if(P==="IDENTIFIER"&&!W&&f[K+1]?.[0]==="="&&(f[K+2]?.[0]==="PARAM_START"||f[K+2]?.[0]==="(")){let D=E[1],I=K+2,{params:S}=z(f,I),N=I,B=0;while(N<f.length){if(f[N][0]==="PARAM_START"||f[N][0]==="(")B++;if(f[N][0]==="PARAM_END"||f[N][0]===")")B--;if(B===0&&(f[N][0]==="->"||f[N][0]==="=>"))break;N++}let V=f[N]?.data?.returnType;if(V||S.some((y)=>y.includes(":"))){let y=J?"export ":"",L=J?"":"declare ",a=V?`: ${u1(V)}`:"",T=S.join(", ");w.push(`${F()}${y}${L}function ${D}(${T})${a};`);continue}}if(P==="IDENTIFIER"&&E.data?.type){let D=E[1],I=u1(E.data.type),S=f[K+1];if(S){let N=J?"export ":"",B=J?"":"declare ";if(S[0]==="READONLY_ASSIGN")w.push(`${F()}${N}${B}const ${D}: ${I};`);else if(S[0]==="REACTIVE_ASSIGN")Z=!0,w.push(`${F()}${N}${B}const ${D}: Signal<${I}>;`);else if(S[0]==="COMPUTED_ASSIGN")R=!0,w.push(`${F()}${N}${B}const ${D}: Computed<${I}>;`);else if(S[0]==="EFFECT")w.push(`${F()}${N}${B}const ${D}: () => void;`);else if(S[0]==="="){let V=K+2;if(f[V]?.[0]==="PARAM_START"){let L=1,a=V+1;while(a<f.length&&L>0){if(f[a][0]==="PARAM_START")L++;if(f[a][0]==="PARAM_END")L--;a++}V=a}let y=f[V];if(y&&(y[0]==="->"||y[0]==="=>")&&y.data?.returnType){let L=u1(y.data.returnType),{params:a}=z(f,K+2),T=a.join(", ");w.push(`${F()}${N}${B}function ${D}(${T}): ${L};`)}else if(W)w.push(`${F()}${D}: ${I};`),Y.add(D);else w.push(`${F()}${N}let ${D}: ${I};`)}else if(W)w.push(`${F()}${D}: ${I};`),Y.add(D)}else if(W)w.push(`${F()}${D}: ${I};`)}}let q=new Set;if(U){if(A=i1(U,w,F,u,q,Q)||A,q.size>0)for(let K=w.length-1;K>=0;K--){let E=w[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(E&&q.has(E[1]))w.splice(K,1)}}if(w.length===0)return null;let G=[];if(A)G.push("type __RipElementMap = HTMLElementTagNameMap & Omit<SVGElementTagNameMap, keyof HTMLElementTagNameMap>;"),G.push("type __RipTag = keyof __RipElementMap;"),G.push("type __RipAttrKeys<T> = { [K in keyof T]-?: K extends 'style' ? never : T[K] extends (...args: any[]) => any ? never : K }[keyof T] & string;"),G.push("type __RipEvents = { [K in keyof HTMLElementEventMap as `@${K}`]?: ((event: HTMLElementEventMap[K]) => void) | null };"),G.push("type __RipProps<K extends __RipTag> = { [P in __RipAttrKeys<__RipElementMap[K]>]?: __RipElementMap[K][P] } & __RipEvents & { class?: string; style?: string; [k: `data-${string}`]: any; [k: `aria-${string}`]: any };");if(Z)G.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }"),G.push("declare function __state<T>(value: T | Signal<T>): Signal<T>;");if(R)G.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }"),G.push("declare function __computed<T>(fn: () => T): Computed<T>;");if(Z||R)G.push("declare function __effect(fn: () => void | (() => void)): () => void;");if(G.length>0)G.push("");return G.concat(w).join(`
|
|
3
3
|
`)+`
|
|
4
|
-
`}function u1(f){if(!f)return f;return f=f.replace(/::/g,":"),f=f.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),f}function i1(f,U,_,w,u,$){if(!Array.isArray(f))return!1;let F=f[0]?.valueOf?.()??f[0],W=!1,Y=!1,Z=null,R=null;if(F==="export"&&Array.isArray(f[1])){Y=!0;let A=f[1];if((A[0]?.valueOf?.()??A[0])==="="&&Array.isArray(A[2])&&(A[2][0]?.valueOf?.()??A[2][0])==="component")Z=A[1]?.valueOf?.()??A[1],R=A[2]}else if(F==="="&&Array.isArray(f[2])&&(f[2][0]?.valueOf?.()??f[2][0])==="component")Z=f[1]?.valueOf?.()??f[1],R=f[2];if(Z&&R){let A=Y?"export ":"",Q=R[1]?.valueOf?.()??null,X=Q?`__RipProps<'${Q}'>`:null;if(X)W=!0;let H=R[2],M=Array.isArray(H)&&(H[0]?.valueOf?.()??H[0])==="block"?H.slice(1):H?[H]:[],
|
|
4
|
+
`}function u1(f){if(!f)return f;return f=f.replace(/::/g,":"),f=f.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),f}function i1(f,U,_,w,u,$){if(!Array.isArray(f))return!1;let F=f[0]?.valueOf?.()??f[0],W=!1,Y=!1,Z=null,R=null;if(F==="export"&&Array.isArray(f[1])){Y=!0;let A=f[1];if((A[0]?.valueOf?.()??A[0])==="="&&Array.isArray(A[2])&&(A[2][0]?.valueOf?.()??A[2][0])==="component")Z=A[1]?.valueOf?.()??A[1],R=A[2]}else if(F==="="&&Array.isArray(f[2])&&(f[2][0]?.valueOf?.()??f[2][0])==="component")Z=f[1]?.valueOf?.()??f[1],R=f[2];if(Z&&R){let A=Y?"export ":"",Q=R[1]?.valueOf?.()??null,X=Q?`__RipProps<'${Q}'>`:null;if(X)W=!0;let H=R[2],M=Array.isArray(H)&&(H[0]?.valueOf?.()??H[0])==="block"?H.slice(1):H?[H]:[],O=[],z=[],q=!1,G=(K)=>{let E=K?.valueOf?.()??K;if(typeof E!=="string")return null;if(E==="true"||E==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(E))return"number";if(E.startsWith('"')||E.startsWith("'"))return"string";return null};for(let K of M){if(!Array.isArray(K))continue;let E=K[0]?.valueOf?.()??K[0],P,J,D,I,S;if(E==="state"||E==="readonly"||E==="computed"){if(P=K[1],D=Array.isArray(P)&&(P[0]?.valueOf?.()??P[0])==="."&&(P[1]?.valueOf?.()??P[1])==="this",J=D?P[2]?.valueOf?.()??P[2]:P?.valueOf?.()??P,I=D?P[2]?.type:P?.type,S=!0,!D){u.add(J);let V=E==="computed"?"Computed":"Signal",y=I?u1(I):G(K[2])||"any";z.push(` ${J}: ${V}<${y}>;`);continue}}else if(E==="."){if(D=(K[1]?.valueOf?.()??K[1])==="this",J=D?K[2]?.valueOf?.()??K[2]:null,I=D?K[2]?.type:null,S=!1,!D&&J)u.add(J)}else if(E==="object"){for(let V=1;V<K.length;V++){let y=K[V];if(!Array.isArray(y)||y.length<2)continue;let L=y[0]?.valueOf?.()??y[0],a=y[1];if(!Array.isArray(a))continue;let T=a[0]?.valueOf?.()??a[0];if(T!=="->"&&T!=="=>")continue;let h=a[1];if(!Array.isArray(h))continue;if(!h.some((i)=>i?.type))continue;let g=[];for(let i of h){let j=i?.valueOf?.()??i,b=i?.type?u1(i.type):"any";g.push(`${j}: ${b}`)}z.push(` ${L}(${g.join(", ")}): void;`)}continue}else continue;if(!D||!J)continue;let N=I?u1(I):"any",B=S?"?":"";if(!S)q=!0;if(O.push(` ${J}${B}: ${N};`),E==="state")O.push(` __bind_${J}__?: Signal<${N}>;`)}if(U.push(`${A}declare class ${Z} {`),O.length>0||X){let K=q?"":"?";if(O.length>0){U.push(` constructor(props${K}: {`);for(let E of O)U.push(E);U.push(X?` } & ${X});`:" });")}else U.push(` constructor(props${K}: ${X});`)}for(let K of z)U.push(K);U.push("}")}if(F==="program"||F==="block"){for(let A=1;A<f.length;A++)if(Array.isArray(f[A]))W=i1(f[A],U,_,w,u,$)||W}if(F==="export"&&Array.isArray(f[1])&&!R)W=i1(f[1],U,_,w,u,$)||W;return W}function Q2(f,U,_){let[w,u]=U,$=w?.valueOf?.()??w,F=[];if(Array.isArray(u)){let Z=u[0]==="block"?u.slice(1):[u];for(let R of Z)if(Array.isArray(R)){if(R[0]?.valueOf?.()==="="){let A=R[1]?.valueOf?.()??R[1],Q=R[2]?.valueOf?.()??R[2];F.push([A,Q])}}}if(F.length===0)return`const ${$} = {}`;let W=F.map(([Z,R])=>`${Z}: ${R}`).join(", "),Y=F.map(([Z,R])=>`${R}: "${Z}"`).join(", ");return`const ${$} = {${W}, ${Y}}`}var X2=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"]),K2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),p1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},J2=new Set(Object.keys(p1)),M3=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),G3=new Set(["break","continue","debugger"]),O3=new Set(["NEW","TYPEOF","DELETE"]),q3=new Set(["IN","OF","INSTANCEOF"]),h1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),I2=new Set([...h1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),V1=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","@","->","=>","[","(","{","--","++"]),P3=new Set(["+","-"]),E3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),I3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),z1=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),R1=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),B3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},D2=new Set(["CATCH","THEN","ELSE","FINALLY",...R1]),d1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),N3=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),S3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),H2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),L3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),O1=new Set(["INDENT","OUTDENT","TERMINATOR"]),M2=new Set([".","?."]),G2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),T3=new Set([...I2,"++","--"]),O2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),V3=new Set(["*","/","%","//","%%"]),h3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),C3=new Set(["<<",">>",">>>"]),j3=new Set(["!","~"]),y3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?![(]))?)([^\n\S]*:(?![=:>]))?/,b3=/^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,c3=/^(?:<=>|::|\*>|[-=]>|~>|~=|:>|:=|=!|===|!==|!\?|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,v3=/^[^\n\S]+/,g3=/^(?:\n[^\n\S]*)+/,x3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,l3=/^[-=]>/,k3=/^(?:~[=>]|=!)/,m3=/^(?:'''\\|"""\\|'''|"""|'|")/,i3=/^(?:[^\\']|\\[\s\S])*/,n3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,d3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,q2=/\n+([^\n\S]*)(?=\S)/g,r3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,P2=/^\w*/,o3=/^(?!.*(.).*\1)[gimsuy]*$/,a3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,s3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,t3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,e3=/\s+$/,E2=/^\s*(?:,|\??\.(?![.\d]))/,u7=65279;function C1(f,U,{pre:_=0,row:w=0,col:u=0,len:$=0,data:F=null}={}){let W=[f,U];return W.pre=_,W.data=F,W.loc={r:w,c:u,n:$},W.spaced=_>0,W.newLine=!1,W}function F1(f,U,_){let w=C1(f,U);if(w.generated=!0,_)w.origin=_;return w}function _1(f,{row:U=0,col:_=0,len:w=1}={}){let u=SyntaxError(f);throw u.location={first_line:U,first_column:_,last_column:_+w-1},u}function f7(f){if(f==null)return NaN;switch(f.charAt(1)){case"b":return parseInt(f.slice(2).replace(/_/g,""),2);case"o":return parseInt(f.slice(2).replace(/_/g,""),8);case"x":return parseInt(f.slice(2).replace(/_/g,""),16);default:return parseFloat(f.replace(/_/g,""))}}class A1{tokenize(f,U={}){this.code=f,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=U.row||0,this.col=U.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.inTypeAnnotation=!1,f=this.clean(f),this.code=f;while(this.pos<f.length){this.chunk=f.slice(this.pos);let _=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(_===0)_1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(_),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let _=this.ends[this.ends.length-1];_1(`missing ${_.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(f){if(f.charCodeAt(0)===u7)f=f.slice(1);if(f=f.replace(/\r\n?/g,`
|
|
5
5
|
`),f=f.replace(e3,""),/^[^\n\S]/.test(f))f=`
|
|
6
6
|
`+f;return f}advance(f){let U=this.code.slice(this.pos,this.pos+f);for(let _=0;_<U.length;_++)if(U[_]===`
|
|
7
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=f}emit(f,U,{len:_,data:w,pre:u}={}){let $=C1(f,U,{pre:u??0,row:this.row,col:this.col,len:_??(typeof U==="string"?U.length:0),data:w});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let f=this.prev();return f?f[0]:void 0}prevVal(){let f=this.prev();return f?f[1]:void 0}identifierToken(){if(k3.test(this.chunk))return 0;let f=y3.exec(this.chunk);if(!f)return 0;let[,U,_]=f,w=U.length,u={},$;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:w}),w;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:w}),w;if(U==="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",U,{len:w}),w}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:w}),w;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:w}),w;let F;if(U==="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 W=this.prev();if(_&&W&&W[0]==="TERNARY")_=null;if(_||W&&(W[0]==="."||W[0]==="?."||!W.spaced&&W[0]==="@")){if($="PROPERTY",this.inRenderBlock&&W&&W[0]==="."&&!_){let R=this.chunk.slice(w);while(R[0]==="-"&&/^-[a-zA-Z]/.test(R)){let A=/^-([a-zA-Z][\w]*)/.exec(R);if(!A)break;U+="-"+A[1],w+=1+A[1].length,R=this.chunk.slice(w)}}}else $="IDENTIFIER";let Y=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if($==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(X2.has(U)||K2.has(U)||J2.has(U))&&!(this.exportSpecifierList&&J2.has(U))){if(p1[U]!==void 0)u.original=U,U=p1[U];$=this.classifyKeyword(U,$,u)}if($==="IDENTIFIER"&&M3.has(Y)&&!(Y==="void"&&this.inTypeAnnotation))_1(`reserved word '${Y}'`,{row:this.row,col:this.col,len:w});if($==="PROPERTY"&&W){if(W[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(U.length>1&&U.endsWith("!"))u.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))u.predicate=!0,U=U.slice(0,-1);let Z=this.emit($,U,{len:w,data:Object.keys(u).length?u:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(_)return this.emit(":",":",{len:1}),w+_.length;return w}classifyKeyword(f,U,_){switch(f){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return f}if(
|
|
7
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=f}emit(f,U,{len:_,data:w,pre:u}={}){let $=C1(f,U,{pre:u??0,row:this.row,col:this.col,len:_??(typeof U==="string"?U.length:0),data:w});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let f=this.prev();return f?f[0]:void 0}prevVal(){let f=this.prev();return f?f[1]:void 0}identifierToken(){if(k3.test(this.chunk))return 0;let f=y3.exec(this.chunk);if(!f)return 0;let[,U,_]=f,w=U.length,u={},$;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:w}),w;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:w}),w;if(U==="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",U,{len:w}),w}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:w}),w;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:w}),w;let F;if(U==="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 W=this.prev();if(_&&W&&W[0]==="TERNARY")_=null;if(_||W&&(W[0]==="."||W[0]==="?."||!W.spaced&&W[0]==="@")){if($="PROPERTY",this.inRenderBlock&&W&&W[0]==="."&&!_){let R=this.chunk.slice(w);while(R[0]==="-"&&/^-[a-zA-Z]/.test(R)){let A=/^-([a-zA-Z][\w]*)/.exec(R);if(!A)break;U+="-"+A[1],w+=1+A[1].length,R=this.chunk.slice(w)}}}else $="IDENTIFIER";let Y=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if($==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(X2.has(U)||K2.has(U)||J2.has(U))&&!(this.exportSpecifierList&&J2.has(U))){if(p1[U]!==void 0)u.original=U,U=p1[U];$=this.classifyKeyword(U,$,u)}if($==="IDENTIFIER"&&M3.has(Y)&&!(Y==="void"&&this.inTypeAnnotation))_1(`reserved word '${Y}'`,{row:this.row,col:this.col,len:w});if($==="PROPERTY"&&W){if(W[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(U.length>1&&U.endsWith("!"))u.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))u.predicate=!0,U=U.slice(0,-1);let Z=this.emit($,U,{len:w,data:Object.keys(u).length?u:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(_)return this.emit(":",":",{len:1}),w+_.length;return w}classifyKeyword(f,U,_){switch(f){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return f}if(G3.has(f))return"STATEMENT";let w=f.toUpperCase();if(w==="WHEN"&&O1.has(this.prevTag()))return"LEADING_WHEN";if(w==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(w==="UNLESS")return"UNLESS";if(w==="IMPORT")return this.seenImport=!0,"IMPORT";if(w==="EXPORT")return this.seenExport=!0,"EXPORT";if(O3.has(w))return"UNARY";if(q3.has(w)){if(w!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+w;if(this.prevVal()==="!"){let u=this.tokens.pop();_.invert=u.data?.original||u[1]}return"RELATION"}if(X2.has(f)||K2.has(f))return w;return U}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let U=this.prev();if(U&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY"))return 0;let _=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(_)return this.emit("IDENTIFIER","div#"+_[1]),_[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let f=x3.exec(this.chunk);if(!f)return 0;return f[0].length}whitespaceToken(){let f=v3.exec(this.chunk);if(!f&&this.chunk[0]!==`
|
|
8
8
|
`)return 0;let U=this.prev();if(U)if(f)U.spaced=!0,U.pre=f[0].length;else U.newLine=!0;return f?f[0].length:0}lineToken(){let f=g3.exec(this.chunk);if(!f)return 0;let U=f[0],_=U.length-1-U.lastIndexOf(`
|
|
9
|
-
`);if(this.isUnfinished()){if(_<this.indent&&/^\s*,/.test(this.chunk)&&!
|
|
10
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&E2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let _=this.tokens[U-2][0];if(_==="INDENT"||_==="TERMINATOR"||_==="OUTDENT")return!1}}let f=this.tokens[this.tokens.length-1];if(f?.[0]==="COMPARE"&&f[1]===">"){let U=0;for(let _=this.tokens.length-1;_>=0;_--){let w=this.tokens[_];if(w[0]==="COMPARE"&&w[1]===">")U++;else if(w[0]==="COMPARE"&&w[1]==="<")U--;if(U===0&&w[0]==="TYPE_ANNOTATION")return!1;if(w[0]==="TERMINATOR"||w[0]==="INDENT"||w[0]==="OUTDENT")break}}return E2.test(this.chunk)||
|
|
11
|
-
`)u--;u++;let $=this.chunk.slice(u,w),F=/^\s*$/.test($)?$.length:null,W="";for(let R of _)if(R[0]==="NEOSTRING")W+=R[1];let Y=null,Z;q2.lastIndex=0;while(Z=q2.exec(W))if(Y===null||Z[1].length>0&&Z[1].length<Y.length)Y=Z[1];if(F===null)return Y;if(Y===null)return" ".repeat(F);if(F<=Y.length)return" ".repeat(F);return Y}matchWithInterpolations(f,U,_,w){if(!_)_=U;if(!w)w=/^[#$]\{/;let u=[],$=U.length;if(this.chunk.slice(0,$)!==U)return null;let F=this.chunk.slice($);while(!0){let[W]=f.exec(F);u.push(["NEOSTRING",W,{offset:$}]),F=F.slice(W.length),$+=W.length;let Y=w.exec(F);if(!Y)break;let R=Y[0].length-1,A=F.slice(R),Q=new A1().tokenize(A,{row:this.row,col:this.col+$+R,untilBalanced:!0,rewrite:!1}),X=Q.index+R;if(F[X-1]==="}"){let M=Q.tokens[0],
|
|
12
|
-
`)}if($===0&&U?.length===3)Y=Y.replace(/^\n/,"");if($===f.length-1&&U?.length===3)Y=Y.replace(/\n[^\S\n]*$/,"");if(u)Y=Y.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${Y}"`,{len:W.length,data:{quote:U}})}}if(f.length>1)this.emit("STRING_END",")",{len:U?.length||0});return w}numberToken(){let f=b3.exec(this.chunk);if(!f)return 0;let U=f[0],_=U.length,w={row:this.row,col:this.col};if(/^0[BOX]/.test(U))_1(`radix prefix in '${U}' must be lowercase`,{...w,col:w.col+1});if(/^0\d*[89]/.test(U))_1(`decimal literal '${U}' must not be prefixed with '0'`,{...w,len:_});if(/^0\d+/.test(U))_1(`octal literal '${U}' must be prefixed with '0o'`,{...w,len:_});let u=f7(U),$=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if($==="INFINITY")F.original=U;return this.emit($,U,{len:_,data:F}),_}regexToken(){let f=this.matchWithInterpolations(a3,"///");if(f){let{tokens:Z,index:R}=f,[A]=P2.exec(this.chunk.slice(R)),Q=R+A.length;if(Z.length===1||!Z.some((X)=>X[0]==="TOKENS")){let X=(Z[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${X}/${A}`,{len:Q,data:{delimiter:"///",heregex:{flags:A}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:Q-A.length}),A)this.emit(",",",",{len:0}),this.emit("STRING",`"${A}"`,{len:A.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return Q}let U=r3.exec(this.chunk);if(!U)return 0;let[_,w,u]=U,$=this.prev();if($){if($.spaced&&h1.has($[0])&&(!u||/^\/=?\s/.test(_)))return 0;if(T3.has($[0])&&!($.spaced&&h1.has($[0])))return 0}if(!u)_1("missing / (unclosed regex)",{row:this.row,col:this.col});let F=_.length,[W]=P2.exec(this.chunk.slice(F)),Y=F+W.length;if(!o3.test(W))_1(`invalid regular expression flags ${W}`,{row:this.row,col:this.col+F,len:W.length});return this.emit("REGEX",`/${w}/${W}`,{len:Y,data:{delimiter:"/"}}),Y}jsToken(){if(this.chunk[0]!=="`")return 0;let f=t3.exec(this.chunk)||s3.exec(this.chunk);if(!f)return 0;let U=f[1],_=f[0].length;return this.emit("JS",U,{len:_,data:{here:f[0].startsWith("```")}}),_}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let _={"[":"]","(":")","{":"}","<":">"}[f]||f,w=_!==f,u=1,$=3;while($<this.chunk.length&&u>0){let Z=this.chunk[$];if(Z==="\\"){$+=2;continue}if(w&&Z===f)u++;if(Z===_)u--;if(u>0)$++}if(u!==0)return 0;let F=this.chunk.slice(3,$),W=$+1,Y=[];if(F.trim()){let Z=F.trim().split(/(?<!\\)\s+/);for(let R of Z)Y.push(R.replace(/\\ /g," "))}this.emit("[","[",{len:W});for(let Z=0;Z<Y.length;Z++){if(Z>0)this.emit(",",",");this.emit("STRING",`"${Y[Z]}"`)}return this.emit("]","]"),W}literalToken(){let f=this.wordLiteral();if(f)return f;let U=c3.exec(this.chunk),_=U?U[0]:this.chunk.charAt(0),w=_,u=this.prev();if(l3.test(_))this.tagParameters();if(_==="="&&u&&u[1]==="."&&!u.spaced){let $=this.tokens,F=$.length-2;while(F>=1&&$[F][0]==="PROPERTY"&&$[F-1]?.[1]===".")F-=2;if(F>=0&&($[F][0]==="IDENTIFIER"||$[F][0]===")"||$[F][0]==="]")){let W=$.slice(F,$.length-1);u[0]="=",u[1]="=";for(let Y of W)this.tokens.push(C1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(C1(".",".",{pre:0,row:this.row,col:this.col,len:1})),_.length}}if(u&&(_==="="||G2.has(_))){if(_==="="&&(u[1]==="||"||u[1]==="&&"||u[1]==="??")&&!u.spaced)return u[0]="COMPOUND_ASSIGN",u[1]+="=",_.length}if(_==="("&&u?.[0]==="IMPORT")u[0]="DYNAMIC_IMPORT";if(_==="{"&&this.seenImport)this.importSpecifierList=!0;if(_==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(_==="{"&&u?.[0]==="EXPORT")this.exportSpecifierList=!0;if(_==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(_===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,w="TERMINATOR";else if(_==="|>")w="PIPE";else if(_==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(_==="::")w="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(_==="~=")w="COMPUTED_ASSIGN";else if(_===":=")w="REACTIVE_ASSIGN";else if(_===":>")w="RIGHTWARD_ASSIGN";else if(_==="<=>")w="BIND";else if(_==="~>")w="EFFECT",this.inTypeAnnotation=!1;else if(_==="=!")w="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(_==="*>"&&(!u||u[0]==="TERMINATOR"||u[0]==="INDENT"||u[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let $=this.chunk.slice(2),F=/^@(\s*)=(?!=)/.exec($);if(F){let Y=F[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let Z=this.emit("PROPERTY","assign");return Z.spaced=!0,this.emit("@","@"),this.emit(",",","),3+Y.length+1}let W=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec($);if(W){let Y=W[1],Z=W[2],R=Y.split("."),A=()=>{this.emit("IDENTIFIER",R[0]);for(let X=1;X<R.length;X++)this.emit(".","."),this.emit("PROPERTY",R[X])};A(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),A(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let Q=this.prev();return Q.mergeClose=!0,2+Y.length+Z.length+1}}else if(_==="*"&&u?.[0]==="EXPORT")w="EXPORT_ALL";else if(V3.has(_))w="MATH";else if(h3.has(_))w="COMPARE";else if(G2.has(_))w="COMPOUND_ASSIGN";else if(j3.has(_))w="UNARY_MATH";else if(C3.has(_))w="SHIFT";else if(_==="?"&&u?.spaced)w="TERNARY";else if(_==="!?"&&u&&!u.spaced)w="DEFINED";else if(_==="?!"&&u&&!u.spaced)w="PRESENCE";else if(_==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))w="?.";else if(u){if(_==="("&&!u.spaced&&h1.has(u[0])){if(u[0]==="?.")u[0]="ES6_OPTIONAL_CALL";w="CALL_START"}if(_==="["&&!u.spaced&&I2.has(u[0])){if(w="INDEX_START",u[0]==="?.")u[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(_==="="||w==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(_==="("||_==="{"||_==="[")this.ends.push({tag:B3[_],origin:[w,_]});else if(_===")"||_==="}"||_==="]")this.pair(_);return this.emit(w,_,{len:_.length}),_.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let f=this.tokens.length-1,U=[];this.tokens[f][0]="PARAM_END";while(f-- >0){let _=this.tokens[f];if(_[0]===")")U.push(_);else if(_[0]==="("||_[0]==="CALL_START")if(U.length)U.pop();else if(_[0]==="(")return _[0]="PARAM_START",this.tagDoIife(f-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(f){let U=this.tokens[f??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}closeOpenCalls(){this.scanTokens((f,U)=>{if(f[0]==="CALL_START")this.detectEnd(U+1,(_)=>_[0]===")"||_[0]==="CALL_END",(_)=>_[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,U)=>{if(f[0]==="INDEX_START")this.detectEnd(U+1,(_)=>_[0]==="]"||_[0]==="INDEX_END",(_,w)=>{if(this.tokens[w+1]?.[0]===":")f[0]="[",_[0]="]";else _[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,U=null,_=null,w=($,F)=>{return $[1]!==";"&&L3.has($[0])&&!($[0]==="TERMINATOR"&&D2.has(this.tokens[F+1]?.[0]))&&!($[0]==="ELSE"&&f!=="THEN")||$[0]==="INDENT"&&!$.generated&&(f==="->"||f==="=>")||$[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(F)&&!this.commaInImplicitObject(F)||M2.has($[0])&&(this.tokens[F-1]?.newLine||this.tokens[F-1]?.[0]==="OUTDENT")},u=($,F)=>{let W=this.tokens[F-1]?.[0]===","?F-1:F;this.tokens.splice(W,0,_)};this.scanTokens(($,F,W)=>{let[Y]=$;if(Y==="TERMINATOR"){if(this.tokens[F+1]?.[0]==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")return W.splice(F,1,...this.makeIndentation()),1;if(D2.has(this.tokens[F+1]?.[0]))return W.splice(F,1),0}if(Y==="CATCH")for(let Z=1;Z<=2;Z++){let R=this.tokens[F+Z]?.[0];if(R==="OUTDENT"||R==="TERMINATOR"||R==="FINALLY")return W.splice(F+Z,0,...this.makeIndentation()),2+Z}if((Y==="->"||Y==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[U,_]=this.makeIndentation(),W.splice(F+1,0,U,_),1;if(H2.has(Y)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(Y==="ELSE"&&this.tokens[F+1]?.[0]==="IF")&&!(Y==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")){if(f=Y,[U,_]=this.makeIndentation(),Y==="THEN")U.fromThen=!0;if(W.splice(F+1,0,U),this.detectEnd(F+2,w,u),Y==="THEN")W.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let f=null,U=(w,u)=>{return w[0]==="TERMINATOR"||w[0]==="INDENT"&&!H2.has(this.tokens[u-1]?.[0])},_=(w)=>{if(w[0]!=="INDENT"||w.generated&&!w.fromThen)f[0]="POST_"+f[0]};this.scanTokens((w,u)=>{if(w[0]!=="IF"&&w[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=w,this.detectEnd(u+1,U,_),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let U=f.length-2;U>=0;U--)if(f[U][0]==="IDENTIFIER"&&f[U][1]==="$"&&(f[U+1]?.[0]==="STRING"||f[U+1]?.[0]==="STRING_START")){let _=f[U-1];if(_&&N3.has(_[0])){if(f.splice(U,1),_.spaced=!1,f[U].spaced=!1,f[U].pre=0,f[U].newLine)f[U].newLine=!1}}}addImplicitBracesAndParens(){let f=[],U=!1;this.scanTokens((_,w,u)=>{let[$]=_,F=u[w-1]||[],W=u[w+1]||[],[Y]=F,[Z]=W,R=w,A=(J)=>w-R+J,Q=()=>f[f.length-1],X=(J)=>J?.[2]?.ours,H=()=>X(Q())&&Q()?.[0]==="(",M=()=>X(Q())&&Q()?.[0]==="{",G=(J)=>{f.push(["(",J,{ours:!0}]),u.splice(J,0,F1("CALL_START","("))},z=()=>{f.pop(),u.splice(w,0,F1("CALL_END",")")),w+=1},q=(J,D={})=>{f.push(["{",J,{sameLine:!0,startsLine:D.startsLine??!0,ours:!0}]);let I=F1("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(J,0,I)},O=(J)=>{J=J??w,f.pop(),u.splice(J,0,F1("}","}")),w+=1};if((H()||M())&&S3.has($))return f.push(["CONTROL",w,{ours:!0}]),A(1);if($==="INDENT"&&X(Q())){if(Y!=="=>"&&Y!=="->"&&Y!=="["&&Y!=="("&&Y!==","&&Y!=="{"&&Y!=="ELSE"&&Y!=="=")while(H()||M()&&Y!==":")if(H())z();else O();if(Q()?.[2]?.ours&&Q()[0]==="CONTROL")f.pop();return f.push([$,w]),A(1)}if(z1.has($))return f.push([$,w]),A(1);if(R1.has($)){while(X(Q()))if(H())z();else if(M())O();else f.pop();f.pop()}if(d1.has($)&&_.spaced&&(V1.has(Z)||Z==="..."&&V1.has(u[w+2]?.[0])||P3.has(Z)&&!W.spaced&&!W.newLine)&&!(($==="]"||$==="}")&&(Z==="->"||Z==="=>")))return G(w+1),A(2);if(d1.has($)&&this.tokens[w+1]?.[0]==="INDENT"&&this.looksObjectish(w+2)&&!this.findTagsBackwards(w,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return G(w+1),f.push(["INDENT",w+2]),A(3);if($==="TERNARY")U=!0;if($===":"){if(U)return U=!1,A(1);let J=R1.has(this.tokens[w-1]?.[0])?f[f.length-1]?.[1]??w-1:w-1;if(this.tokens[w-2]?.[0]==="@")J=w-2;let D=J<=0||G1.has(this.tokens[J-1]?.[0])||this.tokens[J-1]?.newLine;if(Q()){let[I,S]=Q(),N=f[f.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!X(N))&&(D||this.tokens[J-1]?.[0]===","||this.tokens[J-1]?.[0]==="{"||this.tokens[J]?.[0]==="{"))return A(1)}return q(J,{startsLine:!!D}),A(2)}if(G1.has($))for(let J=f.length-1;J>=0;J--){if(!X(f[J]))break;if(f[J][0]==="{")f[J][2].sameLine=!1}let K=Y==="OUTDENT"||F.newLine,E=$==="||"||$==="&&",P=!1;if(E){let J=w+1,D=u[J]?.[0];if(D==="("||D==="["||D==="{"){for(let I=1;++J<u.length&&I>0;)if(D=u[J][0],D==="("||D==="["||D==="{")I++;else if(D===")"||D==="]"||D==="}")I--}else if(D&&D!=="TERMINATOR"&&D!=="OUTDENT"&&D!==",")J++;P=u[J]?.[0]===","}if(E3.has($)&&!P||M2.has($)&&K)while(X(Q())){let[J,,{sameLine:D,startsLine:I}]=Q();if(H()&&Y!==",")z();else if(M()&&!E&&D&&$!=="TERMINATOR"&&Y!==":")O();else if(M()&&$==="TERMINATOR"&&Y!==","&&!(I&&this.looksObjectish(w+1)))O();else if(Q()?.[2]?.ours&&Q()[0]==="CONTROL"&&u[Q()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")f.pop();else break}if($===","&&!this.looksObjectish(w+1)&&M()&&(Z!=="TERMINATOR"||!this.looksObjectish(w+2))){let J=Z==="OUTDENT"?1:0;while(M())O(w+J)}return A(1)})}addImplicitCallCommas(){let f=0,U=0,_=this.tokens;while(U<_.length){let w=_[U][0],u=U>0?_[U-1][0]:null;if(w==="CALL_START"||w==="(")f++;if(w==="CALL_END"||w===")")f--;if(f>0&&(w==="->"||w==="=>")&&I3.has(u))_.splice(U,0,F1(",",",")),U++;U++}}scanTokens(f){let U=0;while(U<this.tokens.length)U+=f.call(this,this.tokens[U],U,this.tokens)}detectEnd(f,U,_,w={}){let u=0;while(f<this.tokens.length){let $=this.tokens[f];if(u===0&&U.call(this,$,f))return _.call(this,$,f);if(z1.has($[0]))u++;if(R1.has($[0]))u--;if(u<0){if(w.returnOnNegativeLevel)return;return _.call(this,$,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let U=0;U<f.length;U++){if(!f[U].mergeClose)continue;let _=0;for(let w=U+1;w<f.length;w++){let u=f[w][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")_++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")_--;if(_<0||_===0&&u==="TERMINATOR"){f.splice(w,0,F1("CALL_END",")",f[w-1]));break}if(w===f.length-1){f.splice(w+1,0,F1("CALL_END",")",f[w]));break}}}}commaInImplicitCall(f){let U=0;for(let _=f-1;_>=0;_--){let w=this.tokens[_][0];if(R1.has(w)){U++;continue}if(z1.has(w)){if(w==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(d1.has(w)&&this.tokens[_].spaced){let u=this.tokens[_+1]?.[0];return V1.has(u)||u==="..."&&V1.has(this.tokens[_+2]?.[0])}}return!1}commaInImplicitObject(f){let U=0;for(let _=f-1;_>=0;_--){let w=this.tokens[_][0];if(R1.has(w)){U++;continue}if(z1.has(w)){if(U--,U<0)return!1;continue}if(U>0)continue;if(w===":"&&_>0&&this.tokens[_-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(G1.has(w))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if(z1.has(this.tokens[f]?.[0])){let U=null;if(this.detectEnd(f+1,(_)=>R1.has(_[0]),(_,w)=>U=w),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,U){let _=new Set(U),w=[];while(f>=0){let u=this.tokens[f]?.[0];if(!w.length&&_.has(u))return!0;if(R1.has(u))w.push(u);if(z1.has(u)&&w.length)w.pop();if(!w.length&&(z1.has(u)&&!this.tokens[f]?.generated||G1.has(u)))break;f--}return!1}makeIndentation(f){let U=F1("INDENT",2),_=F1("OUTDENT",2);if(f)U.generated=_.generated=!0,U.origin=_.origin=f;else U.explicit=_.explicit=!0;return[U,_]}}z2(A1);var $7={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,RightwardAssign:18,ReactiveAssign:19,ComputedAssign:20,ReadonlyAssign:21,Effect:22,If:23,Try:24,While:25,For:26,Switch:27,Class:28,Component:29,Render:30,Throw:31,Yield:32,Def:33,Enum:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,AlphaNumeric:46,JS:47,Regex:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,NUMBER:54,String:55,Identifier:56,IDENTIFIER:57,Property:58,PROPERTY:59,STRING:60,STRING_START:61,Interpolations:62,STRING_END:63,InterpolationChunk:64,INTERPOLATION_START:65,INTERPOLATION_END:66,INDENT:67,OUTDENT:68,REGEX:69,REGEX_START:70,REGEX_END:71,RegexWithIndex:72,",":73,"=":74,RIGHTWARD_ASSIGN:75,REACTIVE_ASSIGN:76,COMPUTED_ASSIGN:77,Block:78,READONLY_ASSIGN:79,EFFECT:80,SimpleAssignable:81,Array:82,Object:83,ThisProperty:84,".":85,"?.":86,INDEX_START:87,INDEX_END:88,Slice:89,ES6_OPTIONAL_INDEX:90,"{":91,ObjAssignable:92,":":93,FOR:94,ForVariables:95,FOROF:96,OptComma:97,"}":98,WHEN:99,OWN:100,AssignList:101,AssignObj:102,ObjRestValue:103,SimpleObjAssignable:104,"[":105,"]":106,"@":107,"...":108,ObjSpreadExpr:109,SUPER:110,Arguments:111,DYNAMIC_IMPORT:112,Elisions:113,ArgElisionList:114,OptElisions:115,ArgElision:116,Arg:117,Elision:118,RangeDots:119,"..":120,DEF:121,CALL_START:122,ParamList:123,CALL_END:124,PARAM_START:125,PARAM_END:126,FuncGlyph:127,"->":128,"=>":129,Param:130,ParamVar:131,Splat:132,ES6_OPTIONAL_CALL:133,ArgList:134,SimpleArgs:135,THIS:136,NEW_TARGET:137,IMPORT_META:138,"(":139,")":140,RETURN:141,THROW:142,YIELD:143,FROM:144,IfBlock:145,IF:146,ELSE:147,UnlessBlock:148,UNLESS:149,POST_IF:150,POST_UNLESS:151,TRY:152,Catch:153,FINALLY:154,CATCH:155,SWITCH:156,Whens:157,When:158,LEADING_WHEN:159,WhileSource:160,WHILE:161,UNTIL:162,Loop:163,LOOP:164,FORIN:165,BY:166,FORAS:167,AWAIT:168,FORASAWAIT:169,ForValue:170,CLASS:171,EXTENDS:172,ENUM:173,COMPONENT:174,ComponentBody:175,ComponentLine:176,OFFER:177,ACCEPT:178,RENDER:179,IMPORT:180,ImportDefaultSpecifier:181,ImportNamespaceSpecifier:182,ImportSpecifierList:183,ImportSpecifier:184,AS:185,DEFAULT:186,IMPORT_ALL:187,EXPORT:188,ExportSpecifierList:189,EXPORT_ALL:190,ExportSpecifier:191,UNARY:192,DO:193,DO_IIFE:194,UNARY_MATH:195,"-":196,"+":197,"?":198,DEFINED:199,PRESENCE:200,"--":201,"++":202,MATH:203,"**":204,SHIFT:205,COMPARE:206,"&":207,"^":208,"|":209,"||":210,"??":211,"&&":212,"!?":213,PIPE:214,RELATION:215,TERNARY:216,COMPOUND_ASSIGN:217},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",47:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",54:"NUMBER",57:"IDENTIFIER",59:"PROPERTY",60:"STRING",61:"STRING_START",63:"STRING_END",65:"INTERPOLATION_START",66:"INTERPOLATION_END",67:"INDENT",68:"OUTDENT",69:"REGEX",70:"REGEX_START",71:"REGEX_END",73:",",74:"=",75:"RIGHTWARD_ASSIGN",76:"REACTIVE_ASSIGN",77:"COMPUTED_ASSIGN",79:"READONLY_ASSIGN",80:"EFFECT",85:".",86:"?.",87:"INDEX_START",88:"INDEX_END",90:"ES6_OPTIONAL_INDEX",91:"{",93:":",94:"FOR",96:"FOROF",98:"}",99:"WHEN",100:"OWN",105:"[",106:"]",107:"@",108:"...",110:"SUPER",112:"DYNAMIC_IMPORT",120:"..",121:"DEF",122:"CALL_START",124:"CALL_END",125:"PARAM_START",126:"PARAM_END",128:"->",129:"=>",133:"ES6_OPTIONAL_CALL",136:"THIS",137:"NEW_TARGET",138:"IMPORT_META",139:"(",140:")",141:"RETURN",142:"THROW",143:"YIELD",144:"FROM",146:"IF",147:"ELSE",149:"UNLESS",150:"POST_IF",151:"POST_UNLESS",152:"TRY",154:"FINALLY",155:"CATCH",156:"SWITCH",159:"LEADING_WHEN",161:"WHILE",162:"UNTIL",164:"LOOP",165:"FORIN",166:"BY",167:"FORAS",168:"AWAIT",169:"FORASAWAIT",171:"CLASS",172:"EXTENDS",173:"ENUM",174:"COMPONENT",177:"OFFER",178:"ACCEPT",179:"RENDER",180:"IMPORT",185:"AS",186:"DEFAULT",187:"IMPORT_ALL",188:"EXPORT",190:"EXPORT_ALL",192:"UNARY",193:"DO",194:"DO_IIFE",195:"UNARY_MATH",196:"-",197:"+",198:"?",199:"DEFINED",200:"PRESENCE",201:"--",202:"++",203:"MATH",204:"**",205:"SHIFT",206:"COMPARE",207:"&",208:"^",209:"|",210:"||",211:"??",212:"&&",213:"!?",214:"PIPE",215:"RELATION",216:"TERNARY",217:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[108,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,1,1,0,2,1,5,-2,108,5,1,5,60,2,72,-3,-3,-3,-3,-3,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,125,129,-6,-6,-6,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,1,5,60,1,1,5,33,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,60,1,1,5,33,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,131,132,97,98,57,1,5,49,5,1,5,1,1,5,2,10,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,136,106,107,-13,-13,-13,-13,-13,139,140,141,-13,142,-13,-13,-13,-13,-13,-13,-13,137,-13,143,-13,-13,138,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,133,134,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,60,1,1,5,2,10,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,144,145,146,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-15,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-16,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-17,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-18,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-19,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-20,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-21,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-22,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-23,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-24,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-25,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-26,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-27,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-28,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-29,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-30,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-31,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-32,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,60,1,1,5,33,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,60,1,1,5,33,18,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,60,1,5,54,1,5,1,1,5,1,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,27,1,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,147,-36,148,149,150,151,-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,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-37,-37,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-38,-38,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-39,-39,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-40,-40,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-41,-41,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-42,-42,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-43,-43,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-44,-44,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,152,-175,-175,153,154,107,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,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,163,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,162,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,166,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,169,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,170,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,176,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,177,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,178,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,179,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,180,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,184,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,63,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,185,186,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,187,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,189,188,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,190,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,191,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,2,67,11,164,192,2,67,11,164,193,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-265,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,197,156,105,158,159,157,100,194,195,84,160,199,196,198,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,200,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,201,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,91,1,5,8,1,22,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,2,3,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,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-307,164,-307,103,104,-307,-307,202,204,73,74,94,-307,100,-307,-307,-307,-307,-307,84,-307,88,-307,85,86,-307,-307,171,-307,172,91,92,87,89,90,83,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,203,175,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,67,105,205,206,2,67,11,164,207,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,208,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,209,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,141,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,5,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,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,210,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-226,211,-226,103,104,-226,-226,54,53,73,74,94,-226,100,-226,-226,-226,-226,-226,84,-226,88,-226,85,86,-226,67,-226,171,-226,172,91,92,87,89,90,83,-226,70,65,66,212,55,95,-226,56,96,-226,-226,57,61,58,-226,-226,59,99,-226,-226,-226,50,-226,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,2,56,1,213,105,2,56,1,214,105,6,15,20,90,2,1,1,216,215,43,44,91,92,140,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,5,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,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,217,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-223,218,-223,103,104,-223,-223,54,53,73,74,94,-223,100,-223,-223,-223,-223,-223,84,-223,88,-223,85,86,-223,67,-223,171,-223,172,91,92,87,89,90,83,-223,70,65,66,55,95,-223,56,96,-223,-223,57,61,58,-223,-223,59,99,-223,-223,-223,50,-223,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,9,55,1,1,3,1,30,90,1,5,219,223,105,106,107,222,220,221,224,60,14,1,4,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,10,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,12,4,4,181,182,231,232,233,234,226,227,228,229,237,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,230,105,106,107,103,104,54,238,73,74,94,225,84,88,85,86,67,171,172,91,92,87,89,90,83,62,68,63,235,236,175,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,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,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,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,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-45,-45,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-46,-46,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-47,-47,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-48,-48,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-49,-49,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-50,-50,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-51,-51,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-52,-52,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,239,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,240,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,114,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,241,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,85,2,24,11,254,255,253,143,2,111,11,256,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,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,57,1,5,52,1,1,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,257,258,-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,1,85,259,1,85,260,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-91,-91,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-92,-92,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,261,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,262,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,263,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,264,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,266,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,265,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,267,-111,268,273,277,269,270,271,278,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-53,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-65,-65,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,279,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,66,1,5,54,1,5,1,1,5,1,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,13,11,1,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,-55,-55,-55,-55,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-57,-57,6,55,5,1,1,2,1,283,106,107,280,281,282,110,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,1,3,1,5,2,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-5,284,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-5,-5,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,-5,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,285,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,286,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,287,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,288,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,289,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,290,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,291,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,292,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,293,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,296,167,294,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,295,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,299,167,297,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,298,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,302,167,300,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,301,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,303,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,304,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,305,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,306,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,307,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,308,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,309,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,310,311,84,160,199,312,198,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,314,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,315,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-263,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-381,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-382,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-189,-189,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-190,-190,2,111,11,316,143,2,58,1,317,258,2,58,1,318,258,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,8,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,5,1,8,4,1,1,1,1,1,4,1,319,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,324,78,79,80,81,82,101,102,93,105,106,107,320,103,104,322,54,53,73,74,94,321,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,87,327,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,1,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,328,43,44,91,92,251,329,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,58,1,333,258,2,58,1,334,258,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,335,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,336,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,338,337,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,339,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,341,340,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,342,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,344,343,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,345,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,347,346,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,348,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,350,349,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,351,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,352,6,6,61,1,5,51,2,-176,-176,-176,-176,-176,-176,7,6,61,1,5,1,50,2,-180,-180,-180,-180,355,-180,-180,15,6,50,1,10,1,5,9,1,1,7,14,2,17,2,5,-183,156,105,-183,-183,-183,158,159,157,100,161,160,-183,-183,356,11,6,61,1,5,1,22,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,61,1,5,1,22,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,11,6,61,1,5,1,22,28,2,39,2,2,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,11,6,61,1,5,1,22,28,2,39,2,2,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,2,58,1,257,258,114,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,9,1,5,60,1,1,5,33,18,16,-172,-172,-172,-172,-172,-172,-172,-172,-172,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,358,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,357,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,119,-376,121,-376,-376,-376,9,1,5,60,1,1,5,33,18,16,-373,-373,-373,-373,-373,-373,-373,-373,-373,5,150,1,9,1,1,130,131,132,97,98,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,127,128,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,119,-377,121,-377,-377,-377,9,1,5,60,1,1,5,33,18,16,-374,-374,-374,-374,-374,-374,-374,-374,-374,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-378,-378,-378,-378,-378,-378,-378,-378,-378,112,-378,-378,-378,-378,-378,-378,119,-378,121,-378,-378,-378,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,359,-175,-175,153,154,2,67,11,164,162,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,5,15,110,2,1,1,216,171,172,91,92,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,127,128,-379,-379,-379,-379,-379,-379,-379,-379,-379,112,-379,-379,-379,-379,-379,-379,119,-379,121,-379,-379,-379,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,127,128,-380,-380,-380,-380,-380,-380,-380,-380,-380,112,-380,-380,-380,-380,-380,-380,119,-380,121,-380,-380,-380,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-384,127,128,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,119,-384,121,-384,-384,-384,2,83,8,360,100,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-88,-88,-386,-386,-386,-386,-88,-386,-88,-88,-88,-88,-88,-88,-88,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-88,-386,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-88,-88,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,10,55,5,1,24,1,1,3,21,11,11,136,106,107,139,140,141,142,137,143,138,3,85,1,1,144,145,146,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-36,-36,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-88,-88,-387,-387,-387,-387,-88,-387,-88,-88,-88,-88,-88,-88,-88,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-88,-387,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-88,-88,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,363,361,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,362,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,125,-85,-85,129,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,126,127,128,97,98,-85,-85,-85,-85,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,364,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,3,67,11,68,164,365,366,47,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,6,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,367,368,369,-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,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,4,96,69,2,2,371,370,372,373,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,374,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,375,161,160,199,198,3,67,11,88,164,376,377,5,73,23,69,2,2,378,-305,-305,-305,-305,6,73,1,22,69,2,2,-303,379,-303,-303,-303,-303,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,380,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,3,157,1,1,381,382,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,384,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,62,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-88,-88,-311,164,-311,-311,-88,-311,-88,-88,385,-88,-88,-88,-88,-88,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-88,-311,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,386,-311,-311,-88,-88,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,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,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,387,388,392,393,64,71,72,45,46,69,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,394,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,125,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,127,128,-224,-224,-224,-224,-224,-224,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,395,100,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-227,127,128,-227,-227,-227,-227,-227,-227,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,396,100,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,397,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,67,11,44,164,399,398,2,67,11,164,400,9,1,5,60,1,1,5,33,18,16,-375,-375,-375,-375,-375,-375,-375,-375,-375,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,125,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,127,128,-221,-221,-221,-221,-221,-221,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,401,100,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,2,73,71,403,402,1,144,404,7,56,1,10,31,85,1,2,409,105,408,405,406,407,410,2,73,71,-343,-343,1,185,411,26,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,78,3,2,-111,272,101,102,416,105,275,258,106,107,415,-111,-111,276,267,412,268,273,277,269,270,271,278,417,413,414,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,64,1,5,54,1,5,1,1,5,1,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,24,1,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,418,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,419,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,420,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,144,421,59,1,5,54,1,5,1,1,5,2,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,27,1,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,148,149,150,151,-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,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-88,-88,2,6,134,108,422,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,423,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,32,6,61,1,5,2,19,12,2,11,1,4,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,326,424,325,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-144,-144,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,1,3,1,8,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,425,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,428,-219,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,431,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-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,61,1,5,33,-147,-147,-147,-147,-147,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,432,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,5,6,61,1,5,33,-152,-152,-152,-152,-152,6,6,61,1,5,33,18,-202,-202,-202,-202,-202,-202,6,6,61,1,5,33,18,-203,-203,-203,-203,-203,-203,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,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,5,1,8,4,1,1,1,1,1,4,1,-204,434,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-204,-204,103,104,-204,54,53,73,74,94,100,60,84,-204,88,85,86,67,-204,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-192,-192,2,58,1,435,258,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,436,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,437,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-193,-193,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,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,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,2,58,1,438,258,2,58,1,439,258,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,440,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,441,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,125,-258,-258,129,-258,-258,442,-258,-258,-258,-258,-258,-258,-258,-258,127,128,97,98,-258,-258,-258,-258,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,125,-260,-260,129,-260,-260,443,-260,-260,-260,-260,-260,-260,-260,-260,127,128,97,98,-260,-260,-260,-260,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-266,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,164,-267,-267,125,444,-267,-267,129,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,127,128,97,98,-267,-267,-267,-267,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-116,-116,-116,-116,445,-116,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,446,-219,-219,-219,7,6,61,1,5,1,19,5,-125,-125,-125,-125,448,-125,-125,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,449,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,58,1,46,257,258,450,6,6,61,1,5,20,5,-128,-128,-128,-128,-128,-128,5,6,61,1,5,25,-112,-112,-112,-112,-112,11,6,61,1,5,1,11,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,11,6,61,1,5,1,11,1,1,6,5,24,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,11,6,61,1,5,1,11,1,1,6,5,24,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,5,6,61,1,5,25,-117,-117,-117,-117,-117,17,39,4,1,12,1,1,1,24,1,7,13,3,2,1,2,24,3,454,456,455,274,105,275,258,453,276,100,451,88,452,457,458,87,83,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,459,-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,6,55,5,1,2,1,1,283,106,107,460,461,282,4,60,1,2,2,-59,-59,-59,-59,108,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,1,3,1,5,1,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,462,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,464,463,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-64,-64,-64,-64,5,1,5,60,2,72,-4,-4,-4,-4,-4,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,127,128,-390,-390,-390,-390,-390,-390,-390,-390,111,112,-390,-390,-390,-390,-390,-390,119,-390,121,-390,-390,-390,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,127,128,-391,-391,-391,-391,-391,-391,-391,-391,111,112,-391,-391,-391,-391,-391,-391,119,-391,121,-391,-391,-391,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-392,-392,-392,-392,-392,-392,-392,-392,-392,112,-392,-392,-392,-392,-392,-392,119,-392,121,-392,-392,-392,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-393,-393,-393,-393,-393,-393,-393,-393,-393,112,-393,-393,-393,-393,-393,-393,119,-393,121,-393,-393,-393,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-394,-394,-394,-394,-394,-394,110,109,111,112,-394,-394,-394,-394,-394,-394,119,-394,121,-394,-394,-394,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-395,-395,-395,-395,-395,-395,110,109,111,112,113,-395,-395,-395,-395,-395,119,-395,121,-395,123,-395,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-396,-396,-396,-396,-396,-396,110,109,111,112,113,114,-396,-396,-396,-396,119,-396,121,-396,123,-396,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-397,-397,-397,-397,-397,-397,110,109,111,112,113,114,115,-397,-397,-397,119,-397,121,-397,123,-397,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,127,128,-398,-398,-398,-398,-398,-398,110,109,111,112,113,114,115,116,-398,-398,119,-398,121,-398,123,-398,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-406,-406,-406,-406,-406,-406,110,109,111,112,113,114,115,116,117,-406,119,120,121,-406,123,-406,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,125,-407,-407,129,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,127,128,97,98,-407,-407,-407,-407,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-405,127,128,-405,-405,-405,-405,-405,-405,110,109,111,112,113,114,115,116,117,-405,119,-405,121,-405,123,-405,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,125,-408,-408,129,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,127,128,97,98,-408,-408,-408,-408,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,127,128,-409,-409,-409,-409,-409,-409,110,109,111,112,113,114,115,116,117,118,119,120,121,-409,123,-409,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,127,128,-410,-410,-410,-410,-410,-410,110,109,111,112,113,-410,-410,-410,-410,-410,119,-410,121,-410,-410,-410,24,75,18,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,465,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-36,-36,-72,-72,-72,-72,-72,-36,-36,-36,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-36,-72,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-36,-36,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,125,-238,-238,129,-238,-238,-238,-238,-238,-238,-238,-238,-238,466,-238,127,128,97,98,-238,-238,-238,-238,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,125,-242,-242,129,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,126,127,128,97,98,-242,-242,-242,-242,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,468,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,471,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,472,161,160,199,198,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,473,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,125,-237,-237,129,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,127,128,97,98,-237,-237,-237,-237,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,125,-241,-241,129,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,126,127,128,97,98,-241,-241,-241,-241,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-191,-191,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-93,-93,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-94,-94,27,75,13,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,474,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,5,1,8,4,1,1,1,1,1,4,1,476,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,477,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,88,478,1,88,479,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,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,5,1,8,4,1,1,1,1,1,4,1,480,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-166,103,104,54,53,73,74,94,-166,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,481,-47,-47,-47,-47,-68,-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,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,482,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,483,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,484,-219,-219,-219,5,6,61,1,5,51,-196,-196,-196,-196,-196,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,1,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,486,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-102,-102,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-103,-103,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,487,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,488,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,125,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,127,128,-69,-69,-69,-69,-69,-69,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,489,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,490,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,125,-73,-73,129,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,126,127,128,97,98,-73,-73,-73,-73,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,491,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,492,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,125,-76,-76,129,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,126,127,128,97,98,-76,-76,-76,-76,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,493,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,125,-79,-79,129,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,126,127,128,97,98,-79,-79,-79,-79,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,494,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,495,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,125,-82,-82,129,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,126,127,128,97,98,-82,-82,-82,-82,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,496,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,3,127,1,1,497,91,92,17,6,50,1,10,1,14,1,1,7,7,7,1,1,1,16,6,1,-220,156,105,-220,-220,158,159,157,100,-220,161,-220,160,155,-220,498,154,2,6,61,499,500,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,501,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,51,2,-182,-182,-182,-182,-182,-182,58,1,5,54,1,5,1,1,5,2,10,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,27,1,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,-215,-215,-215,-215,-215,2,6,62,108,502,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,503,1,68,504,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,125,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,127,128,-412,-412,-412,-412,-412,-412,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,505,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,506,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,125,-86,-86,129,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,126,127,128,97,98,-86,-86,-86,-86,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,507,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,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,508,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,2,67,11,164,509,6,56,1,10,11,5,8,510,105,164,512,511,100,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,513,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,514,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,515,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,516,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,517,1,167,518,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,519,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,56,1,25,1,1,7,14,2,24,39,156,105,158,159,157,100,161,160,199,520,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,521,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,157,1,1,522,382,383,4,68,79,11,1,523,524,525,383,3,68,79,12,-254,-254,-254,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,5,1,8,4,1,1,1,1,1,4,1,527,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,526,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,164,-309,-309,125,528,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,127,128,-309,-309,-309,-309,-309,-309,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-312,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,529,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,2,6,62,531,530,2,6,62,-318,-318,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-322,-322,7,6,62,82,1,9,1,1,-323,-323,130,131,132,97,98,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,532,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,57,533,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,534,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,535,1,68,536,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-229,-229,-229,-229,-229,-229,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,537,-175,-175,153,154,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,1,68,538,3,55,5,1,539,106,107,3,91,91,5,541,540,224,3,55,5,1,542,106,107,1,144,543,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,544,-219,-219,-219,5,6,61,1,5,25,-334,-334,-334,-334,-334,6,56,1,10,116,1,2,409,105,408,546,407,410,6,6,61,1,5,25,87,-339,-339,-339,-339,-339,547,6,6,61,1,5,25,87,-341,-341,-341,-341,-341,548,2,56,1,549,105,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,550,-345,-345,-345,-345,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,551,-219,-219,-219,5,6,61,1,5,25,-363,-363,-363,-363,-363,6,56,1,10,119,3,2,554,105,415,417,553,414,12,6,61,1,5,1,11,1,1,6,5,24,63,-368,-368,-368,-368,-122,-122,-122,-122,-122,-368,-122,555,6,6,61,1,5,25,87,-371,-371,-371,-371,-371,556,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,558,557,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,559,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,125,129,-358,-358,-358,-358,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,560,100,3,55,5,1,561,106,107,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,6,62,108,562,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,563,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,431,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,5,6,61,1,5,33,-153,-153,-153,-153,-153,2,67,39,565,564,117,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,1,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,248,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,567,566,249,245,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,6,61,1,38,568,-154,-154,-154,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,569,-219,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,1,3,1,8,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,125,129,-188,-188,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-210,-210,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,570,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,571,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-232,572,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,573,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,574,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-268,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,575,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,31,578,579,577,23,6,40,8,1,1,1,1,1,1,1,6,1,16,8,6,4,1,1,1,1,1,1,16,-220,272,101,102,274,105,275,258,106,107,-220,-220,276,581,-220,580,277,269,270,-220,271,278,-220,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,582,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,583,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,584,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,585,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,6,61,1,5,12,1,1,11,13,11,-129,-129,-129,-129,-131,-131,-131,-129,586,143,10,6,61,1,5,12,1,1,11,13,11,-130,-130,-130,-130,588,589,590,-130,587,143,9,6,61,1,5,12,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,61,1,5,12,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,61,1,5,12,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,61,1,5,12,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,85,2,24,11,254,255,591,143,2,111,11,592,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,4,60,1,2,2,-60,-60,-60,-60,2,6,60,108,593,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,594,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-63,-63,-63,-63,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,595,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,597,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,596,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,598,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,599,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,600,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,601,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,602,1,167,603,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,604,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-95,-95,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,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,5,1,8,4,1,1,1,1,1,4,1,605,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-164,103,104,54,53,73,74,94,-164,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,27,68,7,19,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,606,125,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,607,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-97,-97,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-99,-99,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,125,-165,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,608,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,609,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,610,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,57,612,613,611,113,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,1,3,1,6,1,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,614,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,615,-219,-219,-219,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,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,-104,-104,-104,-104,-104,-104,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,616,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,125,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,127,128,-70,-70,-70,-70,-70,-70,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,617,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,125,-74,-74,129,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,126,127,128,97,98,-74,-74,-74,-74,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,618,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,125,-77,-77,129,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,126,127,128,97,98,-77,-77,-77,-77,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,125,-80,-80,129,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,126,127,128,97,98,-80,-80,-80,-80,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,125,-83,-83,129,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,126,127,128,97,98,-83,-83,-83,-83,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,107,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,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,621,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,620,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,6,6,61,1,5,51,2,-177,-177,-177,-177,-177,-177,11,56,1,25,1,1,7,14,2,1,22,1,156,105,158,159,157,100,161,160,155,622,154,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,623,-175,-175,153,154,29,6,61,1,5,2,19,30,2,24,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,125,129,-181,-181,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,2,10,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,27,1,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,-216,-216,-216,-216,-216,3,127,1,1,624,91,92,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,625,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,125,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,127,128,-414,-414,-414,-414,-414,-414,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,626,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,627,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,2,67,11,164,628,2,67,11,164,629,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,27,67,8,3,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,630,129,631,126,127,128,97,98,632,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,633,129,634,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,635,129,636,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,637,129,638,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,639,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,640,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,641,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,-306,-306,-306,-306,28,73,2,19,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,125,129,-304,126,127,128,97,98,-304,-304,-304,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,68,79,11,1,642,643,525,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,2,67,11,164,644,3,68,79,12,-255,-255,-255,3,67,6,5,164,646,645,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,164,-313,-313,125,647,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,127,128,-313,-313,-313,-313,-313,-313,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,109,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,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,1,1,8,4,1,1,1,1,1,4,1,-320,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-320,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,648,392,393,64,71,72,45,46,69,47,48,49,51,52,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-325,-325,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,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,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,649,388,392,393,64,71,72,45,46,69,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-228,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,354,-219,-219,650,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,144,651,6,56,1,10,116,1,2,409,105,408,652,407,410,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,55,5,1,653,106,107,3,6,61,31,655,656,654,10,6,50,1,10,1,30,8,18,60,2,-220,409,105,-220,-220,-220,-220,-220,657,410,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,658,-219,-219,-219,2,56,1,659,105,2,56,1,660,105,1,144,-344,3,55,5,1,661,106,107,3,6,61,31,663,664,662,10,6,50,1,10,1,30,8,18,62,5,-220,554,105,-220,-220,-220,-220,-220,417,665,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,666,-219,-219,-219,6,6,61,1,5,25,87,-368,-368,-368,-368,-368,555,3,56,1,129,667,105,668,2,56,1,669,105,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,125,129,-351,-351,-351,-351,127,128,-351,-351,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,670,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,671,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,672,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,140,673,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,674,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,675,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,33,-148,-148,-148,-148,-148,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,1,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-155,-155,103,104,248,54,53,73,74,94,100,60,84,-155,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,8,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,676,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,67,1,565,677,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-211,-211,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,678,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,679,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,125,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,127,128,-259,-259,-259,-259,-259,-259,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,125,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,127,128,-261,-261,-261,-261,-261,-261,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,680,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,681,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,17,46,8,1,1,1,1,1,1,1,23,8,10,1,1,1,2,1,272,101,102,274,105,275,258,106,107,276,581,682,277,269,270,271,278,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,581,-111,683,273,277,269,270,271,278,5,6,61,1,5,25,-113,-113,-113,-113,-113,6,6,61,1,5,20,5,-116,-116,-116,-116,684,-116,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,125,129,-120,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,685,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,20,5,-126,-126,-126,-126,-126,-126,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,686,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,6,61,1,5,12,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,61,1,5,12,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,58,1,687,258,2,58,1,688,258,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,689,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,690,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,61,1,5,12,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,4,60,1,2,2,-61,-61,-61,-61,2,6,62,108,691,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,125,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,127,128,-411,-411,-411,-411,-411,-411,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,692,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,125,-240,-240,129,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,127,128,97,98,-240,-240,-240,-240,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,125,-286,-286,-286,-286,-286,693,-286,-286,-286,-286,-286,-286,-286,-286,127,128,-286,-286,-286,694,-286,-286,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,125,-291,-291,-291,-291,-291,695,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,125,-295,-295,-295,-295,-295,696,-295,-295,-295,-295,-295,-295,-295,-295,127,128,-295,-295,-295,-295,-295,-295,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,125,-299,-299,-299,-299,-299,697,-299,-299,-299,-299,-299,-299,-299,-299,127,128,-299,-299,-299,-299,-299,-299,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,698,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,699,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,125,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,127,128,-302,-302,-302,-302,-302,-302,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,125,-163,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,88,700,1,88,701,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,-67,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-100,-100,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,702,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,252,85,86,703,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,704,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,51,-197,-197,-197,-197,-197,3,6,61,1,612,613,705,1,88,706,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,9,1,5,60,1,1,5,33,18,16,-171,-171,-171,-171,-171,-171,-171,-171,-171,6,6,61,1,5,51,2,-178,-178,-178,-178,-178,-178,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,707,-219,-219,-219,2,67,11,164,620,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-231,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,708,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,709,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-274,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,710,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-278,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,711,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-282,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,712,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,713,129,714,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,715,129,716,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-250,2,67,11,164,717,1,68,718,4,6,62,79,12,719,-256,-256,-256,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,720,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,2,6,62,-319,-319,2,6,62,531,721,2,67,11,164,722,3,55,5,1,723,106,107,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,724,-219,-219,-219,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,144,725,4,56,1,127,2,409,105,726,410,6,56,1,10,116,1,2,409,105,408,727,407,410,5,6,61,1,5,25,-335,-335,-335,-335,-335,3,6,61,1,655,656,728,5,6,61,1,5,25,-340,-340,-340,-340,-340,5,6,61,1,5,25,-342,-342,-342,-342,-342,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,729,-346,-346,-346,-346,4,56,1,129,5,554,105,417,730,6,56,1,10,119,3,2,554,105,415,417,731,414,5,6,61,1,5,25,-364,-364,-364,-364,-364,3,6,61,1,663,664,732,5,6,61,1,5,25,-369,-369,-369,-369,-369,5,6,61,1,5,25,-370,-370,-370,-370,-370,5,6,61,1,5,25,-372,-372,-372,-372,-372,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,125,129,-352,-352,-352,-352,127,128,-352,-352,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,734,-219,5,6,61,1,5,33,-149,-149,-149,-149,-149,5,6,61,1,5,33,-150,-150,-150,-150,-150,1,88,735,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-233,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,736,737,84,160,199,312,198,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,738,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-114,-114,-114,-114,-114,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,739,-219,-219,-219,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,740,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,741,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-127,-127,-127,-127,-127,-127,9,6,61,1,5,12,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,9,6,61,1,5,12,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,742,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,743,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,66,744,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,745,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,746,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,747,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,748,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,749,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,750,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,125,-293,-293,-293,-293,-293,751,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,125,-297,-297,-297,-297,-297,752,-297,-297,-297,-297,-297,-297,-297,-297,127,128,-297,-297,-297,-297,-297,-297,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-96,-96,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-98,-98,1,88,753,5,6,61,1,5,51,-198,-198,-198,-198,-198,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,754,-219,-219,-219,5,6,61,1,5,51,-199,-199,-199,-199,-199,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,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,-105,-105,-105,-105,-105,-105,3,6,61,1,499,500,755,26,67,8,3,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,756,129,126,127,128,97,98,757,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,758,129,759,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,760,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,761,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,762,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-276,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,763,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-280,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,764,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,765,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,3,68,79,12,-257,-257,-257,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,3,6,61,31,655,656,766,3,55,5,1,767,106,107,5,6,61,1,5,25,-336,-336,-336,-336,-336,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,768,-219,-219,-219,5,6,61,1,5,25,-337,-337,-337,-337,-337,3,55,5,1,769,106,107,5,6,61,1,5,25,-365,-365,-365,-365,-365,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,770,-219,-219,-219,5,6,61,1,5,25,-366,-366,-366,-366,-366,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,2,67,1,565,771,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-212,-212,4,96,69,2,2,772,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,773,161,160,199,198,5,6,61,1,5,25,-119,-119,-119,-119,-119,3,6,61,1,578,579,774,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,129,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-121,-121,-121,-121,-121,9,6,61,1,5,12,1,1,11,24,-142,-142,-142,-142,-142,-142,-142,-142,-142,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,775,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,60,1,2,2,-62,-62,-62,-62,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,125,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,127,128,-287,-287,-287,776,-287,-287,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,125,-288,-288,-288,-288,-288,777,-288,-288,-288,-288,-288,-288,-288,-288,127,128,-288,-288,-288,-288,-288,-288,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,125,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,125,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,127,128,-296,-296,-296,-296,-296,-296,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,125,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,127,128,-300,-300,-300,-300,-300,-300,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,778,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,779,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-101,-101,3,6,61,1,612,613,780,6,6,61,1,5,51,2,-179,-179,-179,-179,-179,-179,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-270,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,781,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-271,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,782,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-275,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-279,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,783,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,784,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,1,144,785,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,3,6,61,1,655,656,786,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,6,61,1,663,664,787,5,6,61,1,5,33,-151,-151,-151,-151,-151,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,788,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,789,5,6,61,1,5,25,-115,-115,-115,-115,-115,1,88,790,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,791,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,792,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,125,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,125,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,127,128,-298,-298,-298,-298,-298,-298,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,51,-200,-200,-200,-200,-200,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,793,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,794,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-277,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-281,3,55,5,1,795,106,107,5,6,61,1,5,25,-338,-338,-338,-338,-338,5,6,61,1,5,25,-367,-367,-367,-367,-367,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,798,125,-291,-291,-291,-291,796,-291,797,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,799,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-143,-143,-143,-143,-143,-143,-143,-143,-143,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,125,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,127,128,-289,-289,-289,-289,-289,-289,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,125,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,127,128,-290,-290,-290,-290,-290,-290,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-272,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-273,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,1,98,800,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,801,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,30,8,18,-220,-220,-220,-220,-220,-220,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,798,125,-293,-293,-293,-293,802,-293,803,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-106,-106,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,798,125,-292,-292,-292,-292,804,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,98,805,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,806,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,98,807,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-108,-108,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,798,125,-294,-294,-294,-294,808,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-107,-107,1,98,809,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109],U=[],_=0,w,u,$,F;while(_<f.length){w=f[_++],u={},$=0,F=[];while(w--)$+=f[_++],F.push($);for($ of F)u[$]=f[_++];U.push(u)}return U})(),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,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,46,1,46,1,56,1,58,1,55,1,55,3,62,1,62,2,64,3,64,5,64,2,64,1,48,1,48,3,72,3,72,1,17,3,17,4,17,5,18,3,19,3,19,4,19,5,20,3,20,4,20,3,21,3,21,4,21,5,22,3,22,4,22,3,22,2,22,3,22,2,37,1,37,1,37,1,81,1,81,1,81,3,81,3,81,4,81,6,81,4,81,6,81,4,81,5,81,7,81,3,81,3,81,4,81,6,83,10,83,12,83,11,83,13,83,4,101,0,101,1,101,3,101,4,101,6,102,1,102,1,102,3,102,5,102,3,102,5,104,1,104,1,104,1,92,1,92,3,92,4,92,1,103,2,103,2,109,1,109,1,109,1,109,1,109,1,109,2,109,2,109,2,109,2,109,3,109,3,109,4,109,6,82,2,82,3,82,4,114,1,114,3,114,4,114,4,114,6,116,1,116,2,115,1,115,2,113,1,113,2,118,1,118,2,119,1,119,1,40,5,89,3,89,2,89,2,89,1,33,6,33,3,15,5,15,2,35,5,35,2,127,1,127,1,123,0,123,1,123,3,123,4,123,6,130,1,130,3,130,2,130,1,131,1,131,1,131,1,131,1,132,2,41,2,41,2,41,3,41,2,41,2,111,2,111,4,134,1,134,3,134,4,134,4,134,6,117,1,117,1,117,1,117,1,135,1,135,3,43,1,43,1,84,2,44,3,44,4,44,6,45,3,45,3,78,2,78,3,39,3,39,5,97,0,97,1,10,2,10,4,10,1,31,2,31,4,32,1,32,2,32,4,32,3,145,3,145,5,148,3,148,5,23,1,23,3,23,1,23,3,23,3,23,7,23,5,23,3,23,3,24,2,24,3,24,4,24,5,153,3,153,3,153,2,27,5,27,7,27,4,27,6,157,1,157,2,158,3,158,4,160,2,160,4,160,2,160,4,25,2,25,2,25,2,25,1,163,2,163,2,163,3,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,170,1,170,3,95,1,95,3,28,1,28,2,28,3,28,4,28,2,28,3,28,4,28,5,34,3,29,4,29,6,175,1,175,3,175,2,176,1,176,1,176,1,176,2,176,2,30,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,183,1,183,3,183,4,183,4,183,6,184,1,184,3,184,1,184,3,181,1,182,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,189,1,189,3,189,4,189,4,189,6,191,1,191,3,191,3,191,1,191,3,36,2,36,2,36,2,16,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,42,2],ruleActions:(f,U,_,w)=>{let u=U,$=U.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[$]];case 3:case 59:case 112:case 152:case 156:case 176:case 196:case 205:case 254:case 305:case 318:case 334:case 363:return[u[$]];case 4:case 113:case 177:case 197:case 206:case 319:case 335:case 364:return[...u[$-2],u[$]];case 5:case 61:case 159:case 320:return u[$-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 47:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 64:case 65:case 88:case 89:case 90:case 91:case 92:case 117:case 122:case 123:case 124:case 125:case 128:case 131:case 132:case 133:case 134:case 135:case 147:case 173:case 174:case 180:case 184:case 185:case 186:case 187:case 201:case 202:case 203:case 219:case 220:case 234:case 236:case 265:case 303:case 321:case 322:case 323:case 339:case 341:case 343:case 368:case 371:return u[$];case 48:return"undefined";case 49:return"null";case 58:return["str",...u[$-1]];case 60:case 153:case 157:case 255:return[...u[$-1],u[$]];case 62:case 195:case 199:case 337:case 366:return u[$-2];case 63:return"";case 66:return["regex",u[$-1]];case 67:return["regex-index",u[$-2],u[$]];case 68:return["regex-index",u[$],null];case 69:return["=",u[$-2],u[$]];case 70:return["=",u[$-3],u[$]];case 71:return["=",u[$-4],u[$-1]];case 72:return["=",u[$],u[$-2]];case 73:return["state",u[$-2],u[$]];case 74:return["state",u[$-3],u[$]];case 75:return["state",u[$-4],u[$-1]];case 76:case 78:return["computed",u[$-2],u[$]];case 77:return["computed",u[$-3],u[$]];case 79:return["readonly",u[$-2],u[$]];case 80:return["readonly",u[$-3],u[$]];case 81:return["readonly",u[$-4],u[$-1]];case 82:case 84:return["effect",u[$-2],u[$]];case 83:return["effect",u[$-3],u[$]];case 85:case 86:case 87:return["effect",null,u[$]];case 93:case 102:case 140:return[".",u[$-2],u[$]];case 94:case 103:case 141:return["?.",u[$-2],u[$]];case 95:case 97:case 104:case 142:return["[]",u[$-3],u[$-1]];case 96:case 98:case 105:case 143:return["[]",u[$-5],u[$-2]];case 99:return[u[$-1][0],u[$-3],...u[$-1].slice(1)];case 100:return["optindex",u[$-4],u[$-1]];case 101:return["optindex",u[$-6],u[$-2]];case 106:return["object-comprehension",u[$-8],u[$-6],[["for-of",u[$-4],u[$-2],!1]],[]];case 107:return["object-comprehension",u[$-10],u[$-8],[["for-of",u[$-6],u[$-4],!1]],[u[$-2]]];case 108:return["object-comprehension",u[$-9],u[$-7],[["for-of",u[$-4],u[$-2],!0]],[]];case 109:return["object-comprehension",u[$-11],u[$-9],[["for-of",u[$-6],u[$-4],!0]],[u[$-2]]];case 110:return["object",...u[$-2]];case 111:case 154:case 175:case 194:return[];case 114:case 178:case 198:case 336:case 365:return[...u[$-3],u[$]];case 115:case 179:case 200:case 338:case 367:return[...u[$-5],...u[$-2]];case 116:return[u[$],u[$],null];case 118:return[u[$-2],u[$],":"];case 119:return[u[$-4],u[$-1],":"];case 120:return[u[$-2],u[$],"="];case 121:return[u[$-4],u[$-1],"="];case 126:return["dynamicKey",u[$-1]];case 127:return["[]","this",u[$-1]];case 129:case 130:case 188:return["...",u[$]];case 136:case 192:return["super",...u[$]];case 137:case 138:case 139:case 190:case 193:return[u[$-1],...u[$]];case 144:return["array"];case 145:return["array",...u[$-1]];case 146:return["array",...u[$-2],...u[$-1]];case 148:return[...u[$-2],...u[$]];case 149:return[...u[$-3],...u[$]];case 150:return[...u[$-2],...u[$-1]];case 151:return[...u[$-5],...u[$-4],...u[$-2],...u[$-1]];case 155:return[...u[$]];case 158:return null;case 160:return"..";case 161:case 204:return"...";case 162:return[u[$-2],u[$-3],u[$-1]];case 163:case 392:case 394:case 395:case 410:case 412:return[u[$-1],u[$-2],u[$]];case 164:return[u[$],u[$-1],null];case 165:return[u[$-1],null,u[$]];case 166:return[u[$],null,null];case 167:return["def",u[$-4],u[$-2],u[$]];case 168:return["def",u[$-1],[],u[$]];case 169:case 171:return[u[$-1],u[$-3],u[$]];case 170:case 172:return[u[$-1],[],u[$]];case 181:case 304:return["default",u[$-2],u[$]];case 182:return["rest",u[$]];case 183:return["expansion"];case 189:return["tagged-template",u[$-1],u[$]];case 191:return["optcall",u[$-2],...u[$]];case 207:case 208:return"this";case 209:return[".","this",u[$]];case 210:return[".","super",u[$]];case 211:return["[]","super",u[$-1]];case 212:return["[]","super",u[$-2]];case 213:return[".","new",u[$]];case 214:return[".","import",u[$]];case 215:return["block"];case 216:return["block",...u[$-1]];case 217:return u[$-1].length===1?u[$-1][0]:["block",...u[$-1]];case 218:return u[$-2].length===1?u[$-2][0]:["block",...u[$-2]];case 221:return["return",u[$]];case 222:return["return",u[$-1]];case 223:return["return"];case 224:return["throw",u[$]];case 225:return["throw",u[$-1]];case 226:return["yield"];case 227:return["yield",u[$]];case 228:return["yield",u[$-1]];case 229:return["yield-from",u[$]];case 230:return["if",u[$-1],u[$]];case 231:return u[$-4].length===3?["if",u[$-4][1],u[$-4][2],["if",u[$-1],u[$]]]:[...u[$-4],["if",u[$-1],u[$]]];case 232:return["if",["!",u[$-1]],u[$]];case 233:return["if",["!",u[$-3]],u[$-2],u[$]];case 235:return u[$-2].length===3?["if",u[$-2][1],u[$-2][2],u[$]]:[...u[$-2],u[$]];case 237:case 238:return["if",u[$],[u[$-2]]];case 239:return["?:",u[$-4],u[$-6],u[$-1]];case 240:return["?:",u[$-2],u[$-4],u[$]];case 241:case 242:return["if",["!",u[$]],[u[$-2]]];case 243:return["try",u[$]];case 244:return["try",u[$-1],u[$]];case 245:return["try",u[$-2],u[$]];case 246:return["try",u[$-3],u[$-2],u[$]];case 247:case 248:case 373:case 376:case 378:return[u[$-1],u[$]];case 249:return[null,u[$]];case 250:return["switch",u[$-3],u[$-1],null];case 251:return["switch",u[$-5],u[$-3],u[$-1]];case 252:return["switch",null,u[$-1],null];case 253:return["switch",null,u[$-3],u[$-1]];case 256:return["when",u[$-1],u[$]];case 257:return["when",u[$-2],u[$-1]];case 258:return["while",u[$]];case 259:return["while",u[$-2],u[$]];case 260:return["while",["!",u[$]]];case 261:return["while",["!",u[$-2]],u[$]];case 262:return u[$-1].length===2?[u[$-1][0],u[$-1][1],u[$]]:[u[$-1][0],u[$-1][1],u[$-1][2],u[$]];case 263:case 264:return u[$].length===2?[u[$][0],u[$][1],[u[$-1]]]:[u[$][0],u[$][1],u[$][2],[u[$-1]]];case 266:return["loop",u[$]];case 267:return["loop",[u[$]]];case 268:return["loop-n",u[$-1],u[$]];case 269:return["for-in",u[$-3],u[$-1],null,null,u[$]];case 270:return["for-in",u[$-5],u[$-3],null,u[$-1],u[$]];case 271:return["for-in",u[$-5],u[$-3],u[$-1],null,u[$]];case 272:return["for-in",u[$-7],u[$-5],u[$-1],u[$-3],u[$]];case 273:return["for-in",u[$-7],u[$-5],u[$-3],u[$-1],u[$]];case 274:return["for-of",u[$-3],u[$-1],!1,null,u[$]];case 275:return["for-of",u[$-5],u[$-3],!1,u[$-1],u[$]];case 276:return["for-of",u[$-3],u[$-1],!0,null,u[$]];case 277:return["for-of",u[$-5],u[$-3],!0,u[$-1],u[$]];case 278:return["for-as",u[$-3],u[$-1],!1,null,u[$]];case 279:return["for-as",u[$-5],u[$-3],!1,u[$-1],u[$]];case 280:case 282:return["for-as",u[$-3],u[$-1],!0,null,u[$]];case 281:case 283:return["for-as",u[$-5],u[$-3],!0,u[$-1],u[$]];case 284:return["for-in",[],u[$-1],null,null,u[$]];case 285:return["for-in",[],u[$-3],u[$-1],null,u[$]];case 286:return["comprehension",u[$-4],[["for-in",u[$-2],u[$],null]],[]];case 287:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],null]],[u[$]]];case 288:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],u[$]]],[]];case 289:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$]]],[u[$-2]]];case 290:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$-2]]],[u[$]]];case 291:return["comprehension",u[$-4],[["for-of",u[$-2],u[$],!1]],[]];case 292:return["comprehension",u[$-6],[["for-of",u[$-4],u[$-2],!1]],[u[$]]];case 293:return["comprehension",u[$-5],[["for-of",u[$-2],u[$],!0]],[]];case 294:return["comprehension",u[$-7],[["for-of",u[$-4],u[$-2],!0]],[u[$]]];case 295:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!1,null]],[]];case 296:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!1,null]],[u[$]]];case 297:return["comprehension",u[$-5],[["for-as",u[$-2],u[$],!0,null]],[]];case 298:return["comprehension",u[$-7],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 299:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!0,null]],[]];case 300:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 301:return["comprehension",u[$-2],[["for-in",[],u[$],null]],[]];case 302:return["comprehension",u[$-4],[["for-in",[],u[$-2],u[$]]],[]];case 306:case 340:case 342:case 369:case 370:case 372:return[u[$-2],u[$]];case 307:return["class",null,null];case 308:return["class",null,null,u[$]];case 309:return["class",null,u[$]];case 310:return["class",null,u[$-1],u[$]];case 311:return["class",u[$],null];case 312:return["class",u[$-1],null,u[$]];case 313:return["class",u[$-2],u[$]];case 314:return["class",u[$-3],u[$-1],u[$]];case 315:return["enum",u[$-1],u[$]];case 316:return["component",null,["block",...u[$-1]]];case 317:return["component",u[$-3],["block",...u[$-1]]];case 324:return["offer",u[$]];case 325:return["accept",u[$]];case 326:return["render",u[$]];case 327:case 330:return["import","{}",u[$]];case 328:case 329:return["import",u[$-2],u[$]];case 331:return["import",u[$-4],u[$]];case 332:return["import",[u[$-4],u[$-2]],u[$]];case 333:return["import",[u[$-7],u[$-4]],u[$]];case 344:return["*",u[$]];case 345:return["export","{}"];case 346:return["export",u[$-2]];case 347:case 348:case 349:case 350:case 354:case 355:case 356:case 357:return["export",u[$]];case 351:return["export",["=",u[$-2],u[$]]];case 352:return["export",["=",u[$-3],u[$]]];case 353:return["export",["=",u[$-4],u[$-1]]];case 358:return["export-default",u[$]];case 359:return["export-default",u[$-1]];case 360:return["export-all",u[$]];case 361:return["export-from","{}",u[$]];case 362:return["export-from",u[$-4],u[$]];case 374:case 375:case 377:case 415:return["do-iife",u[$]];case 379:return["-",u[$]];case 380:return["+",u[$]];case 381:return["?",u[$-1]];case 382:return["defined",u[$-1]];case 383:return["presence",u[$-1]];case 384:return["await",u[$]];case 385:return["await",u[$-1]];case 386:return["--",u[$],!1];case 387:return["++",u[$],!1];case 388:return["--",u[$-1],!0];case 389:return["++",u[$-1],!0];case 390:return["+",u[$-2],u[$]];case 391:return["-",u[$-2],u[$]];case 393:return["**",u[$-2],u[$]];case 396:return["&",u[$-2],u[$]];case 397:return["^",u[$-2],u[$]];case 398:return["|",u[$-2],u[$]];case 399:case 400:case 401:case 402:case 403:case 404:return["control",u[$-1],u[$-2],u[$]];case 405:return["&&",u[$-2],u[$]];case 406:return["||",u[$-2],u[$]];case 407:return["??",u[$-2],u[$]];case 408:return["!?",u[$-2],u[$]];case 409:return["|>",u[$-2],u[$]];case 411:return["?:",u[$-4],u[$-2],u[$]];case 413:return[u[$-3],u[$-4],u[$-1]];case 414:return[u[$-2],u[$-3],u[$]]}},parseError(f,U){let _,w,u,$,F,W,Y;if(U.recoverable)return this.trace(f);else throw u=(U.line||0)+1,_=U.loc?.c||0,Y=U.token?` (token: ${U.token})`:"",W=U.text?` near '${U.text}'`:"",$=`line ${u}, column ${_}`,F=`Parse error at ${$}${Y}${W}: ${f}`,w=Error(F),w.hash=U,w},parse(f){let U,_,w,u,$,F,W,Y,Z,R,A,Q,X,H,M,G,z,q,O,K,E,P,J,D,I,S;[K,S,R]=[[0],[null],[]],[X,I,J,P,G]=[this.parseTable,"",0,0,0],[_,U]=[2,1],Y=Object.create(this.lexer),q={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let B=this.ctx[N];q.ctx[N]=B}if(Y.setInput(f,q.ctx),[q.ctx.lexer,q.ctx.parser]=[Y,this],Y.loc==null)Y.loc={};D=Y.loc,R.push(D),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,W=()=>{let N;if(N=Y.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=H=O=w=M=Q=F=A=$=null,z={};while(!0){if(O=K[K.length-1],E==null)E=W();if(w=X[O]?.[E],w==null){if(u="",!G)$=(()=>{let N=[];for(let B in X[O]){if(!Object.hasOwn(X[O],B))continue;if(this.tokenNames[B]&&B>_)N.push(`'${this.tokenNames[B]}'`)}return N})();throw u=(()=>{if(Y.showPosition)return`Parse error on line ${J+1}:
|
|
9
|
+
`);if(this.isUnfinished()){if(_<this.indent&&/^\s*,/.test(this.chunk)&&!G2.has(this.prevTag())){if(this.outdentTo(_,U.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return U.length}return U.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(this.inTypeAnnotation=!1,_===this.indent)return this.emitNewline(),U.length;if(_>this.indent){if(!this.tokens.length)return this.indent=_,U.length;let w=_-this.indent;return this.emit("INDENT",w,{len:_}),this.indents.push(w),this.ends.push({tag:"OUTDENT"}),this.indent=_,U.length}return this.outdentTo(_,U.length),U.length}outdentTo(f,U=0){if(this.inRenderBlock&&f<=this.renderIndent)this.inRenderBlock=!1;let _=this.indent-f;while(_>0){let w=this.indents[this.indents.length-1];if(!w)_=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",_,{len:U}),_-=w}this.emitNewline(),this.indent=f}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
10
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&E2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let _=this.tokens[U-2][0];if(_==="INDENT"||_==="TERMINATOR"||_==="OUTDENT")return!1}}let f=this.tokens[this.tokens.length-1];if(f?.[0]==="COMPARE"&&f[1]===">"){let U=0;for(let _=this.tokens.length-1;_>=0;_--){let w=this.tokens[_];if(w[0]==="COMPARE"&&w[1]===">")U++;else if(w[0]==="COMPARE"&&w[1]==="<")U--;if(U===0&&w[0]==="TYPE_ANNOTATION")return!1;if(w[0]==="TERMINATOR"||w[0]==="INDENT"||w[0]==="OUTDENT")break}}return E2.test(this.chunk)||G2.has(this.prevTag())}pair(f){let U=this.ends[this.ends.length-1];if(!U||f!==U.tag){if(U?.tag==="OUTDENT"){let _=this.indents[this.indents.length-1];if(_)this.outdentTo(this.indent-_);return this.pair(f)}_1(`unmatched ${f}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let f=m3.exec(this.chunk);if(!f)return 0;let U=f[0],_=U.length>1&&U.endsWith("\\"),w=_?U.slice(0,-1):U,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let $;switch(w){case"'":$=i3;break;case'"':$=n3;break;case"'''":$=d3;break;case'"""':$=p3;break}let{tokens:F,index:W}=this.matchWithInterpolations($,U,w),Y=w.length===3,Z=null;if(Y)Z=this.processHeredocIndent(W,w,F);return this.mergeInterpolationTokens(F,{quote:w,indent:Z,endOffset:W,raw:_}),W}processHeredocIndent(f,U,_){let w=f-U.length,u=w-1;while(u>=0&&this.chunk[u]!==`
|
|
11
|
+
`)u--;u++;let $=this.chunk.slice(u,w),F=/^\s*$/.test($)?$.length:null,W="";for(let R of _)if(R[0]==="NEOSTRING")W+=R[1];let Y=null,Z;q2.lastIndex=0;while(Z=q2.exec(W))if(Y===null||Z[1].length>0&&Z[1].length<Y.length)Y=Z[1];if(F===null)return Y;if(Y===null)return" ".repeat(F);if(F<=Y.length)return" ".repeat(F);return Y}matchWithInterpolations(f,U,_,w){if(!_)_=U;if(!w)w=/^[#$]\{/;let u=[],$=U.length;if(this.chunk.slice(0,$)!==U)return null;let F=this.chunk.slice($);while(!0){let[W]=f.exec(F);u.push(["NEOSTRING",W,{offset:$}]),F=F.slice(W.length),$+=W.length;let Y=w.exec(F);if(!Y)break;let R=Y[0].length-1,A=F.slice(R),Q=new A1().tokenize(A,{row:this.row,col:this.col+$+R,untilBalanced:!0,rewrite:!1}),X=Q.index+R;if(F[X-1]==="}"){let M=Q.tokens[0],O=Q.tokens[Q.tokens.length-1];M[0]="INTERPOLATION_START",M[1]="(",O[0]="INTERPOLATION_END",O[1]=")"}if(Q.tokens[1]?.[0]==="TERMINATOR")Q.tokens.splice(1,1);let H=Q.tokens.length;if(H>2&&Q.tokens[H-3]?.[0]==="INDENT"&&Q.tokens[H-2]?.[0]==="OUTDENT")Q.tokens.splice(H-3,2);u.push(["TOKENS",Q.tokens]),F=F.slice(X),$+=X}if(F.slice(0,_.length)!==_)_1(`missing ${_}`,{row:this.row,col:this.col});return{tokens:u,index:$+_.length}}mergeInterpolationTokens(f,{quote:U,indent:_,endOffset:w,raw:u}){if(f.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let $=0;$<f.length;$++){let[F,W]=f[$];if(F==="TOKENS")for(let Y of W)this.tokens.push(Y);else if(F==="NEOSTRING"){let Y=W;if(_){let Z=new RegExp("\\n"+_,"g");Y=Y.replace(Z,`
|
|
12
|
+
`)}if($===0&&U?.length===3)Y=Y.replace(/^\n/,"");if($===f.length-1&&U?.length===3)Y=Y.replace(/\n[^\S\n]*$/,"");if(u)Y=Y.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${Y}"`,{len:W.length,data:{quote:U}})}}if(f.length>1)this.emit("STRING_END",")",{len:U?.length||0});return w}numberToken(){let f=b3.exec(this.chunk);if(!f)return 0;let U=f[0],_=U.length,w={row:this.row,col:this.col};if(/^0[BOX]/.test(U))_1(`radix prefix in '${U}' must be lowercase`,{...w,col:w.col+1});if(/^0\d*[89]/.test(U))_1(`decimal literal '${U}' must not be prefixed with '0'`,{...w,len:_});if(/^0\d+/.test(U))_1(`octal literal '${U}' must be prefixed with '0o'`,{...w,len:_});let u=f7(U),$=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if($==="INFINITY")F.original=U;return this.emit($,U,{len:_,data:F}),_}regexToken(){let f=this.matchWithInterpolations(a3,"///");if(f){let{tokens:Z,index:R}=f,[A]=P2.exec(this.chunk.slice(R)),Q=R+A.length;if(Z.length===1||!Z.some((X)=>X[0]==="TOKENS")){let X=(Z[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${X}/${A}`,{len:Q,data:{delimiter:"///",heregex:{flags:A}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:Q-A.length}),A)this.emit(",",",",{len:0}),this.emit("STRING",`"${A}"`,{len:A.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return Q}let U=r3.exec(this.chunk);if(!U)return 0;let[_,w,u]=U,$=this.prev();if($){if($.spaced&&h1.has($[0])&&(!u||/^\/=?\s/.test(_)))return 0;if(T3.has($[0])&&!($.spaced&&h1.has($[0])))return 0}if(!u)_1("missing / (unclosed regex)",{row:this.row,col:this.col});let F=_.length,[W]=P2.exec(this.chunk.slice(F)),Y=F+W.length;if(!o3.test(W))_1(`invalid regular expression flags ${W}`,{row:this.row,col:this.col+F,len:W.length});return this.emit("REGEX",`/${w}/${W}`,{len:Y,data:{delimiter:"/"}}),Y}jsToken(){if(this.chunk[0]!=="`")return 0;let f=t3.exec(this.chunk)||s3.exec(this.chunk);if(!f)return 0;let U=f[1],_=f[0].length;return this.emit("JS",U,{len:_,data:{here:f[0].startsWith("```")}}),_}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let _={"[":"]","(":")","{":"}","<":">"}[f]||f,w=_!==f,u=1,$=3;while($<this.chunk.length&&u>0){let Z=this.chunk[$];if(Z==="\\"){$+=2;continue}if(w&&Z===f)u++;if(Z===_)u--;if(u>0)$++}if(u!==0)return 0;let F=this.chunk.slice(3,$),W=$+1,Y=[];if(F.trim()){let Z=F.trim().split(/(?<!\\)\s+/);for(let R of Z)Y.push(R.replace(/\\ /g," "))}this.emit("[","[",{len:W});for(let Z=0;Z<Y.length;Z++){if(Z>0)this.emit(",",",");this.emit("STRING",`"${Y[Z]}"`)}return this.emit("]","]"),W}literalToken(){let f=this.wordLiteral();if(f)return f;let U=c3.exec(this.chunk),_=U?U[0]:this.chunk.charAt(0),w=_,u=this.prev();if(l3.test(_))this.tagParameters();if(_==="="&&u&&u[1]==="."&&!u.spaced){let $=this.tokens,F=$.length-2;while(F>=1&&$[F][0]==="PROPERTY"&&$[F-1]?.[1]===".")F-=2;if(F>=0&&($[F][0]==="IDENTIFIER"||$[F][0]===")"||$[F][0]==="]")){let W=$.slice(F,$.length-1);u[0]="=",u[1]="=";for(let Y of W)this.tokens.push(C1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(C1(".",".",{pre:0,row:this.row,col:this.col,len:1})),_.length}}if(u&&(_==="="||O2.has(_))){if(_==="="&&(u[1]==="||"||u[1]==="&&"||u[1]==="??")&&!u.spaced)return u[0]="COMPOUND_ASSIGN",u[1]+="=",_.length}if(_==="("&&u?.[0]==="IMPORT")u[0]="DYNAMIC_IMPORT";if(_==="{"&&this.seenImport)this.importSpecifierList=!0;if(_==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(_==="{"&&u?.[0]==="EXPORT")this.exportSpecifierList=!0;if(_==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(_===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,w="TERMINATOR";else if(_==="|>")w="PIPE";else if(_==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(_==="::")w="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(_==="~=")w="COMPUTED_ASSIGN";else if(_===":=")w="REACTIVE_ASSIGN";else if(_===":>")w="RIGHTWARD_ASSIGN";else if(_==="<=>")w="BIND";else if(_==="~>")w="EFFECT",this.inTypeAnnotation=!1;else if(_==="=!")w="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(_==="*>"&&(!u||u[0]==="TERMINATOR"||u[0]==="INDENT"||u[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let $=this.chunk.slice(2),F=/^@(\s*)=(?!=)/.exec($);if(F){let Y=F[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let Z=this.emit("PROPERTY","assign");return Z.spaced=!0,this.emit("@","@"),this.emit(",",","),3+Y.length+1}let W=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec($);if(W){let Y=W[1],Z=W[2],R=Y.split("."),A=()=>{this.emit("IDENTIFIER",R[0]);for(let X=1;X<R.length;X++)this.emit(".","."),this.emit("PROPERTY",R[X])};A(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),A(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let Q=this.prev();return Q.mergeClose=!0,2+Y.length+Z.length+1}}else if(_==="*"&&u?.[0]==="EXPORT")w="EXPORT_ALL";else if(V3.has(_))w="MATH";else if(h3.has(_))w="COMPARE";else if(O2.has(_))w="COMPOUND_ASSIGN";else if(j3.has(_))w="UNARY_MATH";else if(C3.has(_))w="SHIFT";else if(_==="?"&&u?.spaced)w="TERNARY";else if(_==="!?"&&u&&!u.spaced)w="DEFINED";else if(_==="?!"&&u&&!u.spaced)w="PRESENCE";else if(_==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))w="?.";else if(u){if(_==="("&&!u.spaced&&h1.has(u[0])){if(u[0]==="?.")u[0]="ES6_OPTIONAL_CALL";w="CALL_START"}if(_==="["&&!u.spaced&&I2.has(u[0])){if(w="INDEX_START",u[0]==="?.")u[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(_==="="||w==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(_==="("||_==="{"||_==="[")this.ends.push({tag:B3[_],origin:[w,_]});else if(_===")"||_==="}"||_==="]")this.pair(_);return this.emit(w,_,{len:_.length}),_.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let f=this.tokens.length-1,U=[];this.tokens[f][0]="PARAM_END";while(f-- >0){let _=this.tokens[f];if(_[0]===")")U.push(_);else if(_[0]==="("||_[0]==="CALL_START")if(U.length)U.pop();else if(_[0]==="(")return _[0]="PARAM_START",this.tagDoIife(f-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(f){let U=this.tokens[f??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}closeOpenCalls(){this.scanTokens((f,U)=>{if(f[0]==="CALL_START")this.detectEnd(U+1,(_)=>_[0]===")"||_[0]==="CALL_END",(_)=>_[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,U)=>{if(f[0]==="INDEX_START")this.detectEnd(U+1,(_)=>_[0]==="]"||_[0]==="INDEX_END",(_,w)=>{if(this.tokens[w+1]?.[0]===":")f[0]="[",_[0]="]";else _[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,U=null,_=null,w=($,F)=>{return $[1]!==";"&&L3.has($[0])&&!($[0]==="TERMINATOR"&&D2.has(this.tokens[F+1]?.[0]))&&!($[0]==="ELSE"&&f!=="THEN")||$[0]==="INDENT"&&!$.generated&&(f==="->"||f==="=>")||$[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(F)&&!this.commaInImplicitObject(F)||M2.has($[0])&&(this.tokens[F-1]?.newLine||this.tokens[F-1]?.[0]==="OUTDENT")},u=($,F)=>{let W=this.tokens[F-1]?.[0]===","?F-1:F;this.tokens.splice(W,0,_)};this.scanTokens(($,F,W)=>{let[Y]=$;if(Y==="TERMINATOR"){if(this.tokens[F+1]?.[0]==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")return W.splice(F,1,...this.makeIndentation()),1;if(D2.has(this.tokens[F+1]?.[0]))return W.splice(F,1),0}if(Y==="CATCH")for(let Z=1;Z<=2;Z++){let R=this.tokens[F+Z]?.[0];if(R==="OUTDENT"||R==="TERMINATOR"||R==="FINALLY")return W.splice(F+Z,0,...this.makeIndentation()),2+Z}if((Y==="->"||Y==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[U,_]=this.makeIndentation(),W.splice(F+1,0,U,_),1;if(H2.has(Y)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(Y==="ELSE"&&this.tokens[F+1]?.[0]==="IF")&&!(Y==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")){if(f=Y,[U,_]=this.makeIndentation(),Y==="THEN")U.fromThen=!0;if(W.splice(F+1,0,U),this.detectEnd(F+2,w,u),Y==="THEN")W.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let f=null,U=(w,u)=>{return w[0]==="TERMINATOR"||w[0]==="INDENT"&&!H2.has(this.tokens[u-1]?.[0])},_=(w)=>{if(w[0]!=="INDENT"||w.generated&&!w.fromThen)f[0]="POST_"+f[0]};this.scanTokens((w,u)=>{if(w[0]!=="IF"&&w[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=w,this.detectEnd(u+1,U,_),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let U=f.length-2;U>=0;U--)if(f[U][0]==="IDENTIFIER"&&f[U][1]==="$"&&(f[U+1]?.[0]==="STRING"||f[U+1]?.[0]==="STRING_START")){let _=f[U-1];if(_&&N3.has(_[0])){if(f.splice(U,1),_.spaced=!1,f[U].spaced=!1,f[U].pre=0,f[U].newLine)f[U].newLine=!1}}}addImplicitBracesAndParens(){let f=[],U=!1;this.scanTokens((_,w,u)=>{let[$]=_,F=u[w-1]||[],W=u[w+1]||[],[Y]=F,[Z]=W,R=w,A=(J)=>w-R+J,Q=()=>f[f.length-1],X=(J)=>J?.[2]?.ours,H=()=>X(Q())&&Q()?.[0]==="(",M=()=>X(Q())&&Q()?.[0]==="{",O=(J)=>{f.push(["(",J,{ours:!0}]),u.splice(J,0,F1("CALL_START","("))},z=()=>{f.pop(),u.splice(w,0,F1("CALL_END",")")),w+=1},q=(J,D={})=>{f.push(["{",J,{sameLine:!0,startsLine:D.startsLine??!0,ours:!0}]);let I=F1("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(J,0,I)},G=(J)=>{J=J??w,f.pop(),u.splice(J,0,F1("}","}")),w+=1};if((H()||M())&&S3.has($))return f.push(["CONTROL",w,{ours:!0}]),A(1);if($==="INDENT"&&X(Q())){if(Y!=="=>"&&Y!=="->"&&Y!=="["&&Y!=="("&&Y!==","&&Y!=="{"&&Y!=="ELSE"&&Y!=="=")while(H()||M()&&Y!==":")if(H())z();else G();if(Q()?.[2]?.ours&&Q()[0]==="CONTROL")f.pop();return f.push([$,w]),A(1)}if(z1.has($))return f.push([$,w]),A(1);if(R1.has($)){while(X(Q()))if(H())z();else if(M())G();else f.pop();f.pop()}if(d1.has($)&&_.spaced&&(V1.has(Z)||Z==="..."&&V1.has(u[w+2]?.[0])||P3.has(Z)&&!W.spaced&&!W.newLine)&&!(($==="]"||$==="}")&&(Z==="->"||Z==="=>")))return O(w+1),A(2);if(d1.has($)&&this.tokens[w+1]?.[0]==="INDENT"&&this.looksObjectish(w+2)&&!this.findTagsBackwards(w,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return O(w+1),f.push(["INDENT",w+2]),A(3);if($==="TERNARY")U=!0;if($===":"){if(U)return U=!1,A(1);let J=R1.has(this.tokens[w-1]?.[0])?f[f.length-1]?.[1]??w-1:w-1;if(this.tokens[w-2]?.[0]==="@")J=w-2;let D=J<=0||O1.has(this.tokens[J-1]?.[0])||this.tokens[J-1]?.newLine;if(Q()){let[I,S]=Q(),N=f[f.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!X(N))&&(D||this.tokens[J-1]?.[0]===","||this.tokens[J-1]?.[0]==="{"||this.tokens[J]?.[0]==="{"))return A(1)}return q(J,{startsLine:!!D}),A(2)}if(O1.has($))for(let J=f.length-1;J>=0;J--){if(!X(f[J]))break;if(f[J][0]==="{")f[J][2].sameLine=!1}let K=Y==="OUTDENT"||F.newLine,E=$==="||"||$==="&&",P=!1;if(E){let J=w+1,D=u[J]?.[0];if(D==="("||D==="["||D==="{"){for(let I=1;++J<u.length&&I>0;)if(D=u[J][0],D==="("||D==="["||D==="{")I++;else if(D===")"||D==="]"||D==="}")I--}else if(D&&D!=="TERMINATOR"&&D!=="OUTDENT"&&D!==",")J++;P=u[J]?.[0]===","}if(E3.has($)&&!P||M2.has($)&&K)while(X(Q())){let[J,,{sameLine:D,startsLine:I}]=Q();if(H()&&Y!==",")z();else if(M()&&!E&&D&&$!=="TERMINATOR"&&Y!==":")G();else if(M()&&$==="TERMINATOR"&&Y!==","&&!(I&&this.looksObjectish(w+1)))G();else if(Q()?.[2]?.ours&&Q()[0]==="CONTROL"&&u[Q()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")f.pop();else break}if($===","&&!this.looksObjectish(w+1)&&M()&&(Z!=="TERMINATOR"||!this.looksObjectish(w+2))){let J=Z==="OUTDENT"?1:0;while(M())G(w+J)}return A(1)})}addImplicitCallCommas(){let f=0,U=0,_=this.tokens;while(U<_.length){let w=_[U][0],u=U>0?_[U-1][0]:null;if(w==="CALL_START"||w==="(")f++;if(w==="CALL_END"||w===")")f--;if(f>0&&(w==="->"||w==="=>")&&I3.has(u))_.splice(U,0,F1(",",",")),U++;U++}}scanTokens(f){let U=0;while(U<this.tokens.length)U+=f.call(this,this.tokens[U],U,this.tokens)}detectEnd(f,U,_,w={}){let u=0;while(f<this.tokens.length){let $=this.tokens[f];if(u===0&&U.call(this,$,f))return _.call(this,$,f);if(z1.has($[0]))u++;if(R1.has($[0]))u--;if(u<0){if(w.returnOnNegativeLevel)return;return _.call(this,$,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let U=0;U<f.length;U++){if(!f[U].mergeClose)continue;let _=0;for(let w=U+1;w<f.length;w++){let u=f[w][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")_++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")_--;if(_<0||_===0&&u==="TERMINATOR"){f.splice(w,0,F1("CALL_END",")",f[w-1]));break}if(w===f.length-1){f.splice(w+1,0,F1("CALL_END",")",f[w]));break}}}}commaInImplicitCall(f){let U=0;for(let _=f-1;_>=0;_--){let w=this.tokens[_][0];if(R1.has(w)){U++;continue}if(z1.has(w)){if(w==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(d1.has(w)&&this.tokens[_].spaced){let u=this.tokens[_+1]?.[0];return V1.has(u)||u==="..."&&V1.has(this.tokens[_+2]?.[0])}}return!1}commaInImplicitObject(f){let U=0;for(let _=f-1;_>=0;_--){let w=this.tokens[_][0];if(R1.has(w)){U++;continue}if(z1.has(w)){if(U--,U<0)return!1;continue}if(U>0)continue;if(w===":"&&_>0&&this.tokens[_-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(O1.has(w))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if(z1.has(this.tokens[f]?.[0])){let U=null;if(this.detectEnd(f+1,(_)=>R1.has(_[0]),(_,w)=>U=w),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,U){let _=new Set(U),w=[];while(f>=0){let u=this.tokens[f]?.[0];if(!w.length&&_.has(u))return!0;if(R1.has(u))w.push(u);if(z1.has(u)&&w.length)w.pop();if(!w.length&&(z1.has(u)&&!this.tokens[f]?.generated||O1.has(u)))break;f--}return!1}makeIndentation(f){let U=F1("INDENT",2),_=F1("OUTDENT",2);if(f)U.generated=_.generated=!0,U.origin=_.origin=f;else U.explicit=_.explicit=!0;return[U,_]}}z2(A1);var $7={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,RightwardAssign:18,ReactiveAssign:19,ComputedAssign:20,ReadonlyAssign:21,Effect:22,If:23,Try:24,While:25,For:26,Switch:27,Class:28,Component:29,Render:30,Throw:31,Yield:32,Def:33,Enum:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,AlphaNumeric:46,JS:47,Regex:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,NUMBER:54,String:55,Identifier:56,IDENTIFIER:57,Property:58,PROPERTY:59,STRING:60,STRING_START:61,Interpolations:62,STRING_END:63,InterpolationChunk:64,INTERPOLATION_START:65,INTERPOLATION_END:66,INDENT:67,OUTDENT:68,REGEX:69,REGEX_START:70,REGEX_END:71,RegexWithIndex:72,",":73,"=":74,RIGHTWARD_ASSIGN:75,REACTIVE_ASSIGN:76,COMPUTED_ASSIGN:77,Block:78,READONLY_ASSIGN:79,EFFECT:80,SimpleAssignable:81,Array:82,Object:83,ThisProperty:84,".":85,"?.":86,INDEX_START:87,INDEX_END:88,Slice:89,ES6_OPTIONAL_INDEX:90,"{":91,ObjAssignable:92,":":93,FOR:94,ForVariables:95,FOROF:96,OptComma:97,"}":98,WHEN:99,OWN:100,AssignList:101,AssignObj:102,ObjRestValue:103,SimpleObjAssignable:104,"[":105,"]":106,"@":107,"...":108,ObjSpreadExpr:109,SUPER:110,Arguments:111,DYNAMIC_IMPORT:112,Elisions:113,ArgElisionList:114,OptElisions:115,ArgElision:116,Arg:117,Elision:118,RangeDots:119,"..":120,DEF:121,CALL_START:122,ParamList:123,CALL_END:124,PARAM_START:125,PARAM_END:126,FuncGlyph:127,"->":128,"=>":129,Param:130,ParamVar:131,Splat:132,ES6_OPTIONAL_CALL:133,ArgList:134,SimpleArgs:135,THIS:136,NEW_TARGET:137,IMPORT_META:138,"(":139,")":140,RETURN:141,THROW:142,YIELD:143,FROM:144,IfBlock:145,IF:146,ELSE:147,UnlessBlock:148,UNLESS:149,POST_IF:150,POST_UNLESS:151,TRY:152,Catch:153,FINALLY:154,CATCH:155,SWITCH:156,Whens:157,When:158,LEADING_WHEN:159,WhileSource:160,WHILE:161,UNTIL:162,Loop:163,LOOP:164,FORIN:165,BY:166,FORAS:167,AWAIT:168,FORASAWAIT:169,ForValue:170,CLASS:171,EXTENDS:172,ENUM:173,COMPONENT:174,ComponentBody:175,ComponentLine:176,OFFER:177,ACCEPT:178,RENDER:179,IMPORT:180,ImportDefaultSpecifier:181,ImportNamespaceSpecifier:182,ImportSpecifierList:183,ImportSpecifier:184,AS:185,DEFAULT:186,IMPORT_ALL:187,EXPORT:188,ExportSpecifierList:189,EXPORT_ALL:190,ExportSpecifier:191,UNARY:192,DO:193,DO_IIFE:194,UNARY_MATH:195,"-":196,"+":197,"?":198,DEFINED:199,PRESENCE:200,"--":201,"++":202,MATH:203,"**":204,SHIFT:205,COMPARE:206,"&":207,"^":208,"|":209,"||":210,"??":211,"&&":212,"!?":213,PIPE:214,RELATION:215,TERNARY:216,COMPOUND_ASSIGN:217},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",47:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",54:"NUMBER",57:"IDENTIFIER",59:"PROPERTY",60:"STRING",61:"STRING_START",63:"STRING_END",65:"INTERPOLATION_START",66:"INTERPOLATION_END",67:"INDENT",68:"OUTDENT",69:"REGEX",70:"REGEX_START",71:"REGEX_END",73:",",74:"=",75:"RIGHTWARD_ASSIGN",76:"REACTIVE_ASSIGN",77:"COMPUTED_ASSIGN",79:"READONLY_ASSIGN",80:"EFFECT",85:".",86:"?.",87:"INDEX_START",88:"INDEX_END",90:"ES6_OPTIONAL_INDEX",91:"{",93:":",94:"FOR",96:"FOROF",98:"}",99:"WHEN",100:"OWN",105:"[",106:"]",107:"@",108:"...",110:"SUPER",112:"DYNAMIC_IMPORT",120:"..",121:"DEF",122:"CALL_START",124:"CALL_END",125:"PARAM_START",126:"PARAM_END",128:"->",129:"=>",133:"ES6_OPTIONAL_CALL",136:"THIS",137:"NEW_TARGET",138:"IMPORT_META",139:"(",140:")",141:"RETURN",142:"THROW",143:"YIELD",144:"FROM",146:"IF",147:"ELSE",149:"UNLESS",150:"POST_IF",151:"POST_UNLESS",152:"TRY",154:"FINALLY",155:"CATCH",156:"SWITCH",159:"LEADING_WHEN",161:"WHILE",162:"UNTIL",164:"LOOP",165:"FORIN",166:"BY",167:"FORAS",168:"AWAIT",169:"FORASAWAIT",171:"CLASS",172:"EXTENDS",173:"ENUM",174:"COMPONENT",177:"OFFER",178:"ACCEPT",179:"RENDER",180:"IMPORT",185:"AS",186:"DEFAULT",187:"IMPORT_ALL",188:"EXPORT",190:"EXPORT_ALL",192:"UNARY",193:"DO",194:"DO_IIFE",195:"UNARY_MATH",196:"-",197:"+",198:"?",199:"DEFINED",200:"PRESENCE",201:"--",202:"++",203:"MATH",204:"**",205:"SHIFT",206:"COMPARE",207:"&",208:"^",209:"|",210:"||",211:"??",212:"&&",213:"!?",214:"PIPE",215:"RELATION",216:"TERNARY",217:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[108,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,1,1,0,2,1,5,-2,108,5,1,5,60,2,72,-3,-3,-3,-3,-3,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,125,129,-6,-6,-6,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,1,5,60,1,1,5,33,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,60,1,1,5,33,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,131,132,97,98,57,1,5,49,5,1,5,1,1,5,2,10,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,136,106,107,-13,-13,-13,-13,-13,139,140,141,-13,142,-13,-13,-13,-13,-13,-13,-13,137,-13,143,-13,-13,138,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,133,134,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,60,1,1,5,2,10,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,144,145,146,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-15,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-16,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-17,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-18,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-19,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-20,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-21,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-22,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-23,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-24,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-25,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-26,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-27,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-28,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-29,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-30,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-31,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-32,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,60,1,1,5,33,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,60,1,1,5,33,18,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,60,1,5,54,1,5,1,1,5,1,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,27,1,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,147,-36,148,149,150,151,-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,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-37,-37,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-38,-38,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-39,-39,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-40,-40,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-41,-41,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-42,-42,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-43,-43,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-44,-44,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,152,-175,-175,153,154,107,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,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,163,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,162,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,166,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,169,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,170,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,176,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,177,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,178,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,179,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,180,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,184,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,63,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,185,186,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,187,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,189,188,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,190,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,191,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,2,67,11,164,192,2,67,11,164,193,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-265,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,197,156,105,158,159,157,100,194,195,84,160,199,196,198,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,200,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,201,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,91,1,5,8,1,22,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,2,3,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,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-307,164,-307,103,104,-307,-307,202,204,73,74,94,-307,100,-307,-307,-307,-307,-307,84,-307,88,-307,85,86,-307,-307,171,-307,172,91,92,87,89,90,83,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,203,175,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,67,105,205,206,2,67,11,164,207,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,208,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,209,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,141,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,5,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,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,210,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-226,211,-226,103,104,-226,-226,54,53,73,74,94,-226,100,-226,-226,-226,-226,-226,84,-226,88,-226,85,86,-226,67,-226,171,-226,172,91,92,87,89,90,83,-226,70,65,66,212,55,95,-226,56,96,-226,-226,57,61,58,-226,-226,59,99,-226,-226,-226,50,-226,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,2,56,1,213,105,2,56,1,214,105,6,15,20,90,2,1,1,216,215,43,44,91,92,140,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,5,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,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,217,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-223,218,-223,103,104,-223,-223,54,53,73,74,94,-223,100,-223,-223,-223,-223,-223,84,-223,88,-223,85,86,-223,67,-223,171,-223,172,91,92,87,89,90,83,-223,70,65,66,55,95,-223,56,96,-223,-223,57,61,58,-223,-223,59,99,-223,-223,-223,50,-223,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,9,55,1,1,3,1,30,90,1,5,219,223,105,106,107,222,220,221,224,60,14,1,4,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,10,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,12,4,4,181,182,231,232,233,234,226,227,228,229,237,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,230,105,106,107,103,104,54,238,73,74,94,225,84,88,85,86,67,171,172,91,92,87,89,90,83,62,68,63,235,236,175,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,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,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,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,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-45,-45,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-46,-46,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-47,-47,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-48,-48,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-49,-49,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-50,-50,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-51,-51,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-52,-52,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,239,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,240,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,114,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,241,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,85,2,24,11,254,255,253,143,2,111,11,256,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,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,57,1,5,52,1,1,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,257,258,-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,1,85,259,1,85,260,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-91,-91,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-92,-92,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,261,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,262,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,263,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,264,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,266,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,265,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,267,-111,268,273,277,269,270,271,278,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-53,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-65,-65,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,279,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,66,1,5,54,1,5,1,1,5,1,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,13,11,1,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,-55,-55,-55,-55,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-57,-57,6,55,5,1,1,2,1,283,106,107,280,281,282,110,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,1,3,1,5,2,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-5,284,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-5,-5,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,-5,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,285,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,286,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,287,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,288,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,289,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,290,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,291,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,292,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,293,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,296,167,294,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,295,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,299,167,297,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,298,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,302,167,300,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,301,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,303,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,304,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,305,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,306,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,307,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,308,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,309,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,310,311,84,160,199,312,198,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,314,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,315,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-263,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-381,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-382,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-189,-189,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-190,-190,2,111,11,316,143,2,58,1,317,258,2,58,1,318,258,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,8,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,5,1,8,4,1,1,1,1,1,4,1,319,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,324,78,79,80,81,82,101,102,93,105,106,107,320,103,104,322,54,53,73,74,94,321,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,87,327,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,1,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,328,43,44,91,92,251,329,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,58,1,333,258,2,58,1,334,258,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,335,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,336,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,338,337,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,339,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,341,340,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,342,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,344,343,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,345,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,347,346,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,348,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,350,349,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,351,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,352,6,6,61,1,5,51,2,-176,-176,-176,-176,-176,-176,7,6,61,1,5,1,50,2,-180,-180,-180,-180,355,-180,-180,15,6,50,1,10,1,5,9,1,1,7,14,2,17,2,5,-183,156,105,-183,-183,-183,158,159,157,100,161,160,-183,-183,356,11,6,61,1,5,1,22,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,61,1,5,1,22,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,11,6,61,1,5,1,22,28,2,39,2,2,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,11,6,61,1,5,1,22,28,2,39,2,2,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,2,58,1,257,258,114,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,9,1,5,60,1,1,5,33,18,16,-172,-172,-172,-172,-172,-172,-172,-172,-172,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,358,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,357,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,119,-376,121,-376,-376,-376,9,1,5,60,1,1,5,33,18,16,-373,-373,-373,-373,-373,-373,-373,-373,-373,5,150,1,9,1,1,130,131,132,97,98,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,127,128,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,119,-377,121,-377,-377,-377,9,1,5,60,1,1,5,33,18,16,-374,-374,-374,-374,-374,-374,-374,-374,-374,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-378,-378,-378,-378,-378,-378,-378,-378,-378,112,-378,-378,-378,-378,-378,-378,119,-378,121,-378,-378,-378,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,359,-175,-175,153,154,2,67,11,164,162,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,5,15,110,2,1,1,216,171,172,91,92,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,127,128,-379,-379,-379,-379,-379,-379,-379,-379,-379,112,-379,-379,-379,-379,-379,-379,119,-379,121,-379,-379,-379,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,127,128,-380,-380,-380,-380,-380,-380,-380,-380,-380,112,-380,-380,-380,-380,-380,-380,119,-380,121,-380,-380,-380,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-384,127,128,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,119,-384,121,-384,-384,-384,2,83,8,360,100,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-88,-88,-386,-386,-386,-386,-88,-386,-88,-88,-88,-88,-88,-88,-88,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-88,-386,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-88,-88,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,10,55,5,1,24,1,1,3,21,11,11,136,106,107,139,140,141,142,137,143,138,3,85,1,1,144,145,146,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-36,-36,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-88,-88,-387,-387,-387,-387,-88,-387,-88,-88,-88,-88,-88,-88,-88,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-88,-387,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-88,-88,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,363,361,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,362,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,125,-85,-85,129,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,126,127,128,97,98,-85,-85,-85,-85,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,364,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,3,67,11,68,164,365,366,47,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,6,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,367,368,369,-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,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,4,96,69,2,2,371,370,372,373,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,374,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,375,161,160,199,198,3,67,11,88,164,376,377,5,73,23,69,2,2,378,-305,-305,-305,-305,6,73,1,22,69,2,2,-303,379,-303,-303,-303,-303,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,380,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,3,157,1,1,381,382,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,384,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,62,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-88,-88,-311,164,-311,-311,-88,-311,-88,-88,385,-88,-88,-88,-88,-88,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-88,-311,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,386,-311,-311,-88,-88,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,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,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,387,388,392,393,64,71,72,45,46,69,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,394,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,125,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,127,128,-224,-224,-224,-224,-224,-224,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,395,100,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-227,127,128,-227,-227,-227,-227,-227,-227,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,396,100,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,397,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,67,11,44,164,399,398,2,67,11,164,400,9,1,5,60,1,1,5,33,18,16,-375,-375,-375,-375,-375,-375,-375,-375,-375,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,125,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,127,128,-221,-221,-221,-221,-221,-221,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,401,100,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,2,73,71,403,402,1,144,404,7,56,1,10,31,85,1,2,409,105,408,405,406,407,410,2,73,71,-343,-343,1,185,411,26,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,78,3,2,-111,272,101,102,416,105,275,258,106,107,415,-111,-111,276,267,412,268,273,277,269,270,271,278,417,413,414,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,64,1,5,54,1,5,1,1,5,1,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,24,1,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,418,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,419,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,420,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,144,421,59,1,5,54,1,5,1,1,5,2,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,27,1,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,148,149,150,151,-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,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-88,-88,2,6,134,108,422,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,423,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,32,6,61,1,5,2,19,12,2,11,1,4,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,326,424,325,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-144,-144,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,1,3,1,8,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,425,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,428,-219,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,431,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-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,61,1,5,33,-147,-147,-147,-147,-147,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,432,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,5,6,61,1,5,33,-152,-152,-152,-152,-152,6,6,61,1,5,33,18,-202,-202,-202,-202,-202,-202,6,6,61,1,5,33,18,-203,-203,-203,-203,-203,-203,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,7,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,5,1,8,4,1,1,1,1,1,4,1,-204,434,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-204,-204,103,104,-204,54,53,73,74,94,100,60,84,-204,88,85,86,67,-204,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-192,-192,2,58,1,435,258,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,436,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,437,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-193,-193,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,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,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,2,58,1,438,258,2,58,1,439,258,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,440,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,441,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,125,-258,-258,129,-258,-258,442,-258,-258,-258,-258,-258,-258,-258,-258,127,128,97,98,-258,-258,-258,-258,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,125,-260,-260,129,-260,-260,443,-260,-260,-260,-260,-260,-260,-260,-260,127,128,97,98,-260,-260,-260,-260,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-266,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,164,-267,-267,125,444,-267,-267,129,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,127,128,97,98,-267,-267,-267,-267,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-116,-116,-116,-116,445,-116,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,446,-219,-219,-219,7,6,61,1,5,1,19,5,-125,-125,-125,-125,448,-125,-125,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,449,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,58,1,46,257,258,450,6,6,61,1,5,20,5,-128,-128,-128,-128,-128,-128,5,6,61,1,5,25,-112,-112,-112,-112,-112,11,6,61,1,5,1,11,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,11,6,61,1,5,1,11,1,1,6,5,24,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,11,6,61,1,5,1,11,1,1,6,5,24,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,5,6,61,1,5,25,-117,-117,-117,-117,-117,17,39,4,1,12,1,1,1,24,1,7,13,3,2,1,2,24,3,454,456,455,274,105,275,258,453,276,100,451,88,452,457,458,87,83,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,459,-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,6,55,5,1,2,1,1,283,106,107,460,461,282,4,60,1,2,2,-59,-59,-59,-59,108,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,1,3,1,5,1,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,462,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,464,463,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-64,-64,-64,-64,5,1,5,60,2,72,-4,-4,-4,-4,-4,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,127,128,-390,-390,-390,-390,-390,-390,-390,-390,111,112,-390,-390,-390,-390,-390,-390,119,-390,121,-390,-390,-390,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,127,128,-391,-391,-391,-391,-391,-391,-391,-391,111,112,-391,-391,-391,-391,-391,-391,119,-391,121,-391,-391,-391,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-392,-392,-392,-392,-392,-392,-392,-392,-392,112,-392,-392,-392,-392,-392,-392,119,-392,121,-392,-392,-392,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-393,-393,-393,-393,-393,-393,-393,-393,-393,112,-393,-393,-393,-393,-393,-393,119,-393,121,-393,-393,-393,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-394,-394,-394,-394,-394,-394,110,109,111,112,-394,-394,-394,-394,-394,-394,119,-394,121,-394,-394,-394,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-395,-395,-395,-395,-395,-395,110,109,111,112,113,-395,-395,-395,-395,-395,119,-395,121,-395,123,-395,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-396,-396,-396,-396,-396,-396,110,109,111,112,113,114,-396,-396,-396,-396,119,-396,121,-396,123,-396,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-397,-397,-397,-397,-397,-397,110,109,111,112,113,114,115,-397,-397,-397,119,-397,121,-397,123,-397,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,127,128,-398,-398,-398,-398,-398,-398,110,109,111,112,113,114,115,116,-398,-398,119,-398,121,-398,123,-398,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-406,-406,-406,-406,-406,-406,110,109,111,112,113,114,115,116,117,-406,119,120,121,-406,123,-406,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,125,-407,-407,129,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,127,128,97,98,-407,-407,-407,-407,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-405,127,128,-405,-405,-405,-405,-405,-405,110,109,111,112,113,114,115,116,117,-405,119,-405,121,-405,123,-405,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,125,-408,-408,129,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,127,128,97,98,-408,-408,-408,-408,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,127,128,-409,-409,-409,-409,-409,-409,110,109,111,112,113,114,115,116,117,118,119,120,121,-409,123,-409,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,127,128,-410,-410,-410,-410,-410,-410,110,109,111,112,113,-410,-410,-410,-410,-410,119,-410,121,-410,-410,-410,24,75,18,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,465,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-36,-36,-72,-72,-72,-72,-72,-36,-36,-36,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-36,-72,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-36,-36,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,125,-238,-238,129,-238,-238,-238,-238,-238,-238,-238,-238,-238,466,-238,127,128,97,98,-238,-238,-238,-238,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,125,-242,-242,129,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,126,127,128,97,98,-242,-242,-242,-242,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,468,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,471,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,472,161,160,199,198,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,473,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,125,-237,-237,129,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,127,128,97,98,-237,-237,-237,-237,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,125,-241,-241,129,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,126,127,128,97,98,-241,-241,-241,-241,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-191,-191,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-93,-93,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-94,-94,27,75,13,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,474,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,5,1,8,4,1,1,1,1,1,4,1,476,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,477,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,88,478,1,88,479,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,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,5,1,8,4,1,1,1,1,1,4,1,480,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-166,103,104,54,53,73,74,94,-166,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,481,-47,-47,-47,-47,-68,-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,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,482,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,483,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,484,-219,-219,-219,5,6,61,1,5,51,-196,-196,-196,-196,-196,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,1,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,486,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-102,-102,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-103,-103,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,487,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,488,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,125,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,127,128,-69,-69,-69,-69,-69,-69,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,489,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,490,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,125,-73,-73,129,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,126,127,128,97,98,-73,-73,-73,-73,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,491,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,492,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,125,-76,-76,129,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,126,127,128,97,98,-76,-76,-76,-76,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,493,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,125,-79,-79,129,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,126,127,128,97,98,-79,-79,-79,-79,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,494,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,495,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,125,-82,-82,129,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,126,127,128,97,98,-82,-82,-82,-82,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,496,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,3,127,1,1,497,91,92,17,6,50,1,10,1,14,1,1,7,7,7,1,1,1,16,6,1,-220,156,105,-220,-220,158,159,157,100,-220,161,-220,160,155,-220,498,154,2,6,61,499,500,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,501,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,51,2,-182,-182,-182,-182,-182,-182,58,1,5,54,1,5,1,1,5,2,10,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,27,1,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,-215,-215,-215,-215,-215,2,6,62,108,502,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,503,1,68,504,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,125,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,127,128,-412,-412,-412,-412,-412,-412,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,505,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,506,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,125,-86,-86,129,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,126,127,128,97,98,-86,-86,-86,-86,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,507,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,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,508,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,2,67,11,164,509,6,56,1,10,11,5,8,510,105,164,512,511,100,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,513,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,514,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,515,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,516,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,517,1,167,518,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,519,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,56,1,25,1,1,7,14,2,24,39,156,105,158,159,157,100,161,160,199,520,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,521,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,157,1,1,522,382,383,4,68,79,11,1,523,524,525,383,3,68,79,12,-254,-254,-254,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,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,5,1,8,4,1,1,1,1,1,4,1,527,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,526,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,164,-309,-309,125,528,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,127,128,-309,-309,-309,-309,-309,-309,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-312,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,529,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,2,6,62,531,530,2,6,62,-318,-318,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-322,-322,7,6,62,82,1,9,1,1,-323,-323,130,131,132,97,98,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,532,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,57,533,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,534,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,535,1,68,536,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,127,128,-229,-229,-229,-229,-229,-229,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,537,-175,-175,153,154,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,1,68,538,3,55,5,1,539,106,107,3,91,91,5,541,540,224,3,55,5,1,542,106,107,1,144,543,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,544,-219,-219,-219,5,6,61,1,5,25,-334,-334,-334,-334,-334,6,56,1,10,116,1,2,409,105,408,546,407,410,6,6,61,1,5,25,87,-339,-339,-339,-339,-339,547,6,6,61,1,5,25,87,-341,-341,-341,-341,-341,548,2,56,1,549,105,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,550,-345,-345,-345,-345,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,551,-219,-219,-219,5,6,61,1,5,25,-363,-363,-363,-363,-363,6,56,1,10,119,3,2,554,105,415,417,553,414,12,6,61,1,5,1,11,1,1,6,5,24,63,-368,-368,-368,-368,-122,-122,-122,-122,-122,-368,-122,555,6,6,61,1,5,25,87,-371,-371,-371,-371,-371,556,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,558,557,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,559,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,125,129,-358,-358,-358,-358,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,560,100,3,55,5,1,561,106,107,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,6,62,108,562,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,563,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,431,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,5,6,61,1,5,33,-153,-153,-153,-153,-153,2,67,39,565,564,117,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,1,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,248,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,567,566,249,245,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,6,61,1,38,568,-154,-154,-154,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,569,-219,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,1,3,1,8,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,125,129,-188,-188,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-210,-210,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,570,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,571,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-232,572,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,573,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,574,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-268,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,575,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,31,578,579,577,23,6,40,8,1,1,1,1,1,1,1,6,1,16,8,6,4,1,1,1,1,1,1,16,-220,272,101,102,274,105,275,258,106,107,-220,-220,276,581,-220,580,277,269,270,-220,271,278,-220,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,582,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,583,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,584,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,585,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,6,61,1,5,12,1,1,11,13,11,-129,-129,-129,-129,-131,-131,-131,-129,586,143,10,6,61,1,5,12,1,1,11,13,11,-130,-130,-130,-130,588,589,590,-130,587,143,9,6,61,1,5,12,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,61,1,5,12,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,61,1,5,12,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,61,1,5,12,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,85,2,24,11,254,255,591,143,2,111,11,592,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,4,60,1,2,2,-60,-60,-60,-60,2,6,60,108,593,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,594,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-63,-63,-63,-63,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,595,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,597,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,596,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,598,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,599,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,600,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,601,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,602,1,167,603,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,604,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-95,-95,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,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,5,1,8,4,1,1,1,1,1,4,1,605,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-164,103,104,54,53,73,74,94,-164,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,27,68,7,19,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,606,125,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,607,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-97,-97,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-99,-99,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,125,-165,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,608,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,609,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,610,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,57,612,613,611,113,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,1,3,1,6,1,1,1,10,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,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,614,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,615,-219,-219,-219,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,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,-104,-104,-104,-104,-104,-104,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,616,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,125,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,127,128,-70,-70,-70,-70,-70,-70,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,617,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,125,-74,-74,129,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,126,127,128,97,98,-74,-74,-74,-74,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,618,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,125,-77,-77,129,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,126,127,128,97,98,-77,-77,-77,-77,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,125,-80,-80,129,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,126,127,128,97,98,-80,-80,-80,-80,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,125,-83,-83,129,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,126,127,128,97,98,-83,-83,-83,-83,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,107,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,1,3,1,6,2,1,8,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,5,1,8,4,1,1,1,1,1,4,1,621,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,620,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,6,6,61,1,5,51,2,-177,-177,-177,-177,-177,-177,11,56,1,25,1,1,7,14,2,1,22,1,156,105,158,159,157,100,161,160,155,622,154,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,623,-175,-175,153,154,29,6,61,1,5,2,19,30,2,24,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,125,129,-181,-181,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,2,10,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,27,1,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,-216,-216,-216,-216,-216,3,127,1,1,624,91,92,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,625,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,125,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,127,128,-414,-414,-414,-414,-414,-414,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,626,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,627,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,2,67,11,164,628,2,67,11,164,629,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,27,67,8,3,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,630,129,631,126,127,128,97,98,632,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,633,129,634,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,635,129,636,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,637,129,638,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,639,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,640,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,641,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,-306,-306,-306,-306,28,73,2,19,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,125,129,-304,126,127,128,97,98,-304,-304,-304,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,68,79,11,1,642,643,525,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,2,67,11,164,644,3,68,79,12,-255,-255,-255,3,67,6,5,164,646,645,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,164,-313,-313,125,647,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,127,128,-313,-313,-313,-313,-313,-313,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,109,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,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,1,1,8,4,1,1,1,1,1,4,1,-320,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-320,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,648,392,393,64,71,72,45,46,69,47,48,49,51,52,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-325,-325,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,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,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,649,388,392,393,64,71,72,45,46,69,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-228,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,354,-219,-219,650,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,144,651,6,56,1,10,116,1,2,409,105,408,652,407,410,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,55,5,1,653,106,107,3,6,61,31,655,656,654,10,6,50,1,10,1,30,8,18,60,2,-220,409,105,-220,-220,-220,-220,-220,657,410,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,658,-219,-219,-219,2,56,1,659,105,2,56,1,660,105,1,144,-344,3,55,5,1,661,106,107,3,6,61,31,663,664,662,10,6,50,1,10,1,30,8,18,62,5,-220,554,105,-220,-220,-220,-220,-220,417,665,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,666,-219,-219,-219,6,6,61,1,5,25,87,-368,-368,-368,-368,-368,555,3,56,1,129,667,105,668,2,56,1,669,105,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,125,129,-351,-351,-351,-351,127,128,-351,-351,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,670,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,671,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,672,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,140,673,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,674,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,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,1,3,1,6,2,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,675,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,33,-148,-148,-148,-148,-148,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,1,3,1,6,1,1,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-155,-155,103,104,248,54,53,73,74,94,100,60,84,-155,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,8,1,3,7,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,676,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,67,1,565,677,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-211,-211,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,678,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,679,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,125,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,127,128,-259,-259,-259,-259,-259,-259,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,125,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,127,128,-261,-261,-261,-261,-261,-261,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,680,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,681,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,17,46,8,1,1,1,1,1,1,1,23,8,10,1,1,1,2,1,272,101,102,274,105,275,258,106,107,276,581,682,277,269,270,271,278,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,581,-111,683,273,277,269,270,271,278,5,6,61,1,5,25,-113,-113,-113,-113,-113,6,6,61,1,5,20,5,-116,-116,-116,-116,684,-116,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,125,129,-120,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,685,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,20,5,-126,-126,-126,-126,-126,-126,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,686,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,6,61,1,5,12,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,61,1,5,12,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,58,1,687,258,2,58,1,688,258,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,689,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,690,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,61,1,5,12,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,4,60,1,2,2,-61,-61,-61,-61,2,6,62,108,691,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,125,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,127,128,-411,-411,-411,-411,-411,-411,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,692,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,125,-240,-240,129,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,127,128,97,98,-240,-240,-240,-240,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,125,-286,-286,-286,-286,-286,693,-286,-286,-286,-286,-286,-286,-286,-286,127,128,-286,-286,-286,694,-286,-286,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,125,-291,-291,-291,-291,-291,695,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,125,-295,-295,-295,-295,-295,696,-295,-295,-295,-295,-295,-295,-295,-295,127,128,-295,-295,-295,-295,-295,-295,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,125,-299,-299,-299,-299,-299,697,-299,-299,-299,-299,-299,-299,-299,-299,127,128,-299,-299,-299,-299,-299,-299,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,698,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,699,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,125,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,127,128,-302,-302,-302,-302,-302,-302,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,125,-163,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,88,700,1,88,701,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,-67,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-100,-100,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,702,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,252,85,86,703,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,6,2,1,10,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,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,704,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,51,-197,-197,-197,-197,-197,3,6,61,1,612,613,705,1,88,706,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,9,1,5,60,1,1,5,33,18,16,-171,-171,-171,-171,-171,-171,-171,-171,-171,6,6,61,1,5,51,2,-178,-178,-178,-178,-178,-178,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,707,-219,-219,-219,2,67,11,164,620,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-231,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,708,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,709,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-274,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,710,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-278,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,711,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-282,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,712,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,713,129,714,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,715,129,716,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-250,2,67,11,164,717,1,68,718,4,6,62,79,12,719,-256,-256,-256,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,720,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,2,6,62,-319,-319,2,6,62,531,721,2,67,11,164,722,3,55,5,1,723,106,107,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,724,-219,-219,-219,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,144,725,4,56,1,127,2,409,105,726,410,6,56,1,10,116,1,2,409,105,408,727,407,410,5,6,61,1,5,25,-335,-335,-335,-335,-335,3,6,61,1,655,656,728,5,6,61,1,5,25,-340,-340,-340,-340,-340,5,6,61,1,5,25,-342,-342,-342,-342,-342,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,729,-346,-346,-346,-346,4,56,1,129,5,554,105,417,730,6,56,1,10,119,3,2,554,105,415,417,731,414,5,6,61,1,5,25,-364,-364,-364,-364,-364,3,6,61,1,663,664,732,5,6,61,1,5,25,-369,-369,-369,-369,-369,5,6,61,1,5,25,-370,-370,-370,-370,-370,5,6,61,1,5,25,-372,-372,-372,-372,-372,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,125,129,-352,-352,-352,-352,127,128,-352,-352,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,734,-219,5,6,61,1,5,33,-149,-149,-149,-149,-149,5,6,61,1,5,33,-150,-150,-150,-150,-150,1,88,735,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-233,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,736,737,84,160,199,312,198,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,738,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-114,-114,-114,-114,-114,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,739,-219,-219,-219,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,740,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,741,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-127,-127,-127,-127,-127,-127,9,6,61,1,5,12,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,9,6,61,1,5,12,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,742,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,743,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,66,744,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,745,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,746,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,747,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,748,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,749,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,750,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,125,-293,-293,-293,-293,-293,751,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,125,-297,-297,-297,-297,-297,752,-297,-297,-297,-297,-297,-297,-297,-297,127,128,-297,-297,-297,-297,-297,-297,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-96,-96,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-98,-98,1,88,753,5,6,61,1,5,51,-198,-198,-198,-198,-198,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,754,-219,-219,-219,5,6,61,1,5,51,-199,-199,-199,-199,-199,64,1,5,54,1,5,1,1,5,1,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,24,1,1,1,1,1,1,1,1,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,-105,-105,-105,-105,-105,-105,3,6,61,1,499,500,755,26,67,8,3,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,756,129,126,127,128,97,98,757,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,758,129,759,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,760,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,761,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,762,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-276,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,763,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-280,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,764,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,765,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,3,68,79,12,-257,-257,-257,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,3,6,61,31,655,656,766,3,55,5,1,767,106,107,5,6,61,1,5,25,-336,-336,-336,-336,-336,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,768,-219,-219,-219,5,6,61,1,5,25,-337,-337,-337,-337,-337,3,55,5,1,769,106,107,5,6,61,1,5,25,-365,-365,-365,-365,-365,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,770,-219,-219,-219,5,6,61,1,5,25,-366,-366,-366,-366,-366,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,2,67,1,565,771,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,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,-212,-212,4,96,69,2,2,772,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,773,161,160,199,198,5,6,61,1,5,25,-119,-119,-119,-119,-119,3,6,61,1,578,579,774,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,129,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-121,-121,-121,-121,-121,9,6,61,1,5,12,1,1,11,24,-142,-142,-142,-142,-142,-142,-142,-142,-142,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,775,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,60,1,2,2,-62,-62,-62,-62,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,125,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,127,128,-287,-287,-287,776,-287,-287,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,125,-288,-288,-288,-288,-288,777,-288,-288,-288,-288,-288,-288,-288,-288,127,128,-288,-288,-288,-288,-288,-288,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,125,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,125,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,127,128,-296,-296,-296,-296,-296,-296,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,125,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,127,128,-300,-300,-300,-300,-300,-300,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,778,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,779,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,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,24,1,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,-101,-101,3,6,61,1,612,613,780,6,6,61,1,5,51,2,-179,-179,-179,-179,-179,-179,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-270,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,781,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-271,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,782,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-275,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-279,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,783,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,784,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,1,144,785,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,3,6,61,1,655,656,786,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,6,61,1,663,664,787,5,6,61,1,5,33,-151,-151,-151,-151,-151,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,788,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,789,5,6,61,1,5,25,-115,-115,-115,-115,-115,1,88,790,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,791,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,792,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,125,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,125,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,127,128,-298,-298,-298,-298,-298,-298,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,51,-200,-200,-200,-200,-200,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,793,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,794,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-277,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-281,3,55,5,1,795,106,107,5,6,61,1,5,25,-338,-338,-338,-338,-338,5,6,61,1,5,25,-367,-367,-367,-367,-367,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,798,125,-291,-291,-291,-291,796,-291,797,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,799,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-143,-143,-143,-143,-143,-143,-143,-143,-143,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,125,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,127,128,-289,-289,-289,-289,-289,-289,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,125,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,127,128,-290,-290,-290,-290,-290,-290,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-272,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,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,-273,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,1,98,800,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,801,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,30,8,18,-220,-220,-220,-220,-220,-220,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,798,125,-293,-293,-293,-293,802,-293,803,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-106,-106,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,798,125,-292,-292,-292,-292,804,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,98,805,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,806,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,98,807,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-108,-108,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,798,125,-294,-294,-294,-294,808,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,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,27,1,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,-107,-107,1,98,809,60,1,5,54,1,5,1,1,5,1,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109],U=[],_=0,w,u,$,F;while(_<f.length){w=f[_++],u={},$=0,F=[];while(w--)$+=f[_++],F.push($);for($ of F)u[$]=f[_++];U.push(u)}return U})(),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,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,46,1,46,1,56,1,58,1,55,1,55,3,62,1,62,2,64,3,64,5,64,2,64,1,48,1,48,3,72,3,72,1,17,3,17,4,17,5,18,3,19,3,19,4,19,5,20,3,20,4,20,3,21,3,21,4,21,5,22,3,22,4,22,3,22,2,22,3,22,2,37,1,37,1,37,1,81,1,81,1,81,3,81,3,81,4,81,6,81,4,81,6,81,4,81,5,81,7,81,3,81,3,81,4,81,6,83,10,83,12,83,11,83,13,83,4,101,0,101,1,101,3,101,4,101,6,102,1,102,1,102,3,102,5,102,3,102,5,104,1,104,1,104,1,92,1,92,3,92,4,92,1,103,2,103,2,109,1,109,1,109,1,109,1,109,1,109,2,109,2,109,2,109,2,109,3,109,3,109,4,109,6,82,2,82,3,82,4,114,1,114,3,114,4,114,4,114,6,116,1,116,2,115,1,115,2,113,1,113,2,118,1,118,2,119,1,119,1,40,5,89,3,89,2,89,2,89,1,33,6,33,3,15,5,15,2,35,5,35,2,127,1,127,1,123,0,123,1,123,3,123,4,123,6,130,1,130,3,130,2,130,1,131,1,131,1,131,1,131,1,132,2,41,2,41,2,41,3,41,2,41,2,111,2,111,4,134,1,134,3,134,4,134,4,134,6,117,1,117,1,117,1,117,1,135,1,135,3,43,1,43,1,84,2,44,3,44,4,44,6,45,3,45,3,78,2,78,3,39,3,39,5,97,0,97,1,10,2,10,4,10,1,31,2,31,4,32,1,32,2,32,4,32,3,145,3,145,5,148,3,148,5,23,1,23,3,23,1,23,3,23,3,23,7,23,5,23,3,23,3,24,2,24,3,24,4,24,5,153,3,153,3,153,2,27,5,27,7,27,4,27,6,157,1,157,2,158,3,158,4,160,2,160,4,160,2,160,4,25,2,25,2,25,2,25,1,163,2,163,2,163,3,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,170,1,170,3,95,1,95,3,28,1,28,2,28,3,28,4,28,2,28,3,28,4,28,5,34,3,29,4,29,6,175,1,175,3,175,2,176,1,176,1,176,1,176,2,176,2,30,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,183,1,183,3,183,4,183,4,183,6,184,1,184,3,184,1,184,3,181,1,182,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,189,1,189,3,189,4,189,4,189,6,191,1,191,3,191,3,191,1,191,3,36,2,36,2,36,2,16,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,42,2],ruleActions:(f,U,_,w)=>{let u=U,$=U.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[$]];case 3:case 59:case 112:case 152:case 156:case 176:case 196:case 205:case 254:case 305:case 318:case 334:case 363:return[u[$]];case 4:case 113:case 177:case 197:case 206:case 319:case 335:case 364:return[...u[$-2],u[$]];case 5:case 61:case 159:case 320:return u[$-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 47:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 64:case 65:case 88:case 89:case 90:case 91:case 92:case 117:case 122:case 123:case 124:case 125:case 128:case 131:case 132:case 133:case 134:case 135:case 147:case 173:case 174:case 180:case 184:case 185:case 186:case 187:case 201:case 202:case 203:case 219:case 220:case 234:case 236:case 265:case 303:case 321:case 322:case 323:case 339:case 341:case 343:case 368:case 371:return u[$];case 48:return"undefined";case 49:return"null";case 58:return["str",...u[$-1]];case 60:case 153:case 157:case 255:return[...u[$-1],u[$]];case 62:case 195:case 199:case 337:case 366:return u[$-2];case 63:return"";case 66:return["regex",u[$-1]];case 67:return["regex-index",u[$-2],u[$]];case 68:return["regex-index",u[$],null];case 69:return["=",u[$-2],u[$]];case 70:return["=",u[$-3],u[$]];case 71:return["=",u[$-4],u[$-1]];case 72:return["=",u[$],u[$-2]];case 73:return["state",u[$-2],u[$]];case 74:return["state",u[$-3],u[$]];case 75:return["state",u[$-4],u[$-1]];case 76:case 78:return["computed",u[$-2],u[$]];case 77:return["computed",u[$-3],u[$]];case 79:return["readonly",u[$-2],u[$]];case 80:return["readonly",u[$-3],u[$]];case 81:return["readonly",u[$-4],u[$-1]];case 82:case 84:return["effect",u[$-2],u[$]];case 83:return["effect",u[$-3],u[$]];case 85:case 86:case 87:return["effect",null,u[$]];case 93:case 102:case 140:return[".",u[$-2],u[$]];case 94:case 103:case 141:return["?.",u[$-2],u[$]];case 95:case 97:case 104:case 142:return["[]",u[$-3],u[$-1]];case 96:case 98:case 105:case 143:return["[]",u[$-5],u[$-2]];case 99:return[u[$-1][0],u[$-3],...u[$-1].slice(1)];case 100:return["optindex",u[$-4],u[$-1]];case 101:return["optindex",u[$-6],u[$-2]];case 106:return["object-comprehension",u[$-8],u[$-6],[["for-of",u[$-4],u[$-2],!1]],[]];case 107:return["object-comprehension",u[$-10],u[$-8],[["for-of",u[$-6],u[$-4],!1]],[u[$-2]]];case 108:return["object-comprehension",u[$-9],u[$-7],[["for-of",u[$-4],u[$-2],!0]],[]];case 109:return["object-comprehension",u[$-11],u[$-9],[["for-of",u[$-6],u[$-4],!0]],[u[$-2]]];case 110:return["object",...u[$-2]];case 111:case 154:case 175:case 194:return[];case 114:case 178:case 198:case 336:case 365:return[...u[$-3],u[$]];case 115:case 179:case 200:case 338:case 367:return[...u[$-5],...u[$-2]];case 116:return[u[$],u[$],null];case 118:return[u[$-2],u[$],":"];case 119:return[u[$-4],u[$-1],":"];case 120:return[u[$-2],u[$],"="];case 121:return[u[$-4],u[$-1],"="];case 126:return["dynamicKey",u[$-1]];case 127:return["[]","this",u[$-1]];case 129:case 130:case 188:return["...",u[$]];case 136:case 192:return["super",...u[$]];case 137:case 138:case 139:case 190:case 193:return[u[$-1],...u[$]];case 144:return["array"];case 145:return["array",...u[$-1]];case 146:return["array",...u[$-2],...u[$-1]];case 148:return[...u[$-2],...u[$]];case 149:return[...u[$-3],...u[$]];case 150:return[...u[$-2],...u[$-1]];case 151:return[...u[$-5],...u[$-4],...u[$-2],...u[$-1]];case 155:return[...u[$]];case 158:return null;case 160:return"..";case 161:case 204:return"...";case 162:return[u[$-2],u[$-3],u[$-1]];case 163:case 392:case 394:case 395:case 410:case 412:return[u[$-1],u[$-2],u[$]];case 164:return[u[$],u[$-1],null];case 165:return[u[$-1],null,u[$]];case 166:return[u[$],null,null];case 167:return["def",u[$-4],u[$-2],u[$]];case 168:return["def",u[$-1],[],u[$]];case 169:case 171:return[u[$-1],u[$-3],u[$]];case 170:case 172:return[u[$-1],[],u[$]];case 181:case 304:return["default",u[$-2],u[$]];case 182:return["rest",u[$]];case 183:return["expansion"];case 189:return["tagged-template",u[$-1],u[$]];case 191:return["optcall",u[$-2],...u[$]];case 207:case 208:return"this";case 209:return[".","this",u[$]];case 210:return[".","super",u[$]];case 211:return["[]","super",u[$-1]];case 212:return["[]","super",u[$-2]];case 213:return[".","new",u[$]];case 214:return[".","import",u[$]];case 215:return["block"];case 216:return["block",...u[$-1]];case 217:return u[$-1].length===1?u[$-1][0]:["block",...u[$-1]];case 218:return u[$-2].length===1?u[$-2][0]:["block",...u[$-2]];case 221:return["return",u[$]];case 222:return["return",u[$-1]];case 223:return["return"];case 224:return["throw",u[$]];case 225:return["throw",u[$-1]];case 226:return["yield"];case 227:return["yield",u[$]];case 228:return["yield",u[$-1]];case 229:return["yield-from",u[$]];case 230:return["if",u[$-1],u[$]];case 231:return u[$-4].length===3?["if",u[$-4][1],u[$-4][2],["if",u[$-1],u[$]]]:[...u[$-4],["if",u[$-1],u[$]]];case 232:return["if",["!",u[$-1]],u[$]];case 233:return["if",["!",u[$-3]],u[$-2],u[$]];case 235:return u[$-2].length===3?["if",u[$-2][1],u[$-2][2],u[$]]:[...u[$-2],u[$]];case 237:case 238:return["if",u[$],[u[$-2]]];case 239:return["?:",u[$-4],u[$-6],u[$-1]];case 240:return["?:",u[$-2],u[$-4],u[$]];case 241:case 242:return["if",["!",u[$]],[u[$-2]]];case 243:return["try",u[$]];case 244:return["try",u[$-1],u[$]];case 245:return["try",u[$-2],u[$]];case 246:return["try",u[$-3],u[$-2],u[$]];case 247:case 248:case 373:case 376:case 378:return[u[$-1],u[$]];case 249:return[null,u[$]];case 250:return["switch",u[$-3],u[$-1],null];case 251:return["switch",u[$-5],u[$-3],u[$-1]];case 252:return["switch",null,u[$-1],null];case 253:return["switch",null,u[$-3],u[$-1]];case 256:return["when",u[$-1],u[$]];case 257:return["when",u[$-2],u[$-1]];case 258:return["while",u[$]];case 259:return["while",u[$-2],u[$]];case 260:return["while",["!",u[$]]];case 261:return["while",["!",u[$-2]],u[$]];case 262:return u[$-1].length===2?[u[$-1][0],u[$-1][1],u[$]]:[u[$-1][0],u[$-1][1],u[$-1][2],u[$]];case 263:case 264:return u[$].length===2?[u[$][0],u[$][1],[u[$-1]]]:[u[$][0],u[$][1],u[$][2],[u[$-1]]];case 266:return["loop",u[$]];case 267:return["loop",[u[$]]];case 268:return["loop-n",u[$-1],u[$]];case 269:return["for-in",u[$-3],u[$-1],null,null,u[$]];case 270:return["for-in",u[$-5],u[$-3],null,u[$-1],u[$]];case 271:return["for-in",u[$-5],u[$-3],u[$-1],null,u[$]];case 272:return["for-in",u[$-7],u[$-5],u[$-1],u[$-3],u[$]];case 273:return["for-in",u[$-7],u[$-5],u[$-3],u[$-1],u[$]];case 274:return["for-of",u[$-3],u[$-1],!1,null,u[$]];case 275:return["for-of",u[$-5],u[$-3],!1,u[$-1],u[$]];case 276:return["for-of",u[$-3],u[$-1],!0,null,u[$]];case 277:return["for-of",u[$-5],u[$-3],!0,u[$-1],u[$]];case 278:return["for-as",u[$-3],u[$-1],!1,null,u[$]];case 279:return["for-as",u[$-5],u[$-3],!1,u[$-1],u[$]];case 280:case 282:return["for-as",u[$-3],u[$-1],!0,null,u[$]];case 281:case 283:return["for-as",u[$-5],u[$-3],!0,u[$-1],u[$]];case 284:return["for-in",[],u[$-1],null,null,u[$]];case 285:return["for-in",[],u[$-3],u[$-1],null,u[$]];case 286:return["comprehension",u[$-4],[["for-in",u[$-2],u[$],null]],[]];case 287:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],null]],[u[$]]];case 288:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],u[$]]],[]];case 289:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$]]],[u[$-2]]];case 290:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$-2]]],[u[$]]];case 291:return["comprehension",u[$-4],[["for-of",u[$-2],u[$],!1]],[]];case 292:return["comprehension",u[$-6],[["for-of",u[$-4],u[$-2],!1]],[u[$]]];case 293:return["comprehension",u[$-5],[["for-of",u[$-2],u[$],!0]],[]];case 294:return["comprehension",u[$-7],[["for-of",u[$-4],u[$-2],!0]],[u[$]]];case 295:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!1,null]],[]];case 296:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!1,null]],[u[$]]];case 297:return["comprehension",u[$-5],[["for-as",u[$-2],u[$],!0,null]],[]];case 298:return["comprehension",u[$-7],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 299:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!0,null]],[]];case 300:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 301:return["comprehension",u[$-2],[["for-in",[],u[$],null]],[]];case 302:return["comprehension",u[$-4],[["for-in",[],u[$-2],u[$]]],[]];case 306:case 340:case 342:case 369:case 370:case 372:return[u[$-2],u[$]];case 307:return["class",null,null];case 308:return["class",null,null,u[$]];case 309:return["class",null,u[$]];case 310:return["class",null,u[$-1],u[$]];case 311:return["class",u[$],null];case 312:return["class",u[$-1],null,u[$]];case 313:return["class",u[$-2],u[$]];case 314:return["class",u[$-3],u[$-1],u[$]];case 315:return["enum",u[$-1],u[$]];case 316:return["component",null,["block",...u[$-1]]];case 317:return["component",u[$-3],["block",...u[$-1]]];case 324:return["offer",u[$]];case 325:return["accept",u[$]];case 326:return["render",u[$]];case 327:case 330:return["import","{}",u[$]];case 328:case 329:return["import",u[$-2],u[$]];case 331:return["import",u[$-4],u[$]];case 332:return["import",[u[$-4],u[$-2]],u[$]];case 333:return["import",[u[$-7],u[$-4]],u[$]];case 344:return["*",u[$]];case 345:return["export","{}"];case 346:return["export",u[$-2]];case 347:case 348:case 349:case 350:case 354:case 355:case 356:case 357:return["export",u[$]];case 351:return["export",["=",u[$-2],u[$]]];case 352:return["export",["=",u[$-3],u[$]]];case 353:return["export",["=",u[$-4],u[$-1]]];case 358:return["export-default",u[$]];case 359:return["export-default",u[$-1]];case 360:return["export-all",u[$]];case 361:return["export-from","{}",u[$]];case 362:return["export-from",u[$-4],u[$]];case 374:case 375:case 377:case 415:return["do-iife",u[$]];case 379:return["-",u[$]];case 380:return["+",u[$]];case 381:return["?",u[$-1]];case 382:return["defined",u[$-1]];case 383:return["presence",u[$-1]];case 384:return["await",u[$]];case 385:return["await",u[$-1]];case 386:return["--",u[$],!1];case 387:return["++",u[$],!1];case 388:return["--",u[$-1],!0];case 389:return["++",u[$-1],!0];case 390:return["+",u[$-2],u[$]];case 391:return["-",u[$-2],u[$]];case 393:return["**",u[$-2],u[$]];case 396:return["&",u[$-2],u[$]];case 397:return["^",u[$-2],u[$]];case 398:return["|",u[$-2],u[$]];case 399:case 400:case 401:case 402:case 403:case 404:return["control",u[$-1],u[$-2],u[$]];case 405:return["&&",u[$-2],u[$]];case 406:return["||",u[$-2],u[$]];case 407:return["??",u[$-2],u[$]];case 408:return["!?",u[$-2],u[$]];case 409:return["|>",u[$-2],u[$]];case 411:return["?:",u[$-4],u[$-2],u[$]];case 413:return[u[$-3],u[$-4],u[$-1]];case 414:return[u[$-2],u[$-3],u[$]]}},parseError(f,U){let _,w,u,$,F,W,Y;if(U.recoverable)return this.trace(f);else throw u=(U.line||0)+1,_=U.loc?.c||0,Y=U.token?` (token: ${U.token})`:"",W=U.text?` near '${U.text}'`:"",$=`line ${u}, column ${_}`,F=`Parse error at ${$}${Y}${W}: ${f}`,w=Error(F),w.hash=U,w},parse(f){let U,_,w,u,$,F,W,Y,Z,R,A,Q,X,H,M,O,z,q,G,K,E,P,J,D,I,S;[K,S,R]=[[0],[null],[]],[X,I,J,P,O]=[this.parseTable,"",0,0,0],[_,U]=[2,1],Y=Object.create(this.lexer),q={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let B=this.ctx[N];q.ctx[N]=B}if(Y.setInput(f,q.ctx),[q.ctx.lexer,q.ctx.parser]=[Y,this],Y.loc==null)Y.loc={};D=Y.loc,R.push(D),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,W=()=>{let N;if(N=Y.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=H=G=w=M=Q=F=A=$=null,z={};while(!0){if(G=K[K.length-1],E==null)E=W();if(w=X[G]?.[E],w==null){if(u="",!O)$=(()=>{let N=[];for(let B in X[G]){if(!Object.hasOwn(X[G],B))continue;if(this.tokenNames[B]&&B>_)N.push(`'${this.tokenNames[B]}'`)}return N})();throw u=(()=>{if(Y.showPosition)return`Parse error on line ${J+1}:
|
|
13
13
|
${Y.showPosition()}
|
|
14
|
-
Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${J+1}: Unexpected ${E===U?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:Y.match,token:this.tokenNames[E]||E,line:Y.line,loc:D,expected:$})})(),Error(u)}if(w>0)if(K.push(E,w),S.push(Y.text),R.push(Y.loc),E=null,!H){if([P,I,J,D]=[Y.len,Y.text,Y.line,Y.loc],G>0)G--}else[E,H]=[H,null];else if(w<0){if(F=this.ruleTable[-w*2+1],z.$=S[S.length-F],Z=R[R.length-(F||1)],z._$={r:Z.r,c:Z.c},M=this.ruleActions.call(z,-w,S,R,q.ctx),M!=null)z.$=M;if(Array.isArray(z.$))z.$.loc=z._$;if(F)K.length-=F*2,S.length-=F,R.length-=F;K.push(this.ruleTable[-w*2]),S.push(z.$),R.push(z._$),A=X[K[K.length-2]][K[K.length-1]],K.push(A)}else if(w===0)return S[S.length-1]}},trace(){},ctx:{}},U7=(f={})=>{let U=Object.create($7);return Object.defineProperty(U,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),U},Q1=U7();var G7=Q1.parse.bind(Q1);var w7=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"]),q1=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"]),j1=new Set([...w7,...q1]);var r1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),_7=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function W7(f){for(let U of f){if(!Array.isArray(U))continue;let _=U[0]instanceof String?U[0].valueOf():U[0],w=U[1]instanceof String?U[1].valueOf():U[1];if(_==="type"&&typeof w==="string")return w.replace(/^["']|["']$/g,"")}return null}function X1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function o1(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function B2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function N2(f,U){let _=(W,Y)=>W instanceof String?W[Y]:void 0,w=U.prototype.classifyKeyword;U.prototype.classifyKeyword=function(W,Y,Z){if(W==="offer"||W==="accept"){let R=0;for(let A=this.tokens.length-1;A>=0;A--){let Q=this.tokens[A][0];if(Q==="OUTDENT")R++;else if(Q==="INDENT")R--;if(R<0&&this.tokens[A-1]?.[0]==="COMPONENT")return W.toUpperCase()}return Y}return w.call(this,W,Y,Z)},U.prototype.rewriteRender=function(){let W=(z,q,O)=>{let K=[z,q];if(K.pre=0,K.data=null,K.loc=O?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,O)K.origin=O;return K},Y=!1,Z=0,R=0,A=[],Q=(z)=>{let q=z.split("#")[0];return j1.has(q)},X=(z)=>{if(!z||typeof z!=="string")return!1;return/^[A-Z]/.test(z)},H=(z)=>{return Q(z)||X(z)},M=(z,q,O,K)=>{let E=1,P=q;while(P>=0&&E>0){let J=z[P][0];if(J===O)E++;else if(J===K)E--;if(E>0)P--}return P},G=(z,q)=>{let O=q;while(O>0){let K=z[O-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let E=z[O][0];if(E==="CALL_END"||E===")"){O=M(z,O-1,E,E==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){O=M(z,O-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){O=M(z,O-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){O=M(z,O-2,"STRING_END","STRING_START");continue}O--}return z[O]&&z[O][0]==="IDENTIFIER"&&H(z[O][1])};this.scanTokens(function(z,q,O){let K=z[0],E=q<O.length-1?O[q+1]:null;if(K==="RENDER")return Y=!0,Z=R+1,1;if(K==="INDENT")return R++,1;if(K==="OUTDENT"){R--;let P=0;while(A.length>0&&A[A.length-1]>R){let J=W("CALL_END",")",z);O.splice(q+1+P,0,J),A.pop(),P++}if(Y&&R<Z)Y=!1;return 1+P}if(!Y)return 1;if(K==="="&&q>0){let P=O[q-1][0];if(P==="TERMINATOR"||P==="INDENT"||P==="RENDER"){if(O.splice(q,1),O[q]&&O[q][0]==="IDENTIFIER"){let J=O[q][1];if(typeof J==="string")J=new String(J),O[q][1]=J;J.text=!0}return 0}}if(K==="UNARY_MATH"&&z[1]==="~"&&E&&E[0]==="IDENTIFIER"){z[0]="PROPERTY",z[1]="__transition__";let P=W(":",":",z),J=W("STRING",`"${E[1]}"`,E);return O.splice(q+1,1,P,J),1}if(K==="PROPERTY"&&z[1][0]==="$"&&z[1].length>1)return z[0]="STRING",z[1]=`"data-${z[1].slice(1)}"`,1;if(K==="IDENTIFIER"&&!z.spaced){let P=[z[1]],J=q+1;while(J+1<O.length){let D=O[J],I=O[J+1];if(D[0]==="-"&&!D.spaced&&(I[0]==="IDENTIFIER"||I[0]==="PROPERTY")){if(P.push(I[1]),J+=2,I[0]==="PROPERTY")break}else break}if(P.length>1&&J>q+1&&O[J-1][0]==="PROPERTY"){let D=P.join("-");if(D[0]==="$")D="data-"+D.slice(1);return z[0]="STRING",z[1]=`"${D}"`,O.splice(q+1,J-q-1),1}}if(K==="."){let P=q>0?O[q-1]:null,J=P?P[0]:null;if(J==="INDENT"||J==="TERMINATOR"){if(E&&E[0]==="PROPERTY"){let D=q+2<O.length?O[q+2]:null;if(!D||D[0]!==":"){let I=W("IDENTIFIER","div",z);return O.splice(q,0,I),2}}if(!E||E[0]!=="(")return z[0]="IDENTIFIER",z[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let P=O[q+1],J=O[q+2];if(P&&P[0]==="#"&&J&&(J[0]==="PROPERTY"||J[0]==="IDENTIFIER")){if(z[1]=z[1]+"#"+J[1],J.spaced)z.spaced=!0;return O.splice(q+1,2),0}}if(K==="BIND"){let P=q>0?O[q-1]:null,J=O[q+1];if(P&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")&&J&&J[0]==="IDENTIFIER")return P[1]=`__bind_${P[1]}__`,z[0]=":",z[1]=":",1}if(K==="@"){let P=q+1;if(P<O.length&&O[P][0]==="PROPERTY"){P++;while(P+1<O.length&&O[P][0]==="."&&O[P+1][0]==="PROPERTY")P+=2;if(P>q+2&&P<O.length&&O[P][0]===":"){let J=W("[","[",z);O.splice(q,0,J);let D=W("]","]",O[P+1]);return O.splice(P+1,0,D),2}}}if(K==="."&&E&&E[0]==="("){let P=q>0?O[q-1]:null,J=P?P[0]:null,D=J==="INDENT"||J==="TERMINATOR",I=W("PROPERTY","__clsx",z);E[0]="CALL_START";let S=1;for(let N=q+2;N<O.length&&S>0;N++)if(O[N][0]==="("||O[N][0]==="CALL_START")S++;else if(O[N][0]===")"){if(S--,S===0)O[N][0]="CALL_END"}else if(O[N][0]==="CALL_END")S--;if(D){let N=W("IDENTIFIER","div",z);return O.splice(q,0,N),O.splice(q+2,0,I),3}else if(J===":")return O[q]=W("IDENTIFIER","__clsx",z),1;else return O.splice(q+1,0,I),2}if(E&&E[0]==="INDENT"){if(E.fromThen)return 1;if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let P=!1,J=q>0?O[q-1][0]:null,D=J==="IF"||J==="UNLESS"||J==="WHILE"||J==="UNTIL"||J==="WHEN",I=!1;if(K==="CALL_END"){let S=1;for(let N=q-1;N>=0&&S>0;N--)if(O[N][0]==="CALL_END")S++;else if(O[N][0]==="CALL_START"){if(S--,S===0&&N>0&&O[N-1][0]==="PROPERTY"&&O[N-1][1]==="__clsx")I=!0}}if(I)P=!0;else if(K==="IDENTIFIER"&&H(z[1])&&!D)P=!0;else if(K==="IDENTIFIER"&&!D)P=G(O,q);else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="NUMBER"||K==="BOOL"||K==="CALL_END"||K===")"||K==="PRESENCE")P=G(O,q);if(P){let S=!1;if(K==="PROPERTY"&&q>0&&O[q-1][0]==="."){let B=q;while(B>=2&&O[B-1][0]==="."&&O[B-2][0]==="PROPERTY")B-=2;if(B>=2&&O[B-1][0]==="."&&O[B-2][0]==="IDENTIFIER"&&H(O[B-2][1])){let V=B>=3?O[B-3][0]:null;if(!V||V==="INDENT"||V==="OUTDENT"||V==="TERMINATOR"||V==="RENDER")S=!0}}if(I||K==="IDENTIFIER"&&H(z[1])||S){let B=W("CALL_START","(",z),V=W("->","->",z);return V.newLine=!0,O.splice(q+1,0,B,V),A.push(R+1),3}else{let B=W(",",",",z),V=W("->","->",z);return V.newLine=!0,O.splice(q+1,0,B,V),3}}}if(K==="IDENTIFIER"&&X(z[1])&&E&&(E[0]==="OUTDENT"||E[0]==="TERMINATOR"))return O.splice(q+1,0,W("CALL_START","(",z),W("CALL_END",")",z)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(W){let Y=W.split("#")[0];return j1.has(Y.toLowerCase())},u.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},u.collectTemplateClasses=function(W){let Y=[],Z=W;while(this.is(Z,".")){let X=Z[2];if(typeof X==="string"||X instanceof String)Y.unshift(X.valueOf());Z=Z[1]}let R=typeof Z==="string"?Z:Z instanceof String?Z.valueOf():null;if(R===null)return{tag:null,classes:Y,id:void 0,base:Z};let[A,Q]=R.split("#");if(!A)A="div";return{tag:A,classes:Y,id:Q,base:Z}};let $=(W)=>typeof W==="string"?W:W instanceof String?W.valueOf():null,F=(W,Y)=>{if(!(W instanceof String))return Y;let Z=new String(Y);if(W.predicate)Z.predicate=!0;if(W.await)Z.await=!0;return Z.predicate||Z.await?Z:Y};u.transformComponentMembers=function(W){let Y=this._self;if(!Array.isArray(W)){let Z=$(W);if(Z&&this.reactiveMembers&&this.reactiveMembers.has(Z))return[".",[".",Y,Z],F(W,"value")];if(Z&&this.componentMembers&&this.componentMembers.has(Z))return[".",Y,F(W,Z)];return W}if(W[0]==="."&&W[1]==="this"&&$(W[2])!=null){let Z=W[2],R=$(Z);if(this.reactiveMembers&&this.reactiveMembers.has(R))return[".",[".",Y,R],F(Z,"value")];return this._factoryMode?[".",Y,Z]:W}if(W[0]==="."||W[0]==="?.")return[W[0],this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map((Z)=>this.transformComponentMembers(Z))];if(W[0]==="object")return["object",...W.slice(1).map((Z)=>{if(Array.isArray(Z)&&Z.length>=2){let R=Z[0],A=Array.isArray(R)?this.transformComponentMembers(R):R,Q=this.transformComponentMembers(Z[1]);return[A,Q,Z[2]]}return this.transformComponentMembers(Z)})];return W.map((Z)=>this.transformComponentMembers(Z))},u.generateComponent=function(W,Y,Z,R){let[,A]=Y,Q=this.is(A,"block")?A.slice(1):[],X=[],H=[],M=[],G=[],z=[],q=[],O=[],K=[],E=null,P=new Set,J=new Set;for(let T of Q){if(!Array.isArray(T))continue;let[h]=T;if(h==="offer"){if(T=T[1],!Array.isArray(T))continue;h=T[0];let C=X1(T[1]);if(C)O.push(C)}if(h==="accept"){let C=typeof T[1]==="string"?T[1]:X1(T[1]);if(C)K.push(C),P.add(C),J.add(C)}else if(h==="."&&T[1]==="this"&&X1(T)){let C=typeof T[2]==="string"||T[2]instanceof String?T[2].valueOf():null;if(C)X.push({name:C,value:void 0,isPublic:!0,type:T[2]?.type||null,required:!0}),P.add(C),J.add(C)}else if(h==="state"){let C=X1(T[1]);if(C)X.push({name:C,value:T[2],isPublic:o1(T[1]),type:B2(T[1])}),P.add(C),J.add(C)}else if(h==="computed"){let C=X1(T[1]);if(C)H.push({name:C,expr:T[2]}),P.add(C),J.add(C)}else if(h==="readonly"){let C=X1(T[1]);if(C)M.push({name:C,value:T[2],isPublic:o1(T[1]),type:B2(T[1])}),P.add(C)}else if(h==="="){let C=X1(T[1]);if(C)if(r1.has(C))z.push({name:C,value:T[2]});else{let g=T[2];if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>"))G.push({name:C,func:g}),P.add(C);else X.push({name:C,value:g,isPublic:o1(T[1])}),P.add(C),J.add(C)}}else if(h==="effect")q.push(T);else if(h==="render")E=T;else if(h==="object")for(let C=1;C<T.length;C++){let g=T[C];if(!Array.isArray(g))continue;let[i,j]=g;if(typeof i==="string"&&r1.has(i))z.push({name:i,value:j});else if(typeof i==="string")G.push({name:i,func:j}),P.add(i)}}let D=new Map;for(let{name:T}of G)if(/^on[A-Z]/.test(T)&&!r1.has(T))D.set(T[2].toLowerCase()+T.slice(3),T);let I=Y[0]?.valueOf?.()??null,S=new Set;for(let{name:T,isPublic:h}of X)if(h)S.add(T);for(let{name:T,isPublic:h}of M)if(h)S.add(T);let N=this.componentMembers,B=this.reactiveMembers,V=this._autoEventHandlers,y=this._inheritsTag;if(this.componentMembers=P,this.reactiveMembers=J,this._autoEventHandlers=D.size>0?D:null,this._inheritsTag=I||null,this.options.stubComponents){let T=(j)=>j?j.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,h=[];h.push("class {");let C=[];for(let{name:j,type:b,isPublic:v,required:x}of X){if(!v)continue;let n=T(b),d=x?"":"?";C.push(`${j}${d}: ${n||"any"}`),C.push(`__bind_${j}__?: Signal<${n||"any"}>`)}for(let{name:j,type:b,isPublic:v}of M){if(!v)continue;let x=T(b);C.push(`${j}?: ${x||"any"}`)}{let b=C.length>0&&X.some((x)=>x.isPublic&&x.required)?"":"?",v=C.length>0?`{${C.join("; ")}}`:"{}";if(I)v+=` & __RipProps<'${I}'>`;h.push(` constructor(props${b}: ${v}) {}`)}let g=(j)=>{let b=j?.valueOf?.()??j;if(typeof b!=="string")return null;if(b==="true"||b==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(b))return"number";if(b.startsWith('"')||b.startsWith("'"))return"string";return null};for(let{name:j,type:b,value:v}of X){let x=T(b)||g(v);h.push(x?` declare ${j}: Signal<${x}>;`:` declare ${j}: Signal<any>;`)}for(let{name:j,type:b,value:v}of M){let x=T(b)||g(v);h.push(x?` declare ${j}: ${x};`:` declare ${j}: any;`)}for(let{name:j,expr:b}of H)if(this.is(b,"block")){let v=this.transformComponentMembers(b),x=this.generateFunctionBody(v);h.push(` ${j} = __computed(() => ${x});`)}else{let v=this.generateInComponent(b,"value");h.push(` ${j} = __computed(() => ${v});`)}h.push(" _init(props) {");for(let{name:j,value:b,isPublic:v}of M){let x=this.generateInComponent(b,"value");h.push(v?` this.${j} = props.${j} ?? ${x};`:` this.${j} = ${x};`)}for(let{name:j,value:b,isPublic:v,required:x,type:n}of X)if(v&&x)h.push(` this.${j} = __state(props.__bind_${j}__ ?? props.${j});`);else if(v){let d=this.generateInComponent(b,"value");h.push(` this.${j} = __state(props.__bind_${j}__ ?? props.${j} ?? ${d});`)}else{let d=this.generateInComponent(b,"value");h.push(` this.${j} = __state(${d});`)}for(let j of q){let b=j[2],v=this.containsAwait(b)?"async ":"";if(this.is(b,"block")){let x=this.transformComponentMembers(b),n=this.generateFunctionBody(x,[],!0);h.push(` __effect(${v}() => ${n});`)}else{let x=this.generateInComponent(b,"value");h.push(` __effect(${v}() => { ${x}; });`)}}h.push(" }");let i=new Map;if(E){let j=(b)=>{if(!Array.isArray(b))return;let v=b[0]?.valueOf?.()??b[0];if(typeof v==="string"&&v!=="object"&&v!=="switch"&&j1.has(v.split(/[.#]/)[0]))for(let x=1;x<b.length;x++){let n=b[x],d=this.is(n,"object")?n:null;if(!d&&Array.isArray(n)&&(n[0]==="->"||n[0]==="=>")&&this.is(n[2],"block")){for(let p=1;p<n[2].length;p++)if(this.is(n[2][p],"object")){d=n[2][p];break}}if(!d)continue;for(let p=1;p<d.length;p++){let c=d[p];if(!Array.isArray(c)||c.length<2)continue;let[l,m]=c;if(Array.isArray(l)&&l[0]==="."&&l[1]==="this"&&Array.isArray(m)&&m[0]==="."&&m[1]==="this"){let s=typeof l[2]==="string"?l[2]:l[2]?.valueOf?.(),r=typeof m[2]==="string"?m[2]:m[2]?.valueOf?.();if(s&&r&&!i.has(r))i.set(r,s)}}}for(let x=1;x<b.length;x++)j(b[x])};j(E)}for(let{name:j,func:b}of G)if(Array.isArray(b)&&(b[0]==="->"||b[0]==="=>")){let[,v,x]=b,n=Array.isArray(v)?v.map((m)=>this.formatParam(m)).join(", "):"",d=i.get(j);if(d&&Array.isArray(v)&&v.length>0){let m=v[0];if(!(m?.type||m instanceof String&&m.type)&&typeof(m?.valueOf?.()??m)==="string"){let r=m?.valueOf?.()??m;n=n.replace(r,`${r}: HTMLElementEventMap['${d}']`)}}let p=this.reactiveMembers?this.transformComponentMembers(x):x,c=this.containsAwait(x),l=this.generateFunctionBody(p,v||[]);h.push(` ${c?"async ":""}${j}(${n}) ${l}`)}for(let{name:j,value:b}of z)if(Array.isArray(b)&&(b[0]==="->"||b[0]==="=>")){let[,v,x]=b,n=Array.isArray(v)?v.map((l)=>this.formatParam(l)).join(", "):"",d=this.reactiveMembers?this.transformComponentMembers(x):x,p=this.containsAwait(x),c=this.generateFunctionBody(d,v||[]);h.push(` ${p?"async ":""}${j}(${n}) ${c}`)}if(E){let j=[],b=0,v=(d)=>{let p=[];for(let c of d){let l=null;if(this.is(c,"object"))l=c;else if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")&&this.is(c[2],"block")){for(let m=1;m<c[2].length;m++)if(this.is(c[2][m],"object")){l=c[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m],[r,o]=s;if(typeof r==="string"&&!r.startsWith("@")){let w1=s.loc?.r??l.loc?.r;if(r.startsWith("__bind_")&&r.endsWith("__")){let U1=typeof o==="string"&&this.reactiveMembers?.has(o)?`this.${o}`:this.generateInComponent(o,"value");p.push({code:`${r}: ${U1}`,srcLine:w1})}else{let U1=this.generateInComponent(o,"value");p.push({code:`${r}: ${U1}`,srcLine:w1})}}}}return p},x=(d)=>{let p=[];for(let c of d){let l=null;if(this.is(c,"object"))l=c;else if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")&&this.is(c[2],"block")){for(let m=1;m<c[2].length;m++)if(this.is(c[2][m],"object")){l=c[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m];if(!Array.isArray(s)||s.length<2)continue;let[r,o]=s,w1=s.loc?.r??l.loc?.r;if(Array.isArray(r)&&r[0]==="."&&r[1]==="this"){let U1=typeof r[2]==="string"?r[2]:r[2]?.valueOf?.();if(!U1)continue;let l1="@"+U1.split(".")[0],A3=this.generateInComponent(o,"value");p.push({code:`'${l1}': ${A3}`,srcLine:w1})}else if(typeof r==="string"){if(r==="key")continue;if(r.startsWith("__bind_")&&r.endsWith("__")){let U1=r.slice(7,-2),l1=this.generateInComponent(o,"value");p.push({code:`${U1}: ${l1}`,srcLine:w1})}else{let U1=this.generateInComponent(o,"value");p.push({code:`${r}: ${U1}`,srcLine:w1})}}}}return p},n=(d)=>{if(!Array.isArray(d))return;let p=d[0]?.valueOf?.()??d[0];if(typeof p==="string"&&/^[A-Z]/.test(p)){let c=v(d.slice(1)),l=`_${b++}`,m=`ConstructorParameters<typeof ${p}>[0] & {}`;if(c.length===0){let s=d.loc?.r;j.push(` const ${l}: ${m} = {};`+(s!=null?` // @rip-src:${s}`:""))}else if(c.length===1){let s=d.loc?.r??c[0].srcLine;j.push(` const ${l}: ${m} = {${c[0].code}};`+(s!=null?` // @rip-src:${s}`:""))}else{let s=d.loc?.r;if(new Set(c.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=c[0].srcLine??s;j.push(` const ${l}: ${m} = {${c.map((w1)=>w1.code).join(", ")}};`+(o!=null?` // @rip-src:${o}`:""))}else{j.push(` const ${l}: ${m} = {`+(s!=null?` // @rip-src:${s}`:""));for(let o of c)j.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));j.push(" };")}}}else if(typeof p==="string"&&p!=="object"&&p!=="switch"&&j1.has(p.split(/[.#]/)[0])){let c=p.split(/[.#]/)[0],l=x(d.slice(1)),m=d.loc?.r,s=m!=null?` // @rip-src:${m}`:"";if(l.length===0)j.push(` __ripEl('${c}');${s}`);else if(l.length===1){let r=l[0].srcLine??m,o=r!=null?` // @rip-src:${r}`:"";j.push(` __ripEl('${c}', {${l[0].code}});${o}`)}else if(new Set(l.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=l[0].srcLine??m,w1=o!=null?` // @rip-src:${o}`:"";j.push(` __ripEl('${c}', {${l.map((U1)=>U1.code).join(", ")}});${w1}`)}else{j.push(` __ripEl('${c}', {${s}`);for(let o of l)j.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));j.push(" });")}}for(let c=1;c<d.length;c++)n(d[c])};if(n(E),j.length>0){h.push(" _render() {");for(let d of j)h.push(d);h.push(" }")}}return h.push("}"),this.componentMembers=N,this.reactiveMembers=B,this._autoEventHandlers=V,this._inheritsTag=y,h.join(`
|
|
15
|
-
`)}this.usesTemplates=!0,this.usesReactivity=!0;let L=[],a="";L.push("class extends __Component {"),L.push(" _init(props) {");for(let{name:T,value:h,isPublic:C}of M){let g=this.generateInComponent(h,"value");L.push(C?` this.${T} = props.${T} ?? ${g};`:` this.${T} = ${g};`)}for(let T of K)L.push(` this.${T} = getContext('${T}');`);for(let{name:T,value:h,isPublic:C,required:g}of X)if(C&&g)L.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T});`);else if(C){let i=this.generateInComponent(h,"value");L.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T} ?? ${i});`)}else{let i=this.generateInComponent(h,"value");L.push(` this.${T} = __state(${i});`)}if(I){if(L.push(" this._rest = {};"),L.push(" for (const __k in props) {"),S.size>0){let T=[...S].map((h)=>`__k !== '${h}'`).join(" && ");L.push(` if (${T} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else L.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");L.push(" }")}for(let{name:T,expr:h}of H)if(this.is(h,"block")){let C=this.transformComponentMembers(h),g=this.generateFunctionBody(C);L.push(` this.${T} = __computed(() => ${g});`)}else{let C=this.generateInComponent(h,"value");L.push(` this.${T} = __computed(() => ${C});`)}for(let T of
|
|
14
|
+
Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${J+1}: Unexpected ${E===U?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:Y.match,token:this.tokenNames[E]||E,line:Y.line,loc:D,expected:$})})(),Error(u)}if(w>0)if(K.push(E,w),S.push(Y.text),R.push(Y.loc),E=null,!H){if([P,I,J,D]=[Y.len,Y.text,Y.line,Y.loc],O>0)O--}else[E,H]=[H,null];else if(w<0){if(F=this.ruleTable[-w*2+1],z.$=S[S.length-F],Z=R[R.length-(F||1)],z._$={r:Z.r,c:Z.c},M=this.ruleActions.call(z,-w,S,R,q.ctx),M!=null)z.$=M;if(Array.isArray(z.$))z.$.loc=z._$;if(F)K.length-=F*2,S.length-=F,R.length-=F;K.push(this.ruleTable[-w*2]),S.push(z.$),R.push(z._$),A=X[K[K.length-2]][K[K.length-1]],K.push(A)}else if(w===0)return S[S.length-1]}},trace(){},ctx:{}},U7=(f={})=>{let U=Object.create($7);return Object.defineProperty(U,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),U},Q1=U7();var O7=Q1.parse.bind(Q1);var w7=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"]),q1=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"]),j1=new Set([...w7,...q1]);var r1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),_7=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function W7(f){for(let U of f){if(!Array.isArray(U))continue;let _=U[0]instanceof String?U[0].valueOf():U[0],w=U[1]instanceof String?U[1].valueOf():U[1];if(_==="type"&&typeof w==="string")return w.replace(/^["']|["']$/g,"")}return null}function X1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function o1(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function B2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function N2(f,U){let _=(W,Y)=>W instanceof String?W[Y]:void 0,w=U.prototype.classifyKeyword;U.prototype.classifyKeyword=function(W,Y,Z){if(W==="offer"||W==="accept"){let R=0;for(let A=this.tokens.length-1;A>=0;A--){let Q=this.tokens[A][0];if(Q==="OUTDENT")R++;else if(Q==="INDENT")R--;if(R<0&&this.tokens[A-1]?.[0]==="COMPONENT")return W.toUpperCase()}return Y}return w.call(this,W,Y,Z)},U.prototype.rewriteRender=function(){let W=(z,q,G)=>{let K=[z,q];if(K.pre=0,K.data=null,K.loc=G?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,G)K.origin=G;return K},Y=!1,Z=0,R=0,A=[],Q=(z)=>{let q=z.split("#")[0];return j1.has(q)},X=(z)=>{if(!z||typeof z!=="string")return!1;return/^[A-Z]/.test(z)},H=(z)=>{return Q(z)||X(z)},M=(z,q,G,K)=>{let E=1,P=q;while(P>=0&&E>0){let J=z[P][0];if(J===G)E++;else if(J===K)E--;if(E>0)P--}return P},O=(z,q)=>{let G=q;while(G>0){let K=z[G-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let E=z[G][0];if(E==="CALL_END"||E===")"){G=M(z,G-1,E,E==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){G=M(z,G-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){G=M(z,G-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){G=M(z,G-2,"STRING_END","STRING_START");continue}G--}return z[G]&&z[G][0]==="IDENTIFIER"&&H(z[G][1])};this.scanTokens(function(z,q,G){let K=z[0],E=q<G.length-1?G[q+1]:null;if(K==="RENDER")return Y=!0,Z=R+1,1;if(K==="INDENT")return R++,1;if(K==="OUTDENT"){R--;let P=0;while(A.length>0&&A[A.length-1]>R){let J=W("CALL_END",")",z);G.splice(q+1+P,0,J),A.pop(),P++}if(Y&&R<Z)Y=!1;return 1+P}if(!Y)return 1;if(K==="="&&q>0){let P=G[q-1][0];if(P==="TERMINATOR"||P==="INDENT"||P==="RENDER"){if(G.splice(q,1),G[q]&&G[q][0]==="IDENTIFIER"){let J=G[q][1];if(typeof J==="string")J=new String(J),G[q][1]=J;J.text=!0}return 0}}if(K==="UNARY_MATH"&&z[1]==="~"&&E&&E[0]==="IDENTIFIER"){z[0]="PROPERTY",z[1]="__transition__";let P=W(":",":",z),J=W("STRING",`"${E[1]}"`,E);return G.splice(q+1,1,P,J),1}if(K==="PROPERTY"&&z[1][0]==="$"&&z[1].length>1)return z[0]="STRING",z[1]=`"data-${z[1].slice(1)}"`,1;if(K==="IDENTIFIER"&&!z.spaced){let P=[z[1]],J=q+1;while(J+1<G.length){let D=G[J],I=G[J+1];if(D[0]==="-"&&!D.spaced&&(I[0]==="IDENTIFIER"||I[0]==="PROPERTY")){if(P.push(I[1]),J+=2,I[0]==="PROPERTY")break}else break}if(P.length>1&&J>q+1&&G[J-1][0]==="PROPERTY"){let D=P.join("-");if(D[0]==="$")D="data-"+D.slice(1);return z[0]="STRING",z[1]=`"${D}"`,G.splice(q+1,J-q-1),1}}if(K==="."){let P=q>0?G[q-1]:null,J=P?P[0]:null;if(J==="INDENT"||J==="TERMINATOR"){if(E&&E[0]==="PROPERTY"){let D=q+2<G.length?G[q+2]:null;if(!D||D[0]!==":"){let I=W("IDENTIFIER","div",z);return G.splice(q,0,I),2}}if(!E||E[0]!=="(")return z[0]="IDENTIFIER",z[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let P=G[q+1],J=G[q+2];if(P&&P[0]==="#"&&J&&(J[0]==="PROPERTY"||J[0]==="IDENTIFIER")){if(z[1]=z[1]+"#"+J[1],J.spaced)z.spaced=!0;return G.splice(q+1,2),0}}if(K==="BIND"){let P=q>0?G[q-1]:null,J=G[q+1];if(P&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")&&J&&J[0]==="IDENTIFIER")return P[1]=`__bind_${P[1]}__`,z[0]=":",z[1]=":",1}if(K==="@"){let P=q+1;if(P<G.length&&G[P][0]==="PROPERTY"){P++;while(P+1<G.length&&G[P][0]==="."&&G[P+1][0]==="PROPERTY")P+=2;if(P>q+2&&P<G.length&&G[P][0]===":"){let J=W("[","[",z);G.splice(q,0,J);let D=W("]","]",G[P+1]);return G.splice(P+1,0,D),2}}}if(K==="."&&E&&E[0]==="("){let P=q>0?G[q-1]:null,J=P?P[0]:null,D=J==="INDENT"||J==="TERMINATOR",I=W("PROPERTY","__clsx",z);E[0]="CALL_START";let S=1;for(let N=q+2;N<G.length&&S>0;N++)if(G[N][0]==="("||G[N][0]==="CALL_START")S++;else if(G[N][0]===")"){if(S--,S===0)G[N][0]="CALL_END"}else if(G[N][0]==="CALL_END")S--;if(D){let N=W("IDENTIFIER","div",z);return G.splice(q,0,N),G.splice(q+2,0,I),3}else if(J===":")return G[q]=W("IDENTIFIER","__clsx",z),1;else return G.splice(q+1,0,I),2}if(E&&E[0]==="INDENT"){if(E.fromThen)return 1;if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let P=!1,J=q>0?G[q-1][0]:null,D=J==="IF"||J==="UNLESS"||J==="WHILE"||J==="UNTIL"||J==="WHEN",I=!1;if(K==="CALL_END"){let S=1;for(let N=q-1;N>=0&&S>0;N--)if(G[N][0]==="CALL_END")S++;else if(G[N][0]==="CALL_START"){if(S--,S===0&&N>0&&G[N-1][0]==="PROPERTY"&&G[N-1][1]==="__clsx")I=!0}}if(I)P=!0;else if(K==="IDENTIFIER"&&H(z[1])&&!D)P=!0;else if(K==="IDENTIFIER"&&!D)P=O(G,q);else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="NUMBER"||K==="BOOL"||K==="CALL_END"||K===")"||K==="PRESENCE")P=O(G,q);if(P){let S=!1;if(K==="PROPERTY"&&q>0&&G[q-1][0]==="."){let B=q;while(B>=2&&G[B-1][0]==="."&&G[B-2][0]==="PROPERTY")B-=2;if(B>=2&&G[B-1][0]==="."&&G[B-2][0]==="IDENTIFIER"&&H(G[B-2][1])){let V=B>=3?G[B-3][0]:null;if(!V||V==="INDENT"||V==="OUTDENT"||V==="TERMINATOR"||V==="RENDER")S=!0}}if(I||K==="IDENTIFIER"&&H(z[1])||S){let B=W("CALL_START","(",z),V=W("->","->",z);return V.newLine=!0,G.splice(q+1,0,B,V),A.push(R+1),3}else{let B=W(",",",",z),V=W("->","->",z);return V.newLine=!0,G.splice(q+1,0,B,V),3}}}if(K==="IDENTIFIER"&&X(z[1])&&E&&(E[0]==="OUTDENT"||E[0]==="TERMINATOR"))return G.splice(q+1,0,W("CALL_START","(",z),W("CALL_END",")",z)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(W){let Y=W.split("#")[0];return j1.has(Y.toLowerCase())},u.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},u.collectTemplateClasses=function(W){let Y=[],Z=W;while(this.is(Z,".")){let X=Z[2];if(typeof X==="string"||X instanceof String)Y.unshift(X.valueOf());Z=Z[1]}let R=typeof Z==="string"?Z:Z instanceof String?Z.valueOf():null;if(R===null)return{tag:null,classes:Y,id:void 0,base:Z};let[A,Q]=R.split("#");if(!A)A="div";return{tag:A,classes:Y,id:Q,base:Z}};let $=(W)=>typeof W==="string"?W:W instanceof String?W.valueOf():null,F=(W,Y)=>{if(!(W instanceof String))return Y;let Z=new String(Y);if(W.predicate)Z.predicate=!0;if(W.await)Z.await=!0;return Z.predicate||Z.await?Z:Y};u.transformComponentMembers=function(W){let Y=this._self;if(!Array.isArray(W)){let Z=$(W);if(Z&&this.reactiveMembers&&this.reactiveMembers.has(Z))return[".",[".",Y,Z],F(W,"value")];if(Z&&this.componentMembers&&this.componentMembers.has(Z))return[".",Y,F(W,Z)];return W}if(W[0]==="."&&W[1]==="this"&&$(W[2])!=null){let Z=W[2],R=$(Z);if(this.reactiveMembers&&this.reactiveMembers.has(R))return[".",[".",Y,R],F(Z,"value")];return this._factoryMode?[".",Y,Z]:W}if(W[0]==="."||W[0]==="?.")return[W[0],this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map((Z)=>this.transformComponentMembers(Z))];if(W[0]==="object")return["object",...W.slice(1).map((Z)=>{if(Array.isArray(Z)&&Z.length>=2){let R=Z[0],A=Array.isArray(R)?this.transformComponentMembers(R):R,Q=this.transformComponentMembers(Z[1]);return[A,Q,Z[2]]}return this.transformComponentMembers(Z)})];return W.map((Z)=>this.transformComponentMembers(Z))},u.generateComponent=function(W,Y,Z,R){let[,A]=Y,Q=this.is(A,"block")?A.slice(1):[],X=[],H=[],M=[],O=[],z=[],q=[],G=[],K=[],E=null,P=new Set,J=new Set;for(let T of Q){if(!Array.isArray(T))continue;let[h]=T;if(h==="offer"){if(T=T[1],!Array.isArray(T))continue;h=T[0];let C=X1(T[1]);if(C)G.push(C)}if(h==="accept"){let C=typeof T[1]==="string"?T[1]:X1(T[1]);if(C)K.push(C),P.add(C),J.add(C)}else if(h==="."&&T[1]==="this"&&X1(T)){let C=typeof T[2]==="string"||T[2]instanceof String?T[2].valueOf():null;if(C)X.push({name:C,value:void 0,isPublic:!0,type:T[2]?.type||null,required:!0}),P.add(C),J.add(C)}else if(h==="state"){let C=X1(T[1]);if(C)X.push({name:C,value:T[2],isPublic:o1(T[1]),type:B2(T[1])}),P.add(C),J.add(C)}else if(h==="computed"){let C=X1(T[1]);if(C)H.push({name:C,expr:T[2]}),P.add(C),J.add(C)}else if(h==="readonly"){let C=X1(T[1]);if(C)M.push({name:C,value:T[2],isPublic:o1(T[1]),type:B2(T[1])}),P.add(C)}else if(h==="="){let C=X1(T[1]);if(C)if(r1.has(C))z.push({name:C,value:T[2]});else{let g=T[2];if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>"))O.push({name:C,func:g}),P.add(C);else X.push({name:C,value:g,isPublic:o1(T[1])}),P.add(C),J.add(C)}}else if(h==="effect")q.push(T);else if(h==="render")E=T;else if(h==="object")for(let C=1;C<T.length;C++){let g=T[C];if(!Array.isArray(g))continue;let[i,j]=g;if(typeof i==="string"&&r1.has(i))z.push({name:i,value:j});else if(typeof i==="string")O.push({name:i,func:j}),P.add(i)}}let D=new Map;for(let{name:T}of O)if(/^on[A-Z]/.test(T)&&!r1.has(T))D.set(T[2].toLowerCase()+T.slice(3),T);let I=Y[0]?.valueOf?.()??null,S=new Set;for(let{name:T,isPublic:h}of X)if(h)S.add(T);for(let{name:T,isPublic:h}of M)if(h)S.add(T);let N=this.componentMembers,B=this.reactiveMembers,V=this._autoEventHandlers,y=this._inheritsTag;if(this.componentMembers=P,this.reactiveMembers=J,this._autoEventHandlers=D.size>0?D:null,this._inheritsTag=I||null,this.options.stubComponents){let T=(j)=>j?j.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,h=[];h.push("class {");let C=[];for(let{name:j,type:b,isPublic:v,required:x}of X){if(!v)continue;let n=T(b),d=x?"":"?";C.push(`${j}${d}: ${n||"any"}`),C.push(`__bind_${j}__?: Signal<${n||"any"}>`)}for(let{name:j,type:b,isPublic:v}of M){if(!v)continue;let x=T(b);C.push(`${j}?: ${x||"any"}`)}{let b=C.length>0&&X.some((x)=>x.isPublic&&x.required)?"":"?",v=C.length>0?`{${C.join("; ")}}`:"{}";if(I)v+=` & __RipProps<'${I}'>`;h.push(` constructor(props${b}: ${v}) {}`)}let g=(j)=>{let b=j?.valueOf?.()??j;if(typeof b!=="string")return null;if(b==="true"||b==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(b))return"number";if(b.startsWith('"')||b.startsWith("'"))return"string";return null};for(let{name:j,type:b,value:v}of X){let x=T(b)||g(v);h.push(x?` declare ${j}: Signal<${x}>;`:` declare ${j}: Signal<any>;`)}for(let{name:j,type:b,value:v}of M){let x=T(b)||g(v);h.push(x?` declare ${j}: ${x};`:` declare ${j}: any;`)}for(let{name:j,expr:b}of H)if(this.is(b,"block")){let v=this.transformComponentMembers(b),x=this.generateFunctionBody(v);h.push(` ${j} = __computed(() => ${x});`)}else{let v=this.generateInComponent(b,"value");h.push(` ${j} = __computed(() => ${v});`)}h.push(" _init(props) {");for(let{name:j,value:b,isPublic:v}of M){let x=this.generateInComponent(b,"value");h.push(v?` this.${j} = props.${j} ?? ${x};`:` this.${j} = ${x};`)}for(let{name:j,value:b,isPublic:v,required:x,type:n}of X)if(v&&x)h.push(` this.${j} = __state(props.__bind_${j}__ ?? props.${j});`);else if(v){let d=this.generateInComponent(b,"value");h.push(` this.${j} = __state(props.__bind_${j}__ ?? props.${j} ?? ${d});`)}else{let d=this.generateInComponent(b,"value");h.push(` this.${j} = __state(${d});`)}for(let j of q){let b=j[2],v=this.containsAwait(b)?"async ":"";if(this.is(b,"block")){let x=this.transformComponentMembers(b),n=this.generateFunctionBody(x,[],!0);h.push(` __effect(${v}() => ${n});`)}else{let x=this.generateInComponent(b,"value");h.push(` __effect(${v}() => { ${x}; });`)}}h.push(" }");let i=new Map;if(E){let j=(b)=>{if(!Array.isArray(b))return;let v=b[0]?.valueOf?.()??b[0];if(typeof v==="string"&&v!=="object"&&v!=="switch"&&j1.has(v.split(/[.#]/)[0]))for(let x=1;x<b.length;x++){let n=b[x],d=this.is(n,"object")?n:null;if(!d&&Array.isArray(n)&&(n[0]==="->"||n[0]==="=>")&&this.is(n[2],"block")){for(let p=1;p<n[2].length;p++)if(this.is(n[2][p],"object")){d=n[2][p];break}}if(!d)continue;for(let p=1;p<d.length;p++){let c=d[p];if(!Array.isArray(c)||c.length<2)continue;let[l,m]=c;if(Array.isArray(l)&&l[0]==="."&&l[1]==="this"&&Array.isArray(m)&&m[0]==="."&&m[1]==="this"){let s=typeof l[2]==="string"?l[2]:l[2]?.valueOf?.(),r=typeof m[2]==="string"?m[2]:m[2]?.valueOf?.();if(s&&r&&!i.has(r))i.set(r,s)}}}for(let x=1;x<b.length;x++)j(b[x])};j(E)}for(let{name:j,func:b}of O)if(Array.isArray(b)&&(b[0]==="->"||b[0]==="=>")){let[,v,x]=b,n=Array.isArray(v)?v.map((m)=>this.formatParam(m)).join(", "):"",d=i.get(j);if(d&&Array.isArray(v)&&v.length>0){let m=v[0];if(!(m?.type||m instanceof String&&m.type)&&typeof(m?.valueOf?.()??m)==="string"){let r=m?.valueOf?.()??m;n=n.replace(r,`${r}: HTMLElementEventMap['${d}']`)}}let p=this.reactiveMembers?this.transformComponentMembers(x):x,c=this.containsAwait(x),l=this.generateFunctionBody(p,v||[]);h.push(` ${c?"async ":""}${j}(${n}) ${l}`)}for(let{name:j,value:b}of z)if(Array.isArray(b)&&(b[0]==="->"||b[0]==="=>")){let[,v,x]=b,n=Array.isArray(v)?v.map((l)=>this.formatParam(l)).join(", "):"",d=this.reactiveMembers?this.transformComponentMembers(x):x,p=this.containsAwait(x),c=this.generateFunctionBody(d,v||[]);h.push(` ${p?"async ":""}${j}(${n}) ${c}`)}if(E){let j=[],b=0,v=(d)=>{let p=[];for(let c of d){let l=null;if(this.is(c,"object"))l=c;else if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")&&this.is(c[2],"block")){for(let m=1;m<c[2].length;m++)if(this.is(c[2][m],"object")){l=c[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m],[r,o]=s;if(typeof r==="string"&&!r.startsWith("@")){let w1=s.loc?.r??l.loc?.r;if(r.startsWith("__bind_")&&r.endsWith("__")){let U1=typeof o==="string"&&this.reactiveMembers?.has(o)?`this.${o}`:this.generateInComponent(o,"value");p.push({code:`${r}: ${U1}`,srcLine:w1})}else{let U1=this.generateInComponent(o,"value");p.push({code:`${r}: ${U1}`,srcLine:w1})}}}}return p},x=(d)=>{let p=[];for(let c of d){let l=null;if(this.is(c,"object"))l=c;else if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")&&this.is(c[2],"block")){for(let m=1;m<c[2].length;m++)if(this.is(c[2][m],"object")){l=c[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m];if(!Array.isArray(s)||s.length<2)continue;let[r,o]=s,w1=s.loc?.r??l.loc?.r;if(Array.isArray(r)&&r[0]==="."&&r[1]==="this"){let U1=typeof r[2]==="string"?r[2]:r[2]?.valueOf?.();if(!U1)continue;let l1="@"+U1.split(".")[0],A3=this.generateInComponent(o,"value");p.push({code:`'${l1}': ${A3}`,srcLine:w1})}else if(typeof r==="string"){if(r==="key")continue;if(r.startsWith("__bind_")&&r.endsWith("__")){let U1=r.slice(7,-2),l1=this.generateInComponent(o,"value");p.push({code:`${U1}: ${l1}`,srcLine:w1})}else{let U1=this.generateInComponent(o,"value");p.push({code:`${r}: ${U1}`,srcLine:w1})}}}}return p},n=(d)=>{if(!Array.isArray(d))return;let p=d[0]?.valueOf?.()??d[0];if(typeof p==="string"&&/^[A-Z]/.test(p)){let c=v(d.slice(1)),l=`_${b++}`,m=`ConstructorParameters<typeof ${p}>[0] & {}`;if(c.length===0){let s=d.loc?.r;j.push(` const ${l}: ${m} = {};`+(s!=null?` // @rip-src:${s}`:""))}else if(c.length===1){let s=d.loc?.r??c[0].srcLine;j.push(` const ${l}: ${m} = {${c[0].code}};`+(s!=null?` // @rip-src:${s}`:""))}else{let s=d.loc?.r;if(new Set(c.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=c[0].srcLine??s;j.push(` const ${l}: ${m} = {${c.map((w1)=>w1.code).join(", ")}};`+(o!=null?` // @rip-src:${o}`:""))}else{j.push(` const ${l}: ${m} = {`+(s!=null?` // @rip-src:${s}`:""));for(let o of c)j.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));j.push(" };")}}}else if(typeof p==="string"&&p!=="object"&&p!=="switch"&&j1.has(p.split(/[.#]/)[0])){let c=p.split(/[.#]/)[0],l=x(d.slice(1)),m=d.loc?.r,s=m!=null?` // @rip-src:${m}`:"";if(l.length===0)j.push(` __ripEl('${c}');${s}`);else if(l.length===1){let r=l[0].srcLine??m,o=r!=null?` // @rip-src:${r}`:"";j.push(` __ripEl('${c}', {${l[0].code}});${o}`)}else if(new Set(l.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=l[0].srcLine??m,w1=o!=null?` // @rip-src:${o}`:"";j.push(` __ripEl('${c}', {${l.map((U1)=>U1.code).join(", ")}});${w1}`)}else{j.push(` __ripEl('${c}', {${s}`);for(let o of l)j.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));j.push(" });")}}for(let c=1;c<d.length;c++)n(d[c])};if(n(E),j.length>0){h.push(" _render() {");for(let d of j)h.push(d);h.push(" }")}}return h.push("}"),this.componentMembers=N,this.reactiveMembers=B,this._autoEventHandlers=V,this._inheritsTag=y,h.join(`
|
|
15
|
+
`)}this.usesTemplates=!0,this.usesReactivity=!0;let L=[],a="";L.push("class extends __Component {"),L.push(" _init(props) {");for(let{name:T,value:h,isPublic:C}of M){let g=this.generateInComponent(h,"value");L.push(C?` this.${T} = props.${T} ?? ${g};`:` this.${T} = ${g};`)}for(let T of K)L.push(` this.${T} = getContext('${T}');`);for(let{name:T,value:h,isPublic:C,required:g}of X)if(C&&g)L.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T});`);else if(C){let i=this.generateInComponent(h,"value");L.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T} ?? ${i});`)}else{let i=this.generateInComponent(h,"value");L.push(` this.${T} = __state(${i});`)}if(I){if(L.push(" this._rest = {};"),L.push(" for (const __k in props) {"),S.size>0){let T=[...S].map((h)=>`__k !== '${h}'`).join(" && ");L.push(` if (${T} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else L.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");L.push(" }")}for(let{name:T,expr:h}of H)if(this.is(h,"block")){let C=this.transformComponentMembers(h),g=this.generateFunctionBody(C);L.push(` this.${T} = __computed(() => ${g});`)}else{let C=this.generateInComponent(h,"value");L.push(` this.${T} = __computed(() => ${C});`)}for(let T of G)L.push(` setContext('${T}', this.${T});`);for(let T of q){let h=T[2],C=this.containsAwait(h)?"async ":"";if(this.is(h,"block")){let g=this.transformComponentMembers(h),i=this.generateFunctionBody(g,[],!0);L.push(` __effect(${C}() => ${i});`)}else{let g=this.generateInComponent(h,"value");L.push(` __effect(${C}() => { ${g}; });`)}}if(L.push(" }"),I)L.push(" _setRestProp(key, value) {"),L.push(" if (key.startsWith('__bind_')) return;"),L.push(" this._rest || (this._rest = {});"),L.push(" if (value == null) delete this._rest[key];"),L.push(" else this._rest[key] = value;"),L.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),L.push(" }"),L.push(" _applyRestToInheritedEl() {"),L.push(" if (!this._inheritedEl || !this._rest) return;"),L.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),L.push(" }"),L.push(" _applyInheritedProp(el, key, value) {"),L.push(" if (!el || key === 'key' || key === 'ref' || key.startsWith('__bind_')) return;"),L.push(" if (key[0] === '@') {"),L.push(" const event = key.slice(1).split('.')[0];"),L.push(" this._restHandlers || (this._restHandlers = {});"),L.push(" const prev = this._restHandlers[key];"),L.push(" if (prev) el.removeEventListener(event, prev);"),L.push(" if (typeof value === 'function') {"),L.push(" const next = (e) => __batch(() => value(e));"),L.push(" this._restHandlers[key] = next;"),L.push(" el.addEventListener(event, next);"),L.push(" } else {"),L.push(" delete this._restHandlers[key];"),L.push(" }"),L.push(" return;"),L.push(" }"),L.push(" if (key === 'class' || key === 'className') {"),L.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),L.push(" else el.className = __clsx(value);"),L.push(" return;"),L.push(" }"),L.push(" if (key === 'style') {"),L.push(" if (value == null) { el.removeAttribute('style'); return; }"),L.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),L.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),L.push(" }"),L.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),L.push(" el[key] = value ?? '';"),L.push(" return;"),L.push(" }"),L.push(" if (key in el && !key.includes('-')) {"),L.push(" el[key] = value;"),L.push(" return;"),L.push(" }"),L.push(" if (value == null || value === false) {"),L.push(" el.removeAttribute(key);"),L.push(" return;"),L.push(" }"),L.push(" if (value === true) {"),L.push(" el.setAttribute(key, '');"),L.push(" return;"),L.push(" }"),L.push(" el.setAttribute(key, value);"),L.push(" }");for(let{name:T,func:h}of O)if(Array.isArray(h)&&(h[0]==="->"||h[0]==="=>")){let[,C,g]=h,i=Array.isArray(C)?C.map((x)=>this.formatParam(x)).join(", "):"",j=this.reactiveMembers?this.transformComponentMembers(g):g,b=this.containsAwait(g),v=this.generateFunctionBody(j,C||[]);L.push(` ${b?"async ":""}${T}(${i}) ${v}`)}for(let{name:T,value:h}of z)if(Array.isArray(h)&&(h[0]==="->"||h[0]==="=>")){let[,C,g]=h,i=Array.isArray(C)?C.map((x)=>this.formatParam(x)).join(", "):"",j=this.reactiveMembers?this.transformComponentMembers(g):g,b=this.containsAwait(g),v=this.generateFunctionBody(j,C||[]);L.push(` ${b?"async ":""}${T}(${i}) ${v}`)}if(E){let T=E[1],h=this.buildRender(T);if(h.blockFactories.length>0)a=h.blockFactories.join(`
|
|
16
16
|
|
|
17
17
|
`)+`
|
|
18
18
|
|
|
@@ -20,10 +20,10 @@ Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse err
|
|
|
20
20
|
${a}return ${L.join(`
|
|
21
21
|
`)};
|
|
22
22
|
})()`;return L.join(`
|
|
23
|
-
`)},u.generateInComponent=function(W,Y){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return`${this._self}.${W}.value`;if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return`${this._self}.${W}`;if(Array.isArray(W)&&this.reactiveMembers){let Z=this.transformComponentMembers(W);return this.generate(Z,Y)}return this.generate(W,Y)},u.generateRender=function(W,Y,Z,R){throw Error("render blocks can only be used inside a component")},u.generateOffer=function(W,Y,Z,R){throw Error("offer can only be used inside a component")},u.generateAccept=function(W,Y,Z,R){throw Error("accept can only be used inside a component")},u.buildRender=function(W){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let Y=this.is(W,"block")?W.slice(1):[W],Z;if(Y.length===0)Z="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,Z=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{Z=this.newElementVar("frag"),this._createLines.push(`${Z} = document.createDocumentFragment();`);let R=[];for(let A of Y){let Q=this.generateNode(A);this._createLines.push(`${Z}.appendChild(${Q});`),R.push(Q)}this._fragChildren.set(Z,R)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:Z}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(W="el"){let Y=`_${W}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},u.newTextVar=function(){let W=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(W);return this._factoryMode?W:`this.${W}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(W){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${W} }));`);else this._setupLines.push(`__effect(() => { ${W} });`)},u.generateNode=function(W){if(typeof W==="string"||W instanceof String){let X=W.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode(${X});`),q}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode('');`),this._pushEffect(`${q}.data = ${this._self}.${X}.value;`),q}if(X==="slot"&&this.componentMembers){let q=this._self,O=this.newElementVar("slot");return this._createLines.push(`${O} = ${q}.children instanceof Node ? ${q}.children : (${q}.children != null ? document.createTextNode(String(${q}.children)) : document.createComment(''));`),O}let[H,M]=X.split("#"),G=this.newElementVar(),z=H||"div";if(q1.has(z)||this._svgDepth>0)this._createLines.push(`${G} = document.createElementNS('http://www.w3.org/2000/svg', '${z}');`);else this._createLines.push(`${G} = document.createElement('${z}');`);if(M)this._createLines.push(`${G}.id = '${M}';`);return this._bindInheritedTarget(z,G),G}if(!Array.isArray(W)){let X=this.newElementVar("c");return this._createLines.push(`${X} = document.createComment('unknown');`),X}let[Y,...Z]=W,R=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(R&&this.isComponent(R))return this.generateChildComponent(R,Z);if(R==="slot"&&this.componentMembers){let X=this._self,H=this.newElementVar("slot");return this._createLines.push(`${H} = ${X}.children instanceof Node ? ${X}.children : (${X}.children != null ? document.createTextNode(String(${X}.children)) : document.createComment(''));`),H}if(R&&this.isHtmlTag(R)&&!_(Y,"text")){let[X,H]=R.split("#");return this.generateTag(X||"div",[],Z,H)}if(R==="."){let[,X,H]=W;if(X==="this"&&typeof H==="string"){let E=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(H)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${E}.${H}.value;`),J}let P=this.newElementVar("slot");return this._createLines.push(`${P} = ${E}.${H} instanceof Node ? ${E}.${H} : (${E}.${H} != null ? document.createTextNode(String(${E}.${H})) : document.createComment(''));`),P}let{tag:M,classes:G,id:z,base:q}=this.collectTemplateClasses(W);if(!_(q,"text")&&M&&this.isHtmlTag(M))return this.generateTag(M,G,[],z);let O=this.newTextVar(),K=this.generateInComponent(W,"value");return this._createLines.push(`${O} = document.createTextNode(String(${K}));`),O}if(Array.isArray(Y)){if(Array.isArray(Y[0])&&Y[0][0]==="."&&(Y[0][2]==="__clsx"||Y[0][2]instanceof String&&Y[0][2].valueOf()==="__clsx")){let G=Y[0][1],z=Y.slice(1);if(Array.isArray(G)){let{tag:O,classes:K,id:E}=this.collectTemplateClasses(G);if(O){let P=K.map((J)=>`"${J}"`);return this.generateDynamicTag(O,z,Z,P,E)}}let q=typeof G==="string"?G:G.valueOf();return this.generateDynamicTag(q,z,Z)}let{tag:X,classes:H,id:M}=this.collectTemplateClasses(Y);if(X&&this.isHtmlTag(X)){if(H.length>0&&H[H.length-1]==="__clsx"){let z=H.slice(0,-1).map((q)=>`"${q}"`);return this.generateDynamicTag(X,Z,[],z,M)}return this.generateTag(X,H,Z,M)}}if(R==="->"||R==="=>")return this.generateTemplateBlock(Z[1]);if(R==="if")return this.generateConditional(W);if(R==="for"||R==="for-in"||R==="for-of"||R==="for-as")return this.generateTemplateLoop(W);let A=this.newTextVar(),Q=this.generateInComponent(W,"value");if(this.hasReactiveDeps(W))this._createLines.push(`${A} = document.createTextNode('');`),this._pushEffect(`${A}.data = ${Q};`);else this._createLines.push(`${A} = document.createTextNode(String(${Q}));`);return A},u.appendChildren=function(W,Y){for(let Z of Y)if(this.is(Z,"->")||this.is(Z,"=>")){let R=Z[2];if(this.is(R,"block"))for(let A of R.slice(1))if(this.is(A,"object"))this.generateAttributes(W,A);else{let Q=this.generateNode(A);this._createLines.push(`${W}.appendChild(${Q});`)}else if(R){let A=this.generateNode(R);this._createLines.push(`${W}.appendChild(${A});`)}}else if(this.is(Z,"object"))this.generateAttributes(W,Z);else if(typeof Z==="string"||Z instanceof String){let R=Z.valueOf(),A=R.split(/[#.]/)[0];if(this.isHtmlTag(A||"div")||this.isComponent(A)){let Q=this.generateNode(Z);this._createLines.push(`${W}.appendChild(${Q});`)}else{let Q=this.newTextVar();if(R.startsWith('"')||R.startsWith("'")||R.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${R});`);else if(this.reactiveMembers&&this.reactiveMembers.has(R))this._createLines.push(`${Q} = document.createTextNode('');`),this._pushEffect(`${Q}.data = ${this._self}.${R}.value;`);else if(this.componentMembers&&this.componentMembers.has(R))this._createLines.push(`${Q} = document.createTextNode(String(${this._self}.${R}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.generateInComponent(Z,"value")});`);this._createLines.push(`${W}.appendChild(${Q});`)}}else if(Z){let R=this.generateNode(Z);this._createLines.push(`${W}.appendChild(${R});`)}},u._claimAutoWire=function(W){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=W,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(W,Y){if(!Y)return;for(let[Z,R]of this._autoEventHandlers)if(!this._autoWireExplicit.has(Z))this._createLines.push(`${W}.addEventListener('${Z}', (e) => __batch(() => ${this._self}.${R}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(W,Y){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(W!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${Y};`),this._createLines.push("this._applyRestToInheritedEl();")},u.generateTag=function(W,Y,Z,R){let A=this.newElementVar(),Q=q1.has(W)||this._svgDepth>0;if(Q)this._createLines.push(`${A} = document.createElementNS('http://www.w3.org/2000/svg', '${W}');`);else this._createLines.push(`${A} = document.createElement('${W}');`);if(R)this._createLines.push(`${A}.id = '${R}';`);if(this._bindInheritedTarget(W,A),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${A}.setAttribute('data-part', '${this._componentName}');`);let X=this._claimAutoWire(A),H=this._pendingClassArgs,M=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=A;if(W==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(A,Z),W==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(Q)this._createLines.push(`${A}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${A}.className = '${Y.join(" ")}';`);else{let G=this._pendingClassArgs.join(", ");if(Q)this._pushEffect(`${A}.setAttribute('class', __clsx(${G}));`);else this._pushEffect(`${A}.className = __clsx(${G});`)}this._pendingClassArgs=H,this._pendingClassEl=M}return this._emitAutoWire(A,X),A},u.generateDynamicTag=function(W,Y,Z,R,A){let Q=this.newElementVar();if(q1.has(W)||this._svgDepth>0)this._createLines.push(`${Q} = document.createElementNS('http://www.w3.org/2000/svg', '${W}');`);else this._createLines.push(`${Q} = document.createElement('${W}');`);if(A)this._createLines.push(`${Q}.id = '${A}';`);this._bindInheritedTarget(W,Q);let X=this._claimAutoWire(Q),H=[...R||[],...Y.map((z)=>this.generateInComponent(z,"value"))],M=this._pendingClassArgs,G=this._pendingClassEl;if(this._pendingClassArgs=H,this._pendingClassEl=Q,W==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Q,Z),W==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let z=this._pendingClassArgs.join(", ");if(q1.has(W)||this._svgDepth>0)this._pushEffect(`${Q}.setAttribute('class', __clsx(${z}));`);else this._pushEffect(`${Q}.className = __clsx(${z});`)}return this._pendingClassArgs=M,this._pendingClassEl=G,this._emitAutoWire(Q,X),Q},u.generateAttributes=function(W,Y){let Z=W7(Y.slice(1));for(let R=1;R<Y.length;R++){let[A,Q]=Y[R];if(this.is(A,".")&&A[1]==="this"){let X=A[2];if(this._autoWireExplicit&&this._autoWireEl===W)this._autoWireExplicit.add(X);if(typeof Q==="string"&&this.componentMembers?.has(Q))this._createLines.push(`${W}.addEventListener('${X}', (e) => __batch(() => ${this._self}.${Q}(e)));`);else{let H=this.generateInComponent(Q,"value");this._createLines.push(`${W}.addEventListener('${X}', (e) => __batch(() => (${H})(e)));`)}continue}if(typeof A==="string"||A instanceof String){if(A.startsWith('"')&&A.endsWith('"'))A=A.slice(1,-1);if(A==="class"||A==="className"){let H=this.generateInComponent(Q,"value");if(this._pendingClassArgs&&this._pendingClassEl===W)this._pendingClassArgs.push(H);else if(this.hasReactiveDeps(Q))if(this._svgDepth>0)this._pushEffect(`${W}.setAttribute('class', __clsx(${H}));`);else this._pushEffect(`${W}.className = __clsx(${H});`);else if(this._svgDepth>0)this._createLines.push(`${W}.setAttribute('class', ${H});`);else this._createLines.push(`${W}.className = ${H};`);continue}if(A==="__transition__"){let H=String(Q).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${H}";`);continue}if(A==="ref"){let H=String(Q).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${H} = ${W};`);continue}if(A.startsWith("__bind_")&&A.endsWith("__")){let H=A.slice(7,-2),M=this.generateInComponent(Q,"value"),G,z;if(H==="checked")G="change",z="e.target.checked";else G="input",z=Z==="number"||Z==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${W}.${H} = ${M};`);let q=`${M} = ${z}`,O=!this.isSimpleAssignable(Q)&&this.findRootReactiveMember(Q);if(O)q+=`; ${this._self}.${O}.touch?.()`;this._createLines.push(`${W}.addEventListener('${G}', (e) => { ${q}; });`);continue}let X=this.generateInComponent(Q,"value");if((A==="value"||A==="checked")&&this.hasReactiveDeps(Q)){this._pushEffect(`${W}.${A} = ${X};`);continue}if(A==="innerHTML"||A==="textContent"||A==="innerText")if(this.hasReactiveDeps(Q))this._pushEffect(`${W}.${A} = ${X};`);else this._createLines.push(`${W}.${A} = ${X};`);else if(_7.has(A))if(this.hasReactiveDeps(Q))this._pushEffect(`${W}.toggleAttribute('${A}', !!${X});`);else this._createLines.push(`if (${X}) ${W}.setAttribute('${A}', '');`);else if(this.hasReactiveDeps(Q))if(Array.isArray(Q)&&Q[0]==="presence")this._pushEffect(`{ const __v = ${X}; __v == null ? ${W}.removeAttribute('${A}') : ${W}.setAttribute('${A}', __v); }`);else this._pushEffect(`${W}.setAttribute('${A}', ${X});`);else if(Array.isArray(Q)&&Q[0]==="presence")this._createLines.push(`{ const __v = ${X}; if (__v != null) ${W}.setAttribute('${A}', __v); }`);else this._createLines.push(`${W}.setAttribute('${A}', ${X});`)}}},u.generateTemplateBlock=function(W){if(!Array.isArray(W)||W[0]!=="block")return this.generateNode(W);let Y=W.slice(1);if(Y.length===0){let A=this.newElementVar("empty");return this._createLines.push(`${A} = document.createComment('');`),A}if(Y.length===1)return this.generateNode(Y[0]);let Z=this.newElementVar("frag");this._createLines.push(`${Z} = document.createDocumentFragment();`);let R=[];for(let A of Y){let Q=this.generateNode(A);this._createLines.push(`${Z}.appendChild(${Q});`),R.push(Q)}return this._fragChildren.set(Z,R),Z},u.generateConditional=function(W){this._pendingAutoWire=!1;let[,Y,Z,R]=W,A=this.newElementVar("anchor");this._createLines.push(`${A} = document.createComment('if');`);let Q=this.generateInComponent(Y,"value"),X=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),H=X?`, ${X}`:"",M=this.newBlockVar();this.generateConditionBranch(M,Z);let G=null;if(R)G=this.newBlockVar(),this.generateConditionBranch(G,R);let z=[];z.push(`// Conditional: ${M}${G?" / "+G:""}`),z.push("{"),z.push(` const anchor = ${A};`),z.push(" let currentBlock = null;"),z.push(" let showing = null;");let q=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",O=this._factoryMode?"}));":"});";if(z.push(` ${q}`),z.push(` const show = !!(${Q});`),z.push(` const want = show ? 'then' : ${R?"'else'":"null"};`),z.push(" if (want === showing) return;"),z.push(""),z.push(" if (currentBlock) {"),z.push(" const leaving = currentBlock;"),z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),z.push(" else { leaving.d(true); }"),z.push(" currentBlock = null;"),z.push(" }"),z.push(" showing = want;"),z.push(""),z.push(" if (want === 'then') {"),z.push(` currentBlock = ${M}(${this._self}${H});`),z.push(" currentBlock.c();"),z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(` currentBlock.p(${this._self}${H});`),z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),z.push(" }"),R)z.push(" if (want === 'else') {"),z.push(` currentBlock = ${G}(${this._self}${H});`),z.push(" currentBlock.c();"),z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(` currentBlock.p(${this._self}${H});`),z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),z.push(" }");return z.push(` ${O}`),z.push("}"),this._setupLines.push(z.join(`
|
|
24
|
-
`)),A},u.generateConditionBranch=function(W,Y){let Z=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let R=this.generateTemplateBlock(Y),A=this._createLines,Q=this._setupLines,X=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=Z;let H=this._loopVarStack.map((
|
|
25
|
-
`))},u.generateTemplateLoop=function(W){this._pendingAutoWire=!1;let[Y,Z,R,A,Q,X]=W,H=this.newBlockVar(),M=this.newElementVar("anchor");this._createLines.push(`${M} = document.createComment('for');`);let
|
|
26
|
-
`)),M},u.generateChildComponent=function(W,Y){this._pendingAutoWire=!1;let Z=this.newElementVar("inst"),R=this.newElementVar("el"),{propsCode:A,reactiveProps:Q,eventBindings:X,childrenSetupLines:H}=this.buildComponentProps(Y),M=this._self;this._createLines.push(`{ const __prev = __pushComponent(${M}); try {`),this._createLines.push(`${Z} = new ${W}(${A});`),this._createLines.push(`${R} = ${Z}._root = ${Z}._create();`),this._createLines.push(`(${M}._children || (${M}._children = [])).push(${Z});`),this._createLines.push("} finally { __popComponent(__prev); } }");for(let{event:
|
|
23
|
+
`)},u.generateInComponent=function(W,Y){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return`${this._self}.${W}.value`;if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return`${this._self}.${W}`;if(Array.isArray(W)&&this.reactiveMembers){let Z=this.transformComponentMembers(W);return this.generate(Z,Y)}return this.generate(W,Y)},u.generateRender=function(W,Y,Z,R){throw Error("render blocks can only be used inside a component")},u.generateOffer=function(W,Y,Z,R){throw Error("offer can only be used inside a component")},u.generateAccept=function(W,Y,Z,R){throw Error("accept can only be used inside a component")},u.buildRender=function(W){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let Y=this.is(W,"block")?W.slice(1):[W],Z;if(Y.length===0)Z="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,Z=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{Z=this.newElementVar("frag"),this._createLines.push(`${Z} = document.createDocumentFragment();`);let R=[];for(let A of Y){let Q=this.generateNode(A);this._createLines.push(`${Z}.appendChild(${Q});`),R.push(Q)}this._fragChildren.set(Z,R)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:Z}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(W="el"){let Y=`_${W}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},u.newTextVar=function(){let W=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(W);return this._factoryMode?W:`this.${W}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(W){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${W} }));`);else this._setupLines.push(`__effect(() => { ${W} });`)},u.generateNode=function(W){if(typeof W==="string"||W instanceof String){let X=W.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode(${X});`),q}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode('');`),this._pushEffect(`${q}.data = ${this._self}.${X}.value;`),q}if(X==="slot"&&this.componentMembers){let q=this._self,G=this.newElementVar("slot");return this._createLines.push(`${G} = ${q}.children instanceof Node ? ${q}.children : (${q}.children != null ? document.createTextNode(String(${q}.children)) : document.createComment(''));`),G}let[H,M]=X.split("#"),O=this.newElementVar(),z=H||"div";if(q1.has(z)||this._svgDepth>0)this._createLines.push(`${O} = document.createElementNS('http://www.w3.org/2000/svg', '${z}');`);else this._createLines.push(`${O} = document.createElement('${z}');`);if(M)this._createLines.push(`${O}.id = '${M}';`);return this._bindInheritedTarget(z,O),O}if(!Array.isArray(W)){let X=this.newElementVar("c");return this._createLines.push(`${X} = document.createComment('unknown');`),X}let[Y,...Z]=W,R=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(R&&this.isComponent(R))return this.generateChildComponent(R,Z);if(R==="slot"&&this.componentMembers){let X=this._self,H=this.newElementVar("slot");return this._createLines.push(`${H} = ${X}.children instanceof Node ? ${X}.children : (${X}.children != null ? document.createTextNode(String(${X}.children)) : document.createComment(''));`),H}if(R&&this.isHtmlTag(R)&&!_(Y,"text")){let[X,H]=R.split("#");return this.generateTag(X||"div",[],Z,H)}if(R==="."){let[,X,H]=W;if(X==="this"&&typeof H==="string"){let E=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(H)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${E}.${H}.value;`),J}let P=this.newElementVar("slot");return this._createLines.push(`${P} = ${E}.${H} instanceof Node ? ${E}.${H} : (${E}.${H} != null ? document.createTextNode(String(${E}.${H})) : document.createComment(''));`),P}let{tag:M,classes:O,id:z,base:q}=this.collectTemplateClasses(W);if(!_(q,"text")&&M&&this.isHtmlTag(M))return this.generateTag(M,O,[],z);let G=this.newTextVar(),K=this.generateInComponent(W,"value");return this._createLines.push(`${G} = document.createTextNode(String(${K}));`),G}if(Array.isArray(Y)){if(Array.isArray(Y[0])&&Y[0][0]==="."&&(Y[0][2]==="__clsx"||Y[0][2]instanceof String&&Y[0][2].valueOf()==="__clsx")){let O=Y[0][1],z=Y.slice(1);if(Array.isArray(O)){let{tag:G,classes:K,id:E}=this.collectTemplateClasses(O);if(G){let P=K.map((J)=>`"${J}"`);return this.generateDynamicTag(G,z,Z,P,E)}}let q=typeof O==="string"?O:O.valueOf();return this.generateDynamicTag(q,z,Z)}let{tag:X,classes:H,id:M}=this.collectTemplateClasses(Y);if(X&&this.isHtmlTag(X)){if(H.length>0&&H[H.length-1]==="__clsx"){let z=H.slice(0,-1).map((q)=>`"${q}"`);return this.generateDynamicTag(X,Z,[],z,M)}return this.generateTag(X,H,Z,M)}}if(R==="->"||R==="=>")return this.generateTemplateBlock(Z[1]);if(R==="if")return this.generateConditional(W);if(R==="for"||R==="for-in"||R==="for-of"||R==="for-as")return this.generateTemplateLoop(W);let A=this.newTextVar(),Q=this.generateInComponent(W,"value");if(this.hasReactiveDeps(W))this._createLines.push(`${A} = document.createTextNode('');`),this._pushEffect(`${A}.data = ${Q};`);else this._createLines.push(`${A} = document.createTextNode(String(${Q}));`);return A},u.appendChildren=function(W,Y){for(let Z of Y)if(this.is(Z,"->")||this.is(Z,"=>")){let R=Z[2];if(this.is(R,"block"))for(let A of R.slice(1))if(this.is(A,"object"))this.generateAttributes(W,A);else{let Q=this.generateNode(A);this._createLines.push(`${W}.appendChild(${Q});`)}else if(R){let A=this.generateNode(R);this._createLines.push(`${W}.appendChild(${A});`)}}else if(this.is(Z,"object"))this.generateAttributes(W,Z);else if(typeof Z==="string"||Z instanceof String){let R=Z.valueOf(),A=R.split(/[#.]/)[0];if(this.isHtmlTag(A||"div")||this.isComponent(A)){let Q=this.generateNode(Z);this._createLines.push(`${W}.appendChild(${Q});`)}else{let Q=this.newTextVar();if(R.startsWith('"')||R.startsWith("'")||R.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${R});`);else if(this.reactiveMembers&&this.reactiveMembers.has(R))this._createLines.push(`${Q} = document.createTextNode('');`),this._pushEffect(`${Q}.data = ${this._self}.${R}.value;`);else if(this.componentMembers&&this.componentMembers.has(R))this._createLines.push(`${Q} = document.createTextNode(String(${this._self}.${R}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.generateInComponent(Z,"value")});`);this._createLines.push(`${W}.appendChild(${Q});`)}}else if(Z){let R=this.generateNode(Z);this._createLines.push(`${W}.appendChild(${R});`)}},u._claimAutoWire=function(W){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=W,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(W,Y){if(!Y)return;for(let[Z,R]of this._autoEventHandlers)if(!this._autoWireExplicit.has(Z))this._createLines.push(`${W}.addEventListener('${Z}', (e) => __batch(() => ${this._self}.${R}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(W,Y){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(W!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${Y};`),this._createLines.push("this._applyRestToInheritedEl();")},u.generateTag=function(W,Y,Z,R){let A=this.newElementVar(),Q=q1.has(W)||this._svgDepth>0;if(Q)this._createLines.push(`${A} = document.createElementNS('http://www.w3.org/2000/svg', '${W}');`);else this._createLines.push(`${A} = document.createElement('${W}');`);if(R)this._createLines.push(`${A}.id = '${R}';`);if(this._bindInheritedTarget(W,A),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${A}.setAttribute('data-part', '${this._componentName}');`);let X=this._claimAutoWire(A),H=this._pendingClassArgs,M=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=A;if(W==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(A,Z),W==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(Q)this._createLines.push(`${A}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${A}.className = '${Y.join(" ")}';`);else{let O=this._pendingClassArgs.join(", ");if(Q)this._pushEffect(`${A}.setAttribute('class', __clsx(${O}));`);else this._pushEffect(`${A}.className = __clsx(${O});`)}this._pendingClassArgs=H,this._pendingClassEl=M}return this._emitAutoWire(A,X),A},u.generateDynamicTag=function(W,Y,Z,R,A){let Q=this.newElementVar();if(q1.has(W)||this._svgDepth>0)this._createLines.push(`${Q} = document.createElementNS('http://www.w3.org/2000/svg', '${W}');`);else this._createLines.push(`${Q} = document.createElement('${W}');`);if(A)this._createLines.push(`${Q}.id = '${A}';`);this._bindInheritedTarget(W,Q);let X=this._claimAutoWire(Q),H=[...R||[],...Y.map((z)=>this.generateInComponent(z,"value"))],M=this._pendingClassArgs,O=this._pendingClassEl;if(this._pendingClassArgs=H,this._pendingClassEl=Q,W==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Q,Z),W==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let z=this._pendingClassArgs.join(", ");if(q1.has(W)||this._svgDepth>0)this._pushEffect(`${Q}.setAttribute('class', __clsx(${z}));`);else this._pushEffect(`${Q}.className = __clsx(${z});`)}return this._pendingClassArgs=M,this._pendingClassEl=O,this._emitAutoWire(Q,X),Q},u.generateAttributes=function(W,Y){let Z=W7(Y.slice(1));for(let R=1;R<Y.length;R++){let[A,Q]=Y[R];if(this.is(A,".")&&A[1]==="this"){let X=A[2];if(this._autoWireExplicit&&this._autoWireEl===W)this._autoWireExplicit.add(X);if(typeof Q==="string"&&this.componentMembers?.has(Q))this._createLines.push(`${W}.addEventListener('${X}', (e) => __batch(() => ${this._self}.${Q}(e)));`);else{let H=this.generateInComponent(Q,"value");this._createLines.push(`${W}.addEventListener('${X}', (e) => __batch(() => (${H})(e)));`)}continue}if(typeof A==="string"||A instanceof String){if(A.startsWith('"')&&A.endsWith('"'))A=A.slice(1,-1);if(A==="class"||A==="className"){let H=this.generateInComponent(Q,"value");if(this._pendingClassArgs&&this._pendingClassEl===W)this._pendingClassArgs.push(H);else if(this.hasReactiveDeps(Q))if(this._svgDepth>0)this._pushEffect(`${W}.setAttribute('class', __clsx(${H}));`);else this._pushEffect(`${W}.className = __clsx(${H});`);else if(this._svgDepth>0)this._createLines.push(`${W}.setAttribute('class', ${H});`);else this._createLines.push(`${W}.className = ${H};`);continue}if(A==="__transition__"){let H=String(Q).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${H}";`);continue}if(A==="ref"){let H=String(Q).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${H} = ${W};`);continue}if(A.startsWith("__bind_")&&A.endsWith("__")){let H=A.slice(7,-2),M=this.generateInComponent(Q,"value"),O,z;if(H==="checked")O="change",z="e.target.checked";else O="input",z=Z==="number"||Z==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${W}.${H} = ${M};`);let q=`${M} = ${z}`,G=!this.isSimpleAssignable(Q)&&this.findRootReactiveMember(Q);if(G)q+=`; ${this._self}.${G}.touch?.()`;this._createLines.push(`${W}.addEventListener('${O}', (e) => { ${q}; });`);continue}let X=this.generateInComponent(Q,"value");if((A==="value"||A==="checked")&&this.hasReactiveDeps(Q)){this._pushEffect(`${W}.${A} = ${X};`);continue}if(A==="innerHTML"||A==="textContent"||A==="innerText")if(this.hasReactiveDeps(Q))this._pushEffect(`${W}.${A} = ${X};`);else this._createLines.push(`${W}.${A} = ${X};`);else if(_7.has(A))if(this.hasReactiveDeps(Q))this._pushEffect(`${W}.toggleAttribute('${A}', !!${X});`);else this._createLines.push(`if (${X}) ${W}.setAttribute('${A}', '');`);else if(this.hasReactiveDeps(Q))if(Array.isArray(Q)&&Q[0]==="presence")this._pushEffect(`{ const __v = ${X}; __v == null ? ${W}.removeAttribute('${A}') : ${W}.setAttribute('${A}', __v); }`);else this._pushEffect(`${W}.setAttribute('${A}', ${X});`);else if(Array.isArray(Q)&&Q[0]==="presence")this._createLines.push(`{ const __v = ${X}; if (__v != null) ${W}.setAttribute('${A}', __v); }`);else this._createLines.push(`${W}.setAttribute('${A}', ${X});`)}}},u.generateTemplateBlock=function(W){if(!Array.isArray(W)||W[0]!=="block")return this.generateNode(W);let Y=W.slice(1);if(Y.length===0){let A=this.newElementVar("empty");return this._createLines.push(`${A} = document.createComment('');`),A}if(Y.length===1)return this.generateNode(Y[0]);let Z=this.newElementVar("frag");this._createLines.push(`${Z} = document.createDocumentFragment();`);let R=[];for(let A of Y){let Q=this.generateNode(A);this._createLines.push(`${Z}.appendChild(${Q});`),R.push(Q)}return this._fragChildren.set(Z,R),Z},u.generateConditional=function(W){this._pendingAutoWire=!1;let[,Y,Z,R]=W,A=this.newElementVar("anchor");this._createLines.push(`${A} = document.createComment('if');`);let Q=this.generateInComponent(Y,"value"),X=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),H=X?`, ${X}`:"",M=this.newBlockVar();this.generateConditionBranch(M,Z);let O=null;if(R)O=this.newBlockVar(),this.generateConditionBranch(O,R);let z=[];z.push(`// Conditional: ${M}${O?" / "+O:""}`),z.push("{"),z.push(` const anchor = ${A};`),z.push(" let currentBlock = null;"),z.push(" let showing = null;");let q=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",G=this._factoryMode?"}));":"});";if(z.push(` ${q}`),z.push(` const show = !!(${Q});`),z.push(` const want = show ? 'then' : ${R?"'else'":"null"};`),z.push(" if (want === showing) return;"),z.push(""),z.push(" if (currentBlock) {"),z.push(" const leaving = currentBlock;"),z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),z.push(" else { leaving.d(true); }"),z.push(" currentBlock = null;"),z.push(" }"),z.push(" showing = want;"),z.push(""),z.push(" if (want === 'then') {"),z.push(` currentBlock = ${M}(${this._self}${H});`),z.push(" currentBlock.c();"),z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(` currentBlock.p(${this._self}${H});`),z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),z.push(" }"),R)z.push(" if (want === 'else') {"),z.push(` currentBlock = ${O}(${this._self}${H});`),z.push(" currentBlock.c();"),z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(` currentBlock.p(${this._self}${H});`),z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),z.push(" }");return z.push(` ${G}`),z.push("}"),this._setupLines.push(z.join(`
|
|
24
|
+
`)),A},u.generateConditionBranch=function(W,Y){let Z=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let R=this.generateTemplateBlock(Y),A=this._createLines,Q=this._setupLines,X=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=Z;let H=this._loopVarStack.map((O)=>`${O.itemVar}, ${O.indexVar}`).join(", "),M=H?`, ${H}`:"";this.emitBlockFactory(W,`ctx${M}`,R,A,Q,X)},u.emitBlockFactory=function(W,Y,Z,R,A,Q,X){let H=[];if(H.push(`function ${W}(${Y}) {`),Q.size>0)H.push(` let ${[...Q].join(", ")};`);let M=A.length>0;if(M)H.push(" let disposers = [];");if(H.push(" return {"),X)H.push(" _s: true,");let O=this._fragChildren.get(Z),z=O?O[0]:Z;H.push(" c() {");for(let q of R)H.push(` ${q}`);if(H.push(` this._first = ${z};`),H.push(" },"),H.push(" m(target, anchor) {"),O)for(let q of O)H.push(` if (target) target.insertBefore(${q}, anchor);`);else H.push(` if (target) target.insertBefore(${Z}, anchor);`);if(H.push(" },"),H.push(` p(${Y}) {`),M){H.push(" disposers.forEach(d => d());"),H.push(" disposers = [];");for(let q of A)H.push(` ${q}`)}if(H.push(" },"),H.push(" d(detaching) {"),M)H.push(" disposers.forEach(d => d());");if(O)for(let q of O)H.push(` if (detaching && ${q}) ${q}.remove();`);else H.push(` if (detaching && ${Z}) ${Z}.remove();`);H.push(" }"),H.push(" };"),H.push("}"),this._blockFactories.push(H.join(`
|
|
25
|
+
`))},u.generateTemplateLoop=function(W){this._pendingAutoWire=!1;let[Y,Z,R,A,Q,X]=W,H=this.newBlockVar(),M=this.newElementVar("anchor");this._createLines.push(`${M} = document.createComment('for');`);let O=Array.isArray(Z)?Z:[Z],z=O[0],q=O[1]||null;if(!q){let g=new Set(this._loopVarStack.flatMap((i)=>[i.itemVar,i.indexVar]));g.add(z);for(let i of["i","j","k","l","m","n"])if(!g.has(i)){q=i;break}q=q||`_i${this._loopVarStack.length}`}let G=this.generateInComponent(R,"value"),K=z;if(this.is(X,"block")&&X.length>1){let g=X[1];if(Array.isArray(g))for(let i of g){if(this.is(i,"object"))for(let j=1;j<i.length;j++){let[b,v]=i[j];if(b==="key"){K=this.generate(v,"value");break}}if(K!==z)break}}let E=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let P=this._loopVarStack.map((g)=>`${g.itemVar}, ${g.indexVar}`).join(", "),J=P?`, ${P}`:"";this._loopVarStack.push({itemVar:z,indexVar:q});let D=this.generateTemplateBlock(X);this._loopVarStack.pop();let I=this._createLines,S=this._setupLines,N=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=E;let B=S.length===0,V=`ctx, ${z}, ${q}${J}`;this.emitBlockFactory(H,V,D,I,S,N,B);let L=K!==z?`(${z}, ${q}) => ${K}`:"null",a=P?`, ${P}`:"",T=[];T.push(`// Loop: ${H}`),T.push("{"),T.push(" const __s = { blocks: [], keys: [] };");let h=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",C=this._factoryMode?"}));":"});";return T.push(` ${h}`),T.push(` __reconcile(${M}, __s, ${G}, ${this._self}, ${H}, ${L}${a});`),T.push(` ${C}`),T.push("}"),this._setupLines.push(T.join(`
|
|
26
|
+
`)),M},u.generateChildComponent=function(W,Y){this._pendingAutoWire=!1;let Z=this.newElementVar("inst"),R=this.newElementVar("el"),{propsCode:A,reactiveProps:Q,eventBindings:X,childrenSetupLines:H}=this.buildComponentProps(Y),M=this._self;this._createLines.push(`{ const __prev = __pushComponent(${M}); try {`),this._createLines.push(`${Z} = new ${W}(${A});`),this._createLines.push(`${R} = ${Z}._root = ${Z}._create();`),this._createLines.push(`(${M}._children || (${M}._children = [])).push(${Z});`),this._createLines.push("} finally { __popComponent(__prev); } }");for(let{event:O,value:z}of X){let q=this.generateInComponent(z,"value");this._createLines.push(`${R}.addEventListener('${O}', (e) => __batch(() => (${q})(e)));`)}this._setupLines.push(`try { if (${Z}._setup) ${Z}._setup(); if (${Z}.mounted) ${Z}.mounted(); } catch (__e) { __handleComponentError(__e, ${Z}); }`);for(let{key:O,valueCode:z}of Q)this._pushEffect(`if (${Z}.${O} && typeof ${Z}.${O} === 'object' && 'value' in ${Z}.${O}) ${Z}.${O}.value = ${z}; else if (${Z}._setRestProp) ${Z}._setRestProp('${O}', ${z});`);for(let O of H)this._setupLines.push(O);return R},u.buildComponentProps=function(W){let Y=[],Z=[],R=[],A=null,Q=[],X=(O,z)=>{if(O.startsWith("@")){R.push({event:O.slice(1).split(".")[0],value:z});return}if(this.reactiveMembers&&(typeof z==="string"&&this.reactiveMembers.has(z)||Array.isArray(z)&&z[0]==="."&&z[1]==="this"&&typeof z[2]==="string"&&this.reactiveMembers.has(z[2]))){let G=typeof z==="string"?z:z[2];Y.push(`${O}: ${this._self}.${G}`)}else{let G=this.generateInComponent(z,"value");if(Y.push(`${O}: ${G}`),this.hasReactiveDeps(z))Z.push({key:O,valueCode:G})}},H=(O)=>{for(let z=1;z<O.length;z++){let[q,G]=O[z];if(typeof q==="string")X(q,G);else if(Array.isArray(q)&&q[0]==="."&&q[1]==="this"&&typeof q[2]==="string")R.push({event:q[2],value:G})}};for(let O of W)if(this.is(O,"object"))H(O);else if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let z=O[2];if(z){if(this.is(z,"block")){let q=[];for(let G of z.slice(1))if(this.is(G,"object"))H(G);else q.push(G);z=q.length>0?["block",...q]:null}if(z){let q=this._createLines,G=this._setupLines;this._createLines=[],this._setupLines=[],A=this.generateTemplateBlock(z);let K=this._createLines,E=this._setupLines;this._createLines=q,this._setupLines=G;for(let P of K)this._createLines.push(P);Q.push(...E),Y.push(`children: ${A}`)}}}else if(O&&!A){let z=this.newTextVar(),q=this.generateInComponent(O,"value");if(this.hasReactiveDeps(O)){this._createLines.push(`${z} = document.createTextNode('');`);let G=`${z}.data = ${q};`,K=this._factoryMode?`disposers.push(__effect(() => { ${G} }));`:`__effect(() => { ${G} });`;Q.push(K)}else this._createLines.push(`${z} = document.createTextNode(${q});`);A=z,Y.push(`children: ${A}`)}return{propsCode:Y.length>0?`{ ${Y.join(", ")} }`:"{}",reactiveProps:Z,eventBindings:R,childrenSetupLines:Q}},u.hasReactiveDeps=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(!Array.isArray(W))return!1;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));if(W[0]==="."&&this._rootsAtThis(W[1]))return!0;if(Array.isArray(W[0])&&W[0][0]==="."&&W[0][1]==="this"){let Y=$(W[0][2]);if(Y&&this.componentMembers?.has(Y))return!0}for(let Y of W)if(this.hasReactiveDeps(Y))return!0;return!1},u.isSimpleAssignable=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(Array.isArray(W)&&W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));return!1},u.findRootReactiveMember=function(W){if(typeof W==="string")return this.reactiveMembers?.has(W)?W:null;if(!Array.isArray(W))return null;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return this.reactiveMembers?.has(W[2])?W[2]:null;if(W[0]==="."||W[0]==="[]")return this.findRootReactiveMember(W[1]);return null},u._rootsAtThis=function(W){if(typeof W==="string")return W==="this";if(!Array.isArray(W)||W[0]!==".")return!1;return this._rootsAtThis(W[1])},u.getComponentRuntime=function(){return`
|
|
27
27
|
// ============================================================================
|
|
28
28
|
// Rip Component Runtime
|
|
29
29
|
// ============================================================================
|
|
@@ -315,8 +315,8 @@ if (typeof globalThis !== 'undefined') {
|
|
|
315
315
|
`)){W[W.length-1]+=" "+Q;continue}}W.push(W1(R,U+2,!1))}}return W[W.length-1]+=")",W.join(`
|
|
316
316
|
`)}class $1{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",presence:"generatePresence","?:":"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",offer:"generateOffer",accept:"generateAccept",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(f={}){if(this.options=f,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=f.dataSection,this.sourceMap=f.sourceMap||null,f.reactiveVars)this.reactiveVars=new Set(f.reactiveVars)}compile(f){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(f);let U=this.generate(f);if(this.sourceMap)this.buildMappings();return U}buildMappings(){if(!this._stmtEntries)return;let f=this._preambleLines;for(let U of this._stmtEntries){if(U.loc)this.sourceMap.addMapping(f,0,U.loc.r,U.loc.c);if(U.sexpr&&U.loc)this.recordSubMappings(U.code,U.sexpr,f);f+=U.code.split(`
|
|
317
317
|
`).length}}recordSubMappings(f,U,_){let w=U.loc?U.loc.r:0,u=[];this.collectSubExprs(U,u);for(let{name:$,origLine:F,origCol:W}of u){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Z=new RegExp("\\b"+Y+"\\b","g"),R,A=null,Q=1/0,X=F-w;while((R=Z.exec(f))!==null){let M=f.substring(0,R.index).split(`
|
|
318
|
-
`),
|
|
319
|
-
`))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let W=F.includes("'")&&!F.includes('"')?'"':"'",Y=F.replace(new RegExp(W,"g"),`\\${W}`);return`${W}${Y}${W}`}if(this.reactiveVars?.has(f)&&!this.suppressReactiveUnwrap)return`${f}.value`;return f}if(typeof f==="number")return String(f);if(f===null||f===void 0)return"null";if(!Array.isArray(f))throw Error(`Invalid s-expression: ${JSON.stringify(f)}`);let[_,...w]=f,u=t(_,"await");_=k(_);let $=$1.GENERATORS[_];if($)return this[$](_,w,U,f);if(typeof _==="string"&&!_.startsWith('"')&&!_.startsWith("'")){if($1.NUMBER_START_RE.test(_))return _;if(_==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let R=w.map((A)=>this.unwrap(this.generate(A,"value"))).join(", ");return`super.${this.currentMethodName}(${R})`}if(U==="statement"&&w.length===1){let R=this.findPostfixConditional(w[0]);if(R){let A=this.rebuildWithoutConditional(R),Q=this.generate(_,"value"),X=this.generate(R.condition,"value"),H=this.generate(A,"value"),M=`${Q}(${H})`;return`if (${X}) ${M}`}}let F=u===!0,W=this.generate(_,"value"),Y=w.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),Z=`${W}(${Y})`;return F?`await ${Z}`:Z}if(Array.isArray(_)&&typeof _[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(_[0]))return`(${f.map((Y)=>this.generate(Y,"value")).join(", ")})`}if(Array.isArray(_)){if(_[0]==="."&&(_[2]==="new"||k(_[2])==="new")){let R=_[1],A=this.generate(R,"value"),Q=w.map((H)=>this.unwrap(this.generate(H,"value"))).join(", ");return`new ${Array.isArray(R)?`(${A})`:A}(${Q})`}if(U==="statement"&&w.length===1){let R=this.findPostfixConditional(w[0]);if(R){let A=this.rebuildWithoutConditional(R),Q=this.generate(_,"value"),X=this.generate(R.condition,"value"),H=this.generate(A,"value"),M=`${Q}(${H})`;return`if (${X}) ${M}`}}let F=!1,W;if(_[0]==="."&&t(_[2],"await")===!0){F=!0;let[R,A]=_.slice(1),Q=this.generate(R,"value");W=`${$1.NUMBER_LITERAL_RE.test(Q)||(this.is(R,"object")||this.is(R,"await")||this.is(R,"yield"))?`(${Q})`:Q}.${k(A)}`}else W=this.generate(_,"value");let Y=w.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),Z=`${W}(${Y})`;return F?`await ${Z}`:Z}throw Error(`Unknown s-expression type: ${_}`)}generateProgram(f,U,_,w){let u="",$=[],F=[];for(let X of U){if(!Array.isArray(X)){F.push(X);continue}if(X[0]==="import")$.push(X);else F.push(X)}let W=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],Y=F.map((X,H)=>{let M=F.length===1&&$.length===0,
|
|
318
|
+
`),O=_+M.length-1,z=M[M.length-1].length,q=M.length-1,G=Math.abs(q-X)*1e4+Math.abs(z-W);if(G<Q)Q=G,A={genLine:O,genCol:z}}if(A)this.sourceMap.addMapping(A.genLine,A.genCol,F,W)}}collectSubExprs(f,U){if(!Array.isArray(f))return;if(f.loc){let _=k(f[0]),w=null;if(typeof _==="string"&&/^[=+\-*/%<>!&|?~^]|^\.\.?$|^def$|^class$|^state$|^computed$|^readonly$|^for-/.test(_)){if(typeof f[1]==="string"&&/^[a-zA-Z_$]/.test(f[1]))w=f[1]}else if(_==="."){if(typeof f[2]==="string")w=f[2]}else if(typeof _==="string"&&/^[a-zA-Z_$]/.test(_))w=_;if(w)U.push({name:w,origLine:f.loc.r,origCol:f.loc.c})}for(let _=1;_<f.length;_++)if(Array.isArray(f[_]))this.collectSubExprs(f[_],U)}collectProgramVariables(f){if(!Array.isArray(f))return;let[U,..._]=f;if(U=k(U),Array.isArray(U)){f.forEach((w)=>this.collectProgramVariables(w));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[w]=_,u=k(w)??w;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(U==="readonly"){let[w]=_,u=k(w)??w;if(!this.readonlyVars)this.readonlyVars=new Set;this.readonlyVars.add(u);return}if(U==="component")return;if($1.ASSIGNMENT_OPS.has(U)){let[w,u]=_;if(typeof w==="string"||w instanceof String){let $=k(w);if(!this.reactiveVars?.has($)&&!this.readonlyVars?.has($))this.programVars.add($)}else if(this.is(w,"array"))this.collectVarsFromArray(w,this.programVars);else if(this.is(w,"object"))this.collectVarsFromObject(w,this.programVars);this.collectProgramVariables(u);return}if(U==="def"||U==="->"||U==="=>"||U==="effect")return;if(U==="if"){let[w,u,$]=_;if(this.collectProgramVariables(w),this.collectProgramVariables(u),$)this.collectProgramVariables($);return}if(U==="try"){if(this.collectProgramVariables(_[0]),_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[w,u]=_[1];if(w&&this.is(w,"object"))w.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(w&&this.is(w,"array"))w.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(u)}if(_.length===3)this.collectProgramVariables(_[2]);else if(_.length===2&&(!Array.isArray(_[1])||_[1][0]==="block"))this.collectProgramVariables(_[1]);return}_.forEach((w)=>this.collectProgramVariables(w))}collectFunctionVariables(f){let U=new Set,_=(w)=>{if(!Array.isArray(w))return;let[u,...$]=w;if(u=k(u),Array.isArray(u)){w.forEach((F)=>_(F));return}if($1.ASSIGNMENT_OPS.has(u)){let[F,W]=$;if(typeof F==="string")U.add(F);else if(this.is(F,"array"))this.collectVarsFromArray(F,U);else if(this.is(F,"object"))this.collectVarsFromObject(F,U);_(W);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(_($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[F,W]=$[1];if(F&&this.is(F,"object"))F.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2&&typeof Y[1]==="string")U.add(Y[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((Y)=>{if(typeof Y==="string")U.add(Y)});_(W)}if($.length===3)_($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))_($[1]);return}$.forEach((F)=>_(F))};return _(f),U}generate(f,U="statement"){if(f instanceof String){if(t(f,"await")===!0)return`await ${k(f)}()`;if(t(f,"predicate"))return`(${k(f)} != null)`;if(t(f,"delimiter")==="///"&&t(f,"heregex")){let W=k(f),Y=W.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,Z,R]=Y;return`/${this.processHeregex(Z)}/${R}`}return W}let F=t(f,"quote");if(F){let W=k(f);if(F==='"""'||F==="'''"){let Z=this.extractStringContent(f);return Z=Z.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${Z}\``}if(W[0]===F)return W;let Y=W.slice(1,-1);return`${F}${Y}${F}`}f=k(f)}if(typeof f==="string"){if(f.startsWith('"')||f.startsWith("'")||f.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",f);let F=f.slice(1,-1);if(F.includes(`
|
|
319
|
+
`))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let W=F.includes("'")&&!F.includes('"')?'"':"'",Y=F.replace(new RegExp(W,"g"),`\\${W}`);return`${W}${Y}${W}`}if(this.reactiveVars?.has(f)&&!this.suppressReactiveUnwrap)return`${f}.value`;return f}if(typeof f==="number")return String(f);if(f===null||f===void 0)return"null";if(!Array.isArray(f))throw Error(`Invalid s-expression: ${JSON.stringify(f)}`);let[_,...w]=f,u=t(_,"await");_=k(_);let $=$1.GENERATORS[_];if($)return this[$](_,w,U,f);if(typeof _==="string"&&!_.startsWith('"')&&!_.startsWith("'")){if($1.NUMBER_START_RE.test(_))return _;if(_==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let R=w.map((A)=>this.unwrap(this.generate(A,"value"))).join(", ");return`super.${this.currentMethodName}(${R})`}if(U==="statement"&&w.length===1){let R=this.findPostfixConditional(w[0]);if(R){let A=this.rebuildWithoutConditional(R),Q=this.generate(_,"value"),X=this.generate(R.condition,"value"),H=this.generate(A,"value"),M=`${Q}(${H})`;return`if (${X}) ${M}`}}let F=u===!0,W=this.generate(_,"value"),Y=w.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),Z=`${W}(${Y})`;return F?`await ${Z}`:Z}if(Array.isArray(_)&&typeof _[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(_[0]))return`(${f.map((Y)=>this.generate(Y,"value")).join(", ")})`}if(Array.isArray(_)){if(_[0]==="."&&(_[2]==="new"||k(_[2])==="new")){let R=_[1],A=this.generate(R,"value"),Q=w.map((H)=>this.unwrap(this.generate(H,"value"))).join(", ");return`new ${Array.isArray(R)?`(${A})`:A}(${Q})`}if(U==="statement"&&w.length===1){let R=this.findPostfixConditional(w[0]);if(R){let A=this.rebuildWithoutConditional(R),Q=this.generate(_,"value"),X=this.generate(R.condition,"value"),H=this.generate(A,"value"),M=`${Q}(${H})`;return`if (${X}) ${M}`}}let F=!1,W;if(_[0]==="."&&t(_[2],"await")===!0){F=!0;let[R,A]=_.slice(1),Q=this.generate(R,"value");W=`${$1.NUMBER_LITERAL_RE.test(Q)||(this.is(R,"object")||this.is(R,"await")||this.is(R,"yield"))?`(${Q})`:Q}.${k(A)}`}else W=this.generate(_,"value");let Y=w.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),Z=`${W}(${Y})`;return F?`await ${Z}`:Z}throw Error(`Unknown s-expression type: ${_}`)}generateProgram(f,U,_,w){let u="",$=[],F=[];for(let X of U){if(!Array.isArray(X)){F.push(X);continue}if(X[0]==="import")$.push(X);else F.push(X)}let W=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],Y=F.map((X,H)=>{let M=F.length===1&&$.length===0,O=this.is(X,"object"),z=O&&X.length===2&&Array.isArray(X[1])&&Array.isArray(X[1][1])&&X[1][1][0]==="comprehension",q=this.is(X,"comprehension")||this.is(X,"object-comprehension")||this.is(X,"do-iife"),G=this.programVars.size===0,K=M&&O&&G&&!q&&!z,P=H===F.length-1&&q,J;if(K)J=`(${this.generate(X,"value")})`;else if(P)J=this.generate(X,"value");else J=this.generate(X,"statement");if(J&&!J.endsWith(";")){let I=Array.isArray(X)?X[0]:null;if(!W.includes(I)||!J.endsWith("}"))J+=";"}let D=Array.isArray(X)?X.loc:null;return{code:J,loc:D,sexpr:Array.isArray(X)?X:null}}),Z=Y.map((X)=>X.code).join(`
|
|
320
320
|
`),R=!1;if($.length>0)u+=$.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
|
|
321
321
|
`),R=!0;if(this.programVars.size>0){let X=Array.from(this.programVars).sort().join(", ");if(R)u+=`
|
|
322
322
|
`;u+=`let ${X};
|
|
@@ -349,24 +349,24 @@ _setDataSection();
|
|
|
349
349
|
|
|
350
350
|
function _setDataSection() {
|
|
351
351
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
352
|
-
}`;return u}generateBinaryOp(f,U,_,w){if((f==="+"||f==="-")&&U.length===1)return`(${f}${this.generate(U[0],"value")})`;let[u,$]=U;if(f==="*"){let W=u?.valueOf?.()??u;if(typeof W==="string"&&/^["']/.test(W))return`${this.generate(u,"value")}.repeat(${this.generate($,"value")})`}let F=new Set(["<",">","<=",">="]);if(F.has(f)&&Array.isArray(u)){let W=u[0]?.valueOf?.()??u[0];if(F.has(W)){let Y=this.generate(u[1],"value"),Z=this.generate(u[2],"value"),R=this.generate($,"value");return`((${Y} ${W} ${Z}) && (${Z} ${f} ${R}))`}}if(f==="!?"){let W=this.generate(u,"value"),Y=this.generate($,"value");return`(${W} !== undefined ? ${W} : ${Y})`}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.generate(u,"value")} ${f} ${this.generate($,"value")})`}generateModulo(f,U){let[_,w]=U;return this.helpers.add("modulo"),`modulo(${this.generate(_,"value")}, ${this.generate(w,"value")})`}generateModuloAssign(f,U){let[_,w]=U;this.helpers.add("modulo");let u=this.generate(_,"value"),$=this.generate(w,"value");return`${u} = modulo(${u}, ${$})`}generateFloorDiv(f,U){let[_,w]=U;return`Math.floor(${this.generate(_,"value")} / ${this.generate(w,"value")})`}generateFloorDivAssign(f,U){let[_,w]=U,u=this.generate(_,"value"),$=this.generate(w,"value");return`${u} = Math.floor(${u} / ${$})`}generateAssignment(f,U,_,w){let[u,$]=U,F=f==="?="?"??=":f,W=this._findOptionalInTarget(u);if(W){let z=this.generate(W.guard,"value"),q=this.generate(W.rewritten,"value"),O=this.generate($,"value");if(_==="value")return`(${z} != null ? (${q} ${F} ${O}) : undefined)`;return`if (${z} != null) ${q} ${F} ${O}`}let Y=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(u instanceof String&&t(u,"await")!==void 0&&!Y){let z=t(u,"await")===!0?"!":"&";throw Error(`Cannot use ${z} sigil in variable declaration '${k(u)}'.`)}if(u instanceof String&&t(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let Z=this.is(u,"array",0),R=this.is(u,"object",0);if(Z||R){let z=this.generate($,"value");return R&&_==="statement"?`(${z})`:z}if(Array.isArray($)&&F==="="&&$[0]==="control"){let[,z,q,O]=$,K=k(z),E=O[0]==="return",P=this.generate(u,"value"),J=this.generate(q,"value"),D=O.length>1?O[1]:null,I=E?D?`return ${this.generate(D,"value")}`:"return":D?`throw ${this.generate(D,"value")}`:"throw new Error()";if(_==="value"){if(K==="??")return`(() => { const __v = ${J}; if (__v == null) ${I}; return (${P} = __v); })()`;if(K==="||")return`(() => { const __v = ${J}; if (!__v) ${I}; return (${P} = __v); })()`;return`(() => { const __v = ${J}; if (__v) ${I}; return (${P} = __v); })()`}if(K==="??")return`if ((${P} = ${J}) == null) ${I}`;if(K==="||")return`if (!(${P} = ${J})) ${I}`;return`if ((${P} = ${J})) ${I}`}if(this.is(u,"array")){let z=u.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(z!==-1&&z<u.length-2){let q=u.slice(1),O=q.slice(z+1),K=O.length;if(K>0){let E=this.generate($,"value"),J=q.slice(0,z).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),D=O.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),q.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 I=q[z],S=this.is(I,"...")?I[1]:null,N=[];if(J)N.push(`[${J}] = ${E}`);if(S)N.push(`[...${S}] = ${E}.slice(${z}, -${K})`);return N.push(`[${D}] = slice.call(${E}, -${K})`),N.join(", ")}}}if(_==="statement"&&f==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[z,q,O]=$;if(this.is(O,"if")&&O.length===3){let[,K,E]=O,P=Array.isArray(E)&&E.length===1?E[0]:E,J=[z,q,P],D=this.generate(u,"value"),I=this.generate(K,"value"),S=this.generate(J,"value");return`if (${I}) ${D} = ${S}`}}if(_==="statement"&&f==="="&&Array.isArray($)&&$.length===3){let[z,q,O]=$,K=Array.isArray(O)&&O.length===1&&(!Array.isArray(O[0])||O[0][0]!=="block");if(z==="if"&&K){let E=Array.isArray(O)&&O.length===1?O[0]:O,P=this.generate(u,"value"),J=this.unwrapLogical(this.generate(q,"value")),D=this.generate(E,"value");return`if (${J}) ${P} = ${D}`}}let A;if(u instanceof String&&t(u,"await")!==void 0)A=k(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))A=`${u}.value`;else A=this.generate(u,"value");let Q=this._componentName;if(this.is($,"component")&&(typeof u==="string"||u instanceof String))this._componentName=k(u);let X=this.generate($,"value");if(this._componentName=Q,!this.is($,"object"))X=this.unwrap(X);let M=_==="value",G=_==="statement"&&this.is(u,"object");if(M||G)return`(${A} ${F} ${X})`;return`${A} ${F} ${X}`}generatePropertyAccess(f,U,_,w){let[u,$]=U;if(this._atParamMap&&u==="this"){let Z=this._atParamMap.get(k($));if(Z)return Z}let F=this.generate(u,"value"),Y=$1.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${F})`:F;if(t($,"await")===!0)return`await ${Y}.${k($)}()`;if(t($,"predicate"))return`(${Y}.${k($)} != null)`;return`${Y}.${k($)}`}generateOptionalProperty(f,U){let[_,w]=U;return`${this.generate(_,"value")}?.${w}`}generateRegexIndex(f,U){let[_,w,u]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(_,"value"),F=this.generate(w,"value"),W=u!==null?this.generate(u,"value"):"0",Y=F.includes("/m")?", true":"";return`(_ = toMatchable(${$}${Y}).match(${F})) && _[${W}]`}generateIndexAccess(f,U){let[_,w]=U;if(this.is(w,"..")||this.is(w,"...")){let u=w[0]==="..",$=this.generate(_,"value"),[F,W]=w.slice(1),Y=(Q)=>{if(Q===null)return null;let X=k(Q)??Q;if(typeof X==="number")return X;if(typeof X==="string"&&/^\d+$/.test(X))return+X;if(Array.isArray(Q)&&Q[0]==="-"&&Q.length===2){let H=k(Q[1])??Q[1];if(typeof H==="number")return-H;if(typeof H==="string"&&/^\d+$/.test(H))return-H}return null},Z=(Q,X,H)=>{let M=Y(H);if(M!==null&&M!==-1)return`${$}.slice(${Q}, ${M+1})`;return`${$}.slice(${Q}, +${X} + 1 || 9e9)`};if(F===null&&W===null)return`${$}.slice()`;if(F===null){if(u&&this.is(W,"-",1)&&(k(W[1])??W[1])==1)return`${$}.slice(0)`;let Q=this.generate(W,"value");return u?Z("0",Q,W):`${$}.slice(0, ${Q})`}if(W===null)return`${$}.slice(${this.generate(F,"value")})`;let R=this.generate(F,"value");if(u&&this.is(W,"-",1)&&(k(W[1])??W[1])==1)return`${$}.slice(${R})`;let A=this.generate(W,"value");return u?Z(R,A,W):`${$}.slice(${R}, ${A})`}if(this.is(w,"-",1)){let u=k(w[1])??w[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}.at(-${u})`}return`${this.generate(_,"value")}[${this.unwrap(this.generate(w,"value"))}]`}generateOptIndex(f,U){let[_,w]=U;if(this.is(w,"-",1)){let u=k(w[1])??w[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}?.at(-${u})`}return`${this.generate(_,"value")}?.[${this.generate(w,"value")}]`}generateOptCall(f,U){let[_,...w]=U;return`${this.generate(_,"value")}?.(${w.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef(f,U,_,w){let[u,$,F]=U,W=t(u,"await")===!0,Y=k(u),Z=this.generateParamList($),R=this.generateFunctionBody(F,$,W),A=this.containsAwait(F),Q=this.containsYield(F);return`${A?"async ":""}function${Q?"*":""} ${Y}(${Z}) ${R}`}generateThinArrow(f,U,_,w){let[u,$]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let W=this.generateParamList(u),Y=this.generateFunctionBody($,u,F),Z=this.containsAwait($),R=this.containsYield($),A=`${Z?"async ":""}function${R?"*":""}(${W}) ${Y}`;return _==="value"?`(${A})`:A}generateFatArrow(f,U,_,w){let[u,$]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let W=this.generateParamList(u),Z=u.length===1&&typeof u[0]==="string"&&!W.includes("=")&&!W.includes("...")&&!W.includes("[")&&!W.includes("{")?W:`(${W})`,A=this.containsAwait($)?"async ":"";if(!F){if(this.is($,"block")&&$.length===2){let X=$[1];if(!Array.isArray(X)||X[0]!=="return"){let H=this.generate(X,"value");if(H[0]==="{")H=`(${H})`;return`${A}${Z} => ${H}`}}if(!Array.isArray($)||$[0]!=="block"){let X=this.generate($,"value");if(X[0]==="{")X=`(${X})`;return`${A}${Z} => ${X}`}}let Q=this.generateFunctionBody($,u,F);return`${A}${Z} => ${Q}`}generateReturn(f,U,_,w){if(U.length===0)return"return";let[u]=U;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))throw Error("Cannot return a value from a void function (declared with !)");if(this.is(u,"if")){let[,$,F,...W]=u;if(W.length===0){let Y=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate($,"value")}) return ${this.generate(Y,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,$,F]=u[1],W=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate($,"value")}) return ${this.generate(["new",W],"value")}`}return`return ${this.generate(u,"value")}`}generateState(f,U){let[_,w]=U;this.usesReactivity=!0;let u=k(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(w,"value")})`}generateComputed(f,U){let[_,w]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=k(_)??_;if(this.reactiveVars.add(u),this.is(w,"block")&&w.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(w)})`;return`const ${u} = __computed(() => ${this.generate(w,"value")})`}generateReadonly(f,U){let[_,w]=U;return`const ${k(_)??_} = ${this.generate(w,"value")}`}generateEffect(f,U){let[_,w]=U;this.usesReactivity=!0;let u;if(this.is(w,"block"))u=this.generateFunctionBody(w);else if(this.is(w,"->")||this.is(w,"=>")){let F=this.generate(w,"value");if(_)return`const ${k(_)??this.generate(_,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(w,"value")}; }`;let $=`__effect(() => ${u})`;if(_)return`const ${k(_)??this.generate(_,"value")} = ${$}`;return $}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(f,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined(f,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence(f,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary(f,U,_){let[w,u,$]=U;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let W=this.generate(u[1],"value"),Y=this.generate(u[2],"value"),Z=this.generate($,"value");return`${W} = (${this.unwrap(this.generate(w,"value"))} ? ${Y} : ${Z})`}return`(${this.unwrap(this.generate(w,"value"))} ? ${this.generate(u,"value")} : ${this.generate($,"value")})`}generatePipe(f,U){let[_,w]=U,u=this.generate(_,"value");if(Array.isArray(w)&&w.length>1){let $=w[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let W=this.generate($,"value"),Y=w.slice(1).map((Z)=>this.generate(Z,"value"));return`${W}(${u}, ${Y.join(", ")})`}}return`${this.generate(w,"value")}(${u})`}generateLoop(f,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN(f,U){let[_,w]=U;return`for (let it = 0; it < ${this.generate(_,"value")}; it++) ${this.generateLoopBody(w)}`}generateAwait(f,U){return`await ${this.generate(U[0],"value")}`}generateYield(f,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom(f,U){return`yield* ${this.generate(U[0],"value")}`}generateIf(f,U,_,w){let[u,$,...F]=U;return _==="value"?this.generateIfAsExpression(u,$,F):this.generateIfAsStatement(u,$,F)}generateForIn(f,U,_,w){let[u,$,F,W,Y]=U;if(_==="value"&&this.comprehensionDepth===0){let G=["for-in",u,$,F];return this.generate(["comprehension",Y,[G],W?[W]:[]],_)}let Z=Array.isArray(u)?u:[u],R=Z.length===0,[A,Q]=R?["_i",null]:Z,X=this.is(A,"array")||this.is(A,"object")?this.generateDestructuringPattern(A):A;if(F&&F!==null){let G=this.generate($,"value"),z=Q||"_i",q=this.generate(F,"value"),O=this.is(F,"-",1),K=O&&(F[1]==="1"||F[1]===1||k(F[1])==="1"),E=!O&&(F==="1"||F===1||k(F)==="1"),P;if(K)P=`for (let ${z} = ${G}.length - 1; ${z} >= 0; ${z}--) `;else if(E)P=`for (let ${z} = 0; ${z} < ${G}.length; ${z}++) `;else if(O)P=`for (let ${z} = ${G}.length - 1; ${z} >= 0; ${z} += ${q}) `;else P=`for (let ${z} = 0; ${z} < ${G}.length; ${z} += ${q}) `;if(this.is(Y,"block")){let J=Y.slice(1);this.indentLevel++;let D=[];if(!R)D.push(`const ${X} = ${G}[${z}];`);if(W)D.push(`if (${this.generate(W,"value")}) {`),this.indentLevel++,D.push(...this.formatStatements(J)),this.indentLevel--,D.push(this.indent()+"}");else D.push(...J.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,P+`{
|
|
352
|
+
}`;return u}generateBinaryOp(f,U,_,w){if((f==="+"||f==="-")&&U.length===1)return`(${f}${this.generate(U[0],"value")})`;let[u,$]=U;if(f==="*"){let W=u?.valueOf?.()??u;if(typeof W==="string"&&/^["']/.test(W))return`${this.generate(u,"value")}.repeat(${this.generate($,"value")})`}let F=new Set(["<",">","<=",">="]);if(F.has(f)&&Array.isArray(u)){let W=u[0]?.valueOf?.()??u[0];if(F.has(W)){let Y=this.generate(u[1],"value"),Z=this.generate(u[2],"value"),R=this.generate($,"value");return`((${Y} ${W} ${Z}) && (${Z} ${f} ${R}))`}}if(f==="!?"){let W=this.generate(u,"value"),Y=this.generate($,"value");return`(${W} !== undefined ? ${W} : ${Y})`}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.generate(u,"value")} ${f} ${this.generate($,"value")})`}generateModulo(f,U){let[_,w]=U;return this.helpers.add("modulo"),`modulo(${this.generate(_,"value")}, ${this.generate(w,"value")})`}generateModuloAssign(f,U){let[_,w]=U;this.helpers.add("modulo");let u=this.generate(_,"value"),$=this.generate(w,"value");return`${u} = modulo(${u}, ${$})`}generateFloorDiv(f,U){let[_,w]=U;return`Math.floor(${this.generate(_,"value")} / ${this.generate(w,"value")})`}generateFloorDivAssign(f,U){let[_,w]=U,u=this.generate(_,"value"),$=this.generate(w,"value");return`${u} = Math.floor(${u} / ${$})`}generateAssignment(f,U,_,w){let[u,$]=U,F=f==="?="?"??=":f,W=this._findOptionalInTarget(u);if(W){let z=this.generate(W.guard,"value"),q=this.generate(W.rewritten,"value"),G=this.generate($,"value");if(_==="value")return`(${z} != null ? (${q} ${F} ${G}) : undefined)`;return`if (${z} != null) ${q} ${F} ${G}`}let Y=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(u instanceof String&&t(u,"await")!==void 0&&!Y){let z=t(u,"await")===!0?"!":"&";throw Error(`Cannot use ${z} sigil in variable declaration '${k(u)}'.`)}if(u instanceof String&&t(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let Z=this.is(u,"array",0),R=this.is(u,"object",0);if(Z||R){let z=this.generate($,"value");return R&&_==="statement"?`(${z})`:z}if(Array.isArray($)&&F==="="&&$[0]==="control"){let[,z,q,G]=$,K=k(z),E=G[0]==="return",P=this.generate(u,"value"),J=this.generate(q,"value"),D=G.length>1?G[1]:null,I=E?D?`return ${this.generate(D,"value")}`:"return":D?`throw ${this.generate(D,"value")}`:"throw new Error()";if(_==="value"){if(K==="??")return`(() => { const __v = ${J}; if (__v == null) ${I}; return (${P} = __v); })()`;if(K==="||")return`(() => { const __v = ${J}; if (!__v) ${I}; return (${P} = __v); })()`;return`(() => { const __v = ${J}; if (__v) ${I}; return (${P} = __v); })()`}if(K==="??")return`if ((${P} = ${J}) == null) ${I}`;if(K==="||")return`if (!(${P} = ${J})) ${I}`;return`if ((${P} = ${J})) ${I}`}if(this.is(u,"array")){let z=u.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(z!==-1&&z<u.length-2){let q=u.slice(1),G=q.slice(z+1),K=G.length;if(K>0){let E=this.generate($,"value"),J=q.slice(0,z).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),D=G.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),q.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 I=q[z],S=this.is(I,"...")?I[1]:null,N=[];if(J)N.push(`[${J}] = ${E}`);if(S)N.push(`[...${S}] = ${E}.slice(${z}, -${K})`);return N.push(`[${D}] = slice.call(${E}, -${K})`),N.join(", ")}}}if(_==="statement"&&f==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[z,q,G]=$;if(this.is(G,"if")&&G.length===3){let[,K,E]=G,P=Array.isArray(E)&&E.length===1?E[0]:E,J=[z,q,P],D=this.generate(u,"value"),I=this.generate(K,"value"),S=this.generate(J,"value");return`if (${I}) ${D} = ${S}`}}if(_==="statement"&&f==="="&&Array.isArray($)&&$.length===3){let[z,q,G]=$,K=Array.isArray(G)&&G.length===1&&(!Array.isArray(G[0])||G[0][0]!=="block");if(z==="if"&&K){let E=Array.isArray(G)&&G.length===1?G[0]:G,P=this.generate(u,"value"),J=this.unwrapLogical(this.generate(q,"value")),D=this.generate(E,"value");return`if (${J}) ${P} = ${D}`}}let A;if(u instanceof String&&t(u,"await")!==void 0)A=k(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))A=`${u}.value`;else A=this.generate(u,"value");let Q=this._componentName;if(this.is($,"component")&&(typeof u==="string"||u instanceof String))this._componentName=k(u);let X=this.generate($,"value");if(this._componentName=Q,!this.is($,"object"))X=this.unwrap(X);let M=_==="value",O=_==="statement"&&this.is(u,"object");if(M||O)return`(${A} ${F} ${X})`;return`${A} ${F} ${X}`}generatePropertyAccess(f,U,_,w){let[u,$]=U;if(this._atParamMap&&u==="this"){let Z=this._atParamMap.get(k($));if(Z)return Z}let F=this.generate(u,"value"),Y=$1.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${F})`:F;if(t($,"await")===!0)return`await ${Y}.${k($)}()`;if(t($,"predicate"))return`(${Y}.${k($)} != null)`;return`${Y}.${k($)}`}generateOptionalProperty(f,U){let[_,w]=U;return`${this.generate(_,"value")}?.${w}`}generateRegexIndex(f,U){let[_,w,u]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(_,"value"),F=this.generate(w,"value"),W=u!==null?this.generate(u,"value"):"0",Y=F.includes("/m")?", true":"";return`(_ = toMatchable(${$}${Y}).match(${F})) && _[${W}]`}generateIndexAccess(f,U){let[_,w]=U;if(this.is(w,"..")||this.is(w,"...")){let u=w[0]==="..",$=this.generate(_,"value"),[F,W]=w.slice(1),Y=(Q)=>{if(Q===null)return null;let X=k(Q)??Q;if(typeof X==="number")return X;if(typeof X==="string"&&/^\d+$/.test(X))return+X;if(Array.isArray(Q)&&Q[0]==="-"&&Q.length===2){let H=k(Q[1])??Q[1];if(typeof H==="number")return-H;if(typeof H==="string"&&/^\d+$/.test(H))return-H}return null},Z=(Q,X,H)=>{let M=Y(H);if(M!==null&&M!==-1)return`${$}.slice(${Q}, ${M+1})`;return`${$}.slice(${Q}, +${X} + 1 || 9e9)`};if(F===null&&W===null)return`${$}.slice()`;if(F===null){if(u&&this.is(W,"-",1)&&(k(W[1])??W[1])==1)return`${$}.slice(0)`;let Q=this.generate(W,"value");return u?Z("0",Q,W):`${$}.slice(0, ${Q})`}if(W===null)return`${$}.slice(${this.generate(F,"value")})`;let R=this.generate(F,"value");if(u&&this.is(W,"-",1)&&(k(W[1])??W[1])==1)return`${$}.slice(${R})`;let A=this.generate(W,"value");return u?Z(R,A,W):`${$}.slice(${R}, ${A})`}if(this.is(w,"-",1)){let u=k(w[1])??w[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}.at(-${u})`}return`${this.generate(_,"value")}[${this.unwrap(this.generate(w,"value"))}]`}generateOptIndex(f,U){let[_,w]=U;if(this.is(w,"-",1)){let u=k(w[1])??w[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}?.at(-${u})`}return`${this.generate(_,"value")}?.[${this.generate(w,"value")}]`}generateOptCall(f,U){let[_,...w]=U;return`${this.generate(_,"value")}?.(${w.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef(f,U,_,w){let[u,$,F]=U,W=t(u,"await")===!0,Y=k(u),Z=this.generateParamList($),R=this.generateFunctionBody(F,$,W),A=this.containsAwait(F),Q=this.containsYield(F);return`${A?"async ":""}function${Q?"*":""} ${Y}(${Z}) ${R}`}generateThinArrow(f,U,_,w){let[u,$]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let W=this.generateParamList(u),Y=this.generateFunctionBody($,u,F),Z=this.containsAwait($),R=this.containsYield($),A=`${Z?"async ":""}function${R?"*":""}(${W}) ${Y}`;return _==="value"?`(${A})`:A}generateFatArrow(f,U,_,w){let[u,$]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let W=this.generateParamList(u),Z=u.length===1&&typeof u[0]==="string"&&!W.includes("=")&&!W.includes("...")&&!W.includes("[")&&!W.includes("{")?W:`(${W})`,A=this.containsAwait($)?"async ":"",Q=new Set(["def","class","if","for-in","for-of","for-as","while","until","loop","switch","try","unless"]);if(!F){if(this.is($,"block")&&$.length===2){let H=$[1],M=Array.isArray(H)?H[0]:null;if(M!=="return"&&!Q.has(M)){let O=this.generate(H,"value");if(O[0]==="{")O=`(${O})`;return`${A}${Z} => ${O}`}}if(!Array.isArray($)||$[0]!=="block"){let H=this.generate($,"value");if(H[0]==="{")H=`(${H})`;return`${A}${Z} => ${H}`}}let X=this.generateFunctionBody($,u,F);return`${A}${Z} => ${X}`}generateReturn(f,U,_,w){if(U.length===0)return"return";let[u]=U;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))throw Error("Cannot return a value from a void function (declared with !)");if(this.is(u,"if")){let[,$,F,...W]=u;if(W.length===0){let Y=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate($,"value")}) return ${this.generate(Y,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,$,F]=u[1],W=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate($,"value")}) return ${this.generate(["new",W],"value")}`}return`return ${this.generate(u,"value")}`}generateState(f,U){let[_,w]=U;this.usesReactivity=!0;let u=k(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(w,"value")})`}generateComputed(f,U){let[_,w]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=k(_)??_;if(this.reactiveVars.add(u),this.is(w,"block")&&w.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(w)})`;return`const ${u} = __computed(() => ${this.generate(w,"value")})`}generateReadonly(f,U){let[_,w]=U;return`const ${k(_)??_} = ${this.generate(w,"value")}`}generateEffect(f,U){let[_,w]=U;this.usesReactivity=!0;let u;if(this.is(w,"block"))u=this.generateFunctionBody(w);else if(this.is(w,"->")||this.is(w,"=>")){let F=this.generate(w,"value");if(_)return`const ${k(_)??this.generate(_,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(w,"value")}; }`;let $=`__effect(() => ${u})`;if(_)return`const ${k(_)??this.generate(_,"value")} = ${$}`;return $}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(f,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined(f,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence(f,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary(f,U,_){let[w,u,$]=U;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let W=this.generate(u[1],"value"),Y=this.generate(u[2],"value"),Z=this.generate($,"value");return`${W} = (${this.unwrap(this.generate(w,"value"))} ? ${Y} : ${Z})`}return`(${this.unwrap(this.generate(w,"value"))} ? ${this.generate(u,"value")} : ${this.generate($,"value")})`}generatePipe(f,U){let[_,w]=U,u=this.generate(_,"value");if(Array.isArray(w)&&w.length>1){let $=w[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let W=this.generate($,"value"),Y=w.slice(1).map((Z)=>this.generate(Z,"value"));return`${W}(${u}, ${Y.join(", ")})`}}return`${this.generate(w,"value")}(${u})`}generateLoop(f,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN(f,U){let[_,w]=U;return`for (let it = 0; it < ${this.generate(_,"value")}; it++) ${this.generateLoopBody(w)}`}generateAwait(f,U){return`await ${this.generate(U[0],"value")}`}generateYield(f,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom(f,U){return`yield* ${this.generate(U[0],"value")}`}generateIf(f,U,_,w){let[u,$,...F]=U;return _==="value"?this.generateIfAsExpression(u,$,F):this.generateIfAsStatement(u,$,F)}generateForIn(f,U,_,w){let[u,$,F,W,Y]=U;if(_==="value"&&this.comprehensionDepth===0){let O=["for-in",u,$,F];return this.generate(["comprehension",Y,[O],W?[W]:[]],_)}let Z=Array.isArray(u)?u:[u],R=Z.length===0,[A,Q]=R?["_i",null]:Z,X=this.is(A,"array")||this.is(A,"object")?this.generateDestructuringPattern(A):A;if(F&&F!==null){let O=this.generate($,"value"),z=Q||"_i",q=this.generate(F,"value"),G=this.is(F,"-",1),K=G&&(F[1]==="1"||F[1]===1||k(F[1])==="1"),E=!G&&(F==="1"||F===1||k(F)==="1"),P;if(K)P=`for (let ${z} = ${O}.length - 1; ${z} >= 0; ${z}--) `;else if(E)P=`for (let ${z} = 0; ${z} < ${O}.length; ${z}++) `;else if(G)P=`for (let ${z} = ${O}.length - 1; ${z} >= 0; ${z} += ${q}) `;else P=`for (let ${z} = 0; ${z} < ${O}.length; ${z} += ${q}) `;if(this.is(Y,"block")){let J=Y.slice(1);this.indentLevel++;let D=[];if(!R)D.push(`const ${X} = ${O}[${z}];`);if(W)D.push(`if (${this.generate(W,"value")}) {`),this.indentLevel++,D.push(...this.formatStatements(J)),this.indentLevel--,D.push(this.indent()+"}");else D.push(...J.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,P+`{
|
|
353
353
|
${D.map((I)=>this.indent()+I).join(`
|
|
354
354
|
`)}
|
|
355
|
-
${this.indent()}}`}if(R)return W?P+`{ if (${this.generate(W,"value")}) ${this.generate(Y,"statement")}; }`:P+`{ ${this.generate(Y,"statement")}; }`;return W?P+`{ const ${X} = ${
|
|
356
|
-
`,this.indentLevel++,z+=this.indent()+`const ${X} = ${
|
|
355
|
+
${this.indent()}}`}if(R)return W?P+`{ if (${this.generate(W,"value")}) ${this.generate(Y,"statement")}; }`:P+`{ ${this.generate(Y,"statement")}; }`;return W?P+`{ const ${X} = ${O}[${z}]; if (${this.generate(W,"value")}) ${this.generate(Y,"statement")}; }`:P+`{ const ${X} = ${O}[${z}]; ${this.generate(Y,"statement")}; }`}if(Q){let O=this.generate($,"value"),z=`for (let ${Q} = 0; ${Q} < ${O}.length; ${Q}++) `;if(this.is(Y,"block")){if(z+=`{
|
|
356
|
+
`,this.indentLevel++,z+=this.indent()+`const ${X} = ${O}[${Q}];
|
|
357
357
|
`,W)z+=this.indent()+`if (${this.unwrap(this.generate(W,"value"))}) {
|
|
358
358
|
`,this.indentLevel++,z+=this.formatStatements(Y.slice(1)).join(`
|
|
359
359
|
`)+`
|
|
360
360
|
`,this.indentLevel--,z+=this.indent()+`}
|
|
361
361
|
`;else z+=this.formatStatements(Y.slice(1)).join(`
|
|
362
362
|
`)+`
|
|
363
|
-
`;this.indentLevel--,z+=this.indent()+"}"}else z+=W?`{ const ${X} = ${
|
|
363
|
+
`;this.indentLevel--,z+=this.indent()+"}"}else z+=W?`{ const ${X} = ${O}[${Q}]; if (${this.unwrap(this.generate(W,"value"))}) ${this.generate(Y,"statement")}; }`:`{ const ${X} = ${O}[${Q}]; ${this.generate(Y,"statement")}; }`;return z}let H=Array.isArray($)&&$[0];if(H instanceof String)H=k(H);if(H===".."||H==="..."){let O=H==="...",[z,q]=$.slice(1),G=(K)=>typeof K==="number"||typeof K==="string"&&!K.includes("(")||K instanceof String&&!k(K).includes("(")||this.is(K,".");if(G(z)&&G(q)){let K=this.generate(z,"value"),E=this.generate(q,"value"),P=O?"<":"<=",J=F?`${X} += ${this.generate(F,"value")}`:`${X}++`,D=`for (let ${X} = ${K}; ${X} ${P} ${E}; ${J}) `;return D+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),D}}let M=`for (const ${X} of ${this.generate($,"value")}) `;return M+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),M}generateForOf(f,U,_,w){let[u,$,F,W,Y]=U;if(_==="value"&&this.comprehensionDepth===0){let X=["for-of",u,$,F];return this.generate(["comprehension",Y,[X],W?[W]:[]],_)}let[Z,R]=Array.isArray(u)?u:[u],A=this.generate($,"value"),Q=`for (const ${Z} in ${A}) `;if(F&&!R&&!W){if(this.is(Y,"block")){this.indentLevel++;let X=[`if (!Object.hasOwn(${A}, ${Z})) continue;`,...Y.slice(1).map((H)=>this.addSemicolon(H,this.generate(H,"statement")))];return this.indentLevel--,Q+`{
|
|
364
364
|
${X.map((H)=>this.indent()+H).join(`
|
|
365
365
|
`)}
|
|
366
|
-
${this.indent()}}`}return Q+`{ if (!Object.hasOwn(${A}, ${Z})) continue; ${this.generate(Y,"statement")}; }`}if(R){if(this.is(Y,"block")){let H=Y.slice(1);this.indentLevel++;let M=[];if(F)M.push(`if (!Object.hasOwn(${A}, ${Z})) continue;`);if(M.push(`const ${R} = ${A}[${Z}];`),W)M.push(`if (${this.generate(W,"value")}) {`),this.indentLevel++,M.push(...H.map((
|
|
367
|
-
${M.map((
|
|
366
|
+
${this.indent()}}`}return Q+`{ if (!Object.hasOwn(${A}, ${Z})) continue; ${this.generate(Y,"statement")}; }`}if(R){if(this.is(Y,"block")){let H=Y.slice(1);this.indentLevel++;let M=[];if(F)M.push(`if (!Object.hasOwn(${A}, ${Z})) continue;`);if(M.push(`const ${R} = ${A}[${Z}];`),W)M.push(`if (${this.generate(W,"value")}) {`),this.indentLevel++,M.push(...H.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))),this.indentLevel--,M.push(this.indent()+"}");else M.push(...H.map((O)=>this.addSemicolon(O,this.generate(O,"statement"))));return this.indentLevel--,Q+`{
|
|
367
|
+
${M.map((O)=>this.indent()+O).join(`
|
|
368
368
|
`)}
|
|
369
|
-
${this.indent()}}`}let X="";if(F)X+=`if (!Object.hasOwn(${A}, ${Z})) continue; `;if(X+=`const ${R} = ${A}[${Z}]; `,W)X+=`if (${this.generate(W,"value")}) `;return X+=`${this.generate(Y,"statement")};`,Q+`{ ${X} }`}return Q+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),Q}generateForAs(f,U,_,w){let u=Array.isArray(U[0])?U[0]:[U[0]],[$]=u,F=U[1],W=U[2],Y=U[3],Z=U[4],R=!1,A=[];if(this.is($,"array")){let
|
|
369
|
+
${this.indent()}}`}let X="";if(F)X+=`if (!Object.hasOwn(${A}, ${Z})) continue; `;if(X+=`const ${R} = ${A}[${Z}]; `,W)X+=`if (${this.generate(W,"value")}) `;return X+=`${this.generate(Y,"statement")};`,Q+`{ ${X} }`}return Q+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),Q}generateForAs(f,U,_,w){let u=Array.isArray(U[0])?U[0]:[U[0]],[$]=u,F=U[1],W=U[2],Y=U[3],Z=U[4],R=!1,A=[];if(this.is($,"array")){let O=$.slice(1),z=O.findIndex((q)=>this.is(q,"...")||q==="...");if(z!==-1&&z<O.length-1){R=!0;let q=O.slice(z+1),G=q.length,K=O.slice(0,z),E=O[z],P=this.is(E,"...")?E[1]:"_rest",J=K.map((S)=>S===","?"":typeof S==="string"?S:this.generate(S,"value")).join(", "),D=J?`${J}, ...${P}`:`...${P}`,I=q.map((S)=>S===","?"":typeof S==="string"?S:this.generate(S,"value")).join(", ");A.push(`[${D}] = _item`),A.push(`[${I}] = ${P}.splice(-${G})`),this.helpers.add("slice"),O.forEach((S)=>{if(S===","||S==="...")return;if(typeof S==="string")this.programVars.add(S);else if(this.is(S,"...")&&typeof S[1]==="string")this.programVars.add(S[1])})}}let Q=this.generate(F,"value"),X=W?"await ":"",H;if(R)H="_item";else if(this.is($,"array")||this.is($,"object"))H=this.generateDestructuringPattern($);else H=$;let M=`for ${X}(const ${H} of ${Q}) `;if(R&&A.length>0){let O=this.unwrapBlock(Z),z=this.withIndent(()=>[...A.map((q)=>this.indent()+q+";"),...this.formatStatements(O)]);M+=`{
|
|
370
370
|
${z.join(`
|
|
371
371
|
`)}
|
|
372
372
|
${this.indent()}}`}else M+=Y?this.generateLoopBodyWithGuard(Z,Y):this.generateLoopBody(Z);return M}generateWhile(f,U){let _=U[0],w=U.length===3?U[1]:null,u=U[U.length-1];return`while (${this.unwrap(this.generate(_,"value"))}) `+(w?this.generateLoopBodyWithGuard(u,w):this.generateLoopBody(u))}generateRange(f,U){if(f==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[F,W]=U,Y=this.generate(F,"value"),Z=this.generate(W,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Y}, ${Z})`}let[_,w]=U,u=this.generate(_,"value"),$=this.generate(w,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${$})`}generateNot(f,U){let[_]=U;if(typeof _==="string"||_ instanceof String)return`!${this.generate(_,"value")}`;if(Array.isArray(_)){if([".","?.","[]","optindex","optcall"].includes(_[0]))return`!${this.generate(_,"value")}`}let w=this.generate(_,"value");return w.startsWith("(")?`!${w}`:`(!${w})`}generateBitwiseNot(f,U){return`(~${this.generate(U[0],"value")})`}generateIncDec(f,U){let[_,w]=U,u=this.generate(_,"value");return w?`(${u}${f})`:`(${f}${u})`}generateTypeof(f,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete(f,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof(f,U,_,w){let[u,$]=U,F=t(w[0],"invert"),W=`(${this.generate(u,"value")} instanceof ${this.generate($,"value")})`;return F?`(!${W})`:W}generateIn(f,U,_,w){let[u,$]=U,F=this.generate(u,"value"),W=t(w[0],"invert");if(this.is($,"object")){let R=`(${F} in ${this.generate($,"value")})`;return W?`(!${R})`:R}let Y=this.generate($,"value"),Z=`(Array.isArray(${Y}) || typeof ${Y} === 'string' ? ${Y}.includes(${F}) : (${F} in ${Y}))`;return W?`(!${Z})`:Z}generateOf(f,U,_,w){let[u,$]=U,F=this.generate(u,"value"),W=this.generate($,"value"),Y=t(w[0],"invert"),Z=`(${F} in ${W})`;return Y?`(!${Z})`:Z}generateRegexMatch(f,U){let[_,w]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(w,"value"),$=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(_,"value")}${$}).match(${u}))`}generateNew(f,U){let[_]=U;if(this.is(_,".")||this.is(_,"?.")){let[w,u,$]=_;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${$}`;return`new ${this.generate(u,"value")}.${$}`}if(Array.isArray(_)){let[w,...u]=_;return`new ${this.generate(w,"value")}(${u.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(_,"value")}()`}generateLogicalAnd(f,U,_,w){let u=this.flattenBinaryChain(w).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(f,U,_,w){let u=this.flattenBinaryChain(w).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(f,U){let _=U.length>0&&U[U.length-1]===",",w=U.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 _?`[${w},]`:`[${w}]`}generateObject(f,U,_){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[u,$]=U[0],[,F,W,Y]=$;return this.generate(["object-comprehension",u,F,W,Y],_)}return`{${U.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[$,F,W]=u,Y;if(this.is($,"dynamicKey"))Y=`[${this.generate($[1],"value")}]`;else if(this.is($,"str"))Y=`[${this.generate($,"value")}]`;else this.suppressReactiveUnwrap=!0,Y=this.generate($,"value"),this.suppressReactiveUnwrap=!1;let Z=this.generate(F,"value");if(W==="=")return`${Y} = ${Z}`;if(W===":")return`${Y}: ${Z}`;if(Y===Z&&!Array.isArray($))return Y;return`${Y}: ${Z}`}).join(", ")}}`}generateBlock(f,U,_){if(_==="statement")return`{
|
|
@@ -380,13 +380,13 @@ ${this.indent()} ${A};
|
|
|
380
380
|
${this.indent()}}`}}let u=`throw ${this.generate(w,"value")}`;return _==="value"?`(() => { ${u}; })()`:u}generateControl(f,U,_){let[w,u,$]=U,F=k(w),W=$[0]==="return",Y=this.generate(u,"value"),Z=$.length>1?$[1]:null,R=W?Z?`return ${this.generate(Z,"value")}`:"return":Z?`throw ${this.generate(Z,"value")}`:"throw new Error()",A=this.wrapForCondition(Y);if(_==="value"){if(F==="??")return`(() => { const __v = ${Y}; if (__v == null) ${R}; return __v; })()`;if(F==="||")return`(() => { const __v = ${Y}; if (!__v) ${R}; return __v; })()`;return`(() => { const __v = ${Y}; if (__v) ${R}; return __v; })()`}if(F==="??")return`if (${A} == null) ${R}`;if(F==="||")return`if (!${A}) ${R}`;return`if (${A}) ${R}`}generateSwitch(f,U,_){let[w,u,$]=U;if(w===null)return this.generateSwitchAsIfChain(u,$,_);let F=`switch (${this.generate(w,"value")}) {
|
|
381
381
|
`;this.indentLevel++;for(let W of u){let[,Y,Z]=W;for(let R of Y){let A=k(R)??R,Q;if(Array.isArray(A))Q=this.generate(A,"value");else if(typeof A==="string"&&(A.startsWith('"')||A.startsWith("'")))Q=`'${A.slice(1,-1)}'`;else Q=this.generate(A,"value");F+=this.indent()+`case ${Q}:
|
|
382
382
|
`}this.indentLevel++,F+=this.generateSwitchCaseBody(Z,_),this.indentLevel--}if($)F+=this.indent()+`default:
|
|
383
|
-
`,this.indentLevel++,F+=this.generateSwitchCaseBody($,_),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",_==="value")return`(${u.some((Y)=>this.containsAwait(Y[2]))||$&&this.containsAwait($)?"async ":""}() => { ${F} })()`;return F}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader(f,U,_){let w=Array.isArray(f)?f:[f],u=w.length===0,[$,F]=u?["_i",null]:w,W=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$;if(_&&_!==null){let Y=Array.isArray(U)&&U[0];if(Y instanceof String)Y=k(Y);if(Y===".."||Y==="..."){let q=Y==="...",[
|
|
383
|
+
`,this.indentLevel++,F+=this.generateSwitchCaseBody($,_),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",_==="value")return`(${u.some((Y)=>this.containsAwait(Y[2]))||$&&this.containsAwait($)?"async ":""}() => { ${F} })()`;return F}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader(f,U,_){let w=Array.isArray(f)?f:[f],u=w.length===0,[$,F]=u?["_i",null]:w,W=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$;if(_&&_!==null){let Y=Array.isArray(U)&&U[0];if(Y instanceof String)Y=k(Y);if(Y===".."||Y==="..."){let q=Y==="...",[G,K]=U.slice(1),E=this.generate(G,"value"),P=this.generate(K,"value"),J=this.generate(_,"value");return{header:`for (let ${W} = ${E}; ${W} ${q?"<":"<="} ${P}; ${W} += ${J})`,setup:null}}let R=this.generate(U,"value"),A=F||"_i",Q=this.generate(_,"value"),X=this.is(_,"-",1),H=X&&(_[1]==="1"||_[1]===1||k(_[1])==="1"),M=!X&&(_==="1"||_===1||k(_)==="1"),O=H?`${A}--`:M?`${A}++`:`${A} += ${Q}`;return{header:X?`for (let ${A} = ${R}.length - 1; ${A} >= 0; ${O})`:`for (let ${A} = 0; ${A} < ${R}.length; ${O})`,setup:u?null:`const ${W} = ${R}[${A}];`}}if(F){let Y=this.generate(U,"value");return{header:`for (let ${F} = 0; ${F} < ${Y}.length; ${F}++)`,setup:`const ${W} = ${Y}[${F}];`}}return{header:`for (const ${W} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader(f,U,_){let w=Array.isArray(f)?f:[f],[u,$]=w,F=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,W=this.generate(U,"value");return{header:`for (const ${F} in ${W})`,own:_,vv:$,oc:W,kvp:F}}_forAsHeader(f,U,_){let w=Array.isArray(f)?f:[f],[u]=w,$=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${_?"await ":""}(const ${$} of ${this.generate(U,"value")})`}}generateComprehension(f,U,_){let[w,u,$]=U;if(_==="statement")return this.generateComprehensionAsLoop(w,u,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(w,u,$,this.comprehensionTarget);let W=`(${this.containsAwait(w)?"async ":""}() => {
|
|
384
384
|
`;this.indentLevel++,this.comprehensionDepth++,W+=this.indent()+`const result = [];
|
|
385
|
-
`;for(let R of u){let[A,Q,X,H]=R;if(A==="for-in"){let{header:M,setup:
|
|
386
|
-
`,this.indentLevel++,
|
|
387
|
-
`}else if(A==="for-of"){let{header:M,own:
|
|
388
|
-
`,this.indentLevel++,
|
|
389
|
-
`;if(z)W+=this.indent()+`const ${z} = ${q}[${
|
|
385
|
+
`;for(let R of u){let[A,Q,X,H]=R;if(A==="for-in"){let{header:M,setup:O}=this._forInHeader(Q,X,H);if(W+=this.indent()+M+` {
|
|
386
|
+
`,this.indentLevel++,O)W+=this.indent()+O+`
|
|
387
|
+
`}else if(A==="for-of"){let{header:M,own:O,vv:z,oc:q,kvp:G}=this._forOfHeader(Q,X,H);if(W+=this.indent()+M+` {
|
|
388
|
+
`,this.indentLevel++,O)W+=this.indent()+`if (!Object.hasOwn(${q}, ${G})) continue;
|
|
389
|
+
`;if(z)W+=this.indent()+`const ${z} = ${q}[${G}];
|
|
390
390
|
`}else if(A==="for-as"){let{header:M}=this._forAsHeader(Q,X,R[3]);W+=this.indent()+M+` {
|
|
391
391
|
`,this.indentLevel++}}for(let R of $)W+=this.indent()+`if (${this.generate(R,"value")}) {
|
|
392
392
|
`,this.indentLevel++;let Y=(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(Y);return R.some(Y)},Z=["for-in","for-of","for-as","while","loop"];if(this.is(w,"block"))for(let R=0;R<w.length-1;R++){let A=w[R+1];if(R!==w.length-2||Y(A))W+=this.indent()+this.generate(A,"statement")+`;
|
|
@@ -409,10 +409,10 @@ ${this.indent()}}`}}let u=`throw ${this.generate(w,"value")}`;return _==="value"
|
|
|
409
409
|
`;for(let Y=0;Y<$.length;Y++)this.indentLevel--,W+=this.indent()+`}
|
|
410
410
|
`;return W+=this.indent()+`return result;
|
|
411
411
|
`,this.indentLevel--,W+=this.indent()+"})()",W}generateClass(f,U,_){let[w,u,...$]=U,F=w?`class ${w}`:"class";if(u)F+=` extends ${this.generate(u,"value")}`;if(F+=` {
|
|
412
|
-
`,$.length>0&&Array.isArray($[0])){let W=$[0];if(W[0]==="block"){let Y=W.slice(1),Z=Y.length>0&&Array.isArray(Y[0])&&Y[0][0]==="object";if(Z&&Y.length===1){let R=Y[0].slice(1);this.indentLevel++;let A=[];for(let[Q,X]of R){let H=this.is(Q,".")&&Q[1]==="this",M=this.is(Q,"computed"),
|
|
413
|
-
`}else if(H)F+=this.indent()+`static ${
|
|
414
|
-
`;else F+=this.indent()+`${
|
|
415
|
-
`}this.indentLevel--}else if(Z){let R=Y[0].slice(1),A=Y.slice(1);this.indentLevel++;for(let[Q,X]of R){let H=this.is(Q,".")&&Q[1]==="this",M=this.extractMemberName(Q);if(this.is(X,"->")||this.is(X,"=>")){let[,
|
|
412
|
+
`,$.length>0&&Array.isArray($[0])){let W=$[0];if(W[0]==="block"){let Y=W.slice(1),Z=Y.length>0&&Array.isArray(Y[0])&&Y[0][0]==="object";if(Z&&Y.length===1){let R=Y[0].slice(1);this.indentLevel++;let A=[];for(let[Q,X]of R){let H=this.is(Q,".")&&Q[1]==="this",M=this.is(Q,"computed"),O=this.extractMemberName(Q);if(this.is(X,"=>")&&!H&&!M&&O!=="constructor")A.push(O)}for(let[Q,X]of R){let H=this.is(Q,".")&&Q[1]==="this",M=this.is(Q,"computed"),O=this.extractMemberName(Q);if(this.is(X,"->")||this.is(X,"=>")){let[,z,q]=X,G=this.containsAwait(q),K=this.containsYield(q),E=z,P=[];if(O==="constructor"){let I=!!u,S=I?new Map:null;E=z.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let B=N[2],V=I?`_${B}`:B;if(P.push(`this.${B} = ${V}`),I)S.set(B,V);return V}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let B=N[1][2],V=I?`_${B}`:B;if(P.push(`this.${B} = ${V}`),I)S.set(B,V);return["default",V,N[2]]}return N});for(let N of A)P.unshift(`this.${N} = this.${N}.bind(this)`);if(S?.size>0)this._atParamMap=S}let J=this.generateParamList(E),D=(H?"static ":"")+(G?"async ":"")+(K?"*":"");if(F+=this.indent()+`${D}${O}(${J}) `,!M)this.currentMethodName=O;F+=this.generateMethodBody(q,P,O==="constructor",E),this._atParamMap=null,this.currentMethodName=null,F+=`
|
|
413
|
+
`}else if(H)F+=this.indent()+`static ${O} = ${this.generate(X,"value")};
|
|
414
|
+
`;else F+=this.indent()+`${O} = ${this.generate(X,"value")};
|
|
415
|
+
`}this.indentLevel--}else if(Z){let R=Y[0].slice(1),A=Y.slice(1);this.indentLevel++;for(let[Q,X]of R){let H=this.is(Q,".")&&Q[1]==="this",M=this.extractMemberName(Q);if(this.is(X,"->")||this.is(X,"=>")){let[,O,z]=X,q=this.generateParamList(O),G=(H?"static ":"")+(this.containsAwait(z)?"async ":"")+(this.containsYield(z)?"*":"");F+=this.indent()+`${G}${M}(${q}) `,this.currentMethodName=M,F+=this.generateMethodBody(z,[],M==="constructor",O),this.currentMethodName=null,F+=`
|
|
416
416
|
`}else if(H)F+=this.indent()+`static ${M} = ${this.generate(X,"value")};
|
|
417
417
|
`;else F+=this.indent()+`${M} = ${this.generate(X,"value")};
|
|
418
418
|
`}for(let Q of A)if(this.is(Q,"class")){let[,X,H,...M]=Q;if(this.is(X,".")&&X[1]==="this")F+=this.indent()+`static ${X[2]} = ${this.generate(["class",null,H,...M],"value")};
|
|
@@ -420,18 +420,18 @@ ${this.indent()}}`}}let u=`throw ${this.generate(w,"value")}`;return _==="value"
|
|
|
420
420
|
`;this.indentLevel--}else{this.indentLevel++;for(let R of Y)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")};
|
|
421
421
|
`;else F+=this.indent()+this.generate(R,"statement")+`;
|
|
422
422
|
`;this.indentLevel--}}}return F+=this.indent()+"}",F}generateSuper(f,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let _=U.map((w)=>this.unwrap(this.generate(w,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${_})`;return`super(${_})`}generateImport(f,U,_,w){if(U.length===1){let W=`import(${this.generate(U[0],"value")})`;if(t(w[0],"await")===!0)return`(await ${W})`;return W}if(this.options.skipImports)return"";let[u,$]=U,F=this.addJsExtensionAndAssertions($);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 Y=u[0],Z=u[1];if(Z[0]==="*"&&Z.length===2)return`import ${Y}, * as ${Z[1]} from ${F}`;let R=(Array.isArray(Z)?Z:[Z]).map((A)=>Array.isArray(A)&&A.length===2?`${A[0]} as ${A[1]}`:A).join(", ");return`import ${Y}, { ${R} } from ${F}`}return`import { ${u.map((Y)=>Array.isArray(Y)&&Y.length===2?`${Y[0]} as ${Y[1]}`:Y).join(", ")} } from ${F}`}return`import ${this.generate(u,"value")} from ${F}`}generateExport(f,U){let[_]=U;if(this.options.skipExports){if(Array.isArray(_)&&_.every((w)=>typeof w==="string"))return"";if(this.is(_,"=")){let w=this._componentName;if(this.is(_[2],"component"))this._componentName=k(_[1]);let u=`const ${_[1]} = ${this.generate(_[2],"value")}`;return this._componentName=w,u}return this.generate(_,"statement")}if(Array.isArray(_)&&_.every((w)=>typeof w==="string"))return`export { ${_.join(", ")} }`;if(this.is(_,"=")){let w=this._componentName;if(this.is(_[2],"component"))this._componentName=k(_[1]);let u=`export const ${_[1]} = ${this.generate(_[2],"value")}`;return this._componentName=w,u}return`export ${this.generate(_,"statement")}`}generateExportDefault(f,U){let[_]=U;if(this.options.skipExports){if(this.is(_,"="))return`const ${_[1]} = ${this.generate(_[2],"value")}`;return this.generate(_,"statement")}if(this.is(_,"="))return`const ${_[1]} = ${this.generate(_[2],"value")};
|
|
423
|
-
export default ${_[1]}`;return`export default ${this.generate(_,"statement")}`}generateExportAll(f,U){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom(f,U){if(this.options.skipExports)return"";let[_,w]=U,u=this.addJsExtensionAndAssertions(w);if(Array.isArray(_))return`export { ${_.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${u}`;return`export ${_} from ${u}`}generateDoIIFE(f,U){return`(${this.generate(U[0],"statement")})()`}generateRegex(f,U){return U.length===0?f:this.generate(U[0],"value")}generateTaggedTemplate(f,U){let[_,w]=U,u=this.generate(_,"value"),$=this.generate(w,"value");if($.startsWith("`"))return`${u}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${u}\`${$.slice(1,-1)}\``;return`${u}\`${$}\``}generateString(f,U){let _="`";for(let w of U)if(w instanceof String)_+=this.extractStringContent(w);else if(typeof w==="string")if(w.startsWith('"')||w.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",w);_+=w.slice(1,-1)}else _+=w;else if(Array.isArray(w))if(w.length===1&&typeof w[0]==="string"&&!Array.isArray(w[0])){let u=w[0];_+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=w.length===1&&Array.isArray(w[0])?w[0]:w;_+="${"+this.generate(u,"value")+"}"}return _+"`"}findPostfixConditional(f){if(!Array.isArray(f))return null;let U=f[0];if(U==="if"&&f.length===3)return{type:U,condition:f[1],value:f[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let _=1;_<f.length;_++){let w=this.findPostfixConditional(f[_]);if(w)return w.parentOp=U,w.operandIndex=_,w.otherOperands=f.slice(1).filter((u,$)=>$!==_-1),w}return null}rebuildWithoutConditional(f){let U=Array.isArray(f.value)&&f.value.length===1?f.value[0]:f.value;if(f.parentOp)return[f.parentOp,...f.otherOperands,U];return U}generateDestructuringPattern(f){return this.formatParam(f)}generateParamList(f){let U=f.findIndex((w)=>this.is(w,"expansion"));if(U!==-1){let w=f.slice(0,U),u=f.slice(U+1),$=w.map((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=u,$?`${$}, ..._rest`:"..._rest"}let _=f.findIndex((w)=>this.is(w,"rest"));if(_!==-1&&_<f.length-1){let w=f.slice(0,_),u=f[_],$=f.slice(_+1),F=w.map((W)=>this.formatParam(W));return this.restMiddleParam={restName:u[1],afterParams:$,beforeCount:w.length},F.length>0?`${F.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,f.map((w)=>this.formatParam(w)).join(", ")}formatParam(f){if(typeof f==="string")return f;if(f instanceof String)return f.valueOf();if(this.is(f,"rest"))return`...${f[1]}`;if(this.is(f,"default"))return`${f[1]} = ${this.generate(f[2],"value")}`;if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"array"))return`[${f.slice(1).map((_)=>{if(_===",")return"";if(_==="...")return"";if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"=")&&typeof _[1]==="string")return`${_[1]} = ${this.generate(_[2],"value")}`;if(typeof _==="string")return _;return this.formatParam(_)}).join(", ")}]`;if(this.is(f,"object"))return`{${f.slice(1).map((_)=>{if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"default"))return`${_[1]} = ${this.generate(_[2],"value")}`;let[w,u,$]=_;if($==="=")return`${w} = ${this.generate(u,"value")}`;if(w===u)return w;return`${w}: ${this.formatParam(u)}`}).join(", ")}}`;return JSON.stringify(f)}generateBodyWithReturns(f,U=[],_={}){let{sideEffectOnly:w=!1,autoAssignments:u=[],isConstructor:$=!1,hasExpansionParams:F=!1}=_,W=this.sideEffectOnly;this.sideEffectOnly=w;let Y=new Set,Z=(M)=>{if(typeof M==="string")Y.add(M);else if(Array.isArray(M)){if(M[0]==="rest"||M[0]==="..."){if(typeof M[1]==="string")Y.add(M[1])}else if(M[0]==="default"){if(typeof M[1]==="string")Y.add(M[1])}else if(M[0]==="array"||M[0]==="object")this.collectVarsFromArray(M,Y)}};if(Array.isArray(U))U.forEach(Z);let R=this.collectFunctionVariables(f),A=new Set([...R].filter((M)=>!this.programVars.has(M)&&!this.reactiveVars?.has(M)&&!Y.has(M)&&!this.scopeStack.some((
|
|
424
|
-
`;if(A.size>0)
|
|
425
|
-
`;let z=u.length>0&&M.length>0&&Array.isArray(M[0])&&M[0][0]==="super",q=(
|
|
426
|
-
`;return}if(!$&&!w&&P&&J==="if"){let[N,B,...V]=K.slice(1),y=(L)=>this.is(L,"block")&&L.length>2;if(y(B)||V.some(y)){
|
|
427
|
-
`;return}}}let D=!$&&!w&&P&&!Q.includes(J)&&!X.includes(J)&&!this.hasExplicitControlFlow(K),I=D?"value":"statement",S=this.generate(K,I);if(D)
|
|
428
|
-
`;else
|
|
429
|
-
`})};if(z){if(M.length===1&&!$)
|
|
430
|
-
`;else
|
|
431
|
-
`;for(let K of u)
|
|
432
|
-
`;q(M.slice(1))}else{for(let
|
|
433
|
-
`;q(M)}if(w&&M.length>0){let
|
|
434
|
-
`}return this.indentLevel--,
|
|
423
|
+
export default ${_[1]}`;return`export default ${this.generate(_,"statement")}`}generateExportAll(f,U){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom(f,U){if(this.options.skipExports)return"";let[_,w]=U,u=this.addJsExtensionAndAssertions(w);if(Array.isArray(_))return`export { ${_.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${u}`;return`export ${_} from ${u}`}generateDoIIFE(f,U){return`(${this.generate(U[0],"statement")})()`}generateRegex(f,U){return U.length===0?f:this.generate(U[0],"value")}generateTaggedTemplate(f,U){let[_,w]=U,u=this.generate(_,"value"),$=this.generate(w,"value");if($.startsWith("`"))return`${u}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${u}\`${$.slice(1,-1)}\``;return`${u}\`${$}\``}generateString(f,U){let _="`";for(let w of U)if(w instanceof String)_+=this.extractStringContent(w);else if(typeof w==="string")if(w.startsWith('"')||w.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",w);_+=w.slice(1,-1)}else _+=w;else if(Array.isArray(w))if(w.length===1&&typeof w[0]==="string"&&!Array.isArray(w[0])){let u=w[0];_+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=w.length===1&&Array.isArray(w[0])?w[0]:w;_+="${"+this.generate(u,"value")+"}"}return _+"`"}findPostfixConditional(f){if(!Array.isArray(f))return null;let U=f[0];if(U==="if"&&f.length===3)return{type:U,condition:f[1],value:f[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let _=1;_<f.length;_++){let w=this.findPostfixConditional(f[_]);if(w)return w.parentOp=U,w.operandIndex=_,w.otherOperands=f.slice(1).filter((u,$)=>$!==_-1),w}return null}rebuildWithoutConditional(f){let U=Array.isArray(f.value)&&f.value.length===1?f.value[0]:f.value;if(f.parentOp)return[f.parentOp,...f.otherOperands,U];return U}generateDestructuringPattern(f){return this.formatParam(f)}generateParamList(f){let U=f.findIndex((w)=>this.is(w,"expansion"));if(U!==-1){let w=f.slice(0,U),u=f.slice(U+1),$=w.map((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=u,$?`${$}, ..._rest`:"..._rest"}let _=f.findIndex((w)=>this.is(w,"rest"));if(_!==-1&&_<f.length-1){let w=f.slice(0,_),u=f[_],$=f.slice(_+1),F=w.map((W)=>this.formatParam(W));return this.restMiddleParam={restName:u[1],afterParams:$,beforeCount:w.length},F.length>0?`${F.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,f.map((w)=>this.formatParam(w)).join(", ")}formatParam(f){if(typeof f==="string")return f;if(f instanceof String)return f.valueOf();if(this.is(f,"rest"))return`...${f[1]}`;if(this.is(f,"default"))return`${f[1]} = ${this.generate(f[2],"value")}`;if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"array"))return`[${f.slice(1).map((_)=>{if(_===",")return"";if(_==="...")return"";if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"=")&&typeof _[1]==="string")return`${_[1]} = ${this.generate(_[2],"value")}`;if(typeof _==="string")return _;return this.formatParam(_)}).join(", ")}]`;if(this.is(f,"object"))return`{${f.slice(1).map((_)=>{if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"default"))return`${_[1]} = ${this.generate(_[2],"value")}`;let[w,u,$]=_;if($==="=")return`${w} = ${this.generate(u,"value")}`;if(w===u)return w;return`${w}: ${this.formatParam(u)}`}).join(", ")}}`;return JSON.stringify(f)}generateBodyWithReturns(f,U=[],_={}){let{sideEffectOnly:w=!1,autoAssignments:u=[],isConstructor:$=!1,hasExpansionParams:F=!1}=_,W=this.sideEffectOnly;this.sideEffectOnly=w;let Y=new Set,Z=(M)=>{if(typeof M==="string")Y.add(M);else if(Array.isArray(M)){if(M[0]==="rest"||M[0]==="..."){if(typeof M[1]==="string")Y.add(M[1])}else if(M[0]==="default"){if(typeof M[1]==="string")Y.add(M[1])}else if(M[0]==="array"||M[0]==="object")this.collectVarsFromArray(M,Y)}};if(Array.isArray(U))U.forEach(Z);let R=this.collectFunctionVariables(f),A=new Set([...R].filter((M)=>!this.programVars.has(M)&&!this.reactiveVars?.has(M)&&!Y.has(M)&&!this.scopeStack.some((O)=>O.has(M)))),Q=["return","throw","break","continue"],X=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...A,...Y])),this.is(f,"block")){let M=this.unwrapBlock(f);if(F&&this.expansionAfterParams?.length>0)M=[...this.expansionAfterParams.map((K,E)=>{return`const ${typeof K==="string"?K:JSON.stringify(K)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...M],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:G,afterParams:K}=this.restMiddleParam,E=K.length,P=[];if(K.forEach((J,D)=>{let I=typeof J==="string"?J:this.is(J,"default")?J[1]:JSON.stringify(J);P.push(`const ${I} = ${G}[${G}.length - ${E-D}]`)}),E>0)P.push(`${G} = ${G}.slice(0, -${E})`);M=[...P,...M],this.restMiddleParam=null}this.indentLevel++;let O=`{
|
|
424
|
+
`;if(A.size>0)O+=this.indent()+`let ${Array.from(A).sort().join(", ")};
|
|
425
|
+
`;let z=u.length>0&&M.length>0&&Array.isArray(M[0])&&M[0][0]==="super",q=(G)=>{G.forEach((K,E)=>{let P=E===G.length-1,J=Array.isArray(K)?K[0]:null;if(!P&&J==="comprehension"){let[,N,B,V]=K;O+=this.indent()+this.generateComprehensionAsLoop(N,B,V)+`
|
|
426
|
+
`;return}if(!$&&!w&&P&&J==="if"){let[N,B,...V]=K.slice(1),y=(L)=>this.is(L,"block")&&L.length>2;if(y(B)||V.some(y)){O+=this.generateIfElseWithEarlyReturns(K);return}}if(!$&&!w&&P&&J==="="){let[N,B]=K.slice(1);if(typeof N==="string"&&Array.isArray(B)){let V=B[0];if(V==="comprehension"||V==="for-in"){this.comprehensionTarget=N,O+=this.generate(B,"value"),this.comprehensionTarget=null,O+=this.indent()+`return ${N};
|
|
427
|
+
`;return}}}let D=!$&&!w&&P&&!Q.includes(J)&&!X.includes(J)&&!this.hasExplicitControlFlow(K),I=D?"value":"statement",S=this.generate(K,I);if(D)O+=this.indent()+"return "+S+`;
|
|
428
|
+
`;else O+=this.indent()+this.addSemicolon(K,S)+`
|
|
429
|
+
`})};if(z){if(M.length===1&&!$)O+=this.indent()+"return "+this.generate(M[0],"value")+`;
|
|
430
|
+
`;else O+=this.indent()+this.generate(M[0],"statement")+`;
|
|
431
|
+
`;for(let K of u)O+=this.indent()+K+`;
|
|
432
|
+
`;q(M.slice(1))}else{for(let G of u)O+=this.indent()+G+`;
|
|
433
|
+
`;q(M)}if(w&&M.length>0){let G=Array.isArray(M[M.length-1])?M[M.length-1][0]:null;if(!Q.includes(G))O+=this.indent()+`return;
|
|
434
|
+
`}return this.indentLevel--,O+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=W,O}this.sideEffectOnly=W;let H;if($&&u.length>0){let M=Array.isArray(f)&&f[0]==="super",O=this.generate(f,"statement"),z=u.map((q)=>`${q};`).join(" ");H=M?`{ ${O}; ${z} }`:`{ ${z} ${O}; }`}else if($||this.hasExplicitControlFlow(f))H=`{ ${this.generate(f,"statement")}; }`;else if(Array.isArray(f)&&(Q.includes(f[0])||X.includes(f[0])))H=`{ ${this.generate(f,"statement")}; }`;else if(w)H=`{ ${this.generate(f,"statement")}; return; }`;else H=`{ return ${this.generate(f,"value")}; }`;return this.scopeStack.pop(),H}generateFunctionBody(f,U=[],_=!1){return this.generateBodyWithReturns(f,U,{sideEffectOnly:_,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(f,U=[],_=!1,w=[]){return this.generateBodyWithReturns(f,w,{autoAssignments:U,isConstructor:_})}generateBlockWithReturns(f){if(!Array.isArray(f)||f[0]!=="block")return this.generate(f,"statement");let U=this.unwrapBlock(f);return`{
|
|
435
435
|
${this.withIndent(()=>U.map((w,u)=>{let $=u===U.length-1,F=Array.isArray(w)?w[0]:null,W=$&&!["return","throw","break","continue"].includes(F),Y=this.generate(w,W?"value":"statement");return W?this.indent()+"return "+Y+";":this.indent()+Y+";"})).join(`
|
|
436
436
|
`)}
|
|
437
437
|
${this.indent()}}`}generateLoopBody(f){if(!Array.isArray(f))return`{ ${this.generate(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let U=f[0]==="block"?f.slice(1):f;return`{
|
|
@@ -466,7 +466,7 @@ ${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate(f,"
|
|
|
466
466
|
`,$+=this.withIndent(()=>this.generateBranchWithReturn(A)),$+=this.indent()+"}"}else $+=`{
|
|
467
467
|
`,$+=this.withIndent(()=>this.generateBranchWithReturn(W)),$+=this.indent()+"}";return $}generateBranchWithReturn(f){let U=this.unwrapBlock(f),_="";for(let w=0;w<U.length;w++){let u=w===U.length-1,$=U[w],F=Array.isArray($)?$[0]:null;if(u&&!(F==="return"||F==="throw"||F==="break"||F==="continue"))_+=this.indent()+`return ${this.generate($,"value")};
|
|
468
468
|
`;else _+=this.indent()+this.generate($,"statement")+`;
|
|
469
|
-
`}return _}generateIfAsExpression(f,U,_){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||_.some((W)=>this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||this.hasNestedMultiStatement(W))){let W=this.containsAwait(f)||this.containsAwait(U)||_.some((Z)=>this.containsAwait(Z)),Y=`${W?"await ":""}(${W?"async ":""}() => { `;Y+=`if (${this.generate(f,"value")}) `,Y+=this.generateBlockWithReturns(U);for(let Z of _)if(Y+=" else ",this.is(Z,"if")){let[R,A,Q,...X]=Z;Y+=`if (${this.generate(A,"value")}) `,Y+=this.generateBlockWithReturns(Q);for(let H of X)if(Y+=" else ",this.is(H,"if")){let[M,
|
|
469
|
+
`}return _}generateIfAsExpression(f,U,_){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||_.some((W)=>this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||this.hasNestedMultiStatement(W))){let W=this.containsAwait(f)||this.containsAwait(U)||_.some((Z)=>this.containsAwait(Z)),Y=`${W?"await ":""}(${W?"async ":""}() => { `;Y+=`if (${this.generate(f,"value")}) `,Y+=this.generateBlockWithReturns(U);for(let Z of _)if(Y+=" else ",this.is(Z,"if")){let[R,A,Q,...X]=Z;Y+=`if (${this.generate(A,"value")}) `,Y+=this.generateBlockWithReturns(Q);for(let H of X)if(Y+=" else ",this.is(H,"if")){let[M,O,z,...q]=H;Y+=`if (${this.generate(O,"value")}) `,Y+=this.generateBlockWithReturns(z),_.push(...q)}else Y+=this.generateBlockWithReturns(H)}else Y+=this.generateBlockWithReturns(Z);return Y+" })()"}let u=this.extractExpression(this.unwrapIfBranch(U)),$=this.buildTernaryChain(_),F=this.generate(f,"value");if(this.is(f,"yield")||this.is(f,"await"))F=`(${F})`;return`(${F} ? ${u} : ${$})`}generateIfAsStatement(f,U,_){let w=`if (${this.unwrap(this.generate(f,"value"))}) `;w+=this.generate(this.unwrapIfBranch(U),"statement");for(let u of _)w+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return w}generateSwitchCaseBody(f,U){let _="";if(this.hasExplicitControlFlow(f))for(let u of this.unwrapBlock(f))_+=this.indent()+this.generate(u,"statement")+`;
|
|
470
470
|
`;else if(U==="value")if(this.is(f,"block")&&f.length>2){let u=f.slice(1);for(let $=0;$<u.length;$++)if($===u.length-1)_+=this.indent()+`return ${this.generate(u[$],"value")};
|
|
471
471
|
`;else _+=this.indent()+this.generate(u[$],"statement")+`;
|
|
472
472
|
`}else _+=this.indent()+`return ${this.extractExpression(f)};
|
|
@@ -716,7 +716,7 @@ if (typeof globalThis !== 'undefined') {
|
|
|
716
716
|
`),u=w.findIndex((M)=>M==="__DATA__");if(u!==-1){let M=w.slice(u+1);_=M.length>0?M.join(`
|
|
717
717
|
`)+`
|
|
718
718
|
`:"",f=w.slice(0,u).join(`
|
|
719
|
-
`)}let F=new A1().tokenize(f);if(this.options.showTokens)F.forEach((M)=>console.log(`${M[0].padEnd(12)} ${JSON.stringify(M[1])}`)),console.log();let W=null,Y=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)Y=[...F];F=F.filter((M)=>M[0]!=="TYPE_DECL");while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((M)=>M[0]==="TERMINATOR")){if(Y)W=n1(Y,["program"],f);return{tokens:F,sexpr:["program"],code:"",dts:W,data:_,reactiveVars:{}}}Q1.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let M=this.tokens[this.pos++],
|
|
719
|
+
`)}let F=new A1().tokenize(f);if(this.options.showTokens)F.forEach((M)=>console.log(`${M[0].padEnd(12)} ${JSON.stringify(M[1])}`)),console.log();let W=null,Y=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)Y=[...F];F=F.filter((M)=>M[0]!=="TYPE_DECL");while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((M)=>M[0]==="TERMINATOR")){if(Y)W=n1(Y,["program"],f);return{tokens:F,sexpr:["program"],code:"",dts:W,data:_,reactiveVars:{}}}Q1.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let M=this.tokens[this.pos++],O=M[1];if(M.data)O=new String(O),Object.assign(O,M.data);return this.text=O,this.loc=M.loc,M[0]}};let Z;try{Z=Q1.parse(f)}catch(M){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(f)||/\?\s+\w+\s+\?\s+/.test(f))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw M}if(this.options.showSExpr)console.log(W1(Z,0,!0)),console.log();let R=null;if(this.options.sourceMap){let M=(this.options.filename||"output")+".js",O=this.options.filename||"input.rip";R=new a1(M,O,f)}let A=new $1({dataSection:_,source:f,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,skipImports:this.options.skipImports,skipDataPart:this.options.skipDataPart,stubComponents:this.options.stubComponents,reactiveVars:this.options.reactiveVars,sourceMap:R}),Q=A.compile(Z),X=R?R.toJSON():null,H=R?R.toReverseMap():null;if(X&&this.options.sourceMap==="inline"){let M=typeof Buffer<"u"?Buffer.from(X).toString("base64"):btoa(X);Q+=`
|
|
720
720
|
//# sourceMappingURL=data:application/json;base64,${M}`}else if(X&&this.options.filename)Q+=`
|
|
721
721
|
//# sourceMappingURL=${this.options.filename}.js.map`;if(Y)W=n1(Y,Z,f);return{tokens:F,sexpr:Z,code:Q,dts:W,map:X,reverseMap:H,data:_,reactiveVars:A.reactiveVars}}compileToJS(f){return this.compile(f).code}compileToSExpr(f){return this.compile(f).sexpr}}N2($1,A1);$1.prototype.generateEnum=Q2;function b1(f,U={}){return new E1(U).compile(f)}function Y1(f,U={}){return new E1(U).compileToJS(f)}function I1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
722
722
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
@@ -731,10 +731,10 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
731
731
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
732
732
|
globalThis.warn ??= console.warn;
|
|
733
733
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
734
|
-
`}function B1(){return new $1({}).getReactiveRuntime()}function N1(){return new $1({}).getComponentRuntime()}var S2="3.13.
|
|
734
|
+
`}function B1(){return new $1({}).getReactiveRuntime()}function N1(){return new $1({}).getComponentRuntime()}var S2="3.13.114",L2="2026-03-14@10:15:10GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(B1())();if(!globalThis.__ripComponent)Function(N1())()}var Y7=(f)=>{let U=f.match(/^[ \t]*(?=\S)/gm),_=Math.min(...(U||[]).map((w)=>w.length));return f.replace(RegExp(`^[ ]{${_}}`,"gm"),"").trim()};async function T2(){let f=[],U=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),_=U?.getAttribute("data-src");if(_){for(let w of _.trim().split(/\s+/))if(w)f.push({url:w})}for(let w of document.querySelectorAll('script[type="text/rip"]'))if(w.src)f.push({url:w.src});else{let u=Y7(w.textContent);if(u)f.push({code:u})}if(f.length>0){let w=await Promise.allSettled(f.map(async(Y)=>{if(!Y.url)return;let Z=await fetch(Y.url);if(!Z.ok)throw Error(`${Y.url} (${Z.status})`);if(Y.url.endsWith(".rip"))Y.code=await Z.text();else{let R=await Z.json();Y.bundle=R}}));for(let Y of w)if(Y.status==="rejected")console.warn("Rip: fetch failed:",Y.reason.message);let u=[],$=[];for(let Y of f)if(Y.bundle)u.push(Y.bundle);else if(Y.code)$.push(Y);let F=U?.getAttribute("data-router");if(F!=null&&u.length>0){let Y={skipRuntimes:!0,skipExports:!0,skipImports:!0};if($.length>0){let R="";for(let A of $)try{R+=Y1(A.code,Y)+`
|
|
735
735
|
`}catch(Q){console.error(`Rip compile error in ${A.url||"inline"}:`,Q.message)}if(R)try{await(0,eval)(`(async()=>{
|
|
736
736
|
${R}
|
|
737
|
-
})()`)}catch(A){console.error("Rip runtime error:",A)}}let Z=K1.modules?.["ui.rip"];if(Z?.launch){let R=u[u.length-1],A=U.getAttribute("data-persist"),Q={bundle:R,hash:F==="hash"};if(A!=null)Q.persist=A==="local"?"local":!0;await Z.launch("",Q)}}else{let Y=[];for(let A of u){for(let[Q,X]of Object.entries(A.components||{}))Y.push({code:X,url:Q});if(A.data){let Q=U?.getAttribute("data-state"),X={};if(Q)try{X=JSON.parse(Q)}catch{}Object.assign(X,A.data),U?.setAttribute("data-state",JSON.stringify(X))}}Y.push(...$);let Z={skipRuntimes:!0,skipExports:!0,skipImports:!0},R=[];for(let A of Y){if(!A.code)continue;try{let Q=Y1(A.code,Z);R.push({js:Q,url:A.url||"inline"})}catch(Q){console.error(`Rip compile error in ${A.url||"inline"}:`,Q.message)}}if(!globalThis.__ripApp&&U){let A=globalThis.stash;if(A){let Q={},X=U.getAttribute("data-state");if(X)try{Q=JSON.parse(X)}catch(
|
|
737
|
+
})()`)}catch(A){console.error("Rip runtime error:",A)}}let Z=K1.modules?.["ui.rip"];if(Z?.launch){let R=u[u.length-1],A=U.getAttribute("data-persist"),Q={bundle:R,hash:F==="hash"};if(A!=null)Q.persist=A==="local"?"local":!0;await Z.launch("",Q)}}else{let Y=[];for(let A of u){for(let[Q,X]of Object.entries(A.components||{}))Y.push({code:X,url:Q});if(A.data){let Q=U?.getAttribute("data-state"),X={};if(Q)try{X=JSON.parse(Q)}catch{}Object.assign(X,A.data),U?.setAttribute("data-state",JSON.stringify(X))}}Y.push(...$);let Z={skipRuntimes:!0,skipExports:!0,skipImports:!0},R=[];for(let A of Y){if(!A.code)continue;try{let Q=Y1(A.code,Z);R.push({js:Q,url:A.url||"inline"})}catch(Q){console.error(`Rip compile error in ${A.url||"inline"}:`,Q.message)}}if(!globalThis.__ripApp&&U){let A=globalThis.stash;if(A){let Q={},X=U.getAttribute("data-state");if(X)try{Q=JSON.parse(X)}catch(O){console.error("Rip: invalid data-state JSON:",O.message)}let H=A({data:Q});if(globalThis.__ripApp=H,typeof window<"u")window.app=H;let M=U.getAttribute("data-persist");if(M!=null&&globalThis.persistStash)globalThis.persistStash(H,{local:M==="local"})}}if(R.length>0){let A=R.map((X)=>X.js).join(`
|
|
738
738
|
`),Q=U?.getAttribute("data-mount");if(Q){let X=U.getAttribute("data-target")||"body";A+=`
|
|
739
739
|
${Q}.mount(${JSON.stringify(X)});`}try{await(0,eval)(`(async()=>{
|
|
740
740
|
${A}
|
|
@@ -742,6 +742,6 @@ ${A}
|
|
|
742
742
|
${H.js}
|
|
743
743
|
})()`)}catch(M){console.error(` → source: ${H.url}`,M.message)}}else console.error("Rip runtime error:",X)}}}}if(U?.hasAttribute("data-reload")&&!globalThis.__ripLaunched){let w=!1,u=1000,$=30000,F=()=>{let W=new EventSource("/watch");W.addEventListener("connected",()=>{if(u=1000,w)location.reload();w=!0}),W.addEventListener("reload",(Y)=>{if(Y.data==="styles"){let Z=Date.now(),R=0;if(document.querySelectorAll('link[rel="stylesheet"]').forEach((A)=>{if(new URL(A.href).origin!==location.origin)return;let Q=new URL(A.href);Q.searchParams.set("_r",Z),A.href=Q.toString(),R++}),!R)location.reload()}else location.reload()}),W.onerror=()=>{W.close(),setTimeout(F,u),u=Math.min(u*2,$)}};F()}}async function K1(f){for(let[F,W]of Object.entries(K1.modules))if(f.includes(F))return W;let U=await fetch(f).then((F)=>{if(!F.ok)throw Error(`importRip: ${f} (${F.status})`);return F.text()}),_=Y1(U),w=`// ${f}
|
|
744
744
|
`,u=new Blob([w+_],{type:"application/javascript"});return await import(URL.createObjectURL(u))}K1.modules={};function V2(f){try{let U=f.replace(/^/gm," "),w=Y1(`do ->
|
|
745
|
-
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");w=w.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(w);if(u&&typeof u.then==="function")return u.then(($)=>{if($!==void 0)globalThis._=$;return $});if(u!==void 0)globalThis._=u;return u}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=V2,globalThis.importRip=K1,globalThis.compileToJS=Y1,globalThis.__ripExports={compile:b1,compileToJS:Y1,formatSExpr:W1,getStdlibCode:I1,VERSION:S2,BUILD_DATE:L2,getReactiveRuntime:B1,getComponentRuntime:N1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let U=()=>T2().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});var x1={};Y2(x1,{throttle:()=>z7,stash:()=>w3,setContext:()=>u3,raw:()=>f2,persistStash:()=>_3,launch:()=>X7,isStash:()=>R7,hold:()=>Q7,hasContext:()=>s2,getContext:()=>o2,delay:()=>W3,debounce:()=>Z7,createRouter:()=>Y3,createResource:()=>A7,createRenderer:()=>R3,createComponents:()=>F3});var h2,s1,$2,M1,Z1,g1,C2,J1,e,j2,y2,b2,c2,O1,f1,v2,g2,x2,l2,k2,m2,t1,L1,T1,U2,i2,n2,c1,v1,d2,p2,r2,e1,u2,o2,a2,w2,s2,S1,_2,t2,e2,u3,f3,$3,W2,U3;globalThis.abort??=(f)=>{if(f)console.error(f);process.exit(1)};globalThis.assert??=(f,U)=>{if(!f)throw Error(U||"Assertion failed")};globalThis.exit??=(f)=>process.exit(f||0);globalThis.kind??=(f)=>f!=null?(f.constructor?.name||Object.prototype.toString.call(f).slice(8,-1)).toLowerCase():String(f);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(f)=>{return console.log(JSON.stringify(f,null,2)),f};globalThis.raise??=(f,U)=>{throw U!==void 0?new f(U):Error(f)};globalThis.rand??=(f,U)=>U!==void 0?(f>U&&([f,U]=[U,f]),Math.floor(Math.random()*(U-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((U)=>setTimeout(U,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((U,_)=>f.map((w)=>w[_]));({__state:e,__effect:J1,__batch:C2}=globalThis.__rip);({setContext:u3,getContext:o2,hasContext:s2}=globalThis.__ripComponent||{});g1=Symbol("stash");Z1=Symbol("signals");M1=Symbol("raw");s1=Symbol("persisted");$2=new WeakMap;t1=0;U2=e(0);w2=function(f,U){let _;if(!f[Z1])Object.defineProperty(f,Z1,{value:new Map,enumerable:!1});if(_=f[Z1].get(U),!_)_=e(f[U]),f[Z1].set(U,_);return _};S1=function(f){return w2(f,Symbol.for("keys"))};U3=function(f){let U;if(!(f!=null&&typeof f==="object"))return f;if(f[g1])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(U=$2.get(f),U)return U;return _2(f)};_2=function(f){let U,_;return _=null,U={get:function(w,u){let $,F;if(u===g1)return!0;if(u===M1)return w;if(typeof u==="symbol")return Reflect.get(w,u);if(u==="length"&&Array.isArray(w))return S1(w).value,w.length;if(u==="get")return function(W){return f3(_,W)};if(u==="set")return function(W,Y){return $3(_,W,Y)};if($=w2(w,u),F=$.value,F!=null&&typeof F==="object")return U3(F);return F},set:function(w,u,$){let F,W;if(F=w[u],W=$?.[M1]?$[M1]:$,W===F)return!0;if(w[u]=W,w[Z1]?.has(u))w[Z1].get(u).value=W;if(F===void 0&&W!==void 0)S1(w).value=++t1;return U2.value++,!0},deleteProperty:function(w,u){let $;if(delete w[u],$=w[Z1]?.get(u),$!=null)$.value=void 0;return S1(w).value=++t1,!0},ownKeys:function(w){return S1(w).value,Reflect.ownKeys(w)}},_=new Proxy(f,U),$2.set(f,_),_};h2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;W2=function(f){let U,_,w,u,$;w=("."+f).split(h2),w.shift(),$=[],_=0;while(_<w.length){if(u=w[_],U=u[0],U==="."||U==="/")$.push(u.slice(1));else if(U==="[")if(u[1]==='"'||u[1]==="'")$.push(u.slice(2,-2));else $.push(+u.slice(1,-1));_+=2}return $};f3=function(f,U){let _,w;w=W2(U),_=f;for(let u of w){if(_==null)return;_=_[u]}return _};$3=function(f,U,_){let w,u;u=W2(U),w=f;for(let $=0;$<u.length;$++){let F=u[$];if($===u.length-1)w[F]=_;else{if(w[F]==null)w[F]={};w=w[F]}}return _};var w3=function(f={}){return _2(f)},f2=function(f){return f?.[M1]?f[M1]:f},R7=function(f){return f?.[g1]===!0},_3=function(f,U={}){let _,w,u,$,F,W;if(W=f2(f)||f,W[s1])return;W[s1]=!0,$=U.local?localStorage:sessionStorage,F=U.key||"__rip_app";try{if(w=$.getItem(F),w){u=JSON.parse(w);for(let Y in u){let Z=u[Y];f.data[Y]=Z}}}catch{}return _=function(){return(()=>{try{return $.setItem(F,JSON.stringify(f2(f.data)))}catch{return null}})()},J1(function(){let Y;return U2.value,Y=setTimeout(_,2000),function(){return clearTimeout(Y)}}),window.addEventListener("beforeunload",_)},A7=function(f,U={}){let _,w,u,$,F;if(_=e(U.initial||null),u=e(!1),w=e(null),$=async function(){let W;return u.value=!0,w.value=null,(async()=>{try{return W=await f(),_.value=W}catch(Y){return w.value=Y}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:$},Object.defineProperty(F,"data",{get:function(){return _.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return w.value}}),!U.lazy)$();return F};T1=function(f){return typeof f==="function"?f:function(){return f.value}};L1=function(f,U){let _;return _={read:function(){return f.read()}},Object.defineProperty(_,"value",{get:function(){return f.value},set:function(w){return U.value=w}}),_};var W3=function(f,U){let _,w;return _=T1(U),w=e(!!_()),J1(function(){let u;if(_())return u=setTimeout(function(){return w.value=!0},f),function(){return clearTimeout(u)};else return w.value=!1}),typeof U!=="function"?L1(w,U):w},Z7=function(f,U){let _,w;return _=T1(U),w=e(_()),J1(function(){let u,$;return $=_(),u=setTimeout(function(){return w.value=$},f),function(){return clearTimeout(u)}}),typeof U!=="function"?L1(w,U):w},z7=function(f,U){let _,w,u;return _=T1(U),u=e(_()),w=0,J1(function(){let $,F,W,Y;if(Y=_(),$=Date.now(),F=f-($-w),F<=0)return u.value=Y,w=$;else return W=setTimeout(function(){return u.value=_(),w=Date.now()},F),function(){return clearTimeout(W)}}),typeof U!=="function"?L1(u,U):u},Q7=function(f,U){let _,w;return _=T1(U),w=e(!!_()),J1(function(){let u;if(_())return w.value=!0;else return u=setTimeout(function(){return w.value=!1},f),function(){return clearTimeout(u)}}),typeof U!=="function"?L1(w,U):w},F3=function(){let f,U,_,w;return U=new Map,w=[],f=new Map,_=function(u,$){for(let F of w)F(u,$)},{read:function(u){return U.get(u)},write:function(u,$){let F;return F=!U.has(u),U.set(u,$),f.delete(u),_(F?"create":"change",u)},del:function(u){return U.delete(u),f.delete(u),_("delete",u)},exists:function(u){return U.has(u)},size:function(){return U.size},list:function(u=""){let $,F,W;W=[],$=u?u+"/":"";for(let[Y]of U)if(Y.startsWith($)){if(F=Y.slice($.length),F.includes("/"))continue;W.push(Y)}return W},listAll:function(u=""){let $,F;F=[],$=u?u+"/":"";for(let[W]of U)if(W.startsWith($))F.push(W);return F},load:function(u){for(let $ in u){let F=u[$];U.set($,F)}},watch:function(u){return w.push(u),function(){return w.splice(w.indexOf(u),1)}},getCompiled:function(u){return f.get(u)},setCompiled:function(u,$){return f.set(u,$)}}};r2=function(f){let U;if(U=f.replace(/\.rip$/,""),U=U.replace(/\[\.\.\.(\w+)\]/g,"*$1"),U=U.replace(/\[(\w+)\]/g,":$1"),U==="index")return"/";return U=U.replace(/\/index$/,""),"/"+U};e2=function(f){let U,_;return U=[],_=f.replace(/\*(\w+)/g,function(w,u){return U.push(u),"(.+)"}).replace(/:(\w+)/g,function(w,u){return U.push(u),"([^/]+)"}),{regex:new RegExp("^"+_+"$"),names:U}};t2=function(f,U){let _,w;for(let u of U)if(_=f.match(u.regex.regex),_){w={};for(let $=0;$<u.regex.names.length;$++){let F=u.regex.names[$];w[F]=decodeURIComponent(_[$+1])}return{route:u,params:w}}return null};c1=function(f,U="components"){let _,w,u,$,F,W,Y,Z,R;Y=[],u=new Map,_=f.listAll(U);for(let A of _){if(W=A.slice(U.length+1),!W.endsWith(".rip"))continue;if($=W.split("/").pop(),$==="_layout.rip"){w=W==="_layout.rip"?"":W.slice(0,-12),u.set(w,A);continue}if($.startsWith("_"))continue;if(Z=W.split("/"),Z.length>1&&Z.some(function(Q,X){return X<Z.length-1&&Q.startsWith("_")}))continue;R=r2(W),F=e2(R),Y.push({pattern:R,regex:F,file:A,rel:W})}return Y.sort(function(A,Q){let X,H,M,G;if(H=(A.pattern.match(/:/g)||[]).length,G=(Q.pattern.match(/:/g)||[]).length,X=A.pattern.includes("*")?1:0,M=Q.pattern.includes("*")?1:0,X!==M)return X-M;if(H!==G)return H-G;return A.pattern.localeCompare(Q.pattern)}),{routes:Y,layouts:u}};a2=function(f,U,_){let w,u,$,F;if(w=[],$=f.slice(U.length+1),F=$.split("/"),u="",_.has(""))w.push(_.get(""));for(let W=0;W<F.length;W++){let Y=F[W];if(W===F.length-1)break;if(u=u?u+"/"+Y:Y,_.has(u))w.push(_.get(u))}return w};var Y3=function(f,U={}){let _,w,u,$,F,W,Y,Z,R,A,Q,X,H,M,G,z,q,O,K,E,P;if(q=U.root||"components",R=U.base||"",A=U.hash||!1,H=U.onError||null,K=function(J){return R&&J.startsWith(R)?J.slice(R.length)||"/":J},Z=function(J){return R?R+J:J},G=function(){let J;if(A){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 A?J==="/"?location.pathname:"#"+J.slice(1):Z(J)},F=e(K(A?G():location.pathname)),$=e({}),Y=e(null),w=e([]),W=e({}),_=e(""),u=W3(100,e(!1)),E=c1(f,q),Q=new Set,f.watch(function(J,D){if(!D.startsWith(q+"/"))return;return E=c1(f,q)}),z=function(J){let D,I,S,N,B;if(N=J.split("?")[0].split("#")[0],I=K(N),I=I[0]==="/"?I:"/"+I,S=J.split("?")[1]?.split("#")[0]||"",D=J.includes("#")?J.split("#")[1]:"",B=t2(I,E.routes),B){C2(function(){return F.value=I,$.value=B.params,Y.value=B.route,w.value=a2(B.route.file,q,E.layouts),W.value=Object.fromEntries(new URLSearchParams(S)),_.value=D});for(let V of Q)V(O.current);return!0}if(H)H({status:404,path:I});return!1},M=function(){return z(G())},typeof window<"u")window.addEventListener("popstate",M);if(X=function(J){let D,I,S;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(S=new URL(I.href,location.origin),S.origin!==location.origin)return;if(I.target==="_blank"||I.hasAttribute("data-external"))return;return J.preventDefault(),D=A&&S.hash?S.hash.slice(1)||"/":S.pathname+S.search+S.hash,O.push(D)},typeof document<"u")document.addEventListener("click",X);return O={push:function(J){return z(J)?history.pushState(null,"",P(F.read())):void 0},replace:function(J){return z(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 Q.add(J),function(){return Q.delete(J)}},rebuild:function(){return E=c1(f,q)},routes:void 0,init:function(){return z(G()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",M);if(typeof document<"u")document.removeEventListener("click",X);return Q.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:F.value,params:$.value,route:Y.value,layouts:w.value,query:W.value,hash:_.value}}}),Object.defineProperty(O,"path",{get:function(){return F.value}}),Object.defineProperty(O,"params",{get:function(){return $.value}}),Object.defineProperty(O,"route",{get:function(){return Y.value}}),Object.defineProperty(O,"layouts",{get:function(){return w.value}}),Object.defineProperty(O,"query",{get:function(){return W.value}}),Object.defineProperty(O,"hash",{get:function(){return _.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};i2=function(f,U){if(f.length!==U.length)return!1;for(let _=0;_<f.length;_++)if(f[_]!==U[_])return!1;return!0};u2=function(f){for(let U in f){let _=f[U];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))return _}return typeof f.default==="function"?f.default:void 0};e1=function(f){let U;U={};for(let _ in f){let w=f[_];if(typeof w==="function"&&(w.prototype?.mount||w.prototype?._create))U[_]=w}return U};p2=function(f){let U;return U=f.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(_,w,u){return u.toUpperCase()})};n2=function(f,U="components"){let _,w,u;w={};for(let $ of f.listAll(U)){if(!$.endsWith(".rip"))continue;if(_=$.split("/").pop(),_.startsWith("_"))continue;if(u=p2($),w[u])console.warn(`[Rip] Component name collision: ${u} (${w[u]} vs ${$})`);w[u]=$}return w};v1=async function(f,U,_=null,w=null,u=null){let $,F,W,Y,Z,R,A,Q,X,H,M,G;if(_&&w){if(F=_.getCompiled(w),F)return F}if(A=U(f),u){H={};for(let z in u.map){let q=u.map[z];if(q!==w&&A.includes(`new ${z}(`)){if(!u.classes[z]){if(Y=_.read(q),Y){W=await v1(Y,U,_,q,u),Z=e1(W);for(let O in Z){let K=Z[O];u.classes[O]=K}}}if(u.classes[z])H[z]=!0}}if(X=Object.keys(H),X.length>0)M=`const {${X.join(", ")}} = globalThis['${u.key}'];
|
|
745
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");w=w.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(w);if(u&&typeof u.then==="function")return u.then(($)=>{if($!==void 0)globalThis._=$;return $});if(u!==void 0)globalThis._=u;return u}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=V2,globalThis.importRip=K1,globalThis.compileToJS=Y1,globalThis.__ripExports={compile:b1,compileToJS:Y1,formatSExpr:W1,getStdlibCode:I1,VERSION:S2,BUILD_DATE:L2,getReactiveRuntime:B1,getComponentRuntime:N1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let U=()=>T2().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});var x1={};Y2(x1,{throttle:()=>z7,stash:()=>w3,setContext:()=>u3,raw:()=>f2,persistStash:()=>_3,launch:()=>X7,isStash:()=>R7,hold:()=>Q7,hasContext:()=>s2,getContext:()=>o2,delay:()=>W3,debounce:()=>Z7,createRouter:()=>Y3,createResource:()=>A7,createRenderer:()=>R3,createComponents:()=>F3});var h2,s1,$2,M1,Z1,g1,C2,J1,e,j2,y2,b2,c2,G1,f1,v2,g2,x2,l2,k2,m2,t1,L1,T1,U2,i2,n2,c1,v1,d2,p2,r2,e1,u2,o2,a2,w2,s2,S1,_2,t2,e2,u3,f3,$3,W2,U3;globalThis.abort??=(f)=>{if(f)console.error(f);process.exit(1)};globalThis.assert??=(f,U)=>{if(!f)throw Error(U||"Assertion failed")};globalThis.exit??=(f)=>process.exit(f||0);globalThis.kind??=(f)=>f!=null?(f.constructor?.name||Object.prototype.toString.call(f).slice(8,-1)).toLowerCase():String(f);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(f)=>{return console.log(JSON.stringify(f,null,2)),f};globalThis.raise??=(f,U)=>{throw U!==void 0?new f(U):Error(f)};globalThis.rand??=(f,U)=>U!==void 0?(f>U&&([f,U]=[U,f]),Math.floor(Math.random()*(U-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((U)=>setTimeout(U,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((U,_)=>f.map((w)=>w[_]));({__state:e,__effect:J1,__batch:C2}=globalThis.__rip);({setContext:u3,getContext:o2,hasContext:s2}=globalThis.__ripComponent||{});g1=Symbol("stash");Z1=Symbol("signals");M1=Symbol("raw");s1=Symbol("persisted");$2=new WeakMap;t1=0;U2=e(0);w2=function(f,U){let _;if(!f[Z1])Object.defineProperty(f,Z1,{value:new Map,enumerable:!1});if(_=f[Z1].get(U),!_)_=e(f[U]),f[Z1].set(U,_);return _};S1=function(f){return w2(f,Symbol.for("keys"))};U3=function(f){let U;if(!(f!=null&&typeof f==="object"))return f;if(f[g1])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(U=$2.get(f),U)return U;return _2(f)};_2=function(f){let U,_;return _=null,U={get:function(w,u){let $,F;if(u===g1)return!0;if(u===M1)return w;if(typeof u==="symbol")return Reflect.get(w,u);if(u==="length"&&Array.isArray(w))return S1(w).value,w.length;if(u==="get")return function(W){return f3(_,W)};if(u==="set")return function(W,Y){return $3(_,W,Y)};if($=w2(w,u),F=$.value,F!=null&&typeof F==="object")return U3(F);return F},set:function(w,u,$){let F,W;if(F=w[u],W=$?.[M1]?$[M1]:$,W===F)return!0;if(w[u]=W,w[Z1]?.has(u))w[Z1].get(u).value=W;if(F===void 0&&W!==void 0)S1(w).value=++t1;return U2.value++,!0},deleteProperty:function(w,u){let $;if(delete w[u],$=w[Z1]?.get(u),$!=null)$.value=void 0;return S1(w).value=++t1,!0},ownKeys:function(w){return S1(w).value,Reflect.ownKeys(w)}},_=new Proxy(f,U),$2.set(f,_),_};h2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;W2=function(f){let U,_,w,u,$;w=("."+f).split(h2),w.shift(),$=[],_=0;while(_<w.length){if(u=w[_],U=u[0],U==="."||U==="/")$.push(u.slice(1));else if(U==="[")if(u[1]==='"'||u[1]==="'")$.push(u.slice(2,-2));else $.push(+u.slice(1,-1));_+=2}return $};f3=function(f,U){let _,w;w=W2(U),_=f;for(let u of w){if(_==null)return;_=_[u]}return _};$3=function(f,U,_){let w,u;u=W2(U),w=f;for(let $=0;$<u.length;$++){let F=u[$];if($===u.length-1)w[F]=_;else{if(w[F]==null)w[F]={};w=w[F]}}return _};var w3=function(f={}){return _2(f)},f2=function(f){return f?.[M1]?f[M1]:f},R7=function(f){return f?.[g1]===!0},_3=function(f,U={}){let _,w,u,$,F,W;if(W=f2(f)||f,W[s1])return;W[s1]=!0,$=U.local?localStorage:sessionStorage,F=U.key||"__rip_app";try{if(w=$.getItem(F),w){u=JSON.parse(w);for(let Y in u){let Z=u[Y];f.data[Y]=Z}}}catch{}return _=function(){return(()=>{try{return $.setItem(F,JSON.stringify(f2(f.data)))}catch{return null}})()},J1(function(){let Y;return U2.value,Y=setTimeout(_,2000),function(){return clearTimeout(Y)}}),window.addEventListener("beforeunload",_)},A7=function(f,U={}){let _,w,u,$,F;if(_=e(U.initial||null),u=e(!1),w=e(null),$=async function(){let W;return u.value=!0,w.value=null,(async()=>{try{return W=await f(),_.value=W}catch(Y){return w.value=Y}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:$},Object.defineProperty(F,"data",{get:function(){return _.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return w.value}}),!U.lazy)$();return F};T1=function(f){return typeof f==="function"?f:function(){return f.value}};L1=function(f,U){let _;return _={read:function(){return f.read()}},Object.defineProperty(_,"value",{get:function(){return f.value},set:function(w){return U.value=w}}),_};var W3=function(f,U){let _,w;return _=T1(U),w=e(!!_()),J1(function(){let u;if(_())return u=setTimeout(function(){return w.value=!0},f),function(){return clearTimeout(u)};else return w.value=!1}),typeof U!=="function"?L1(w,U):w},Z7=function(f,U){let _,w;return _=T1(U),w=e(_()),J1(function(){let u,$;return $=_(),u=setTimeout(function(){return w.value=$},f),function(){return clearTimeout(u)}}),typeof U!=="function"?L1(w,U):w},z7=function(f,U){let _,w,u;return _=T1(U),u=e(_()),w=0,J1(function(){let $,F,W,Y;if(Y=_(),$=Date.now(),F=f-($-w),F<=0)return u.value=Y,w=$;else return W=setTimeout(function(){return u.value=_(),w=Date.now()},F),function(){return clearTimeout(W)}}),typeof U!=="function"?L1(u,U):u},Q7=function(f,U){let _,w;return _=T1(U),w=e(!!_()),J1(function(){let u;if(_())return w.value=!0;else return u=setTimeout(function(){return w.value=!1},f),function(){return clearTimeout(u)}}),typeof U!=="function"?L1(w,U):w},F3=function(){let f,U,_,w;return U=new Map,w=[],f=new Map,_=function(u,$){for(let F of w)F(u,$)},{read:function(u){return U.get(u)},write:function(u,$){let F;return F=!U.has(u),U.set(u,$),f.delete(u),_(F?"create":"change",u)},del:function(u){return U.delete(u),f.delete(u),_("delete",u)},exists:function(u){return U.has(u)},size:function(){return U.size},list:function(u=""){let $,F,W;W=[],$=u?u+"/":"";for(let[Y]of U)if(Y.startsWith($)){if(F=Y.slice($.length),F.includes("/"))continue;W.push(Y)}return W},listAll:function(u=""){let $,F;F=[],$=u?u+"/":"";for(let[W]of U)if(W.startsWith($))F.push(W);return F},load:function(u){for(let $ in u){let F=u[$];U.set($,F)}},watch:function(u){return w.push(u),function(){return w.splice(w.indexOf(u),1)}},getCompiled:function(u){return f.get(u)},setCompiled:function(u,$){return f.set(u,$)}}};r2=function(f){let U;if(U=f.replace(/\.rip$/,""),U=U.replace(/\[\.\.\.(\w+)\]/g,"*$1"),U=U.replace(/\[(\w+)\]/g,":$1"),U==="index")return"/";return U=U.replace(/\/index$/,""),"/"+U};e2=function(f){let U,_;return U=[],_=f.replace(/\*(\w+)/g,function(w,u){return U.push(u),"(.+)"}).replace(/:(\w+)/g,function(w,u){return U.push(u),"([^/]+)"}),{regex:new RegExp("^"+_+"$"),names:U}};t2=function(f,U){let _,w;for(let u of U)if(_=f.match(u.regex.regex),_){w={};for(let $=0;$<u.regex.names.length;$++){let F=u.regex.names[$];w[F]=decodeURIComponent(_[$+1])}return{route:u,params:w}}return null};c1=function(f,U="components"){let _,w,u,$,F,W,Y,Z,R;Y=[],u=new Map,_=f.listAll(U);for(let A of _){if(W=A.slice(U.length+1),!W.endsWith(".rip"))continue;if($=W.split("/").pop(),$==="_layout.rip"){w=W==="_layout.rip"?"":W.slice(0,-12),u.set(w,A);continue}if($.startsWith("_"))continue;if(Z=W.split("/"),Z.length>1&&Z.some(function(Q,X){return X<Z.length-1&&Q.startsWith("_")}))continue;R=r2(W),F=e2(R),Y.push({pattern:R,regex:F,file:A,rel:W})}return Y.sort(function(A,Q){let X,H,M,O;if(H=(A.pattern.match(/:/g)||[]).length,O=(Q.pattern.match(/:/g)||[]).length,X=A.pattern.includes("*")?1:0,M=Q.pattern.includes("*")?1:0,X!==M)return X-M;if(H!==O)return H-O;return A.pattern.localeCompare(Q.pattern)}),{routes:Y,layouts:u}};a2=function(f,U,_){let w,u,$,F;if(w=[],$=f.slice(U.length+1),F=$.split("/"),u="",_.has(""))w.push(_.get(""));for(let W=0;W<F.length;W++){let Y=F[W];if(W===F.length-1)break;if(u=u?u+"/"+Y:Y,_.has(u))w.push(_.get(u))}return w};var Y3=function(f,U={}){let _,w,u,$,F,W,Y,Z,R,A,Q,X,H,M,O,z,q,G,K,E,P;if(q=U.root||"components",R=U.base||"",A=U.hash||!1,H=U.onError||null,K=function(J){return R&&J.startsWith(R)?J.slice(R.length)||"/":J},Z=function(J){return R?R+J:J},O=function(){let J;if(A){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 A?J==="/"?location.pathname:"#"+J.slice(1):Z(J)},F=e(K(A?O():location.pathname)),$=e({}),Y=e(null),w=e([]),W=e({}),_=e(""),u=W3(100,e(!1)),E=c1(f,q),Q=new Set,f.watch(function(J,D){if(!D.startsWith(q+"/"))return;return E=c1(f,q)}),z=function(J){let D,I,S,N,B;if(N=J.split("?")[0].split("#")[0],I=K(N),I=I[0]==="/"?I:"/"+I,S=J.split("?")[1]?.split("#")[0]||"",D=J.includes("#")?J.split("#")[1]:"",B=t2(I,E.routes),B){C2(function(){return F.value=I,$.value=B.params,Y.value=B.route,w.value=a2(B.route.file,q,E.layouts),W.value=Object.fromEntries(new URLSearchParams(S)),_.value=D});for(let V of Q)V(G.current);return!0}if(H)H({status:404,path:I});return!1},M=function(){return z(O())},typeof window<"u")window.addEventListener("popstate",M);if(X=function(J){let D,I,S;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(S=new URL(I.href,location.origin),S.origin!==location.origin)return;if(I.target==="_blank"||I.hasAttribute("data-external"))return;return J.preventDefault(),D=A&&S.hash?S.hash.slice(1)||"/":S.pathname+S.search+S.hash,G.push(D)},typeof document<"u")document.addEventListener("click",X);return G={push:function(J){return z(J)?history.pushState(null,"",P(F.read())):void 0},replace:function(J){return z(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 Q.add(J),function(){return Q.delete(J)}},rebuild:function(){return E=c1(f,q)},routes:void 0,init:function(){return z(O()),G},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",M);if(typeof document<"u")document.removeEventListener("click",X);return Q.clear()}},Object.defineProperty(G,"current",{get:function(){return{path:F.value,params:$.value,route:Y.value,layouts:w.value,query:W.value,hash:_.value}}}),Object.defineProperty(G,"path",{get:function(){return F.value}}),Object.defineProperty(G,"params",{get:function(){return $.value}}),Object.defineProperty(G,"route",{get:function(){return Y.value}}),Object.defineProperty(G,"layouts",{get:function(){return w.value}}),Object.defineProperty(G,"query",{get:function(){return W.value}}),Object.defineProperty(G,"hash",{get:function(){return _.value}}),Object.defineProperty(G,"navigating",{get:function(){return u.value},set:function(J){return u.value=J}}),Object.defineProperty(G,"routes",{get:function(){return E.routes}}),G};i2=function(f,U){if(f.length!==U.length)return!1;for(let _=0;_<f.length;_++)if(f[_]!==U[_])return!1;return!0};u2=function(f){for(let U in f){let _=f[U];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))return _}return typeof f.default==="function"?f.default:void 0};e1=function(f){let U;U={};for(let _ in f){let w=f[_];if(typeof w==="function"&&(w.prototype?.mount||w.prototype?._create))U[_]=w}return U};p2=function(f){let U;return U=f.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(_,w,u){return u.toUpperCase()})};n2=function(f,U="components"){let _,w,u;w={};for(let $ of f.listAll(U)){if(!$.endsWith(".rip"))continue;if(_=$.split("/").pop(),_.startsWith("_"))continue;if(u=p2($),w[u])console.warn(`[Rip] Component name collision: ${u} (${w[u]} vs ${$})`);w[u]=$}return w};v1=async function(f,U,_=null,w=null,u=null){let $,F,W,Y,Z,R,A,Q,X,H,M,O;if(_&&w){if(F=_.getCompiled(w),F)return F}if(A=U(f),u){H={};for(let z in u.map){let q=u.map[z];if(q!==w&&A.includes(`new ${z}(`)){if(!u.classes[z]){if(Y=_.read(q),Y){W=await v1(Y,U,_,q,u),Z=e1(W);for(let G in Z){let K=Z[G];u.classes[G]=K}}}if(u.classes[z])H[z]=!0}}if(X=Object.keys(H),X.length>0)M=`const {${X.join(", ")}} = globalThis['${u.key}'];
|
|
746
746
|
`,A=M+A}if(R=w?`// ${w}
|
|
747
|
-
`:"",$=new Blob([R+A],{type:"application/javascript"}),
|
|
747
|
+
`:"",$=new Blob([R+A],{type:"application/javascript"}),O=URL.createObjectURL($),Q=await import(O),u){Z=e1(Q);for(let z in Z){let q=Z[z];u.classes[z]=q}}if(_&&w)_.setCompiled(w,Q);return Q};var R3=function(f={}){let U,_,w,u,$,F,W,Y,Z,R,A,Q,X,H,M,O,z,q,G,K,E,P;if({router:K,app:U,components:$,resolver:G,compile:w,target:E,onError:z}=f,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",W=null,R=null,Z=null,Y=[],X=[],M=F,Q=0,A=null,u=new Map,H=f.cacheSize||10,_=function(){let J,D;if(W&&R){if(W.beforeUnmount)W.beforeUnmount();if(u.set(R,W),u.size>H){if(D=u.keys().next().value,J=u.get(D),J.unmounted)J.unmounted();u.delete(D)}return W=null,R=null}},P=function(){_();for(let J=X.length-1;J>=0;J--){let D=X[J];if(D.beforeUnmount)D.beforeUnmount();if(D.unmounted)D.unmounted();D._target?.remove()}return X=[],M=F},$.watch(function(J,D){let I;if(u.has(D)){if(I=u.get(D),I.unmounted)I.unmounted();return u.delete(D)}}),O=async function(J){let D,I,S,N,B,V,y,L,a,T,h,C,g,i,j,b,v,x,n,d,p,c;if({route:n,params:b,layouts:L,query:x}=J,!n)return;if(n.file===R&&JSON.stringify(b)===JSON.stringify(Z))return;return Z=b,N=++Q,K.navigating=!0,(async()=>{try{if(p=$.read(n.file),!p){if(z)z({status:404,message:`File not found: ${n.file}`});K.navigating=!1;return}if(C=await v1(p,w,$,n.file,G),N!==Q){K.navigating=!1;return}if(D=u2(C),!D){if(z)z({status:500,message:`No component found in ${n.file}`});K.navigating=!1;return}if(h=!i2(L,Y),i=W?._target,h)P();else _();if(g=h?F:M,h&&L.length>0){F.innerHTML="",g=F;for(let l of L){if(T=$.read(l),!T)continue;if(a=await v1(T,w,$,l,G),N!==Q){K.navigating=!1;return}if(I=u2(a),!I)continue;if(V=new I({app:U,params:b,router:K}),V.beforeMount)V.beforeMount();c=document.createElement("div"),c.setAttribute("data-layout",l),g.appendChild(c),V.mount(c),X.push(V),d=c.querySelector("#content")||c,g=d}Y=[...L],M=g}else if(h)F.innerHTML="",Y=[],M=F;if(S=u.get(n.file),S)u.delete(n.file),g.appendChild(S._target),W=S,R=n.file;else{if(j=document.createElement("div"),j.setAttribute("data-component",n.file),g.appendChild(j),y=new D({app:U,params:b,query:x,router:K}),y.beforeMount)y.beforeMount();if(y.mount(j),W=y,R=n.file,y.load)await y.load(b,x)}return i?.remove(),K.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(l){if(K.navigating=!1,F.style.opacity="1",console.error(`Renderer: error mounting ${n.file}:`,l),z)z({status:500,message:l.message,error:l});B=!1;for(let m=X.length-1;m>=0;m--){let s=X[m];if(s.onError)try{s.onError(l),B=!0;break}catch(r){console.error("Renderer: error boundary failed:",r)}}return(()=>{if(!B)return v=document.createElement("pre"),v.style.cssText="color:red;padding:1em",v.textContent=l.stack||l.message,F.innerHTML="",F.appendChild(v)})()}})()},q={start:function(){return A=J1(function(){let J;return J=K.current,J.route?O(J):void 0}),K.init(),q},stop:function(){if(P(),A)A(),A=null;return F.innerHTML=""},remount:function(){let J;return J=K.current,J.route?O(J):void 0},cache:u},q};d2=function(f){let U,_,w;return w=1000,_=30000,U=function(){let u;return u=new EventSource(f),u.addEventListener("connected",function(){return w=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let $ of document.querySelectorAll('link[rel="stylesheet"]'))f=new URL($.href),f.searchParams.set("_t",Date.now()),$.href=f.toString()}),u.onerror=function(){return u.close(),setTimeout(U,w),w=Math.min(w*2,_)}},U()};var X7=async function(f="",U={}){let _,w,u,$,F,W,Y,Z,R,A,Q,X,H,M,O,z,q;if(globalThis.__ripLaunched=!0,typeof f==="object")U=f,f="";if(f=f.replace(/\/+$/,""),q=U.target||"#app",W=U.compile||null,X=U.persist||!1,A=U.hash||!1,!W)W=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))Y=document.createElement("div"),Y.id=q.replace(/^#/,""),document.body.prepend(Y);if(U.bundle)u=U.bundle;else if(U.bundleUrl){if(Q={},R=`__rip_etag_${U.bundleUrl}`,$=sessionStorage.getItem(R),$)Q["If-None-Match"]=$;if(M=await fetch(U.bundleUrl,{headers:Q}),M.status===304)u=JSON.parse(sessionStorage.getItem(`${R}_data`));else if(M.ok){if(u=await M.json(),Z=M.headers.get("etag"),Z)sessionStorage.setItem(R,Z),sessionStorage.setItem(`${R}_data`,JSON.stringify(u))}else throw Error(`launch: ${U.bundleUrl} (${M.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(_=w3({components:{},routes:{},data:{}}),globalThis.__ripApp=_,u.data)_.data=u.data;if(u.routes)_.routes=u.routes;if(X&&typeof sessionStorage<"u")_3(_,{local:X==="local",key:`__rip_${f}`});if(w=F3(),u.components)w.load(u.components);if(F=`__rip_${f.replace(/\//g,"_")||"app"}`,O={map:n2(w),classes:{},key:F},typeof globalThis<"u")globalThis[F]=O.classes;if(_.data.title&&typeof document<"u")document.title=_.data.title;if(z=Y3(w,{root:"components",base:f,hash:A,onError:function(G){return console.error(`[Rip] Error ${G.status}: ${G.message||G.path}`)}}),H=R3({router:z,app:_,components:w,resolver:O,compile:W,target:q,onError:function(G){return console.error(`[Rip] ${G.message}`,G.error)}}),H.start(),u.data?.watch)d2(`${f}/watch`);if(typeof window<"u")window.app=_,window.__RIP__={app:_,components:w,router:z,renderer:H,cache:H.cache,version:"0.3.0"};return{app:_,components:w,router:z,renderer:H}};f1=function(f,U){if(!U)return;return f.preventDefault(),f.stopPropagation(),U()};b2=function(f,U){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return f1(f,U.next);case"ArrowUp":return f1(f,U.prev);case"Home":case"PageUp":return f1(f,U.first);case"End":case"PageDown":return f1(f,U.last);case"Enter":case" ":return f1(f,U.select);case"Escape":return f1(f,U.dismiss);case"Tab":return U.tab?.();default:return f.key.length===1?U.char?.(f.key):void 0}})()};v2=function(f,U,_,w=[],u=null){let $,F,W;if(!f)return;return $=function(Y){return typeof Y==="function"?Y():Y},F=(Y)=>{return![$(U),...w.map($)].some(function(Z){return Z?.contains(Y.target)})?_():void 0},W=(Y)=>{if($(U)?.contains(Y.target))return;return u?u():_()},document.addEventListener("mousedown",F),window.addEventListener("scroll",W,!0),function(){return document.removeEventListener("mousedown",F),window.removeEventListener("scroll",W,!0)}};y2=function(f,U,_,w=null){let u,$,F,W,Y,Z,R;if(F=function(A){return typeof A==="function"?A():A},$=F(U),!$)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(W=function(A){return _?.(A.newState==="open")},$.addEventListener("toggle",W),Z=$.matches(":popover-open"),u=!!f,Z!==u){R=F(w),Y=R&&u?{force:u,source:R}:{force:u};try{$.togglePopover(Y)}catch{}}return function(){return $.removeEventListener("toggle",W)}};j2=function(f,U,_,w=!0){let u,$,F,W;if($=function(Y){return typeof Y==="function"?Y():Y},u=$(U),!u?.showModal)return;if(F=function(Y){if(!w){Y.preventDefault();return}return _?.(!1)},W=function(){return _?.(!1)},u.addEventListener("cancel",F),u.addEventListener("close",W),f&&!u.open)try{u.showModal()}catch{}if(!f&&u.open)u.close();return function(){return u.removeEventListener("cancel",F),u.removeEventListener("close",W)}};x2=function(f,U,_="vertical"){let w,u;if(f.isComposing)return;return u=_!=="horizontal",w=_!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?f1(f,U.next):void 0;case"ArrowUp":return u?f1(f,U.prev):void 0;case"ArrowRight":return w?f1(f,U.next):void 0;case"ArrowLeft":return w?f1(f,U.prev):void 0;case"Home":case"PageUp":return f1(f,U.first);case"End":case"PageDown":return f1(f,U.last);case"Enter":case" ":return f1(f,U.select);case"Escape":return f1(f,U.dismiss);default:return f.key.length===1?U.char?.(f.key):void 0}})()};g2=function(f,U,_=4,w=!0){let u,$;if(!(f&&U))return;if($=f.getBoundingClientRect(),U.style.position="fixed",U.style.left=`${$.left}px`,U.style.top=`${$.bottom+_}px`,U.style.minWidth=`${$.width}px`,u=U.getBoundingClientRect(),u.bottom>window.innerHeight)U.style.top=`${$.top-u.height-_}px`;if(u.right>window.innerWidth)U.style.left=`${window.innerWidth-u.width-_}px`;return w?U.style.visibility="visible":void 0};var K7='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';l2=function(f){let U;return U=function(_){let w,u,$;if(_.key!=="Tab")return;if($=Array.from(f.querySelectorAll(K7)).filter(function(F){return F.offsetParent!==null}),!$.length)return;return w=$[0],u=$[$.length-1],_.shiftKey?document.activeElement===w?(_.preventDefault(),u.focus()):void 0:document.activeElement===u?(_.preventDefault(),w.focus()):void 0},f.addEventListener("keydown",U),function(){return f.removeEventListener("keydown",U)}};m2=function(f,U){let _,w;if(!f)return;if(w=f.querySelector("h1,h2,h3,h4,h5,h6"),w)w.id??=`${U}-title`,f.setAttribute("aria-labelledby",w.id);if(_=f.querySelector("p"),_)return _.id??=`${U}-desc`,f.setAttribute("aria-describedby",_.id)};G1=[];c2=function(f){let U;if(U=window.scrollY,G1.push({instance:f,scrollY:U}),G1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${U}px`,document.body.style.width="100%"};k2=function(f){let U,_;if(U=G1.findIndex(function(w){return w.instance===f}),U<0)return;if({scrollY:_}=G1.splice(U,1)[0],!G1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,_)};globalThis.__aria??={listNav:b2,rovingNav:x2,popupDismiss:v2,bindPopover:y2,bindDialog:j2,positionBelow:g2,trapFocus:l2,wireAria:m2,lockScroll:c2,unlockScroll:k2};globalThis.ARIA??=globalThis.__aria;K1.modules["ui.rip"]=x1;for(let[f,U]of Object.entries(x1))if(typeof U==="function")globalThis[f]=U;})();
|