toilscript 0.1.57 → 0.1.59

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.
@@ -14,7 +14,7 @@ var ko=Object.defineProperty;var C_=Object.getOwnPropertyDescriptor;var g2=Objec
14
14
  `," ".repeat(o-l.length),l," \u2502 ",t.substring(s,a).replaceAll(" "," "),`
15
15
  `,u," \u2502 "];for(;s<r.start;)t.charCodeAt(s)==9?(p.push(" "),s+=2):(p.push(" "),s++);if(Si()&&p.push(Ca),r.start==r.end)p.push("^");else for(;s++<r.end;){let _=t.charCodeAt(s);if(_==9)p.push("~~");else if(Ut(_)){p.push(s==r.start+1?"^":"~");break}else p.push("~")}return Si()&&p.push(zn),p.push(`
16
16
  `),p.push(u),p.push(" \u2514\u2500 in "),p.push(e.normalizedPath),p.join("")}var Ze=class{constructor(i=null){this.seen=new Map;i||(i=[]),this.diagnostics=i}emitDiagnostic(i,e,t,n,s=null,a=null,l=null){let o=Ba.create(i,e,s,a,l);if(t&&(o=o.withRange(t)),n&&(o.relatedRange=n),t){let u=this.seen;if(u.has(t.source)){let p=assert(u.get(t.source));if(p.has(t.start)){let _=assert(p.get(t.start));for(let f=0,d=_.length;f<d;++f)if(_[f].equals(o))return;_.push(o)}else p.set(t.start,[o])}else{let p=new Map;p.set(t.start,[o]),u.set(t.source,p)}}this.diagnostics.push(o)}pedantic(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,0,e,null,t,n,s)}pedanticRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,0,e,t,n,s,a)}info(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,1,e,null,t,n,s)}infoRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,1,e,t,n,s,a)}warning(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,2,e,null,t,n,s)}warningRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,2,e,t,n,s,a)}error(i,e,t=null,n=null,s=null){this.emitDiagnostic(i,3,e,null,t,n,s)}errorRelated(i,e,t,n=null,s=null,a=null){this.emitDiagnostic(i,3,e,t,n,s,a)}};var ft=(q=>(q[q.Source=0]="Source",q[q.NamedType=1]="NamedType",q[q.FunctionType=2]="FunctionType",q[q.TupleType=3]="TupleType",q[q.TypeName=4]="TypeName",q[q.TypeParameter=5]="TypeParameter",q[q.Parameter=6]="Parameter",q[q.Identifier=7]="Identifier",q[q.Assertion=8]="Assertion",q[q.Binary=9]="Binary",q[q.Call=10]="Call",q[q.Class=11]="Class",q[q.Comma=12]="Comma",q[q.ElementAccess=13]="ElementAccess",q[q.False=14]="False",q[q.Function=15]="Function",q[q.InstanceOf=16]="InstanceOf",q[q.Literal=17]="Literal",q[q.New=18]="New",q[q.Null=19]="Null",q[q.Omitted=20]="Omitted",q[q.Parenthesized=21]="Parenthesized",q[q.PropertyAccess=22]="PropertyAccess",q[q.Ternary=23]="Ternary",q[q.Super=24]="Super",q[q.This=25]="This",q[q.True=26]="True",q[q.Constructor=27]="Constructor",q[q.UnaryPostfix=28]="UnaryPostfix",q[q.UnaryPrefix=29]="UnaryPrefix",q[q.Compiled=30]="Compiled",q[q.Block=31]="Block",q[q.Break=32]="Break",q[q.Continue=33]="Continue",q[q.Do=34]="Do",q[q.Empty=35]="Empty",q[q.Export=36]="Export",q[q.ExportDefault=37]="ExportDefault",q[q.ExportImport=38]="ExportImport",q[q.Expression=39]="Expression",q[q.For=40]="For",q[q.ForOf=41]="ForOf",q[q.If=42]="If",q[q.Import=43]="Import",q[q.Return=44]="Return",q[q.Switch=45]="Switch",q[q.Throw=46]="Throw",q[q.Try=47]="Try",q[q.Variable=48]="Variable",q[q.Void=49]="Void",q[q.While=50]="While",q[q.Module=51]="Module",q[q.ClassDeclaration=52]="ClassDeclaration",q[q.EnumDeclaration=53]="EnumDeclaration",q[q.EnumValueDeclaration=54]="EnumValueDeclaration",q[q.FieldDeclaration=55]="FieldDeclaration",q[q.FunctionDeclaration=56]="FunctionDeclaration",q[q.ImportDeclaration=57]="ImportDeclaration",q[q.InterfaceDeclaration=58]="InterfaceDeclaration",q[q.MethodDeclaration=59]="MethodDeclaration",q[q.NamespaceDeclaration=60]="NamespaceDeclaration",q[q.TypeDeclaration=61]="TypeDeclaration",q[q.VariableDeclaration=62]="VariableDeclaration",q[q.Decorator=63]="Decorator",q[q.ExportMember=64]="ExportMember",q[q.SwitchCase=65]="SwitchCase",q[q.IndexSignature=66]="IndexSignature",q[q.Comment=67]="Comment",q))(ft||{}),z=class r{constructor(i,e){this.kind=i;this.range=e}static createSimpleTypeName(i,e){return new ki(r.createIdentifierExpression(i,e),null,e)}static createNamedType(i,e,t,n){return new ae(i,e,t,n)}static createFunctionType(i,e,t,n,s){return new Pr(i,e,t,n,s)}static createTupleType(i,e,t,n){return new Na(i,e,t,n)}static createOmittedType(i){return new ae(r.createSimpleTypeName("",i),null,!1,i)}static createTypeParameter(i,e,t,n){return new Ma(i,e,t,n)}static createParameter(i,e,t,n,s){return new Ri(i,e,t,n,s)}static createDecorator(i,e,t){return new Da(it.fromNode(i),i,e,t)}static createComment(i,e,t){return new Ga(i,e,t)}static createIdentifierExpression(i,e,t=!1){return new xe(i,t,e)}static createEmptyIdentifierExpression(i){return new xe("",!1,i)}static createArrayLiteralExpression(i,e){return new Br(i,e)}static createAssertionExpression(i,e,t,n){return new za(i,e,t,n)}static createBinaryExpression(i,e,t,n){return new Ua(i,e,t,n)}static createCallExpression(i,e,t,n){return new Va(i,e,t,n)}static createClassExpression(i){return new Oa(i)}static createCommaExpression(i,e){return new qa(i,e)}static createConstructorExpression(i){return new Wa(i)}static createElementAccessExpression(i,e,t){return new ja(i,e,t)}static createFalseExpression(i){return new sl(i)}static createFloatLiteralExpression(i,e){return new Ka(i,e)}static createFunctionExpression(i){return new Ha(i)}static createInstanceOfExpression(i,e,t){return new Qa(i,e,t)}static createIntegerLiteralExpression(i,e){return new pt(i,e)}static createNewExpression(i,e,t,n){return new Xa(i,e,t,n)}static createNullExpression(i){return new Ja(i)}static createObjectLiteralExpression(i,e,t){return new Be(i,e,t)}static createOmittedExpression(i){return new Za(i)}static createParenthesizedExpression(i,e){return new Ya(i,e)}static createPropertyAccessExpression(i,e,t){return new _t(i,e,t)}static createRegexpLiteralExpression(i,e,t){return new $a(i,e,t)}static createTernaryExpression(i,e,t,n){return new el(i,e,t,n)}static createStringLiteralExpression(i,e){return new ye(i,e)}static createSuperExpression(i){return new tl(i)}static createTemplateLiteralExpression(i,e,t,n,s){return new rl(i,e,t,n,s)}static createThisExpression(i){return new il(i)}static createTrueExpression(i){return new nl(i)}static createUnaryPostfixExpression(i,e,t){return new al(i,e,t)}static createUnaryPrefixExpression(i,e,t){return new ll(i,e,t)}static createCompiledExpression(i,e,t){return new ol(i,e,t)}static createBlockStatement(i,e){return new cl(i,e)}static createBreakStatement(i,e){return new pl(i,e)}static createClassDeclaration(i,e,t,n,s,a,l,o){return new Vn(i,e,t,n,s,a,l,o)}static createContinueStatement(i,e){return new _l(i,e)}static createDoStatement(i,e,t){return new fl(i,e,t)}static createEmptyStatement(i){return new dl(i)}static createEnumDeclaration(i,e,t,n,s){return new hl(i,e,t,n,s)}static createEnumValueDeclaration(i,e,t,n){return new ml(i,e,t,n)}static createExportStatement(i,e,t,n){return new bl(i,e,t,n)}static createExportDefaultStatement(i,e){return new xl(i,e)}static createExportImportStatement(i,e,t){return new yl(i,e,t)}static createExportMember(i,e,t){return e||(e=i),new gl(i,e,t)}static createExpressionStatement(i){return new Tl(i)}static createIfStatement(i,e,t,n){return new Sl(i,e,t,n)}static createImportStatement(i,e,t){return new qn(i,null,e,t)}static createWildcardImportStatement(i,e,t){return new qn(null,i,e,t)}static createImportDeclaration(i,e,t){return e||(e=i),new Il(e,i,t)}static createInterfaceDeclaration(i,e,t,n,s,a,l,o){return new kl(i,e,t,n,s,a,l,o)}static createFieldDeclaration(i,e,t,n,s,a){return new Al(i,e,t,n,s,-1,a)}static createForStatement(i,e,t,n,s){return new vl(i,e,t,n,s)}static createForOfStatement(i,e,t,n){return new El(i,e,t,n)}static createFunctionDeclaration(i,e,t,n,s,a,l,o){return new On(i,e,t,n,s,a,l,o)}static createIndexSignature(i,e,t,n){return new ul(i,e,t,n)}static createMethodDeclaration(i,e,t,n,s,a,l){return new Lr(i,e,t,n,s,a,l)}static createNamespaceDeclaration(i,e,t,n,s){return new Rl(i,e,t,n,s)}static createReturnStatement(i,e){return new Fl(i,e)}static createSwitchStatement(i,e,t){return new Cl(i,e,t)}static createSwitchCase(i,e,t){return new wl(i,e,t)}static createThrowStatement(i,e){return new Pl(i,e)}static createTryStatement(i,e,t,n,s){return new Bl(i,e,t,n,s)}static createTypeDeclaration(i,e,t,n,s,a){return new Nl(i,e,t,n,s,a)}static createModuleDeclaration(i,e,t){return new Ll(i,e,t)}static createVariableStatement(i,e,t){return new Dl(i,e,t)}static createVariableDeclaration(i,e,t,n,s,a){return new Ml(i,e,t,n,s,a)}static createVoidStatement(i,e){return new Gl(i,e)}static createWhileStatement(i,e,t){return new zl(i,e,t)}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}},Ii=class extends z{constructor(e,t,n){super(e,n);this.isNullable=t;this.currentlyResolving=!1}hasGenericComponent(e){if(this.kind==1){let t=changetype(this);if(!t.name.next){let n=t.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=t.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 t=changetype(this),n=t.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(t.returnType.hasGenericComponent(e))return!0;let s=t.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}},ki=class extends z{constructor(e,t,n){super(4,n);this.identifier=e;this.next=t}},ae=class extends Ii{constructor(e,t,n,s){super(1,n,s);this.name=e;this.typeArguments=t}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Pr=class extends Ii{constructor(e,t,n,s,a){super(2,s,a);this.parameters=e;this.returnType=t;this.explicitThisType=n}},Na=class extends Ii{constructor(e,t,n,s){super(3,n,s);this.elements=e;this.elementNames=t}},Ma=class extends z{constructor(e,t,n,s){super(5,s);this.name=e;this.extendsType=t;this.defaultType=n}},Nr=(t=>(t[t.Default=0]="Default",t[t.Optional=1]="Optional",t[t.Rest=2]="Rest",t))(Nr||{}),Ri=class extends z{constructor(e,t,n,s,a){super(6,a);this.parameterKind=e;this.name=t;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}},it=(H=>(H[H.Custom=0]="Custom",H[H.Global=1]="Global",H[H.Operator=2]="Operator",H[H.OperatorBinary=3]="OperatorBinary",H[H.OperatorPrefix=4]="OperatorPrefix",H[H.OperatorPostfix=5]="OperatorPostfix",H[H.Unmanaged=6]="Unmanaged",H[H.Final=7]="Final",H[H.Inline=8]="Inline",H[H.External=9]="External",H[H.ExternalJs=10]="ExternalJs",H[H.Builtin=11]="Builtin",H[H.Lazy=12]="Lazy",H[H.Unsafe=13]="Unsafe",H[H.Main=14]="Main",H[H.Data=15]="Data",H[H.Remote=16]="Remote",H[H.Service=17]="Service",H[H.Rest=18]="Rest",H[H.Route=19]="Route",H[H.Get=20]="Get",H[H.Post=21]="Post",H[H.Put=22]="Put",H[H.Delete=23]="Delete",H[H.Patch=24]="Patch",H[H.Head=25]="Head",H[H.Options=26]="Options",H[H.Cache=27]="Cache",H[H.Auth=28]="Auth",H[H.User=29]="User",H[H.Ratelimit=30]="Ratelimit",H[H.Database=31]="Database",H[H.Collection=32]="Collection",H[H.Query=33]="Query",H[H.Action=34]="Action",H[H.Job=35]="Job",H[H.Derive=36]="Derive",H[H.Migrate=37]="Migrate",H[H.Unique=38]="Unique",H[H.Admin=39]="Admin",H[H.Daemon=40]="Daemon",H[H.Scheduled=41]="Scheduled",H[H.Stream=42]="Stream",H[H.Connect=43]="Connect",H[H.Message=44]="Message",H[H.Close=45]="Close",H[H.Disconnect=46]="Disconnect",H))(it||{});(i=>{function r(e){if(e.kind==7){let t=e.text;switch(assert(t.length),t.charCodeAt(0)){case 97:{if(t=="auth")return 28;if(t=="action")return 34;if(t=="admin")return 39;break}case 98:{if(t=="builtin")return 11;break}case 99:{if(t=="cache")return 27;if(t=="collection")return 32;if(t=="connect")return 43;if(t=="close")return 45;break}case 100:{if(t=="data")return 15;if(t=="del")return 23;if(t=="database")return 31;if(t=="derive")return 36;if(t=="daemon")return 40;if(t=="disconnect")return 46;break}case 101:{if(t=="external")return 9;break}case 102:{if(t=="final")return 7;break}case 103:{if(t=="global")return 1;if(t=="get")return 20;break}case 104:{if(t=="head")return 25;break}case 105:{if(t=="inline")return 8;break}case 106:{if(t=="job")return 35;break}case 108:{if(t=="lazy")return 12;break}case 109:{if(t=="main")return 14;if(t=="migrate")return 37;if(t=="message")return 44;break}case 111:{if(t=="operator")return 2;if(t=="options")return 26;break}case 112:{if(t=="post")return 21;if(t=="put")return 22;if(t=="patch")return 24;break}case 113:{if(t=="query")return 33;break}case 114:{if(t=="ratelimit")return 30;if(t=="remote")return 16;if(t=="rest")return 18;if(t=="route")return 19;break}case 115:{if(t=="service")return 17;if(t=="stream")return 42;if(t=="scheduled")return 41;break}case 117:{if(t=="unmanaged")return 6;if(t=="unique")return 38;if(t=="unsafe")return 13;if(t=="user")return 29;break}}}else if(e.kind==22){let t=e,n=t.expression;if(n.kind==7){let s=n.text;assert(s.length);let a=t.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=r})(it||={});var Da=class extends z{constructor(e,t,n,s){super(63,s);this.decoratorKind=e;this.name=t;this.args=n}},qc=(t=>(t[t.Line=0]="Line",t[t.Triple=1]="Triple",t[t.Block=2]="Block",t))(qc||{}),Ga=class extends z{constructor(e,t,n){super(67,n);this.commentKind=e;this.text=t}},be=class extends z{},xe=class extends be{constructor(e,t,n){super(7,n);this.text=e;this.isQuoted=t}},nr=(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))(nr||{}),xt=class extends be{constructor(e,t){super(17,t);this.literalKind=e}},Br=class extends xt{constructor(e,t){super(5,t);this.elementExpressions=e}},wi=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(wi||{}),za=class extends be{constructor(e,t,n,s){super(8,s);this.assertionKind=e;this.expression=t;this.toType=n}},Ua=class extends be{constructor(e,t,n,s){super(9,s);this.operator=e;this.left=t;this.right=n}},Va=class extends be{constructor(e,t,n,s){super(10,s);this.expression=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)?ce.join(e[0].range,e[t-1].range):this.expression.range}get argumentsRange(){let e=this.args,t=e.length;return t?ce.join(e[0].range,e[t-1].range):this.expression.range}},Oa=class extends be{constructor(e){super(11,e.range);this.declaration=e}},qa=class extends be{constructor(e,t){super(12,t);this.expressions=e}},Wa=class extends xe{constructor(i){super("constructor",!1,i),this.kind=27}},ja=class extends be{constructor(e,t,n){super(13,n);this.expression=e;this.elementExpression=t}},Ka=class extends xt{constructor(e,t){super(0,t);this.value=e}},Ha=class extends be{constructor(e){super(15,e.range);this.declaration=e}},Qa=class extends be{constructor(e,t,n){super(16,n);this.expression=e;this.isType=t}},pt=class extends xt{constructor(e,t){super(1,t);this.value=e}},Xa=class extends be{constructor(e,t,n,s){super(18,s);this.typeName=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)>0?ce.join(e[0].range,e[t-1].range):this.typeName.range}get argumentsRange(){let e=this.args,t=e.length;return t?ce.join(e[0].range,e[t-1].range):this.typeName.range}},Ja=class extends xe{constructor(i){super("null",!1,i),this.kind=19}},Be=class extends xt{constructor(e,t,n){super(6,n);this.names=e;this.values=t}},Za=class extends be{constructor(i){super(20,i)}},Ya=class extends be{constructor(e,t){super(21,t);this.expression=e}},_t=class extends be{constructor(e,t,n){super(22,n);this.expression=e;this.property=t}},$a=class extends xt{constructor(e,t,n){super(4,n);this.pattern=e;this.patternFlags=t}},el=class extends be{constructor(e,t,n,s){super(23,s);this.condition=e;this.ifThen=t;this.ifElse=n}},ye=class extends xt{constructor(e,t){super(2,t);this.value=e}},tl=class extends xe{constructor(i){super("super",!1,i),this.kind=24}},rl=class extends xt{constructor(e,t,n,s,a){super(3,a);this.tag=e;this.parts=t;this.rawParts=n;this.expressions=s}},il=class extends xe{constructor(i){super("this",!1,i),this.kind=25}},nl=class extends xe{constructor(i){super("true",!1,i),this.kind=26}},sl=class extends xe{constructor(i){super("false",!1,i),this.kind=14}},Un=class extends be{constructor(e,t,n,s){super(e,s);this.operator=t;this.operand=n}},al=class extends Un{constructor(i,e,t){super(28,i,e,t)}},ll=class extends Un{constructor(i,e,t){super(29,i,e,t)}},ol=class extends be{constructor(e,t,n){super(30,n);this.expr=e;this.type=t}},pe=class extends z{},Ci=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Ci||{}),fe=class r extends z{constructor(e,t,n){super(0,new ce(0,n.length));this.sourceKind=e;this.normalizedPath=t;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=Wn(t);this.internalPath=s;let a=s.lastIndexOf(lt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=r._native;return e||(r._native=e=new r(3,bt+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==r._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let t=this.lineCache;if(!t){this.lineCache=t=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&t.push(l);t.push(2147483647)}let n=0,s=t.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(t[a]);if(e<l)s=a;else{if(e<unchecked(t[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},Ve=class extends pe{constructor(e,t,n,s,a){super(e,a);this.name=t;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}},ul=class extends z{constructor(e,t,n,s){super(66,s);this.keyType=e;this.valueType=t;this.flags=n}},Fi=class extends Ve{constructor(e,t,n,s,a,l,o){super(e,t,n,s,o);this.type=a;this.initializer=l}},cl=class extends pe{constructor(e,t){super(31,t);this.statements=e}},pl=class extends pe{constructor(e,t){super(32,t);this.label=e}},Vn=class extends Ve{constructor(e,t,n,s,a,l,o,u){super(52,e,t,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}},_l=class extends pe{constructor(e,t){super(33,t);this.label=e}},fl=class extends pe{constructor(e,t,n){super(34,n);this.body=e;this.condition=t}},dl=class extends pe{constructor(i){super(35,i)}},hl=class extends Ve{constructor(e,t,n,s,a){super(53,e,t,n,a);this.values=s}},ml=class extends Fi{constructor(i,e,t,n){super(54,i,null,e,null,t,n)}},yl=class extends pe{constructor(e,t,n){super(38,n);this.name=e;this.externalName=t}},gl=class extends z{constructor(e,t,n){super(64,n);this.localName=e;this.exportedName=t}},bl=class extends pe{constructor(e,t,n,s){super(36,s);this.members=e;this.path=t;this.isDeclare=n;if(t){let a=Cr(t.value);t.value.startsWith(".")?a=Fa(a,s.source.internalPath):a.startsWith(bt)||(a=bt+a),this.internalPath=a}else this.internalPath=null}},xl=class extends pe{constructor(e,t){super(37,t);this.declaration=e}},Tl=class extends pe{constructor(e){super(39,e.range);this.expression=e}},Al=class extends Fi{constructor(e,t,n,s,a,l,o){super(55,e,t,n,s,a,o);this.parameterIndex=l}},vl=class extends pe{constructor(e,t,n,s,a){super(40,a);this.initializer=e;this.condition=t;this.incrementor=n;this.body=s}},El=class extends pe{constructor(e,t,n,s){super(41,s);this.variable=e;this.iterable=t;this.body=n}},Pi=(t=>(t[t.None=0]="None",t[t.Parenthesized=1]="Parenthesized",t[t.Single=2]="Single",t))(Pi||{}),On=class r extends Ve{constructor(e,t,n,s,a,l,o,u){super(56,e,t,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 r(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},Sl=class extends pe{constructor(e,t,n,s){super(42,s);this.condition=e;this.ifTrue=t;this.ifFalse=n}},Il=class extends Ve{constructor(e,t,n){super(57,e,null,0,n);this.foreignName=t}},qn=class extends pe{constructor(e,t,n,s){super(43,s);this.declarations=e;this.namespaceName=t;this.path=n;let a=Cr(n.value);n.value.startsWith(".")?a=Fa(a,s.source.internalPath):a.startsWith(bt)||(a=bt+a),this.internalPath=Wn(a)}},kl=class extends Vn{constructor(i,e,t,n,s,a,l,o){super(i,e,t,n,s,a,l,o),this.kind=58}},Lr=class extends On{constructor(i,e,t,n,s,a,l){super(i,e,t,n,s,a,0,l),this.kind=59}},Rl=class extends Ve{constructor(e,t,n,s,a){super(60,e,t,n,a);this.members=s}},Fl=class extends pe{constructor(e,t){super(44,t);this.value=e}},wl=class extends z{constructor(e,t,n){super(65,n);this.label=e;this.statements=t}get isDefault(){return this.label==null}},Cl=class extends pe{constructor(e,t,n){super(45,n);this.condition=e;this.cases=t}},Pl=class extends pe{constructor(e,t){super(46,t);this.value=e}},Bl=class extends pe{constructor(e,t,n,s,a){super(47,a);this.bodyStatements=e;this.catchVariable=t;this.catchStatements=n;this.finallyStatements=s}},Ll=class extends pe{constructor(e,t,n){super(51,n);this.moduleName=e;this.flags=t}},Nl=class extends Ve{constructor(e,t,n,s,a,l){super(61,e,t,n,l);this.typeParameters=s;this.type=a}},Ml=class extends Fi{constructor(i,e,t,n,s,a){super(62,i,e,t,n,s,a)}},Dl=class extends pe{constructor(e,t,n){super(48,n);this.decorators=e;this.declarations=t}},Gl=class extends pe{constructor(e,t){super(49,t);this.expression=e}},zl=class extends pe{constructor(e,t,n){super(50,n);this.condition=e;this.body=t}};function Oe(r,i){if(i)for(let e=0,t=i.length;e<t;++e){let n=i[e];if(n.decoratorKind==r)return n}return null}function Wn(r){return r.endsWith("/")?r+="index":r.endsWith(".ts")&&(r=r.substring(0,r.length-3)),r}function Le(r){if(r.kind==1){let i=r.name;return!(i.next||i.identifier.text.length>0)}return!1}var Bi=(L=>(L[L.Abstract=0]="Abstract",L[L.As=1]="As",L[L.Async=2]="Async",L[L.Await=3]="Await",L[L.Break=4]="Break",L[L.Case=5]="Case",L[L.Catch=6]="Catch",L[L.Class=7]="Class",L[L.Const=8]="Const",L[L.Continue=9]="Continue",L[L.Constructor=10]="Constructor",L[L.Debugger=11]="Debugger",L[L.Declare=12]="Declare",L[L.Default=13]="Default",L[L.Delete=14]="Delete",L[L.Do=15]="Do",L[L.Else=16]="Else",L[L.Enum=17]="Enum",L[L.Export=18]="Export",L[L.Extends=19]="Extends",L[L.False=20]="False",L[L.Finally=21]="Finally",L[L.For=22]="For",L[L.From=23]="From",L[L.Function=24]="Function",L[L.Get=25]="Get",L[L.If=26]="If",L[L.Implements=27]="Implements",L[L.Import=28]="Import",L[L.In=29]="In",L[L.InstanceOf=30]="InstanceOf",L[L.Interface=31]="Interface",L[L.Is=32]="Is",L[L.KeyOf=33]="KeyOf",L[L.Let=34]="Let",L[L.Module=35]="Module",L[L.Namespace=36]="Namespace",L[L.New=37]="New",L[L.Null=38]="Null",L[L.Of=39]="Of",L[L.Override=40]="Override",L[L.Package=41]="Package",L[L.Private=42]="Private",L[L.Protected=43]="Protected",L[L.Public=44]="Public",L[L.Readonly=45]="Readonly",L[L.Return=46]="Return",L[L.Set=47]="Set",L[L.Static=48]="Static",L[L.Super=49]="Super",L[L.Switch=50]="Switch",L[L.This=51]="This",L[L.Throw=52]="Throw",L[L.True=53]="True",L[L.Try=54]="Try",L[L.Type=55]="Type",L[L.TypeOf=56]="TypeOf",L[L.Var=57]="Var",L[L.Void=58]="Void",L[L.While=59]="While",L[L.With=60]="With",L[L.Yield=61]="Yield",L[L.OpenBrace=62]="OpenBrace",L[L.CloseBrace=63]="CloseBrace",L[L.OpenParen=64]="OpenParen",L[L.CloseParen=65]="CloseParen",L[L.OpenBracket=66]="OpenBracket",L[L.CloseBracket=67]="CloseBracket",L[L.Dot=68]="Dot",L[L.Dot_Dot_Dot=69]="Dot_Dot_Dot",L[L.Semicolon=70]="Semicolon",L[L.Comma=71]="Comma",L[L.LessThan=72]="LessThan",L[L.GreaterThan=73]="GreaterThan",L[L.LessThan_Equals=74]="LessThan_Equals",L[L.GreaterThan_Equals=75]="GreaterThan_Equals",L[L.Equals_Equals=76]="Equals_Equals",L[L.Exclamation_Equals=77]="Exclamation_Equals",L[L.Equals_Equals_Equals=78]="Equals_Equals_Equals",L[L.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",L[L.Equals_GreaterThan=80]="Equals_GreaterThan",L[L.Plus=81]="Plus",L[L.Minus=82]="Minus",L[L.Asterisk_Asterisk=83]="Asterisk_Asterisk",L[L.Asterisk=84]="Asterisk",L[L.Slash=85]="Slash",L[L.Percent=86]="Percent",L[L.Plus_Plus=87]="Plus_Plus",L[L.Minus_Minus=88]="Minus_Minus",L[L.LessThan_LessThan=89]="LessThan_LessThan",L[L.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",L[L.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",L[L.Ampersand=92]="Ampersand",L[L.Bar=93]="Bar",L[L.Caret=94]="Caret",L[L.Exclamation=95]="Exclamation",L[L.Tilde=96]="Tilde",L[L.Ampersand_Ampersand=97]="Ampersand_Ampersand",L[L.Bar_Bar=98]="Bar_Bar",L[L.Question=99]="Question",L[L.Colon=100]="Colon",L[L.Equals=101]="Equals",L[L.Plus_Equals=102]="Plus_Equals",L[L.Minus_Equals=103]="Minus_Equals",L[L.Asterisk_Equals=104]="Asterisk_Equals",L[L.Asterisk_Asterisk_Equals=105]="Asterisk_Asterisk_Equals",L[L.Slash_Equals=106]="Slash_Equals",L[L.Percent_Equals=107]="Percent_Equals",L[L.LessThan_LessThan_Equals=108]="LessThan_LessThan_Equals",L[L.GreaterThan_GreaterThan_Equals=109]="GreaterThan_GreaterThan_Equals",L[L.GreaterThan_GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_GreaterThan_Equals",L[L.Ampersand_Equals=111]="Ampersand_Equals",L[L.Bar_Equals=112]="Bar_Equals",L[L.Caret_Equals=113]="Caret_Equals",L[L.At=114]="At",L[L.Identifier=115]="Identifier",L[L.StringLiteral=116]="StringLiteral",L[L.IntegerLiteral=117]="IntegerLiteral",L[L.FloatLiteral=118]="FloatLiteral",L[L.TemplateLiteral=119]="TemplateLiteral",L[L.Invalid=120]="Invalid",L[L.EndOfFile=121]="EndOfFile",L))(Bi||{}),jc=(t=>(t[t.Default=0]="Default",t[t.Prefer=1]="Prefer",t[t.Always=2]="Always",t))(jc||{});function xg(r){let i=r.length;switch(assert(i),r.charCodeAt(0)){case 97:{if(i==5){if(r=="async")return 2;if(r=="await")return 3;break}if(r=="as")return 1;if(r=="abstract")return 0;break}case 98:{if(r=="break")return 4;break}case 99:{if(i==5){if(r=="const")return 8;if(r=="class")return 7;if(r=="catch")return 6;break}if(r=="case")return 5;if(r=="continue")return 9;if(r=="constructor")return 10;break}case 100:{if(i==7){if(r=="default")return 13;if(r=="declare")return 12;break}if(r=="do")return 15;if(r=="delete")return 14;if(r=="debugger")return 11;break}case 101:{if(i==4){if(r=="else")return 16;if(r=="enum")return 17;break}if(r=="export")return 18;if(r=="extends")return 19;break}case 102:{if(i<=5){if(r=="false")return 20;if(r=="for")return 22;if(r=="from")return 23;break}if(r=="function")return 24;if(r=="finally")return 21;break}case 103:{if(r=="get")return 25;break}case 105:{if(i==2){if(r=="if")return 26;if(r=="in")return 29;if(r=="is")return 32;break}switch(r.charCodeAt(3)){case 108:{if(r=="implements")return 27;break}case 111:{if(r=="import")return 28;break}case 116:{if(r=="instanceof")return 30;break}case 101:{if(r=="interface")return 31;break}}break}case 107:{if(r=="keyof")return 33;break}case 108:{if(r=="let")return 34;break}case 109:{if(r=="module")return 35;break}case 110:{if(r=="new")return 37;if(r=="null")return 38;if(r=="namespace")return 36;break}case 111:{if(r=="of")return 39;if(r=="override")return 40;break}case 112:{if(i==7){if(r=="private")return 42;if(r=="package")return 41;break}if(r=="public")return 44;if(r=="protected")return 43;break}case 114:{if(r=="return")return 46;if(r=="readonly")return 45;break}case 115:{if(i==6){if(r=="switch")return 50;if(r=="static")return 48;break}if(r=="set")return 47;if(r=="super")return 49;break}case 116:{if(i==4){if(r=="true")return 53;if(r=="this")return 51;if(r=="type")return 55;break}if(r=="try")return 54;if(r=="throw")return 52;if(r=="typeof")return 56;break}case 118:{if(r=="var")return 57;if(r=="void")return 58;break}case 119:{if(r=="while")return 59;if(r=="with")return 60;break}case 121:{if(r=="yield")return 61;break}}return 120}function Tg(r){switch(r){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 Kc(r){switch(assert(r.length),r.charCodeAt(0)){case 100:return r=="delete";case 102:return r=="for";case 105:return r=="instanceof";case 110:return r=="null";case 118:return r=="void"}return!1}function we(r){switch(r){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 sr=class extends Ze{constructor(e,t=null){super(t);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;t||(t=[]),this.diagnostics=t,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 t;do t=this.unsafeNext(e);while(t==120);return this.token=t,t}unsafeNext(e=0,t=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,t>1&&a<s&&n.charCodeAt(a)==61?(++a,t>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,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,107):(this.pos=a,86);case 38:{if(++a,t>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,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,104;if(o==42)return++a,t>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,t>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,t>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,t>1&&a<s){let o=n.charCodeAt(a);if(ct(o))return this.pos=a-1,118;if(t>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,t>1&&a<s){let u=n.charCodeAt(a);if(u==47){let p=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,p=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(p,n.substring(o,a),this.range(o,a));break}if(u==42){let p=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,p=!0;break}p?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,t>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,t>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,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,t>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,t>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,t>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,t>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,t>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,t>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(Ai(l)&&a+1<s&&(l=Dn(l,n.charCodeAt(a+1))),vi(l)){let u=a;for(;(a+=Fr(l))<s&&Ei(l=n.codePointAt(a)););if(e!=2){let p=xg(n.substring(u,a));if(p!=120&&!(e==1&&Tg(p)))return this.pos=a,p}return this.pos=u,115}else if(Nn(l)){++a;break}let o=a;return a+=Fr(l),this.error(1127,this.range(o,a)),this.pos=a,120}}}return this.pos=a,121}peek(e=0,t=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,t);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 t=this.pos,n=this.nextTokenPos;t<n;++t)if(Ut(e.charCodeAt(t)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(115,e)}skip(e,t=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(t,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=Wc;return e?(Wc=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Ul(this.pos,this.token,this.tokenPos),e}discard(e){Wc=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,t=-1){e<0?(e=this.tokenPos,t=this.pos):t<0&&(t=e);let n=new ce(e,t);return n.source=this.source,n}readIdentifier(){let e=this.source.text,t=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(vi(a));(n+=Fr(a))<t&&Ei(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,t=!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(t),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(Ut(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 t=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&&ct(s.charCodeAt(this.pos))?(++this.pos,s.substring(t,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?t:-1)):this.readUnicodeEscape(e?t:-1);case 120:return this.readHexadecimalEscape(2,e?t:-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,t=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(t,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(Ut(a)){this.error(1161,this.range(t,this.pos));break}++this.pos,s=!1}return e.substring(t,this.pos)}readRegexpFlags(){let e=this.source.text,t=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!Ei(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(t,this.pos)),e.substring(t,this.pos)}testInteger(){let e=this.source.text,t=this.pos,n=this.end;if(t+1<n&&e.charCodeAt(t)==48)switch(e.charCodeAt(t+2)|32){case 120:case 98:case 111:return!0}for(;t<n;){let s=e.charCodeAt(t);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;t++}return!0}readInteger(){let e=this.source.text,t=this.pos;if(t+2<this.end&&e.charCodeAt(t)==48){switch(e.charCodeAt(t+1)|32){case 120:return this.pos=t+2,this.readHexInteger();case 98:return this.pos=t+2,this.readBinaryInteger();case 111:return this.pos=t+2,this.readOctalInteger()}if(Ra(e.charCodeAt(t+1))){let n=t;this.pos=t+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(4),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(Gn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readDecimalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(10),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==t?this.error(a==s?6188:6189,this.range(t)):t-1==s&&e.charCodeAt(t-1)==48&&this.error(6188,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s,t),this.source.text.substring(s,t)),this.pos=t,l}readOctalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(3),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(Ra(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readBinaryInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=l,u=!1;for(;t<n;){let p=e.charCodeAt(t);if(p==48)o=i64_shl(l,i64_one);else if(p==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(p==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt(l,o)&&(u=!0),l=o,++t}return t==s?this.error(1177,this.range(s)):a==t?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,t=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<t&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<t){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<t&&(l=e.charCodeAt(this.pos))==45||l==43&&ct(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 t=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=t.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&t.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!ct(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,t=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(ct(o))n=(n<<4)+o-48;else if(Gn(o))n=(n<<4)+(o|32)+-87;else return~t?(this.pos=--a,s.substring(t,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~t?s.substring(t,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&vi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let t=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(t,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(t,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(t,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Ul=class{constructor(i,e,t){this.pos=i;this.token=e;this.tokenPos=t}},Wc=null;var N;(S=>(S.None=0,S.Unreachable=1,S.I32=2,S.I64=3,S.F32=4,S.F64=5,S.V128=6,S.Funcref=D_(),S.Externref=G_(),S.Anyref=z_(),S.Eqref=U_(),S.Structref=O_(),S.Arrayref=q_(),S.I31ref=V_(),S.Stringref=W_(),S.Noneref=j_(),S.Nofuncref=H_(),S.Noexternref=K_()))(N||={});var Te;(m=>{m.Extern=8,m.Func=16,m.Any=32,m.Eq=40,m.I31=48,m.Struct=56,m.Array=64,m.Exn=7,m.String=80,m.None=88,m.Noextern=96,m.Nofunc=104;function f(T){return Q_(T)}m.isBottom=f;function d(T){return X_(T)}m.getBottom=d;function h(T,S){return J_(T,S)}m.isSubtype=h;function g(T,S){if(T==S)return T;if(d(T)!=d(S))return-1;if(f(T))return S;if(f(S))return T;if(T>S){let v=T;T=S,S=v}switch(T){case m.Extern:return S==m.String?T:-1;case m.Func:return-1;case m.Any:return T;case m.Eq:return S==m.I31||S==m.Struct||S==m.Array?m.Eq:m.Any;case m.I31:return S==m.Struct||S==m.Array?m.Eq:m.Any;case m.Struct:return S==m.Array?m.Eq:m.Any;case m.Array:return m.Any}return assert(!1),-1}m.leastUpperBound=g})(Te||={});var Kn;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(Kn||={});var Qc;(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})(Qc||={});var Xc=(O=>(O[O.MVP=0]="MVP",O[O.Atomics=1]="Atomics",O[O.MutableGlobals=2]="MutableGlobals",O[O.TruncSat=4]="TruncSat",O[O.SIMD=8]="SIMD",O[O.BulkMemory=16]="BulkMemory",O[O.SignExt=32]="SignExt",O[O.ExceptionHandling=64]="ExceptionHandling",O[O.TailCall=128]="TailCall",O[O.ReferenceTypes=256]="ReferenceTypes",O[O.MultiValue=512]="MultiValue",O[O.GC=1024]="GC",O[O.Memory64=2048]="Memory64",O[O.RelaxedSIMD=4096]="RelaxedSIMD",O[O.ExtendedConst=8192]="ExtendedConst",O[O.Strings=16384]="Strings",O[O.MultiMemory=32768]="MultiMemory",O[O.StackSwitching=65536]="StackSwitching",O[O.SharedEverything=131072]="SharedEverything",O[O.FP16=262144]="FP16",O[O.BulkMemoryOpt=524288]="BulkMemoryOpt",O[O.CallIndirectOverlong=1048576]="CallIndirectOverlong",O[O.RelaxedAtomics=4194304]="RelaxedAtomics",O[O.CustomPageSizes=8388608]="CustomPageSizes",O[O.Multibyte=16777216]="Multibyte",O[O.WideArithmetic=33554432]="WideArithmetic",O[O.All=67108863]="All",O))(Xc||{}),Mr=(M=>(M[M.Invalid=0]="Invalid",M[M.Block=1]="Block",M[M.If=2]="If",M[M.Loop=3]="Loop",M[M.Break=4]="Break",M[M.Switch=5]="Switch",M[M.Call=6]="Call",M[M.CallIndirect=7]="CallIndirect",M[M.LocalGet=8]="LocalGet",M[M.LocalSet=9]="LocalSet",M[M.GlobalGet=10]="GlobalGet",M[M.GlobalSet=11]="GlobalSet",M[M.Load=12]="Load",M[M.Store=13]="Store",M[M.Const=14]="Const",M[M.Unary=15]="Unary",M[M.Binary=16]="Binary",M[M.Select=17]="Select",M[M.Drop=18]="Drop",M[M.Return=19]="Return",M[M.MemorySize=20]="MemorySize",M[M.MemoryGrow=21]="MemoryGrow",M[M.Nop=22]="Nop",M[M.Unreachable=23]="Unreachable",M[M.AtomicRMW=24]="AtomicRMW",M[M.AtomicCmpxchg=25]="AtomicCmpxchg",M[M.AtomicWait=26]="AtomicWait",M[M.AtomicNotify=27]="AtomicNotify",M[M.AtomicFence=28]="AtomicFence",M[M.Pause=29]="Pause",M[M.SIMDExtract=30]="SIMDExtract",M[M.SIMDReplace=31]="SIMDReplace",M[M.SIMDShuffle=32]="SIMDShuffle",M[M.SIMDTernary=33]="SIMDTernary",M[M.SIMDShift=34]="SIMDShift",M[M.SIMDLoad=35]="SIMDLoad",M[M.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",M[M.MemoryInit=37]="MemoryInit",M[M.DataDrop=38]="DataDrop",M[M.MemoryCopy=39]="MemoryCopy",M[M.MemoryFill=40]="MemoryFill",M[M.Pop=41]="Pop",M[M.RefNull=42]="RefNull",M[M.RefIsNull=43]="RefIsNull",M[M.RefFunc=44]="RefFunc",M[M.RefEq=45]="RefEq",M[M.TableGet=46]="TableGet",M[M.TableSet=47]="TableSet",M[M.TableSize=48]="TableSize",M[M.TableGrow=49]="TableGrow",M[M.TableFill=50]="TableFill",M[M.TableCopy=51]="TableCopy",M[M.TableInit=52]="TableInit",M[M.ElemDrop=53]="ElemDrop",M[M.Try=54]="Try",M[M.TryTable=55]="TryTable",M[M.Throw=56]="Throw",M[M.Rethrow=57]="Rethrow",M[M.ThrowRef=58]="ThrowRef",M[M.TupleMake=59]="TupleMake",M[M.TupleExtract=60]="TupleExtract",M[M.RefI31=61]="RefI31",M[M.I31Get=62]="I31Get",M[M.CallRef=63]="CallRef",M[M.RefTest=64]="RefTest",M[M.RefCast=65]="RefCast",M[M.RefGetDesc=66]="RefGetDesc",M[M.BrOn=67]="BrOn",M[M.StructNew=68]="StructNew",M[M.StructGet=69]="StructGet",M[M.StructSet=70]="StructSet",M[M.StructRMW=71]="StructRMW",M[M.StructCmpxchg=72]="StructCmpxchg",M[M.ArrayNew=73]="ArrayNew",M[M.ArrayNewData=74]="ArrayNewData",M[M.ArrayNewElem=75]="ArrayNewElem",M[M.ArrayNewFixed=76]="ArrayNewFixed",M[M.ArrayGet=77]="ArrayGet",M[M.ArraySet=78]="ArraySet",M[M.ArrayLoad=79]="ArrayLoad",M[M.ArrayStore=80]="ArrayStore",M[M.ArrayLen=81]="ArrayLen",M[M.ArrayCopy=82]="ArrayCopy",M[M.ArrayFill=83]="ArrayFill",M[M.ArrayInitData=84]="ArrayInitData",M[M.ArrayInitElem=85]="ArrayInitElem",M[M.ArrayRMW=86]="ArrayRMW",M[M.ArrayCmpxchg=87]="ArrayCmpxchg",M[M.RefAs=88]="RefAs",M[M.StringNew=89]="StringNew",M[M.StringConst=90]="StringConst",M[M.StringMeasure=91]="StringMeasure",M[M.StringEncode=92]="StringEncode",M[M.StringConcat=93]="StringConcat",M[M.StringEq=94]="StringEq",M[M.StringTest=95]="StringTest",M[M.StringWTF16Get=96]="StringWTF16Get",M[M.StringSliceWTF=97]="StringSliceWTF",M[M.ContNew=98]="ContNew",M[M.ContBind=99]="ContBind",M[M.Suspend=100]="Suspend",M[M.Resume=101]="Resume",M[M.ResumeThrow=102]="ResumeThrow",M[M.StackSwitch=103]="StackSwitch",M[M.StructWait=104]="StructWait",M[M.StructNotify=105]="StructNotify",M[M.WideIntAddSub=106]="WideIntAddSub",M[M.WideIntMul=107]="WideIntMul",M))(Mr||{}),Jc=(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))(Jc||{}),Ag=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Ag||{}),Qn=(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))(Qn||{}),Ni=(A=>(A[A.AddI32=0]="AddI32",A[A.SubI32=1]="SubI32",A[A.MulI32=2]="MulI32",A[A.DivI32=3]="DivI32",A[A.DivU32=4]="DivU32",A[A.RemI32=5]="RemI32",A[A.RemU32=6]="RemU32",A[A.AndI32=7]="AndI32",A[A.OrI32=8]="OrI32",A[A.XorI32=9]="XorI32",A[A.ShlI32=10]="ShlI32",A[A.ShrI32=11]="ShrI32",A[A.ShrU32=12]="ShrU32",A[A.RotlI32=13]="RotlI32",A[A.RotrI32=14]="RotrI32",A[A.EqI32=15]="EqI32",A[A.NeI32=16]="NeI32",A[A.LtI32=17]="LtI32",A[A.LtU32=18]="LtU32",A[A.LeI32=19]="LeI32",A[A.LeU32=20]="LeU32",A[A.GtI32=21]="GtI32",A[A.GtU32=22]="GtU32",A[A.GeI32=23]="GeI32",A[A.GeU32=24]="GeU32",A[A.AddI64=25]="AddI64",A[A.SubI64=26]="SubI64",A[A.MulI64=27]="MulI64",A[A.DivI64=28]="DivI64",A[A.DivU64=29]="DivU64",A[A.RemI64=30]="RemI64",A[A.RemU64=31]="RemU64",A[A.AndI64=32]="AndI64",A[A.OrI64=33]="OrI64",A[A.XorI64=34]="XorI64",A[A.ShlI64=35]="ShlI64",A[A.ShrI64=36]="ShrI64",A[A.ShrU64=37]="ShrU64",A[A.RotlI64=38]="RotlI64",A[A.RotrI64=39]="RotrI64",A[A.EqI64=40]="EqI64",A[A.NeI64=41]="NeI64",A[A.LtI64=42]="LtI64",A[A.LtU64=43]="LtU64",A[A.LeI64=44]="LeI64",A[A.LeU64=45]="LeU64",A[A.GtI64=46]="GtI64",A[A.GtU64=47]="GtU64",A[A.GeI64=48]="GeI64",A[A.GeU64=49]="GeU64",A[A.AddF32=50]="AddF32",A[A.SubF32=51]="SubF32",A[A.MulF32=52]="MulF32",A[A.DivF32=53]="DivF32",A[A.CopysignF32=54]="CopysignF32",A[A.MinF32=55]="MinF32",A[A.MaxF32=56]="MaxF32",A[A.EqF32=57]="EqF32",A[A.NeF32=58]="NeF32",A[A.LtF32=59]="LtF32",A[A.LeF32=60]="LeF32",A[A.GtF32=61]="GtF32",A[A.GeF32=62]="GeF32",A[A.AddF64=63]="AddF64",A[A.SubF64=64]="SubF64",A[A.MulF64=65]="MulF64",A[A.DivF64=66]="DivF64",A[A.CopysignF64=67]="CopysignF64",A[A.MinF64=68]="MinF64",A[A.MaxF64=69]="MaxF64",A[A.EqF64=70]="EqF64",A[A.NeF64=71]="NeF64",A[A.LtF64=72]="LtF64",A[A.LeF64=73]="LeF64",A[A.GtF64=74]="GtF64",A[A.GeF64=75]="GeF64",A[A.EqI8x16=76]="EqI8x16",A[A.NeI8x16=77]="NeI8x16",A[A.LtI8x16=78]="LtI8x16",A[A.LtU8x16=79]="LtU8x16",A[A.GtI8x16=80]="GtI8x16",A[A.GtU8x16=81]="GtU8x16",A[A.LeI8x16=82]="LeI8x16",A[A.LeU8x16=83]="LeU8x16",A[A.GeI8x16=84]="GeI8x16",A[A.GeU8x16=85]="GeU8x16",A[A.EqI16x8=86]="EqI16x8",A[A.NeI16x8=87]="NeI16x8",A[A.LtI16x8=88]="LtI16x8",A[A.LtU16x8=89]="LtU16x8",A[A.GtI16x8=90]="GtI16x8",A[A.GtU16x8=91]="GtU16x8",A[A.LeI16x8=92]="LeI16x8",A[A.LeU16x8=93]="LeU16x8",A[A.GeI16x8=94]="GeI16x8",A[A.GeU16x8=95]="GeU16x8",A[A.EqI32x4=96]="EqI32x4",A[A.NeI32x4=97]="NeI32x4",A[A.LtI32x4=98]="LtI32x4",A[A.LtU32x4=99]="LtU32x4",A[A.GtI32x4=100]="GtI32x4",A[A.GtU32x4=101]="GtU32x4",A[A.LeI32x4=102]="LeI32x4",A[A.LeU32x4=103]="LeU32x4",A[A.GeI32x4=104]="GeI32x4",A[A.GeU32x4=105]="GeU32x4",A[A.EqI64x2=106]="EqI64x2",A[A.NeI64x2=107]="NeI64x2",A[A.LtI64x2=108]="LtI64x2",A[A.GtI64x2=109]="GtI64x2",A[A.LeI64x2=110]="LeI64x2",A[A.GeI64x2=111]="GeI64x2",A[A.EqF32x4=118]="EqF32x4",A[A.NeF32x4=119]="NeF32x4",A[A.LtF32x4=120]="LtF32x4",A[A.GtF32x4=121]="GtF32x4",A[A.LeF32x4=122]="LeF32x4",A[A.GeF32x4=123]="GeF32x4",A[A.EqF64x2=124]="EqF64x2",A[A.NeF64x2=125]="NeF64x2",A[A.LtF64x2=126]="LtF64x2",A[A.GtF64x2=127]="GtF64x2",A[A.LeF64x2=128]="LeF64x2",A[A.GeF64x2=129]="GeF64x2",A[A.AndV128=130]="AndV128",A[A.OrV128=131]="OrV128",A[A.XorV128=132]="XorV128",A[A.AndnotV128=133]="AndnotV128",A[A.AddI8x16=134]="AddI8x16",A[A.AddSatI8x16=135]="AddSatI8x16",A[A.AddSatU8x16=136]="AddSatU8x16",A[A.SubI8x16=137]="SubI8x16",A[A.SubSatI8x16=138]="SubSatI8x16",A[A.SubSatU8x16=139]="SubSatU8x16",A[A.MinI8x16=140]="MinI8x16",A[A.MinU8x16=141]="MinU8x16",A[A.MaxI8x16=142]="MaxI8x16",A[A.MaxU8x16=143]="MaxU8x16",A[A.AvgrU8x16=144]="AvgrU8x16",A[A.AddI16x8=145]="AddI16x8",A[A.AddSatI16x8=146]="AddSatI16x8",A[A.AddSatU16x8=147]="AddSatU16x8",A[A.SubI16x8=148]="SubI16x8",A[A.SubSatI16x8=149]="SubSatI16x8",A[A.SubSatU16x8=150]="SubSatU16x8",A[A.MulI16x8=151]="MulI16x8",A[A.MinI16x8=152]="MinI16x8",A[A.MinU16x8=153]="MinU16x8",A[A.MaxI16x8=154]="MaxI16x8",A[A.MaxU16x8=155]="MaxU16x8",A[A.AvgrU16x8=156]="AvgrU16x8",A[A.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",A[A.ExtmulLowI16x8=158]="ExtmulLowI16x8",A[A.ExtmulHighI16x8=159]="ExtmulHighI16x8",A[A.ExtmulLowU16x8=160]="ExtmulLowU16x8",A[A.ExtmulHighU16x8=161]="ExtmulHighU16x8",A[A.AddI32x4=162]="AddI32x4",A[A.SubI32x4=163]="SubI32x4",A[A.MulI32x4=164]="MulI32x4",A[A.MinI32x4=165]="MinI32x4",A[A.MinU32x4=166]="MinU32x4",A[A.MaxI32x4=167]="MaxI32x4",A[A.MaxU32x4=168]="MaxU32x4",A[A.DotI16x8=169]="DotI16x8",A[A.ExtmulLowI32x4=170]="ExtmulLowI32x4",A[A.ExtmulHighI32x4=171]="ExtmulHighI32x4",A[A.ExtmulLowU32x4=172]="ExtmulLowU32x4",A[A.ExtmulHighU32x4=173]="ExtmulHighU32x4",A[A.AddI64x2=174]="AddI64x2",A[A.SubI64x2=175]="SubI64x2",A[A.MulI64x2=176]="MulI64x2",A[A.ExtmulLowI64x2=177]="ExtmulLowI64x2",A[A.ExtmulHighI64x2=178]="ExtmulHighI64x2",A[A.ExtmulLowU64x2=179]="ExtmulLowU64x2",A[A.ExtmulHighU64x2=180]="ExtmulHighU64x2",A[A.AddF32x4=189]="AddF32x4",A[A.SubF32x4=190]="SubF32x4",A[A.MulF32x4=191]="MulF32x4",A[A.DivF32x4=192]="DivF32x4",A[A.MinF32x4=193]="MinF32x4",A[A.MaxF32x4=194]="MaxF32x4",A[A.PminF32x4=195]="PminF32x4",A[A.PmaxF32x4=196]="PmaxF32x4",A[A.AddF64x2=197]="AddF64x2",A[A.SubF64x2=198]="SubF64x2",A[A.MulF64x2=199]="MulF64x2",A[A.DivF64x2=200]="DivF64x2",A[A.MinF64x2=201]="MinF64x2",A[A.MaxF64x2=202]="MaxF64x2",A[A.PminF64x2=203]="PminF64x2",A[A.PmaxF64x2=204]="PmaxF64x2",A[A.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",A[A.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",A[A.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",A[A.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",A[A.SwizzleI8x16=209]="SwizzleI8x16",A[A.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",A[A.RelaxedMinF32x4=211]="RelaxedMinF32x4",A[A.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",A[A.RelaxedMinF64x2=213]="RelaxedMinF64x2",A[A.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",A[A.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",A[A.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",A[A._last=216]="_last",A[A.AddSize=217]="AddSize",A[A.SubSize=218]="SubSize",A[A.MulSize=219]="MulSize",A[A.DivISize=220]="DivISize",A[A.DivUSize=221]="DivUSize",A[A.RemISize=222]="RemISize",A[A.RemUSize=223]="RemUSize",A[A.AndSize=224]="AndSize",A[A.OrSize=225]="OrSize",A[A.XorSize=226]="XorSize",A[A.ShlSize=227]="ShlSize",A[A.ShrISize=228]="ShrISize",A[A.ShrUSize=229]="ShrUSize",A[A.RotlSize=230]="RotlSize",A[A.RotrSize=231]="RotrSize",A[A.EqSize=232]="EqSize",A[A.NeSize=233]="NeSize",A[A.LtISize=234]="LtISize",A[A.LtUSize=235]="LtUSize",A[A.LeISize=236]="LeISize",A[A.LeUSize=237]="LeUSize",A[A.GtISize=238]="GtISize",A[A.GtUSize=239]="GtUSize",A[A.GeISize=240]="GeISize",A[A.GeUSize=241]="GeUSize",A))(Ni||{}),Zc=(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))(Zc||{}),Yc=(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))(Yc||{}),$c=(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))($c||{}),ep=(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))(ep||{}),tp=(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))(tp||{}),rp=(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))(rp||{}),ip=(p=>(p[p.Bitselect=0]="Bitselect",p[p.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",p[p.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",p[p.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",p[p.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",p[p.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",p[p.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",p[p.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",p[p.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",p[p.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",p))(ip||{}),vg=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(vg||{}),Eg=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Eg||{}),Sg=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(Sg||{}),Ig=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Ig||{}),kg=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(kg||{}),Rg=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Rg||{}),Fg=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Fg||{}),wg=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(wg||{}),Wl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Wl||{}),Li=class{constructor(i,e){this.buffer=i;this.offset=e}},Ot=class r{constructor(i,e,t){this.ref=i;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==N.I32||t==N.I64),this.lit=gt(wo())}static create(i,e){return new r(Y_(),i,e)}static createFrom(i,e,t){let n=jn(i),s=new r(oy(n,i.length),e,t);return ie(changetype(n)),s}i32(i){let e=this.lit;return ef(e,i),ui(this.ref,e)}i64(i,e=0){let t=this.lit;return og(t,i64_new(i,e)),ui(this.ref,t)}usize(i){return i64_is(i)?this.sizeType==N.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==N.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return tf(e,i),ui(this.ref,e)}f64(i){let e=this.lit;return rf(e,i),ui(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let t=0;t<16;++t)ze(e+t,unchecked(i[t]));return nf(e,e),ui(this.ref,e)}ref_null(i){return ah(this.ref,i)}ref_eq(i,e){return _h(this.ref,i,e)}string_eq(i,e){return pc(this.ref,0,i,e)}string_compare(i,e){return pc(this.ref,1,i,e)}unary(i,e){if(i>141){let t=this.sizeType==N.I64;switch(i){case 142:i=t?1:0;break;case 143:i=t?3:2;break;case 144:i=t?5:4;break;case 145:i=t?21:20;break;default:assert(!1)}}return Zf(this.ref,i,e)}binary(i,e,t){if(i>216){let n=this.sizeType==N.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 rd(this.ref,i,e,t)}wide_int_add_sub(i,e,t,n,s){return ed(this.ref,i,e,t,n,s)}wide_int_mul(i,e,t){return td(this.ref,i,e,t)}memory_size(i=P.DefaultMemory,e=!1){let t=this.allocStringCached(i);return Nf(this.ref,t,e)}memory_grow(i,e=P.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Mf(this.ref,i,n,t)}table_size(i){let e=this.allocStringCached(i);return yh(this.ref,e)}table_grow(i,e,t=0){let n=this.allocStringCached(i);return gh(this.ref,n,t,e)}local_get(i,e){return Ff(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=Mt(i);return assert(e==N.I32||e==N.Unreachable),this.call(y.tostack,[i],e)}return i}local_tee(i,e,t,n=-1){return n==-1&&(n=Mt(e)),t&&this.useShadowStack&&(e=this.tostack(e)),wf(this.ref,i,e,n)}global_get(i,e){let t=this.allocStringCached(i);return Cf(this.ref,t,e)}table_get(i,e,t){let n=this.allocStringCached(i);return hh(this.ref,n,e,t)}load(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Gf(this.ref,i,e,s,a,n,t,o)}store(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Wf(this.ref,i,s,a,e,t,n,o)}atomic_load(i,e,t,n=0,s=P.DefaultMemory,a=1){let l=this.allocStringCached(s);return qf(this.ref,i,n,t,e,l,a)}atomic_store(i,e,t,n,s=0,a=P.DefaultMemory,l=1){let o=this.allocStringCached(a);return Kf(this.ref,i,s,e,t,n,o,l)}atomic_rmw(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return dd(this.ref,i,e,t,n,s,a,u,o)}atomic_cmpxchg(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return yd(this.ref,i,e,t,n,s,a,u,o)}atomic_wait(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Td(this.ref,i,e,t,n,a)}atomic_notify(i,e,t=P.DefaultMemory){let n=this.allocStringCached(t);return Sd(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Rd(this.ref,e)}local_set(i,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),gn(this.ref,i,e)}global_set(i,e){let t=this.allocStringCached(i);return Pf(this.ref,t,e)}table_set(i,e,t){let n=this.allocStringCached(i);return mh(this.ref,n,e,t)}block(i,e,t=N.None){let n=this.allocStringCached(i),s=he(e),a=lf(this.ref,n,s,e.length,t);return ie(s),a}flatten(i,e=N.None){let t=i.length;if(t==0)return this.nop();if(t==1){let n=i[0];switch(re(n)){case 19:case 56:case 23:return n}let s=le(n);return s!=N.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,t=0){let n=this.allocStringCached(i);return hf(this.ref,n,e,t)}drop(i){return Mo(this.ref,i)}maybeDrop(i){let e=Mt(i);return e!=N.None&&e!=N.Unreachable?Mo(this.ref,i):i}maybeDropCondition(i,e){return(Gi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],le(e)):e}loop(i,e){let t=this.allocStringCached(i);return ff(this.ref,t,e)}if(i,e,t=0){return uf(this.ref,i,e,t)}nop(){return _d(this.ref)}return(i=0){return pd(this.ref,i)}select(i,e,t){return ad(this.ref,t,i,e)}switch(i,e,t,n=0){let s=i.length,a=new Array(s);for(let p=0;p<s;++p)unchecked(a[p]=this.allocStringCached(i[p]));let l=he(a),o=this.allocStringCached(e),u=gf(this.ref,l,s,o,t,n);return ie(l),u}call(i,e,t,n=!1){let s=this.allocStringCached(i),a=he(e),l=n?Sf(this.ref,s,a,e?e.length:0,t):Ef(this.ref,s,a,e?e.length:0,t);return ie(a),l}return_call(i,e,t){return this.call(i,e,t,!0)}call_indirect(i,e,t,n,s,a=!1){let l=this.allocStringCached(i??P.DefaultTable),o=he(t),u=a?Rf(this.ref,l,e,o,t?t.length:0,n,s):If(this.ref,l,e,o,t?t.length:0,n,s);return ie(o),u}return_call_indirect(i,e,t,n,s){return this.call_indirect(i,e,t,n,s,!0)}unreachable(){return fd(this.ref)}memory_copy(i,e,t,n=P.DefaultMemory,s=P.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return Yd(this.ref,i,e,t,a,l)}memory_fill(i,e,t,n=P.DefaultMemory){let s=this.allocStringCached(n);return rh(this.ref,i,e,t,s)}try(i,e,t,n,s=null){let a=t.length,l=new Array(a);for(let d=0;d<a;++d)l[d]=this.allocStringCached(t[d]);let o=he(l),u=he(n),p=this.allocStringCached(i),_=this.allocStringCached(s),f=bh(this.ref,p,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let t=this.allocStringCached(i),n=he(e),s=Ah(this.ref,t,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return Sh(this.ref,e)}pop(i){return wh(this.ref,i)}tuple_make(i){let e=he(i),t=Ih(this.ref,e,i.length);return ie(e),t}tuple_extract(i,e){return Rh(this.ref,i,e)}simd_extract(i,e,t){return Fd(this.ref,i,e,t)}simd_replace(i,e,t,n){return Cd(this.ref,i,e,t,n)}simd_shuffle(i,e,t){assert(t.length==16);let n=jn(t),s=Ld(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,t,n){return Dd(this.ref,i,e,t,n)}simd_shift(i,e,t){return Vd(this.ref,i,e,t)}simd_load(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Wd(this.ref,i,t,n,e,a)}simd_loadstorelane(i,e,t,n,s,a,l=P.DefaultMemory){let o=this.allocStringCached(l);return Kd(this.ref,i,t,n,s,e,a,o)}ref_is_null(i){return lh(this.ref,i)}ref_as(i,e){return mu(this.ref,i,e)}ref_as_nonnull(i){return Cg(le(i))?mu(this.ref,0,i):i}ref_func(i,e){let t=this.allocStringCached(i);return ch(this.ref,t,$t(e))}i31_new(i){return Ch(this.ref,i)}i31_get(i,e){return Bh(this.ref,i,e)}addGlobal(i,e,t,n){let s=this.allocStringCached(i);return Gm(this.ref,s,e,t,n)}getGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)?(zm(this.ref,e),!0):!1}addTag(i,e,t){let n=this.allocStringCached(i);return jm(this.ref,n,e,t)}getTag(i){let e=this.allocStringCached(i);return Km(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);Hm(this.ref,e)}addFunction(i,e,t,n,s){let a=this.allocStringCached(i),l=he(n),o=ci(this.ref,a,e,t,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,t){vm(i,e,this.allocStringCached(t))}getFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);Fn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)!=0}addTemporaryFunction(i,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=he(e),a=ci(this.ref,n,Ye(e),i,0,0,t);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");Fn(this.ref,i)}setStart(i){ty(this.ref,i)}addFunctionExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return _a(this.ref,t,n)}addTableExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Cm(this.ref,t,n)}addMemoryExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Pm(this.ref,t,n)}addGlobalExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Bm(this.ref,t,n)}addTagExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Lm(this.ref,t,n)}removeExport(i){let e=this.allocStringCached(i);da(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return fa(this.ref,e)!=0}addFunctionImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Im(this.ref,a,l,o,n,s)}addTableImport(i,e,t){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(t);km(this.ref,n,s,a)}addMemoryImport(i,e,t,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(t);Rm(this.ref,s,a,l,n)}addGlobalImport(i,e,t,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Fm(this.ref,a,l,o,n,s)}addTagImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);wm(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,t,n,s=null,a=P.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),p=t.length,_=new Array(p),f=new Uint8Array(p),d=new Array(p),h=new Array(p);for(let v=0;v<p;++v){let F=unchecked(t[v]),k=F.buffer,R=F.offset;unchecked(_[v]=jn(k)),unchecked(f[v]=0),unchecked(d[v]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(h[v]=k.length)}let g=he(_),m=jn(f),T=he(d),S=Hc(h);ey(this.ref,i,e,o,0,g,m,T,S,p,l,!1,u),ie(S),ie(T),ie(m),ie(g);for(let v=p-1;v>=0;--v)ie(unchecked(_[v]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,t,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=he(o),p=Ac(this.ref,a);p?(Zm(p,e),Ym(p,t)):p=Tc(this.ref,a,e,t,N.Funcref),$m(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);Ac(this.ref,e)||Tc(this.ref,e,0,r.UNLIMITED_TABLE,N.Funcref)}addCustomSection(i,e){let t=this.allocStringCached(i),n=jn(e);dy(this.ref,t,n,e.length),ie(n)}getOptimizeLevel(){return Cy()}setOptimizeLevel(i){Py(i)}getShrinkLevel(){return By()}setShrinkLevel(i){Ly(i)}getDebugInfo(){return Ny()}setDebugInfo(i){My(i)}getTrapsNeverHappen(){return Dy()}setTrapsNeverHappen(i){Gy(i)}getClosedWorld(){return zy()}setClosedWorld(i){Uy(i)}getLowMemoryUnused(){return Vy()}setLowMemoryUnused(i){Oy(i)}getZeroFilledMemory(){return qy()}setZeroFilledMemory(i){Wy(i)}getFastMath(){return jy()}setFastMath(i){Ky(i)}getGenerateStackIR(){return Hy()}setGenerateStackIR(i){Qy(i)}getOptimizeStackIR(){return Xy()}setOptimizeStackIR(i){Jy(i)}getPassArgument(i){let e=this.allocStringCached(i),t=Zy(e);return t?He(t):null}setPassArgument(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);Yy(t,n)}clearPassArguments(){$y()}getAlwaysInlineMaxSize(){return eg()}setAlwaysInlineMaxSize(i){tg(i)}getFlexibleInlineMaxSize(){return rg()}setFlexibleInlineMaxSize(i){ig(i)}getOneCallerInlineMaxSize(){return ng()}setOneCallerInlineMaxSize(i){sg(i)}getAllowInliningFunctionsWithLoops(){return ag()}setAllowInliningFunctionsWithLoops(i){lg(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return _y(this.ref)}setFeatures(i){i&16&&(i|=524288),fy(this.ref,i)}runPasses(i,e=0){let t=i.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Vl(i[a]);let s=he(n);e?Em(e,this.ref,s,t):iy(this.ref,s,t),ie(s);for(let a=t-1;a>=0;--a)ie(n[a])}optimize(i,e,t=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(t),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 ry(this.ref)==1}interpret(){uy(this.ref)}toBinary(i=null){assert(wo()>=ny());let e=this.lit,t=Vl(i);sy(e,this.ref,t);let n=rr(e+0),s=rr(e+4),a=rr(e+8),l=new ql(R1(assert(n),s),He(a));return t&&ie(t),a&&ie(a),ie(n),l}toText(i=!0){let e=i?ly(this.ref):ay(this.ref),t=He(e);return e&&ie(e),t||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let t=Vl(i);return e.set(i,t),t}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let t=He(i);return e.set(i,t),t}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),$_(this.ref),this.ref=0}createRelooper(){return Ol.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Nt(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return sf(i,this.ref)}runExpression(i,e,t=50,n=1){let s=Ay(this.ref,e,t,n),a=vy(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(le(a)==le(i))}return a}isConstExpression(i){switch(re(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Mi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(et(i))&&this.isConstExpression(qe(i))}break}}return!1}addDebugInfoFile(i){let e=Vl(i),t=cy(this.ref,e);return ie(e),t}getDebugInfoFile(i){return He(py(this.ref,i))}setDebugLocation(i,e,t,n,s){Sm(i,e,t,n,s)}};function Ye(r){if(!r)return N.None;switch(r.length){case 0:return N.None;case 1:return r[0]}let i=he(r),e=B_(i,r.length);return ie(i),e}function np(r){let i=L_(r),e=gt(i<<2);N_(r,e);let t=new Array(i);for(let n=0;n<i;++n)unchecked(t[n]=rr(e+(n<<2)));return ie(e),t}function Cg(r){return M_(r)}function re(r){return Nt(r)}function le(r){return Mt(r)}function ne(r){return Hf(r)}function Ie(r){return i64_low(Ic(r))}function Ne(r){return i64_high(Ic(r))}function sp(r,i){let e=0,t=0;return i?(e=Ie(r),t=Ne(r)):e=ne(r),i64_new(e,t)}function Ee(r){return Qf(r)}function Se(r){return Xf(r)}function ap(r){let i=gt(16);Jf(r,i);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Ir(i+t);return ie(i),e}function $e(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)==0:i==N.I64?(Ie(r)|Ne(r))==0:i==N.F32?Ee(r)==0:i==N.F64?Se(r)==0:!1}function dt(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)!=0:i==N.I64?(Ie(r)|Ne(r))!=0:i==N.F32?Ee(r)!=0:i==N.F64?Se(r)!=0:!1}function jl(r){if(re(r)!=14)return!1;let i=le(r);if(i==N.F32){let e=Ee(r);return e==0&&f32_as_i32(e)<0}if(i==N.F64){let e=Se(r);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function t1(r){if(re(r)!=14)return!1;let i=le(r);return i==N.F32?isNaN(Ee(r)):i==N.F64?isNaN(Se(r)):!1}function Kl(r,i){let e=re(i),t=le(i);if(t==N.F32||t==N.F64){if(e==14)return isNaN(t==N.F32?Ee(i):Se(i));if(e==10){let n=r.runExpression(i,0,8);if(n)return isNaN(t==N.F32?Ee(n):Se(n))}}return!1}function Tt(r){return ra(r)}function Hl(r){return oi(r)}function Ql(r){return vr(r)}function Xn(r){return ia(r)}function Jn(r){return He(sa(r))}function Mi(r){return id(r)}function et(r){return vn(r)}function qe(r){return En(r)}function Zn(r){return Yf(r)}function Xl(r){return An(r)}function lp(r){return Vf(r)}function r1(r){return Uf(r)}function i1(r){return xn(r)}function op(r){return zf(r)}function n1(r){return aa(r)}function s1(r){return la(r)}function a1(r){return Er(r)}function l1(r){return Tn(r)}function Yn(r){return He(Zs(r))}function $n(r){return un(r)}function es(r,i){return cn(r,i)}function Jl(r){return pn(r)}function ts(r){return _n(r)}function Di(r){return fn(r)}function o1(r){return He(Ys(r))}function u1(r){return dn(r)}function c1(r){return He($s(r))}function p1(r){return hn(r)}function up(r){return Sn(r)}function cp(r){return In(r)}function _1(r){return kn(r)}function f1(r){return Rn(r)}function d1(r){return Sr(r)}function rs(r){return He(li(r))}function At(r){return er(r)}function Qe(r,i){return tr(r,i)}function h1(r){return bn(r)}function m1(r){return Dt(r)}function pp(r){return He(fi(r))}function y1(r){return Cn(r)}function g1(r){return Pn(r)}function b1(r){let i=ca(r),e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=pa(r,t));return e}function x1(r){return He(Om(r))}function T1(r){return qm(r)}function _p(r){return Wm(r)}function A1(r){return ha(r)}function v1(r){return He(Qm(r))}function E1(r){return Xm(r)}function S1(r){return Jm(r)}var Ol=class r{constructor(i,e){this.module=i;this.ref=e}static create(i){return new r(i,my(i.ref))}addBlock(i){return yy(this.ref,i)}addBranch(i,e,t=0,n=0){gy(i,e,t,n)}addBlockWithSwitch(i,e){return by(this.ref,i,e)}addBranchForSwitch(i,e,t,n=0){let s=I1(t);xy(i,e,s,t.length,n),ie(s)}renderAndDispose(i,e){return Ty(this.ref,i,e)}},Hn=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 t=this.values.indexOf(i),n=this.addCode(e);t>=0?this.indexes[t]=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,t=e.indexOf(i);return t<0&&(t=e.length,e.push(i)),t}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let t=this.module,n=this.cases,s=n.length;if(!s)return t.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),p=new Array(s);for(let g=0;g<s;++g)unchecked(p[g]=`case${g}${e}`);u[0]=t.local_set(i,this.condition,!1);for(let g=0;g<l;++g){let m=unchecked(o[g]);unchecked(u[1+g]=t.br(p[m],t.binary(15,t.local_get(i,N.I32),t.i32(a[g]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=t.br(~_?p[_]:f);let d=t.block(p[0],u);for(let g=1;g<s;++g){let m=n[g-1];m.unshift(d),d=t.block(unchecked(p[g]),m)}let h=n[s-1];return h.unshift(d),t.block(~_?null:f,h)}},fp=(T=>(T[T.None=0]="None",T[T.Branches=1]="Branches",T[T.Calls=2]="Calls",T[T.ReadsLocal=4]="ReadsLocal",T[T.WritesLocal=8]="WritesLocal",T[T.ReadsGlobal=16]="ReadsGlobal",T[T.WritesGlobal=32]="WritesGlobal",T[T.ReadsMemory=64]="ReadsMemory",T[T.WritesMemory=128]="WritesMemory",T[T.ReadsTable=256]="ReadsTable",T[T.WritesTable=512]="WritesTable",T[T.ImplicitTrap=1024]="ImplicitTrap",T[T.IsAtomic=2048]="IsAtomic",T[T.Throws=4096]="Throws",T[T.DanglingPop=8192]="DanglingPop",T[T.TrapsNeverHappen=16384]="TrapsNeverHappen",T[T.Any=32767]="Any",T))(fp||{});function Gi(r,i){return hy(r,i)}function Zl(r,i){return(Gi(r,i)&-21)!=0}function jn(r){if(!r)return 0;let i=r.length,e=gt(i);for(let t=0;t<i;++t)ze(e+t,unchecked(r[t]));return e}function I1(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ya(t,s),t+=4}return e}function Hc(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ya(t,s),t+=4}return e}function he(r){if(!r)return 0;assert(ASC_TARGET!=2);let i=r.length,e=gt(i<<2),t=e;for(let n=0,s=i;n<s;++n){let a=unchecked(r[n]);ya(t,a),t+=4}return e}function k1(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:Ai(n)&&e+1<t&&ka(r.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Vl(r){if(r==null)return 0;let i=k1(r),e=gt(i+1)>>>0,t=e;if(i==r.length)for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0;ze(t++,a)}else for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0,l;a<=127?ze(t++,a):a<=2047?(ze(t++,192|a>>>6),ze(t++,128|a&63)):Ai(a)&&n+1<s&&ka(l=r.charCodeAt(n+1))?(a=Dn(a,l),++n,ze(t++,240|a>>>18),ze(t++,128|a>>>12&63),ze(t++,128|a>>>6&63),ze(t++,128|a&63)):(ze(t++,224|a>>>12),ze(t++,128|a>>>6&63),ze(t++,128|a&63))}return ze(t,0),e}function R1(r,i){let e=new Uint8Array(i);for(let t=0;t<i;++t)unchecked(e[t]=Ir(r+t));return e}function He(r){if(!r)return null;let i=new Array,e,t,n,s;for(;e=Ir(r++);){if(!(e&128)){i.push(e);continue}if(t=Ir(r++)&63,(e&224)==192){i.push((e&31)<<6|t);continue}if(n=Ir(r++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Ir(r++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(Mn|a>>>10),i.push(Ti|a&1023)}}return String.fromCharCodes(i)}var ql=class{constructor(i,e){this.output=i;this.sourceMap=e}},Vt=!1;function is(r){if(r==c.void)return N.None;let i=Pg(r);if(i)return i;let e=r;if(r=r.nonNullableType,i=r.ref)return me($t(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Ey(0),n=new Map;ar(t,n,r);let s=ma(t),a=gt(max(4*s,8));if(!Ry(t,a,a,a+4)){let l=rr(a),o=rr(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Qc.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let p=l[o];assert(!p.is(512));let _=rr(a+4*o),f=me(_,!1);assert(!p.ref),p.ref=f,Vt&&console.log(` set ${p.toString()}`);let d=p.getClass();if(d){let h=d.program.module;Fy(h.ref,_,h.allocStringCached(d.internalName));let g=d.members;if(g){let m=Z_(_),T=0;for(let S=Map_values(g),v=0,F=S.length;v<F;++v){let k=S[v];if(k.kind!=10)continue;let R=k.instance;!R||!R.isField||wy(h.ref,_,T++,h.allocStringCached(R.name))}assert(m==T)}}}return ie(a),Vt&&console.log(` finalize ${r.toString()}`),i=assert(r.ref),me($t(i),e.is(512))}function Pg(r){switch(r.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return N.I32;case 4:case 9:return N.I64;case 5:case 10:{if(r.isInternalReference)break;return r.size==64?N.I64:N.I32}case 11:return N.F32;case 12:return N.F64;case 13:return N.V128;case 15:return me(Te.Func,r.is(512));case 14:return me(Te.Extern,r.is(512));case 16:return me(Te.Any,r.is(512));case 17:return me(Te.Eq,r.is(512));case 18:return me(Te.Struct,r.is(512));case 19:return me(Te.Array,r.is(512));case 20:return me(Te.I31,r.is(512));case 21:return me(Te.String,r.is(512));case 25:assert(!1)}return 0}function F1(r){switch(r.kind){case 0:case 1:case 6:return Kn.I8;case 2:case 7:return Kn.I16}return Kn.NotPacked}function ar(r,i,e){if(e==c.void)return N.None;let t=Pg(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(i.has(e))return Vt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Vt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=ar(r,i,a.type));let o=ma(r);vc(r,1),Vt&&console.log(` block [${o}]: ${e.toString()}`);let u=Ec(r,o);t=di(r,u,!1),i.set(e,t);let p=new Array,_=new Array,f=new Array,d=n.members;if(d)for(let T=Map_values(d),S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=10)continue;let k=F.instance;if(!k||!k.isField)continue;let R=k.type;Vt&&console.log(` field ${R.toString()}`),R.is(512)?p.push(di(r,$t(ar(r,i,R.nonNullableType)),!0)):p.push(ar(r,i,R)),_.push(F1(R)),f.push(1)}let h=he(p),g=Hc(_),m=Hc(f);return Vt&&console.log(` concretize [${o}]: ${e.toString()}`),Iy(r,o,h,g,m,p.length),a&&(Vt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),ky(r,o,$t(l))),ie(m),ie(g),ie(h),t}let s=e.getSignature();if(s){let a=ma(r);vc(r,1);let l=di(r,Ec(r,a),!1);i.set(e,l);let o=new Array,u=new Array,p=s.parameterTypes;for(let h=0,g=p.length;h<g;++h){let m=p[h];m.is(512)?o.push(di(r,$t(ar(r,i,m.nonNullableType)),!0)):o.push(ar(r,i,m))}let _=s.returnType;u.push(_==c.void?N.None:_.is(512)?di(r,$t(ar(r,i,_.nonNullableType)),!0):ar(r,i,_));let f;if(o.length>1){let h=he(o);f=Sc(r,h,o.length),ie(h)}else f=o.length?o[0]:N.None;let d;if(u.length>1){let h=he(u);d=Sc(r,h,u.length),ie(h)}else d=u[0];return Vt&&console.log(` concretize [${a}]: ${e.toString()}`),Sy(r,a,f,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var $l=(k=>(k[k.None=0]="None",k[k.Returns=1]="Returns",k[k.ReturnsWrapped=2]="ReturnsWrapped",k[k.ReturnsNonNull=4]="ReturnsNonNull",k[k.Throws=8]="Throws",k[k.Breaks=16]="Breaks",k[k.Continues=32]="Continues",k[k.AccessesThis=64]="AccessesThis",k[k.CallsSuper=128]="CallsSuper",k[k.Terminates=256]="Terminates",k[k.ConditionallyReturns=512]="ConditionallyReturns",k[k.ConditionallyThrows=1024]="ConditionallyThrows",k[k.ConditionallyBreaks=2048]="ConditionallyBreaks",k[k.ConditionallyContinues=4096]="ConditionallyContinues",k[k.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",k[k.MayReturnNonThis=16384]="MayReturnNonThis",k[k.UncheckedContext=32768]="UncheckedContext",k[k.CtorParamContext=65536]="CtorParamContext",k[k.InlineContext=131072]="InlineContext",k[k.AnyCategorical=511]="AnyCategorical",k[k.AnyConditional=15872]="AnyConditional",k))($l||{}),ns=(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))(ns||{}),dp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(dp||{}),hp=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(hp||{}),qt=class r{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 r(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let t=new r(i,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&t.set(32768),t}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 t=new r(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,i?t.flags&=-2065:t.breakLabel=this.breakLabel,e?t.flags&=-4129:t.continueLabel=this.continueLabel,t.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);t.thisFieldFlags=_e(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(i,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(i,e)}forkElse(i){let e=this.fork(),t=this.falseFlows;return t&&t.has(i)&&e.inherit(changetype(t.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(i,e)}addScopedTypeAlias(i,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let t=this.sourceFunction.parent;return t.kind==5?t.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 t=this.getTempLocal(e);t.name=i,t.internalName=Me(i,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,t.set(67108864),n.set(i,t),t}addScopedDummyLocal(i,e,t){let n=new Xe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,t.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,t,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(t<this.targetFunction.localsByIndex.length);let a=new Xe(i,t,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let t=assert(e.get(i));assert(t.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let t=e.scopedLocals;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let t=e.lookupLocal(i);if(t)return t;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let t=e;this.thisFieldFlags=new Map;let n=t.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!=t||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let t=this.thisFieldFlags;return t!=null&&t.has(i)?(changetype(t.get(i))&e)==e:!1}setThisFieldFlag(i,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(i)){let n=changetype(t.get(i));t.set(i,n|e)}else t.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,t=i.breakStack;return t?t.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.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,t=i.flags,n=0;e&1?n|=1:t&1?n|=512:n|=(e|t)&512,n|=e&t&2,n|=e&t&4,e&8?n|=8:t&8?n|=1024:n|=(e|t)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?t&32?n|=4096:n|=(e|t)&4096:n|=e&4096,e&64?t&64?n|=64:n|=8192:t&64&&(n|=8192),n|=(e|t)&16384,n|=e&t&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,t=e.length,n=i.localFlags,s=n.length,a=max(t,s);for(let l=0;l<a;++l){let o=l<t?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 t=i.flags,n=e.flags,s=0;t&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(t|n)&512,t&2&&n&2&&(s|=2),t&4&&n&4&&(s|=4),t&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(t|n)&1024,t&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(t|n)&2048,t&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(t|n)&4096,t&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(t|n)&8192,s|=(t|n)&16384,t&128&&n&128&&(s|=128),t&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(t&256){if(!(n&256)){let o=e.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,p=e.localFlags,_=p.length,f=max(u,_);for(let d=0;d<f;++d){let h=d<u?o[d]:0,g=d<_?p[d]:0;a[d]=h&g&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let p=Map_keys(l),_=0,f=p.length;_<f;++_){let d=p[_];(changetype(l.get(d))&1)!=0&&u.has(d)&&changetype(u.get(d))&1&&o.set(d,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let t=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(t,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(re(i)){case 9:{if(!Xn(i))break;let t=this.targetFunction.localsByIndex[Hl(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch(re(i)){case 9:{if(!Xn(i))break;let t=this.targetFunction.localsByIndex[Hl(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(Ql(i),e);break}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=Di(i);t&&$e(t)&&(this.inheritNonnullIfTrue(Jl(i),e),this.inheritNonnullIfTrue(ts(i),e));break}case 15:{switch(Zn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Xl(i),e);break}}break}case 16:{switch(Mi(i)){case 15:case 40:{let t=et(i),n=qe(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=et(i),n=qe(i);$e(t)?this.inheritNonnullIfTrue(n,e):$e(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=rs(i);if(t==y.String_eq){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);$e(n)?this.inheritNonnullIfTrue(s,e):$e(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfFalse(Qe(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfTrue(Qe(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch(re(i)){case 15:{switch(Zn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Xl(i),e);break}}break}case 2:{let t=ts(i);Di(i)&&dt(t)&&(this.inheritNonnullIfFalse(Jl(i),e),this.inheritNonnullIfFalse(Di(i),e));break}case 16:{switch(Mi(i)){case 15:case 40:{let t=et(i),n=qe(i);$e(t)?this.inheritNonnullIfTrue(n,e):$e(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=et(i),n=qe(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=rs(i);if(t==y.String_eq){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);$e(n)?this.inheritNonnullIfTrue(s,e):$e(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfTrue(Qe(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfFalse(Qe(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(i)){case 8:{let n=this.targetFunction.localsByIndex[Tt(i)];return!this.isLocalFlag(n.index,2,!0)||Yl(n.type,e)}case 9:return assert(Xn(i)),this.canOverflow(Ql(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Jn(i))));return assert(n.kind==0||n.kind==3),Yl(n.type,e)}case 16:{switch(Mi(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!(re(t=et(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow(qe(i),e))||re(t=qe(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow(et(i),e)));case 7:return!(re(t=et(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e)||re(t=qe(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=qe(i))!=14||ne(t)<n}case 11:{let n=32-e.size;return this.canOverflow(et(i),e)&&(re(t=qe(i))!=14||ne(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=qe(i))==14&&ne(t)>n):this.canOverflow(et(i),e)&&!(re(t=qe(i))==14&&ne(t)>=n)}case 4:case 5:case 6:return this.canOverflow(et(i),e)||this.canOverflow(qe(i),e)}break}case 15:{switch(Zn(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(le(i)){case N.I32:{n=ne(i);break}case N.I64:{n=Ie(i);break}case N.F32:{n=i32(Ee(i));break}case N.F64:{n=i32(Se(i));break}case N.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(lp(i)){case 1:{n=s?c.i8:c.u8;break}case 2:{n=s?c.i16:c.u16;break}default:{n=s?c.i32:c.u32;break}}return Yl(n,e)}case 1:{if(!Yn(i)){let n=assert($n(i)),s=es(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(ts(i),e)||this.canOverflow(assert(Di(i)),e);case 17:return this.canOverflow(up(i),e)||this.canOverflow(cp(i),e);case 6:{let s=this.program.instancesByName,a=assert(rs(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)||Yl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let t=new Array;return this.is(1)&&t.push("RETURNS"),this.is(2)&&t.push("RETURNS_WRAPPED"),this.is(4)&&t.push("RETURNS_NONNULL"),this.is(8)&&t.push("THROWS"),this.is(16)&&t.push("BREAKS"),this.is(32)&&t.push("CONTINUES"),this.is(64)&&t.push("ACCESSES_THIS"),this.is(128)&&t.push("CALLS_SUPER"),this.is(256)&&t.push("TERMINATES"),this.is(512)&&t.push("CONDITIONALLY_RETURNS"),this.is(1024)&&t.push("CONDITIONALLY_THROWS"),this.is(2048)&&t.push("CONDITIONALLY_BREAKS"),this.is(4096)&&t.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&t.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&t.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${t.join(" ")}`}};function Yl(r,i){return i.isShortIntegerValue&&(!r.isIntegerValue||r.size>i.size||r.isSignedIntegerValue!=i.isSignedIntegerValue)}var io=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(io||{}),ss=class extends Ze{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,t,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,t,n,s,a);break}case 2:{l=this.resolveFunctionType(e,t,n,s,a);break}case 3:{l=this.resolveTupleType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,t,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 d=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,d.toString()),e.isNullable){if(d.isReference)return d.asNullable();a==0&&this.error(204,e.range,d.toString())}return d}}let p=this.resolveTypeName(l,t,n,a);if(!p)return null;let _=p.shadowType;if(_)p=_;else{if(p.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${p.name}/i32`),c.i32;if(p.kind==6||p.kind==8){let f=this.resolveClassInclTypeArguments(p,o,t,n,_e(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(p.kind==14){let f=p;if(p.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName);let m=f.type;if(e.isNullable){if(m.isReference)return m.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return m}if(u){let m=l.identifier.text;if(or.has(m)){let T=assert(or.get(m)),S=new no(this,e,n,s,a);return T(S)}}let d=f.typeParameterNodes,h=null;if(d){if(h=this.resolveTypeArguments(d,o,t,n,s=_e(s),e,a),!h)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let g=this.resolveType(f.typeNode,t,p,s,a);if(!g)return null;if(e.isNullable){if(g.isReference)return g.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return g}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,t,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,t,n,s,a),!o))return null;let u=e.parameters,p=u.length,_=new Array(p),f=0,d=!1;for(let T=0;T<p;++T){let S=u[T];switch(S.parameterKind){case 0:{f=T+1;break}case 2:{assert(T==p-1),d=!0;break}}let v=S.type;if(Le(v))return a==0&&this.error(1110,v.range),null;let F=this.resolveType(v,t,n,s,a);if(!F)return null;if(F==c.void)return a==0&&this.error(214,v.range,F.toString()),null;_[T]=F}let h=e.returnType,g;if(Le(h))a==0&&this.error(1110,h.range),g=c.void;else if(g=this.resolveType(h,t,n,s,a),!g)return null;let m=Je.create(this.program,_,g,o,f,d);return e.isNullable?m.type.asNullable():m.type}resolveTupleType(e,t,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],t,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,t,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,t,n,s=0){let a=null;if(t&&(a=t.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,t,n,s,a=new Map,l=null,o=0){let u=0,p=0;for(let h=0,g=e.length;h<g;++h)e[h].defaultType||++u,++p;let _=t?t.length:0;if(_<u||_>p)return o==0&&this.error(2558,_?ce.join(t[0].range,t[_-1].range):l.range,(_<u?u:p).toString(),_.toString()),null;let f=new Array(p),d=_e(a);a.clear();for(let h=0;h<p;++h){let g=h<_?this.resolveType(t[h],n,s,d,o):this.resolveType(assert(e[h].defaultType),n,s,_e(a),o);if(!g)return null;a.set(e[h].name.text,g),f[h]=g}return f}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a)return t.is(65536)?this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,_e(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,t.internalName),null);if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,_e(n.contextualTypeArguments),s):null}return this.resolveFunction(t,null,new Map,s)}inferGenericTypeArguments(e,t,n,s,a=0){if(!n)return null;let l=_e(s.contextualTypeArguments),o=n.length,u=new Set;for(let m=0;m<o;++m){let T=n[m].name.text;l.set(T,c.auto),u.add(T)}let p=t.functionTypeNode.parameters,_=p.length,f,d;switch(e.kind){case 10:{let m=e;f=m.args,d=m.argumentsRange;break}case 18:{let m=e;f=m.args,d=m.argumentsRange;break}default:return assert(!1),null}let h=f.length;for(let m=0;m<_;++m){let T=m<h?f[m]:p[m].initializer;if(!T){if(p[m].parameterKind==1)continue;return a==0&&(p[m].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,_.toString(),h.toString())),null}let S=p[m].type;if(p[m].parameterKind==2&&(S=S.typeArguments[0]),S.hasGenericComponent(n)){let v=this.resolveExpression(T,s,c.auto,1);v&&this.propagateInferredGenericTypes(S,v,t,l,u)}}let g=new Array(o);for(let m=0;m<o;++m){let T=n[m],S=T.name.text;if(l.has(S)){let v=assert(l.get(S));if(v!=c.auto){g[m]=v;continue}let F=T.defaultType;if(F){let k=t.parent,R=null;(k.kind==7||k.kind==5)&&(R=k.contextualTypeArguments);let C=this.resolveType(F,null,t,R,a);if(!C)return null;g[m]=C;continue}}if(a==0){let v;switch(e.kind){case 10:v=e.expression.range;break;case 18:v=e.typeName.range;break;default:return assert(!1),null}this.error(1140,v.atEnd)}return null}return g}propagateInferredGenericTypes(e,t,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=t.classReference;if(u){let p=this.resolveTypeName(l.name,null,n);if(!p||p.kind!=6)return;if(u.prototype==p){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,d=_.length;f<d;++f)this.propagateInferredGenericTypes(o[f],_[f],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let p=assert(s.get(u));(p==c.auto||a.has(u)&&p.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let p=u.parameterTypes;for(let h=0,g=min(p.length,o.length);h<g;++h)this.propagateInferredGenericTypes(o[h].type,p[h],n,s,a);let _=u.returnType;_!=c.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,d=l.explicitThisType;f&&d&&this.propagateInferredGenericTypes(d,f,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(to(t)){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 t=e.getClassOrWrapper(this.program);return t||null}lookupExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,t,n,s);case 9:return this.lookupBinaryExpression(e,t,n,s);case 10:return this.lookupCallExpression(e,t,n,s);case 12:return this.lookupCommaExpression(e,t,n,s);case 13:return this.lookupElementAccessExpression(e,t,n,s);case 15:return this.lookupFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 25:return this.lookupThisExpression(e,t,n,s);case 24:return this.lookupSuperExpression(e,t,n,s);case 16:return this.lookupInstanceOfExpression(e,t,n,s);case 17:return this.lookupLiteralExpression(e,t,n,s);case 18:return this.lookupNewExpression(e,t,n,s);case 22:return this.lookupPropertyAccessExpression(e,t,n,s);case 23:return this.lookupTernaryExpression(e,t,n,s);case 28:return this.lookupUnaryPostfixExpression(e,t,n,s);case 29:return this.lookupUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}resolveExpression(e,t,n=c.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,t,n,s);return a.delete(e),l}doResolveExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,t,n,s);case 9:return this.resolveBinaryExpression(e,t,n,s);case 10:return this.resolveCallExpression(e,t,n,s);case 12:return this.resolveCommaExpression(e,t,n,s);case 13:return this.resolveElementAccessExpression(e,t,n,s);case 15:return this.resolveFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 25:return this.resolveThisExpression(e,t,n,s);case 24:return this.resolveSuperExpression(e,t,n,s);case 16:return this.resolveInstanceOfExpression(e,t,n,s);case 17:return this.resolveLiteralExpression(e,t,n,s);case 18:return this.resolveNewExpression(e,t,n,s);case 22:return this.resolvePropertyAccessExpression(e,t,n,s);case 23:return this.resolveTernaryExpression(e,t,n,s);case 28:return this.resolveUnaryPostfixExpression(e,t,n,s);case 29:return this.resolveUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,t,c.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=t.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=t.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,t,n=c.auto,s=t.sourceFunction,a=0){switch(e.kind){case 26:case 14:return c.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let p=n.getSignature();if(p)return p.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,t,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,t=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,t):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,c.auto,t);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,t,n,s=0){let a=e.expression,l=this.lookupExpression(a,t,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,p=u.type;if(p==c.void)return null;let _=p.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,p=u.getterInstance;if(!p){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let _=p.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 p=l.parent;assert(p.kind==7);let _=p,f=assert(this.currentElementExpression),d=_.lookupOverload(1);if(!d)return s==0&&this.error(2329,f.range,p.internalName),null;let h=d.signature.returnType,g=h.getClassOrWrapper(this.program);if(!g)return s==0&&this.error(2339,e.property.range,o,h.toString()),null;l=g;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 p=u.type.classReference;p&&(l=p.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,p=!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(p=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(p=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(p=!0,u=d);break}}}while(p);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,t,n,s=0){let a=this.lookupPropertyAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,t,n,s=0){let a=e.expression,l=this.resolveExpression(a,t,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,t,n,s=0){let a=this.lookupElementAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,t,n){let s=e.value;if(t){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?c.f32:c.f64;if(!n.isIntegerValue)return c.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return c.bool;break}case 1:{if(i64_is_i8(s))return c.i8;break}case 6:{if(i64_is_u8(s))return c.u8;break}case 2:{if(i64_is_i16(s))return c.i16;break}case 7:{if(i64_is_u16(s))return c.u16;break}case 3:{if(i64_is_i32(s))return c.i32;break}case 8:{if(i64_is_u32(s))return c.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return c.isize32;break}return c.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return c.usize32;break}return c.usize64}case 4:return c.i64;case 9:return c.u64;case 11:return c.f32;case 12:return c.f64}return i64_is_i32(s)?c.i32:i64_is_u32(s)?c.u32:c.i64}lookupAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,t.sourceFunction,t.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,t,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,t,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,t,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,t,n=c.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,we(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=c.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,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(Ce.fromUnaryPrefixToken(l));if(p)return p.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,we(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(25);if(p)return p.signature.returnType}return c.bool}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(26);if(p)return p.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,t,n=c.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,we(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=c.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Ce.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,we(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=c.auto,s=0){let a=this.resolveBinaryExpression(e,t,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,t,n=c.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,t,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(Ce.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?c.bool:(s==0&&this.error(2469,e.range,we(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(Ce.fromBinaryToken(o));if(_)return _.signature.returnType}return c.bool}case 78:case 79:return c.bool;case 29:return c.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(Ce.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,u,s);if(!_)return null;let f=c.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,we(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(Ce.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,we(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(Ce.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,n,s);if(!_)return null;let f=c.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,we(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),p.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _?u.is(512)&&p.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),p.toString()),null)}}return assert(!1),null}lookupThisExpression(e,t,n=c.auto,s=0){if(t.isInline){let o=t.lookupLocal(P.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.lookupLocal(P.this_);if(a||(a=t.lookupLocalInOuter(P.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=t.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,t,n=c.auto,s=0){let a=this.lookupThisExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,t,n=c.auto,s=0){if(t.isInline){let l=t.lookupLocal(P.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=t.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,t,n=c.auto,s=0){let a=this.lookupSuperExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,t,n=c.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==c.f32?c.f32:c.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=c.auto,p=0;for(let _=0,f=o;_<f;++_){let d=l[_];if(d)if(d.kind==19&&o>1)++p;else{let h=this.resolveExpression(d,t,u);if(!h)return null;if(u==c.auto)u=h;else if(h!=u){let g=c.commonType(u,h,u);g&&(u=g)}}}if(u==c.auto)if(p==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return p>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,t,n=c.auto,s=0){let a=this.lookupLiteralExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,t,n=c.void,s=0){let a=this.resolveCallExpression(e,t,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,t,n=c.void,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==y.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],t,n,s);let u=this.maybeInferCall(e,o,t,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(!to(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,t,n=c.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=c.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=c.auto,s=0){return assert(c.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=c.auto,s=0){return c.bool}lookupTernaryExpression(e,t,n,s=0){let a=this.resolveTernaryExpression(e,t,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,t,n,s=0){let a=this.resolveExpression(e.ifThen,t,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,t,a,s);if(!l)return null;let o=c.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,t,n,s=0){let a=this.resolveTypeName(e.typeName,t,t.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,t,t.sourceFunction,_e(t.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,t,n,s=0){let a=this.lookupNewExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,t,n,s=0){let a=this.resolveFunctionExpression(e,t,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,t,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,t.sourceFunction,t.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&Le(l.returnType)){let p=o.expression,_=assert(u.getSignature()),f=qt.createDefault(t.sourceFunction),d=l.parameters;assert(_.parameterTypes.length==d.length);for(let g=0,m=d.length;g<m;g++){let T=d[g],S=_.parameterTypes[g];f.addScopedDummyLocal(T.name.text,S,T)}let h=this.resolveExpression(p,f,n,s);h&&(u.signatureReference=Je.create(this.program,_.parameterTypes,h,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?ro(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let C=a.typeArguments;if(C){let D=assert(a.prototype.typeParameterNodes),U=D.length;assert(U==D.length);for(let G=0;G<U;++G){let O=D[G].name.text;n.set(O,C[G])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,p;if(t&&(p=t.length)>0){assert(u&&p==u.length);for(let R=0;R<p;++R)n.set(u[R].name.text,t[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(P.this_,_)}else a&&(_=a.type,n.set(P.this_,_));let d=o.parameters,h=d.length,g=new Array(h),m=0,T=!1;for(let R=0;R<h;++R){let C=d[R];C.parameterKind==0?m=R+1:C.parameterKind==2&&(T=!0);let D=C.type;if(Le(D))return s==0&&this.error(1110,D.range),null;let U=this.resolveType(D,null,e.parent,n,s);if(!U)return null;if(U==c.void)return s==0&&this.error(1110,D.range),null;g[R]=U}let S;if(e.is(4096))S=c.void;else if(e.is(524288))S=a.type;else{let R=o.returnType;if(Le(R))return s==0&&this.error(1110,R.range),null;let C=this.resolveType(R,null,e.parent,n,s);if(!C)return null;S=C}let v=Je.create(this.program,g,S,_,m,T),F=e.name;l.length&&(F+=`<${l}>`);let k=new St(F,e,t,v,n);if(e.setResolvedInstance(l,k),a){let R=k.declaration.name.text,C=a.base;if(C){let D=C.getMember(R);if(D){this.discoveredOverride=!0;let U=!0;if(k.isAny(6144)){if(D.kind==10){let G=this.resolveProperty(D,s);if(G)if(k.is(2048)){let O=G.getterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}else{assert(k.is(4096));let O=G.setterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}}}else if(k.is(524288))U=!1;else if(D.kind==4){let G=D,O=G.typeParameterNodes,Y=O!=null&&O.length>0,Z=t!=null&&t.length>0;if(Y!=Z)this.errorRelated(242,k.identifierAndSignatureRange,D.identifierAndSignatureRange,R),U=!1;else{let ee=this.resolveFunction(G,t,new Map,1);ee&&k.signature.isAssignableTo(ee.signature,!0)&&(U=!1)}}U&&this.errorRelated(2394,k.identifierAndSignatureRange,D.identifierAndSignatureRange)}}}return k}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),p=u.typeArguments;if(p){let _=assert(u.prototype.typeParameterNodes),f=p.length;assert(f==_.length);for(let d=0;d<f;++d)s.set(_[d].name.text,p[d])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),t,null,n,s,a,l),!o)return null}else if(t&&t.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let t=e.prototype.unboundOverrides;if(!t)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(t),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let p=u.parent,_;if(assert(p.kind==6||p.kind==8),_=p.instances,!!_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d){let g=f[d];if(!g.isAssignableTo(n))continue;let m=null;if(e.isAny(6144)){let T=e.declaration.name.text,S=assert(g.getMember(T));assert(S.kind==10);let v=this.resolveProperty(S);if(!v)continue;e.is(2048)?m=v.getterInstance:(assert(e.is(4096)),m=v.setterInstance)}else{let T=g.getMember(u.name);if(T){assert(T.kind==4);let S=T;S.is(65536)==e.is(65536)&&(m=this.resolveFunction(S,e.typeArguments))}}m&&s.add(m)}}return Set_values(s)}resolveClass(e,t,n=new Map,s=0){let a=t?ro(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new os(o,e,t):l=new ur(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),h=d.length,g=t.length;assert(g==h);for(let m=0;m<g;++m)n.set(d[m].name.text,t[m])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let p=!1,_=e.basePrototype;if(_){let d=_;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let h=assert(e.extendsNode),g=this.resolveClassInclTypeArguments(_,h.typeArguments,null,e.parent,_e(n),h,s);if(!g)return null;l.setBase(g),u.has(g)&&(p=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let d=0,h=f.length;d<h;++d){let g=f[d],m=g;do{if(m==e)return this.error(2506,e.identifierNode.range,e.internalName),null;m=m.basePrototype}while(m);let T=assert(e.implementsNodes[d]),S=this.resolveClassInclTypeArguments(g,T.typeArguments,null,e.parent,_e(n),T,s);if(!S)return null;assert(S.kind==9),l.addInterface(S),u.has(S)&&(p=!0)}return p||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,t,n,s,a,l){let o=!1;return t.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,t.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):t.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,t.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):t.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):t.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,t){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let d=Set_values(l),h=0,g=d.length;h<g;++h){let m=d[h];assert(!s.has(m));let T=m.members;if(T)for(let S=Map_keys(T),v=0,F=S.length;v<F;++v){let k=unchecked(S[v]),R=assert(T.get(k)),C=e.getMember(k);C&&!this.checkOverrideVisibility(k,C,e,R,m,t)||(n.set(k,R),a.set(k,R))}}let o=0,u=e.base;if(u){let d=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let h=u.members;if(h)for(let g=Map_keys(h),m=0,T=g.length;m<T;++m){let S=unchecked(g[m]),v=assert(h.get(S));if(d&&v.is(32))continue;let F=e.getMember(S);F&&!this.checkOverrideVisibility(S,F,e,v,u,t)||(n.set(S,v),v.is(128)?a.set(S,v):a.delete(S))}o=u.nextMemoryOffset}let p=e.prototype,_=p.instanceMembers;if(_)for(let d=Map_values(_),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=m.name;if(u){let S=u.getMember(T);S&&this.checkOverrideVisibility(T,m,e,S,u,t)}switch(m.kind){case 4:{let S=m.toBound(e);e.add(S.name,S);break}case 10:{let S=m.toBound(e);if(S.isField){let v=this.resolveProperty(S,t);if(v){let F=v.type;if(F==c.void)break;if(F.isExternalReference){this.error(100,assert(S.typeNode).range,"Reference typed fields");break}let k=!0;if(u){let C=u.getMember(S.name);if(C&&C.kind==10){let D=C,U=this.resolveProperty(D,t);if(U&&U.isField){if(U.type!=v.type){this.errorRelated(2416,v.identifierNode.range,U.identifierNode.range,v.name,e.internalName,u.internalName);break}v.memoryOffset=U.memoryOffset,k=!1}}}if(k){let C=F.byteSize;assert(zt(C));let D=C-1;o&D&&(o=(o|D)+1),v.memoryOffset=o,o+=C}S.instance=v,e.add(S.name,S);let R=assert(S.fieldDeclaration).type;R&&this.program.checkTypeSupported(F,R)}}else e.add(S.name,S);break}default:assert(!1)}!m.is(128)&&!m.is(65536)&&a.delete(T)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let d=Map_keys(a),h=0,g=d.length;h<g;++h){let m=d[h],T=assert(a.get(m));this.errorRelated(2515,e.identifierNode.range,T.identifierNode.range,e.internalName,m,T.parent.internalName)}e.nextMemoryOffset=o;{let d=e.getMember(P.constructor);if(d&&d.parent==e){assert(d.kind==4);let h=this.resolveFunction(d,null,assert(e.contextualTypeArguments),t);h&&(e.constructorInstance=h)}}}let f=p.operatorOverloadPrototypes;for(let d=Map_keys(f),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=assert(f.get(m));if(assert(m!=0),T.is(65536))continue;let S;if(T.is(262144)){let F=T.toBound(e);S=this.resolveFunction(F,null,new Map,t)}else S=this.resolveFunction(T,null,new Map,t);if(!S)continue;let v=e.operatorOverloads;if(v||(e.operatorOverloads=v=new Map),S.is(262144))switch(m){case 27:case 28:case 29:case 30:{let F=S.signature.returnType;F.isAssignableTo(e.type)||t==0&&this.error(2322,T.functionTypeNode.returnType.range,F.toString(),e.type.toString())}}if(v.has(m))t==0&&this.error(213,S.declaration.range);else if(v.set(m,S),m==1||m==2){let F=e.indexSignature;F||(e.indexSignature=F=new ls(e)),m==1&&F.setType(S.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let d=Set_values(s),h=0,g=d.length;h<g;++h){let m=d[h],T=m.base==e,S=m.interfaces;if(S){let v=!1;for(let F=Set_values(S),k=0,R=F.length;k<R;++k){let C=F[k];C==e?T=!0:s.has(C)&&(v=!0)}if(v)continue}T&&this.finishResolveClass(m,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let p=null;for(let _=e;_&&!p;_=_.basePrototype)p=_.constructorPrototype;if(!t&&p&&n&&a.size==0?u=this.inferGenericTypeArguments(l,p,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),t,n,s,a,l,o),!u)return null}else if(t&&t.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,t=0){let n=e.instance;if(n)return n;e.instance=n=new as(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,t);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,t);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,t=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(t==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};var w1=1,C1=50,P1=6e4;function zi(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}var yp=class{constructor(){this.name="";this.typeName="";this.isArray=!1;this.unique=!1}};function ht(r,i){return Math.imul(r^i&255,16777619)>>>0}function lo(r,i){let e=i.length;r=ht(r,e&255),r=ht(r,e>>>8&255),r=ht(r,e>>>16&255),r=ht(r,e>>>24&255);for(let t=0;t<e;++t)r=ht(r,i.charCodeAt(t));return r>>>0}function cs(r,i=null,e=null){return Lg(2166136261,r,i,e)}function Lg(r,i,e,t){for(let n=0,s=i.length;n<s;++n){let a=i[n];if(r=lo(r,a.name),r=lo(r,a.typeName),r=ht(r,a.isArray?1:0),e!=null&&e.has(a.typeName)){let l=t??new Set;l.has(a.typeName)||(l.add(a.typeName),r=Lg(r,e.get(a.typeName),e,l),l.delete(a.typeName))}}return r>>>0}function Ui(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary||n.internalPath.endsWith(".migration"))continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o;if(!ke(u.decorators,15)&&!ke(u.decorators,29))continue;let p=u.name.text;i.has(p)||i.set(p,Gr(u))}}return i}function Gr(r){let i=new Array,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=55)continue;let a=s;if(a.is(32))continue;let l=a.type;if(l==null||!(l instanceof ae))continue;let o=l,u=o.name.identifier.text,p=new yp;p.name=a.name.text,p.unique=Wt(a.decorators,38)!=null;let _=o.typeArguments;u=="Array"&&_!=null&&_.length==1&&_[0]instanceof ae?(p.typeName=_[0].name.identifier.text,p.isArray=!0):p.typeName=u,i.push(p)}return i}var gp=class{constructor(){this.oldType="";this.newType="";this.fnName="";this.oldVersion=0;this.delta=!1;this.sourceInternalPath=""}};function so(r){return r==null||!(r instanceof ae)?null:r.name.identifier.text}function kp(r,i,e=null){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=56)continue;let _=p;if(!ke(_.decorators,37))continue;let f=_.signature,d=null,h=null,g=!1;if(f.parameters.length==1)d=so(f.parameters[0].type),h=so(f.returnType);else if(f.parameters.length==2)d=so(f.parameters[0].type),h=so(f.parameters[1].type),g=!0;else continue;if(d==null||h==null)continue;let m=new gp;m.oldType=d,m.newType=h,m.fnName=_.name.text,m.delta=g,m.oldVersion=i.has(d)?cs(i.get(d),e):zi(d),m.sourceInternalPath=a.internalPath,t.push(m)}}return t}var bp=class{constructor(){this.oldType="";this.oldVersion=0;this.steps=[]}};function Rp(r,i){let e=new Array,t=new Set;t.add(r);let n=new Array,s=new Array;n.push(r),s.push(new Array);let a=0;for(;a<n.length;){let l=n[a],o=s[a];a++;for(let u=0,p=i.length;u<p;++u){let _=i[u];if(_.newType!=l||t.has(_.oldType))continue;t.add(_.oldType);let f=new Array;f.push(_);for(let h=0,g=o.length;h<g;++h)f.push(o[h]);let d=new bp;d.oldType=_.oldType,d.oldVersion=_.oldVersion,d.steps=f,e.push(d),n.push(_.oldType),s.push(f)}}return e}function B1(r){switch(r){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function ke(r,i){if(r==null)return!1;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return!0;return!1}var xp=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType="";this.fillMaxWaitMs=C1;this.fillAllowStale=!0}},Tp=class{constructor(){this.name="";this.collections=new Array}},It=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}u64(i){let e=i%4294967296,t=Math.floor(i/4294967296);this.u32(e),this.u32(t)}u64lohi(i,e){this.u32(i),this.u32(e)}str(i){let e=[],t=0,n=i.length;for(;t<n;){let s=i.charCodeAt(t++);if(s>=55296&&s<=56319&&t<n){let a=i.charCodeAt(t);a>=56320&&a<=57343&&(s=65536+(s-55296<<10)+(a-56320),t++)}s<128?e.push(s):s<2048?(e.push(192|s>>6),e.push(128|s&63)):s<65536?(e.push(224|s>>12),e.push(128|s>>6&63),e.push(128|s&63)):(e.push(240|s>>18),e.push(128|s>>12&63),e.push(128|s>>6&63),e.push(128|s&63))}this.u32(e.length);for(let s=0,a=e.length;s<a;++s)this.u8(e[s])}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let t=0;t<i;++t)e[t]=this.bytes[t];return e}};function mp(r,i){let e=r.typeArguments;if(e!=null&&e.length>i){let t=e[i];if(t instanceof ae)return t.name.identifier.text}return""}function Ng(r){let i=new Array,e=r.sources,t=new Map;for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;!ke(g.decorators,15)&&!ke(g.decorators,29)||t.set(g.name.text,Gr(g))}}let n=Ui(e),s=kp(e,t,n),a=new Map;for(let o=0,u=s.length;o<u;++o){let p=s[o].newType;if(a.has(p))continue;let _=new Array,f=Rp(p,s);for(let d=0,h=f.length;d<h;++d)_.push(f[d].oldVersion);a.set(p,_)}for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!ke(g.decorators,31))continue;let m=new Tp;m.name=g.name.text;let T=g.members;for(let S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=55)continue;let k=F,R=Wt(k.decorators,32);if(R==null)continue;let C=k.type;if(C==null||!(C instanceof ae))continue;let D=C,U=B1(D.name.identifier.text);if(U<0)continue;let G=new xp;G.name=k.name.text,G.family=U,U==3||U==6?(G.keyType=mp(D,0),G.valueType="i64"):(G.keyType=mp(D,0),G.valueType=mp(D,1));let O=Og(R);if(O!=null){let Y=oo(O,"fillMaxWaitMs");if(Y<0&&(Y=oo(O,"maxWaitMs")),Y>=0){if(Y>P1)return r.error(102,k.name.range,"@collection fillMaxWaitMs exceeds the platform catalog maximum"),null;G.fillMaxWaitMs=Y}let Z=Bg(O,"fillStale");if(Z.length==0&&(Z=Bg(O,"stale")),Z.length>0)if(Z=="allow"||Z=="Allow")G.fillAllowStale=!0;else if(Z=="deny"||Z=="Deny")G.fillAllowStale=!1;else return r.error(102,k.name.range,'@collection fillStale must be "allow" or "deny"'),null}m.collections.push(G)}m.collections.length>0&&i.push(m)}}if(i.length==0)return null;let l=new It;l.u16(w1),l.u16(i.length);for(let o=0,u=i.length;o<u;++o){let p=i[o];l.str(p.name),l.u16(p.collections.length);for(let _=0,f=p.collections.length;_<f;++_){let d=p.collections[_];l.str(d.name),l.u8(d.family),l.str(d.keyType),l.str(d.valueType);let h=zi(d.valueType),g=t.has(d.valueType),m=g?t.get(d.valueType):new Array,T=g?cs(m,n):h;l.u32(h),l.u32(T),l.u32(0),l.u8(0),l.u8(0),l.u32(d.fillMaxWaitMs),l.u8(d.fillAllowStale?1:0),l.u16(m.length);for(let v=0,F=m.length;v<F;++v)l.str(m[v].name),l.str(m[v].typeName),l.u8(m[v].isArray?1:0),l.u8(m[v].unique?1:0);let S=a.has(d.valueType)?a.get(d.valueType):new Array;l.u16(S.length);for(let v=0,F=S.length;v<F;++v)l.u32(S[v])}}return l.toBytes()}function Mg(r){let i=r.sources;for(let e=0,t=i.length;e<t;++e){let n=i[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o,p=ke(u.decorators,15)||ke(u.decorators,29),_=u.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=55)continue;let g=h;if(Wt(g.decorators,38)==null)continue;if(!p){r.error(102,g.name.range,"@unique is only valid on a field of a @data or @user class");continue}let m=g.type,T=!1;if(m!=null&&m instanceof ae){let S=m.name.identifier.text;T=S=="string"||S=="Uint8Array"}T||r.error(102,g.name.range,"@unique requires a string or Uint8Array field (arrays and nested @data are not supported)")}}}}function Dg(r){let i=r.sources,e=new Array,t=new Map;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary||l.internalPath.endsWith(".migration"))continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_;if(!ke(f.decorators,15)&&!ke(f.decorators,29))continue;let d=f.name.text;t.has(d)||(e.push(d),t.set(d,Gr(f)))}}if(e.length==0)return null;let n=new It;n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.str(l);let o=t.get(l);n.u16(o.length);for(let u=0,p=o.length;u<p;++u)n.str(o[u].name),n.str(o[u].typeName),n.u8(o[u].isArray?1:0)}return n.toBytes()}var Ap=class{constructor(){this.method=0;this.kind=0;this.path=""}},vp=class{constructor(){this.method=-1;this.path=""}},Gg=128*1024,L1=2048,N1=2048;function zg(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_,d=Wt(f.decorators,18);if(d==null)continue;let h=D1(d),g=f.members;for(let m=0,T=g.length;m<T;++m){let S=g[m];if(S.kind!=59)continue;let v=S,F=G1(v);if(F==null)continue;let k=z1(F);if(k==null||M1(k.method))continue;let R=Ep(v.decorators);if(R>1)return r.error(102,v.name.range,"HTTP route methods may only use @query or @action ToilDB function kinds"),null;if(R!=0)continue;let C=O1(h,k.path);if(i.length>=L1)return r.error(102,v.name.range,"too many explicit @query HTTP routes for toildb.route_kinds"),null;if(!q1(C))return r.error(102,v.name.range,"route pattern for toildb.route_kinds must be a non-empty ASCII path starting with '/'"),null;if(C.length>N1)return r.error(102,v.name.range,"route pattern for toildb.route_kinds is too large"),null;let D=new Ap;D.method=k.method,D.kind=0,D.path=C,i.push(D)}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u8(i[s].method),t.u8(i[s].kind),t.str(i[s].path);let n=t.toBytes();return n.length>Gg?(r.error(102,null,"toildb.route_kinds section is too large"),null):n}function Ug(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind==52){let f=_;if(Wt(f.decorators,17)==null)continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(Wt(S.decorators,16)==null)continue;let v=Ep(S.decorators);v>1?r.error(102,S.name.range,"@remote methods may only use @query or @action ToilDB function kinds (default is read-only @query)"):v==1&&i.push(zi(d+"."+S.name.text))}}else if(_.kind==56){let f=_;if(Wt(f.decorators,16)==null)continue;let d=Ep(f.decorators);d>1?r.error(102,f.name.range,"@remote functions may only use @query or @action ToilDB function kinds (default is read-only @query)"):d==1&&i.push(zi(f.name.text))}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u32(i[s]),t.u8(1);let n=t.toBytes();return n.length>Gg?(r.error(102,null,"toildb.rpc_kinds section is too large"),null):n}function Ep(r){if(r==null)return-1;for(let i=0,e=r.length;i<e;++i){let t=r[i].decoratorKind;if(t==33)return 0;if(t==34)return 1;if(t==35||t==36||t==39)return 2}return-1}function M1(r){return r==0||r==5||r==6}function D1(r){let i=r.args;if(i==null||i.length==0)return"";let e=i[0];if(e instanceof ye){let t=e.value.trim();return t.length==0||t=="/"?"":(t.startsWith("/")||(t="/"+t),t.replace(/\/+$/,""))}return""}function G1(r){let i=r.decorators;if(i==null)return null;for(let e=0,t=i.length;e<t;++e)switch(i[e].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return i[e]}return null}function z1(r){let i=new vp,e=r.decoratorKind;if(e==19){let t=r.args;if(t==null||t.length==0||!(t[0]instanceof Be))return null;let n=t[0],s=Dr(n,"method"),a=Dr(n,"path");if(s==null||a==null||!(a instanceof ye))return null;let l=Fp(s);if(l==null)return null;i.method=V1(l),i.path=a.value}else{i.method=U1(e);let t=r.args;if(t==null||t.length==0||!(t[0]instanceof ye))return null;i.path=t[0].value}return i.method>=0?i:null}function U1(r){switch(r){case 21:return 1;case 22:return 2;case 23:return 3;case 24:return 4;case 25:return 5;case 26:return 6;default:return 0}}function V1(r){switch(r){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}function O1(r,i){let e=i.trim();if(e.length==0&&(e="/"),e.startsWith("/")||(e="/"+e),e=="/")return r.length>0?r:"/";e.length>1&&(e=e.replace(/\/+$/,""));let t=r+e;return t.length==0?"/":t}function q1(r){if(r.length==0||!r.startsWith("/"))return!1;for(let i=0,e=r.length;i<e;++i){let t=r.charCodeAt(i);if(t<32||t>126)return!1}return!0}function cr(r,i){return r=ht(r,i&255),r=ht(r,i>>>8&255),r=ht(r,i>>>16&255),r=ht(r,i>>>24&255),r>>>0}function Wt(r,i){if(r==null)return null;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return r[e];return null}function Vg(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof ye?e.value:null}function Og(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof Be?e:null}function Dr(r,i){let e=r.names;for(let t=0,n=e.length;t<n;++t)if(e[t].text==i)return r.values[t];return null}function Fp(r){return r instanceof _t?r.property.text:null}function Bg(r,i){let e=Dr(r,i);if(e==null)return"";if(e instanceof ye)return e.value;if(e instanceof xe)return e.text;let t=Fp(e);return t??""}function oo(r,i){let e=Dr(r,i);if(e!=null&&e instanceof pt){let t=e.range.toString().trim(),n=0;if(t.length==0)return-1;for(let s=0,a=t.length;s<a;++s){let l=t.charCodeAt(s);if(l<48||l>57)return-1;if(n=n*10+(l-48),n>4294967295)return 4294967295}return n}return-1}function W1(r,i){let e=Dr(r,i);return e!=null&&e instanceof xe?e.text:""}function qg(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o;ke(u.decorators,15)&&i.set(u.name.text,Gr(u))}}return i}function j1(r){let i=0,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=59)continue;let a=s.decorators;if(a!=null)for(let l=0,o=a.length;l<o;++l)switch(a[l].decoratorKind){case 43:{i|=1;break}case 44:{i|=2;break}case 45:{i|=4;break}case 46:{i|=8;break}}}return i}function Wg(r){let i=r.sources,e=Ui(i),t=qg(i),n=new Array,s=new Array,a=new Array,l=new Array,o=new Array,u=new Array,p=new Array,_=new Array,f=new Array;for(let h=0,g=i.length;h<g;++h){let m=i[h];if(m.isLibrary)continue;let T=m.statements;for(let S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=52)continue;let k=F;if(!ke(k.decorators,42))continue;let R=Wt(k.decorators,42),C=k.name.text,D=R!=null?Vg(R):null,U=R!=null?Og(R):null;if(D!=null){let se=D.trim();se.startsWith("/")&&(se=se.substring(1)),se.length>0&&(C=se)}else if(U!=null){let se=Dr(U,"name");if(se!=null&&se instanceof ye){let Fe=se.value.trim();Fe.startsWith("/")&&(Fe=Fe.substring(1)),Fe.length>0&&(C=Fe)}}let G="/"+C,O=0;if(U!=null){let se=Dr(U,"scope");se!=null&&Fp(se)=="Continental"&&(O=1)}let Y=0,Z=0;if(U!=null){let se=oo(U,"maxFrameBytes");se>0&&(Y=se);let Fe=oo(U,"ingressRingBytes");Fe>0&&(Z=Fe)}let ee=j1(k),K=0,te=0,Q=0,oe=U!=null?W1(U,"message"):"";oe.length>0&&t.has(oe)&&(K=1,te=zi(oe),Q=cs(t.get(oe),e)),n.push(C),s.push(G),a.push(ee),l.push(O),o.push(K),u.push(Y),p.push(Z),_.push(te),f.push(Q)}}if(n.length==0)return null;let d=new It;d.u16(1),d.u16(n.length);for(let h=0,g=n.length;h<g;++h)d.str(n[h]),d.str(s[h]),d.u8(a[h]),d.u8(l[h]),d.u8(o[h]),d.u32(u[h]),d.u32(p[h]),d.u32(_[h]),d.u32(f[h]),d.u16(h);return d.toBytes()}var uo=class{constructor(){this.kind=0;this.interval_ms=0;this.cron_minute_lo=0;this.cron_minute_hi=0;this.cron_hour_mask=0;this.cron_dom_mask=0;this.cron_month_mask=0;this.cron_dow_mask=0;this.valid=!0}};function K1(r){let i=r.length;if(i<2)return-1;let e=r.charCodeAt(i-1),t;if(e==115)t=1e3;else if(e==109)t=6e4;else if(e==104)t=36e5;else if(e==100)t=864e5;else return-1;let n=0;for(let a=0;a<i-1;++a){let l=r.charCodeAt(a);if(l<48||l>57||(n=n*10+(l-48),n>1e15))return-1}if(n<1)return-1;let s=n*t;return s<1e3?-1:s}function ao(r){if(r.length==0)return-1;let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e);if(n<48||n>57||(i=i*10+(n-48),i>1e6))return-1}return i}function us(r,i,e,t){if(r.length==0)return!1;let n=r.split(",");for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.length==0)return!1;let o=i,u=e,p=1,_=l,f=l.indexOf("/");if(f>=0){_=l.substring(0,f);let d=ao(l.substring(f+1));if(d<1)return!1;p=d}if(_!="*"){let d=_.indexOf("-");if(d>=0){let h=ao(_.substring(0,d)),g=ao(_.substring(d+1));if(h<0||g<0||h<i||g>e||h>g)return!1;o=h,u=g}else{let h=ao(_);if(h<0||h<i||h>e)return!1;o=h,u=f>=0?e:h}}for(let d=o;d<=u;d+=p)t(d)}return!0}function H1(r,i){let e=r.split(" ");if(e.length!=5){i.valid=!1;return}i.kind=1;let t=0,n=0,s=us(e[0],0,59,h=>{h<32?t=(t|1<<h)>>>0:n=(n|1<<h-32)>>>0});i.cron_minute_lo=t,i.cron_minute_hi=n;let a=0,l=us(e[1],0,23,h=>{a=(a|1<<h)>>>0});i.cron_hour_mask=a;let o=0,u=us(e[2],1,31,h=>{o=(o|1<<h)>>>0});i.cron_dom_mask=o;let p=0,_=us(e[3],1,12,h=>{p=p|1<<h});i.cron_month_mask=p&65535;let f=0,d=us(e[4],0,6,h=>{f=f|1<<h});i.cron_dow_mask=f&255,s&&l&&u&&_&&d||(i.valid=!1)}function Q1(r){let i=new uo,e=r.trim();if(e.length==0)return i.valid=!1,i;if(e.indexOf(" ")>=0)return H1(e,i),i;let t=K1(e);return t<0?(i.valid=!1,i):(i.kind=0,i.interval_ms=t,i)}var Sp=class{constructor(){this.name="";this.schedule=new uo}};function jg(r){let i=r.sources,e=null;for(let a=0,l=i.length;a<l&&e==null;++a){let o=i[a];if(o.isLibrary)continue;let u=o.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=52)continue;let d=f;if(ke(d.decorators,40)){e=d;break}}}if(e==null)return null;let t=new Array,n=e.members;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(o.kind!=59)continue;let u=o,p=Wt(u.decorators,41);if(p==null)continue;let _=Vg(p);if(_==null){r.error(9010,p.range);continue}let f=Q1(_);if(!f.valid){r.error(9011,p.range,_);continue}let d=new Sp;d.name=u.name.text,d.schedule=f,t.push(d)}let s=new It;s.u16(1),s.u8(1),s.u16(t.length);for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.schedule;s.str(o.name),s.u16(a),s.u8(u.kind),s.u64(u.kind==0?u.interval_ms:0),u.kind==1?(s.u64lohi(u.cron_minute_lo,u.cron_minute_hi),s.u32(u.cron_hour_mask),s.u32(u.cron_dom_mask),s.u16(u.cron_month_mask),s.u8(u.cron_dow_mask)):(s.u64lohi(0,0),s.u32(0),s.u32(0),s.u16(0),s.u8(0)),s.u8(0),s.u8(0),s.u64(0)}return s.toBytes()}var Ip=class{constructor(){this.deriveId=0;this.dbName="";this.methodName=""}};function Kg(r){let i=r.sources,e=new Array,t=0;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_;if(!ke(f.decorators,31))continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(!ke(S.decorators,36))continue;let v=new Ip;v.deriveId=t,v.dbName=d,v.methodName=S.name.text,e.push(v),++t}}}if(e.length==0)return null;let n=new It;n.u16(1),n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.u16(l.deriveId),n.str(l.dbName),n.str(l.methodName)}return n.toBytes()}function X1(r){for(let i=0,e=r.length;i<e;++i){let t=r[i];if(t.isLibrary)continue;let n=t.statements;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind==52){let o=l,u=o.decorators;if(u!=null)for(let _=0,f=u.length;_<f;++_)switch(u[_].decoratorKind){case 18:case 42:case 40:case 31:case 15:return!0}let p=o.members;for(let _=0,f=p.length;_<f;++_){let d=p[_];if(d.kind!=59)continue;let h=d.decorators;if(h!=null){for(let g=0,m=h.length;g<m;++g)if(h[g].decoratorKind==41)return!0}}}}}return!1}var J1=1,Z1=2,Y1=4,$1=8,e6=16;function t6(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o,p=u.decorators;if(p!=null)for(let f=0,d=p.length;f<d;++f)switch(p[f].decoratorKind){case 18:{i|=J1;break}case 42:{i|=Z1;break}case 40:{i|=Y1;break}case 31:{i|=e6;break}}let _=u.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=59)continue;let g=h.decorators;if(g!=null){for(let m=0,T=g.length;m<T;++m)if(g[m].decoratorKind==41){i|=$1;break}}}}}return i>>>0}function r6(r){let i=Ui(r),e=2166136261,t=new Set;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary||a.internalPath.endsWith(".migration"))continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=52)continue;let _=p;if(!ke(_.decorators,15))continue;let f=_.name.text;t.has(f)||(t.add(f),e=lo(e,f),e=cr(e,cs(Gr(_),i)))}}return e>>>0}function i6(r,i,e){let t=Ui(r),n=qg(r),s=2166136261;s=lo(s,i),s=cr(s,e);let a=new Array,l=new Array;for(let o=0,u=r.length;o<u;++o){let p=r[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!ke(g.decorators,31))continue;let m=g.members;for(let T=0,S=m.length;T<S;++T){let v=m[T];if(v.kind!=55)continue;let F=v;if(!ke(F.decorators,32))continue;let k=F.type;if(k==null||!(k instanceof ae))continue;let R=k,C=R.name.identifier.text,D;if(C=="Counter"||C=="Capacity")D="i64";else{let Y=R.typeArguments;D=Y!=null&&Y.length>1&&Y[1]instanceof ae?Y[1].name.identifier.text:""}let U=zi(D),O=n.has(D)?cs(n.get(D),t):U;a.push(U),l.push(O)}}}s=cr(s,a.length);for(let o=0,u=a.length;o<u;++o)s=cr(s,a[o]),s=cr(s,l[o]),s=cr(s,0);return s>>>0}function Hg(r,i){let e=r.sources;if(i==null&&!X1(e))return null;let t=i=="cold"?1:0,n=t6(e),s=1,a="",l=r6(e),o=i6(e,a,l),u=2166136261;u=ht(u,t),u=cr(u,n),u=cr(u,l);let p=u>>>0,_=new It;return _.u16(1),_.u8(t),_.u8(0),_.u32(n),_.u16(s),_.str(a),_.u32(p),_.u32(l),_.u32(o),_.toBytes()}function Zg(r){switch(r){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 co(r,i){let e=Zg(r);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function po(r){let i=Zg(r);return i.length!=0?"__r.read"+i+"()":r+".decodeFrom(__r)"}function ps(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}function Qg(r,i){switch(r){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<"+r+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function Xg(r,i){switch(r){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+r+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+r+">"+i+".asI64()";case"f32":case"f64":return"<"+r+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"u128.fromString("+i+".asString())";case"i128":return"i128.fromString("+i+".asString())";case"u256":return"u256.fromString("+i+".asString())";case"i256":return"i256.fromString("+i+".asString())";default:return r+".fromJSON("+i+")"}}var fs=class{constructor(i,e){this.source=i;this.reportNode=e}};function n6(r,i){switch(r){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":i=="since"?"EventsSince":"";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 wp(r){return r=="Get"||r=="GetMany"||r=="Exists"||r=="ViewGet"||r=="CounterGet"||r=="UniqueLookup"||r=="Latest"||r=="EventsSince"||r=="MembershipContains"||r=="MembershipList"||r=="CapacityAvailable"}function Jg(r){return r=="Latest"||r=="MembershipList"||r=="EventsSince"}function s6(r,i){switch(r){case 33:return wp(i)&&!Jg(i);case 34:return wp(i)&&!Jg(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 wp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 39:return!1;case 37:return!1;default:return!0}}function a6(r){switch(r){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 39:return"admin";case 37:return"migrate";default:return"?"}}function l6(r){switch(r){case 33:return"a query is read-only and cannot scan";case 34:return"an action cannot scan or publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 39:return"an admin has no request-path data access";case 37:return"a migration is a pure value transform and cannot access the database";default:return"not permitted in this kind"}}var ds=class extends Ze{constructor(e=null,t=[]){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.rpcImportedSources=new Set;this.streamExportedSources=new Set;this.ratelimitRouteCounter=0;this.toildbCodecReads=new Map;this.toildbCodecClasses=new Map;this.toildbWoven=!1;this.toildbDerivesWoven=!1;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=t}parseFile(e,t,n){let s=Cr(t),a=Wn(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let p=this.dependees,_=null;p.has(a)&&(_=assert(p.get(a))),this.error(6054,_?_.reportNode.range:null,t);return}let l=new fe(n?1:t.startsWith(bt)?t.indexOf(lt,bt.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new sr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let p=this.parseTopLevelStatement(o,null);p?u.push(p):this.skipStatement(o)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let m=this.parseDecorator(e);if(!m){this.skipStatement(e);continue}a?a.push(m):a=[m]}let l=0,o=0,u=0,p=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,p=e.pos));let _=0,f=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):d&&(n|=32768);let h=null,g=e.peek();switch(s<0&&(s=e.nextTokenPos),g){case 8:{e.next(),n|=8,e.skip(17)?h=this.parseEnum(e,n,a,s):h=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),h=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),h=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),h=this.parseFunction(e,n,a,s),a=null;break}case 0:{let m=e.mark();e.next();let T=e.tokenPos,S=e.pos;if(e.peekOnNewLine()){e.reset(m),h=this.parseStatement(e,!0);break}let v=e.peek();if(v!=7){v==31&&this.error(1242,e.range(T,S)),e.reset(m),h=this.parseStatement(e,!0);break}else e.discard(m);n|=128}case 7:case 31:{e.next(),h=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseNamespace(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?h=this.parseExportImport(e,s):h=this.parseImport(e);break}case 55:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 35:{let m=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(m),h=this.parseModuleDeclaration(e,n)):(e.reset(m),h=this.parseStatement(e,!0));break}default:{n&2?p&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),h=this.parseExportDefaultAlias(e,s,u,p),u=p=0):h=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),t?this.error(2695,e.range(s)):h=this.parseStatement(e,!0));break}}if(a)for(let m=0,T=a.length;m<T;++m)this.error(1206,a[m].range);if(p&&h!=null)switch(h.kind){case 53:case 56:case 52:case 58:case 60:return z.createExportDefaultStatement(h,e.range(s,e.pos));default:this.error(1042,e.range(u,p),"default")}return h}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let t=this.dependees;return t.has(e)?assert(t.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.weaveDataMigrations(),this.weaveDeriveHandlers(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.streamExportedSources.clear(),this.dependees.clear(),this.restImportedSources.clear(),this.rpcImportedSources.clear()}weaveDeriveHandlers(){if(this.toildbDerivesWoven)return;this.toildbDerivesWoven=!0;let e=this.options;if(e!=null&&e.targetMode=="cold")return;let t=null,n="",s="",a=0,l=0;for(let o=0,u=this.sources.length;o<u;++o){let p=this.sources[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!this.hasDecoratorKind(g.decorators,31))continue;let m=g.name.text,T=g.members,S="",v=!1;for(let k=0,R=T.length;k<R;++k){let C=T[k];if(C.kind!=59)continue;let D=C;if(!this.hasDecoratorKind(D.decorators,36))continue;let U=D.name.text;this.isVoidNoArgSignature(D.signature)||this.error(102,D.signature.range,"ToilDB: @derive method '"+m+"."+U+"' must take no arguments and return void."),S+="if(__id=="+a.toString()+"){this."+U+"();return true;}",t==null&&(t=g),v=!0,++a}if(!v)continue;this.injectClassMember(g,"__deriveRun(__id:i32):bool{"+S+"return false;}");let F="__toilDeriveInstance"+l.toString();n+="let "+F+":"+m+`|null=null;
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?t:-1)):this.readUnicodeEscape(e?t:-1);case 120:return this.readHexadecimalEscape(2,e?t:-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,t=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(t,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(Ut(a)){this.error(1161,this.range(t,this.pos));break}++this.pos,s=!1}return e.substring(t,this.pos)}readRegexpFlags(){let e=this.source.text,t=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!Ei(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(t,this.pos)),e.substring(t,this.pos)}testInteger(){let e=this.source.text,t=this.pos,n=this.end;if(t+1<n&&e.charCodeAt(t)==48)switch(e.charCodeAt(t+2)|32){case 120:case 98:case 111:return!0}for(;t<n;){let s=e.charCodeAt(t);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;t++}return!0}readInteger(){let e=this.source.text,t=this.pos;if(t+2<this.end&&e.charCodeAt(t)==48){switch(e.charCodeAt(t+1)|32){case 120:return this.pos=t+2,this.readHexInteger();case 98:return this.pos=t+2,this.readBinaryInteger();case 111:return this.pos=t+2,this.readOctalInteger()}if(Ra(e.charCodeAt(t+1))){let n=t;this.pos=t+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(4),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(Gn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readDecimalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(10),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(ct(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==t?this.error(a==s?6188:6189,this.range(t)):t-1==s&&e.charCodeAt(t-1)==48&&this.error(6188,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s,t),this.source.text.substring(s,t)),this.pos=t,l}readOctalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(3),u=l,p=!1;for(;t<n;){let _=e.charCodeAt(t);if(Ra(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(p=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):p&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readBinaryInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=l,u=!1;for(;t<n;){let p=e.charCodeAt(t);if(p==48)o=i64_shl(l,i64_one);else if(p==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(p==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt(l,o)&&(u=!0),l=o,++t}return t==s?this.error(1177,this.range(s)):a==t?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,t=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<t&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<t){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<t&&(l=e.charCodeAt(this.pos))==45||l==43&&ct(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 t=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=t.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&t.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!ct(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,t=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(ct(o))n=(n<<4)+o-48;else if(Gn(o))n=(n<<4)+(o|32)+-87;else return~t?(this.pos=--a,s.substring(t,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~t?s.substring(t,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&vi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let t=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(t,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(t,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(t,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Ul=class{constructor(i,e,t){this.pos=i;this.token=e;this.tokenPos=t}},Wc=null;var N;(S=>(S.None=0,S.Unreachable=1,S.I32=2,S.I64=3,S.F32=4,S.F64=5,S.V128=6,S.Funcref=D_(),S.Externref=G_(),S.Anyref=z_(),S.Eqref=U_(),S.Structref=O_(),S.Arrayref=q_(),S.I31ref=V_(),S.Stringref=W_(),S.Noneref=j_(),S.Nofuncref=H_(),S.Noexternref=K_()))(N||={});var Te;(m=>{m.Extern=8,m.Func=16,m.Any=32,m.Eq=40,m.I31=48,m.Struct=56,m.Array=64,m.Exn=7,m.String=80,m.None=88,m.Noextern=96,m.Nofunc=104;function f(T){return Q_(T)}m.isBottom=f;function d(T){return X_(T)}m.getBottom=d;function h(T,S){return J_(T,S)}m.isSubtype=h;function g(T,S){if(T==S)return T;if(d(T)!=d(S))return-1;if(f(T))return S;if(f(S))return T;if(T>S){let v=T;T=S,S=v}switch(T){case m.Extern:return S==m.String?T:-1;case m.Func:return-1;case m.Any:return T;case m.Eq:return S==m.I31||S==m.Struct||S==m.Array?m.Eq:m.Any;case m.I31:return S==m.Struct||S==m.Array?m.Eq:m.Any;case m.Struct:return S==m.Array?m.Eq:m.Any;case m.Array:return m.Any}return assert(!1),-1}m.leastUpperBound=g})(Te||={});var Kn;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(Kn||={});var Qc;(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})(Qc||={});var Xc=(O=>(O[O.MVP=0]="MVP",O[O.Atomics=1]="Atomics",O[O.MutableGlobals=2]="MutableGlobals",O[O.TruncSat=4]="TruncSat",O[O.SIMD=8]="SIMD",O[O.BulkMemory=16]="BulkMemory",O[O.SignExt=32]="SignExt",O[O.ExceptionHandling=64]="ExceptionHandling",O[O.TailCall=128]="TailCall",O[O.ReferenceTypes=256]="ReferenceTypes",O[O.MultiValue=512]="MultiValue",O[O.GC=1024]="GC",O[O.Memory64=2048]="Memory64",O[O.RelaxedSIMD=4096]="RelaxedSIMD",O[O.ExtendedConst=8192]="ExtendedConst",O[O.Strings=16384]="Strings",O[O.MultiMemory=32768]="MultiMemory",O[O.StackSwitching=65536]="StackSwitching",O[O.SharedEverything=131072]="SharedEverything",O[O.FP16=262144]="FP16",O[O.BulkMemoryOpt=524288]="BulkMemoryOpt",O[O.CallIndirectOverlong=1048576]="CallIndirectOverlong",O[O.RelaxedAtomics=4194304]="RelaxedAtomics",O[O.CustomPageSizes=8388608]="CustomPageSizes",O[O.Multibyte=16777216]="Multibyte",O[O.WideArithmetic=33554432]="WideArithmetic",O[O.All=67108863]="All",O))(Xc||{}),Mr=(M=>(M[M.Invalid=0]="Invalid",M[M.Block=1]="Block",M[M.If=2]="If",M[M.Loop=3]="Loop",M[M.Break=4]="Break",M[M.Switch=5]="Switch",M[M.Call=6]="Call",M[M.CallIndirect=7]="CallIndirect",M[M.LocalGet=8]="LocalGet",M[M.LocalSet=9]="LocalSet",M[M.GlobalGet=10]="GlobalGet",M[M.GlobalSet=11]="GlobalSet",M[M.Load=12]="Load",M[M.Store=13]="Store",M[M.Const=14]="Const",M[M.Unary=15]="Unary",M[M.Binary=16]="Binary",M[M.Select=17]="Select",M[M.Drop=18]="Drop",M[M.Return=19]="Return",M[M.MemorySize=20]="MemorySize",M[M.MemoryGrow=21]="MemoryGrow",M[M.Nop=22]="Nop",M[M.Unreachable=23]="Unreachable",M[M.AtomicRMW=24]="AtomicRMW",M[M.AtomicCmpxchg=25]="AtomicCmpxchg",M[M.AtomicWait=26]="AtomicWait",M[M.AtomicNotify=27]="AtomicNotify",M[M.AtomicFence=28]="AtomicFence",M[M.Pause=29]="Pause",M[M.SIMDExtract=30]="SIMDExtract",M[M.SIMDReplace=31]="SIMDReplace",M[M.SIMDShuffle=32]="SIMDShuffle",M[M.SIMDTernary=33]="SIMDTernary",M[M.SIMDShift=34]="SIMDShift",M[M.SIMDLoad=35]="SIMDLoad",M[M.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",M[M.MemoryInit=37]="MemoryInit",M[M.DataDrop=38]="DataDrop",M[M.MemoryCopy=39]="MemoryCopy",M[M.MemoryFill=40]="MemoryFill",M[M.Pop=41]="Pop",M[M.RefNull=42]="RefNull",M[M.RefIsNull=43]="RefIsNull",M[M.RefFunc=44]="RefFunc",M[M.RefEq=45]="RefEq",M[M.TableGet=46]="TableGet",M[M.TableSet=47]="TableSet",M[M.TableSize=48]="TableSize",M[M.TableGrow=49]="TableGrow",M[M.TableFill=50]="TableFill",M[M.TableCopy=51]="TableCopy",M[M.TableInit=52]="TableInit",M[M.ElemDrop=53]="ElemDrop",M[M.Try=54]="Try",M[M.TryTable=55]="TryTable",M[M.Throw=56]="Throw",M[M.Rethrow=57]="Rethrow",M[M.ThrowRef=58]="ThrowRef",M[M.TupleMake=59]="TupleMake",M[M.TupleExtract=60]="TupleExtract",M[M.RefI31=61]="RefI31",M[M.I31Get=62]="I31Get",M[M.CallRef=63]="CallRef",M[M.RefTest=64]="RefTest",M[M.RefCast=65]="RefCast",M[M.RefGetDesc=66]="RefGetDesc",M[M.BrOn=67]="BrOn",M[M.StructNew=68]="StructNew",M[M.StructGet=69]="StructGet",M[M.StructSet=70]="StructSet",M[M.StructRMW=71]="StructRMW",M[M.StructCmpxchg=72]="StructCmpxchg",M[M.ArrayNew=73]="ArrayNew",M[M.ArrayNewData=74]="ArrayNewData",M[M.ArrayNewElem=75]="ArrayNewElem",M[M.ArrayNewFixed=76]="ArrayNewFixed",M[M.ArrayGet=77]="ArrayGet",M[M.ArraySet=78]="ArraySet",M[M.ArrayLoad=79]="ArrayLoad",M[M.ArrayStore=80]="ArrayStore",M[M.ArrayLen=81]="ArrayLen",M[M.ArrayCopy=82]="ArrayCopy",M[M.ArrayFill=83]="ArrayFill",M[M.ArrayInitData=84]="ArrayInitData",M[M.ArrayInitElem=85]="ArrayInitElem",M[M.ArrayRMW=86]="ArrayRMW",M[M.ArrayCmpxchg=87]="ArrayCmpxchg",M[M.RefAs=88]="RefAs",M[M.StringNew=89]="StringNew",M[M.StringConst=90]="StringConst",M[M.StringMeasure=91]="StringMeasure",M[M.StringEncode=92]="StringEncode",M[M.StringConcat=93]="StringConcat",M[M.StringEq=94]="StringEq",M[M.StringTest=95]="StringTest",M[M.StringWTF16Get=96]="StringWTF16Get",M[M.StringSliceWTF=97]="StringSliceWTF",M[M.ContNew=98]="ContNew",M[M.ContBind=99]="ContBind",M[M.Suspend=100]="Suspend",M[M.Resume=101]="Resume",M[M.ResumeThrow=102]="ResumeThrow",M[M.StackSwitch=103]="StackSwitch",M[M.StructWait=104]="StructWait",M[M.StructNotify=105]="StructNotify",M[M.WideIntAddSub=106]="WideIntAddSub",M[M.WideIntMul=107]="WideIntMul",M))(Mr||{}),Jc=(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))(Jc||{}),Ag=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Ag||{}),Qn=(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))(Qn||{}),Ni=(A=>(A[A.AddI32=0]="AddI32",A[A.SubI32=1]="SubI32",A[A.MulI32=2]="MulI32",A[A.DivI32=3]="DivI32",A[A.DivU32=4]="DivU32",A[A.RemI32=5]="RemI32",A[A.RemU32=6]="RemU32",A[A.AndI32=7]="AndI32",A[A.OrI32=8]="OrI32",A[A.XorI32=9]="XorI32",A[A.ShlI32=10]="ShlI32",A[A.ShrI32=11]="ShrI32",A[A.ShrU32=12]="ShrU32",A[A.RotlI32=13]="RotlI32",A[A.RotrI32=14]="RotrI32",A[A.EqI32=15]="EqI32",A[A.NeI32=16]="NeI32",A[A.LtI32=17]="LtI32",A[A.LtU32=18]="LtU32",A[A.LeI32=19]="LeI32",A[A.LeU32=20]="LeU32",A[A.GtI32=21]="GtI32",A[A.GtU32=22]="GtU32",A[A.GeI32=23]="GeI32",A[A.GeU32=24]="GeU32",A[A.AddI64=25]="AddI64",A[A.SubI64=26]="SubI64",A[A.MulI64=27]="MulI64",A[A.DivI64=28]="DivI64",A[A.DivU64=29]="DivU64",A[A.RemI64=30]="RemI64",A[A.RemU64=31]="RemU64",A[A.AndI64=32]="AndI64",A[A.OrI64=33]="OrI64",A[A.XorI64=34]="XorI64",A[A.ShlI64=35]="ShlI64",A[A.ShrI64=36]="ShrI64",A[A.ShrU64=37]="ShrU64",A[A.RotlI64=38]="RotlI64",A[A.RotrI64=39]="RotrI64",A[A.EqI64=40]="EqI64",A[A.NeI64=41]="NeI64",A[A.LtI64=42]="LtI64",A[A.LtU64=43]="LtU64",A[A.LeI64=44]="LeI64",A[A.LeU64=45]="LeU64",A[A.GtI64=46]="GtI64",A[A.GtU64=47]="GtU64",A[A.GeI64=48]="GeI64",A[A.GeU64=49]="GeU64",A[A.AddF32=50]="AddF32",A[A.SubF32=51]="SubF32",A[A.MulF32=52]="MulF32",A[A.DivF32=53]="DivF32",A[A.CopysignF32=54]="CopysignF32",A[A.MinF32=55]="MinF32",A[A.MaxF32=56]="MaxF32",A[A.EqF32=57]="EqF32",A[A.NeF32=58]="NeF32",A[A.LtF32=59]="LtF32",A[A.LeF32=60]="LeF32",A[A.GtF32=61]="GtF32",A[A.GeF32=62]="GeF32",A[A.AddF64=63]="AddF64",A[A.SubF64=64]="SubF64",A[A.MulF64=65]="MulF64",A[A.DivF64=66]="DivF64",A[A.CopysignF64=67]="CopysignF64",A[A.MinF64=68]="MinF64",A[A.MaxF64=69]="MaxF64",A[A.EqF64=70]="EqF64",A[A.NeF64=71]="NeF64",A[A.LtF64=72]="LtF64",A[A.LeF64=73]="LeF64",A[A.GtF64=74]="GtF64",A[A.GeF64=75]="GeF64",A[A.EqI8x16=76]="EqI8x16",A[A.NeI8x16=77]="NeI8x16",A[A.LtI8x16=78]="LtI8x16",A[A.LtU8x16=79]="LtU8x16",A[A.GtI8x16=80]="GtI8x16",A[A.GtU8x16=81]="GtU8x16",A[A.LeI8x16=82]="LeI8x16",A[A.LeU8x16=83]="LeU8x16",A[A.GeI8x16=84]="GeI8x16",A[A.GeU8x16=85]="GeU8x16",A[A.EqI16x8=86]="EqI16x8",A[A.NeI16x8=87]="NeI16x8",A[A.LtI16x8=88]="LtI16x8",A[A.LtU16x8=89]="LtU16x8",A[A.GtI16x8=90]="GtI16x8",A[A.GtU16x8=91]="GtU16x8",A[A.LeI16x8=92]="LeI16x8",A[A.LeU16x8=93]="LeU16x8",A[A.GeI16x8=94]="GeI16x8",A[A.GeU16x8=95]="GeU16x8",A[A.EqI32x4=96]="EqI32x4",A[A.NeI32x4=97]="NeI32x4",A[A.LtI32x4=98]="LtI32x4",A[A.LtU32x4=99]="LtU32x4",A[A.GtI32x4=100]="GtI32x4",A[A.GtU32x4=101]="GtU32x4",A[A.LeI32x4=102]="LeI32x4",A[A.LeU32x4=103]="LeU32x4",A[A.GeI32x4=104]="GeI32x4",A[A.GeU32x4=105]="GeU32x4",A[A.EqI64x2=106]="EqI64x2",A[A.NeI64x2=107]="NeI64x2",A[A.LtI64x2=108]="LtI64x2",A[A.GtI64x2=109]="GtI64x2",A[A.LeI64x2=110]="LeI64x2",A[A.GeI64x2=111]="GeI64x2",A[A.EqF32x4=118]="EqF32x4",A[A.NeF32x4=119]="NeF32x4",A[A.LtF32x4=120]="LtF32x4",A[A.GtF32x4=121]="GtF32x4",A[A.LeF32x4=122]="LeF32x4",A[A.GeF32x4=123]="GeF32x4",A[A.EqF64x2=124]="EqF64x2",A[A.NeF64x2=125]="NeF64x2",A[A.LtF64x2=126]="LtF64x2",A[A.GtF64x2=127]="GtF64x2",A[A.LeF64x2=128]="LeF64x2",A[A.GeF64x2=129]="GeF64x2",A[A.AndV128=130]="AndV128",A[A.OrV128=131]="OrV128",A[A.XorV128=132]="XorV128",A[A.AndnotV128=133]="AndnotV128",A[A.AddI8x16=134]="AddI8x16",A[A.AddSatI8x16=135]="AddSatI8x16",A[A.AddSatU8x16=136]="AddSatU8x16",A[A.SubI8x16=137]="SubI8x16",A[A.SubSatI8x16=138]="SubSatI8x16",A[A.SubSatU8x16=139]="SubSatU8x16",A[A.MinI8x16=140]="MinI8x16",A[A.MinU8x16=141]="MinU8x16",A[A.MaxI8x16=142]="MaxI8x16",A[A.MaxU8x16=143]="MaxU8x16",A[A.AvgrU8x16=144]="AvgrU8x16",A[A.AddI16x8=145]="AddI16x8",A[A.AddSatI16x8=146]="AddSatI16x8",A[A.AddSatU16x8=147]="AddSatU16x8",A[A.SubI16x8=148]="SubI16x8",A[A.SubSatI16x8=149]="SubSatI16x8",A[A.SubSatU16x8=150]="SubSatU16x8",A[A.MulI16x8=151]="MulI16x8",A[A.MinI16x8=152]="MinI16x8",A[A.MinU16x8=153]="MinU16x8",A[A.MaxI16x8=154]="MaxI16x8",A[A.MaxU16x8=155]="MaxU16x8",A[A.AvgrU16x8=156]="AvgrU16x8",A[A.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",A[A.ExtmulLowI16x8=158]="ExtmulLowI16x8",A[A.ExtmulHighI16x8=159]="ExtmulHighI16x8",A[A.ExtmulLowU16x8=160]="ExtmulLowU16x8",A[A.ExtmulHighU16x8=161]="ExtmulHighU16x8",A[A.AddI32x4=162]="AddI32x4",A[A.SubI32x4=163]="SubI32x4",A[A.MulI32x4=164]="MulI32x4",A[A.MinI32x4=165]="MinI32x4",A[A.MinU32x4=166]="MinU32x4",A[A.MaxI32x4=167]="MaxI32x4",A[A.MaxU32x4=168]="MaxU32x4",A[A.DotI16x8=169]="DotI16x8",A[A.ExtmulLowI32x4=170]="ExtmulLowI32x4",A[A.ExtmulHighI32x4=171]="ExtmulHighI32x4",A[A.ExtmulLowU32x4=172]="ExtmulLowU32x4",A[A.ExtmulHighU32x4=173]="ExtmulHighU32x4",A[A.AddI64x2=174]="AddI64x2",A[A.SubI64x2=175]="SubI64x2",A[A.MulI64x2=176]="MulI64x2",A[A.ExtmulLowI64x2=177]="ExtmulLowI64x2",A[A.ExtmulHighI64x2=178]="ExtmulHighI64x2",A[A.ExtmulLowU64x2=179]="ExtmulLowU64x2",A[A.ExtmulHighU64x2=180]="ExtmulHighU64x2",A[A.AddF32x4=189]="AddF32x4",A[A.SubF32x4=190]="SubF32x4",A[A.MulF32x4=191]="MulF32x4",A[A.DivF32x4=192]="DivF32x4",A[A.MinF32x4=193]="MinF32x4",A[A.MaxF32x4=194]="MaxF32x4",A[A.PminF32x4=195]="PminF32x4",A[A.PmaxF32x4=196]="PmaxF32x4",A[A.AddF64x2=197]="AddF64x2",A[A.SubF64x2=198]="SubF64x2",A[A.MulF64x2=199]="MulF64x2",A[A.DivF64x2=200]="DivF64x2",A[A.MinF64x2=201]="MinF64x2",A[A.MaxF64x2=202]="MaxF64x2",A[A.PminF64x2=203]="PminF64x2",A[A.PmaxF64x2=204]="PmaxF64x2",A[A.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",A[A.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",A[A.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",A[A.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",A[A.SwizzleI8x16=209]="SwizzleI8x16",A[A.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",A[A.RelaxedMinF32x4=211]="RelaxedMinF32x4",A[A.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",A[A.RelaxedMinF64x2=213]="RelaxedMinF64x2",A[A.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",A[A.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",A[A.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",A[A._last=216]="_last",A[A.AddSize=217]="AddSize",A[A.SubSize=218]="SubSize",A[A.MulSize=219]="MulSize",A[A.DivISize=220]="DivISize",A[A.DivUSize=221]="DivUSize",A[A.RemISize=222]="RemISize",A[A.RemUSize=223]="RemUSize",A[A.AndSize=224]="AndSize",A[A.OrSize=225]="OrSize",A[A.XorSize=226]="XorSize",A[A.ShlSize=227]="ShlSize",A[A.ShrISize=228]="ShrISize",A[A.ShrUSize=229]="ShrUSize",A[A.RotlSize=230]="RotlSize",A[A.RotrSize=231]="RotrSize",A[A.EqSize=232]="EqSize",A[A.NeSize=233]="NeSize",A[A.LtISize=234]="LtISize",A[A.LtUSize=235]="LtUSize",A[A.LeISize=236]="LeISize",A[A.LeUSize=237]="LeUSize",A[A.GtISize=238]="GtISize",A[A.GtUSize=239]="GtUSize",A[A.GeISize=240]="GeISize",A[A.GeUSize=241]="GeUSize",A))(Ni||{}),Zc=(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))(Zc||{}),Yc=(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))(Yc||{}),$c=(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))($c||{}),ep=(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))(ep||{}),tp=(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))(tp||{}),rp=(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))(rp||{}),ip=(p=>(p[p.Bitselect=0]="Bitselect",p[p.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",p[p.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",p[p.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",p[p.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",p[p.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",p[p.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",p[p.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",p[p.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",p[p.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",p))(ip||{}),vg=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(vg||{}),Eg=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Eg||{}),Sg=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(Sg||{}),Ig=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Ig||{}),kg=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(kg||{}),Rg=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Rg||{}),Fg=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Fg||{}),wg=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(wg||{}),Wl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Wl||{}),Li=class{constructor(i,e){this.buffer=i;this.offset=e}},Ot=class r{constructor(i,e,t){this.ref=i;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==N.I32||t==N.I64),this.lit=gt(wo())}static create(i,e){return new r(Y_(),i,e)}static createFrom(i,e,t){let n=jn(i),s=new r(oy(n,i.length),e,t);return ie(changetype(n)),s}i32(i){let e=this.lit;return ef(e,i),ui(this.ref,e)}i64(i,e=0){let t=this.lit;return og(t,i64_new(i,e)),ui(this.ref,t)}usize(i){return i64_is(i)?this.sizeType==N.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==N.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return tf(e,i),ui(this.ref,e)}f64(i){let e=this.lit;return rf(e,i),ui(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let t=0;t<16;++t)ze(e+t,unchecked(i[t]));return nf(e,e),ui(this.ref,e)}ref_null(i){return ah(this.ref,i)}ref_eq(i,e){return _h(this.ref,i,e)}string_eq(i,e){return pc(this.ref,0,i,e)}string_compare(i,e){return pc(this.ref,1,i,e)}unary(i,e){if(i>141){let t=this.sizeType==N.I64;switch(i){case 142:i=t?1:0;break;case 143:i=t?3:2;break;case 144:i=t?5:4;break;case 145:i=t?21:20;break;default:assert(!1)}}return Zf(this.ref,i,e)}binary(i,e,t){if(i>216){let n=this.sizeType==N.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 rd(this.ref,i,e,t)}wide_int_add_sub(i,e,t,n,s){return ed(this.ref,i,e,t,n,s)}wide_int_mul(i,e,t){return td(this.ref,i,e,t)}memory_size(i=P.DefaultMemory,e=!1){let t=this.allocStringCached(i);return Nf(this.ref,t,e)}memory_grow(i,e=P.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Mf(this.ref,i,n,t)}table_size(i){let e=this.allocStringCached(i);return yh(this.ref,e)}table_grow(i,e,t=0){let n=this.allocStringCached(i);return gh(this.ref,n,t,e)}local_get(i,e){return Ff(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=Mt(i);return assert(e==N.I32||e==N.Unreachable),this.call(y.tostack,[i],e)}return i}local_tee(i,e,t,n=-1){return n==-1&&(n=Mt(e)),t&&this.useShadowStack&&(e=this.tostack(e)),wf(this.ref,i,e,n)}global_get(i,e){let t=this.allocStringCached(i);return Cf(this.ref,t,e)}table_get(i,e,t){let n=this.allocStringCached(i);return hh(this.ref,n,e,t)}load(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Gf(this.ref,i,e,s,a,n,t,o)}store(i,e,t,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return Wf(this.ref,i,s,a,e,t,n,o)}atomic_load(i,e,t,n=0,s=P.DefaultMemory,a=1){let l=this.allocStringCached(s);return qf(this.ref,i,n,t,e,l,a)}atomic_store(i,e,t,n,s=0,a=P.DefaultMemory,l=1){let o=this.allocStringCached(a);return Kf(this.ref,i,s,e,t,n,o,l)}atomic_rmw(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return dd(this.ref,i,e,t,n,s,a,u,o)}atomic_cmpxchg(i,e,t,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return yd(this.ref,i,e,t,n,s,a,u,o)}atomic_wait(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Td(this.ref,i,e,t,n,a)}atomic_notify(i,e,t=P.DefaultMemory){let n=this.allocStringCached(t);return Sd(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Rd(this.ref,e)}local_set(i,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),gn(this.ref,i,e)}global_set(i,e){let t=this.allocStringCached(i);return Pf(this.ref,t,e)}table_set(i,e,t){let n=this.allocStringCached(i);return mh(this.ref,n,e,t)}block(i,e,t=N.None){let n=this.allocStringCached(i),s=he(e),a=lf(this.ref,n,s,e.length,t);return ie(s),a}flatten(i,e=N.None){let t=i.length;if(t==0)return this.nop();if(t==1){let n=i[0];switch(re(n)){case 19:case 56:case 23:return n}let s=le(n);return s!=N.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,t=0){let n=this.allocStringCached(i);return hf(this.ref,n,e,t)}drop(i){return Mo(this.ref,i)}maybeDrop(i){let e=Mt(i);return e!=N.None&&e!=N.Unreachable?Mo(this.ref,i):i}maybeDropCondition(i,e){return(Gi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],le(e)):e}loop(i,e){let t=this.allocStringCached(i);return ff(this.ref,t,e)}if(i,e,t=0){return uf(this.ref,i,e,t)}nop(){return _d(this.ref)}return(i=0){return pd(this.ref,i)}select(i,e,t){return ad(this.ref,t,i,e)}switch(i,e,t,n=0){let s=i.length,a=new Array(s);for(let p=0;p<s;++p)unchecked(a[p]=this.allocStringCached(i[p]));let l=he(a),o=this.allocStringCached(e),u=gf(this.ref,l,s,o,t,n);return ie(l),u}call(i,e,t,n=!1){let s=this.allocStringCached(i),a=he(e),l=n?Sf(this.ref,s,a,e?e.length:0,t):Ef(this.ref,s,a,e?e.length:0,t);return ie(a),l}return_call(i,e,t){return this.call(i,e,t,!0)}call_indirect(i,e,t,n,s,a=!1){let l=this.allocStringCached(i??P.DefaultTable),o=he(t),u=a?Rf(this.ref,l,e,o,t?t.length:0,n,s):If(this.ref,l,e,o,t?t.length:0,n,s);return ie(o),u}return_call_indirect(i,e,t,n,s){return this.call_indirect(i,e,t,n,s,!0)}unreachable(){return fd(this.ref)}memory_copy(i,e,t,n=P.DefaultMemory,s=P.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return Yd(this.ref,i,e,t,a,l)}memory_fill(i,e,t,n=P.DefaultMemory){let s=this.allocStringCached(n);return rh(this.ref,i,e,t,s)}try(i,e,t,n,s=null){let a=t.length,l=new Array(a);for(let d=0;d<a;++d)l[d]=this.allocStringCached(t[d]);let o=he(l),u=he(n),p=this.allocStringCached(i),_=this.allocStringCached(s),f=bh(this.ref,p,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let t=this.allocStringCached(i),n=he(e),s=Ah(this.ref,t,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return Sh(this.ref,e)}pop(i){return wh(this.ref,i)}tuple_make(i){let e=he(i),t=Ih(this.ref,e,i.length);return ie(e),t}tuple_extract(i,e){return Rh(this.ref,i,e)}simd_extract(i,e,t){return Fd(this.ref,i,e,t)}simd_replace(i,e,t,n){return Cd(this.ref,i,e,t,n)}simd_shuffle(i,e,t){assert(t.length==16);let n=jn(t),s=Ld(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,t,n){return Dd(this.ref,i,e,t,n)}simd_shift(i,e,t){return Vd(this.ref,i,e,t)}simd_load(i,e,t,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return Wd(this.ref,i,t,n,e,a)}simd_loadstorelane(i,e,t,n,s,a,l=P.DefaultMemory){let o=this.allocStringCached(l);return Kd(this.ref,i,t,n,s,e,a,o)}ref_is_null(i){return lh(this.ref,i)}ref_as(i,e){return mu(this.ref,i,e)}ref_as_nonnull(i){return Cg(le(i))?mu(this.ref,0,i):i}ref_func(i,e){let t=this.allocStringCached(i);return ch(this.ref,t,$t(e))}i31_new(i){return Ch(this.ref,i)}i31_get(i,e){return Bh(this.ref,i,e)}addGlobal(i,e,t,n){let s=this.allocStringCached(i);return Gm(this.ref,s,e,t,n)}getGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return xc(this.ref,e)?(zm(this.ref,e),!0):!1}addTag(i,e,t){let n=this.allocStringCached(i);return jm(this.ref,n,e,t)}getTag(i){let e=this.allocStringCached(i);return Km(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);Hm(this.ref,e)}addFunction(i,e,t,n,s){let a=this.allocStringCached(i),l=he(n),o=ci(this.ref,a,e,t,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,t){vm(i,e,this.allocStringCached(t))}getFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);Fn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return pi(this.ref,e)!=0}addTemporaryFunction(i,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=he(e),a=ci(this.ref,n,Ye(e),i,0,0,t);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");Fn(this.ref,i)}setStart(i){ty(this.ref,i)}addFunctionExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return _a(this.ref,t,n)}addTableExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Cm(this.ref,t,n)}addMemoryExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Pm(this.ref,t,n)}addGlobalExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Bm(this.ref,t,n)}addTagExport(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);return Lm(this.ref,t,n)}removeExport(i){let e=this.allocStringCached(i);da(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return fa(this.ref,e)!=0}addFunctionImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Im(this.ref,a,l,o,n,s)}addTableImport(i,e,t){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(t);km(this.ref,n,s,a)}addMemoryImport(i,e,t,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(t);Rm(this.ref,s,a,l,n)}addGlobalImport(i,e,t,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);Fm(this.ref,a,l,o,n,s)}addTagImport(i,e,t,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(t);wm(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,t,n,s=null,a=P.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),p=t.length,_=new Array(p),f=new Uint8Array(p),d=new Array(p),h=new Array(p);for(let v=0;v<p;++v){let F=unchecked(t[v]),k=F.buffer,R=F.offset;unchecked(_[v]=jn(k)),unchecked(f[v]=0),unchecked(d[v]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(h[v]=k.length)}let g=he(_),m=jn(f),T=he(d),S=Hc(h);ey(this.ref,i,e,o,0,g,m,T,S,p,l,!1,u),ie(S),ie(T),ie(m),ie(g);for(let v=p-1;v>=0;--v)ie(unchecked(_[v]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,t,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=he(o),p=Ac(this.ref,a);p?(Zm(p,e),Ym(p,t)):p=Tc(this.ref,a,e,t,N.Funcref),$m(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);Ac(this.ref,e)||Tc(this.ref,e,0,r.UNLIMITED_TABLE,N.Funcref)}addCustomSection(i,e){let t=this.allocStringCached(i),n=jn(e);dy(this.ref,t,n,e.length),ie(n)}getOptimizeLevel(){return Cy()}setOptimizeLevel(i){Py(i)}getShrinkLevel(){return By()}setShrinkLevel(i){Ly(i)}getDebugInfo(){return Ny()}setDebugInfo(i){My(i)}getTrapsNeverHappen(){return Dy()}setTrapsNeverHappen(i){Gy(i)}getClosedWorld(){return zy()}setClosedWorld(i){Uy(i)}getLowMemoryUnused(){return Vy()}setLowMemoryUnused(i){Oy(i)}getZeroFilledMemory(){return qy()}setZeroFilledMemory(i){Wy(i)}getFastMath(){return jy()}setFastMath(i){Ky(i)}getGenerateStackIR(){return Hy()}setGenerateStackIR(i){Qy(i)}getOptimizeStackIR(){return Xy()}setOptimizeStackIR(i){Jy(i)}getPassArgument(i){let e=this.allocStringCached(i),t=Zy(e);return t?He(t):null}setPassArgument(i,e){let t=this.allocStringCached(i),n=this.allocStringCached(e);Yy(t,n)}clearPassArguments(){$y()}getAlwaysInlineMaxSize(){return eg()}setAlwaysInlineMaxSize(i){tg(i)}getFlexibleInlineMaxSize(){return rg()}setFlexibleInlineMaxSize(i){ig(i)}getOneCallerInlineMaxSize(){return ng()}setOneCallerInlineMaxSize(i){sg(i)}getAllowInliningFunctionsWithLoops(){return ag()}setAllowInliningFunctionsWithLoops(i){lg(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return _y(this.ref)}setFeatures(i){i&16&&(i|=524288),fy(this.ref,i)}runPasses(i,e=0){let t=i.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Vl(i[a]);let s=he(n);e?Em(e,this.ref,s,t):iy(this.ref,s,t),ie(s);for(let a=t-1;a>=0;--a)ie(n[a])}optimize(i,e,t=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(t),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 ry(this.ref)==1}interpret(){uy(this.ref)}toBinary(i=null){assert(wo()>=ny());let e=this.lit,t=Vl(i);sy(e,this.ref,t);let n=rr(e+0),s=rr(e+4),a=rr(e+8),l=new ql(R1(assert(n),s),He(a));return t&&ie(t),a&&ie(a),ie(n),l}toText(i=!0){let e=i?ly(this.ref):ay(this.ref),t=He(e);return e&&ie(e),t||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let t=Vl(i);return e.set(i,t),t}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let t=He(i);return e.set(i,t),t}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),$_(this.ref),this.ref=0}createRelooper(){return Ol.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Nt(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return sf(i,this.ref)}runExpression(i,e,t=50,n=1){let s=Ay(this.ref,e,t,n),a=vy(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(le(a)==le(i))}return a}isConstExpression(i){switch(re(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Mi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(et(i))&&this.isConstExpression(qe(i))}break}}return!1}addDebugInfoFile(i){let e=Vl(i),t=cy(this.ref,e);return ie(e),t}getDebugInfoFile(i){return He(py(this.ref,i))}setDebugLocation(i,e,t,n,s){Sm(i,e,t,n,s)}};function Ye(r){if(!r)return N.None;switch(r.length){case 0:return N.None;case 1:return r[0]}let i=he(r),e=B_(i,r.length);return ie(i),e}function np(r){let i=L_(r),e=gt(i<<2);N_(r,e);let t=new Array(i);for(let n=0;n<i;++n)unchecked(t[n]=rr(e+(n<<2)));return ie(e),t}function Cg(r){return M_(r)}function re(r){return Nt(r)}function le(r){return Mt(r)}function ne(r){return Hf(r)}function Ie(r){return i64_low(Ic(r))}function Ne(r){return i64_high(Ic(r))}function sp(r,i){let e=0,t=0;return i?(e=Ie(r),t=Ne(r)):e=ne(r),i64_new(e,t)}function Ee(r){return Qf(r)}function Se(r){return Xf(r)}function ap(r){let i=gt(16);Jf(r,i);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Ir(i+t);return ie(i),e}function $e(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)==0:i==N.I64?(Ie(r)|Ne(r))==0:i==N.F32?Ee(r)==0:i==N.F64?Se(r)==0:!1}function dt(r){if(re(r)!=14)return!1;let i=le(r);return i==N.I32?ne(r)!=0:i==N.I64?(Ie(r)|Ne(r))!=0:i==N.F32?Ee(r)!=0:i==N.F64?Se(r)!=0:!1}function jl(r){if(re(r)!=14)return!1;let i=le(r);if(i==N.F32){let e=Ee(r);return e==0&&f32_as_i32(e)<0}if(i==N.F64){let e=Se(r);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function t1(r){if(re(r)!=14)return!1;let i=le(r);return i==N.F32?isNaN(Ee(r)):i==N.F64?isNaN(Se(r)):!1}function Kl(r,i){let e=re(i),t=le(i);if(t==N.F32||t==N.F64){if(e==14)return isNaN(t==N.F32?Ee(i):Se(i));if(e==10){let n=r.runExpression(i,0,8);if(n)return isNaN(t==N.F32?Ee(n):Se(n))}}return!1}function Tt(r){return ra(r)}function Hl(r){return oi(r)}function Ql(r){return vr(r)}function Xn(r){return ia(r)}function Jn(r){return He(sa(r))}function Mi(r){return id(r)}function et(r){return vn(r)}function qe(r){return En(r)}function Zn(r){return Yf(r)}function Xl(r){return An(r)}function lp(r){return Vf(r)}function r1(r){return Uf(r)}function i1(r){return xn(r)}function op(r){return zf(r)}function n1(r){return aa(r)}function s1(r){return la(r)}function a1(r){return Er(r)}function l1(r){return Tn(r)}function Yn(r){return He(Zs(r))}function $n(r){return un(r)}function es(r,i){return cn(r,i)}function Jl(r){return pn(r)}function ts(r){return _n(r)}function Di(r){return fn(r)}function o1(r){return He(Ys(r))}function u1(r){return dn(r)}function c1(r){return He($s(r))}function p1(r){return hn(r)}function up(r){return Sn(r)}function cp(r){return In(r)}function _1(r){return kn(r)}function f1(r){return Rn(r)}function d1(r){return Sr(r)}function rs(r){return He(li(r))}function At(r){return er(r)}function Qe(r,i){return tr(r,i)}function h1(r){return bn(r)}function m1(r){return Dt(r)}function pp(r){return He(fi(r))}function y1(r){return Cn(r)}function g1(r){return Pn(r)}function b1(r){let i=ca(r),e=new Array(i);for(let t=0;t<i;++t)unchecked(e[t]=pa(r,t));return e}function x1(r){return He(Om(r))}function T1(r){return qm(r)}function _p(r){return Wm(r)}function A1(r){return ha(r)}function v1(r){return He(Qm(r))}function E1(r){return Xm(r)}function S1(r){return Jm(r)}var Ol=class r{constructor(i,e){this.module=i;this.ref=e}static create(i){return new r(i,my(i.ref))}addBlock(i){return yy(this.ref,i)}addBranch(i,e,t=0,n=0){gy(i,e,t,n)}addBlockWithSwitch(i,e){return by(this.ref,i,e)}addBranchForSwitch(i,e,t,n=0){let s=I1(t);xy(i,e,s,t.length,n),ie(s)}renderAndDispose(i,e){return Ty(this.ref,i,e)}},Hn=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 t=this.values.indexOf(i),n=this.addCode(e);t>=0?this.indexes[t]=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,t=e.indexOf(i);return t<0&&(t=e.length,e.push(i)),t}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let t=this.module,n=this.cases,s=n.length;if(!s)return t.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),p=new Array(s);for(let g=0;g<s;++g)unchecked(p[g]=`case${g}${e}`);u[0]=t.local_set(i,this.condition,!1);for(let g=0;g<l;++g){let m=unchecked(o[g]);unchecked(u[1+g]=t.br(p[m],t.binary(15,t.local_get(i,N.I32),t.i32(a[g]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=t.br(~_?p[_]:f);let d=t.block(p[0],u);for(let g=1;g<s;++g){let m=n[g-1];m.unshift(d),d=t.block(unchecked(p[g]),m)}let h=n[s-1];return h.unshift(d),t.block(~_?null:f,h)}},fp=(T=>(T[T.None=0]="None",T[T.Branches=1]="Branches",T[T.Calls=2]="Calls",T[T.ReadsLocal=4]="ReadsLocal",T[T.WritesLocal=8]="WritesLocal",T[T.ReadsGlobal=16]="ReadsGlobal",T[T.WritesGlobal=32]="WritesGlobal",T[T.ReadsMemory=64]="ReadsMemory",T[T.WritesMemory=128]="WritesMemory",T[T.ReadsTable=256]="ReadsTable",T[T.WritesTable=512]="WritesTable",T[T.ImplicitTrap=1024]="ImplicitTrap",T[T.IsAtomic=2048]="IsAtomic",T[T.Throws=4096]="Throws",T[T.DanglingPop=8192]="DanglingPop",T[T.TrapsNeverHappen=16384]="TrapsNeverHappen",T[T.Any=32767]="Any",T))(fp||{});function Gi(r,i){return hy(r,i)}function Zl(r,i){return(Gi(r,i)&-21)!=0}function jn(r){if(!r)return 0;let i=r.length,e=gt(i);for(let t=0;t<i;++t)ze(e+t,unchecked(r[t]));return e}function I1(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ya(t,s),t+=4}return e}function Hc(r){if(!r)return 0;let i=r.length,e=gt(i<<2),t=e;for(let n=0;n<i;++n){let s=unchecked(r[n]);ya(t,s),t+=4}return e}function he(r){if(!r)return 0;assert(ASC_TARGET!=2);let i=r.length,e=gt(i<<2),t=e;for(let n=0,s=i;n<s;++n){let a=unchecked(r[n]);ya(t,a),t+=4}return e}function k1(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:Ai(n)&&e+1<t&&ka(r.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Vl(r){if(r==null)return 0;let i=k1(r),e=gt(i+1)>>>0,t=e;if(i==r.length)for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0;ze(t++,a)}else for(let n=0,s=r.length;n<s;++n){let a=r.charCodeAt(n)>>>0,l;a<=127?ze(t++,a):a<=2047?(ze(t++,192|a>>>6),ze(t++,128|a&63)):Ai(a)&&n+1<s&&ka(l=r.charCodeAt(n+1))?(a=Dn(a,l),++n,ze(t++,240|a>>>18),ze(t++,128|a>>>12&63),ze(t++,128|a>>>6&63),ze(t++,128|a&63)):(ze(t++,224|a>>>12),ze(t++,128|a>>>6&63),ze(t++,128|a&63))}return ze(t,0),e}function R1(r,i){let e=new Uint8Array(i);for(let t=0;t<i;++t)unchecked(e[t]=Ir(r+t));return e}function He(r){if(!r)return null;let i=new Array,e,t,n,s;for(;e=Ir(r++);){if(!(e&128)){i.push(e);continue}if(t=Ir(r++)&63,(e&224)==192){i.push((e&31)<<6|t);continue}if(n=Ir(r++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Ir(r++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(Mn|a>>>10),i.push(Ti|a&1023)}}return String.fromCharCodes(i)}var ql=class{constructor(i,e){this.output=i;this.sourceMap=e}},Vt=!1;function is(r){if(r==c.void)return N.None;let i=Pg(r);if(i)return i;let e=r;if(r=r.nonNullableType,i=r.ref)return me($t(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Ey(0),n=new Map;ar(t,n,r);let s=ma(t),a=gt(max(4*s,8));if(!Ry(t,a,a,a+4)){let l=rr(a),o=rr(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Qc.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let p=l[o];assert(!p.is(512));let _=rr(a+4*o),f=me(_,!1);assert(!p.ref),p.ref=f,Vt&&console.log(` set ${p.toString()}`);let d=p.getClass();if(d){let h=d.program.module;Fy(h.ref,_,h.allocStringCached(d.internalName));let g=d.members;if(g){let m=Z_(_),T=0;for(let S=Map_values(g),v=0,F=S.length;v<F;++v){let k=S[v];if(k.kind!=10)continue;let R=k.instance;!R||!R.isField||wy(h.ref,_,T++,h.allocStringCached(R.name))}assert(m==T)}}}return ie(a),Vt&&console.log(` finalize ${r.toString()}`),i=assert(r.ref),me($t(i),e.is(512))}function Pg(r){switch(r.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return N.I32;case 4:case 9:return N.I64;case 5:case 10:{if(r.isInternalReference)break;return r.size==64?N.I64:N.I32}case 11:return N.F32;case 12:return N.F64;case 13:return N.V128;case 15:return me(Te.Func,r.is(512));case 14:return me(Te.Extern,r.is(512));case 16:return me(Te.Any,r.is(512));case 17:return me(Te.Eq,r.is(512));case 18:return me(Te.Struct,r.is(512));case 19:return me(Te.Array,r.is(512));case 20:return me(Te.I31,r.is(512));case 21:return me(Te.String,r.is(512));case 25:assert(!1)}return 0}function F1(r){switch(r.kind){case 0:case 1:case 6:return Kn.I8;case 2:case 7:return Kn.I16}return Kn.NotPacked}function ar(r,i,e){if(e==c.void)return N.None;let t=Pg(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(i.has(e))return Vt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Vt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=ar(r,i,a.type));let o=ma(r);vc(r,1),Vt&&console.log(` block [${o}]: ${e.toString()}`);let u=Ec(r,o);t=di(r,u,!1),i.set(e,t);let p=new Array,_=new Array,f=new Array,d=n.members;if(d)for(let T=Map_values(d),S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=10)continue;let k=F.instance;if(!k||!k.isField)continue;let R=k.type;Vt&&console.log(` field ${R.toString()}`),R.is(512)?p.push(di(r,$t(ar(r,i,R.nonNullableType)),!0)):p.push(ar(r,i,R)),_.push(F1(R)),f.push(1)}let h=he(p),g=Hc(_),m=Hc(f);return Vt&&console.log(` concretize [${o}]: ${e.toString()}`),Iy(r,o,h,g,m,p.length),a&&(Vt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),ky(r,o,$t(l))),ie(m),ie(g),ie(h),t}let s=e.getSignature();if(s){let a=ma(r);vc(r,1);let l=di(r,Ec(r,a),!1);i.set(e,l);let o=new Array,u=new Array,p=s.parameterTypes;for(let h=0,g=p.length;h<g;++h){let m=p[h];m.is(512)?o.push(di(r,$t(ar(r,i,m.nonNullableType)),!0)):o.push(ar(r,i,m))}let _=s.returnType;u.push(_==c.void?N.None:_.is(512)?di(r,$t(ar(r,i,_.nonNullableType)),!0):ar(r,i,_));let f;if(o.length>1){let h=he(o);f=Sc(r,h,o.length),ie(h)}else f=o.length?o[0]:N.None;let d;if(u.length>1){let h=he(u);d=Sc(r,h,u.length),ie(h)}else d=u[0];return Vt&&console.log(` concretize [${a}]: ${e.toString()}`),Sy(r,a,f,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var $l=(k=>(k[k.None=0]="None",k[k.Returns=1]="Returns",k[k.ReturnsWrapped=2]="ReturnsWrapped",k[k.ReturnsNonNull=4]="ReturnsNonNull",k[k.Throws=8]="Throws",k[k.Breaks=16]="Breaks",k[k.Continues=32]="Continues",k[k.AccessesThis=64]="AccessesThis",k[k.CallsSuper=128]="CallsSuper",k[k.Terminates=256]="Terminates",k[k.ConditionallyReturns=512]="ConditionallyReturns",k[k.ConditionallyThrows=1024]="ConditionallyThrows",k[k.ConditionallyBreaks=2048]="ConditionallyBreaks",k[k.ConditionallyContinues=4096]="ConditionallyContinues",k[k.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",k[k.MayReturnNonThis=16384]="MayReturnNonThis",k[k.UncheckedContext=32768]="UncheckedContext",k[k.CtorParamContext=65536]="CtorParamContext",k[k.InlineContext=131072]="InlineContext",k[k.AnyCategorical=511]="AnyCategorical",k[k.AnyConditional=15872]="AnyConditional",k))($l||{}),ns=(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))(ns||{}),dp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(dp||{}),hp=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(hp||{}),qt=class r{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 r(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let t=new r(i,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&t.set(32768),t}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 t=new r(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,i?t.flags&=-2065:t.breakLabel=this.breakLabel,e?t.flags&=-4129:t.continueLabel=this.continueLabel,t.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);t.thisFieldFlags=_e(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(i,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(i,e)}forkElse(i){let e=this.fork(),t=this.falseFlows;return t&&t.has(i)&&e.inherit(changetype(t.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(i,e)}addScopedTypeAlias(i,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let t=this.sourceFunction.parent;return t.kind==5?t.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 t=this.getTempLocal(e);t.name=i,t.internalName=Me(i,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,t.set(67108864),n.set(i,t),t}addScopedDummyLocal(i,e,t){let n=new Xe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,t.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,t,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(t<this.targetFunction.localsByIndex.length);let a=new Xe(i,t,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let t=assert(e.get(i));assert(t.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let t=e.scopedLocals;if(t&&t.has(i))return assert(t.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let t=e.lookupLocal(i);if(t)return t;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,t=!0){if(i<0)return t;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let t=this.localFlags,n=i<t.length?unchecked(t[i]):0;t[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let t=e;this.thisFieldFlags=new Map;let n=t.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!=t||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let t=this.thisFieldFlags;return t!=null&&t.has(i)?(changetype(t.get(i))&e)==e:!1}setThisFieldFlag(i,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(i)){let n=changetype(t.get(i));t.set(i,n|e)}else t.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,t=i.breakStack;return t?t.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.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,t=i.flags,n=0;e&1?n|=1:t&1?n|=512:n|=(e|t)&512,n|=e&t&2,n|=e&t&4,e&8?n|=8:t&8?n|=1024:n|=(e|t)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?t&32?n|=4096:n|=(e|t)&4096:n|=e&4096,e&64?t&64?n|=64:n|=8192:t&64&&(n|=8192),n|=(e|t)&16384,n|=e&t&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,t=e.length,n=i.localFlags,s=n.length,a=max(t,s);for(let l=0;l<a;++l){let o=l<t?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 t=i.flags,n=e.flags,s=0;t&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(t|n)&512,t&2&&n&2&&(s|=2),t&4&&n&4&&(s|=4),t&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(t|n)&1024,t&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(t|n)&2048,t&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(t|n)&4096,t&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(t|n)&8192,s|=(t|n)&16384,t&128&&n&128&&(s|=128),t&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(t&256){if(!(n&256)){let o=e.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,p=o.length;u<p;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,p=e.localFlags,_=p.length,f=max(u,_);for(let d=0;d<f;++d){let h=d<u?o[d]:0,g=d<_?p[d]:0;a[d]=h&g&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let p=Map_keys(l),_=0,f=p.length;_<f;++_){let d=p[_];(changetype(l.get(d))&1)!=0&&u.has(d)&&changetype(u.get(d))&1&&o.set(d,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let t=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(t,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(re(i)){case 9:{if(!Xn(i))break;let t=this.targetFunction.localsByIndex[Hl(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch(re(i)){case 9:{if(!Xn(i))break;let t=this.targetFunction.localsByIndex[Hl(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(Ql(i),e);break}case 8:{let t=this.targetFunction.localsByIndex[Tt(i)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=Di(i);t&&$e(t)&&(this.inheritNonnullIfTrue(Jl(i),e),this.inheritNonnullIfTrue(ts(i),e));break}case 15:{switch(Zn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Xl(i),e);break}}break}case 16:{switch(Mi(i)){case 15:case 40:{let t=et(i),n=qe(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=et(i),n=qe(i);$e(t)?this.inheritNonnullIfTrue(n,e):$e(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=rs(i);if(t==y.String_eq){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);$e(n)?this.inheritNonnullIfTrue(s,e):$e(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfFalse(Qe(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfTrue(Qe(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch(re(i)){case 15:{switch(Zn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Xl(i),e);break}}break}case 2:{let t=ts(i);Di(i)&&dt(t)&&(this.inheritNonnullIfFalse(Jl(i),e),this.inheritNonnullIfFalse(Di(i),e));break}case 16:{switch(Mi(i)){case 15:case 40:{let t=et(i),n=qe(i);$e(t)?this.inheritNonnullIfTrue(n,e):$e(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=et(i),n=qe(i);dt(t)?this.inheritNonnullIfTrue(n,e):dt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=rs(i);if(t==y.String_eq){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);$e(n)?this.inheritNonnullIfTrue(s,e):$e(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==y.String_ne){assert(At(i)==2);let n=Qe(i,0),s=Qe(i,1);dt(n)?this.inheritNonnullIfTrue(s,e):dt(s)&&this.inheritNonnullIfTrue(n,e)}else t==y.String_not?(assert(At(i)==1),this.inheritNonnullIfTrue(Qe(i,0),e)):t==y.tostack&&(assert(At(i)==1),this.inheritNonnullIfFalse(Qe(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(i)){case 8:{let n=this.targetFunction.localsByIndex[Tt(i)];return!this.isLocalFlag(n.index,2,!0)||Yl(n.type,e)}case 9:return assert(Xn(i)),this.canOverflow(Ql(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Jn(i))));return assert(n.kind==0||n.kind==3),Yl(n.type,e)}case 16:{switch(Mi(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!(re(t=et(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow(qe(i),e))||re(t=qe(i))==14&&(ne(t)==0||ne(t)==1&&!this.canOverflow(et(i),e)));case 7:return!(re(t=et(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e)||re(t=qe(i))==14&&ne(t)<=e.computeSmallIntegerMask(c.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=qe(i))!=14||ne(t)<n}case 11:{let n=32-e.size;return this.canOverflow(et(i),e)&&(re(t=qe(i))!=14||ne(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=qe(i))==14&&ne(t)>n):this.canOverflow(et(i),e)&&!(re(t=qe(i))==14&&ne(t)>=n)}case 4:case 5:case 6:return this.canOverflow(et(i),e)||this.canOverflow(qe(i),e)}break}case 15:{switch(Zn(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(le(i)){case N.I32:{n=ne(i);break}case N.I64:{n=Ie(i);break}case N.F32:{n=i32(Ee(i));break}case N.F64:{n=i32(Se(i));break}case N.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(lp(i)){case 1:{n=s?c.i8:c.u8;break}case 2:{n=s?c.i16:c.u16;break}default:{n=s?c.i32:c.u32;break}}return Yl(n,e)}case 1:{if(!Yn(i)){let n=assert($n(i)),s=es(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(ts(i),e)||this.canOverflow(assert(Di(i)),e);case 17:return this.canOverflow(up(i),e)||this.canOverflow(cp(i),e);case 6:{let s=this.program.instancesByName,a=assert(rs(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)||Yl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let t=new Array;return this.is(1)&&t.push("RETURNS"),this.is(2)&&t.push("RETURNS_WRAPPED"),this.is(4)&&t.push("RETURNS_NONNULL"),this.is(8)&&t.push("THROWS"),this.is(16)&&t.push("BREAKS"),this.is(32)&&t.push("CONTINUES"),this.is(64)&&t.push("ACCESSES_THIS"),this.is(128)&&t.push("CALLS_SUPER"),this.is(256)&&t.push("TERMINATES"),this.is(512)&&t.push("CONDITIONALLY_RETURNS"),this.is(1024)&&t.push("CONDITIONALLY_THROWS"),this.is(2048)&&t.push("CONDITIONALLY_BREAKS"),this.is(4096)&&t.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&t.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&t.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${t.join(" ")}`}};function Yl(r,i){return i.isShortIntegerValue&&(!r.isIntegerValue||r.size>i.size||r.isSignedIntegerValue!=i.isSignedIntegerValue)}var io=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(io||{}),ss=class extends Ze{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,t,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,t,n,s,a);break}case 2:{l=this.resolveFunctionType(e,t,n,s,a);break}case 3:{l=this.resolveTupleType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,t,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 d=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,d.toString()),e.isNullable){if(d.isReference)return d.asNullable();a==0&&this.error(204,e.range,d.toString())}return d}}let p=this.resolveTypeName(l,t,n,a);if(!p)return null;let _=p.shadowType;if(_)p=_;else{if(p.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${p.name}/i32`),c.i32;if(p.kind==6||p.kind==8){let f=this.resolveClassInclTypeArguments(p,o,t,n,_e(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(p.kind==14){let f=p;if(p.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,p.internalName);let m=f.type;if(e.isNullable){if(m.isReference)return m.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return m}if(u){let m=l.identifier.text;if(or.has(m)){let T=assert(or.get(m)),S=new no(this,e,n,s,a);return T(S)}}let d=f.typeParameterNodes,h=null;if(d){if(h=this.resolveTypeArguments(d,o,t,n,s=_e(s),e,a),!h)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let g=this.resolveType(f.typeNode,t,p,s,a);if(!g)return null;if(e.isNullable){if(g.isReference)return g.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return g}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,t,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,t,n,s,a),!o))return null;let u=e.parameters,p=u.length,_=new Array(p),f=0,d=!1;for(let T=0;T<p;++T){let S=u[T];switch(S.parameterKind){case 0:{f=T+1;break}case 2:{assert(T==p-1),d=!0;break}}let v=S.type;if(Le(v))return a==0&&this.error(1110,v.range),null;let F=this.resolveType(v,t,n,s,a);if(!F)return null;if(F==c.void)return a==0&&this.error(214,v.range,F.toString()),null;_[T]=F}let h=e.returnType,g;if(Le(h))a==0&&this.error(1110,h.range),g=c.void;else if(g=this.resolveType(h,t,n,s,a),!g)return null;let m=Je.create(this.program,_,g,o,f,d);return e.isNullable?m.type.asNullable():m.type}resolveTupleType(e,t,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],t,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,t,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,t,n,s=0){let a=null;if(t&&(a=t.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,t,n,s,a=new Map,l=null,o=0){let u=0,p=0;for(let h=0,g=e.length;h<g;++h)e[h].defaultType||++u,++p;let _=t?t.length:0;if(_<u||_>p)return o==0&&this.error(2558,_?ce.join(t[0].range,t[_-1].range):l.range,(_<u?u:p).toString(),_.toString()),null;let f=new Array(p),d=_e(a);a.clear();for(let h=0;h<p;++h){let g=h<_?this.resolveType(t[h],n,s,d,o):this.resolveType(assert(e[h].defaultType),n,s,_e(a),o);if(!g)return null;a.set(e[h].name.text,g),f[h]=g}return f}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a)return t.is(65536)?this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,_e(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,t.internalName),null);if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,_e(n.contextualTypeArguments),s):null}return this.resolveFunction(t,null,new Map,s)}inferGenericTypeArguments(e,t,n,s,a=0){if(!n)return null;let l=_e(s.contextualTypeArguments),o=n.length,u=new Set;for(let m=0;m<o;++m){let T=n[m].name.text;l.set(T,c.auto),u.add(T)}let p=t.functionTypeNode.parameters,_=p.length,f,d;switch(e.kind){case 10:{let m=e;f=m.args,d=m.argumentsRange;break}case 18:{let m=e;f=m.args,d=m.argumentsRange;break}default:return assert(!1),null}let h=f.length;for(let m=0;m<_;++m){let T=m<h?f[m]:p[m].initializer;if(!T){if(p[m].parameterKind==1)continue;return a==0&&(p[m].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,_.toString(),h.toString())),null}let S=p[m].type;if(p[m].parameterKind==2&&(S=S.typeArguments[0]),S.hasGenericComponent(n)){let v=this.resolveExpression(T,s,c.auto,1);v&&this.propagateInferredGenericTypes(S,v,t,l,u)}}let g=new Array(o);for(let m=0;m<o;++m){let T=n[m],S=T.name.text;if(l.has(S)){let v=assert(l.get(S));if(v!=c.auto){g[m]=v;continue}let F=T.defaultType;if(F){let k=t.parent,R=null;(k.kind==7||k.kind==5)&&(R=k.contextualTypeArguments);let C=this.resolveType(F,null,t,R,a);if(!C)return null;g[m]=C;continue}}if(a==0){let v;switch(e.kind){case 10:v=e.expression.range;break;case 18:v=e.typeName.range;break;default:return assert(!1),null}this.error(1140,v.atEnd)}return null}return g}propagateInferredGenericTypes(e,t,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=t.classReference;if(u){let p=this.resolveTypeName(l.name,null,n);if(!p||p.kind!=6)return;if(u.prototype==p){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,d=_.length;f<d;++f)this.propagateInferredGenericTypes(o[f],_[f],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let p=assert(s.get(u));(p==c.auto||a.has(u)&&p.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let p=u.parameterTypes;for(let h=0,g=min(p.length,o.length);h<g;++h)this.propagateInferredGenericTypes(o[h].type,p[h],n,s,a);let _=u.returnType;_!=c.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,d=l.explicitThisType;f&&d&&this.propagateInferredGenericTypes(d,f,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(to(t)){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 t=e.getClassOrWrapper(this.program);return t||null}lookupExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,t,n,s);case 9:return this.lookupBinaryExpression(e,t,n,s);case 10:return this.lookupCallExpression(e,t,n,s);case 12:return this.lookupCommaExpression(e,t,n,s);case 13:return this.lookupElementAccessExpression(e,t,n,s);case 15:return this.lookupFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 25:return this.lookupThisExpression(e,t,n,s);case 24:return this.lookupSuperExpression(e,t,n,s);case 16:return this.lookupInstanceOfExpression(e,t,n,s);case 17:return this.lookupLiteralExpression(e,t,n,s);case 18:return this.lookupNewExpression(e,t,n,s);case 22:return this.lookupPropertyAccessExpression(e,t,n,s);case 23:return this.lookupTernaryExpression(e,t,n,s);case 28:return this.lookupUnaryPostfixExpression(e,t,n,s);case 29:return this.lookupUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}resolveExpression(e,t,n=c.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,t,n,s);return a.delete(e),l}doResolveExpression(e,t,n=c.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,t,n,s);case 9:return this.resolveBinaryExpression(e,t,n,s);case 10:return this.resolveCallExpression(e,t,n,s);case 12:return this.resolveCommaExpression(e,t,n,s);case 13:return this.resolveElementAccessExpression(e,t,n,s);case 15:return this.resolveFunctionExpression(e,t,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 25:return this.resolveThisExpression(e,t,n,s);case 24:return this.resolveSuperExpression(e,t,n,s);case 16:return this.resolveInstanceOfExpression(e,t,n,s);case 17:return this.resolveLiteralExpression(e,t,n,s);case 18:return this.resolveNewExpression(e,t,n,s);case 22:return this.resolvePropertyAccessExpression(e,t,n,s);case 23:return this.resolveTernaryExpression(e,t,n,s);case 28:return this.resolveUnaryPostfixExpression(e,t,n,s);case 29:return this.resolveUnaryPrefixExpression(e,t,n,s)}return assert(!1),null}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,t,c.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=t.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=t.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,t,n=c.auto,s=t.sourceFunction,a=0){switch(e.kind){case 26:case 14:return c.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let p=n.getSignature();if(p)return p.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,t,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,t=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,t):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,c.auto,t);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,t,n,s=0){let a=e.expression,l=this.lookupExpression(a,t,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,p=u.type;if(p==c.void)return null;let _=p.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,p=u.getterInstance;if(!p){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let _=p.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 p=l.parent;assert(p.kind==7);let _=p,f=assert(this.currentElementExpression),d=_.lookupOverload(1);if(!d)return s==0&&this.error(2329,f.range,p.internalName),null;let h=d.signature.returnType,g=h.getClassOrWrapper(this.program);if(!g)return s==0&&this.error(2339,e.property.range,o,h.toString()),null;l=g;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 p=u.type.classReference;p&&(l=p.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,p=!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(p=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(p=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(p=!0,u=d);break}}}while(p);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,t,n,s=0){let a=this.lookupPropertyAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,t,n,s=0){let a=e.expression,l=this.resolveExpression(a,t,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,t,n,s=0){let a=this.lookupElementAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,t,n){let s=e.value;if(t){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?c.f32:c.f64;if(!n.isIntegerValue)return c.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return c.bool;break}case 1:{if(i64_is_i8(s))return c.i8;break}case 6:{if(i64_is_u8(s))return c.u8;break}case 2:{if(i64_is_i16(s))return c.i16;break}case 7:{if(i64_is_u16(s))return c.u16;break}case 3:{if(i64_is_i32(s))return c.i32;break}case 8:{if(i64_is_u32(s))return c.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return c.isize32;break}return c.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return c.usize32;break}return c.usize64}case 4:return c.i64;case 9:return c.u64;case 11:return c.f32;case 12:return c.f64}return i64_is_i32(s)?c.i32:i64_is_u32(s)?c.u32:c.i64}lookupAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,t.sourceFunction,t.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,t,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,t,n=c.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,t,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,t,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,t,n=c.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,we(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=c.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,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(Ce.fromUnaryPrefixToken(l));if(p)return p.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,we(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(25);if(p)return p.signature.returnType}return c.bool}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let p=u.lookupOverload(26);if(p)return p.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,t,n=c.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,we(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=c.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Ce.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,we(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=c.auto,s=0){let a=this.resolveBinaryExpression(e,t,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,t,n=c.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,t,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(Ce.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?c.bool:(s==0&&this.error(2469,e.range,we(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(Ce.fromBinaryToken(o));if(_)return _.signature.returnType}return c.bool}case 78:case 79:return c.bool;case 29:return c.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(Ce.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,u,s);if(!_)return null;let f=c.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,we(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let _=p.lookupOverload(Ce.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,we(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=u.getClassOrWrapper(this.program);if(p){let d=p.lookupOverload(Ce.fromBinaryToken(o));if(d)return d.signature.returnType}let _=this.resolveExpression(l,t,n,s);if(!_)return null;let f=c.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,we(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),p.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let p=this.resolveExpression(l,t,u,s);if(!p)return null;let _=c.commonType(u,p,n);return _?u.is(512)&&p.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),p.toString()),null)}}return assert(!1),null}lookupThisExpression(e,t,n=c.auto,s=0){if(t.isInline){let o=t.lookupLocal(P.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.lookupLocal(P.this_);if(a||(a=t.lookupLocalInOuter(P.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=t.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,t,n=c.auto,s=0){let a=this.lookupThisExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,t,n=c.auto,s=0){if(t.isInline){let l=t.lookupLocal(P.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=t.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,t,n=c.auto,s=0){let a=this.lookupSuperExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,t,n=c.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==c.f32?c.f32:c.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=c.auto,p=0;for(let _=0,f=o;_<f;++_){let d=l[_];if(d)if(d.kind==19&&o>1)++p;else{let h=this.resolveExpression(d,t,u);if(!h)return null;if(u==c.auto)u=h;else if(h!=u){let g=c.commonType(u,h,u);g&&(u=g)}}}if(u==c.auto)if(p==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return p>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,t,n=c.auto,s=0){let a=this.lookupLiteralExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,t,n=c.void,s=0){let a=this.resolveCallExpression(e,t,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,t,n=c.void,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==y.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],t,n,s);let u=this.maybeInferCall(e,o,t,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(!to(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,t,n=c.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=c.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=c.auto,s=0){return assert(c.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=c.auto,s=0){return c.bool}lookupTernaryExpression(e,t,n,s=0){let a=this.resolveTernaryExpression(e,t,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,t,n,s=0){let a=this.resolveExpression(e.ifThen,t,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,t,a,s);if(!l)return null;let o=c.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,t,n,s=0){let a=this.resolveTypeName(e.typeName,t,t.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,t,t.sourceFunction,_e(t.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,t,n,s=0){let a=this.lookupNewExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,t,n,s=0){let a=this.resolveFunctionExpression(e,t,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,t,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,t.sourceFunction,t.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&Le(l.returnType)){let p=o.expression,_=assert(u.getSignature()),f=qt.createDefault(t.sourceFunction),d=l.parameters;assert(_.parameterTypes.length==d.length);for(let g=0,m=d.length;g<m;g++){let T=d[g],S=_.parameterTypes[g];f.addScopedDummyLocal(T.name.text,S,T)}let h=this.resolveExpression(p,f,n,s);h&&(u.signatureReference=Je.create(this.program,_.parameterTypes,h,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?ro(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let C=a.typeArguments;if(C){let D=assert(a.prototype.typeParameterNodes),U=D.length;assert(U==D.length);for(let G=0;G<U;++G){let O=D[G].name.text;n.set(O,C[G])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,p;if(t&&(p=t.length)>0){assert(u&&p==u.length);for(let R=0;R<p;++R)n.set(u[R].name.text,t[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(P.this_,_)}else a&&(_=a.type,n.set(P.this_,_));let d=o.parameters,h=d.length,g=new Array(h),m=0,T=!1;for(let R=0;R<h;++R){let C=d[R];C.parameterKind==0?m=R+1:C.parameterKind==2&&(T=!0);let D=C.type;if(Le(D))return s==0&&this.error(1110,D.range),null;let U=this.resolveType(D,null,e.parent,n,s);if(!U)return null;if(U==c.void)return s==0&&this.error(1110,D.range),null;g[R]=U}let S;if(e.is(4096))S=c.void;else if(e.is(524288))S=a.type;else{let R=o.returnType;if(Le(R))return s==0&&this.error(1110,R.range),null;let C=this.resolveType(R,null,e.parent,n,s);if(!C)return null;S=C}let v=Je.create(this.program,g,S,_,m,T),F=e.name;l.length&&(F+=`<${l}>`);let k=new St(F,e,t,v,n);if(e.setResolvedInstance(l,k),a){let R=k.declaration.name.text,C=a.base;if(C){let D=C.getMember(R);if(D){this.discoveredOverride=!0;let U=!0;if(k.isAny(6144)){if(D.kind==10){let G=this.resolveProperty(D,s);if(G)if(k.is(2048)){let O=G.getterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}else{assert(k.is(4096));let O=G.setterInstance;O&&k.signature.isAssignableTo(O.signature,!0)&&(U=!1)}}}else if(k.is(524288))U=!1;else if(D.kind==4){let G=D,O=G.typeParameterNodes,Y=O!=null&&O.length>0,Z=t!=null&&t.length>0;if(Y!=Z)this.errorRelated(242,k.identifierAndSignatureRange,D.identifierAndSignatureRange,R),U=!1;else{let ee=this.resolveFunction(G,t,new Map,1);ee&&k.signature.isAssignableTo(ee.signature,!0)&&(U=!1)}}U&&this.errorRelated(2394,k.identifierAndSignatureRange,D.identifierAndSignatureRange)}}}return k}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),p=u.typeArguments;if(p){let _=assert(u.prototype.typeParameterNodes),f=p.length;assert(f==_.length);for(let d=0;d<f;++d)s.set(_[d].name.text,p[d])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),t,null,n,s,a,l),!o)return null}else if(t&&t.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let t=e.prototype.unboundOverrides;if(!t)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(t),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let p=u.parent,_;if(assert(p.kind==6||p.kind==8),_=p.instances,!!_)for(let f=Map_values(_),d=0,h=f.length;d<h;++d){let g=f[d];if(!g.isAssignableTo(n))continue;let m=null;if(e.isAny(6144)){let T=e.declaration.name.text,S=assert(g.getMember(T));assert(S.kind==10);let v=this.resolveProperty(S);if(!v)continue;e.is(2048)?m=v.getterInstance:(assert(e.is(4096)),m=v.setterInstance)}else{let T=g.getMember(u.name);if(T){assert(T.kind==4);let S=T;S.is(65536)==e.is(65536)&&(m=this.resolveFunction(S,e.typeArguments))}}m&&s.add(m)}}return Set_values(s)}resolveClass(e,t,n=new Map,s=0){let a=t?ro(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new os(o,e,t):l=new ur(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),h=d.length,g=t.length;assert(g==h);for(let m=0;m<g;++m)n.set(d[m].name.text,t[m])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let p=!1,_=e.basePrototype;if(_){let d=_;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let h=assert(e.extendsNode),g=this.resolveClassInclTypeArguments(_,h.typeArguments,null,e.parent,_e(n),h,s);if(!g)return null;l.setBase(g),u.has(g)&&(p=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let d=0,h=f.length;d<h;++d){let g=f[d],m=g;do{if(m==e)return this.error(2506,e.identifierNode.range,e.internalName),null;m=m.basePrototype}while(m);let T=assert(e.implementsNodes[d]),S=this.resolveClassInclTypeArguments(g,T.typeArguments,null,e.parent,_e(n),T,s);if(!S)return null;assert(S.kind==9),l.addInterface(S),u.has(S)&&(p=!0)}return p||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,t,n,s,a,l){let o=!1;return t.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,t.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):t.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,t.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):t.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):t.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,t){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let d=Set_values(l),h=0,g=d.length;h<g;++h){let m=d[h];assert(!s.has(m));let T=m.members;if(T)for(let S=Map_keys(T),v=0,F=S.length;v<F;++v){let k=unchecked(S[v]),R=assert(T.get(k)),C=e.getMember(k);C&&!this.checkOverrideVisibility(k,C,e,R,m,t)||(n.set(k,R),a.set(k,R))}}let o=0,u=e.base;if(u){let d=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let h=u.members;if(h)for(let g=Map_keys(h),m=0,T=g.length;m<T;++m){let S=unchecked(g[m]),v=assert(h.get(S));if(d&&v.is(32))continue;let F=e.getMember(S);F&&!this.checkOverrideVisibility(S,F,e,v,u,t)||(n.set(S,v),v.is(128)?a.set(S,v):a.delete(S))}o=u.nextMemoryOffset}let p=e.prototype,_=p.instanceMembers;if(_)for(let d=Map_values(_),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=m.name;if(u){let S=u.getMember(T);S&&this.checkOverrideVisibility(T,m,e,S,u,t)}switch(m.kind){case 4:{let S=m.toBound(e);e.add(S.name,S);break}case 10:{let S=m.toBound(e);if(S.isField){let v=this.resolveProperty(S,t);if(v){let F=v.type;if(F==c.void)break;if(F.isExternalReference){this.error(100,assert(S.typeNode).range,"Reference typed fields");break}let k=!0;if(u){let C=u.getMember(S.name);if(C&&C.kind==10){let D=C,U=this.resolveProperty(D,t);if(U&&U.isField){if(U.type!=v.type){this.errorRelated(2416,v.identifierNode.range,U.identifierNode.range,v.name,e.internalName,u.internalName);break}v.memoryOffset=U.memoryOffset,k=!1}}}if(k){let C=F.byteSize;assert(zt(C));let D=C-1;o&D&&(o=(o|D)+1),v.memoryOffset=o,o+=C}S.instance=v,e.add(S.name,S);let R=assert(S.fieldDeclaration).type;R&&this.program.checkTypeSupported(F,R)}}else e.add(S.name,S);break}default:assert(!1)}!m.is(128)&&!m.is(65536)&&a.delete(T)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let d=Map_keys(a),h=0,g=d.length;h<g;++h){let m=d[h],T=assert(a.get(m));this.errorRelated(2515,e.identifierNode.range,T.identifierNode.range,e.internalName,m,T.parent.internalName)}e.nextMemoryOffset=o;{let d=e.getMember(P.constructor);if(d&&d.parent==e){assert(d.kind==4);let h=this.resolveFunction(d,null,assert(e.contextualTypeArguments),t);h&&(e.constructorInstance=h)}}}let f=p.operatorOverloadPrototypes;for(let d=Map_keys(f),h=0,g=d.length;h<g;++h){let m=unchecked(d[h]),T=assert(f.get(m));if(assert(m!=0),T.is(65536))continue;let S;if(T.is(262144)){let F=T.toBound(e);S=this.resolveFunction(F,null,new Map,t)}else S=this.resolveFunction(T,null,new Map,t);if(!S)continue;let v=e.operatorOverloads;if(v||(e.operatorOverloads=v=new Map),S.is(262144))switch(m){case 27:case 28:case 29:case 30:{let F=S.signature.returnType;F.isAssignableTo(e.type)||t==0&&this.error(2322,T.functionTypeNode.returnType.range,F.toString(),e.type.toString())}}if(v.has(m))t==0&&this.error(213,S.declaration.range);else if(v.set(m,S),m==1||m==2){let F=e.indexSignature;F||(e.indexSignature=F=new ls(e)),m==1&&F.setType(S.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let d=Set_values(s),h=0,g=d.length;h<g;++h){let m=d[h],T=m.base==e,S=m.interfaces;if(S){let v=!1;for(let F=Set_values(S),k=0,R=F.length;k<R;++k){let C=F[k];C==e?T=!0:s.has(C)&&(v=!0)}if(v)continue}T&&this.finishResolveClass(m,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let p=null;for(let _=e;_&&!p;_=_.basePrototype)p=_.constructorPrototype;if(!t&&p&&n&&a.size==0?u=this.inferGenericTypeArguments(l,p,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),t,n,s,a,l,o),!u)return null}else if(t&&t.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,t=0){let n=e.instance;if(n)return n;e.instance=n=new as(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,t);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,t);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,t=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(t==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};var w1=1,C1=50,P1=6e4;function zi(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}var yp=class{constructor(){this.name="";this.typeName="";this.isArray=!1;this.unique=!1}};function ht(r,i){return Math.imul(r^i&255,16777619)>>>0}function lo(r,i){let e=i.length;r=ht(r,e&255),r=ht(r,e>>>8&255),r=ht(r,e>>>16&255),r=ht(r,e>>>24&255);for(let t=0;t<e;++t)r=ht(r,i.charCodeAt(t));return r>>>0}function cs(r,i=null,e=null){return Lg(2166136261,r,i,e)}function Lg(r,i,e,t){for(let n=0,s=i.length;n<s;++n){let a=i[n];if(r=lo(r,a.name),r=lo(r,a.typeName),r=ht(r,a.isArray?1:0),e!=null&&e.has(a.typeName)){let l=t??new Set;l.has(a.typeName)||(l.add(a.typeName),r=Lg(r,e.get(a.typeName),e,l),l.delete(a.typeName))}}return r>>>0}function Ui(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary||n.internalPath.endsWith(".migration"))continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o;if(!ke(u.decorators,15)&&!ke(u.decorators,29))continue;let p=u.name.text;i.has(p)||i.set(p,Gr(u))}}return i}function Gr(r){let i=new Array,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=55)continue;let a=s;if(a.is(32))continue;let l=a.type;if(l==null||!(l instanceof ae))continue;let o=l,u=o.name.identifier.text,p=new yp;p.name=a.name.text,p.unique=Wt(a.decorators,38)!=null;let _=o.typeArguments;u=="Array"&&_!=null&&_.length==1&&_[0]instanceof ae?(p.typeName=_[0].name.identifier.text,p.isArray=!0):p.typeName=u,i.push(p)}return i}var gp=class{constructor(){this.oldType="";this.newType="";this.fnName="";this.oldVersion=0;this.delta=!1;this.sourceInternalPath=""}};function so(r){return r==null||!(r instanceof ae)?null:r.name.identifier.text}function kp(r,i,e=null){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=56)continue;let _=p;if(!ke(_.decorators,37))continue;let f=_.signature,d=null,h=null,g=!1;if(f.parameters.length==1)d=so(f.parameters[0].type),h=so(f.returnType);else if(f.parameters.length==2)d=so(f.parameters[0].type),h=so(f.parameters[1].type),g=!0;else continue;if(d==null||h==null)continue;let m=new gp;m.oldType=d,m.newType=h,m.fnName=_.name.text,m.delta=g,m.oldVersion=i.has(d)?cs(i.get(d),e):zi(d),m.sourceInternalPath=a.internalPath,t.push(m)}}return t}var bp=class{constructor(){this.oldType="";this.oldVersion=0;this.steps=[]}};function Rp(r,i){let e=new Array,t=new Set;t.add(r);let n=new Array,s=new Array;n.push(r),s.push(new Array);let a=0;for(;a<n.length;){let l=n[a],o=s[a];a++;for(let u=0,p=i.length;u<p;++u){let _=i[u];if(_.newType!=l||t.has(_.oldType))continue;t.add(_.oldType);let f=new Array;f.push(_);for(let h=0,g=o.length;h<g;++h)f.push(o[h]);let d=new bp;d.oldType=_.oldType,d.oldVersion=_.oldVersion,d.steps=f,e.push(d),n.push(_.oldType),s.push(f)}}return e}function B1(r){switch(r){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function ke(r,i){if(r==null)return!1;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return!0;return!1}var xp=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType="";this.fillMaxWaitMs=C1;this.fillAllowStale=!0}},Tp=class{constructor(){this.name="";this.collections=new Array}},It=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}u64(i){let e=i%4294967296,t=Math.floor(i/4294967296);this.u32(e),this.u32(t)}u64lohi(i,e){this.u32(i),this.u32(e)}str(i){let e=[],t=0,n=i.length;for(;t<n;){let s=i.charCodeAt(t++);if(s>=55296&&s<=56319&&t<n){let a=i.charCodeAt(t);a>=56320&&a<=57343&&(s=65536+(s-55296<<10)+(a-56320),t++)}s<128?e.push(s):s<2048?(e.push(192|s>>6),e.push(128|s&63)):s<65536?(e.push(224|s>>12),e.push(128|s>>6&63),e.push(128|s&63)):(e.push(240|s>>18),e.push(128|s>>12&63),e.push(128|s>>6&63),e.push(128|s&63))}this.u32(e.length);for(let s=0,a=e.length;s<a;++s)this.u8(e[s])}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let t=0;t<i;++t)e[t]=this.bytes[t];return e}};function mp(r,i){let e=r.typeArguments;if(e!=null&&e.length>i){let t=e[i];if(t instanceof ae)return t.name.identifier.text}return""}function Ng(r){let i=new Array,e=r.sources,t=new Map;for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;!ke(g.decorators,15)&&!ke(g.decorators,29)||t.set(g.name.text,Gr(g))}}let n=Ui(e),s=kp(e,t,n),a=new Map;for(let o=0,u=s.length;o<u;++o){let p=s[o].newType;if(a.has(p))continue;let _=new Array,f=Rp(p,s);for(let d=0,h=f.length;d<h;++d)_.push(f[d].oldVersion);a.set(p,_)}for(let o=0,u=e.length;o<u;++o){let p=e[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!ke(g.decorators,31))continue;let m=new Tp;m.name=g.name.text;let T=g.members;for(let S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=55)continue;let k=F,R=Wt(k.decorators,32);if(R==null)continue;let C=k.type;if(C==null||!(C instanceof ae))continue;let D=C,U=B1(D.name.identifier.text);if(U<0)continue;let G=new xp;G.name=k.name.text,G.family=U,U==3||U==6?(G.keyType=mp(D,0),G.valueType="i64"):(G.keyType=mp(D,0),G.valueType=mp(D,1));let O=Og(R);if(O!=null){let Y=oo(O,"fillMaxWaitMs");if(Y<0&&(Y=oo(O,"maxWaitMs")),Y>=0){if(Y>P1)return r.error(102,k.name.range,"@collection fillMaxWaitMs exceeds the platform catalog maximum"),null;G.fillMaxWaitMs=Y}let Z=Bg(O,"fillStale");if(Z.length==0&&(Z=Bg(O,"stale")),Z.length>0)if(Z=="allow"||Z=="Allow")G.fillAllowStale=!0;else if(Z=="deny"||Z=="Deny")G.fillAllowStale=!1;else return r.error(102,k.name.range,'@collection fillStale must be "allow" or "deny"'),null}m.collections.push(G)}m.collections.length>0&&i.push(m)}}if(i.length==0)return null;let l=new It;l.u16(w1),l.u16(i.length);for(let o=0,u=i.length;o<u;++o){let p=i[o];l.str(p.name),l.u16(p.collections.length);for(let _=0,f=p.collections.length;_<f;++_){let d=p.collections[_];l.str(d.name),l.u8(d.family),l.str(d.keyType),l.str(d.valueType);let h=zi(d.valueType),g=t.has(d.valueType),m=g?t.get(d.valueType):new Array,T=g?cs(m,n):h;l.u32(h),l.u32(T),l.u32(0),l.u8(0),l.u8(0),l.u32(d.fillMaxWaitMs),l.u8(d.fillAllowStale?1:0),l.u16(m.length);for(let v=0,F=m.length;v<F;++v)l.str(m[v].name),l.str(m[v].typeName),l.u8(m[v].isArray?1:0),l.u8(m[v].unique?1:0);let S=a.has(d.valueType)?a.get(d.valueType):new Array;l.u16(S.length);for(let v=0,F=S.length;v<F;++v)l.u32(S[v])}}return l.toBytes()}function Mg(r){let i=r.sources;for(let e=0,t=i.length;e<t;++e){let n=i[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o,p=ke(u.decorators,15)||ke(u.decorators,29),_=u.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=55)continue;let g=h;if(Wt(g.decorators,38)==null)continue;if(!p){r.error(102,g.name.range,"@unique is only valid on a field of a @data or @user class");continue}let m=g.type,T=!1;if(m!=null&&m instanceof ae){let S=m.name.identifier.text;T=S=="string"||S=="Uint8Array"}T||r.error(102,g.name.range,"@unique requires a string or Uint8Array field (arrays and nested @data are not supported)")}}}}function Dg(r){let i=r.sources,e=new Array,t=new Map;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary||l.internalPath.endsWith(".migration"))continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_;if(!ke(f.decorators,15)&&!ke(f.decorators,29))continue;let d=f.name.text;t.has(d)||(e.push(d),t.set(d,Gr(f)))}}if(e.length==0)return null;let n=new It;n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.str(l);let o=t.get(l);n.u16(o.length);for(let u=0,p=o.length;u<p;++u)n.str(o[u].name),n.str(o[u].typeName),n.u8(o[u].isArray?1:0)}return n.toBytes()}var Ap=class{constructor(){this.method=0;this.kind=0;this.path=""}},vp=class{constructor(){this.method=-1;this.path=""}},Gg=128*1024,L1=2048,N1=2048;function zg(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_,d=Wt(f.decorators,18);if(d==null)continue;let h=D1(d),g=f.members;for(let m=0,T=g.length;m<T;++m){let S=g[m];if(S.kind!=59)continue;let v=S,F=G1(v);if(F==null)continue;let k=z1(F);if(k==null||M1(k.method))continue;let R=Ep(v.decorators);if(R>1)return r.error(102,v.name.range,"HTTP route methods may only use @query or @action ToilDB function kinds"),null;if(R!=0)continue;let C=O1(h,k.path);if(i.length>=L1)return r.error(102,v.name.range,"too many explicit @query HTTP routes for toildb.route_kinds"),null;if(!q1(C))return r.error(102,v.name.range,"route pattern for toildb.route_kinds must be a non-empty ASCII path starting with '/'"),null;if(C.length>N1)return r.error(102,v.name.range,"route pattern for toildb.route_kinds is too large"),null;let D=new Ap;D.method=k.method,D.kind=0,D.path=C,i.push(D)}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u8(i[s].method),t.u8(i[s].kind),t.str(i[s].path);let n=t.toBytes();return n.length>Gg?(r.error(102,null,"toildb.route_kinds section is too large"),null):n}function Ug(r){let i=new Array,e=r.sources;for(let s=0,a=e.length;s<a;++s){let l=e[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind==52){let f=_;if(Wt(f.decorators,17)==null)continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(Wt(S.decorators,16)==null)continue;let v=Ep(S.decorators);v>1?r.error(102,S.name.range,"@remote methods may only use @query or @action ToilDB function kinds (default is read-only @query)"):v==1&&i.push(zi(d+"."+S.name.text))}}else if(_.kind==56){let f=_;if(Wt(f.decorators,16)==null)continue;let d=Ep(f.decorators);d>1?r.error(102,f.name.range,"@remote functions may only use @query or @action ToilDB function kinds (default is read-only @query)"):d==1&&i.push(zi(f.name.text))}}}if(i.length==0)return null;let t=new It;t.u16(1),t.u16(i.length);for(let s=0,a=i.length;s<a;++s)t.u32(i[s]),t.u8(1);let n=t.toBytes();return n.length>Gg?(r.error(102,null,"toildb.rpc_kinds section is too large"),null):n}function Ep(r){if(r==null)return-1;for(let i=0,e=r.length;i<e;++i){let t=r[i].decoratorKind;if(t==33)return 0;if(t==34)return 1;if(t==35||t==36||t==39)return 2}return-1}function M1(r){return r==0||r==5||r==6}function D1(r){let i=r.args;if(i==null||i.length==0)return"";let e=i[0];if(e instanceof ye){let t=e.value.trim();return t.length==0||t=="/"?"":(t.startsWith("/")||(t="/"+t),t.replace(/\/+$/,""))}return""}function G1(r){let i=r.decorators;if(i==null)return null;for(let e=0,t=i.length;e<t;++e)switch(i[e].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return i[e]}return null}function z1(r){let i=new vp,e=r.decoratorKind;if(e==19){let t=r.args;if(t==null||t.length==0||!(t[0]instanceof Be))return null;let n=t[0],s=Dr(n,"method"),a=Dr(n,"path");if(s==null||a==null||!(a instanceof ye))return null;let l=Fp(s);if(l==null)return null;i.method=V1(l),i.path=a.value}else{i.method=U1(e);let t=r.args;if(t==null||t.length==0||!(t[0]instanceof ye))return null;i.path=t[0].value}return i.method>=0?i:null}function U1(r){switch(r){case 21:return 1;case 22:return 2;case 23:return 3;case 24:return 4;case 25:return 5;case 26:return 6;default:return 0}}function V1(r){switch(r){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}function O1(r,i){let e=i.trim();if(e.length==0&&(e="/"),e.startsWith("/")||(e="/"+e),e=="/")return r.length>0?r:"/";e.length>1&&(e=e.replace(/\/+$/,""));let t=r+e;return t.length==0?"/":t}function q1(r){if(r.length==0||!r.startsWith("/"))return!1;for(let i=0,e=r.length;i<e;++i){let t=r.charCodeAt(i);if(t<32||t>126)return!1}return!0}function cr(r,i){return r=ht(r,i&255),r=ht(r,i>>>8&255),r=ht(r,i>>>16&255),r=ht(r,i>>>24&255),r>>>0}function Wt(r,i){if(r==null)return null;for(let e=0,t=r.length;e<t;++e)if(r[e].decoratorKind==i)return r[e];return null}function Vg(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof ye?e.value:null}function Og(r){let i=r.args;if(i==null||i.length==0)return null;let e=i[0];return e instanceof Be?e:null}function Dr(r,i){let e=r.names;for(let t=0,n=e.length;t<n;++t)if(e[t].text==i)return r.values[t];return null}function Fp(r){return r instanceof _t?r.property.text:null}function Bg(r,i){let e=Dr(r,i);if(e==null)return"";if(e instanceof ye)return e.value;if(e instanceof xe)return e.text;let t=Fp(e);return t??""}function oo(r,i){let e=Dr(r,i);if(e!=null&&e instanceof pt){let t=e.range.toString().trim(),n=0;if(t.length==0)return-1;for(let s=0,a=t.length;s<a;++s){let l=t.charCodeAt(s);if(l<48||l>57)return-1;if(n=n*10+(l-48),n>4294967295)return 4294967295}return n}return-1}function W1(r,i){let e=Dr(r,i);return e!=null&&e instanceof xe?e.text:""}function qg(r){let i=new Map;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o;ke(u.decorators,15)&&i.set(u.name.text,Gr(u))}}return i}function j1(r){let i=0,e=r.members;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(s.kind!=59)continue;let a=s.decorators;if(a!=null)for(let l=0,o=a.length;l<o;++l)switch(a[l].decoratorKind){case 43:{i|=1;break}case 44:{i|=2;break}case 45:{i|=4;break}case 46:{i|=8;break}}}return i}function Wg(r){let i=r.sources,e=Ui(i),t=qg(i),n=new Array,s=new Array,a=new Array,l=new Array,o=new Array,u=new Array,p=new Array,_=new Array,f=new Array;for(let h=0,g=i.length;h<g;++h){let m=i[h];if(m.isLibrary)continue;let T=m.statements;for(let S=0,v=T.length;S<v;++S){let F=T[S];if(F.kind!=52)continue;let k=F;if(!ke(k.decorators,42))continue;let R=Wt(k.decorators,42),C=k.name.text,D=R!=null?Vg(R):null,U=R!=null?Og(R):null;if(D!=null){let se=D.trim();se.startsWith("/")&&(se=se.substring(1)),se.length>0&&(C=se)}else if(U!=null){let se=Dr(U,"name");if(se!=null&&se instanceof ye){let Fe=se.value.trim();Fe.startsWith("/")&&(Fe=Fe.substring(1)),Fe.length>0&&(C=Fe)}}let G="/"+C,O=0;if(U!=null){let se=Dr(U,"scope");se!=null&&Fp(se)=="Continental"&&(O=1)}let Y=0,Z=0;if(U!=null){let se=oo(U,"maxFrameBytes");se>0&&(Y=se);let Fe=oo(U,"ingressRingBytes");Fe>0&&(Z=Fe)}let ee=j1(k),K=0,te=0,Q=0,oe=U!=null?W1(U,"message"):"";oe.length>0&&t.has(oe)&&(K=1,te=zi(oe),Q=cs(t.get(oe),e)),n.push(C),s.push(G),a.push(ee),l.push(O),o.push(K),u.push(Y),p.push(Z),_.push(te),f.push(Q)}}if(n.length==0)return null;let d=new It;d.u16(1),d.u16(n.length);for(let h=0,g=n.length;h<g;++h)d.str(n[h]),d.str(s[h]),d.u8(a[h]),d.u8(l[h]),d.u8(o[h]),d.u32(u[h]),d.u32(p[h]),d.u32(_[h]),d.u32(f[h]),d.u16(h);return d.toBytes()}var uo=class{constructor(){this.kind=0;this.interval_ms=0;this.cron_minute_lo=0;this.cron_minute_hi=0;this.cron_hour_mask=0;this.cron_dom_mask=0;this.cron_month_mask=0;this.cron_dow_mask=0;this.valid=!0}};function K1(r){let i=r.length;if(i<2)return-1;let e=r.charCodeAt(i-1),t;if(e==115)t=1e3;else if(e==109)t=6e4;else if(e==104)t=36e5;else if(e==100)t=864e5;else return-1;let n=0;for(let a=0;a<i-1;++a){let l=r.charCodeAt(a);if(l<48||l>57||(n=n*10+(l-48),n>1e15))return-1}if(n<1)return-1;let s=n*t;return s<1e3?-1:s}function ao(r){if(r.length==0)return-1;let i=0;for(let e=0,t=r.length;e<t;++e){let n=r.charCodeAt(e);if(n<48||n>57||(i=i*10+(n-48),i>1e6))return-1}return i}function us(r,i,e,t){if(r.length==0)return!1;let n=r.split(",");for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.length==0)return!1;let o=i,u=e,p=1,_=l,f=l.indexOf("/");if(f>=0){_=l.substring(0,f);let d=ao(l.substring(f+1));if(d<1)return!1;p=d}if(_!="*"){let d=_.indexOf("-");if(d>=0){let h=ao(_.substring(0,d)),g=ao(_.substring(d+1));if(h<0||g<0||h<i||g>e||h>g)return!1;o=h,u=g}else{let h=ao(_);if(h<0||h<i||h>e)return!1;o=h,u=f>=0?e:h}}for(let d=o;d<=u;d+=p)t(d)}return!0}function H1(r,i){let e=r.split(" ");if(e.length!=5){i.valid=!1;return}i.kind=1;let t=0,n=0,s=us(e[0],0,59,h=>{h<32?t=(t|1<<h)>>>0:n=(n|1<<h-32)>>>0});i.cron_minute_lo=t,i.cron_minute_hi=n;let a=0,l=us(e[1],0,23,h=>{a=(a|1<<h)>>>0});i.cron_hour_mask=a;let o=0,u=us(e[2],1,31,h=>{o=(o|1<<h)>>>0});i.cron_dom_mask=o;let p=0,_=us(e[3],1,12,h=>{p=p|1<<h});i.cron_month_mask=p&65535;let f=0,d=us(e[4],0,6,h=>{f=f|1<<h});i.cron_dow_mask=f&255,s&&l&&u&&_&&d||(i.valid=!1)}function Q1(r){let i=new uo,e=r.trim();if(e.length==0)return i.valid=!1,i;if(e.indexOf(" ")>=0)return H1(e,i),i;let t=K1(e);return t<0?(i.valid=!1,i):(i.kind=0,i.interval_ms=t,i)}var Sp=class{constructor(){this.name="";this.schedule=new uo}};function jg(r){let i=r.sources,e=null;for(let a=0,l=i.length;a<l&&e==null;++a){let o=i[a];if(o.isLibrary)continue;let u=o.statements;for(let p=0,_=u.length;p<_;++p){let f=u[p];if(f.kind!=52)continue;let d=f;if(ke(d.decorators,40)){e=d;break}}}if(e==null)return null;let t=new Array,n=e.members;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(o.kind!=59)continue;let u=o,p=Wt(u.decorators,41);if(p==null)continue;let _=Vg(p);if(_==null){r.error(9010,p.range);continue}let f=Q1(_);if(!f.valid){r.error(9011,p.range,_);continue}let d=new Sp;d.name=u.name.text,d.schedule=f,t.push(d)}let s=new It;s.u16(1),s.u8(1),s.u16(t.length);for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.schedule;s.str(o.name),s.u16(a),s.u8(u.kind),s.u64(u.kind==0?u.interval_ms:0),u.kind==1?(s.u64lohi(u.cron_minute_lo,u.cron_minute_hi),s.u32(u.cron_hour_mask),s.u32(u.cron_dom_mask),s.u16(u.cron_month_mask),s.u8(u.cron_dow_mask)):(s.u64lohi(0,0),s.u32(0),s.u32(0),s.u16(0),s.u8(0)),s.u8(0),s.u8(0),s.u64(0)}return s.toBytes()}var Ip=class{constructor(){this.deriveId=0;this.dbName="";this.methodName=""}};function Kg(r){let i=r.sources,e=new Array,t=0;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,p=o.length;u<p;++u){let _=o[u];if(_.kind!=52)continue;let f=_;if(!ke(f.decorators,31))continue;let d=f.name.text,h=f.members;for(let g=0,m=h.length;g<m;++g){let T=h[g];if(T.kind!=59)continue;let S=T;if(!ke(S.decorators,36))continue;let v=new Ip;v.deriveId=t,v.dbName=d,v.methodName=S.name.text,e.push(v),++t}}}if(e.length==0)return null;let n=new It;n.u16(1),n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.u16(l.deriveId),n.str(l.dbName),n.str(l.methodName)}return n.toBytes()}function X1(r){for(let i=0,e=r.length;i<e;++i){let t=r[i];if(t.isLibrary)continue;let n=t.statements;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind==52){let o=l,u=o.decorators;if(u!=null)for(let _=0,f=u.length;_<f;++_)switch(u[_].decoratorKind){case 18:case 42:case 40:case 31:case 15:return!0}let p=o.members;for(let _=0,f=p.length;_<f;++_){let d=p[_];if(d.kind!=59)continue;let h=d.decorators;if(h!=null){for(let g=0,m=h.length;g<m;++g)if(h[g].decoratorKind==41)return!0}}}}}return!1}var J1=1,Z1=2,Y1=4,$1=8,e6=16;function t6(r){let i=0;for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.isLibrary)continue;let s=n.statements;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=52)continue;let u=o,p=u.decorators;if(p!=null)for(let f=0,d=p.length;f<d;++f)switch(p[f].decoratorKind){case 18:{i|=J1;break}case 42:{i|=Z1;break}case 40:{i|=Y1;break}case 31:{i|=e6;break}}let _=u.members;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=59)continue;let g=h.decorators;if(g!=null){for(let m=0,T=g.length;m<T;++m)if(g[m].decoratorKind==41){i|=$1;break}}}}}return i>>>0}function r6(r){let i=Ui(r),e=2166136261,t=new Set;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.isLibrary||a.internalPath.endsWith(".migration"))continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let p=l[o];if(p.kind!=52)continue;let _=p;if(!ke(_.decorators,15))continue;let f=_.name.text;t.has(f)||(t.add(f),e=lo(e,f),e=cr(e,cs(Gr(_),i)))}}return e>>>0}function i6(r,i,e){let t=Ui(r),n=qg(r),s=2166136261;s=lo(s,i),s=cr(s,e);let a=new Array,l=new Array;for(let o=0,u=r.length;o<u;++o){let p=r[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!ke(g.decorators,31))continue;let m=g.members;for(let T=0,S=m.length;T<S;++T){let v=m[T];if(v.kind!=55)continue;let F=v;if(!ke(F.decorators,32))continue;let k=F.type;if(k==null||!(k instanceof ae))continue;let R=k,C=R.name.identifier.text,D;if(C=="Counter"||C=="Capacity")D="i64";else{let Y=R.typeArguments;D=Y!=null&&Y.length>1&&Y[1]instanceof ae?Y[1].name.identifier.text:""}let U=zi(D),O=n.has(D)?cs(n.get(D),t):U;a.push(U),l.push(O)}}}s=cr(s,a.length);for(let o=0,u=a.length;o<u;++o)s=cr(s,a[o]),s=cr(s,l[o]),s=cr(s,0);return s>>>0}function Hg(r,i){let e=r.sources;if(i==null&&!X1(e))return null;let t=i=="cold"?1:0,n=t6(e),s=1,a="",l=r6(e),o=i6(e,a,l),u=2166136261;u=ht(u,t),u=cr(u,n),u=cr(u,l);let p=u>>>0,_=new It;return _.u16(1),_.u8(t),_.u8(0),_.u32(n),_.u16(s),_.str(a),_.u32(p),_.u32(l),_.u32(o),_.toBytes()}function Zg(r){switch(r){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 co(r,i){let e=Zg(r);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function po(r){let i=Zg(r);return i.length!=0?"__r.read"+i+"()":r+".decodeFrom(__r)"}function ps(r){let i=2166136261;for(let e=0,t=r.length;e<t;++e)i=Math.imul(i^r.charCodeAt(e),16777619)>>>0;return i>>>0}function Qg(r,i){switch(r){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<"+r+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function Xg(r,i){switch(r){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+r+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+r+">"+i+".asI64()";case"f32":case"f64":return"<"+r+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"u128.fromString("+i+".asString())";case"i128":return"i128.fromString("+i+".asString())";case"u256":return"u256.fromString("+i+".asString())";case"i256":return"i256.fromString("+i+".asString())";default:return r+".fromJSON("+i+")"}}var fs=class{constructor(i,e){this.source=i;this.reportNode=e}};function n6(r,i){switch(r){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="upsert"?"Upsert":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":i=="since"?"EventsSince":"";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 wp(r){return r=="Get"||r=="GetMany"||r=="Exists"||r=="ViewGet"||r=="CounterGet"||r=="UniqueLookup"||r=="Latest"||r=="EventsSince"||r=="MembershipContains"||r=="MembershipList"||r=="CapacityAvailable"}function Jg(r){return r=="Latest"||r=="MembershipList"||r=="EventsSince"}function s6(r,i){switch(r){case 33:return wp(i)&&!Jg(i);case 34:return wp(i)&&!Jg(i)||i=="Create"||i=="Patch"||i=="Upsert"||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 wp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 39:return!1;case 37:return!1;default:return!0}}function a6(r){switch(r){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 39:return"admin";case 37:return"migrate";default:return"?"}}function l6(r){switch(r){case 33:return"a query is read-only and cannot scan";case 34:return"an action cannot scan or publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 39:return"an admin has no request-path data access";case 37:return"a migration is a pure value transform and cannot access the database";default:return"not permitted in this kind"}}var ds=class extends Ze{constructor(e=null,t=[]){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.rpcImportedSources=new Set;this.streamExportedSources=new Set;this.ratelimitRouteCounter=0;this.toildbCodecReads=new Map;this.toildbCodecClasses=new Map;this.toildbWoven=!1;this.toildbDerivesWoven=!1;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=t}parseFile(e,t,n){let s=Cr(t),a=Wn(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let p=this.dependees,_=null;p.has(a)&&(_=assert(p.get(a))),this.error(6054,_?_.reportNode.range:null,t);return}let l=new fe(n?1:t.startsWith(bt)?t.indexOf(lt,bt.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new sr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let p=this.parseTopLevelStatement(o,null);p?u.push(p):this.skipStatement(o)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let m=this.parseDecorator(e);if(!m){this.skipStatement(e);continue}a?a.push(m):a=[m]}let l=0,o=0,u=0,p=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,p=e.pos));let _=0,f=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):d&&(n|=32768);let h=null,g=e.peek();switch(s<0&&(s=e.nextTokenPos),g){case 8:{e.next(),n|=8,e.skip(17)?h=this.parseEnum(e,n,a,s):h=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),h=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),h=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),h=this.parseFunction(e,n,a,s),a=null;break}case 0:{let m=e.mark();e.next();let T=e.tokenPos,S=e.pos;if(e.peekOnNewLine()){e.reset(m),h=this.parseStatement(e,!0);break}let v=e.peek();if(v!=7){v==31&&this.error(1242,e.range(T,S)),e.reset(m),h=this.parseStatement(e,!0);break}else e.discard(m);n|=128}case 7:case 31:{e.next(),h=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseNamespace(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?h=this.parseExportImport(e,s):h=this.parseImport(e);break}case 55:{let m=e.mark();e.next(),e.peek(1)==115?(e.discard(m),h=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(m),h=this.parseStatement(e,!0));break}case 35:{let m=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(m),h=this.parseModuleDeclaration(e,n)):(e.reset(m),h=this.parseStatement(e,!0));break}default:{n&2?p&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),h=this.parseExportDefaultAlias(e,s,u,p),u=p=0):h=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),t?this.error(2695,e.range(s)):h=this.parseStatement(e,!0));break}}if(a)for(let m=0,T=a.length;m<T;++m)this.error(1206,a[m].range);if(p&&h!=null)switch(h.kind){case 53:case 56:case 52:case 58:case 60:return z.createExportDefaultStatement(h,e.range(s,e.pos));default:this.error(1042,e.range(u,p),"default")}return h}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let t=this.dependees;return t.has(e)?assert(t.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.weaveDataMigrations(),this.weaveDeriveHandlers(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.streamExportedSources.clear(),this.dependees.clear(),this.restImportedSources.clear(),this.rpcImportedSources.clear()}weaveDeriveHandlers(){if(this.toildbDerivesWoven)return;this.toildbDerivesWoven=!0;let e=this.options;if(e!=null&&e.targetMode=="cold")return;let t=null,n="",s="",a=0,l=0;for(let o=0,u=this.sources.length;o<u;++o){let p=this.sources[o];if(p.isLibrary)continue;let _=p.statements;for(let f=0,d=_.length;f<d;++f){let h=_[f];if(h.kind!=52)continue;let g=h;if(!this.hasDecoratorKind(g.decorators,31))continue;let m=g.name.text,T=g.members,S="",v=!1;for(let k=0,R=T.length;k<R;++k){let C=T[k];if(C.kind!=59)continue;let D=C;if(!this.hasDecoratorKind(D.decorators,36))continue;let U=D.name.text;this.isVoidNoArgSignature(D.signature)||this.error(102,D.signature.range,"ToilDB: @derive method '"+m+"."+U+"' must take no arguments and return void."),S+="if(__id=="+a.toString()+"){this."+U+"();return true;}",t==null&&(t=g),v=!0,++a}if(!v)continue;this.injectClassMember(g,"__deriveRun(__id:i32):bool{"+S+"return false;}");let F="__toilDeriveInstance"+l.toString();n+="let "+F+":"+m+`|null=null;
18
18
  `,s+="if(__derive_id<"+a.toString()+"){let __inst="+F+";if(__inst==null){__inst=new "+m+"();"+F+`=__inst;}if(__inst.__deriveRun(__derive_id))return 0;}
19
19
  `,++l}}t!=null&&this.injectTopLevelStatements(t,`// @ts-ignore: injected derive entries (materialized-view runner)
20
20
  `+n+`export function derive_run(__derive_id:i32):i64{