toilscript 0.1.32 → 0.1.33
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/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/importmap.json +2 -2
- package/dist/toilscript.js +1 -1
- package/dist/toilscript.js.map +2 -2
- package/dist/web.js +3 -3
- package/package.json +3 -2
- package/std/assembly/toilscript.d.ts +5 -1
package/dist/toilscript.js
CHANGED
|
@@ -14,7 +14,7 @@ var ao=Object.defineProperty;var Yc=Object.getOwnPropertyDescriptor;var Fx=Objec
|
|
|
14
14
|
`," ".repeat(o-l.length),l," \u2502 ",r.substring(s,a).replaceAll(" "," "),`
|
|
15
15
|
`,u," \u2502 "];for(;s<t.start;)r.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(yi()&&c.push(ya),t.start==t.end)c.push("^");else for(;s++<t.end;){let _=r.charCodeAt(s);if(_==9)c.push("~~");else if(Bt(_)){c.push(s==t.start+1?"^":"~");break}else c.push("~")}return yi()&&c.push(kn),c.push(`
|
|
16
16
|
`),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var Ke=class{constructor(i=null){this.seen=new Map;i||(i=[]),this.diagnostics=i}emitDiagnostic(i,e,r,n,s=null,a=null,l=null){let o=ba.create(i,e,s,a,l);if(r&&(o=o.withRange(r)),n&&(o.relatedRange=n),r){let u=this.seen;if(u.has(r.source)){let c=assert(u.get(r.source));if(c.has(r.start)){let _=assert(c.get(r.start));for(let f=0,h=_.length;f<h;++f)if(_[f].equals(o))return;_.push(o)}else c.set(r.start,[o])}else{let c=new Map;c.set(r.start,[o]),u.set(r.source,c)}}this.diagnostics.push(o)}pedantic(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,0,e,null,r,n,s)}pedanticRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,0,e,r,n,s,a)}info(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,1,e,null,r,n,s)}infoRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,1,e,r,n,s,a)}warning(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,2,e,null,r,n,s)}warningRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,2,e,r,n,s,a)}error(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,3,e,null,r,n,s)}errorRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,3,e,r,n,s,a)}};var at=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.TypeName=4]="TypeName",V[V.TypeParameter=5]="TypeParameter",V[V.Parameter=6]="Parameter",V[V.Identifier=7]="Identifier",V[V.Assertion=8]="Assertion",V[V.Binary=9]="Binary",V[V.Call=10]="Call",V[V.Class=11]="Class",V[V.Comma=12]="Comma",V[V.ElementAccess=13]="ElementAccess",V[V.False=14]="False",V[V.Function=15]="Function",V[V.InstanceOf=16]="InstanceOf",V[V.Literal=17]="Literal",V[V.New=18]="New",V[V.Null=19]="Null",V[V.Omitted=20]="Omitted",V[V.Parenthesized=21]="Parenthesized",V[V.PropertyAccess=22]="PropertyAccess",V[V.Ternary=23]="Ternary",V[V.Super=24]="Super",V[V.This=25]="This",V[V.True=26]="True",V[V.Constructor=27]="Constructor",V[V.UnaryPostfix=28]="UnaryPostfix",V[V.UnaryPrefix=29]="UnaryPrefix",V[V.Compiled=30]="Compiled",V[V.Block=31]="Block",V[V.Break=32]="Break",V[V.Continue=33]="Continue",V[V.Do=34]="Do",V[V.Empty=35]="Empty",V[V.Export=36]="Export",V[V.ExportDefault=37]="ExportDefault",V[V.ExportImport=38]="ExportImport",V[V.Expression=39]="Expression",V[V.For=40]="For",V[V.ForOf=41]="ForOf",V[V.If=42]="If",V[V.Import=43]="Import",V[V.Return=44]="Return",V[V.Switch=45]="Switch",V[V.Throw=46]="Throw",V[V.Try=47]="Try",V[V.Variable=48]="Variable",V[V.Void=49]="Void",V[V.While=50]="While",V[V.Module=51]="Module",V[V.ClassDeclaration=52]="ClassDeclaration",V[V.EnumDeclaration=53]="EnumDeclaration",V[V.EnumValueDeclaration=54]="EnumValueDeclaration",V[V.FieldDeclaration=55]="FieldDeclaration",V[V.FunctionDeclaration=56]="FunctionDeclaration",V[V.ImportDeclaration=57]="ImportDeclaration",V[V.InterfaceDeclaration=58]="InterfaceDeclaration",V[V.MethodDeclaration=59]="MethodDeclaration",V[V.NamespaceDeclaration=60]="NamespaceDeclaration",V[V.TypeDeclaration=61]="TypeDeclaration",V[V.VariableDeclaration=62]="VariableDeclaration",V[V.Decorator=63]="Decorator",V[V.ExportMember=64]="ExportMember",V[V.SwitchCase=65]="SwitchCase",V[V.IndexSignature=66]="IndexSignature",V[V.Comment=67]="Comment",V))(at||{}),M=class t{constructor(i,e){this.kind=i;this.range=e}static createSimpleTypeName(i,e){return new bi(t.createIdentifierExpression(i,e),null,e)}static createNamedType(i,e,r,n){return new de(i,e,r,n)}static createFunctionType(i,e,r,n,s){return new Ir(i,e,r,n,s)}static createTupleType(i,e,r,n){return new Ta(i,e,r,n)}static createOmittedType(i){return new de(t.createSimpleTypeName("",i),null,!1,i)}static createTypeParameter(i,e,r,n){return new Aa(i,e,r,n)}static createParameter(i,e,r,n,s){return new xi(i,e,r,n,s)}static createDecorator(i,e,r){return new Ea($e.fromNode(i),i,e,r)}static createComment(i,e,r){return new va(i,e,r)}static createIdentifierExpression(i,e,r=!1){return new je(i,r,e)}static createEmptyIdentifierExpression(i){return new je("",!1,i)}static createArrayLiteralExpression(i,e){return new Rr(i,e)}static createAssertionExpression(i,e,r,n){return new Sa(i,e,r,n)}static createBinaryExpression(i,e,r,n){return new Ia(i,e,r,n)}static createCallExpression(i,e,r,n){return new Ra(i,e,r,n)}static createClassExpression(i){return new Fa(i)}static createCommaExpression(i,e){return new ka(i,e)}static createConstructorExpression(i){return new wa(i)}static createElementAccessExpression(i,e,r){return new Ca(i,e,r)}static createFalseExpression(i){return new Ka(i)}static createFloatLiteralExpression(i,e){return new Pa(i,e)}static createFunctionExpression(i){return new Ba(i)}static createInstanceOfExpression(i,e,r){return new La(i,e,r)}static createIntegerLiteralExpression(i,e){return new Lt(i,e)}static createNewExpression(i,e,r,n){return new Na(i,e,r,n)}static createNullExpression(i){return new Ma(i)}static createObjectLiteralExpression(i,e,r){return new ht(i,e,r)}static createOmittedExpression(i){return new Ga(i)}static createParenthesizedExpression(i,e){return new za(i,e)}static createPropertyAccessExpression(i,e,r){return new Nt(i,e,r)}static createRegexpLiteralExpression(i,e,r){return new Da(i,e,r)}static createTernaryExpression(i,e,r,n){return new Ua(i,e,r,n)}static createStringLiteralExpression(i,e){return new Ye(i,e)}static createSuperExpression(i){return new Va(i)}static createTemplateLiteralExpression(i,e,r,n,s){return new Oa(i,e,r,n,s)}static createThisExpression(i){return new qa(i)}static createTrueExpression(i){return new Wa(i)}static createUnaryPostfixExpression(i,e,r){return new ja(i,e,r)}static createUnaryPrefixExpression(i,e,r){return new Ha(i,e,r)}static createCompiledExpression(i,e,r){return new Qa(i,e,r)}static createBlockStatement(i,e){return new Ja(i,e)}static createBreakStatement(i,e){return new Za(i,e)}static createClassDeclaration(i,e,r,n,s,a,l,o){return new Cn(i,e,r,n,s,a,l,o)}static createContinueStatement(i,e){return new Ya(i,e)}static createDoStatement(i,e,r){return new $a(i,e,r)}static createEmptyStatement(i){return new el(i)}static createEnumDeclaration(i,e,r,n,s){return new tl(i,e,r,n,s)}static createEnumValueDeclaration(i,e,r,n){return new rl(i,e,r,n)}static createExportStatement(i,e,r,n){return new sl(i,e,r,n)}static createExportDefaultStatement(i,e){return new al(i,e)}static createExportImportStatement(i,e,r){return new il(i,e,r)}static createExportMember(i,e,r){return e||(e=i),new nl(i,e,r)}static createExpressionStatement(i){return new ll(i)}static createIfStatement(i,e,r,n){return new cl(i,e,r,n)}static createImportStatement(i,e,r){return new Bn(i,null,e,r)}static createWildcardImportStatement(i,e,r){return new Bn(null,i,e,r)}static createImportDeclaration(i,e,r){return e||(e=i),new _l(e,i,r)}static createInterfaceDeclaration(i,e,r,n,s,a,l,o){return new fl(i,e,r,n,s,a,l,o)}static createFieldDeclaration(i,e,r,n,s,a){return new ol(i,e,r,n,s,-1,a)}static createForStatement(i,e,r,n,s){return new ul(i,e,r,n,s)}static createForOfStatement(i,e,r,n){return new pl(i,e,r,n)}static createFunctionDeclaration(i,e,r,n,s,a,l,o){return new Pn(i,e,r,n,s,a,l,o)}static createIndexSignature(i,e,r,n){return new Xa(i,e,r,n)}static createMethodDeclaration(i,e,r,n,s,a,l){return new Fr(i,e,r,n,s,a,l)}static createNamespaceDeclaration(i,e,r,n,s){return new hl(i,e,r,n,s)}static createReturnStatement(i,e){return new dl(i,e)}static createSwitchStatement(i,e,r){return new yl(i,e,r)}static createSwitchCase(i,e,r){return new ml(i,e,r)}static createThrowStatement(i,e){return new gl(i,e)}static createTryStatement(i,e,r,n,s){return new bl(i,e,r,n,s)}static createTypeDeclaration(i,e,r,n,s,a){return new Tl(i,e,r,n,s,a)}static createModuleDeclaration(i,e,r){return new xl(i,e,r)}static createVariableStatement(i,e,r){return new El(i,e,r)}static createVariableDeclaration(i,e,r,n,s,a){return new Al(i,e,r,n,s,a)}static createVoidStatement(i,e){return new vl(i,e)}static createWhileStatement(i,e,r){return new Sl(i,e,r)}isLiteralKind(i){return this.kind==17&&changetype(this).literalKind==i}get isNumericLiteral(){if(this.kind==17)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 17:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 19:case 26:case 14:return!0}return!1}isAccessOn(i){let e=changetype(this);return e.kind==10&&(e=e.expression),e.kind==22&&e.expression.kind==i}get isAccessOnThis(){return this.isAccessOn(25)}get isAccessOnSuper(){return this.isAccessOn(24)}get isEmpty(){return this.kind==35}},gi=class extends M{constructor(e,r,n){super(e,n);this.isNullable=r;this.currentlyResolving=!1}hasGenericComponent(e){if(this.kind==1){let r=changetype(this);if(!r.name.next){let n=r.typeArguments;if(n&&n.length>0){for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else{let s=r.name.identifier.text;for(let a=0,l=e.length;a<l;++a)if(e[a].name.text==s)return!0}}}else if(this.kind==2){let r=changetype(this),n=r.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(r.returnType.hasGenericComponent(e))return!0;let s=r.explicitThisType;if(s&&s.hasGenericComponent(e))return!0}else if(this.kind==3){let n=changetype(this).elements;for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else assert(!1);return!1}},bi=class extends M{constructor(e,r,n){super(4,n);this.identifier=e;this.next=r}},de=class extends gi{constructor(e,r,n,s){super(1,n,s);this.name=e;this.typeArguments=r}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Ir=class extends gi{constructor(e,r,n,s,a){super(2,s,a);this.parameters=e;this.returnType=r;this.explicitThisType=n}},Ta=class extends gi{constructor(e,r,n,s){super(3,n,s);this.elements=e;this.elementNames=r}},Aa=class extends M{constructor(e,r,n,s){super(5,s);this.name=e;this.extendsType=r;this.defaultType=n}},kr=(r=>(r[r.Default=0]="Default",r[r.Optional=1]="Optional",r[r.Rest=2]="Rest",r))(kr||{}),xi=class extends M{constructor(e,r,n,s,a){super(6,a);this.parameterKind=e;this.name=r;this.type=n;this.initializer=s;this.implicitFieldDeclaration=null;this.flags=0}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},$e=(Q=>(Q[Q.Custom=0]="Custom",Q[Q.Global=1]="Global",Q[Q.Operator=2]="Operator",Q[Q.OperatorBinary=3]="OperatorBinary",Q[Q.OperatorPrefix=4]="OperatorPrefix",Q[Q.OperatorPostfix=5]="OperatorPostfix",Q[Q.Unmanaged=6]="Unmanaged",Q[Q.Final=7]="Final",Q[Q.Inline=8]="Inline",Q[Q.External=9]="External",Q[Q.ExternalJs=10]="ExternalJs",Q[Q.Builtin=11]="Builtin",Q[Q.Lazy=12]="Lazy",Q[Q.Unsafe=13]="Unsafe",Q[Q.Main=14]="Main",Q[Q.Data=15]="Data",Q[Q.Remote=16]="Remote",Q[Q.Service=17]="Service",Q[Q.Rest=18]="Rest",Q[Q.Route=19]="Route",Q[Q.Get=20]="Get",Q[Q.Post=21]="Post",Q[Q.Put=22]="Put",Q[Q.Delete=23]="Delete",Q[Q.Patch=24]="Patch",Q[Q.Head=25]="Head",Q[Q.Options=26]="Options",Q[Q.Cache=27]="Cache",Q[Q.Auth=28]="Auth",Q[Q.User=29]="User",Q[Q.Ratelimit=30]="Ratelimit",Q[Q.Database=31]="Database",Q[Q.Collection=32]="Collection",Q[Q.Query=33]="Query",Q[Q.Action=34]="Action",Q[Q.Job=35]="Job",Q[Q.Derive=36]="Derive",Q[Q.Admin=37]="Admin",Q))($e||{});(i=>{function t(e){if(e.kind==7){let r=e.text;switch(assert(r.length),r.charCodeAt(0)){case 97:{if(r=="auth")return 28;if(r=="action")return 34;if(r=="admin")return 37;break}case 98:{if(r=="builtin")return 11;break}case 99:{if(r=="cache")return 27;if(r=="collection")return 32;break}case 100:{if(r=="data")return 15;if(r=="del")return 23;if(r=="database")return 31;if(r=="derive")return 36;break}case 101:{if(r=="external")return 9;break}case 102:{if(r=="final")return 7;break}case 103:{if(r=="global")return 1;if(r=="get")return 20;break}case 104:{if(r=="head")return 25;break}case 105:{if(r=="inline")return 8;break}case 106:{if(r=="job")return 35;break}case 108:{if(r=="lazy")return 12;break}case 109:{if(r=="main")return 14;break}case 111:{if(r=="operator")return 2;if(r=="options")return 26;break}case 112:{if(r=="post")return 21;if(r=="put")return 22;if(r=="patch")return 24;break}case 113:{if(r=="query")return 33;break}case 114:{if(r=="ratelimit")return 30;if(r=="remote")return 16;if(r=="rest")return 18;if(r=="route")return 19;break}case 115:{if(r=="service")return 17;break}case 117:{if(r=="unmanaged")return 6;if(r=="unsafe")return 13;if(r=="user")return 29;break}}}else if(e.kind==22){let r=e,n=r.expression;if(n.kind==7){let s=n.text;assert(s.length);let a=r.property.text;if(assert(a.length),s=="operator")switch(a.charCodeAt(0)){case 98:{if(a=="binary")return 3;break}case 112:{if(a=="prefix")return 4;if(a=="postfix")return 5;break}}else if(s=="external")switch(a.charCodeAt(0)){case 106:{if(a=="js")return 10;break}}}}return 0}i.fromNode=t})($e||={});var Ea=class extends M{constructor(e,r,n,s){super(63,s);this.decoratorKind=e;this.name=r;this.args=n}},Ep=(r=>(r[r.Line=0]="Line",r[r.Triple=1]="Triple",r[r.Block=2]="Block",r))(Ep||{}),va=class extends M{constructor(e,r,n){super(67,n);this.commentKind=e;this.text=r}},ye=class extends M{},je=class extends ye{constructor(e,r,n){super(7,n);this.text=e;this.isQuoted=r}},$t=(l=>(l[l.Float=0]="Float",l[l.Integer=1]="Integer",l[l.String=2]="String",l[l.Template=3]="Template",l[l.RegExp=4]="RegExp",l[l.Array=5]="Array",l[l.Object=6]="Object",l))($t||{}),ft=class extends ye{constructor(e,r){super(17,r);this.literalKind=e}},Rr=class extends ft{constructor(e,r){super(5,r);this.elementExpressions=e}},Ai=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Ai||{}),Sa=class extends ye{constructor(e,r,n,s){super(8,s);this.assertionKind=e;this.expression=r;this.toType=n}},Ia=class extends ye{constructor(e,r,n,s){super(9,s);this.operator=e;this.left=r;this.right=n}},Ra=class extends ye{constructor(e,r,n,s){super(10,s);this.expression=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)?le.join(e[0].range,e[r-1].range):this.expression.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.expression.range}},Fa=class extends ye{constructor(e){super(11,e.range);this.declaration=e}},ka=class extends ye{constructor(e,r){super(12,r);this.expressions=e}},wa=class extends je{constructor(i){super("constructor",!1,i),this.kind=27}},Ca=class extends ye{constructor(e,r,n){super(13,n);this.expression=e;this.elementExpression=r}},Pa=class extends ft{constructor(e,r){super(0,r);this.value=e}},Ba=class extends ye{constructor(e){super(15,e.range);this.declaration=e}},La=class extends ye{constructor(e,r,n){super(16,n);this.expression=e;this.isType=r}},Lt=class extends ft{constructor(e,r){super(1,r);this.value=e}},Na=class extends ye{constructor(e,r,n,s){super(18,s);this.typeName=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)>0?le.join(e[0].range,e[r-1].range):this.typeName.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.typeName.range}},Ma=class extends je{constructor(i){super("null",!1,i),this.kind=19}},ht=class extends ft{constructor(e,r,n){super(6,n);this.names=e;this.values=r}},Ga=class extends ye{constructor(i){super(20,i)}},za=class extends ye{constructor(e,r){super(21,r);this.expression=e}},Nt=class extends ye{constructor(e,r,n){super(22,n);this.expression=e;this.property=r}},Da=class extends ft{constructor(e,r,n){super(4,n);this.pattern=e;this.patternFlags=r}},Ua=class extends ye{constructor(e,r,n,s){super(23,s);this.condition=e;this.ifThen=r;this.ifElse=n}},Ye=class extends ft{constructor(e,r){super(2,r);this.value=e}},Va=class extends je{constructor(i){super("super",!1,i),this.kind=24}},Oa=class extends ft{constructor(e,r,n,s,a){super(3,a);this.tag=e;this.parts=r;this.rawParts=n;this.expressions=s}},qa=class extends je{constructor(i){super("this",!1,i),this.kind=25}},Wa=class extends je{constructor(i){super("true",!1,i),this.kind=26}},Ka=class extends je{constructor(i){super("false",!1,i),this.kind=14}},wn=class extends ye{constructor(e,r,n,s){super(e,s);this.operator=r;this.operand=n}},ja=class extends wn{constructor(i,e,r){super(28,i,e,r)}},Ha=class extends wn{constructor(i,e,r){super(29,i,e,r)}},Qa=class extends ye{constructor(e,r,n){super(30,n);this.expr=e;this.type=r}},oe=class extends M{},Ei=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Ei||{}),ce=class t extends M{constructor(e,r,n){super(0,new le(0,n.length));this.sourceKind=e;this.normalizedPath=r;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=Ln(r);this.internalPath=s;let a=s.lastIndexOf(it);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=t._native;return e||(t._native=e=new t(3,ct+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==t._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let r=this.lineCache;if(!r){this.lineCache=r=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&r.push(l);r.push(2147483647)}let n=0,s=r.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(r[a]);if(e<l)s=a;else{if(e<unchecked(r[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},Ue=class extends oe{constructor(e,r,n,s,a){super(e,a);this.name=r;this.decorators=n;this.flags=s;this.overriddenModuleName=null}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},Xa=class extends M{constructor(e,r,n,s){super(66,s);this.keyType=e;this.valueType=r;this.flags=n}},Ti=class extends Ue{constructor(e,r,n,s,a,l,o){super(e,r,n,s,o);this.type=a;this.initializer=l}},Ja=class extends oe{constructor(e,r){super(31,r);this.statements=e}},Za=class extends oe{constructor(e,r){super(32,r);this.label=e}},Cn=class extends Ue{constructor(e,r,n,s,a,l,o,u){super(52,e,r,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},Ya=class extends oe{constructor(e,r){super(33,r);this.label=e}},$a=class extends oe{constructor(e,r,n){super(34,n);this.body=e;this.condition=r}},el=class extends oe{constructor(i){super(35,i)}},tl=class extends Ue{constructor(e,r,n,s,a){super(53,e,r,n,a);this.values=s}},rl=class extends Ti{constructor(i,e,r,n){super(54,i,null,e,null,r,n)}},il=class extends oe{constructor(e,r,n){super(38,n);this.name=e;this.externalName=r}},nl=class extends M{constructor(e,r,n){super(64,n);this.localName=e;this.exportedName=r}},sl=class extends oe{constructor(e,r,n,s){super(36,s);this.members=e;this.path=r;this.isDeclare=n;if(r){let a=Sr(r.value);r.value.startsWith(".")?a=da(a,s.source.internalPath):a.startsWith(ct)||(a=ct+a),this.internalPath=a}else this.internalPath=null}},al=class extends oe{constructor(e,r){super(37,r);this.declaration=e}},ll=class extends oe{constructor(e){super(39,e.range);this.expression=e}},ol=class extends Ti{constructor(e,r,n,s,a,l,o){super(55,e,r,n,s,a,o);this.parameterIndex=l}},ul=class extends oe{constructor(e,r,n,s,a){super(40,a);this.initializer=e;this.condition=r;this.incrementor=n;this.body=s}},pl=class extends oe{constructor(e,r,n,s){super(41,s);this.variable=e;this.iterable=r;this.body=n}},vi=(r=>(r[r.None=0]="None",r[r.Parenthesized=1]="Parenthesized",r[r.Single=2]="Single",r))(vi||{}),Pn=class t extends Ue{constructor(e,r,n,s,a,l,o,u){super(56,e,r,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new t(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},cl=class extends oe{constructor(e,r,n,s){super(42,s);this.condition=e;this.ifTrue=r;this.ifFalse=n}},_l=class extends Ue{constructor(e,r,n){super(57,e,null,0,n);this.foreignName=r}},Bn=class extends oe{constructor(e,r,n,s){super(43,s);this.declarations=e;this.namespaceName=r;this.path=n;let a=Sr(n.value);n.value.startsWith(".")?a=da(a,s.source.internalPath):a.startsWith(ct)||(a=ct+a),this.internalPath=Ln(a)}},fl=class extends Cn{constructor(i,e,r,n,s,a,l,o){super(i,e,r,n,s,a,l,o),this.kind=58}},Fr=class extends Pn{constructor(i,e,r,n,s,a,l){super(i,e,r,n,s,a,0,l),this.kind=59}},hl=class extends Ue{constructor(e,r,n,s,a){super(60,e,r,n,a);this.members=s}},dl=class extends oe{constructor(e,r){super(44,r);this.value=e}},ml=class extends M{constructor(e,r,n){super(65,n);this.label=e;this.statements=r}get isDefault(){return this.label==null}},yl=class extends oe{constructor(e,r,n){super(45,n);this.condition=e;this.cases=r}},gl=class extends oe{constructor(e,r){super(46,r);this.value=e}},bl=class extends oe{constructor(e,r,n,s,a){super(47,a);this.bodyStatements=e;this.catchVariable=r;this.catchStatements=n;this.finallyStatements=s}},xl=class extends oe{constructor(e,r,n){super(51,n);this.moduleName=e;this.flags=r}},Tl=class extends Ue{constructor(e,r,n,s,a,l){super(61,e,r,n,l);this.typeParameters=s;this.type=a}},Al=class extends Ti{constructor(i,e,r,n,s,a){super(62,i,e,r,n,s,a)}},El=class extends oe{constructor(e,r,n){super(48,n);this.decorators=e;this.declarations=r}},vl=class extends oe{constructor(e,r){super(49,r);this.expression=e}},Sl=class extends oe{constructor(e,r,n){super(50,n);this.condition=e;this.body=r}};function Mt(t,i){if(i)for(let e=0,r=i.length;e<r;++e){let n=i[e];if(n.decoratorKind==t)return n}return null}function Ln(t){return t.endsWith("/")?t+="index":t.endsWith(".ts")&&(t=t.substring(0,t.length-3)),t}function ke(t){if(t.kind==1){let i=t.name;return!(i.next||i.identifier.text.length>0)}return!1}var Si=(B=>(B[B.Abstract=0]="Abstract",B[B.As=1]="As",B[B.Async=2]="Async",B[B.Await=3]="Await",B[B.Break=4]="Break",B[B.Case=5]="Case",B[B.Catch=6]="Catch",B[B.Class=7]="Class",B[B.Const=8]="Const",B[B.Continue=9]="Continue",B[B.Constructor=10]="Constructor",B[B.Debugger=11]="Debugger",B[B.Declare=12]="Declare",B[B.Default=13]="Default",B[B.Delete=14]="Delete",B[B.Do=15]="Do",B[B.Else=16]="Else",B[B.Enum=17]="Enum",B[B.Export=18]="Export",B[B.Extends=19]="Extends",B[B.False=20]="False",B[B.Finally=21]="Finally",B[B.For=22]="For",B[B.From=23]="From",B[B.Function=24]="Function",B[B.Get=25]="Get",B[B.If=26]="If",B[B.Implements=27]="Implements",B[B.Import=28]="Import",B[B.In=29]="In",B[B.InstanceOf=30]="InstanceOf",B[B.Interface=31]="Interface",B[B.Is=32]="Is",B[B.KeyOf=33]="KeyOf",B[B.Let=34]="Let",B[B.Module=35]="Module",B[B.Namespace=36]="Namespace",B[B.New=37]="New",B[B.Null=38]="Null",B[B.Of=39]="Of",B[B.Override=40]="Override",B[B.Package=41]="Package",B[B.Private=42]="Private",B[B.Protected=43]="Protected",B[B.Public=44]="Public",B[B.Readonly=45]="Readonly",B[B.Return=46]="Return",B[B.Set=47]="Set",B[B.Static=48]="Static",B[B.Super=49]="Super",B[B.Switch=50]="Switch",B[B.This=51]="This",B[B.Throw=52]="Throw",B[B.True=53]="True",B[B.Try=54]="Try",B[B.Type=55]="Type",B[B.TypeOf=56]="TypeOf",B[B.Var=57]="Var",B[B.Void=58]="Void",B[B.While=59]="While",B[B.With=60]="With",B[B.Yield=61]="Yield",B[B.OpenBrace=62]="OpenBrace",B[B.CloseBrace=63]="CloseBrace",B[B.OpenParen=64]="OpenParen",B[B.CloseParen=65]="CloseParen",B[B.OpenBracket=66]="OpenBracket",B[B.CloseBracket=67]="CloseBracket",B[B.Dot=68]="Dot",B[B.Dot_Dot_Dot=69]="Dot_Dot_Dot",B[B.Semicolon=70]="Semicolon",B[B.Comma=71]="Comma",B[B.LessThan=72]="LessThan",B[B.GreaterThan=73]="GreaterThan",B[B.LessThan_Equals=74]="LessThan_Equals",B[B.GreaterThan_Equals=75]="GreaterThan_Equals",B[B.Equals_Equals=76]="Equals_Equals",B[B.Exclamation_Equals=77]="Exclamation_Equals",B[B.Equals_Equals_Equals=78]="Equals_Equals_Equals",B[B.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",B[B.Equals_GreaterThan=80]="Equals_GreaterThan",B[B.Plus=81]="Plus",B[B.Minus=82]="Minus",B[B.Asterisk_Asterisk=83]="Asterisk_Asterisk",B[B.Asterisk=84]="Asterisk",B[B.Slash=85]="Slash",B[B.Percent=86]="Percent",B[B.Plus_Plus=87]="Plus_Plus",B[B.Minus_Minus=88]="Minus_Minus",B[B.LessThan_LessThan=89]="LessThan_LessThan",B[B.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",B[B.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",B[B.Ampersand=92]="Ampersand",B[B.Bar=93]="Bar",B[B.Caret=94]="Caret",B[B.Exclamation=95]="Exclamation",B[B.Tilde=96]="Tilde",B[B.Ampersand_Ampersand=97]="Ampersand_Ampersand",B[B.Bar_Bar=98]="Bar_Bar",B[B.Question=99]="Question",B[B.Colon=100]="Colon",B[B.Equals=101]="Equals",B[B.Plus_Equals=102]="Plus_Equals",B[B.Minus_Equals=103]="Minus_Equals",B[B.Asterisk_Equals=104]="Asterisk_Equals",B[B.Asterisk_Asterisk_Equals=105]="Asterisk_Asterisk_Equals",B[B.Slash_Equals=106]="Slash_Equals",B[B.Percent_Equals=107]="Percent_Equals",B[B.LessThan_LessThan_Equals=108]="LessThan_LessThan_Equals",B[B.GreaterThan_GreaterThan_Equals=109]="GreaterThan_GreaterThan_Equals",B[B.GreaterThan_GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_GreaterThan_Equals",B[B.Ampersand_Equals=111]="Ampersand_Equals",B[B.Bar_Equals=112]="Bar_Equals",B[B.Caret_Equals=113]="Caret_Equals",B[B.At=114]="At",B[B.Identifier=115]="Identifier",B[B.StringLiteral=116]="StringLiteral",B[B.IntegerLiteral=117]="IntegerLiteral",B[B.FloatLiteral=118]="FloatLiteral",B[B.TemplateLiteral=119]="TemplateLiteral",B[B.Invalid=120]="Invalid",B[B.EndOfFile=121]="EndOfFile",B))(Si||{}),Sp=(r=>(r[r.Default=0]="Default",r[r.Prefer=1]="Prefer",r[r.Always=2]="Always",r))(Sp||{});function Vy(t){let i=t.length;switch(assert(i),t.charCodeAt(0)){case 97:{if(i==5){if(t=="async")return 2;if(t=="await")return 3;break}if(t=="as")return 1;if(t=="abstract")return 0;break}case 98:{if(t=="break")return 4;break}case 99:{if(i==5){if(t=="const")return 8;if(t=="class")return 7;if(t=="catch")return 6;break}if(t=="case")return 5;if(t=="continue")return 9;if(t=="constructor")return 10;break}case 100:{if(i==7){if(t=="default")return 13;if(t=="declare")return 12;break}if(t=="do")return 15;if(t=="delete")return 14;if(t=="debugger")return 11;break}case 101:{if(i==4){if(t=="else")return 16;if(t=="enum")return 17;break}if(t=="export")return 18;if(t=="extends")return 19;break}case 102:{if(i<=5){if(t=="false")return 20;if(t=="for")return 22;if(t=="from")return 23;break}if(t=="function")return 24;if(t=="finally")return 21;break}case 103:{if(t=="get")return 25;break}case 105:{if(i==2){if(t=="if")return 26;if(t=="in")return 29;if(t=="is")return 32;break}switch(t.charCodeAt(3)){case 108:{if(t=="implements")return 27;break}case 111:{if(t=="import")return 28;break}case 116:{if(t=="instanceof")return 30;break}case 101:{if(t=="interface")return 31;break}}break}case 107:{if(t=="keyof")return 33;break}case 108:{if(t=="let")return 34;break}case 109:{if(t=="module")return 35;break}case 110:{if(t=="new")return 37;if(t=="null")return 38;if(t=="namespace")return 36;break}case 111:{if(t=="of")return 39;if(t=="override")return 40;break}case 112:{if(i==7){if(t=="private")return 42;if(t=="package")return 41;break}if(t=="public")return 44;if(t=="protected")return 43;break}case 114:{if(t=="return")return 46;if(t=="readonly")return 45;break}case 115:{if(i==6){if(t=="switch")return 50;if(t=="static")return 48;break}if(t=="set")return 47;if(t=="super")return 49;break}case 116:{if(i==4){if(t=="true")return 53;if(t=="this")return 51;if(t=="type")return 55;break}if(t=="try")return 54;if(t=="throw")return 52;if(t=="typeof")return 56;break}case 118:{if(t=="var")return 57;if(t=="void")return 58;break}case 119:{if(t=="while")return 59;if(t=="with")return 60;break}case 121:{if(t=="yield")return 61;break}}return 120}function Oy(t){switch(t){case 0:case 1:case 10:case 12:case 14:case 23:case 22:case 25:case 30:case 32:case 33:case 35:case 36:case 38:case 45:case 47:case 55:case 58:return!0;default:return!1}}function Ip(t){switch(assert(t.length),t.charCodeAt(0)){case 100:return t=="delete";case 102:return t=="for";case 105:return t=="instanceof";case 110:return t=="null";case 118:return t=="void"}return!1}function Ie(t){switch(t){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 56:return"typeof";case 58:return"void";case 61:return"yield";case 69:return"...";case 71:return",";case 72:return"<";case 73:return">";case 74:return"<=";case 75:return">=";case 76:return"==";case 77:return"!=";case 78:return"===";case 79:return"!==";case 81:return"+";case 82:return"-";case 83:return"**";case 84:return"*";case 85:return"/";case 86:return"%";case 87:return"++";case 88:return"--";case 89:return"<<";case 90:return">>";case 91:return">>>";case 92:return"&";case 93:return"|";case 94:return"^";case 95:return"!";case 96:return"~";case 97:return"&&";case 98:return"||";case 101:return"=";case 102:return"+=";case 103:return"-=";case 104:return"*=";case 105:return"**=";case 106:return"/=";case 107:return"%=";case 108:return"<<=";case 109:return">>=";case 110:return">>>=";case 111:return"&=";case 112:return"|=";case 113:return"^=";default:return assert(!1),""}}var wr=class extends Ke{constructor(e,r=null){super(r);this.end=0;this.pos=0;this.token=-1;this.tokenPos=0;this.nextToken=-1;this.nextTokenPos=0;this.nextTokenOnNewLine=2;this.onComment=null;this.readingTemplateString=!1;this.readStringStart=0;this.readStringEnd=0;r||(r=[]),this.diagnostics=r,this.source=e;let n=e.text,s=n.length,a=0;if(a<s&&n.charCodeAt(a)==65279&&++a,a+1<s&&n.charCodeAt(a)==35&&n.charCodeAt(a+1)==33)for(a+=2;a<s&&n.charCodeAt(a)!=10;)++a;this.pos=a,this.end=s}next(e=0){this.clearNextToken();let r;do r=this.unsafeNext(e);while(r==120);return this.token=r,r}unsafeNext(e=0,r=i32.MAX_VALUE){let n=this.source.text,s=this.end,a=this.pos;for(;a<s;){this.tokenPos=a;let l=n.charCodeAt(a);switch(l){case 13:if(!(++a<s&&n.charCodeAt(a)==10))break;case 10:case 9:case 11:case 12:case 32:{++a;break}case 33:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,79):(this.pos=a,77)):(this.pos=a,95);case 34:case 39:return this.pos=a,116;case 96:return this.pos=a,119;case 37:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,107):(this.pos=a,86);case 38:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,97;if(o==61)return this.pos=a+1,111}return this.pos=a,92}case 40:return this.pos=a+1,64;case 41:return this.pos=a+1,65;case 42:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,104;if(o==42)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,105):(this.pos=a,83)}return this.pos=a,84}case 43:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,87;if(o==61)return this.pos=a+1,102}return this.pos=a,81}case 44:return this.pos=a+1,71;case 45:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 46:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(st(o))return this.pos=a-1,118;if(r>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,69}return this.pos=a,68}case 47:{let o=a;if(++a,r>1&&a<s){let u=n.charCodeAt(a);if(u==47){let c=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,c=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(c,n.substring(o,a),this.range(o,a));break}if(u==42){let c=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,c=!0;break}c?this.onComment&&this.onComment(2,n.substring(o,a),this.range(o,a)):this.error(1005,this.range(a),"*/");break}if(u==61)return this.pos=a+1,106}return this.pos=a,85}case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.pos=a,this.testInteger()?117:118;case 58:return this.pos=a+1,100;case 59:return this.pos=a+1,70;case 60:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,89);if(o==61)return this.pos=a+1,74}return this.pos=a,72}case 61:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,78):(this.pos=a,76);if(o==62)return this.pos=a+1,80}return this.pos=a,101}case 62:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,r>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,r>3&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,110):(this.pos=a,91);if(o==61)return this.pos=a+1,109}return this.pos=a,90}if(o==61)return this.pos=a+1,75}return this.pos=a,73}case 63:return this.pos=a+1,99;case 91:return this.pos=a+1,66;case 93:return this.pos=a+1,67;case 94:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,113):(this.pos=a,94);case 123:return this.pos=a+1,62;case 124:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 125:return this.pos=a+1,63;case 126:return this.pos=a+1,96;case 64:return this.pos=a+1,114;default:{if(hi(l)&&a+1<s&&(l=Rn(l,n.charCodeAt(a+1))),di(l)){let u=a;for(;(a+=Er(l))<s&&mi(l=n.codePointAt(a)););if(e!=2){let c=Vy(n.substring(u,a));if(c!=120&&!(e==1&&Oy(c)))return this.pos=a,c}return this.pos=u,115}else if(Sn(l)){++a;break}let o=a;return a+=Er(l),this.error(1127,this.range(o,a)),this.pos=a,120}}}return this.pos=a,121}peek(e=0,r=i32.MAX_VALUE){let n=this.nextToken;if(n<0){let s=this.pos,a=this.token,l=this.tokenPos;do n=this.unsafeNext(e,r);while(n==120);this.nextToken=n,this.nextTokenPos=this.tokenPos,this.nextTokenOnNewLine=2,this.pos=s,this.token=a,this.tokenPos=l}return n}peekOnNewLine(){switch(this.nextTokenOnNewLine){case 0:return!1;case 1:return!0}this.peek();let e=this.source.text;for(let r=this.pos,n=this.nextTokenPos;r<n;++r)if(Bt(e.charCodeAt(r)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(115,e)}skip(e,r=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==73&&(l=1);let o;do o=this.unsafeNext(r,l);while(o==120);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=vp;return e?(vp=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Il(this.pos,this.token,this.tokenPos),e}discard(e){vp=e}reset(e){this.pos=e.pos,this.token=e.token,this.tokenPos=e.tokenPos,this.clearNextToken()}clearNextToken(){this.nextToken=-1,this.nextTokenPos=0,this.nextTokenOnNewLine=2}range(e=-1,r=-1){e<0?(e=this.tokenPos,r=this.pos):r<0&&(r=e);let n=new le(e,r);return n.source=this.source,n}readIdentifier(){let e=this.source.text,r=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(di(a));(n+=Er(a))<r&&mi(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,r=!1){let n=this.source.text,s=this.end,a=this.pos;e||(e=n.charCodeAt(a++));let l=a;this.readStringStart=l;let o="";for(;;){if(a>=s){o+=n.substring(l,a),this.error(1002,this.range(l-1,s)),this.readStringEnd=s;break}let u=n.charCodeAt(a);if(u==e){this.readStringEnd=a,o+=n.substring(l,a++);break}if(u==92){o+=n.substring(l,a),this.pos=a,o+=this.readEscapeSequence(r),a=this.pos,l=a;continue}if(e==96){if(u==36&&a+1<s&&n.charCodeAt(a+1)==123)return o+=n.substring(l,a),this.readStringEnd=a,this.pos=a+2,this.readingTemplateString=!0,o}else if(Bt(u)){o+=n.substring(l,a),this.error(1002,this.range(l-1,a)),this.readStringEnd=a;break}++a}return this.pos=a,this.readingTemplateString=!1,o}readEscapeSequence(e=!1){let r=this.pos,n=this.end;if(++this.pos>=n)return this.error(1126,this.range(n)),"";let s=this.source.text,a=s.charCodeAt(this.pos++);switch(a){case 48:return e&&this.pos<n&&st(s.charCodeAt(this.pos))?(++this.pos,s.substring(r,this.pos)):"\0";case 98:return"\b";case 116:return" ";case 110:return`
|
|
17
|
-
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?r:-1)):this.readUnicodeEscape(e?r:-1);case 120:return this.readHexadecimalEscape(2,e?r:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,r=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(r,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Bt(a)){this.error(1161,this.range(r,this.pos));break}++this.pos,s=!1}return e.substring(r,this.pos)}readRegexpFlags(){let e=this.source.text,r=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!mi(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(r,this.pos)),e.substring(r,this.pos)}testInteger(){let e=this.source.text,r=this.pos,n=this.end;if(r+1<n&&e.charCodeAt(r)==48)switch(e.charCodeAt(r+2)|32){case 120:case 98:case 111:return!0}for(;r<n;){let s=e.charCodeAt(r);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;r++}return!0}readInteger(){let e=this.source.text,r=this.pos;if(r+2<this.end&&e.charCodeAt(r)==48){switch(e.charCodeAt(r+1)|32){case 120:return this.pos=r+2,this.readHexInteger();case 98:return this.pos=r+2,this.readBinaryInteger();case 111:return this.pos=r+2,this.readOctalInteger()}if(ha(e.charCodeAt(r+1))){let n=r;this.pos=r+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(Fn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1125,this.range(s)):a==r&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readDecimalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==r?this.error(a==s?6188:6189,this.range(r)):r-1==s&&e.charCodeAt(r-1)==48&&this.error(6188,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1124,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,r),this.source.text.substring(s,r)),this.pos=r,l}readOctalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(ha(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1178,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readBinaryInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=l,u=!1;for(;r<n;){let c=e.charCodeAt(r);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt(l,o)&&(u=!0),l=o,++r}return r==s?this.error(1177,this.range(s)):a==r?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,r=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<r&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<r){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<r&&(l=e.charCodeAt(this.pos))==45||l==43&&st(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let r=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=r.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&r.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!st(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,r=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(st(o))n=(n<<4)+o-48;else if(Fn(o))n=(n<<4)+(o|32)+-87;else return~r?(this.pos=--a,s.substring(r,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~r?s.substring(r,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&di(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let r=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(r,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(r,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(r,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Il=class{constructor(i,e,r){this.pos=i;this.token=e;this.tokenPos=r}},vp=null;var L;(I=>(I.None=0,I.Unreachable=1,I.I32=2,I.I64=3,I.F32=4,I.F64=5,I.V128=6,I.Funcref=n_(),I.Externref=s_(),I.Anyref=a_(),I.Eqref=l_(),I.Structref=u_(),I.Arrayref=p_(),I.I31ref=o_(),I.Stringref=c_(),I.Noneref=__(),I.Nofuncref=h_(),I.Noexternref=f_()))(L||={});var ge;(b=>{b.Extern=8,b.Func=16,b.Any=32,b.Eq=40,b.I31=48,b.Struct=56,b.Array=64,b.Exn=7,b.String=80,b.None=88,b.Noextern=96,b.Nofunc=104;function f(A){return d_(A)}b.isBottom=f;function h(A){return m_(A)}b.getBottom=h;function y(A,I){return y_(A,I)}b.isSubtype=y;function x(A,I){if(A==I)return A;if(h(A)!=h(I))return-1;if(f(A))return I;if(f(I))return A;if(A>I){let E=A;A=I,I=E}switch(A){case b.Extern:return I==b.String?A:-1;case b.Func:return-1;case b.Any:return A;case b.Eq:return I==b.I31||I==b.Struct||I==b.Array?b.Eq:b.Any;case b.I31:return I==b.Struct||I==b.Array?b.Eq:b.Any;case b.Struct:return I==b.Array?b.Eq:b.Any;case b.Array:return b.Any}return assert(!1),-1}b.leastUpperBound=x})(ge||={});var Mn;(r=>(r.NotPacked=0,r.I8=1,r.I16=2))(Mn||={});var Fp;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Fp||={});var kp=(q=>(q[q.MVP=0]="MVP",q[q.Atomics=1]="Atomics",q[q.MutableGlobals=2]="MutableGlobals",q[q.TruncSat=4]="TruncSat",q[q.SIMD=8]="SIMD",q[q.BulkMemory=16]="BulkMemory",q[q.SignExt=32]="SignExt",q[q.ExceptionHandling=64]="ExceptionHandling",q[q.TailCall=128]="TailCall",q[q.ReferenceTypes=256]="ReferenceTypes",q[q.MultiValue=512]="MultiValue",q[q.GC=1024]="GC",q[q.Memory64=2048]="Memory64",q[q.RelaxedSIMD=4096]="RelaxedSIMD",q[q.ExtendedConst=8192]="ExtendedConst",q[q.Strings=16384]="Strings",q[q.MultiMemory=32768]="MultiMemory",q[q.StackSwitching=65536]="StackSwitching",q[q.SharedEverything=131072]="SharedEverything",q[q.FP16=262144]="FP16",q[q.BulkMemoryOpt=524288]="BulkMemoryOpt",q[q.CallIndirectOverlong=1048576]="CallIndirectOverlong",q[q.RelaxedAtomics=4194304]="RelaxedAtomics",q[q.CustomPageSizes=8388608]="CustomPageSizes",q[q.Multibyte=16777216]="Multibyte",q[q.WideArithmetic=33554432]="WideArithmetic",q[q.All=67108863]="All",q))(kp||{}),Cr=(N=>(N[N.Invalid=0]="Invalid",N[N.Block=1]="Block",N[N.If=2]="If",N[N.Loop=3]="Loop",N[N.Break=4]="Break",N[N.Switch=5]="Switch",N[N.Call=6]="Call",N[N.CallIndirect=7]="CallIndirect",N[N.LocalGet=8]="LocalGet",N[N.LocalSet=9]="LocalSet",N[N.GlobalGet=10]="GlobalGet",N[N.GlobalSet=11]="GlobalSet",N[N.Load=12]="Load",N[N.Store=13]="Store",N[N.Const=14]="Const",N[N.Unary=15]="Unary",N[N.Binary=16]="Binary",N[N.Select=17]="Select",N[N.Drop=18]="Drop",N[N.Return=19]="Return",N[N.MemorySize=20]="MemorySize",N[N.MemoryGrow=21]="MemoryGrow",N[N.Nop=22]="Nop",N[N.Unreachable=23]="Unreachable",N[N.AtomicRMW=24]="AtomicRMW",N[N.AtomicCmpxchg=25]="AtomicCmpxchg",N[N.AtomicWait=26]="AtomicWait",N[N.AtomicNotify=27]="AtomicNotify",N[N.AtomicFence=28]="AtomicFence",N[N.Pause=29]="Pause",N[N.SIMDExtract=30]="SIMDExtract",N[N.SIMDReplace=31]="SIMDReplace",N[N.SIMDShuffle=32]="SIMDShuffle",N[N.SIMDTernary=33]="SIMDTernary",N[N.SIMDShift=34]="SIMDShift",N[N.SIMDLoad=35]="SIMDLoad",N[N.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",N[N.MemoryInit=37]="MemoryInit",N[N.DataDrop=38]="DataDrop",N[N.MemoryCopy=39]="MemoryCopy",N[N.MemoryFill=40]="MemoryFill",N[N.Pop=41]="Pop",N[N.RefNull=42]="RefNull",N[N.RefIsNull=43]="RefIsNull",N[N.RefFunc=44]="RefFunc",N[N.RefEq=45]="RefEq",N[N.TableGet=46]="TableGet",N[N.TableSet=47]="TableSet",N[N.TableSize=48]="TableSize",N[N.TableGrow=49]="TableGrow",N[N.TableFill=50]="TableFill",N[N.TableCopy=51]="TableCopy",N[N.TableInit=52]="TableInit",N[N.ElemDrop=53]="ElemDrop",N[N.Try=54]="Try",N[N.TryTable=55]="TryTable",N[N.Throw=56]="Throw",N[N.Rethrow=57]="Rethrow",N[N.ThrowRef=58]="ThrowRef",N[N.TupleMake=59]="TupleMake",N[N.TupleExtract=60]="TupleExtract",N[N.RefI31=61]="RefI31",N[N.I31Get=62]="I31Get",N[N.CallRef=63]="CallRef",N[N.RefTest=64]="RefTest",N[N.RefCast=65]="RefCast",N[N.RefGetDesc=66]="RefGetDesc",N[N.BrOn=67]="BrOn",N[N.StructNew=68]="StructNew",N[N.StructGet=69]="StructGet",N[N.StructSet=70]="StructSet",N[N.StructRMW=71]="StructRMW",N[N.StructCmpxchg=72]="StructCmpxchg",N[N.ArrayNew=73]="ArrayNew",N[N.ArrayNewData=74]="ArrayNewData",N[N.ArrayNewElem=75]="ArrayNewElem",N[N.ArrayNewFixed=76]="ArrayNewFixed",N[N.ArrayGet=77]="ArrayGet",N[N.ArraySet=78]="ArraySet",N[N.ArrayLoad=79]="ArrayLoad",N[N.ArrayStore=80]="ArrayStore",N[N.ArrayLen=81]="ArrayLen",N[N.ArrayCopy=82]="ArrayCopy",N[N.ArrayFill=83]="ArrayFill",N[N.ArrayInitData=84]="ArrayInitData",N[N.ArrayInitElem=85]="ArrayInitElem",N[N.ArrayRMW=86]="ArrayRMW",N[N.ArrayCmpxchg=87]="ArrayCmpxchg",N[N.RefAs=88]="RefAs",N[N.StringNew=89]="StringNew",N[N.StringConst=90]="StringConst",N[N.StringMeasure=91]="StringMeasure",N[N.StringEncode=92]="StringEncode",N[N.StringConcat=93]="StringConcat",N[N.StringEq=94]="StringEq",N[N.StringTest=95]="StringTest",N[N.StringWTF16Get=96]="StringWTF16Get",N[N.StringSliceWTF=97]="StringSliceWTF",N[N.ContNew=98]="ContNew",N[N.ContBind=99]="ContBind",N[N.Suspend=100]="Suspend",N[N.Resume=101]="Resume",N[N.ResumeThrow=102]="ResumeThrow",N[N.StackSwitch=103]="StackSwitch",N[N.StructWait=104]="StructWait",N[N.StructNotify=105]="StructNotify",N[N.WideIntAddSub=106]="WideIntAddSub",N[N.WideIntMul=107]="WideIntMul",N))(Cr||{}),wp=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(wp||{}),qy=(r=>(r[r.Unordered=0]="Unordered",r[r.SeqCst=1]="SeqCst",r[r.AcqRel=2]="AcqRel",r))(qy||{}),zn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(zn||{}),Ri=(T=>(T[T.AddI32=0]="AddI32",T[T.SubI32=1]="SubI32",T[T.MulI32=2]="MulI32",T[T.DivI32=3]="DivI32",T[T.DivU32=4]="DivU32",T[T.RemI32=5]="RemI32",T[T.RemU32=6]="RemU32",T[T.AndI32=7]="AndI32",T[T.OrI32=8]="OrI32",T[T.XorI32=9]="XorI32",T[T.ShlI32=10]="ShlI32",T[T.ShrI32=11]="ShrI32",T[T.ShrU32=12]="ShrU32",T[T.RotlI32=13]="RotlI32",T[T.RotrI32=14]="RotrI32",T[T.EqI32=15]="EqI32",T[T.NeI32=16]="NeI32",T[T.LtI32=17]="LtI32",T[T.LtU32=18]="LtU32",T[T.LeI32=19]="LeI32",T[T.LeU32=20]="LeU32",T[T.GtI32=21]="GtI32",T[T.GtU32=22]="GtU32",T[T.GeI32=23]="GeI32",T[T.GeU32=24]="GeU32",T[T.AddI64=25]="AddI64",T[T.SubI64=26]="SubI64",T[T.MulI64=27]="MulI64",T[T.DivI64=28]="DivI64",T[T.DivU64=29]="DivU64",T[T.RemI64=30]="RemI64",T[T.RemU64=31]="RemU64",T[T.AndI64=32]="AndI64",T[T.OrI64=33]="OrI64",T[T.XorI64=34]="XorI64",T[T.ShlI64=35]="ShlI64",T[T.ShrI64=36]="ShrI64",T[T.ShrU64=37]="ShrU64",T[T.RotlI64=38]="RotlI64",T[T.RotrI64=39]="RotrI64",T[T.EqI64=40]="EqI64",T[T.NeI64=41]="NeI64",T[T.LtI64=42]="LtI64",T[T.LtU64=43]="LtU64",T[T.LeI64=44]="LeI64",T[T.LeU64=45]="LeU64",T[T.GtI64=46]="GtI64",T[T.GtU64=47]="GtU64",T[T.GeI64=48]="GeI64",T[T.GeU64=49]="GeU64",T[T.AddF32=50]="AddF32",T[T.SubF32=51]="SubF32",T[T.MulF32=52]="MulF32",T[T.DivF32=53]="DivF32",T[T.CopysignF32=54]="CopysignF32",T[T.MinF32=55]="MinF32",T[T.MaxF32=56]="MaxF32",T[T.EqF32=57]="EqF32",T[T.NeF32=58]="NeF32",T[T.LtF32=59]="LtF32",T[T.LeF32=60]="LeF32",T[T.GtF32=61]="GtF32",T[T.GeF32=62]="GeF32",T[T.AddF64=63]="AddF64",T[T.SubF64=64]="SubF64",T[T.MulF64=65]="MulF64",T[T.DivF64=66]="DivF64",T[T.CopysignF64=67]="CopysignF64",T[T.MinF64=68]="MinF64",T[T.MaxF64=69]="MaxF64",T[T.EqF64=70]="EqF64",T[T.NeF64=71]="NeF64",T[T.LtF64=72]="LtF64",T[T.LeF64=73]="LeF64",T[T.GtF64=74]="GtF64",T[T.GeF64=75]="GeF64",T[T.EqI8x16=76]="EqI8x16",T[T.NeI8x16=77]="NeI8x16",T[T.LtI8x16=78]="LtI8x16",T[T.LtU8x16=79]="LtU8x16",T[T.GtI8x16=80]="GtI8x16",T[T.GtU8x16=81]="GtU8x16",T[T.LeI8x16=82]="LeI8x16",T[T.LeU8x16=83]="LeU8x16",T[T.GeI8x16=84]="GeI8x16",T[T.GeU8x16=85]="GeU8x16",T[T.EqI16x8=86]="EqI16x8",T[T.NeI16x8=87]="NeI16x8",T[T.LtI16x8=88]="LtI16x8",T[T.LtU16x8=89]="LtU16x8",T[T.GtI16x8=90]="GtI16x8",T[T.GtU16x8=91]="GtU16x8",T[T.LeI16x8=92]="LeI16x8",T[T.LeU16x8=93]="LeU16x8",T[T.GeI16x8=94]="GeI16x8",T[T.GeU16x8=95]="GeU16x8",T[T.EqI32x4=96]="EqI32x4",T[T.NeI32x4=97]="NeI32x4",T[T.LtI32x4=98]="LtI32x4",T[T.LtU32x4=99]="LtU32x4",T[T.GtI32x4=100]="GtI32x4",T[T.GtU32x4=101]="GtU32x4",T[T.LeI32x4=102]="LeI32x4",T[T.LeU32x4=103]="LeU32x4",T[T.GeI32x4=104]="GeI32x4",T[T.GeU32x4=105]="GeU32x4",T[T.EqI64x2=106]="EqI64x2",T[T.NeI64x2=107]="NeI64x2",T[T.LtI64x2=108]="LtI64x2",T[T.GtI64x2=109]="GtI64x2",T[T.LeI64x2=110]="LeI64x2",T[T.GeI64x2=111]="GeI64x2",T[T.EqF32x4=118]="EqF32x4",T[T.NeF32x4=119]="NeF32x4",T[T.LtF32x4=120]="LtF32x4",T[T.GtF32x4=121]="GtF32x4",T[T.LeF32x4=122]="LeF32x4",T[T.GeF32x4=123]="GeF32x4",T[T.EqF64x2=124]="EqF64x2",T[T.NeF64x2=125]="NeF64x2",T[T.LtF64x2=126]="LtF64x2",T[T.GtF64x2=127]="GtF64x2",T[T.LeF64x2=128]="LeF64x2",T[T.GeF64x2=129]="GeF64x2",T[T.AndV128=130]="AndV128",T[T.OrV128=131]="OrV128",T[T.XorV128=132]="XorV128",T[T.AndnotV128=133]="AndnotV128",T[T.AddI8x16=134]="AddI8x16",T[T.AddSatI8x16=135]="AddSatI8x16",T[T.AddSatU8x16=136]="AddSatU8x16",T[T.SubI8x16=137]="SubI8x16",T[T.SubSatI8x16=138]="SubSatI8x16",T[T.SubSatU8x16=139]="SubSatU8x16",T[T.MinI8x16=140]="MinI8x16",T[T.MinU8x16=141]="MinU8x16",T[T.MaxI8x16=142]="MaxI8x16",T[T.MaxU8x16=143]="MaxU8x16",T[T.AvgrU8x16=144]="AvgrU8x16",T[T.AddI16x8=145]="AddI16x8",T[T.AddSatI16x8=146]="AddSatI16x8",T[T.AddSatU16x8=147]="AddSatU16x8",T[T.SubI16x8=148]="SubI16x8",T[T.SubSatI16x8=149]="SubSatI16x8",T[T.SubSatU16x8=150]="SubSatU16x8",T[T.MulI16x8=151]="MulI16x8",T[T.MinI16x8=152]="MinI16x8",T[T.MinU16x8=153]="MinU16x8",T[T.MaxI16x8=154]="MaxI16x8",T[T.MaxU16x8=155]="MaxU16x8",T[T.AvgrU16x8=156]="AvgrU16x8",T[T.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",T[T.ExtmulLowI16x8=158]="ExtmulLowI16x8",T[T.ExtmulHighI16x8=159]="ExtmulHighI16x8",T[T.ExtmulLowU16x8=160]="ExtmulLowU16x8",T[T.ExtmulHighU16x8=161]="ExtmulHighU16x8",T[T.AddI32x4=162]="AddI32x4",T[T.SubI32x4=163]="SubI32x4",T[T.MulI32x4=164]="MulI32x4",T[T.MinI32x4=165]="MinI32x4",T[T.MinU32x4=166]="MinU32x4",T[T.MaxI32x4=167]="MaxI32x4",T[T.MaxU32x4=168]="MaxU32x4",T[T.DotI16x8=169]="DotI16x8",T[T.ExtmulLowI32x4=170]="ExtmulLowI32x4",T[T.ExtmulHighI32x4=171]="ExtmulHighI32x4",T[T.ExtmulLowU32x4=172]="ExtmulLowU32x4",T[T.ExtmulHighU32x4=173]="ExtmulHighU32x4",T[T.AddI64x2=174]="AddI64x2",T[T.SubI64x2=175]="SubI64x2",T[T.MulI64x2=176]="MulI64x2",T[T.ExtmulLowI64x2=177]="ExtmulLowI64x2",T[T.ExtmulHighI64x2=178]="ExtmulHighI64x2",T[T.ExtmulLowU64x2=179]="ExtmulLowU64x2",T[T.ExtmulHighU64x2=180]="ExtmulHighU64x2",T[T.AddF32x4=189]="AddF32x4",T[T.SubF32x4=190]="SubF32x4",T[T.MulF32x4=191]="MulF32x4",T[T.DivF32x4=192]="DivF32x4",T[T.MinF32x4=193]="MinF32x4",T[T.MaxF32x4=194]="MaxF32x4",T[T.PminF32x4=195]="PminF32x4",T[T.PmaxF32x4=196]="PmaxF32x4",T[T.AddF64x2=197]="AddF64x2",T[T.SubF64x2=198]="SubF64x2",T[T.MulF64x2=199]="MulF64x2",T[T.DivF64x2=200]="DivF64x2",T[T.MinF64x2=201]="MinF64x2",T[T.MaxF64x2=202]="MaxF64x2",T[T.PminF64x2=203]="PminF64x2",T[T.PmaxF64x2=204]="PmaxF64x2",T[T.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",T[T.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",T[T.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",T[T.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",T[T.SwizzleI8x16=209]="SwizzleI8x16",T[T.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",T[T.RelaxedMinF32x4=211]="RelaxedMinF32x4",T[T.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",T[T.RelaxedMinF64x2=213]="RelaxedMinF64x2",T[T.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",T[T.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",T[T.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",T[T._last=216]="_last",T[T.AddSize=217]="AddSize",T[T.SubSize=218]="SubSize",T[T.MulSize=219]="MulSize",T[T.DivISize=220]="DivISize",T[T.DivUSize=221]="DivUSize",T[T.RemISize=222]="RemISize",T[T.RemUSize=223]="RemUSize",T[T.AndSize=224]="AndSize",T[T.OrSize=225]="OrSize",T[T.XorSize=226]="XorSize",T[T.ShlSize=227]="ShlSize",T[T.ShrISize=228]="ShrISize",T[T.ShrUSize=229]="ShrUSize",T[T.RotlSize=230]="RotlSize",T[T.RotrSize=231]="RotrSize",T[T.EqSize=232]="EqSize",T[T.NeSize=233]="NeSize",T[T.LtISize=234]="LtISize",T[T.LtUSize=235]="LtUSize",T[T.LeISize=236]="LeISize",T[T.LeUSize=237]="LeUSize",T[T.GtISize=238]="GtISize",T[T.GtUSize=239]="GtUSize",T[T.GeISize=240]="GeISize",T[T.GeUSize=241]="GeUSize",T))(Ri||{}),Cp=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(Cp||{}),Pp=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(Pp||{}),Bp=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))(Bp||{}),Lp=(f=>(f[f.ShlI8x16=0]="ShlI8x16",f[f.ShrI8x16=1]="ShrI8x16",f[f.ShrU8x16=2]="ShrU8x16",f[f.ShlI16x8=3]="ShlI16x8",f[f.ShrI16x8=4]="ShrI16x8",f[f.ShrU16x8=5]="ShrU16x8",f[f.ShlI32x4=6]="ShlI32x4",f[f.ShrI32x4=7]="ShrI32x4",f[f.ShrU32x4=8]="ShrU32x4",f[f.ShlI64x2=9]="ShlI64x2",f[f.ShrI64x2=10]="ShrI64x2",f[f.ShrU64x2=11]="ShrU64x2",f))(Lp||{}),Np=(f=>(f[f.Load8Splat=0]="Load8Splat",f[f.Load16Splat=1]="Load16Splat",f[f.Load32Splat=2]="Load32Splat",f[f.Load64Splat=3]="Load64Splat",f[f.Load8x8S=4]="Load8x8S",f[f.Load8x8U=5]="Load8x8U",f[f.Load16x4S=6]="Load16x4S",f[f.Load16x4U=7]="Load16x4U",f[f.Load32x2S=8]="Load32x2S",f[f.Load32x2U=9]="Load32x2U",f[f.Load32Zero=10]="Load32Zero",f[f.Load64Zero=11]="Load64Zero",f))(Np||{}),Mp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(Mp||{}),Gp=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(Gp||{}),Wy=(r=>(r[r.NonNull=0]="NonNull",r[r.AnyConvertExtern=1]="AnyConvertExtern",r[r.ExternConvertAny=2]="ExternConvertAny",r))(Wy||{}),Ky=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Ky||{}),jy=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(jy||{}),Hy=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Hy||{}),Qy=(r=>(r[r.LossyUTF8Array=0]="LossyUTF8Array",r[r.WTF16Array=1]="WTF16Array",r[r.FromCodePoint=2]="FromCodePoint",r))(Qy||{}),Xy=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Xy||{}),Jy=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Jy||{}),Zy=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(Zy||{}),wl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(wl||{}),Ii=class{constructor(i,e){this.buffer=i;this.offset=e}},zt=class t{constructor(i,e,r){this.ref=i;this.useShadowStack=e;this.sizeType=r;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(r==L.I32||r==L.I64),this.lit=pt(uo())}static create(i,e){return new t(b_(),i,e)}static createFrom(i,e,r){let n=Nn(i),s=new t(km(n,i.length),e,r);return ie(changetype(n)),s}i32(i){let e=this.lit;return T_(e,i),ti(this.ref,e)}i64(i,e=0){let r=this.lit;return ky(r,i64_new(i,e)),ti(this.ref,r)}usize(i){return i64_is(i)?this.sizeType==L.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==L.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return A_(e,i),ti(this.ref,e)}f64(i){let e=this.lit;return E_(e,i),ti(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let r=0;r<16;++r)Le(e+r,unchecked(i[r]));return v_(e,e),ti(this.ref,e)}ref_null(i){return Rh(this.ref,i)}ref_eq(i,e){return Bh(this.ref,i,e)}string_eq(i,e){return Ku(this.ref,0,i,e)}string_compare(i,e){return Ku(this.ref,1,i,e)}unary(i,e){if(i>141){let r=this.sizeType==L.I64;switch(i){case 142:i=r?1:0;break;case 143:i=r?3:2;break;case 144:i=r?5:4;break;case 145:i=r?21:20;break;default:assert(!1)}}return gf(this.ref,i,e)}binary(i,e,r){if(i>216){let n=this.sizeType==L.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return Ef(this.ref,i,e,r)}wide_int_add_sub(i,e,r,n,s){return Tf(this.ref,i,e,r,n,s)}wide_int_mul(i,e,r){return Af(this.ref,i,e,r)}memory_size(i=C.DefaultMemory,e=!1){let r=this.allocStringCached(i);return tf(this.ref,r,e)}memory_grow(i,e=C.DefaultMemory,r=!1){let n=this.allocStringCached(e);return rf(this.ref,i,n,r)}table_size(i){let e=this.allocStringCached(i);return zh(this.ref,e)}table_grow(i,e,r=0){let n=this.allocStringCached(i);return Dh(this.ref,n,r,e)}local_get(i,e){return X_(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=kt(i);return assert(e==L.I32||e==L.Unreachable),this.call(d.tostack,[i],e)}return i}local_tee(i,e,r,n=-1){return n==-1&&(n=kt(e)),r&&this.useShadowStack&&(e=this.tostack(e)),J_(this.ref,i,e,n)}global_get(i,e){let r=this.allocStringCached(i);return Z_(this.ref,r,e)}table_get(i,e,r){let n=this.allocStringCached(i);return Mh(this.ref,n,e,r)}load(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return sf(this.ref,i,e,s,a,n,r,o)}store(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return cf(this.ref,i,s,a,e,r,n,o)}atomic_load(i,e,r,n=0,s=C.DefaultMemory,a=1){let l=this.allocStringCached(s);return pf(this.ref,i,n,r,e,l,a)}atomic_store(i,e,r,n,s=0,a=C.DefaultMemory,l=1){let o=this.allocStringCached(a);return ff(this.ref,i,s,e,r,n,o,l)}atomic_rmw(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return Nf(this.ref,i,e,r,n,s,a,u,o)}atomic_cmpxchg(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return zf(this.ref,i,e,r,n,s,a,u,o)}atomic_wait(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return Of(this.ref,i,e,r,n,a)}atomic_notify(i,e,r=C.DefaultMemory){let n=this.allocStringCached(r);return jf(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Xf(this.ref,e)}local_set(i,e,r){return r&&this.useShadowStack&&(e=this.tostack(e)),on(this.ref,i,e)}global_set(i,e){let r=this.allocStringCached(i);return Y_(this.ref,r,e)}table_set(i,e,r){let n=this.allocStringCached(i);return Gh(this.ref,n,e,r)}block(i,e,r=L.None){let n=this.allocStringCached(i),s=fe(e),a=R_(this.ref,n,s,e.length,r);return ie(s),a}flatten(i,e=L.None){let r=i.length;if(r==0)return this.nop();if(r==1){let n=i[0];switch($(n)){case 19:case 56:case 23:return n}let s=se(n);return s!=L.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,r=0){let n=this.allocStringCached(i);return N_(this.ref,n,e,r)}drop(i){return mo(this.ref,i)}maybeDrop(i){let e=kt(i);return e!=L.None&&e!=L.Unreachable?mo(this.ref,i):i}maybeDropCondition(i,e){return(wi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],se(e)):e}loop(i,e){let r=this.allocStringCached(i);return B_(this.ref,r,e)}if(i,e,r=0){return k_(this.ref,i,e,r)}nop(){return Bf(this.ref)}return(i=0){return Pf(this.ref,i)}select(i,e,r){return Rf(this.ref,r,i,e)}switch(i,e,r,n=0){let s=i.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(i[c]));let l=fe(a),o=this.allocStringCached(e),u=z_(this.ref,l,s,o,r,n);return ie(l),u}call(i,e,r,n=!1){let s=this.allocStringCached(i),a=fe(e),l=n?K_(this.ref,s,a,e?e.length:0,r):W_(this.ref,s,a,e?e.length:0,r);return ie(a),l}return_call(i,e,r){return this.call(i,e,r,!0)}call_indirect(i,e,r,n,s,a=!1){let l=this.allocStringCached(i??C.DefaultTable),o=fe(r),u=a?Q_(this.ref,l,e,o,r?r.length:0,n,s):j_(this.ref,l,e,o,r?r.length:0,n,s);return ie(o),u}return_call_indirect(i,e,r,n,s){return this.call_indirect(i,e,r,n,s,!0)}unreachable(){return Lf(this.ref)}memory_copy(i,e,r,n=C.DefaultMemory,s=C.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return bh(this.ref,i,e,r,a,l)}memory_fill(i,e,r,n=C.DefaultMemory){let s=this.allocStringCached(n);return Eh(this.ref,i,e,r,s)}try(i,e,r,n,s=null){let a=r.length,l=new Array(a);for(let h=0;h<a;++h)l[h]=this.allocStringCached(r[h]);let o=fe(l),u=fe(n),c=this.allocStringCached(i),_=this.allocStringCached(s),f=Uh(this.ref,c,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let r=this.allocStringCached(i),n=fe(e),s=qh(this.ref,r,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return jh(this.ref,e)}pop(i){return Zh(this.ref,i)}tuple_make(i){let e=fe(i),r=Hh(this.ref,e,i.length);return ie(e),r}tuple_extract(i,e){return Xh(this.ref,i,e)}simd_extract(i,e,r){return Jf(this.ref,i,e,r)}simd_replace(i,e,r,n){return Yf(this.ref,i,e,r,n)}simd_shuffle(i,e,r){assert(r.length==16);let n=Nn(r),s=th(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,r,n){return nh(this.ref,i,e,r,n)}simd_shift(i,e,r){return oh(this.ref,i,e,r)}simd_load(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return ch(this.ref,i,r,n,e,a)}simd_loadstorelane(i,e,r,n,s,a,l=C.DefaultMemory){let o=this.allocStringCached(l);return fh(this.ref,i,r,n,s,e,a,o)}ref_is_null(i){return Fh(this.ref,i)}ref_as(i,e){return Jo(this.ref,i,e)}ref_as_nonnull(i){return Yy(se(i))?Jo(this.ref,0,i):i}ref_func(i,e){let r=this.allocStringCached(i);return Ch(this.ref,r,Qt(e))}i31_new(i){return Yh(this.ref,i)}i31_get(i,e){return ed(this.ref,i,e)}addGlobal(i,e,r,n){let s=this.allocStringCached(i);return sm(this.ref,s,e,r,n)}getGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)?(am(this.ref,e),!0):!1}addTag(i,e,r){let n=this.allocStringCached(i);return _m(this.ref,n,e,r)}getTag(i){let e=this.allocStringCached(i);return fm(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);hm(this.ref,e)}addFunction(i,e,r,n,s){let a=this.allocStringCached(i),l=fe(n),o=ri(this.ref,a,e,r,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,r){Wd(i,e,this.allocStringCached(r))}getFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);bn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)!=0}addTemporaryFunction(i,e,r){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=fe(e),a=ri(this.ref,n,He(e),i,0,0,r);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");bn(this.ref,i)}setStart(i){Am(this.ref,i)}addFunctionExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Ys(this.ref,r,n)}addTableExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Yd(this.ref,r,n)}addMemoryExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return $d(this.ref,r,n)}addGlobalExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return em(this.ref,r,n)}addTagExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return tm(this.ref,r,n)}removeExport(i){let e=this.allocStringCached(i);ea(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return $s(this.ref,e)!=0}addFunctionImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Hd(this.ref,a,l,o,n,s)}addTableImport(i,e,r){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(r);Qd(this.ref,n,s,a)}addMemoryImport(i,e,r,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(r);Xd(this.ref,s,a,l,n)}addGlobalImport(i,e,r,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Jd(this.ref,a,l,o,n,s)}addTagImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Zd(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,r,n,s=null,a=C.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=r.length,_=new Array(c),f=new Uint8Array(c),h=new Array(c),y=new Array(c);for(let E=0;E<c;++E){let k=unchecked(r[E]),F=k.buffer,R=k.offset;unchecked(_[E]=Nn(F)),unchecked(f[E]=0),unchecked(h[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(y[E]=F.length)}let x=fe(_),b=Nn(f),A=fe(h),I=Rp(y);Tm(this.ref,i,e,o,0,x,b,A,I,c,l,!1,u),ie(I),ie(A),ie(b),ie(x);for(let E=c-1;E>=0;--E)ie(unchecked(_[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,r,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let _=0;_<l;++_)unchecked(o[_]=this.allocStringCached(n[_]));let u=fe(o),c=rp(this.ref,a);c?(gm(c,e),bm(c,r)):c=tp(this.ref,a,e,r,L.Funcref),xm(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);rp(this.ref,e)||tp(this.ref,e,0,t.UNLIMITED_TABLE,L.Funcref)}addCustomSection(i,e){let r=this.allocStringCached(i),n=Nn(e);Nm(this.ref,r,n,e.length),ie(n)}getOptimizeLevel(){return Ym()}setOptimizeLevel(i){$m(i)}getShrinkLevel(){return ey()}setShrinkLevel(i){ty(i)}getDebugInfo(){return ry()}setDebugInfo(i){iy(i)}getTrapsNeverHappen(){return ny()}setTrapsNeverHappen(i){sy(i)}getClosedWorld(){return ay()}setClosedWorld(i){ly(i)}getLowMemoryUnused(){return oy()}setLowMemoryUnused(i){uy(i)}getZeroFilledMemory(){return py()}setZeroFilledMemory(i){cy(i)}getFastMath(){return _y()}setFastMath(i){fy(i)}getGenerateStackIR(){return hy()}setGenerateStackIR(i){dy(i)}getOptimizeStackIR(){return my()}setOptimizeStackIR(i){yy(i)}getPassArgument(i){let e=this.allocStringCached(i),r=gy(e);return r?Ve(r):null}setPassArgument(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);by(r,n)}clearPassArguments(){xy()}getAlwaysInlineMaxSize(){return Ty()}setAlwaysInlineMaxSize(i){Ay(i)}getFlexibleInlineMaxSize(){return Ey()}setFlexibleInlineMaxSize(i){vy(i)}getOneCallerInlineMaxSize(){return Sy()}setOneCallerInlineMaxSize(i){Iy(i)}getAllowInliningFunctionsWithLoops(){return Ry()}setAllowInliningFunctionsWithLoops(i){Fy(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return Bm(this.ref)}setFeatures(i){i&16&&(i|=524288),Lm(this.ref,i)}runPasses(i,e=0){let r=i.length,n=new Array(r);for(let a=0;a<r;++a)n[a]=Rl(i[a]);let s=fe(n);e?Kd(e,this.ref,s,r):vm(this.ref,s,r),ie(s);for(let a=r-1;a>=0;--a)ie(n[a])}optimize(i,e,r=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(r),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),i>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),i>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(i>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return Em(this.ref)==1}interpret(){wm(this.ref)}toBinary(i=null){assert(uo()>=Sm());let e=this.lit,r=Rl(i);Im(e,this.ref,r);let n=Zt(e+0),s=Zt(e+4),a=Zt(e+8),l=new kl(z2(assert(n),s),Ve(a));return r&&ie(r),a&&ie(a),ie(n),l}toText(i=!0){let e=i?Fm(this.ref):Rm(this.ref),r=Ve(e);return e&&ie(e),r||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let r=Rl(i);return e.set(i,r),r}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let r=Ve(i);return e.set(i,r),r}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),x_(this.ref),this.ref=0}createRelooper(){return Fl.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Ft(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return S_(i,this.ref)}runExpression(i,e,r=50,n=1){let s=qm(this.ref,e,r,n),a=Wm(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(se(a)==se(i))}return a}isConstExpression(i){switch($(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Fi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(Xe(i))&&this.isConstExpression(Ne(i))}break}}return!1}addDebugInfoFile(i){let e=Rl(i),r=Cm(this.ref,e);return ie(e),r}getDebugInfoFile(i){return Ve(Pm(this.ref,i))}setDebugLocation(i,e,r,n,s){jd(i,e,r,n,s)}};function He(t){if(!t)return L.None;switch(t.length){case 0:return L.None;case 1:return t[0]}let i=fe(t),e=e_(i,t.length);return ie(i),e}function zp(t){let i=t_(t),e=pt(i<<2);r_(t,e);let r=new Array(i);for(let n=0;n<i;++n)unchecked(r[n]=Zt(e+(n<<2)));return ie(e),r}function Yy(t){return i_(t)}function $(t){return Ft(t)}function se(t){return kt(t)}function ne(t){return hf(t)}function ve(t){return i64_low(ap(t))}function we(t){return i64_high(ap(t))}function Dp(t,i){let e=0,r=0;return i?(e=ve(t),r=we(t)):e=ne(t),i64_new(e,r)}function Ae(t){return df(t)}function Ee(t){return mf(t)}function Up(t){let i=pt(16);yf(t,i);let e=new Uint8Array(16);for(let r=0;r<16;++r)e[r]=xr(i+r);return ie(i),e}function Qe(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)==0:i==L.I64?(ve(t)|we(t))==0:i==L.F32?Ae(t)==0:i==L.F64?Ee(t)==0:!1}function lt(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)!=0:i==L.I64?(ve(t)|we(t))!=0:i==L.F32?Ae(t)!=0:i==L.F64?Ee(t)!=0:!1}function Cl(t){if($(t)!=14)return!1;let i=se(t);if(i==L.F32){let e=Ae(t);return e==0&&f32_as_i32(e)<0}if(i==L.F64){let e=Ee(t);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function c2(t){if($(t)!=14)return!1;let i=se(t);return i==L.F32?isNaN(Ae(t)):i==L.F64?isNaN(Ee(t)):!1}function Pl(t,i){let e=$(i),r=se(i);if(r==L.F32||r==L.F64){if(e==14)return isNaN(r==L.F32?Ae(i):Ee(i));if(e==10){let n=t.runExpression(i,0,8);if(n)return isNaN(r==L.F32?Ae(n):Ee(n))}}return!1}function dt(t){return Os(t)}function Bl(t){return ei(t)}function Ll(t){return yr(t)}function Dn(t){return qs(t)}function Un(t){return Ve(Ks(t))}function Fi(t){return vf(t)}function Xe(t){return fn(t)}function Ne(t){return hn(t)}function Vn(t){return bf(t)}function Nl(t){return _n(t)}function Vp(t){return of(t)}function _2(t){return lf(t)}function f2(t){return pn(t)}function Op(t){return af(t)}function h2(t){return js(t)}function d2(t){return Hs(t)}function m2(t){return gr(t)}function y2(t){return cn(t)}function On(t){return Ve(Gs(t))}function qn(t){return Yi(t)}function Wn(t,i){return $i(t,i)}function Ml(t){return en(t)}function Kn(t){return tn(t)}function ki(t){return rn(t)}function g2(t){return Ve(zs(t))}function b2(t){return nn(t)}function x2(t){return Ve(Ds(t))}function T2(t){return sn(t)}function qp(t){return dn(t)}function Wp(t){return mn(t)}function A2(t){return yn(t)}function E2(t){return gn(t)}function v2(t){return br(t)}function jn(t){return Ve($r(t))}function mt(t){return Xt(t)}function Oe(t,i){return Jt(t,i)}function S2(t){return un(t)}function I2(t){return wt(t)}function Kp(t){return Ve(si(t))}function R2(t){return Tn(t)}function F2(t){return An(t)}function k2(t){let i=Js(t),e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=Zs(t,r));return e}function w2(t){return Ve(um(t))}function C2(t){return pm(t)}function jp(t){return cm(t)}function P2(t){return ta(t)}function B2(t){return Ve(dm(t))}function L2(t){return mm(t)}function N2(t){return ym(t)}var Fl=class t{constructor(i,e){this.module=i;this.ref=e}static create(i){return new t(i,Gm(i.ref))}addBlock(i){return zm(this.ref,i)}addBranch(i,e,r=0,n=0){Dm(i,e,r,n)}addBlockWithSwitch(i,e){return Um(this.ref,i,e)}addBranchForSwitch(i,e,r,n=0){let s=M2(r);Vm(i,e,s,r.length,n),ie(s)}renderAndDispose(i,e){return Om(this.ref,i,e)}},Gn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let r=this.values.indexOf(i),n=this.addCode(e);r>=0?this.indexes[r]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,r=e.indexOf(i);return r<0&&(r=e.length,e.push(i)),r}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let r=this.module,n=this.cases,s=n.length;if(!s)return r.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),c=new Array(s);for(let x=0;x<s;++x)unchecked(c[x]=`case${x}${e}`);u[0]=r.local_set(i,this.condition,!1);for(let x=0;x<l;++x){let b=unchecked(o[x]);unchecked(u[1+x]=r.br(c[b],r.binary(15,r.local_get(i,L.I32),r.i32(a[x]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=r.br(~_?c[_]:f);let h=r.block(c[0],u);for(let x=1;x<s;++x){let b=n[x-1];b.unshift(h),h=r.block(unchecked(c[x]),b)}let y=n[s-1];return y.unshift(h),r.block(~_?null:f,y)}},Hp=(A=>(A[A.None=0]="None",A[A.Branches=1]="Branches",A[A.Calls=2]="Calls",A[A.ReadsLocal=4]="ReadsLocal",A[A.WritesLocal=8]="WritesLocal",A[A.ReadsGlobal=16]="ReadsGlobal",A[A.WritesGlobal=32]="WritesGlobal",A[A.ReadsMemory=64]="ReadsMemory",A[A.WritesMemory=128]="WritesMemory",A[A.ReadsTable=256]="ReadsTable",A[A.WritesTable=512]="WritesTable",A[A.ImplicitTrap=1024]="ImplicitTrap",A[A.IsAtomic=2048]="IsAtomic",A[A.Throws=4096]="Throws",A[A.DanglingPop=8192]="DanglingPop",A[A.TrapsNeverHappen=16384]="TrapsNeverHappen",A[A.Any=32767]="Any",A))(Hp||{});function wi(t,i){return Mm(t,i)}function Gl(t,i){return(wi(t,i)&-21)!=0}function Nn(t){if(!t)return 0;let i=t.length,e=pt(i);for(let r=0;r<i;++r)Le(e+r,unchecked(t[r]));return e}function M2(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function Rp(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function fe(t){if(!t)return 0;assert(ASC_TARGET!=2);let i=t.length,e=pt(i<<2),r=e;for(let n=0,s=i;n<s;++n){let a=unchecked(t[n]);ia(r,a),r+=4}return e}function G2(t){let i=0;for(let e=0,r=t.length;e<r;++e){let n=t.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:hi(n)&&e+1<r&&fa(t.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Rl(t){if(t==null)return 0;let i=G2(t),e=pt(i+1)>>>0,r=e;if(i==t.length)for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0;Le(r++,a)}else for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0,l;a<=127?Le(r++,a):a<=2047?(Le(r++,192|a>>>6),Le(r++,128|a&63)):hi(a)&&n+1<s&&fa(l=t.charCodeAt(n+1))?(a=Rn(a,l),++n,Le(r++,240|a>>>18),Le(r++,128|a>>>12&63),Le(r++,128|a>>>6&63),Le(r++,128|a&63)):(Le(r++,224|a>>>12),Le(r++,128|a>>>6&63),Le(r++,128|a&63))}return Le(r,0),e}function z2(t,i){let e=new Uint8Array(i);for(let r=0;r<i;++r)unchecked(e[r]=xr(t+r));return e}function Ve(t){if(!t)return null;let i=new Array,e,r,n,s;for(;e=xr(t++);){if(!(e&128)){i.push(e);continue}if(r=xr(t++)&63,(e&224)==192){i.push((e&31)<<6|r);continue}if(n=xr(t++)&63,(e&240)==224?e=(e&15)<<12|r<<6|n:(s=xr(t++)&63,(e&248)==240?e=(e&7)<<18|r<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(In|a>>>10),i.push(fi|a&1023)}}return String.fromCharCodes(i)}var kl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Gt=!1;function Hn(t){if(t==p.void)return L.None;let i=$y(t);if(i)return i;let e=t;if(t=t.nonNullableType,i=t.ref)return he(Qt(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let r=Km(0),n=new Map;er(r,n,t);let s=ra(r),a=pt(max(4*s,8));if(!Xm(r,a,a,a+4)){let l=Zt(a),o=Zt(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Fp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let _=Zt(a+4*o),f=he(_,!1);assert(!c.ref),c.ref=f,Gt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let y=h.program.module;Jm(y.ref,_,y.allocStringCached(h.internalName));let x=h.members;if(x){let b=g_(_),A=0;for(let I=Map_values(x),E=0,k=I.length;E<k;++E){let F=I[E];if(F.kind!=10)continue;let R=F.instance;!R||!R.isField||Zm(y.ref,_,A++,y.allocStringCached(R.name))}assert(b==A)}}}return ie(a),Gt&&console.log(` finalize ${t.toString()}`),i=assert(t.ref),he(Qt(i),e.is(512))}function $y(t){switch(t.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return L.I32;case 4:case 9:return L.I64;case 5:case 10:{if(t.isInternalReference)break;return t.size==64?L.I64:L.I32}case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return he(ge.Func,t.is(512));case 14:return he(ge.Extern,t.is(512));case 16:return he(ge.Any,t.is(512));case 17:return he(ge.Eq,t.is(512));case 18:return he(ge.Struct,t.is(512));case 19:return he(ge.Array,t.is(512));case 20:return he(ge.I31,t.is(512));case 21:return he(ge.String,t.is(512));case 25:assert(!1)}return 0}function D2(t){switch(t.kind){case 0:case 1:case 6:return Mn.I8;case 2:case 7:return Mn.I16}return Mn.NotPacked}function er(t,i,e){if(e==p.void)return L.None;let r=$y(e);if(r||(assert(!e.is(512)),r=e.ref))return r;if(i.has(e))return Gt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Gt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=er(t,i,a.type));let o=ra(t);ip(t,1),Gt&&console.log(` block [${o}]: ${e.toString()}`);let u=np(t,o);r=ai(t,u,!1),i.set(e,r);let c=new Array,_=new Array,f=new Array,h=n.members;if(h)for(let A=Map_values(h),I=0,E=A.length;I<E;++I){let k=A[I];if(k.kind!=10)continue;let F=k.instance;if(!F||!F.isField)continue;let R=F.type;Gt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(ai(t,Qt(er(t,i,R.nonNullableType)),!0)):c.push(er(t,i,R)),_.push(D2(R)),f.push(1)}let y=fe(c),x=Rp(_),b=Rp(f);return Gt&&console.log(` concretize [${o}]: ${e.toString()}`),Hm(t,o,y,x,b,c.length),a&&(Gt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),Qm(t,o,Qt(l))),ie(b),ie(x),ie(y),r}let s=e.getSignature();if(s){let a=ra(t);ip(t,1);let l=ai(t,np(t,a),!1);i.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let y=0,x=c.length;y<x;++y){let b=c[y];b.is(512)?o.push(ai(t,Qt(er(t,i,b.nonNullableType)),!0)):o.push(er(t,i,b))}let _=s.returnType;u.push(_==p.void?L.None:_.is(512)?ai(t,Qt(er(t,i,_.nonNullableType)),!0):er(t,i,_));let f;if(o.length>1){let y=fe(o);f=sp(t,y,o.length),ie(y)}else f=o.length?o[0]:L.None;let h;if(u.length>1){let y=fe(u);h=sp(t,y,u.length),ie(y)}else h=u[0];return Gt&&console.log(` concretize [${a}]: ${e.toString()}`),jm(t,a,f,h),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Dl=(F=>(F[F.None=0]="None",F[F.Returns=1]="Returns",F[F.ReturnsWrapped=2]="ReturnsWrapped",F[F.ReturnsNonNull=4]="ReturnsNonNull",F[F.Throws=8]="Throws",F[F.Breaks=16]="Breaks",F[F.Continues=32]="Continues",F[F.AccessesThis=64]="AccessesThis",F[F.CallsSuper=128]="CallsSuper",F[F.Terminates=256]="Terminates",F[F.ConditionallyReturns=512]="ConditionallyReturns",F[F.ConditionallyThrows=1024]="ConditionallyThrows",F[F.ConditionallyBreaks=2048]="ConditionallyBreaks",F[F.ConditionallyContinues=4096]="ConditionallyContinues",F[F.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",F[F.MayReturnNonThis=16384]="MayReturnNonThis",F[F.UncheckedContext=32768]="UncheckedContext",F[F.CtorParamContext=65536]="CtorParamContext",F[F.InlineContext=131072]="InlineContext",F[F.AnyCategorical=511]="AnyCategorical",F[F.AnyConditional=15872]="AnyConditional",F))(Dl||{}),Qn=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(Qn||{}),Qp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(Qp||{}),Xp=(r=>(r[r.Unknown=0]="Unknown",r[r.True=1]="True",r[r.False=2]="False",r))(Xp||{}),Dt=class t{constructor(i,e=null){this.targetFunction=i;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new t(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let r=new t(i,e);return r.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&r.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&r.set(32768),r}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let r=new t(this.targetFunction,this.inlineFunction);if(r.parent=this,r.flags=this.flags,r.outer=this.outer,i?r.flags&=-2065:r.breakLabel=this.breakLabel,e?r.flags&=-4129:r.continueLabel=this.continueLabel,r.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);r.thisFieldFlags=pe(n)}else assert(!this.thisFieldFlags);return r.inlineReturnLabel=this.inlineReturnLabel,r}forkThen(i,e=!1,r=e){let n=this.fork(e,r),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let r=this.trueFlows;r||(this.trueFlows=r=new Map),r.set(i,e)}forkElse(i){let e=this.fork(),r=this.falseFlows;return r&&r.has(i)&&e.inherit(changetype(r.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let r=this.falseFlows;r||(this.falseFlows=r=new Map),r.set(i,e)}addScopedTypeAlias(i,e){let r=this.scopedTypeAlias;r||(this.scopedTypeAlias=r=new Map),r.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let r=e.scopedTypeAlias;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let r=this.sourceFunction.parent;return r.kind==5?r.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let r=this.getTempLocal(e);r.name=i,r.internalName=Ce(i,r.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,r.set(67108864),n.set(i,r),r}addScopedDummyLocal(i,e,r){let n=new qe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,r.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,r,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(r<this.targetFunction.localsByIndex.length);let a=new qe(i,r,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let r=assert(e.get(i));assert(r.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let r=e.scopedLocals;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let r=e.lookupLocal(i);if(r)return r;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let r=e;this.thisFieldFlags=new Map;let n=r.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=r||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let r=this.thisFieldFlags;return r!=null&&r.has(i)?(changetype(r.get(i))&e)==e:!1}setThisFieldFlag(i,e){let r=this.thisFieldFlags;if(r)if(assert(this.sourceFunction.is(524288)),r.has(i)){let n=changetype(r.get(i));r.set(i,n|e)}else r.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,r=i.breakStack;return r?r.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,r=assert(e.breakStack);assert(r.length),assert(r.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,r=i.flags,n=0;e&1?n|=1:r&1?n|=512:n|=(e|r)&512,n|=e&r&2,n|=e&r&4,e&8?n|=8:r&8?n|=1024:n|=(e|r)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?r&16?n|=2048:n|=(e|r)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?r&32?n|=4096:n|=(e|r)&4096:n|=e&4096,e&64?r&64?n|=64:n|=8192:r&64&&(n|=8192),n|=(e|r)&16384,n|=e&r&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,r=e.length,n=i.localFlags,s=n.length,a=max(r,s);for(let l=0;l<a;++l){let o=l<r?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let r=i.flags,n=e.flags,s=0;r&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(r|n)&512,r&2&&n&2&&(s|=2),r&4&&n&4&&(s|=4),r&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(r|n)&1024,r&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(r|n)&2048,r&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(r|n)&4096,r&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(r|n)&8192,s|=(r|n)&16384,r&128&&n&128&&(s|=128),r&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(r&256){if(!(n&256)){let o=e.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,c=e.localFlags,_=c.length,f=max(u,_);for(let h=0;h<f;++h){let y=h<u?o[h]:0,x=h<_?c[h]:0;a[h]=y&x&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),_=0,f=c.length;_<f;++_){let h=c[_];(changetype(l.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let r=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(r,n);o<u;++o){let _=a[o].type;_.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),_.isNullableReference&&this.isLocalFlag(o,4)&&!i.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(i,e){if(!e.isNullableReference)return!0;switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4),this.inheritNonnullIfTrue(Ll(i),e);break}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4);break}case 2:{let r=ki(i);r&&Qe(r)&&(this.inheritNonnullIfTrue(Ml(i),e),this.inheritNonnullIfTrue(Kn(i),e));break}case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Nl(i),e);break}}break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch($(i)){case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Nl(i),e);break}}break}case 2:{let r=Kn(i);ki(i)&<(r)&&(this.inheritNonnullIfFalse(Ml(i),e),this.inheritNonnullIfFalse(ki(i),e));break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let r;switch($(i)){case 8:{let n=this.targetFunction.localsByIndex[dt(i)];return!this.isLocalFlag(n.index,2,!0)||zl(n.type,e)}case 9:return assert(Dn(i)),this.canOverflow(Ll(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Un(i))));return assert(n.kind==0||n.kind==3),zl(n.type,e)}case 16:{switch(Fi(i)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!($(r=Xe(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Ne(i),e))||$(r=Ne(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Xe(i),e)));case 7:return!($(r=Xe(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e)||$(r=Ne(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e));case 10:{let n=32-e.size;return $(r=Ne(i))!=14||ne(r)<n}case 11:{let n=32-e.size;return this.canOverflow(Xe(i),e)&&($(r=Ne(i))!=14||ne(r)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!($(r=Ne(i))==14&&ne(r)>n):this.canOverflow(Xe(i),e)&&!($(r=Ne(i))==14&&ne(r)>=n)}case 4:case 5:case 6:return this.canOverflow(Xe(i),e)||this.canOverflow(Ne(i),e)}break}case 15:{switch(Vn(i)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(se(i)){case L.I32:{n=ne(i);break}case L.I64:{n=ve(i);break}case L.F32:{n=i32(Ae(i));break}case L.F64:{n=i32(Ee(i));break}case L.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=Op(i);switch(Vp(i)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return zl(n,e)}case 1:{if(!On(i)){let n=assert(qn(i)),s=Wn(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(Kn(i),e)||this.canOverflow(assert(ki(i)),e);case 17:return this.canOverflow(qp(i),e)||this.canOverflow(Wp(i),e);case 6:{let s=this.program.instancesByName,a=assert(jn(i));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||zl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let r=new Array;return this.is(1)&&r.push("RETURNS"),this.is(2)&&r.push("RETURNS_WRAPPED"),this.is(4)&&r.push("RETURNS_NONNULL"),this.is(8)&&r.push("THROWS"),this.is(16)&&r.push("BREAKS"),this.is(32)&&r.push("CONTINUES"),this.is(64)&&r.push("ACCESSES_THIS"),this.is(128)&&r.push("CALLS_SUPER"),this.is(256)&&r.push("TERMINATES"),this.is(512)&&r.push("CONDITIONALLY_RETURNS"),this.is(1024)&&r.push("CONDITIONALLY_THROWS"),this.is(2048)&&r.push("CONDITIONALLY_BREAKS"),this.is(4096)&&r.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&r.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&r.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${r.join(" ")}`}};function zl(t,i){return i.isShortIntegerValue&&(!t.isIntegerValue||t.size>i.size||t.isSignedIntegerValue!=i.isSignedIntegerValue)}var ql=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(ql||{}),Xn=class extends Ke{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,r,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,r,n,s,a);break}case 2:{l=this.resolveFunctionType(e,r,n,s,a);break}case 3:{l=this.resolveTupleType(e,r,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,r,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let f=l.identifier.text;if(s&&s.has(f)){let h=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,h.toString()),e.isNullable){if(h.isReference)return h.asNullable();a==0&&this.error(204,e.range,h.toString())}return h}}let c=this.resolveTypeName(l,r,n,a);if(!c)return null;let _=c.shadowType;if(_)c=_;else{if(c.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/i32`),p.i32;if(c.kind==6||c.kind==8){let f=this.resolveClassInclTypeArguments(c,o,r,n,pe(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(c.kind==14){let f=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let b=f.type;if(e.isNullable){if(b.isReference)return b.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return b}if(u){let b=l.identifier.text;if(rr.has(b)){let A=assert(rr.get(b)),I=new Wl(this,e,n,s,a);return A(I)}}let h=f.typeParameterNodes,y=null;if(h){if(y=this.resolveTypeArguments(h,o,r,n,s=pe(s),e,a),!y)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let x=this.resolveType(f.typeNode,r,c,s,a);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return x}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,r,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,r,n,s,a),!o))return null;let u=e.parameters,c=u.length,_=new Array(c),f=0,h=!1;for(let A=0;A<c;++A){let I=u[A];switch(I.parameterKind){case 0:{f=A+1;break}case 2:{assert(A==c-1),h=!0;break}}let E=I.type;if(ke(E))return a==0&&this.error(1110,E.range),null;let k=this.resolveType(E,r,n,s,a);if(!k)return null;if(k==p.void)return a==0&&this.error(214,E.range,k.toString()),null;_[A]=k}let y=e.returnType,x;if(ke(y))a==0&&this.error(1110,y.range),x=p.void;else if(x=this.resolveType(y,r,n,s,a),!x)return null;let b=We.create(this.program,_,x,o,f,h);return e.isNullable?b.type.asNullable():b.type}resolveTupleType(e,r,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],r,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,r,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,r,n,s=0){let a=null;if(r&&(a=r.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,r,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let y=0,x=e.length;y<x;++y)e[y].defaultType||++u,++c;let _=r?r.length:0;if(_<u||_>c)return o==0&&this.error(2558,_?le.join(r[0].range,r[_-1].range):l.range,(_<u?u:c).toString(),_.toString()),null;let f=new Array(c),h=pe(a);a.clear();for(let y=0;y<c;++y){let x=y<_?this.resolveType(r[y],n,s,h,o):this.resolveType(assert(e[y].defaultType),n,s,pe(a),o);if(!x)return null;a.set(e[y].name.text,x),f[y]=x}return f}maybeInferCall(e,r,n,s=0){let a=e.typeArguments;if(a)return r.is(65536)?this.resolveFunctionInclTypeArguments(r,a,n.sourceFunction,pe(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,r.internalName),null);if(r.is(65536)){let l=this.inferGenericTypeArguments(e,r,r.typeParameterNodes,n,s);return l?this.resolveFunction(r,l,pe(n.contextualTypeArguments),s):null}return this.resolveFunction(r,null,new Map,s)}inferGenericTypeArguments(e,r,n,s,a=0){if(!n)return null;let l=pe(s.contextualTypeArguments),o=n.length,u=new Set;for(let b=0;b<o;++b){let A=n[b].name.text;l.set(A,p.auto),u.add(A)}let c=r.functionTypeNode.parameters,_=c.length,f,h;switch(e.kind){case 10:{let b=e;f=b.args,h=b.argumentsRange;break}case 18:{let b=e;f=b.args,h=b.argumentsRange;break}default:return assert(!1),null}let y=f.length;for(let b=0;b<_;++b){let A=b<y?f[b]:c[b].initializer;if(!A){if(c[b].parameterKind==1)continue;return a==0&&(c[b].parameterKind==2?this.error(1140,h.atEnd):this.error(2554,e.range,_.toString(),y.toString())),null}let I=c[b].type;if(c[b].parameterKind==2&&(I=I.typeArguments[0]),I.hasGenericComponent(n)){let E=this.resolveExpression(A,s,p.auto,1);E&&this.propagateInferredGenericTypes(I,E,r,l,u)}}let x=new Array(o);for(let b=0;b<o;++b){let A=n[b],I=A.name.text;if(l.has(I)){let E=assert(l.get(I));if(E!=p.auto){x[b]=E;continue}let k=A.defaultType;if(k){let F=r.parent,R=null;(F.kind==7||F.kind==5)&&(R=F.contextualTypeArguments);let G=this.resolveType(k,null,r,R,a);if(!G)return null;x[b]=G;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return x}propagateInferredGenericTypes(e,r,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=r.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,h=_.length;f<h;++f)this.propagateInferredGenericTypes(o[f],_[f],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(r))&&s.set(u,r)}}}else if(e.kind==2){let l=e,o=l.parameters,u=r.signatureReference;if(u){let c=u.parameterTypes;for(let y=0,x=min(c.length,o.length);y<x;++y)this.propagateInferredGenericTypes(o[y].type,c[y],n,s,a);let _=u.returnType;_!=p.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,h=l.explicitThisType;f&&h&&this.propagateInferredGenericTypes(h,f,n,s,a);return}}}getTypeOfElement(e){let r=e.kind;if(r==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Vl(r)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let r=e.getClassOrWrapper(this.program);return r||null}lookupExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,r,n,s);case 9:return this.lookupBinaryExpression(e,r,n,s);case 10:return this.lookupCallExpression(e,r,n,s);case 12:return this.lookupCommaExpression(e,r,n,s);case 13:return this.lookupElementAccessExpression(e,r,n,s);case 15:return this.lookupFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,r,r.sourceFunction,s);case 25:return this.lookupThisExpression(e,r,n,s);case 24:return this.lookupSuperExpression(e,r,n,s);case 16:return this.lookupInstanceOfExpression(e,r,n,s);case 17:return this.lookupLiteralExpression(e,r,n,s);case 18:return this.lookupNewExpression(e,r,n,s);case 22:return this.lookupPropertyAccessExpression(e,r,n,s);case 23:return this.lookupTernaryExpression(e,r,n,s);case 28:return this.lookupUnaryPostfixExpression(e,r,n,s);case 29:return this.lookupUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}resolveExpression(e,r,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,r,n,s);return a.delete(e),l}doResolveExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,r,n,s);case 9:return this.resolveBinaryExpression(e,r,n,s);case 10:return this.resolveCallExpression(e,r,n,s);case 12:return this.resolveCommaExpression(e,r,n,s);case 13:return this.resolveElementAccessExpression(e,r,n,s);case 15:return this.resolveFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,r,n,r.sourceFunction,s);case 25:return this.resolveThisExpression(e,r,n,s);case 24:return this.resolveSuperExpression(e,r,n,s);case 16:return this.resolveInstanceOfExpression(e,r,n,s);case 17:return this.resolveLiteralExpression(e,r,n,s);case 18:return this.resolveNewExpression(e,r,n,s);case 22:return this.resolvePropertyAccessExpression(e,r,n,s);case 23:return this.resolveTernaryExpression(e,r,n,s);case 28:return this.resolveUnaryPostfixExpression(e,r,n,s);case 29:return this.resolveUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}lookupIdentifierExpression(e,r,n=r.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,r,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=r.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=r.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,r,n=p.auto,s=r.sourceFunction,a=0){switch(e.kind){case 26:case 14:return p.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,r,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,r=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,r):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,r);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,r,n,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,c=u.type;if(c==p.void)return null;let _=c.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=_;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let h=assert(u.setterInstance);return this.errorRelated(229,a.range,h.declaration.range,u.name),null}let _=c.signature.returnType,f=_.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,_.toString()),null;l=f;break}case 15:{let c=l.parent;assert(c.kind==7);let _=c,f=assert(this.currentElementExpression),h=_.lookupOverload(1);if(!h)return s==0&&this.error(2329,f.range,c.internalName),null;let y=h.signature.returnType,x=y.getClassOrWrapper(this.program);if(!x)return s==0&&this.error(2339,e.property.range,o,y.toString()),null;l=x;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let _=this.resolveType(u.typeNode,null,u.parent,null,s);_&&u.setType(_)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let _=this.resolveFunction(l,null,new Map,1);if(_){let f=_.type.getClassOrWrapper(this.program);f&&(l=f)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let _=u.getMember(o);if(_){if(_.kind==10){let f=this.resolveProperty(_,s);if(!f)return null;_=f,f.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,_}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,r,n,s=0){let a=this.lookupPropertyAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,r,n,s=0){let a=e.expression,l=this.resolveExpression(a,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,r,n,s=0){let a=this.lookupElementAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,r,n){let s=e.value;if(r){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,r,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,r,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Re.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Ie(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 96:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Re.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Ie(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,r,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,r,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,r,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,u,s);if(!_)return null;let f=p.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,n,s);if(!_)return null;let f=p.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),_}case 98:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _?u.is(512)&&c.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,r,n=p.auto,s=0){if(r.isInline){let o=r.lookupLocal(C.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=r.lookupLocal(C.this_);if(a||(a=r.lookupLocalInOuter(C.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=r.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,r,n=p.auto,s=0){let a=this.lookupThisExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,r,n=p.auto,s=0){if(r.isInline){let l=r.lookupLocal(C.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=r.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,r,n=p.auto,s=0){let a=this.lookupSuperExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,r,n=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let _=0,f=o;_<f;++_){let h=l[_];if(h)if(h.kind==19&&o>1)++c;else{let y=this.resolveExpression(h,r,u);if(!y)return null;if(u==p.auto)u=y;else if(y!=u){let x=p.commonType(u,y,u);x&&(u=x)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,r,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,r,n=p.void,s=0){let a=this.resolveCallExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,r,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==d.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],r,n,s);let u=this.maybeInferCall(e,o,r,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Vl(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}lookupCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],r,n,s)}resolveCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],r,n,s)}lookupInstanceOfExpression(e,r,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,r,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,r,n,s=0){let a=this.resolveTernaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,r,n,s=0){let a=this.resolveExpression(e.ifThen,r,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,r,a,s);if(!l)return null;let o=p.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,r,n,s=0){let a=this.resolveTypeName(e.typeName,r,r.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,r,r.sourceFunction,pe(r.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,r,n,s=0){let a=this.lookupNewExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,r,n,s=0){let a=this.resolveFunctionExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,r,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,r.sourceFunction,r.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&ke(l.returnType)){let c=o.expression,_=assert(u.getSignature()),f=Dt.createDefault(r.sourceFunction),h=l.parameters;assert(_.parameterTypes.length==h.length);for(let x=0,b=h.length;x<b;x++){let A=h[x],I=_.parameterTypes[x];f.addScopedDummyLocal(A.name.text,I,A)}let y=this.resolveExpression(c,f,n,s);y&&(u.signatureReference=We.create(this.program,_.parameterTypes,y,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,r,n=new Map,s=0){let a=null,l=r?Ol(r):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let G=a.typeArguments;if(G){let U=assert(a.prototype.typeParameterNodes),z=U.length;assert(z==U.length);for(let W=0;W<z;++W){let q=U[W].name.text;n.set(q,G[W])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(r&&(c=r.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)n.set(u[R].name.text,r[R])}else assert(!u||u.length==0);let _=null,f=o.explicitThisType;if(f){if(_=this.resolveType(f,null,e.parent,n,s),!_)return null;n.set(C.this_,_)}else a&&(_=a.type,n.set(C.this_,_));let h=o.parameters,y=h.length,x=new Array(y),b=0,A=!1;for(let R=0;R<y;++R){let G=h[R];G.parameterKind==0?b=R+1:G.parameterKind==2&&(A=!0);let U=G.type;if(ke(U))return s==0&&this.error(1110,U.range),null;let z=this.resolveType(U,null,e.parent,n,s);if(!z)return null;if(z==p.void)return s==0&&this.error(1110,U.range),null;x[R]=z}let I;if(e.is(4096))I=p.void;else if(e.is(524288))I=a.type;else{let R=o.returnType;if(ke(R))return s==0&&this.error(1110,R.range),null;let G=this.resolveType(R,null,e.parent,n,s);if(!G)return null;I=G}let E=We.create(this.program,x,I,_,b,A),k=e.name;l.length&&(k+=`<${l}>`);let F=new bt(k,e,r,E,n);if(e.setResolvedInstance(l,F),a){let R=F.declaration.name.text,G=a.base;if(G){let U=G.getMember(R);if(U){this.discoveredOverride=!0;let z=!0;if(F.isAny(6144)){if(U.kind==10){let W=this.resolveProperty(U,s);if(W)if(F.is(2048)){let q=W.getterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}else{assert(F.is(4096));let q=W.setterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}}}else if(F.is(524288))z=!1;else if(U.kind==4){let W=U,q=W.typeParameterNodes,ee=q!=null&&q.length>0,Y=r!=null&&r.length>0;if(ee!=Y)this.errorRelated(242,F.identifierAndSignatureRange,U.identifierAndSignatureRange,R),z=!1;else{let te=this.resolveFunction(W,r,new Map,1);te&&F.signature.isAssignableTo(te.signature,!0)&&(z=!1)}}z&&this.errorRelated(2394,F.identifierAndSignatureRange,U.identifierAndSignatureRange)}}}return F}resolveFunctionInclTypeArguments(e,r,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let _=assert(u.prototype.typeParameterNodes),f=c.length;assert(f==_.length);for(let h=0;h<f;++h)s.set(_[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),r,null,n,s,a,l),!o)return null}else if(r&&r.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let r=e.prototype.unboundOverrides;if(!r)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(r),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,_;if(assert(c.kind==6||c.kind==8),_=c.instances,!!_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h){let x=f[h];if(!x.isAssignableTo(n))continue;let b=null;if(e.isAny(6144)){let A=e.declaration.name.text,I=assert(x.getMember(A));assert(I.kind==10);let E=this.resolveProperty(I);if(!E)continue;e.is(2048)?b=E.getterInstance:(assert(e.is(4096)),b=E.setterInstance)}else{let A=x.getMember(u.name);if(A){assert(A.kind==4);let I=A;I.is(65536)==e.is(65536)&&(b=this.resolveFunction(I,e.typeArguments))}}b&&s.add(b)}}return Set_values(s)}resolveClass(e,r,n=new Map,s=0){let a=r?Ol(r):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Yn(o,e,r):l=new ir(o,e,r),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),r){let h=assert(e.typeParameterNodes),y=h.length,x=r.length;assert(x==y);for(let b=0;b<x;++b)n.set(h[b].name.text,r[b])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}l.contextualTypeArguments=n;let c=!1,_=e.basePrototype;if(_){let h=_;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let y=assert(e.extendsNode),x=this.resolveClassInclTypeArguments(_,y.typeArguments,null,e.parent,pe(n),y,s);if(!x)return null;l.setBase(x),u.has(x)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let h=0,y=f.length;h<y;++h){let x=f[h],b=x;do{if(b==e)return this.error(2506,e.identifierNode.range,e.internalName),null;b=b.basePrototype}while(b);let A=assert(e.implementsNodes[h]),I=this.resolveClassInclTypeArguments(x,A.typeArguments,null,e.parent,pe(n),A,s);if(!I)return null;assert(I.kind==9),l.addInterface(I),u.has(I)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,r,n,s,a,l){let o=!1;return r.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,r.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):r.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,r.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):r.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):r.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,r){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let h=Set_values(l),y=0,x=h.length;y<x;++y){let b=h[y];assert(!s.has(b));let A=b.members;if(A)for(let I=Map_keys(A),E=0,k=I.length;E<k;++E){let F=unchecked(I[E]),R=assert(A.get(F)),G=e.getMember(F);G&&!this.checkOverrideVisibility(F,G,e,R,b,r)||(n.set(F,R),a.set(F,R))}}let o=0,u=e.base;if(u){let h=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let y=u.members;if(y)for(let x=Map_keys(y),b=0,A=x.length;b<A;++b){let I=unchecked(x[b]),E=assert(y.get(I));if(h&&E.is(32))continue;let k=e.getMember(I);k&&!this.checkOverrideVisibility(I,k,e,E,u,r)||(n.set(I,E),E.is(128)?a.set(I,E):a.delete(I))}o=u.nextMemoryOffset}let c=e.prototype,_=c.instanceMembers;if(_)for(let h=Map_values(_),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=b.name;if(u){let I=u.getMember(A);I&&this.checkOverrideVisibility(A,b,e,I,u,r)}switch(b.kind){case 4:{let I=b.toBound(e);e.add(I.name,I);break}case 10:{let I=b.toBound(e);if(I.isField){let E=this.resolveProperty(I,r);if(E){let k=E.type;if(k==p.void)break;if(k.isExternalReference){this.error(100,assert(I.typeNode).range,"Reference typed fields");break}let F=!0;if(u){let G=u.getMember(I.name);if(G&&G.kind==10){let U=G,z=this.resolveProperty(U,r);if(z&&z.isField){if(z.type!=E.type){this.errorRelated(2416,E.identifierNode.range,z.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=z.memoryOffset,F=!1}}}if(F){let G=k.byteSize;assert(Pt(G));let U=G-1;o&U&&(o=(o|U)+1),E.memoryOffset=o,o+=G}I.instance=E,e.add(I.name,I);let R=assert(I.fieldDeclaration).type;R&&this.program.checkTypeSupported(k,R)}}else e.add(I.name,I);break}default:assert(!1)}!b.is(128)&&!b.is(65536)&&a.delete(A)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let h=Map_keys(a),y=0,x=h.length;y<x;++y){let b=h[y],A=assert(a.get(b));this.errorRelated(2515,e.identifierNode.range,A.identifierNode.range,e.internalName,b,A.parent.internalName)}e.nextMemoryOffset=o;{let h=e.getMember(C.constructor);if(h&&h.parent==e){assert(h.kind==4);let y=this.resolveFunction(h,null,assert(e.contextualTypeArguments),r);y&&(e.constructorInstance=y)}}}let f=c.operatorOverloadPrototypes;for(let h=Map_keys(f),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=assert(f.get(b));if(assert(b!=0),A.is(65536))continue;let I;if(A.is(262144)){let k=A.toBound(e);I=this.resolveFunction(k,null,new Map,r)}else I=this.resolveFunction(A,null,new Map,r);if(!I)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),I.is(262144))switch(b){case 27:case 28:case 29:case 30:{let k=I.signature.returnType;k.isAssignableTo(e.type)||r==0&&this.error(2322,A.functionTypeNode.returnType.range,k.toString(),e.type.toString())}}if(E.has(b))r==0&&this.error(213,I.declaration.range);else if(E.set(b,I),b==1||b==2){let k=e.indexSignature;k||(e.indexSignature=k=new Zn(e)),b==1&&k.setType(I.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let h=Set_values(s),y=0,x=h.length;y<x;++y){let b=h[y],A=b.base==e,I=b.interfaces;if(I){let E=!1;for(let k=Set_values(I),F=0,R=k.length;F<R;++F){let G=k[F];G==e?A=!0:s.has(G)&&(E=!0)}if(E)continue}A&&this.finishResolveClass(b,r)}}resolveClassInclTypeArguments(e,r,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let _=e;_&&!c;_=_.basePrototype)c=_.constructorPrototype;if(!r&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),r,n,s,a,l,o),!u)return null}else if(r&&r.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,r=0){let n=e.instance;if(n)return n;e.instance=n=new Jn(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,r);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,r);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,r=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(r==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function ng(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function eg(t,i){let e=ng(t);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function tg(t){let i=ng(t);return i.length!=0?"__r.read"+i+"()":t+".decodeFrom(__r)"}function U2(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function rg(t,i){switch(t){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+t+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function ig(t,i){switch(t){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+t+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+t+">"+i+".asI64()";case"f32":case"f64":return"<"+t+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"("+i+".isArray() ? new u128("+i+".at(0).asU64(),"+i+".at(1).asU64()) : u128.fromString("+i+".asString()))";case"i128":return"("+i+".isArray() ? new i128("+i+".at(0).asU64(),"+i+".at(1).asI64()) : i128.fromString("+i+".asString()))";case"u256":return"("+i+".isArray() ? new u256("+i+".at(0).asU64(),"+i+".at(1).asU64(),"+i+".at(2).asU64(),"+i+".at(3).asU64()) : u256.fromString("+i+".asString()))";case"i256":return"("+i+".isArray() ? new i256("+i+".at(0).asI64(),"+i+".at(1).asI64(),"+i+".at(2).asI64(),"+i+".at(3).asI64()) : i256.fromString("+i+".asString()))";default:return t+".fromJSON("+i+")"}}var es=class{constructor(i,e){this.source=i;this.reportNode=e}};function V2(t,i){switch(t){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function Jp(t){return t=="Get"||t=="GetMany"||t=="Exists"||t=="ViewGet"||t=="CounterGet"||t=="UniqueLookup"||t=="Latest"||t=="MembershipContains"||t=="MembershipList"||t=="CapacityAvailable"}function O2(t,i){switch(t){case 33:return Jp(i);case 34:return Jp(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return Jp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 37:return!1;default:return!0}}function q2(t){switch(t){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 37:return"admin";default:return"?"}}function W2(t){switch(t){case 33:return"a query is read-only";case 34:return"an action cannot publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 37:return"an admin has no request-path data access";default:return"not permitted in this kind"}}var ts=class extends Ke{constructor(e=null,r=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.restImportedSources=new Set;this.ratelimitRouteCounter=0;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=r}parseFile(e,r,n){let s=Sr(r),a=Ln(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let c=this.dependees,_=null;c.has(a)&&(_=assert(c.get(a))),this.error(6054,_?_.reportNode.range:null,r);return}let l=new ce(n?1:r.startsWith(ct)?r.indexOf(it,ct.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new wr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,r=null){let n=r?r.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let b=this.parseDecorator(e);if(!b){this.skipStatement(e);continue}a?a.push(b):a=[b]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let _=0,f=0,h=r!=null&&r.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):h&&(n|=32768);let y=null,x=e.peek();switch(s<0&&(s=e.nextTokenPos),x){case 8:{e.next(),n|=8,e.skip(17)?y=this.parseEnum(e,n,a,s):y=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),y=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),y=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),y=this.parseFunction(e,n,a,s),a=null;break}case 0:{let b=e.mark();e.next();let A=e.tokenPos,I=e.pos;if(e.peekOnNewLine()){e.reset(b),y=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(A,I)),e.reset(b),y=this.parseStatement(e,!0);break}else e.discard(b);n|=128}case 7:case 31:{e.next(),y=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseNamespace(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?y=this.parseExportImport(e,s):y=this.parseImport(e);break}case 55:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 35:{let b=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(b),y=this.parseModuleDeclaration(e,n)):(e.reset(b),y=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),y=this.parseExportDefaultAlias(e,s,u,c),u=c=0):y=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),r?this.error(2695,e.range(s)):y=this.parseStatement(e,!0));break}}if(a)for(let b=0,A=a.length;b<A;++b)this.error(1206,a[b].range);if(c&&y!=null)switch(y.kind){case 53:case 56:case 52:case 58:case 60:return M.createExportDefaultStatement(y,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return y}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let r=this.dependees;return r.has(e)?assert(r.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear(),this.restImportedSources.clear()}checkToilDbKinds(){let e=new Map;for(let r=0,n=this.sources.length;r<n;++r)this.collectDbCollections(this.sources[r].statements,e);if(e.size)for(let r=0,n=this.sources.length;r<n;++r)this.checkDbFunctions(this.sources[r].statements,e)}collectDbCollections(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];if(f.kind!=55)continue;let h=f;if(!this.hasDecoratorKind(h.decorators,32))continue;let y=h.type;y==null||!(y instanceof de)||o.set(h.name.text,y.name.identifier.text)}o.size&&r.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,r)}}checkDbFunctions(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators),u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,r)}else a.kind==60?this.checkDbFunctions(a.members,r):a.kind==52&&this.checkDbFunctions(a.members,r)}}dbFunctionKind(e){if(e==null)return-1;for(let r=0,n=e.length;r<n;++r){let s=e[r].decoratorKind;if(s==33||s==34||s==35||s==36||s==37)return s}return-1}walkDbStmt(e,r,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],r,n);break}case 39:this.walkDbExpr(e.expression,r,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,r,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,r,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.ifTrue,r,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,r,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,r,n),s.condition&&this.walkDbExpr(s.condition,r,n),s.incrementor&&this.walkDbExpr(s.incrementor,r,n),this.walkDbStmt(s.body,r,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,r,n),this.walkDbStmt(s.body,r,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.body,r,n);break}case 34:{let s=e;this.walkDbStmt(s.body,r,n),this.walkDbExpr(s.condition,r,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,r,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let c=0,_=u.length;c<_;++c)this.walkDbStmt(u[c],r,n)}break}case 46:this.walkDbExpr(e.value,r,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,r,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,r,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,r,n);break}default:break}}walkDbStmtList(e,r,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],r,n)}walkDbExpr(e,r,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,r,n),this.walkDbExpr(s.expression,r,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],r,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}case 22:this.walkDbExpr(e.expression,r,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,r,n),this.walkDbExpr(s.elementExpression,r,n);break}case 9:{let s=e;this.walkDbExpr(s.left,r,n),this.walkDbExpr(s.right,r,n);break}case 29:this.walkDbExpr(e.operand,r,n);break;case 28:this.walkDbExpr(e.operand,r,n);break;case 21:this.walkDbExpr(e.expression,r,n);break;case 8:this.walkDbExpr(e.expression,r,n);break;case 16:this.walkDbExpr(e.expression,r,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbExpr(s.ifThen,r,n),this.walkDbExpr(s.ifElse,r,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}default:break}}checkDbCall(e,r,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let c=n.get(u.text);if(c==null)return;let _=c.get(o.property.text);if(_==null)return;let f=a.property.text,h=V2(_,f);h.length!=0&&(O2(r,h)||this.error(102,a.property.range,"ToilDB: a @"+q2(r)+" function may not call '."+f+"' on '"+u.text+"."+o.property.text+"' ("+W2(r)+")"))}parseTypeName(e){let r=M.createSimpleTypeName(e.readIdentifier(),e.range()),n=r;for(;e.skip(68);)if(e.skip(115)){let s=M.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return r}parseType(e,r=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(r){let c=this.parseType(e,!1,n);if(!c)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=c,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,r,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],c=!1;if(!e.skip(67)){do{let _=null,f=e.mark();if(e.skip(115)){let y=e.readIdentifier(),x=e.range();e.skip(100)?(_=M.createIdentifierExpression(y,x),c=!0):e.reset(f)}let h=this.parseType(e,!0,n);if(!h)return null;o.push(h),u.push(_)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=M.createTupleType(o,c?u:null,!1,e.range(a,e.pos))}else if(s==58)l=M.createNamedType(M.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=M.createNamedType(M.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=M.createNamedType(M.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=M.createNamedType(M.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=M.createNamedType(M.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let c=this.parseType(e,!0,n);if(!c)return null;u?u.push(c):u=[c]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=M.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,c=o.kind==1&&o.isNull;if(!u&&!c)return n||this.error(100,o.range,"union types"),null;c?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),c=!1;if(e.skip(93))if(e.skip(38))c=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=M.createNamedType(M.createSimpleTypeName("Array",u),[l],c,e.range(a,e.pos)),c)break}return l}tryParseFunctionType(e){let r=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(r),s=[];else{l=!1;do{let _=-1,f=0;if(e.skip(69)&&(_=e.tokenPos,l=!0,e.discard(r),f=2),e.skip(51))if(_<0&&(_=e.tokenPos),e.skip(100)){l=!0,e.discard(r);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;a=h}else return e.reset(r),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){_<0&&(_=e.tokenPos);let h=M.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(r),f==2?this.error(1047,e.range()):f=1),e.skip(100)){l=!0,e.discard(r);let y=this.parseType(e);if(!y)return this.tryParseSignatureIsSignature=l,null;let x=M.createParameter(f,h,y,null,e.range(_,e.pos));s?s.push(x):s=[x]}else if(l||e.peek()==71&&(l=!0,e.discard(r)),l){let y=M.createParameter(f,h,M.createOmittedType(e.range(e.pos)),null,e.range(_,e.pos));s?s.push(y):s=[y],this.error(1110,y.type.range)}else s||(o=h,u=f)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(r);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(80)){if(!l&&(l=!0,e.discard(r),o)){let _=M.createParameter(u,o,M.createOmittedType(o.range.atEnd),null,o.range);s?s.push(_):s=[_],this.error(1110,_.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),M.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let r=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=M.createIdentifierExpression(n,e.range(r,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=M.createPropertyAccessExpression(s,M.createIdentifierExpression(n,e.range()),e.range(r,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return M.createDecorator(s,a,e.range(r,e.pos))}else return M.createDecorator(s,null,e.range(r,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,r,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,r,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=M.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,r,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());Ip(a.text)&&this.error(1003,a.range);let l=r;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=le.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),M.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,r,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=M.createEnumDeclaration(a,n,r,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,r){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=M.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:M.createEnumValueDeclaration(n,r,s,le.join(n.range,e.range()))}parseReturn(e){let r=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=M.createReturnStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let r=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),r.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return r.length||this.error(1098,e.range(s,e.pos)),r}parseTypeParameter(e){if(e.next()==115){let r=M.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return M.createTypeParameter(r,n,s,le.join(r.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,r=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,r);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,r=!1){let n=!1,s=!1,a=null,l=0;if(r&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=M.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));let c=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let _=M.createParameter(n?2:s?1:0,o,u,c,le.join(assert(a),e.range()));return _.flags|=l,_}else this.error(1003,e.range());return null}parseFunction(e,r,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;r|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let c=this.parseParametersThis,_=(r&4096)!=0;_&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),r&2048&&u.length&&this.error(1054,a.range);let f=null;if(e.skip(100)&&(f=this.parseType(e,!0,_),!f))return null;f||(f=M.createOmittedType(e.range(e.pos)),_||this.error(1110,f.range));let h=M.createFunctionType(u,f,c,!1,e.range(l,e.pos)),y=null;if(e.skip(62)){if(r&32768&&this.error(1183,e.range()),y=this.parseBlockStatement(e,!1),!y)return null}else r&32768||this.error(2391,e.range(e.pos));let x=M.createFunctionDeclaration(a,n,r,o,h,y,0,e.range(s,e.pos));return x.overriddenModuleName=this.currentModuleName,e.skip(70),x}parseFunctionExpression(e){let r=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=M.createIdentifierExpression(e.readIdentifier(),e.range()):n=M.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=M.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,r,a):null}parseFunctionExpressionCommon(e,r,n,s,a,l=-1,o=-1){l<0&&(l=r.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=M.createFunctionType(n,u,s,!1,e.range(o,e.pos)),_=null;if(a)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let h=this.parseExpression(e,2);h&&(_=M.createExpressionStatement(h))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(!_)return null;let f=M.createFunctionDeclaration(r,null,0,null,c,_,a,e.range(l,e.pos));return M.createFunctionExpression(f)}parseClassOrInterface(e,r,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=M.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;r|=65536}let u=null;if(e.skip(19)){let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;u=h}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;a||(c||(c=[]),c.push(h))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let _=new Array,f;if(a?(assert(!c),f=M.createInterfaceDeclaration(l,n,r,o,u,null,_,e.range(s,e.pos))):f=M.createClassDeclaration(l,n,r,o,u,c,_,e.range(s,e.pos)),!e.skip(63))do{let h=this.parseClassMember(e,f);if(h)h.kind==66?f.indexSignature=h:(assert(h instanceof Ue),_.push(h));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(f.range.end=e.pos,f.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let h=0,y=n.length;h<y;++h){let x=n[h].decoratorKind;x==15?this.injectDataCodec(f):x==29?(this.injectDataCodec(f),this.injectUserBinding(f)):x==18?this.injectRestController(f,n[h]):x==31&&this.injectDatabaseBinding(f)}return f}injectDatabaseBinding(e){let r=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof de))continue;let c=u,_=c.name.identifier.text,f=o.name.text,h=c.typeArguments,y=_;if(h!=null&&h.length>0){let A="";for(let I=0,E=h.length;I<E;++I){I>0&&(A+=", ");let k=h[I];k instanceof de&&(A+=k.name.identifier.text)}y=_+"<"+A+">"}let x=r+"/"+f,b="__db_"+f;this.injectClassMember(e,"private static "+b+": "+y+" | null = null;"),this.injectClassMember(e,"static get "+f+"(): "+y+" { if ("+r+"."+b+" == null) "+r+"."+b+" = new "+y+'(__toildbResolve("'+x+'")); return '+r+"."+b+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
17
|
+
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?r:-1)):this.readUnicodeEscape(e?r:-1);case 120:return this.readHexadecimalEscape(2,e?r:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,r=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(r,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Bt(a)){this.error(1161,this.range(r,this.pos));break}++this.pos,s=!1}return e.substring(r,this.pos)}readRegexpFlags(){let e=this.source.text,r=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!mi(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(r,this.pos)),e.substring(r,this.pos)}testInteger(){let e=this.source.text,r=this.pos,n=this.end;if(r+1<n&&e.charCodeAt(r)==48)switch(e.charCodeAt(r+2)|32){case 120:case 98:case 111:return!0}for(;r<n;){let s=e.charCodeAt(r);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;r++}return!0}readInteger(){let e=this.source.text,r=this.pos;if(r+2<this.end&&e.charCodeAt(r)==48){switch(e.charCodeAt(r+1)|32){case 120:return this.pos=r+2,this.readHexInteger();case 98:return this.pos=r+2,this.readBinaryInteger();case 111:return this.pos=r+2,this.readOctalInteger()}if(ha(e.charCodeAt(r+1))){let n=r;this.pos=r+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(Fn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1125,this.range(s)):a==r&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readDecimalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==r?this.error(a==s?6188:6189,this.range(r)):r-1==s&&e.charCodeAt(r-1)==48&&this.error(6188,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1124,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,r),this.source.text.substring(s,r)),this.pos=r,l}readOctalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(ha(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1178,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readBinaryInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=l,u=!1;for(;r<n;){let c=e.charCodeAt(r);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt(l,o)&&(u=!0),l=o,++r}return r==s?this.error(1177,this.range(s)):a==r?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,r=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<r&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<r){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<r&&(l=e.charCodeAt(this.pos))==45||l==43&&st(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let r=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=r.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&r.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!st(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,r=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(st(o))n=(n<<4)+o-48;else if(Fn(o))n=(n<<4)+(o|32)+-87;else return~r?(this.pos=--a,s.substring(r,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~r?s.substring(r,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&di(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let r=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(r,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(r,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(r,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Il=class{constructor(i,e,r){this.pos=i;this.token=e;this.tokenPos=r}},vp=null;var L;(I=>(I.None=0,I.Unreachable=1,I.I32=2,I.I64=3,I.F32=4,I.F64=5,I.V128=6,I.Funcref=n_(),I.Externref=s_(),I.Anyref=a_(),I.Eqref=l_(),I.Structref=u_(),I.Arrayref=p_(),I.I31ref=o_(),I.Stringref=c_(),I.Noneref=__(),I.Nofuncref=h_(),I.Noexternref=f_()))(L||={});var ge;(b=>{b.Extern=8,b.Func=16,b.Any=32,b.Eq=40,b.I31=48,b.Struct=56,b.Array=64,b.Exn=7,b.String=80,b.None=88,b.Noextern=96,b.Nofunc=104;function f(A){return d_(A)}b.isBottom=f;function h(A){return m_(A)}b.getBottom=h;function y(A,I){return y_(A,I)}b.isSubtype=y;function x(A,I){if(A==I)return A;if(h(A)!=h(I))return-1;if(f(A))return I;if(f(I))return A;if(A>I){let E=A;A=I,I=E}switch(A){case b.Extern:return I==b.String?A:-1;case b.Func:return-1;case b.Any:return A;case b.Eq:return I==b.I31||I==b.Struct||I==b.Array?b.Eq:b.Any;case b.I31:return I==b.Struct||I==b.Array?b.Eq:b.Any;case b.Struct:return I==b.Array?b.Eq:b.Any;case b.Array:return b.Any}return assert(!1),-1}b.leastUpperBound=x})(ge||={});var Mn;(r=>(r.NotPacked=0,r.I8=1,r.I16=2))(Mn||={});var Fp;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Fp||={});var kp=(q=>(q[q.MVP=0]="MVP",q[q.Atomics=1]="Atomics",q[q.MutableGlobals=2]="MutableGlobals",q[q.TruncSat=4]="TruncSat",q[q.SIMD=8]="SIMD",q[q.BulkMemory=16]="BulkMemory",q[q.SignExt=32]="SignExt",q[q.ExceptionHandling=64]="ExceptionHandling",q[q.TailCall=128]="TailCall",q[q.ReferenceTypes=256]="ReferenceTypes",q[q.MultiValue=512]="MultiValue",q[q.GC=1024]="GC",q[q.Memory64=2048]="Memory64",q[q.RelaxedSIMD=4096]="RelaxedSIMD",q[q.ExtendedConst=8192]="ExtendedConst",q[q.Strings=16384]="Strings",q[q.MultiMemory=32768]="MultiMemory",q[q.StackSwitching=65536]="StackSwitching",q[q.SharedEverything=131072]="SharedEverything",q[q.FP16=262144]="FP16",q[q.BulkMemoryOpt=524288]="BulkMemoryOpt",q[q.CallIndirectOverlong=1048576]="CallIndirectOverlong",q[q.RelaxedAtomics=4194304]="RelaxedAtomics",q[q.CustomPageSizes=8388608]="CustomPageSizes",q[q.Multibyte=16777216]="Multibyte",q[q.WideArithmetic=33554432]="WideArithmetic",q[q.All=67108863]="All",q))(kp||{}),Cr=(N=>(N[N.Invalid=0]="Invalid",N[N.Block=1]="Block",N[N.If=2]="If",N[N.Loop=3]="Loop",N[N.Break=4]="Break",N[N.Switch=5]="Switch",N[N.Call=6]="Call",N[N.CallIndirect=7]="CallIndirect",N[N.LocalGet=8]="LocalGet",N[N.LocalSet=9]="LocalSet",N[N.GlobalGet=10]="GlobalGet",N[N.GlobalSet=11]="GlobalSet",N[N.Load=12]="Load",N[N.Store=13]="Store",N[N.Const=14]="Const",N[N.Unary=15]="Unary",N[N.Binary=16]="Binary",N[N.Select=17]="Select",N[N.Drop=18]="Drop",N[N.Return=19]="Return",N[N.MemorySize=20]="MemorySize",N[N.MemoryGrow=21]="MemoryGrow",N[N.Nop=22]="Nop",N[N.Unreachable=23]="Unreachable",N[N.AtomicRMW=24]="AtomicRMW",N[N.AtomicCmpxchg=25]="AtomicCmpxchg",N[N.AtomicWait=26]="AtomicWait",N[N.AtomicNotify=27]="AtomicNotify",N[N.AtomicFence=28]="AtomicFence",N[N.Pause=29]="Pause",N[N.SIMDExtract=30]="SIMDExtract",N[N.SIMDReplace=31]="SIMDReplace",N[N.SIMDShuffle=32]="SIMDShuffle",N[N.SIMDTernary=33]="SIMDTernary",N[N.SIMDShift=34]="SIMDShift",N[N.SIMDLoad=35]="SIMDLoad",N[N.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",N[N.MemoryInit=37]="MemoryInit",N[N.DataDrop=38]="DataDrop",N[N.MemoryCopy=39]="MemoryCopy",N[N.MemoryFill=40]="MemoryFill",N[N.Pop=41]="Pop",N[N.RefNull=42]="RefNull",N[N.RefIsNull=43]="RefIsNull",N[N.RefFunc=44]="RefFunc",N[N.RefEq=45]="RefEq",N[N.TableGet=46]="TableGet",N[N.TableSet=47]="TableSet",N[N.TableSize=48]="TableSize",N[N.TableGrow=49]="TableGrow",N[N.TableFill=50]="TableFill",N[N.TableCopy=51]="TableCopy",N[N.TableInit=52]="TableInit",N[N.ElemDrop=53]="ElemDrop",N[N.Try=54]="Try",N[N.TryTable=55]="TryTable",N[N.Throw=56]="Throw",N[N.Rethrow=57]="Rethrow",N[N.ThrowRef=58]="ThrowRef",N[N.TupleMake=59]="TupleMake",N[N.TupleExtract=60]="TupleExtract",N[N.RefI31=61]="RefI31",N[N.I31Get=62]="I31Get",N[N.CallRef=63]="CallRef",N[N.RefTest=64]="RefTest",N[N.RefCast=65]="RefCast",N[N.RefGetDesc=66]="RefGetDesc",N[N.BrOn=67]="BrOn",N[N.StructNew=68]="StructNew",N[N.StructGet=69]="StructGet",N[N.StructSet=70]="StructSet",N[N.StructRMW=71]="StructRMW",N[N.StructCmpxchg=72]="StructCmpxchg",N[N.ArrayNew=73]="ArrayNew",N[N.ArrayNewData=74]="ArrayNewData",N[N.ArrayNewElem=75]="ArrayNewElem",N[N.ArrayNewFixed=76]="ArrayNewFixed",N[N.ArrayGet=77]="ArrayGet",N[N.ArraySet=78]="ArraySet",N[N.ArrayLoad=79]="ArrayLoad",N[N.ArrayStore=80]="ArrayStore",N[N.ArrayLen=81]="ArrayLen",N[N.ArrayCopy=82]="ArrayCopy",N[N.ArrayFill=83]="ArrayFill",N[N.ArrayInitData=84]="ArrayInitData",N[N.ArrayInitElem=85]="ArrayInitElem",N[N.ArrayRMW=86]="ArrayRMW",N[N.ArrayCmpxchg=87]="ArrayCmpxchg",N[N.RefAs=88]="RefAs",N[N.StringNew=89]="StringNew",N[N.StringConst=90]="StringConst",N[N.StringMeasure=91]="StringMeasure",N[N.StringEncode=92]="StringEncode",N[N.StringConcat=93]="StringConcat",N[N.StringEq=94]="StringEq",N[N.StringTest=95]="StringTest",N[N.StringWTF16Get=96]="StringWTF16Get",N[N.StringSliceWTF=97]="StringSliceWTF",N[N.ContNew=98]="ContNew",N[N.ContBind=99]="ContBind",N[N.Suspend=100]="Suspend",N[N.Resume=101]="Resume",N[N.ResumeThrow=102]="ResumeThrow",N[N.StackSwitch=103]="StackSwitch",N[N.StructWait=104]="StructWait",N[N.StructNotify=105]="StructNotify",N[N.WideIntAddSub=106]="WideIntAddSub",N[N.WideIntMul=107]="WideIntMul",N))(Cr||{}),wp=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(wp||{}),qy=(r=>(r[r.Unordered=0]="Unordered",r[r.SeqCst=1]="SeqCst",r[r.AcqRel=2]="AcqRel",r))(qy||{}),zn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(zn||{}),Ri=(T=>(T[T.AddI32=0]="AddI32",T[T.SubI32=1]="SubI32",T[T.MulI32=2]="MulI32",T[T.DivI32=3]="DivI32",T[T.DivU32=4]="DivU32",T[T.RemI32=5]="RemI32",T[T.RemU32=6]="RemU32",T[T.AndI32=7]="AndI32",T[T.OrI32=8]="OrI32",T[T.XorI32=9]="XorI32",T[T.ShlI32=10]="ShlI32",T[T.ShrI32=11]="ShrI32",T[T.ShrU32=12]="ShrU32",T[T.RotlI32=13]="RotlI32",T[T.RotrI32=14]="RotrI32",T[T.EqI32=15]="EqI32",T[T.NeI32=16]="NeI32",T[T.LtI32=17]="LtI32",T[T.LtU32=18]="LtU32",T[T.LeI32=19]="LeI32",T[T.LeU32=20]="LeU32",T[T.GtI32=21]="GtI32",T[T.GtU32=22]="GtU32",T[T.GeI32=23]="GeI32",T[T.GeU32=24]="GeU32",T[T.AddI64=25]="AddI64",T[T.SubI64=26]="SubI64",T[T.MulI64=27]="MulI64",T[T.DivI64=28]="DivI64",T[T.DivU64=29]="DivU64",T[T.RemI64=30]="RemI64",T[T.RemU64=31]="RemU64",T[T.AndI64=32]="AndI64",T[T.OrI64=33]="OrI64",T[T.XorI64=34]="XorI64",T[T.ShlI64=35]="ShlI64",T[T.ShrI64=36]="ShrI64",T[T.ShrU64=37]="ShrU64",T[T.RotlI64=38]="RotlI64",T[T.RotrI64=39]="RotrI64",T[T.EqI64=40]="EqI64",T[T.NeI64=41]="NeI64",T[T.LtI64=42]="LtI64",T[T.LtU64=43]="LtU64",T[T.LeI64=44]="LeI64",T[T.LeU64=45]="LeU64",T[T.GtI64=46]="GtI64",T[T.GtU64=47]="GtU64",T[T.GeI64=48]="GeI64",T[T.GeU64=49]="GeU64",T[T.AddF32=50]="AddF32",T[T.SubF32=51]="SubF32",T[T.MulF32=52]="MulF32",T[T.DivF32=53]="DivF32",T[T.CopysignF32=54]="CopysignF32",T[T.MinF32=55]="MinF32",T[T.MaxF32=56]="MaxF32",T[T.EqF32=57]="EqF32",T[T.NeF32=58]="NeF32",T[T.LtF32=59]="LtF32",T[T.LeF32=60]="LeF32",T[T.GtF32=61]="GtF32",T[T.GeF32=62]="GeF32",T[T.AddF64=63]="AddF64",T[T.SubF64=64]="SubF64",T[T.MulF64=65]="MulF64",T[T.DivF64=66]="DivF64",T[T.CopysignF64=67]="CopysignF64",T[T.MinF64=68]="MinF64",T[T.MaxF64=69]="MaxF64",T[T.EqF64=70]="EqF64",T[T.NeF64=71]="NeF64",T[T.LtF64=72]="LtF64",T[T.LeF64=73]="LeF64",T[T.GtF64=74]="GtF64",T[T.GeF64=75]="GeF64",T[T.EqI8x16=76]="EqI8x16",T[T.NeI8x16=77]="NeI8x16",T[T.LtI8x16=78]="LtI8x16",T[T.LtU8x16=79]="LtU8x16",T[T.GtI8x16=80]="GtI8x16",T[T.GtU8x16=81]="GtU8x16",T[T.LeI8x16=82]="LeI8x16",T[T.LeU8x16=83]="LeU8x16",T[T.GeI8x16=84]="GeI8x16",T[T.GeU8x16=85]="GeU8x16",T[T.EqI16x8=86]="EqI16x8",T[T.NeI16x8=87]="NeI16x8",T[T.LtI16x8=88]="LtI16x8",T[T.LtU16x8=89]="LtU16x8",T[T.GtI16x8=90]="GtI16x8",T[T.GtU16x8=91]="GtU16x8",T[T.LeI16x8=92]="LeI16x8",T[T.LeU16x8=93]="LeU16x8",T[T.GeI16x8=94]="GeI16x8",T[T.GeU16x8=95]="GeU16x8",T[T.EqI32x4=96]="EqI32x4",T[T.NeI32x4=97]="NeI32x4",T[T.LtI32x4=98]="LtI32x4",T[T.LtU32x4=99]="LtU32x4",T[T.GtI32x4=100]="GtI32x4",T[T.GtU32x4=101]="GtU32x4",T[T.LeI32x4=102]="LeI32x4",T[T.LeU32x4=103]="LeU32x4",T[T.GeI32x4=104]="GeI32x4",T[T.GeU32x4=105]="GeU32x4",T[T.EqI64x2=106]="EqI64x2",T[T.NeI64x2=107]="NeI64x2",T[T.LtI64x2=108]="LtI64x2",T[T.GtI64x2=109]="GtI64x2",T[T.LeI64x2=110]="LeI64x2",T[T.GeI64x2=111]="GeI64x2",T[T.EqF32x4=118]="EqF32x4",T[T.NeF32x4=119]="NeF32x4",T[T.LtF32x4=120]="LtF32x4",T[T.GtF32x4=121]="GtF32x4",T[T.LeF32x4=122]="LeF32x4",T[T.GeF32x4=123]="GeF32x4",T[T.EqF64x2=124]="EqF64x2",T[T.NeF64x2=125]="NeF64x2",T[T.LtF64x2=126]="LtF64x2",T[T.GtF64x2=127]="GtF64x2",T[T.LeF64x2=128]="LeF64x2",T[T.GeF64x2=129]="GeF64x2",T[T.AndV128=130]="AndV128",T[T.OrV128=131]="OrV128",T[T.XorV128=132]="XorV128",T[T.AndnotV128=133]="AndnotV128",T[T.AddI8x16=134]="AddI8x16",T[T.AddSatI8x16=135]="AddSatI8x16",T[T.AddSatU8x16=136]="AddSatU8x16",T[T.SubI8x16=137]="SubI8x16",T[T.SubSatI8x16=138]="SubSatI8x16",T[T.SubSatU8x16=139]="SubSatU8x16",T[T.MinI8x16=140]="MinI8x16",T[T.MinU8x16=141]="MinU8x16",T[T.MaxI8x16=142]="MaxI8x16",T[T.MaxU8x16=143]="MaxU8x16",T[T.AvgrU8x16=144]="AvgrU8x16",T[T.AddI16x8=145]="AddI16x8",T[T.AddSatI16x8=146]="AddSatI16x8",T[T.AddSatU16x8=147]="AddSatU16x8",T[T.SubI16x8=148]="SubI16x8",T[T.SubSatI16x8=149]="SubSatI16x8",T[T.SubSatU16x8=150]="SubSatU16x8",T[T.MulI16x8=151]="MulI16x8",T[T.MinI16x8=152]="MinI16x8",T[T.MinU16x8=153]="MinU16x8",T[T.MaxI16x8=154]="MaxI16x8",T[T.MaxU16x8=155]="MaxU16x8",T[T.AvgrU16x8=156]="AvgrU16x8",T[T.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",T[T.ExtmulLowI16x8=158]="ExtmulLowI16x8",T[T.ExtmulHighI16x8=159]="ExtmulHighI16x8",T[T.ExtmulLowU16x8=160]="ExtmulLowU16x8",T[T.ExtmulHighU16x8=161]="ExtmulHighU16x8",T[T.AddI32x4=162]="AddI32x4",T[T.SubI32x4=163]="SubI32x4",T[T.MulI32x4=164]="MulI32x4",T[T.MinI32x4=165]="MinI32x4",T[T.MinU32x4=166]="MinU32x4",T[T.MaxI32x4=167]="MaxI32x4",T[T.MaxU32x4=168]="MaxU32x4",T[T.DotI16x8=169]="DotI16x8",T[T.ExtmulLowI32x4=170]="ExtmulLowI32x4",T[T.ExtmulHighI32x4=171]="ExtmulHighI32x4",T[T.ExtmulLowU32x4=172]="ExtmulLowU32x4",T[T.ExtmulHighU32x4=173]="ExtmulHighU32x4",T[T.AddI64x2=174]="AddI64x2",T[T.SubI64x2=175]="SubI64x2",T[T.MulI64x2=176]="MulI64x2",T[T.ExtmulLowI64x2=177]="ExtmulLowI64x2",T[T.ExtmulHighI64x2=178]="ExtmulHighI64x2",T[T.ExtmulLowU64x2=179]="ExtmulLowU64x2",T[T.ExtmulHighU64x2=180]="ExtmulHighU64x2",T[T.AddF32x4=189]="AddF32x4",T[T.SubF32x4=190]="SubF32x4",T[T.MulF32x4=191]="MulF32x4",T[T.DivF32x4=192]="DivF32x4",T[T.MinF32x4=193]="MinF32x4",T[T.MaxF32x4=194]="MaxF32x4",T[T.PminF32x4=195]="PminF32x4",T[T.PmaxF32x4=196]="PmaxF32x4",T[T.AddF64x2=197]="AddF64x2",T[T.SubF64x2=198]="SubF64x2",T[T.MulF64x2=199]="MulF64x2",T[T.DivF64x2=200]="DivF64x2",T[T.MinF64x2=201]="MinF64x2",T[T.MaxF64x2=202]="MaxF64x2",T[T.PminF64x2=203]="PminF64x2",T[T.PmaxF64x2=204]="PmaxF64x2",T[T.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",T[T.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",T[T.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",T[T.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",T[T.SwizzleI8x16=209]="SwizzleI8x16",T[T.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",T[T.RelaxedMinF32x4=211]="RelaxedMinF32x4",T[T.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",T[T.RelaxedMinF64x2=213]="RelaxedMinF64x2",T[T.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",T[T.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",T[T.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",T[T._last=216]="_last",T[T.AddSize=217]="AddSize",T[T.SubSize=218]="SubSize",T[T.MulSize=219]="MulSize",T[T.DivISize=220]="DivISize",T[T.DivUSize=221]="DivUSize",T[T.RemISize=222]="RemISize",T[T.RemUSize=223]="RemUSize",T[T.AndSize=224]="AndSize",T[T.OrSize=225]="OrSize",T[T.XorSize=226]="XorSize",T[T.ShlSize=227]="ShlSize",T[T.ShrISize=228]="ShrISize",T[T.ShrUSize=229]="ShrUSize",T[T.RotlSize=230]="RotlSize",T[T.RotrSize=231]="RotrSize",T[T.EqSize=232]="EqSize",T[T.NeSize=233]="NeSize",T[T.LtISize=234]="LtISize",T[T.LtUSize=235]="LtUSize",T[T.LeISize=236]="LeISize",T[T.LeUSize=237]="LeUSize",T[T.GtISize=238]="GtISize",T[T.GtUSize=239]="GtUSize",T[T.GeISize=240]="GeISize",T[T.GeUSize=241]="GeUSize",T))(Ri||{}),Cp=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(Cp||{}),Pp=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(Pp||{}),Bp=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))(Bp||{}),Lp=(f=>(f[f.ShlI8x16=0]="ShlI8x16",f[f.ShrI8x16=1]="ShrI8x16",f[f.ShrU8x16=2]="ShrU8x16",f[f.ShlI16x8=3]="ShlI16x8",f[f.ShrI16x8=4]="ShrI16x8",f[f.ShrU16x8=5]="ShrU16x8",f[f.ShlI32x4=6]="ShlI32x4",f[f.ShrI32x4=7]="ShrI32x4",f[f.ShrU32x4=8]="ShrU32x4",f[f.ShlI64x2=9]="ShlI64x2",f[f.ShrI64x2=10]="ShrI64x2",f[f.ShrU64x2=11]="ShrU64x2",f))(Lp||{}),Np=(f=>(f[f.Load8Splat=0]="Load8Splat",f[f.Load16Splat=1]="Load16Splat",f[f.Load32Splat=2]="Load32Splat",f[f.Load64Splat=3]="Load64Splat",f[f.Load8x8S=4]="Load8x8S",f[f.Load8x8U=5]="Load8x8U",f[f.Load16x4S=6]="Load16x4S",f[f.Load16x4U=7]="Load16x4U",f[f.Load32x2S=8]="Load32x2S",f[f.Load32x2U=9]="Load32x2U",f[f.Load32Zero=10]="Load32Zero",f[f.Load64Zero=11]="Load64Zero",f))(Np||{}),Mp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(Mp||{}),Gp=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(Gp||{}),Wy=(r=>(r[r.NonNull=0]="NonNull",r[r.AnyConvertExtern=1]="AnyConvertExtern",r[r.ExternConvertAny=2]="ExternConvertAny",r))(Wy||{}),Ky=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Ky||{}),jy=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(jy||{}),Hy=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Hy||{}),Qy=(r=>(r[r.LossyUTF8Array=0]="LossyUTF8Array",r[r.WTF16Array=1]="WTF16Array",r[r.FromCodePoint=2]="FromCodePoint",r))(Qy||{}),Xy=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Xy||{}),Jy=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Jy||{}),Zy=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(Zy||{}),wl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(wl||{}),Ii=class{constructor(i,e){this.buffer=i;this.offset=e}},zt=class t{constructor(i,e,r){this.ref=i;this.useShadowStack=e;this.sizeType=r;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(r==L.I32||r==L.I64),this.lit=pt(uo())}static create(i,e){return new t(b_(),i,e)}static createFrom(i,e,r){let n=Nn(i),s=new t(km(n,i.length),e,r);return ie(changetype(n)),s}i32(i){let e=this.lit;return T_(e,i),ti(this.ref,e)}i64(i,e=0){let r=this.lit;return ky(r,i64_new(i,e)),ti(this.ref,r)}usize(i){return i64_is(i)?this.sizeType==L.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==L.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return A_(e,i),ti(this.ref,e)}f64(i){let e=this.lit;return E_(e,i),ti(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let r=0;r<16;++r)Le(e+r,unchecked(i[r]));return v_(e,e),ti(this.ref,e)}ref_null(i){return Rh(this.ref,i)}ref_eq(i,e){return Bh(this.ref,i,e)}string_eq(i,e){return Ku(this.ref,0,i,e)}string_compare(i,e){return Ku(this.ref,1,i,e)}unary(i,e){if(i>141){let r=this.sizeType==L.I64;switch(i){case 142:i=r?1:0;break;case 143:i=r?3:2;break;case 144:i=r?5:4;break;case 145:i=r?21:20;break;default:assert(!1)}}return gf(this.ref,i,e)}binary(i,e,r){if(i>216){let n=this.sizeType==L.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return Ef(this.ref,i,e,r)}wide_int_add_sub(i,e,r,n,s){return Tf(this.ref,i,e,r,n,s)}wide_int_mul(i,e,r){return Af(this.ref,i,e,r)}memory_size(i=C.DefaultMemory,e=!1){let r=this.allocStringCached(i);return tf(this.ref,r,e)}memory_grow(i,e=C.DefaultMemory,r=!1){let n=this.allocStringCached(e);return rf(this.ref,i,n,r)}table_size(i){let e=this.allocStringCached(i);return zh(this.ref,e)}table_grow(i,e,r=0){let n=this.allocStringCached(i);return Dh(this.ref,n,r,e)}local_get(i,e){return X_(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=kt(i);return assert(e==L.I32||e==L.Unreachable),this.call(d.tostack,[i],e)}return i}local_tee(i,e,r,n=-1){return n==-1&&(n=kt(e)),r&&this.useShadowStack&&(e=this.tostack(e)),J_(this.ref,i,e,n)}global_get(i,e){let r=this.allocStringCached(i);return Z_(this.ref,r,e)}table_get(i,e,r){let n=this.allocStringCached(i);return Mh(this.ref,n,e,r)}load(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return sf(this.ref,i,e,s,a,n,r,o)}store(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return cf(this.ref,i,s,a,e,r,n,o)}atomic_load(i,e,r,n=0,s=C.DefaultMemory,a=1){let l=this.allocStringCached(s);return pf(this.ref,i,n,r,e,l,a)}atomic_store(i,e,r,n,s=0,a=C.DefaultMemory,l=1){let o=this.allocStringCached(a);return ff(this.ref,i,s,e,r,n,o,l)}atomic_rmw(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return Nf(this.ref,i,e,r,n,s,a,u,o)}atomic_cmpxchg(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return zf(this.ref,i,e,r,n,s,a,u,o)}atomic_wait(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return Of(this.ref,i,e,r,n,a)}atomic_notify(i,e,r=C.DefaultMemory){let n=this.allocStringCached(r);return jf(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Xf(this.ref,e)}local_set(i,e,r){return r&&this.useShadowStack&&(e=this.tostack(e)),on(this.ref,i,e)}global_set(i,e){let r=this.allocStringCached(i);return Y_(this.ref,r,e)}table_set(i,e,r){let n=this.allocStringCached(i);return Gh(this.ref,n,e,r)}block(i,e,r=L.None){let n=this.allocStringCached(i),s=fe(e),a=R_(this.ref,n,s,e.length,r);return ie(s),a}flatten(i,e=L.None){let r=i.length;if(r==0)return this.nop();if(r==1){let n=i[0];switch($(n)){case 19:case 56:case 23:return n}let s=se(n);return s!=L.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,r=0){let n=this.allocStringCached(i);return N_(this.ref,n,e,r)}drop(i){return mo(this.ref,i)}maybeDrop(i){let e=kt(i);return e!=L.None&&e!=L.Unreachable?mo(this.ref,i):i}maybeDropCondition(i,e){return(wi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],se(e)):e}loop(i,e){let r=this.allocStringCached(i);return B_(this.ref,r,e)}if(i,e,r=0){return k_(this.ref,i,e,r)}nop(){return Bf(this.ref)}return(i=0){return Pf(this.ref,i)}select(i,e,r){return Rf(this.ref,r,i,e)}switch(i,e,r,n=0){let s=i.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(i[c]));let l=fe(a),o=this.allocStringCached(e),u=z_(this.ref,l,s,o,r,n);return ie(l),u}call(i,e,r,n=!1){let s=this.allocStringCached(i),a=fe(e),l=n?K_(this.ref,s,a,e?e.length:0,r):W_(this.ref,s,a,e?e.length:0,r);return ie(a),l}return_call(i,e,r){return this.call(i,e,r,!0)}call_indirect(i,e,r,n,s,a=!1){let l=this.allocStringCached(i??C.DefaultTable),o=fe(r),u=a?Q_(this.ref,l,e,o,r?r.length:0,n,s):j_(this.ref,l,e,o,r?r.length:0,n,s);return ie(o),u}return_call_indirect(i,e,r,n,s){return this.call_indirect(i,e,r,n,s,!0)}unreachable(){return Lf(this.ref)}memory_copy(i,e,r,n=C.DefaultMemory,s=C.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return bh(this.ref,i,e,r,a,l)}memory_fill(i,e,r,n=C.DefaultMemory){let s=this.allocStringCached(n);return Eh(this.ref,i,e,r,s)}try(i,e,r,n,s=null){let a=r.length,l=new Array(a);for(let h=0;h<a;++h)l[h]=this.allocStringCached(r[h]);let o=fe(l),u=fe(n),c=this.allocStringCached(i),_=this.allocStringCached(s),f=Uh(this.ref,c,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let r=this.allocStringCached(i),n=fe(e),s=qh(this.ref,r,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return jh(this.ref,e)}pop(i){return Zh(this.ref,i)}tuple_make(i){let e=fe(i),r=Hh(this.ref,e,i.length);return ie(e),r}tuple_extract(i,e){return Xh(this.ref,i,e)}simd_extract(i,e,r){return Jf(this.ref,i,e,r)}simd_replace(i,e,r,n){return Yf(this.ref,i,e,r,n)}simd_shuffle(i,e,r){assert(r.length==16);let n=Nn(r),s=th(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,r,n){return nh(this.ref,i,e,r,n)}simd_shift(i,e,r){return oh(this.ref,i,e,r)}simd_load(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return ch(this.ref,i,r,n,e,a)}simd_loadstorelane(i,e,r,n,s,a,l=C.DefaultMemory){let o=this.allocStringCached(l);return fh(this.ref,i,r,n,s,e,a,o)}ref_is_null(i){return Fh(this.ref,i)}ref_as(i,e){return Jo(this.ref,i,e)}ref_as_nonnull(i){return Yy(se(i))?Jo(this.ref,0,i):i}ref_func(i,e){let r=this.allocStringCached(i);return Ch(this.ref,r,Qt(e))}i31_new(i){return Yh(this.ref,i)}i31_get(i,e){return ed(this.ref,i,e)}addGlobal(i,e,r,n){let s=this.allocStringCached(i);return sm(this.ref,s,e,r,n)}getGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)?(am(this.ref,e),!0):!1}addTag(i,e,r){let n=this.allocStringCached(i);return _m(this.ref,n,e,r)}getTag(i){let e=this.allocStringCached(i);return fm(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);hm(this.ref,e)}addFunction(i,e,r,n,s){let a=this.allocStringCached(i),l=fe(n),o=ri(this.ref,a,e,r,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,r){Wd(i,e,this.allocStringCached(r))}getFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);bn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)!=0}addTemporaryFunction(i,e,r){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=fe(e),a=ri(this.ref,n,He(e),i,0,0,r);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");bn(this.ref,i)}setStart(i){Am(this.ref,i)}addFunctionExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Ys(this.ref,r,n)}addTableExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Yd(this.ref,r,n)}addMemoryExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return $d(this.ref,r,n)}addGlobalExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return em(this.ref,r,n)}addTagExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return tm(this.ref,r,n)}removeExport(i){let e=this.allocStringCached(i);ea(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return $s(this.ref,e)!=0}addFunctionImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Hd(this.ref,a,l,o,n,s)}addTableImport(i,e,r){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(r);Qd(this.ref,n,s,a)}addMemoryImport(i,e,r,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(r);Xd(this.ref,s,a,l,n)}addGlobalImport(i,e,r,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Jd(this.ref,a,l,o,n,s)}addTagImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Zd(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,r,n,s=null,a=C.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=r.length,_=new Array(c),f=new Uint8Array(c),h=new Array(c),y=new Array(c);for(let E=0;E<c;++E){let k=unchecked(r[E]),F=k.buffer,R=k.offset;unchecked(_[E]=Nn(F)),unchecked(f[E]=0),unchecked(h[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(y[E]=F.length)}let x=fe(_),b=Nn(f),A=fe(h),I=Rp(y);Tm(this.ref,i,e,o,0,x,b,A,I,c,l,!1,u),ie(I),ie(A),ie(b),ie(x);for(let E=c-1;E>=0;--E)ie(unchecked(_[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,r,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let _=0;_<l;++_)unchecked(o[_]=this.allocStringCached(n[_]));let u=fe(o),c=rp(this.ref,a);c?(gm(c,e),bm(c,r)):c=tp(this.ref,a,e,r,L.Funcref),xm(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);rp(this.ref,e)||tp(this.ref,e,0,t.UNLIMITED_TABLE,L.Funcref)}addCustomSection(i,e){let r=this.allocStringCached(i),n=Nn(e);Nm(this.ref,r,n,e.length),ie(n)}getOptimizeLevel(){return Ym()}setOptimizeLevel(i){$m(i)}getShrinkLevel(){return ey()}setShrinkLevel(i){ty(i)}getDebugInfo(){return ry()}setDebugInfo(i){iy(i)}getTrapsNeverHappen(){return ny()}setTrapsNeverHappen(i){sy(i)}getClosedWorld(){return ay()}setClosedWorld(i){ly(i)}getLowMemoryUnused(){return oy()}setLowMemoryUnused(i){uy(i)}getZeroFilledMemory(){return py()}setZeroFilledMemory(i){cy(i)}getFastMath(){return _y()}setFastMath(i){fy(i)}getGenerateStackIR(){return hy()}setGenerateStackIR(i){dy(i)}getOptimizeStackIR(){return my()}setOptimizeStackIR(i){yy(i)}getPassArgument(i){let e=this.allocStringCached(i),r=gy(e);return r?Ve(r):null}setPassArgument(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);by(r,n)}clearPassArguments(){xy()}getAlwaysInlineMaxSize(){return Ty()}setAlwaysInlineMaxSize(i){Ay(i)}getFlexibleInlineMaxSize(){return Ey()}setFlexibleInlineMaxSize(i){vy(i)}getOneCallerInlineMaxSize(){return Sy()}setOneCallerInlineMaxSize(i){Iy(i)}getAllowInliningFunctionsWithLoops(){return Ry()}setAllowInliningFunctionsWithLoops(i){Fy(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return Bm(this.ref)}setFeatures(i){i&16&&(i|=524288),Lm(this.ref,i)}runPasses(i,e=0){let r=i.length,n=new Array(r);for(let a=0;a<r;++a)n[a]=Rl(i[a]);let s=fe(n);e?Kd(e,this.ref,s,r):vm(this.ref,s,r),ie(s);for(let a=r-1;a>=0;--a)ie(n[a])}optimize(i,e,r=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(r),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),i>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),i>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(i>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return Em(this.ref)==1}interpret(){wm(this.ref)}toBinary(i=null){assert(uo()>=Sm());let e=this.lit,r=Rl(i);Im(e,this.ref,r);let n=Zt(e+0),s=Zt(e+4),a=Zt(e+8),l=new kl(z2(assert(n),s),Ve(a));return r&&ie(r),a&&ie(a),ie(n),l}toText(i=!0){let e=i?Fm(this.ref):Rm(this.ref),r=Ve(e);return e&&ie(e),r||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let r=Rl(i);return e.set(i,r),r}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let r=Ve(i);return e.set(i,r),r}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),x_(this.ref),this.ref=0}createRelooper(){return Fl.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Ft(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return S_(i,this.ref)}runExpression(i,e,r=50,n=1){let s=qm(this.ref,e,r,n),a=Wm(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(se(a)==se(i))}return a}isConstExpression(i){switch($(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Fi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(Xe(i))&&this.isConstExpression(Ne(i))}break}}return!1}addDebugInfoFile(i){let e=Rl(i),r=Cm(this.ref,e);return ie(e),r}getDebugInfoFile(i){return Ve(Pm(this.ref,i))}setDebugLocation(i,e,r,n,s){jd(i,e,r,n,s)}};function He(t){if(!t)return L.None;switch(t.length){case 0:return L.None;case 1:return t[0]}let i=fe(t),e=e_(i,t.length);return ie(i),e}function zp(t){let i=t_(t),e=pt(i<<2);r_(t,e);let r=new Array(i);for(let n=0;n<i;++n)unchecked(r[n]=Zt(e+(n<<2)));return ie(e),r}function Yy(t){return i_(t)}function $(t){return Ft(t)}function se(t){return kt(t)}function ne(t){return hf(t)}function ve(t){return i64_low(ap(t))}function we(t){return i64_high(ap(t))}function Dp(t,i){let e=0,r=0;return i?(e=ve(t),r=we(t)):e=ne(t),i64_new(e,r)}function Ae(t){return df(t)}function Ee(t){return mf(t)}function Up(t){let i=pt(16);yf(t,i);let e=new Uint8Array(16);for(let r=0;r<16;++r)e[r]=xr(i+r);return ie(i),e}function Qe(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)==0:i==L.I64?(ve(t)|we(t))==0:i==L.F32?Ae(t)==0:i==L.F64?Ee(t)==0:!1}function lt(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)!=0:i==L.I64?(ve(t)|we(t))!=0:i==L.F32?Ae(t)!=0:i==L.F64?Ee(t)!=0:!1}function Cl(t){if($(t)!=14)return!1;let i=se(t);if(i==L.F32){let e=Ae(t);return e==0&&f32_as_i32(e)<0}if(i==L.F64){let e=Ee(t);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function c2(t){if($(t)!=14)return!1;let i=se(t);return i==L.F32?isNaN(Ae(t)):i==L.F64?isNaN(Ee(t)):!1}function Pl(t,i){let e=$(i),r=se(i);if(r==L.F32||r==L.F64){if(e==14)return isNaN(r==L.F32?Ae(i):Ee(i));if(e==10){let n=t.runExpression(i,0,8);if(n)return isNaN(r==L.F32?Ae(n):Ee(n))}}return!1}function dt(t){return Os(t)}function Bl(t){return ei(t)}function Ll(t){return yr(t)}function Dn(t){return qs(t)}function Un(t){return Ve(Ks(t))}function Fi(t){return vf(t)}function Xe(t){return fn(t)}function Ne(t){return hn(t)}function Vn(t){return bf(t)}function Nl(t){return _n(t)}function Vp(t){return of(t)}function _2(t){return lf(t)}function f2(t){return pn(t)}function Op(t){return af(t)}function h2(t){return js(t)}function d2(t){return Hs(t)}function m2(t){return gr(t)}function y2(t){return cn(t)}function On(t){return Ve(Gs(t))}function qn(t){return Yi(t)}function Wn(t,i){return $i(t,i)}function Ml(t){return en(t)}function Kn(t){return tn(t)}function ki(t){return rn(t)}function g2(t){return Ve(zs(t))}function b2(t){return nn(t)}function x2(t){return Ve(Ds(t))}function T2(t){return sn(t)}function qp(t){return dn(t)}function Wp(t){return mn(t)}function A2(t){return yn(t)}function E2(t){return gn(t)}function v2(t){return br(t)}function jn(t){return Ve($r(t))}function mt(t){return Xt(t)}function Oe(t,i){return Jt(t,i)}function S2(t){return un(t)}function I2(t){return wt(t)}function Kp(t){return Ve(si(t))}function R2(t){return Tn(t)}function F2(t){return An(t)}function k2(t){let i=Js(t),e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=Zs(t,r));return e}function w2(t){return Ve(um(t))}function C2(t){return pm(t)}function jp(t){return cm(t)}function P2(t){return ta(t)}function B2(t){return Ve(dm(t))}function L2(t){return mm(t)}function N2(t){return ym(t)}var Fl=class t{constructor(i,e){this.module=i;this.ref=e}static create(i){return new t(i,Gm(i.ref))}addBlock(i){return zm(this.ref,i)}addBranch(i,e,r=0,n=0){Dm(i,e,r,n)}addBlockWithSwitch(i,e){return Um(this.ref,i,e)}addBranchForSwitch(i,e,r,n=0){let s=M2(r);Vm(i,e,s,r.length,n),ie(s)}renderAndDispose(i,e){return Om(this.ref,i,e)}},Gn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let r=this.values.indexOf(i),n=this.addCode(e);r>=0?this.indexes[r]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,r=e.indexOf(i);return r<0&&(r=e.length,e.push(i)),r}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let r=this.module,n=this.cases,s=n.length;if(!s)return r.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),c=new Array(s);for(let x=0;x<s;++x)unchecked(c[x]=`case${x}${e}`);u[0]=r.local_set(i,this.condition,!1);for(let x=0;x<l;++x){let b=unchecked(o[x]);unchecked(u[1+x]=r.br(c[b],r.binary(15,r.local_get(i,L.I32),r.i32(a[x]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=r.br(~_?c[_]:f);let h=r.block(c[0],u);for(let x=1;x<s;++x){let b=n[x-1];b.unshift(h),h=r.block(unchecked(c[x]),b)}let y=n[s-1];return y.unshift(h),r.block(~_?null:f,y)}},Hp=(A=>(A[A.None=0]="None",A[A.Branches=1]="Branches",A[A.Calls=2]="Calls",A[A.ReadsLocal=4]="ReadsLocal",A[A.WritesLocal=8]="WritesLocal",A[A.ReadsGlobal=16]="ReadsGlobal",A[A.WritesGlobal=32]="WritesGlobal",A[A.ReadsMemory=64]="ReadsMemory",A[A.WritesMemory=128]="WritesMemory",A[A.ReadsTable=256]="ReadsTable",A[A.WritesTable=512]="WritesTable",A[A.ImplicitTrap=1024]="ImplicitTrap",A[A.IsAtomic=2048]="IsAtomic",A[A.Throws=4096]="Throws",A[A.DanglingPop=8192]="DanglingPop",A[A.TrapsNeverHappen=16384]="TrapsNeverHappen",A[A.Any=32767]="Any",A))(Hp||{});function wi(t,i){return Mm(t,i)}function Gl(t,i){return(wi(t,i)&-21)!=0}function Nn(t){if(!t)return 0;let i=t.length,e=pt(i);for(let r=0;r<i;++r)Le(e+r,unchecked(t[r]));return e}function M2(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function Rp(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function fe(t){if(!t)return 0;assert(ASC_TARGET!=2);let i=t.length,e=pt(i<<2),r=e;for(let n=0,s=i;n<s;++n){let a=unchecked(t[n]);ia(r,a),r+=4}return e}function G2(t){let i=0;for(let e=0,r=t.length;e<r;++e){let n=t.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:hi(n)&&e+1<r&&fa(t.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Rl(t){if(t==null)return 0;let i=G2(t),e=pt(i+1)>>>0,r=e;if(i==t.length)for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0;Le(r++,a)}else for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0,l;a<=127?Le(r++,a):a<=2047?(Le(r++,192|a>>>6),Le(r++,128|a&63)):hi(a)&&n+1<s&&fa(l=t.charCodeAt(n+1))?(a=Rn(a,l),++n,Le(r++,240|a>>>18),Le(r++,128|a>>>12&63),Le(r++,128|a>>>6&63),Le(r++,128|a&63)):(Le(r++,224|a>>>12),Le(r++,128|a>>>6&63),Le(r++,128|a&63))}return Le(r,0),e}function z2(t,i){let e=new Uint8Array(i);for(let r=0;r<i;++r)unchecked(e[r]=xr(t+r));return e}function Ve(t){if(!t)return null;let i=new Array,e,r,n,s;for(;e=xr(t++);){if(!(e&128)){i.push(e);continue}if(r=xr(t++)&63,(e&224)==192){i.push((e&31)<<6|r);continue}if(n=xr(t++)&63,(e&240)==224?e=(e&15)<<12|r<<6|n:(s=xr(t++)&63,(e&248)==240?e=(e&7)<<18|r<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(In|a>>>10),i.push(fi|a&1023)}}return String.fromCharCodes(i)}var kl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Gt=!1;function Hn(t){if(t==p.void)return L.None;let i=$y(t);if(i)return i;let e=t;if(t=t.nonNullableType,i=t.ref)return he(Qt(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let r=Km(0),n=new Map;er(r,n,t);let s=ra(r),a=pt(max(4*s,8));if(!Xm(r,a,a,a+4)){let l=Zt(a),o=Zt(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Fp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let _=Zt(a+4*o),f=he(_,!1);assert(!c.ref),c.ref=f,Gt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let y=h.program.module;Jm(y.ref,_,y.allocStringCached(h.internalName));let x=h.members;if(x){let b=g_(_),A=0;for(let I=Map_values(x),E=0,k=I.length;E<k;++E){let F=I[E];if(F.kind!=10)continue;let R=F.instance;!R||!R.isField||Zm(y.ref,_,A++,y.allocStringCached(R.name))}assert(b==A)}}}return ie(a),Gt&&console.log(` finalize ${t.toString()}`),i=assert(t.ref),he(Qt(i),e.is(512))}function $y(t){switch(t.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return L.I32;case 4:case 9:return L.I64;case 5:case 10:{if(t.isInternalReference)break;return t.size==64?L.I64:L.I32}case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return he(ge.Func,t.is(512));case 14:return he(ge.Extern,t.is(512));case 16:return he(ge.Any,t.is(512));case 17:return he(ge.Eq,t.is(512));case 18:return he(ge.Struct,t.is(512));case 19:return he(ge.Array,t.is(512));case 20:return he(ge.I31,t.is(512));case 21:return he(ge.String,t.is(512));case 25:assert(!1)}return 0}function D2(t){switch(t.kind){case 0:case 1:case 6:return Mn.I8;case 2:case 7:return Mn.I16}return Mn.NotPacked}function er(t,i,e){if(e==p.void)return L.None;let r=$y(e);if(r||(assert(!e.is(512)),r=e.ref))return r;if(i.has(e))return Gt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Gt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=er(t,i,a.type));let o=ra(t);ip(t,1),Gt&&console.log(` block [${o}]: ${e.toString()}`);let u=np(t,o);r=ai(t,u,!1),i.set(e,r);let c=new Array,_=new Array,f=new Array,h=n.members;if(h)for(let A=Map_values(h),I=0,E=A.length;I<E;++I){let k=A[I];if(k.kind!=10)continue;let F=k.instance;if(!F||!F.isField)continue;let R=F.type;Gt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(ai(t,Qt(er(t,i,R.nonNullableType)),!0)):c.push(er(t,i,R)),_.push(D2(R)),f.push(1)}let y=fe(c),x=Rp(_),b=Rp(f);return Gt&&console.log(` concretize [${o}]: ${e.toString()}`),Hm(t,o,y,x,b,c.length),a&&(Gt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),Qm(t,o,Qt(l))),ie(b),ie(x),ie(y),r}let s=e.getSignature();if(s){let a=ra(t);ip(t,1);let l=ai(t,np(t,a),!1);i.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let y=0,x=c.length;y<x;++y){let b=c[y];b.is(512)?o.push(ai(t,Qt(er(t,i,b.nonNullableType)),!0)):o.push(er(t,i,b))}let _=s.returnType;u.push(_==p.void?L.None:_.is(512)?ai(t,Qt(er(t,i,_.nonNullableType)),!0):er(t,i,_));let f;if(o.length>1){let y=fe(o);f=sp(t,y,o.length),ie(y)}else f=o.length?o[0]:L.None;let h;if(u.length>1){let y=fe(u);h=sp(t,y,u.length),ie(y)}else h=u[0];return Gt&&console.log(` concretize [${a}]: ${e.toString()}`),jm(t,a,f,h),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Dl=(F=>(F[F.None=0]="None",F[F.Returns=1]="Returns",F[F.ReturnsWrapped=2]="ReturnsWrapped",F[F.ReturnsNonNull=4]="ReturnsNonNull",F[F.Throws=8]="Throws",F[F.Breaks=16]="Breaks",F[F.Continues=32]="Continues",F[F.AccessesThis=64]="AccessesThis",F[F.CallsSuper=128]="CallsSuper",F[F.Terminates=256]="Terminates",F[F.ConditionallyReturns=512]="ConditionallyReturns",F[F.ConditionallyThrows=1024]="ConditionallyThrows",F[F.ConditionallyBreaks=2048]="ConditionallyBreaks",F[F.ConditionallyContinues=4096]="ConditionallyContinues",F[F.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",F[F.MayReturnNonThis=16384]="MayReturnNonThis",F[F.UncheckedContext=32768]="UncheckedContext",F[F.CtorParamContext=65536]="CtorParamContext",F[F.InlineContext=131072]="InlineContext",F[F.AnyCategorical=511]="AnyCategorical",F[F.AnyConditional=15872]="AnyConditional",F))(Dl||{}),Qn=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(Qn||{}),Qp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(Qp||{}),Xp=(r=>(r[r.Unknown=0]="Unknown",r[r.True=1]="True",r[r.False=2]="False",r))(Xp||{}),Dt=class t{constructor(i,e=null){this.targetFunction=i;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new t(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let r=new t(i,e);return r.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&r.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&r.set(32768),r}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let r=new t(this.targetFunction,this.inlineFunction);if(r.parent=this,r.flags=this.flags,r.outer=this.outer,i?r.flags&=-2065:r.breakLabel=this.breakLabel,e?r.flags&=-4129:r.continueLabel=this.continueLabel,r.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);r.thisFieldFlags=pe(n)}else assert(!this.thisFieldFlags);return r.inlineReturnLabel=this.inlineReturnLabel,r}forkThen(i,e=!1,r=e){let n=this.fork(e,r),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let r=this.trueFlows;r||(this.trueFlows=r=new Map),r.set(i,e)}forkElse(i){let e=this.fork(),r=this.falseFlows;return r&&r.has(i)&&e.inherit(changetype(r.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let r=this.falseFlows;r||(this.falseFlows=r=new Map),r.set(i,e)}addScopedTypeAlias(i,e){let r=this.scopedTypeAlias;r||(this.scopedTypeAlias=r=new Map),r.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let r=e.scopedTypeAlias;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let r=this.sourceFunction.parent;return r.kind==5?r.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let r=this.getTempLocal(e);r.name=i,r.internalName=Ce(i,r.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,r.set(67108864),n.set(i,r),r}addScopedDummyLocal(i,e,r){let n=new qe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,r.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,r,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(r<this.targetFunction.localsByIndex.length);let a=new qe(i,r,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let r=assert(e.get(i));assert(r.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let r=e.scopedLocals;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let r=e.lookupLocal(i);if(r)return r;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let r=e;this.thisFieldFlags=new Map;let n=r.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=r||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let r=this.thisFieldFlags;return r!=null&&r.has(i)?(changetype(r.get(i))&e)==e:!1}setThisFieldFlag(i,e){let r=this.thisFieldFlags;if(r)if(assert(this.sourceFunction.is(524288)),r.has(i)){let n=changetype(r.get(i));r.set(i,n|e)}else r.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,r=i.breakStack;return r?r.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,r=assert(e.breakStack);assert(r.length),assert(r.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,r=i.flags,n=0;e&1?n|=1:r&1?n|=512:n|=(e|r)&512,n|=e&r&2,n|=e&r&4,e&8?n|=8:r&8?n|=1024:n|=(e|r)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?r&16?n|=2048:n|=(e|r)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?r&32?n|=4096:n|=(e|r)&4096:n|=e&4096,e&64?r&64?n|=64:n|=8192:r&64&&(n|=8192),n|=(e|r)&16384,n|=e&r&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,r=e.length,n=i.localFlags,s=n.length,a=max(r,s);for(let l=0;l<a;++l){let o=l<r?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let r=i.flags,n=e.flags,s=0;r&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(r|n)&512,r&2&&n&2&&(s|=2),r&4&&n&4&&(s|=4),r&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(r|n)&1024,r&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(r|n)&2048,r&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(r|n)&4096,r&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(r|n)&8192,s|=(r|n)&16384,r&128&&n&128&&(s|=128),r&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(r&256){if(!(n&256)){let o=e.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,c=e.localFlags,_=c.length,f=max(u,_);for(let h=0;h<f;++h){let y=h<u?o[h]:0,x=h<_?c[h]:0;a[h]=y&x&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),_=0,f=c.length;_<f;++_){let h=c[_];(changetype(l.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let r=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(r,n);o<u;++o){let _=a[o].type;_.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),_.isNullableReference&&this.isLocalFlag(o,4)&&!i.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(i,e){if(!e.isNullableReference)return!0;switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4),this.inheritNonnullIfTrue(Ll(i),e);break}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4);break}case 2:{let r=ki(i);r&&Qe(r)&&(this.inheritNonnullIfTrue(Ml(i),e),this.inheritNonnullIfTrue(Kn(i),e));break}case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Nl(i),e);break}}break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch($(i)){case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Nl(i),e);break}}break}case 2:{let r=Kn(i);ki(i)&<(r)&&(this.inheritNonnullIfFalse(Ml(i),e),this.inheritNonnullIfFalse(ki(i),e));break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let r;switch($(i)){case 8:{let n=this.targetFunction.localsByIndex[dt(i)];return!this.isLocalFlag(n.index,2,!0)||zl(n.type,e)}case 9:return assert(Dn(i)),this.canOverflow(Ll(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Un(i))));return assert(n.kind==0||n.kind==3),zl(n.type,e)}case 16:{switch(Fi(i)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!($(r=Xe(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Ne(i),e))||$(r=Ne(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Xe(i),e)));case 7:return!($(r=Xe(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e)||$(r=Ne(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e));case 10:{let n=32-e.size;return $(r=Ne(i))!=14||ne(r)<n}case 11:{let n=32-e.size;return this.canOverflow(Xe(i),e)&&($(r=Ne(i))!=14||ne(r)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!($(r=Ne(i))==14&&ne(r)>n):this.canOverflow(Xe(i),e)&&!($(r=Ne(i))==14&&ne(r)>=n)}case 4:case 5:case 6:return this.canOverflow(Xe(i),e)||this.canOverflow(Ne(i),e)}break}case 15:{switch(Vn(i)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(se(i)){case L.I32:{n=ne(i);break}case L.I64:{n=ve(i);break}case L.F32:{n=i32(Ae(i));break}case L.F64:{n=i32(Ee(i));break}case L.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=Op(i);switch(Vp(i)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return zl(n,e)}case 1:{if(!On(i)){let n=assert(qn(i)),s=Wn(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(Kn(i),e)||this.canOverflow(assert(ki(i)),e);case 17:return this.canOverflow(qp(i),e)||this.canOverflow(Wp(i),e);case 6:{let s=this.program.instancesByName,a=assert(jn(i));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||zl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let r=new Array;return this.is(1)&&r.push("RETURNS"),this.is(2)&&r.push("RETURNS_WRAPPED"),this.is(4)&&r.push("RETURNS_NONNULL"),this.is(8)&&r.push("THROWS"),this.is(16)&&r.push("BREAKS"),this.is(32)&&r.push("CONTINUES"),this.is(64)&&r.push("ACCESSES_THIS"),this.is(128)&&r.push("CALLS_SUPER"),this.is(256)&&r.push("TERMINATES"),this.is(512)&&r.push("CONDITIONALLY_RETURNS"),this.is(1024)&&r.push("CONDITIONALLY_THROWS"),this.is(2048)&&r.push("CONDITIONALLY_BREAKS"),this.is(4096)&&r.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&r.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&r.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${r.join(" ")}`}};function zl(t,i){return i.isShortIntegerValue&&(!t.isIntegerValue||t.size>i.size||t.isSignedIntegerValue!=i.isSignedIntegerValue)}var ql=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(ql||{}),Xn=class extends Ke{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,r,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,r,n,s,a);break}case 2:{l=this.resolveFunctionType(e,r,n,s,a);break}case 3:{l=this.resolveTupleType(e,r,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,r,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let f=l.identifier.text;if(s&&s.has(f)){let h=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,h.toString()),e.isNullable){if(h.isReference)return h.asNullable();a==0&&this.error(204,e.range,h.toString())}return h}}let c=this.resolveTypeName(l,r,n,a);if(!c)return null;let _=c.shadowType;if(_)c=_;else{if(c.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/i32`),p.i32;if(c.kind==6||c.kind==8){let f=this.resolveClassInclTypeArguments(c,o,r,n,pe(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(c.kind==14){let f=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let b=f.type;if(e.isNullable){if(b.isReference)return b.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return b}if(u){let b=l.identifier.text;if(rr.has(b)){let A=assert(rr.get(b)),I=new Wl(this,e,n,s,a);return A(I)}}let h=f.typeParameterNodes,y=null;if(h){if(y=this.resolveTypeArguments(h,o,r,n,s=pe(s),e,a),!y)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let x=this.resolveType(f.typeNode,r,c,s,a);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return x}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,r,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,r,n,s,a),!o))return null;let u=e.parameters,c=u.length,_=new Array(c),f=0,h=!1;for(let A=0;A<c;++A){let I=u[A];switch(I.parameterKind){case 0:{f=A+1;break}case 2:{assert(A==c-1),h=!0;break}}let E=I.type;if(ke(E))return a==0&&this.error(1110,E.range),null;let k=this.resolveType(E,r,n,s,a);if(!k)return null;if(k==p.void)return a==0&&this.error(214,E.range,k.toString()),null;_[A]=k}let y=e.returnType,x;if(ke(y))a==0&&this.error(1110,y.range),x=p.void;else if(x=this.resolveType(y,r,n,s,a),!x)return null;let b=We.create(this.program,_,x,o,f,h);return e.isNullable?b.type.asNullable():b.type}resolveTupleType(e,r,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],r,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,r,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,r,n,s=0){let a=null;if(r&&(a=r.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,r,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let y=0,x=e.length;y<x;++y)e[y].defaultType||++u,++c;let _=r?r.length:0;if(_<u||_>c)return o==0&&this.error(2558,_?le.join(r[0].range,r[_-1].range):l.range,(_<u?u:c).toString(),_.toString()),null;let f=new Array(c),h=pe(a);a.clear();for(let y=0;y<c;++y){let x=y<_?this.resolveType(r[y],n,s,h,o):this.resolveType(assert(e[y].defaultType),n,s,pe(a),o);if(!x)return null;a.set(e[y].name.text,x),f[y]=x}return f}maybeInferCall(e,r,n,s=0){let a=e.typeArguments;if(a)return r.is(65536)?this.resolveFunctionInclTypeArguments(r,a,n.sourceFunction,pe(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,r.internalName),null);if(r.is(65536)){let l=this.inferGenericTypeArguments(e,r,r.typeParameterNodes,n,s);return l?this.resolveFunction(r,l,pe(n.contextualTypeArguments),s):null}return this.resolveFunction(r,null,new Map,s)}inferGenericTypeArguments(e,r,n,s,a=0){if(!n)return null;let l=pe(s.contextualTypeArguments),o=n.length,u=new Set;for(let b=0;b<o;++b){let A=n[b].name.text;l.set(A,p.auto),u.add(A)}let c=r.functionTypeNode.parameters,_=c.length,f,h;switch(e.kind){case 10:{let b=e;f=b.args,h=b.argumentsRange;break}case 18:{let b=e;f=b.args,h=b.argumentsRange;break}default:return assert(!1),null}let y=f.length;for(let b=0;b<_;++b){let A=b<y?f[b]:c[b].initializer;if(!A){if(c[b].parameterKind==1)continue;return a==0&&(c[b].parameterKind==2?this.error(1140,h.atEnd):this.error(2554,e.range,_.toString(),y.toString())),null}let I=c[b].type;if(c[b].parameterKind==2&&(I=I.typeArguments[0]),I.hasGenericComponent(n)){let E=this.resolveExpression(A,s,p.auto,1);E&&this.propagateInferredGenericTypes(I,E,r,l,u)}}let x=new Array(o);for(let b=0;b<o;++b){let A=n[b],I=A.name.text;if(l.has(I)){let E=assert(l.get(I));if(E!=p.auto){x[b]=E;continue}let k=A.defaultType;if(k){let F=r.parent,R=null;(F.kind==7||F.kind==5)&&(R=F.contextualTypeArguments);let G=this.resolveType(k,null,r,R,a);if(!G)return null;x[b]=G;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return x}propagateInferredGenericTypes(e,r,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=r.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,h=_.length;f<h;++f)this.propagateInferredGenericTypes(o[f],_[f],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(r))&&s.set(u,r)}}}else if(e.kind==2){let l=e,o=l.parameters,u=r.signatureReference;if(u){let c=u.parameterTypes;for(let y=0,x=min(c.length,o.length);y<x;++y)this.propagateInferredGenericTypes(o[y].type,c[y],n,s,a);let _=u.returnType;_!=p.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,h=l.explicitThisType;f&&h&&this.propagateInferredGenericTypes(h,f,n,s,a);return}}}getTypeOfElement(e){let r=e.kind;if(r==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Vl(r)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let r=e.getClassOrWrapper(this.program);return r||null}lookupExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,r,n,s);case 9:return this.lookupBinaryExpression(e,r,n,s);case 10:return this.lookupCallExpression(e,r,n,s);case 12:return this.lookupCommaExpression(e,r,n,s);case 13:return this.lookupElementAccessExpression(e,r,n,s);case 15:return this.lookupFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,r,r.sourceFunction,s);case 25:return this.lookupThisExpression(e,r,n,s);case 24:return this.lookupSuperExpression(e,r,n,s);case 16:return this.lookupInstanceOfExpression(e,r,n,s);case 17:return this.lookupLiteralExpression(e,r,n,s);case 18:return this.lookupNewExpression(e,r,n,s);case 22:return this.lookupPropertyAccessExpression(e,r,n,s);case 23:return this.lookupTernaryExpression(e,r,n,s);case 28:return this.lookupUnaryPostfixExpression(e,r,n,s);case 29:return this.lookupUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}resolveExpression(e,r,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,r,n,s);return a.delete(e),l}doResolveExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,r,n,s);case 9:return this.resolveBinaryExpression(e,r,n,s);case 10:return this.resolveCallExpression(e,r,n,s);case 12:return this.resolveCommaExpression(e,r,n,s);case 13:return this.resolveElementAccessExpression(e,r,n,s);case 15:return this.resolveFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,r,n,r.sourceFunction,s);case 25:return this.resolveThisExpression(e,r,n,s);case 24:return this.resolveSuperExpression(e,r,n,s);case 16:return this.resolveInstanceOfExpression(e,r,n,s);case 17:return this.resolveLiteralExpression(e,r,n,s);case 18:return this.resolveNewExpression(e,r,n,s);case 22:return this.resolvePropertyAccessExpression(e,r,n,s);case 23:return this.resolveTernaryExpression(e,r,n,s);case 28:return this.resolveUnaryPostfixExpression(e,r,n,s);case 29:return this.resolveUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}lookupIdentifierExpression(e,r,n=r.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,r,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=r.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=r.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,r,n=p.auto,s=r.sourceFunction,a=0){switch(e.kind){case 26:case 14:return p.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,r,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,r=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,r):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,r);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,r,n,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,c=u.type;if(c==p.void)return null;let _=c.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=_;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let h=assert(u.setterInstance);return this.errorRelated(229,a.range,h.declaration.range,u.name),null}let _=c.signature.returnType,f=_.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,_.toString()),null;l=f;break}case 15:{let c=l.parent;assert(c.kind==7);let _=c,f=assert(this.currentElementExpression),h=_.lookupOverload(1);if(!h)return s==0&&this.error(2329,f.range,c.internalName),null;let y=h.signature.returnType,x=y.getClassOrWrapper(this.program);if(!x)return s==0&&this.error(2339,e.property.range,o,y.toString()),null;l=x;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let _=this.resolveType(u.typeNode,null,u.parent,null,s);_&&u.setType(_)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let _=this.resolveFunction(l,null,new Map,1);if(_){let f=_.type.getClassOrWrapper(this.program);f&&(l=f)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let _=u.getMember(o);if(_){if(_.kind==10){let f=this.resolveProperty(_,s);if(!f)return null;_=f,f.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,_}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,r,n,s=0){let a=this.lookupPropertyAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,r,n,s=0){let a=e.expression,l=this.resolveExpression(a,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,r,n,s=0){let a=this.lookupElementAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,r,n){let s=e.value;if(r){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,r,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,r,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Re.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Ie(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 96:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Re.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Ie(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,r,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,r,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,r,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,u,s);if(!_)return null;let f=p.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,n,s);if(!_)return null;let f=p.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),_}case 98:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _?u.is(512)&&c.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,r,n=p.auto,s=0){if(r.isInline){let o=r.lookupLocal(C.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=r.lookupLocal(C.this_);if(a||(a=r.lookupLocalInOuter(C.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=r.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,r,n=p.auto,s=0){let a=this.lookupThisExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,r,n=p.auto,s=0){if(r.isInline){let l=r.lookupLocal(C.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=r.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,r,n=p.auto,s=0){let a=this.lookupSuperExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,r,n=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let _=0,f=o;_<f;++_){let h=l[_];if(h)if(h.kind==19&&o>1)++c;else{let y=this.resolveExpression(h,r,u);if(!y)return null;if(u==p.auto)u=y;else if(y!=u){let x=p.commonType(u,y,u);x&&(u=x)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,r,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,r,n=p.void,s=0){let a=this.resolveCallExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,r,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==d.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],r,n,s);let u=this.maybeInferCall(e,o,r,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Vl(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}lookupCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],r,n,s)}resolveCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],r,n,s)}lookupInstanceOfExpression(e,r,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,r,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,r,n,s=0){let a=this.resolveTernaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,r,n,s=0){let a=this.resolveExpression(e.ifThen,r,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,r,a,s);if(!l)return null;let o=p.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,r,n,s=0){let a=this.resolveTypeName(e.typeName,r,r.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,r,r.sourceFunction,pe(r.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,r,n,s=0){let a=this.lookupNewExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,r,n,s=0){let a=this.resolveFunctionExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,r,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,r.sourceFunction,r.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&ke(l.returnType)){let c=o.expression,_=assert(u.getSignature()),f=Dt.createDefault(r.sourceFunction),h=l.parameters;assert(_.parameterTypes.length==h.length);for(let x=0,b=h.length;x<b;x++){let A=h[x],I=_.parameterTypes[x];f.addScopedDummyLocal(A.name.text,I,A)}let y=this.resolveExpression(c,f,n,s);y&&(u.signatureReference=We.create(this.program,_.parameterTypes,y,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,r,n=new Map,s=0){let a=null,l=r?Ol(r):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let G=a.typeArguments;if(G){let U=assert(a.prototype.typeParameterNodes),z=U.length;assert(z==U.length);for(let W=0;W<z;++W){let q=U[W].name.text;n.set(q,G[W])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(r&&(c=r.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)n.set(u[R].name.text,r[R])}else assert(!u||u.length==0);let _=null,f=o.explicitThisType;if(f){if(_=this.resolveType(f,null,e.parent,n,s),!_)return null;n.set(C.this_,_)}else a&&(_=a.type,n.set(C.this_,_));let h=o.parameters,y=h.length,x=new Array(y),b=0,A=!1;for(let R=0;R<y;++R){let G=h[R];G.parameterKind==0?b=R+1:G.parameterKind==2&&(A=!0);let U=G.type;if(ke(U))return s==0&&this.error(1110,U.range),null;let z=this.resolveType(U,null,e.parent,n,s);if(!z)return null;if(z==p.void)return s==0&&this.error(1110,U.range),null;x[R]=z}let I;if(e.is(4096))I=p.void;else if(e.is(524288))I=a.type;else{let R=o.returnType;if(ke(R))return s==0&&this.error(1110,R.range),null;let G=this.resolveType(R,null,e.parent,n,s);if(!G)return null;I=G}let E=We.create(this.program,x,I,_,b,A),k=e.name;l.length&&(k+=`<${l}>`);let F=new bt(k,e,r,E,n);if(e.setResolvedInstance(l,F),a){let R=F.declaration.name.text,G=a.base;if(G){let U=G.getMember(R);if(U){this.discoveredOverride=!0;let z=!0;if(F.isAny(6144)){if(U.kind==10){let W=this.resolveProperty(U,s);if(W)if(F.is(2048)){let q=W.getterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}else{assert(F.is(4096));let q=W.setterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}}}else if(F.is(524288))z=!1;else if(U.kind==4){let W=U,q=W.typeParameterNodes,ee=q!=null&&q.length>0,Y=r!=null&&r.length>0;if(ee!=Y)this.errorRelated(242,F.identifierAndSignatureRange,U.identifierAndSignatureRange,R),z=!1;else{let te=this.resolveFunction(W,r,new Map,1);te&&F.signature.isAssignableTo(te.signature,!0)&&(z=!1)}}z&&this.errorRelated(2394,F.identifierAndSignatureRange,U.identifierAndSignatureRange)}}}return F}resolveFunctionInclTypeArguments(e,r,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let _=assert(u.prototype.typeParameterNodes),f=c.length;assert(f==_.length);for(let h=0;h<f;++h)s.set(_[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),r,null,n,s,a,l),!o)return null}else if(r&&r.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let r=e.prototype.unboundOverrides;if(!r)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(r),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,_;if(assert(c.kind==6||c.kind==8),_=c.instances,!!_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h){let x=f[h];if(!x.isAssignableTo(n))continue;let b=null;if(e.isAny(6144)){let A=e.declaration.name.text,I=assert(x.getMember(A));assert(I.kind==10);let E=this.resolveProperty(I);if(!E)continue;e.is(2048)?b=E.getterInstance:(assert(e.is(4096)),b=E.setterInstance)}else{let A=x.getMember(u.name);if(A){assert(A.kind==4);let I=A;I.is(65536)==e.is(65536)&&(b=this.resolveFunction(I,e.typeArguments))}}b&&s.add(b)}}return Set_values(s)}resolveClass(e,r,n=new Map,s=0){let a=r?Ol(r):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Yn(o,e,r):l=new ir(o,e,r),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),r){let h=assert(e.typeParameterNodes),y=h.length,x=r.length;assert(x==y);for(let b=0;b<x;++b)n.set(h[b].name.text,r[b])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}l.contextualTypeArguments=n;let c=!1,_=e.basePrototype;if(_){let h=_;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let y=assert(e.extendsNode),x=this.resolveClassInclTypeArguments(_,y.typeArguments,null,e.parent,pe(n),y,s);if(!x)return null;l.setBase(x),u.has(x)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let h=0,y=f.length;h<y;++h){let x=f[h],b=x;do{if(b==e)return this.error(2506,e.identifierNode.range,e.internalName),null;b=b.basePrototype}while(b);let A=assert(e.implementsNodes[h]),I=this.resolveClassInclTypeArguments(x,A.typeArguments,null,e.parent,pe(n),A,s);if(!I)return null;assert(I.kind==9),l.addInterface(I),u.has(I)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,r,n,s,a,l){let o=!1;return r.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,r.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):r.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,r.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):r.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):r.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,r){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let h=Set_values(l),y=0,x=h.length;y<x;++y){let b=h[y];assert(!s.has(b));let A=b.members;if(A)for(let I=Map_keys(A),E=0,k=I.length;E<k;++E){let F=unchecked(I[E]),R=assert(A.get(F)),G=e.getMember(F);G&&!this.checkOverrideVisibility(F,G,e,R,b,r)||(n.set(F,R),a.set(F,R))}}let o=0,u=e.base;if(u){let h=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let y=u.members;if(y)for(let x=Map_keys(y),b=0,A=x.length;b<A;++b){let I=unchecked(x[b]),E=assert(y.get(I));if(h&&E.is(32))continue;let k=e.getMember(I);k&&!this.checkOverrideVisibility(I,k,e,E,u,r)||(n.set(I,E),E.is(128)?a.set(I,E):a.delete(I))}o=u.nextMemoryOffset}let c=e.prototype,_=c.instanceMembers;if(_)for(let h=Map_values(_),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=b.name;if(u){let I=u.getMember(A);I&&this.checkOverrideVisibility(A,b,e,I,u,r)}switch(b.kind){case 4:{let I=b.toBound(e);e.add(I.name,I);break}case 10:{let I=b.toBound(e);if(I.isField){let E=this.resolveProperty(I,r);if(E){let k=E.type;if(k==p.void)break;if(k.isExternalReference){this.error(100,assert(I.typeNode).range,"Reference typed fields");break}let F=!0;if(u){let G=u.getMember(I.name);if(G&&G.kind==10){let U=G,z=this.resolveProperty(U,r);if(z&&z.isField){if(z.type!=E.type){this.errorRelated(2416,E.identifierNode.range,z.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=z.memoryOffset,F=!1}}}if(F){let G=k.byteSize;assert(Pt(G));let U=G-1;o&U&&(o=(o|U)+1),E.memoryOffset=o,o+=G}I.instance=E,e.add(I.name,I);let R=assert(I.fieldDeclaration).type;R&&this.program.checkTypeSupported(k,R)}}else e.add(I.name,I);break}default:assert(!1)}!b.is(128)&&!b.is(65536)&&a.delete(A)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let h=Map_keys(a),y=0,x=h.length;y<x;++y){let b=h[y],A=assert(a.get(b));this.errorRelated(2515,e.identifierNode.range,A.identifierNode.range,e.internalName,b,A.parent.internalName)}e.nextMemoryOffset=o;{let h=e.getMember(C.constructor);if(h&&h.parent==e){assert(h.kind==4);let y=this.resolveFunction(h,null,assert(e.contextualTypeArguments),r);y&&(e.constructorInstance=y)}}}let f=c.operatorOverloadPrototypes;for(let h=Map_keys(f),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=assert(f.get(b));if(assert(b!=0),A.is(65536))continue;let I;if(A.is(262144)){let k=A.toBound(e);I=this.resolveFunction(k,null,new Map,r)}else I=this.resolveFunction(A,null,new Map,r);if(!I)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),I.is(262144))switch(b){case 27:case 28:case 29:case 30:{let k=I.signature.returnType;k.isAssignableTo(e.type)||r==0&&this.error(2322,A.functionTypeNode.returnType.range,k.toString(),e.type.toString())}}if(E.has(b))r==0&&this.error(213,I.declaration.range);else if(E.set(b,I),b==1||b==2){let k=e.indexSignature;k||(e.indexSignature=k=new Zn(e)),b==1&&k.setType(I.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let h=Set_values(s),y=0,x=h.length;y<x;++y){let b=h[y],A=b.base==e,I=b.interfaces;if(I){let E=!1;for(let k=Set_values(I),F=0,R=k.length;F<R;++F){let G=k[F];G==e?A=!0:s.has(G)&&(E=!0)}if(E)continue}A&&this.finishResolveClass(b,r)}}resolveClassInclTypeArguments(e,r,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let _=e;_&&!c;_=_.basePrototype)c=_.constructorPrototype;if(!r&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),r,n,s,a,l,o),!u)return null}else if(r&&r.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,r=0){let n=e.instance;if(n)return n;e.instance=n=new Jn(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,r);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,r);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,r=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(r==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function ng(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function eg(t,i){let e=ng(t);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function tg(t){let i=ng(t);return i.length!=0?"__r.read"+i+"()":t+".decodeFrom(__r)"}function U2(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function rg(t,i){switch(t){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+t+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function ig(t,i){switch(t){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+t+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+t+">"+i+".asI64()";case"f32":case"f64":return"<"+t+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"("+i+".isArray() ? new u128("+i+".at(0).asU64(),"+i+".at(1).asU64()) : u128.fromString("+i+".asString()))";case"i128":return"("+i+".isArray() ? new i128("+i+".at(0).asU64(),"+i+".at(1).asI64()) : i128.fromString("+i+".asString()))";case"u256":return"("+i+".isArray() ? new u256("+i+".at(0).asU64(),"+i+".at(1).asU64(),"+i+".at(2).asU64(),"+i+".at(3).asU64()) : u256.fromString("+i+".asString()))";case"i256":return"("+i+".isArray() ? new i256("+i+".at(0).asI64(),"+i+".at(1).asI64(),"+i+".at(2).asI64(),"+i+".at(3).asI64()) : i256.fromString("+i+".asString()))";default:return t+".fromJSON("+i+")"}}var es=class{constructor(i,e){this.source=i;this.reportNode=e}};function V2(t,i){switch(t){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function Jp(t){return t=="Get"||t=="GetMany"||t=="Exists"||t=="ViewGet"||t=="CounterGet"||t=="UniqueLookup"||t=="Latest"||t=="MembershipContains"||t=="MembershipList"||t=="CapacityAvailable"}function O2(t,i){switch(t){case 33:return Jp(i);case 34:return Jp(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return Jp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 37:return!1;default:return!0}}function q2(t){switch(t){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 37:return"admin";default:return"?"}}function W2(t){switch(t){case 33:return"a query is read-only";case 34:return"an action cannot publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 37:return"an admin has no request-path data access";default:return"not permitted in this kind"}}var ts=class extends Ke{constructor(e=null,r=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.restImportedSources=new Set;this.ratelimitRouteCounter=0;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=r}parseFile(e,r,n){let s=Sr(r),a=Ln(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let c=this.dependees,_=null;c.has(a)&&(_=assert(c.get(a))),this.error(6054,_?_.reportNode.range:null,r);return}let l=new ce(n?1:r.startsWith(ct)?r.indexOf(it,ct.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new wr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,r=null){let n=r?r.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let b=this.parseDecorator(e);if(!b){this.skipStatement(e);continue}a?a.push(b):a=[b]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let _=0,f=0,h=r!=null&&r.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):h&&(n|=32768);let y=null,x=e.peek();switch(s<0&&(s=e.nextTokenPos),x){case 8:{e.next(),n|=8,e.skip(17)?y=this.parseEnum(e,n,a,s):y=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),y=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),y=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),y=this.parseFunction(e,n,a,s),a=null;break}case 0:{let b=e.mark();e.next();let A=e.tokenPos,I=e.pos;if(e.peekOnNewLine()){e.reset(b),y=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(A,I)),e.reset(b),y=this.parseStatement(e,!0);break}else e.discard(b);n|=128}case 7:case 31:{e.next(),y=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseNamespace(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?y=this.parseExportImport(e,s):y=this.parseImport(e);break}case 55:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 35:{let b=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(b),y=this.parseModuleDeclaration(e,n)):(e.reset(b),y=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),y=this.parseExportDefaultAlias(e,s,u,c),u=c=0):y=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),r?this.error(2695,e.range(s)):y=this.parseStatement(e,!0));break}}if(a)for(let b=0,A=a.length;b<A;++b)this.error(1206,a[b].range);if(c&&y!=null)switch(y.kind){case 53:case 56:case 52:case 58:case 60:return M.createExportDefaultStatement(y,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return y}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let r=this.dependees;return r.has(e)?assert(r.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear(),this.restImportedSources.clear()}checkToilDbKinds(){let e=new Map;for(let r=0,n=this.sources.length;r<n;++r)this.collectDbCollections(this.sources[r].statements,e);if(e.size)for(let r=0,n=this.sources.length;r<n;++r)this.checkDbFunctions(this.sources[r].statements,e)}collectDbCollections(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];if(f.kind!=55)continue;let h=f;if(!this.hasDecoratorKind(h.decorators,32))continue;let y=h.type;y==null||!(y instanceof de)||o.set(h.name.text,y.name.identifier.text)}o.size&&r.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,r)}}checkDbFunctions(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators),u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,r)}else a.kind==60?this.checkDbFunctions(a.members,r):a.kind==52&&this.checkDbFunctions(a.members,r)}}dbFunctionKind(e){if(e==null)return-1;for(let r=0,n=e.length;r<n;++r){let s=e[r].decoratorKind;if(s==33||s==34||s==35||s==36||s==37)return s}return-1}walkDbStmt(e,r,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],r,n);break}case 39:this.walkDbExpr(e.expression,r,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,r,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,r,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.ifTrue,r,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,r,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,r,n),s.condition&&this.walkDbExpr(s.condition,r,n),s.incrementor&&this.walkDbExpr(s.incrementor,r,n),this.walkDbStmt(s.body,r,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,r,n),this.walkDbStmt(s.body,r,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.body,r,n);break}case 34:{let s=e;this.walkDbStmt(s.body,r,n),this.walkDbExpr(s.condition,r,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,r,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let c=0,_=u.length;c<_;++c)this.walkDbStmt(u[c],r,n)}break}case 46:this.walkDbExpr(e.value,r,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,r,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,r,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,r,n);break}default:break}}walkDbStmtList(e,r,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],r,n)}walkDbExpr(e,r,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,r,n),this.walkDbExpr(s.expression,r,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],r,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}case 22:this.walkDbExpr(e.expression,r,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,r,n),this.walkDbExpr(s.elementExpression,r,n);break}case 9:{let s=e;this.walkDbExpr(s.left,r,n),this.walkDbExpr(s.right,r,n);break}case 29:this.walkDbExpr(e.operand,r,n);break;case 28:this.walkDbExpr(e.operand,r,n);break;case 21:this.walkDbExpr(e.expression,r,n);break;case 8:this.walkDbExpr(e.expression,r,n);break;case 16:this.walkDbExpr(e.expression,r,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbExpr(s.ifThen,r,n),this.walkDbExpr(s.ifElse,r,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}default:break}}checkDbCall(e,r,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let c=n.get(u.text);if(c==null)return;let _=c.get(o.property.text);if(_==null)return;let f=a.property.text,h=V2(_,f);h.length!=0&&(O2(r,h)||this.error(102,a.property.range,"ToilDB: a @"+q2(r)+" function may not call '."+f+"' on '"+u.text+"."+o.property.text+"' ("+W2(r)+")"))}parseTypeName(e){let r=M.createSimpleTypeName(e.readIdentifier(),e.range()),n=r;for(;e.skip(68);)if(e.skip(115)){let s=M.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return r}parseType(e,r=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(r){let c=this.parseType(e,!1,n);if(!c)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=c,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,r,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],c=!1;if(!e.skip(67)){do{let _=null,f=e.mark();if(e.skip(115)){let y=e.readIdentifier(),x=e.range();e.skip(100)?(_=M.createIdentifierExpression(y,x),c=!0):e.reset(f)}let h=this.parseType(e,!0,n);if(!h)return null;o.push(h),u.push(_)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=M.createTupleType(o,c?u:null,!1,e.range(a,e.pos))}else if(s==58)l=M.createNamedType(M.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=M.createNamedType(M.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=M.createNamedType(M.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=M.createNamedType(M.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=M.createNamedType(M.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let c=this.parseType(e,!0,n);if(!c)return null;u?u.push(c):u=[c]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=M.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,c=o.kind==1&&o.isNull;if(!u&&!c)return n||this.error(100,o.range,"union types"),null;c?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),c=!1;if(e.skip(93))if(e.skip(38))c=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=M.createNamedType(M.createSimpleTypeName("Array",u),[l],c,e.range(a,e.pos)),c)break}return l}tryParseFunctionType(e){let r=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(r),s=[];else{l=!1;do{let _=-1,f=0;if(e.skip(69)&&(_=e.tokenPos,l=!0,e.discard(r),f=2),e.skip(51))if(_<0&&(_=e.tokenPos),e.skip(100)){l=!0,e.discard(r);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;a=h}else return e.reset(r),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){_<0&&(_=e.tokenPos);let h=M.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(r),f==2?this.error(1047,e.range()):f=1),e.skip(100)){l=!0,e.discard(r);let y=this.parseType(e);if(!y)return this.tryParseSignatureIsSignature=l,null;let x=M.createParameter(f,h,y,null,e.range(_,e.pos));s?s.push(x):s=[x]}else if(l||e.peek()==71&&(l=!0,e.discard(r)),l){let y=M.createParameter(f,h,M.createOmittedType(e.range(e.pos)),null,e.range(_,e.pos));s?s.push(y):s=[y],this.error(1110,y.type.range)}else s||(o=h,u=f)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(r);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(80)){if(!l&&(l=!0,e.discard(r),o)){let _=M.createParameter(u,o,M.createOmittedType(o.range.atEnd),null,o.range);s?s.push(_):s=[_],this.error(1110,_.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),M.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let r=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=M.createIdentifierExpression(n,e.range(r,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=M.createPropertyAccessExpression(s,M.createIdentifierExpression(n,e.range()),e.range(r,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return M.createDecorator(s,a,e.range(r,e.pos))}else return M.createDecorator(s,null,e.range(r,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,r,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,r,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=M.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,r,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());Ip(a.text)&&this.error(1003,a.range);let l=r;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=le.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),M.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,r,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=M.createEnumDeclaration(a,n,r,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,r){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=M.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:M.createEnumValueDeclaration(n,r,s,le.join(n.range,e.range()))}parseReturn(e){let r=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=M.createReturnStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let r=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),r.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return r.length||this.error(1098,e.range(s,e.pos)),r}parseTypeParameter(e){if(e.next()==115){let r=M.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return M.createTypeParameter(r,n,s,le.join(r.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,r=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,r);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,r=!1){let n=!1,s=!1,a=null,l=0;if(r&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=M.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));let c=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let _=M.createParameter(n?2:s?1:0,o,u,c,le.join(assert(a),e.range()));return _.flags|=l,_}else this.error(1003,e.range());return null}parseFunction(e,r,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;r|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let c=this.parseParametersThis,_=(r&4096)!=0;_&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),r&2048&&u.length&&this.error(1054,a.range);let f=null;if(e.skip(100)&&(f=this.parseType(e,!0,_),!f))return null;f||(f=M.createOmittedType(e.range(e.pos)),_||this.error(1110,f.range));let h=M.createFunctionType(u,f,c,!1,e.range(l,e.pos)),y=null;if(e.skip(62)){if(r&32768&&this.error(1183,e.range()),y=this.parseBlockStatement(e,!1),!y)return null}else r&32768||this.error(2391,e.range(e.pos));let x=M.createFunctionDeclaration(a,n,r,o,h,y,0,e.range(s,e.pos));return x.overriddenModuleName=this.currentModuleName,e.skip(70),x}parseFunctionExpression(e){let r=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=M.createIdentifierExpression(e.readIdentifier(),e.range()):n=M.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=M.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,r,a):null}parseFunctionExpressionCommon(e,r,n,s,a,l=-1,o=-1){l<0&&(l=r.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=M.createFunctionType(n,u,s,!1,e.range(o,e.pos)),_=null;if(a)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let h=this.parseExpression(e,2);h&&(_=M.createExpressionStatement(h))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(!_)return null;let f=M.createFunctionDeclaration(r,null,0,null,c,_,a,e.range(l,e.pos));return M.createFunctionExpression(f)}parseClassOrInterface(e,r,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=M.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;r|=65536}let u=null;if(e.skip(19)){let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;u=h}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;a||(c||(c=[]),c.push(h))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let _=new Array,f;if(a?(assert(!c),f=M.createInterfaceDeclaration(l,n,r,o,u,null,_,e.range(s,e.pos))):f=M.createClassDeclaration(l,n,r,o,u,c,_,e.range(s,e.pos)),!e.skip(63))do{let h=this.parseClassMember(e,f);if(h)h.kind==66?f.indexSignature=h:(assert(h instanceof Ue),_.push(h));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(f.range.end=e.pos,f.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let h=0,y=n.length;h<y;++h){let x=n[h].decoratorKind;x==15?this.injectDataCodec(f):x==29?(this.injectDataCodec(f),this.injectUserBinding(f)):x==18?this.injectRestController(f,n[h]):x==31&&this.injectDatabaseBinding(f)}return f}injectDatabaseBinding(e){let r=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof de))continue;let c=u;o.is(32)&&(o.flags&=-33);let _=c.name.identifier.text,f=o.name.text,h=c.typeArguments,y=_;if(h!=null&&h.length>0){let A="";for(let I=0,E=h.length;I<E;++I){I>0&&(A+=", ");let k=h[I];k instanceof de&&(A+=k.name.identifier.text)}y=_+"<"+A+">"}let x=r+"/"+f,b="__db_"+f;this.injectClassMember(e,"private static "+b+": "+y+" | null = null;"),this.injectClassMember(e,"static get "+f+"(): "+y+" { if ("+r+"."+b+" == null) "+r+"."+b+" = new "+y+'(__toildbResolve("'+x+'")); return '+r+"."+b+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
18
18
|
import { __toildbResolve } from "toildb";
|
|
19
19
|
`)}injectDataCodec(e){let r=e.name.text,n=e.members,s="",a="",l="",o="";for(let c=0,_=n.length;c<_;++c){let f=n[c];if(f.kind!=55)continue;let h=f;if(h.is(32))continue;let y=h.type;if(y==null||!(y instanceof de))continue;let x=h.name.text,b='"'+x+'"',A=y,I=A.name.identifier.text,E=A.typeArguments;if(I=="Array"&&E!=null&&E.length==1&&E[0]instanceof de){let k=E[0].name.identifier.text,F="__a"+c.toString(),R="__c"+c.toString(),G="__j"+c.toString();s+="{const "+F+"=this."+x+";__w.writeU32(<u32>"+F+".length);for(let "+G+"=0,"+R+"="+F+".length;"+G+"<"+R+";++"+G+"){"+eg(k,F+"["+G+"]")+"}}",a+="{const "+R+"=__r.readU32();const "+F+"=new Array<"+k+">();for(let "+G+":u32=0;"+G+"<"+R+"&&__r.ok;++"+G+"){"+F+".push("+tg(k)+");}__o."+x+"="+F+";}",l+="{const "+F+"=this."+x+";const "+F+"j=JSON.arr();for(let "+G+"=0,"+R+"="+F+".length;"+G+"<"+R+";++"+G+"){"+F+"j.push("+rg(k,F+"["+G+"]")+");}__j.set("+b+","+F+"j);}",o+="{const "+F+"v=__v.get("+b+");const "+F+"=new Array<"+k+">();for(let "+G+"=0,"+R+"="+F+"v.length();"+G+"<"+R+";++"+G+"){"+F+".push("+ig(k,F+"v.at("+G+")")+");}__o."+x+"="+F+";}"}else if(I=="Uint8Array"){let k="__a"+c.toString(),F="__c"+c.toString(),R="__j"+c.toString();s+="__w.writeBytes(this."+x+");",a+="__o."+x+"=__r.readBytes();",l+="{const "+k+"=this."+x+";const "+k+"j=JSON.arr();for(let "+R+":i32=0,"+F+"="+k+".length;"+R+"<"+F+";++"+R+"){"+k+"j.push(JSON.of<u8>("+k+"["+R+"]));}__j.set("+b+","+k+"j);}",o+="{const "+k+"v=__v.get("+b+");const "+k+"=new Uint8Array("+k+"v.length());for(let "+R+":i32=0,"+F+"="+k+"v.length();"+R+"<"+F+";++"+R+"){"+k+"["+R+"]=<u8>"+k+"v.at("+R+").asU64();}__o."+x+"="+k+";}"}else s+=eg(I,"this."+x),a+="__o."+x+"="+tg(I)+";",l+="__j.set("+b+","+rg(I,"this."+x)+");",o+="__o."+x+"="+ig(I,"__v.get("+b+")")+";"}let u=U2(r).toString();this.injectClassMember(e,"encodeInto(__w: DataWriter): void{"+s+"}"),this.injectClassMember(e,"encode(): Uint8Array{const __w=new DataWriter();__w.writeU32("+u+");this.encodeInto(__w);return __w.toBytes();}"),this.injectClassMember(e,"static decodeFrom(__r: DataReader): "+r+"{const __o=new "+r+"();"+a+"return __o;}"),this.injectClassMember(e,"static decode(__buf: Uint8Array): "+r+"{const __r=new DataReader(__buf);__r.readU32();return "+r+".decodeFrom(__r);}"),this.injectClassMember(e,"decodeInto(__buf: Uint8Array): void{const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.")+"}"),this.injectClassMember(e,"static dataId(): u32{return "+u+";}"),this.injectClassMember(e,"toJSON(): JSON{const __j=JSON.obj();"+l+"return __j;}"),this.injectClassMember(e,"static fromJSON(__v: JSON): "+r+"{const __o=new "+r+"();"+o+"return __o;}")}injectClassMember(e,r){let n=e.range.source,s=new ce(n.sourceKind,n.normalizedPath,r),a=new wr(s,this.diagnostics),l=this.parseClassMember(a,e);l!=null&&l instanceof Ue&&e.members.push(l)}injectTopLevelStatements(e,r){let n=e.range.source,s=new ce(n.sourceKind,n.normalizedPath,r),a=new wr(s,this.diagnostics);for(;!a.skip(121);){let l=this.parseTopLevelStatement(a,null);if(l!=null)n.statements.push(l);else{this.skipStatement(a);break}}}injectRestController(e,r){let n=e.name.text,s=e.members,a=this.restPrefixOf(r),l=this.restStreamOf(r),o=this.hasDecoratorKind(e.decorators,28),u="";for(let h=0,y=s.length;h<y;++h){let x=s[h];if(x.kind!=59)continue;let b=x,A=this.routeDecoratorOf(b);if(A==null)continue;let I=this.buildRouteBlock(a,l,b,A,o);I!=null&&(u+=I)}if(u.length==0)return;this.injectClassMember(e,"__tryRoute(__req: __toilReq): __toilResp | null{"+u+"return null;}");let c=this.restRuntimePath(e),f=e.range.source.normalizedPath;this.restImportedSources.has(f)||(this.restImportedSources.add(f),this.injectTopLevelStatements(e,"import { Rest as __toilRest, Request as __toilReq, Response as __toilResp, matchRoute as __toilMatch } from "+JSON.stringify(c)+`;
|
|
20
20
|
`)),this.injectTopLevelStatements(e,"__toilRest.register((__q: __toilReq): __toilResp | null => new "+n+`().__tryRoute(__q));
|