@yabgu_gm/tensionscript 0.11.3 → 0.11.4

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.
@@ -4,9 +4,9 @@
4
4
  * Copyright 2026 Daniel Wirtz / The AssemblyScript Authors
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
- var Bu=Object.defineProperty;var W_=Object.getOwnPropertyDescriptor;var v1=Object.getOwnPropertyNames;var I1=Object.prototype.hasOwnProperty;var Nu=(i,r)=>{for(var e in r)Bu(i,e,{get:r[e],enumerable:!0})},q_=(i,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of v1(r))!I1.call(i,n)&&n!==e&&Bu(i,n,{get:()=>r[n],enumerable:!(t=W_(r,n))||t.enumerable});return i},Lu=(i,r,e)=>(q_(i,r,"default"),e&&q_(e,r,"default"));var K_=(i,r,e,t)=>{for(var n=t>1?void 0:t?W_(r,e):r,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Bu(r,e,n),n};var V_={};Nu(V_,{ASTBuilder:()=>U_,ArrayLiteralExpression:()=>Yr,ArrowKind:()=>Xt,AssertionExpression:()=>Al,AssertionKind:()=>Qt,AsyncLowerTransform:()=>Fa,AtomicRMWOp:()=>rf,AwaitExpression:()=>Xl,BinaryExpression:()=>Tl,BinaryModule:()=>Po,BinaryOp:()=>en,BindResult:()=>$o,BlockStatement:()=>Jl,BrOnOp:()=>Wb,BreakStatement:()=>eo,CallExpression:()=>Sl,Class:()=>Er,ClassDeclaration:()=>cs,ClassExpression:()=>vl,ClassPrototype:()=>Os,ClosureLowerTransform:()=>ya,CommaExpression:()=>Il,CommentKind:()=>$p,CommentNode:()=>El,CommonFlags:()=>ze,CommonNames:()=>N,CompiledExpression:()=>$l,Compiler:()=>pa,ConditionKind:()=>Ef,ConstantValueKind:()=>kf,Constraints:()=>f_,ConstructorExpression:()=>kl,ContinueStatement:()=>to,DEFAULT_STACK_SIZE:()=>dF,DeclarationStatement:()=>it,DeclaredElement:()=>Ar,DecoratorFlags:()=>Nt,DecoratorKind:()=>Rt,DecoratorNode:()=>xl,DiagnosticCategory:()=>ls,DiagnosticCode:()=>Xe,DiagnosticEmitter:()=>tt,DiagnosticMessage:()=>hl,DoStatement:()=>ro,Element:()=>Ds,ElementAccessExpression:()=>Fl,ElementKind:()=>Et,EmptyStatement:()=>io,Enum:()=>Yo,EnumDeclaration:()=>no,EnumValue:()=>Jo,EnumValueDeclaration:()=>so,EnvAnalysisRecord:()=>hu,ExportDefaultStatement:()=>uo,ExportImportStatement:()=>ao,ExportMember:()=>lo,ExportNames:()=>ua,ExportStatement:()=>oo,Expression:()=>xe,ExpressionId:()=>ei,ExpressionRunnerFlags:()=>Bo,ExpressionStatement:()=>co,ExternalKind:()=>tf,FEATURES_ALL:()=>BF,FEATURES_DEFAULT:()=>NF,FEATURE_BULK_MEMORY:()=>xF,FEATURE_EXCEPTION_HANDLING:()=>TF,FEATURE_EXTENDED_CONST:()=>RF,FEATURE_GC:()=>kF,FEATURE_MEMORY64:()=>FF,FEATURE_MULTI_VALUE:()=>IF,FEATURE_MUTABLE_GLOBALS:()=>gF,FEATURE_NONTRAPPING_F2I:()=>bF,FEATURE_REFERENCE_TYPES:()=>vF,FEATURE_RELAXED_SIMD:()=>wF,FEATURE_SHARED_EVERYTHING:()=>PF,FEATURE_SIGN_EXTENSION:()=>yF,FEATURE_SIMD:()=>EF,FEATURE_STRINGREF:()=>CF,FEATURE_TAIL_CALLS:()=>SF,FEATURE_THREADS:()=>AF,FalseExpression:()=>Hl,Feature:()=>Kt,FeatureFlags:()=>ef,FieldDeclaration:()=>po,FieldFlags:()=>xf,File:()=>Us,FixedArrayTypeNode:()=>gl,FloatLiteralExpression:()=>wl,Flow:()=>Jt,FlowFlags:()=>Oo,ForOfStatement:()=>_o,ForStatement:()=>fo,Function:()=>Lt,FunctionDeclaration:()=>ps,FunctionExpression:()=>Rl,FunctionPrototype:()=>lt,FunctionTypeNode:()=>$r,GETTER_PREFIX:()=>rl,Global:()=>ti,HeapTypeRef:()=>Ie,INDEX_SUFFIX:()=>Qe,INNER_DELIMITER:()=>Np,INSTANCE_DELIMITER:()=>Bp,IdentifierExpression:()=>rt,IdentifierHandling:()=>Xp,IfStatement:()=>ho,ImportDeclaration:()=>mo,ImportNames:()=>gn,ImportStatement:()=>fs,IndexSignature:()=>Ps,IndexSignatureNode:()=>Yl,InstanceOfExpression:()=>Cl,IntegerLiteralExpression:()=>Pl,Interface:()=>Bs,InterfaceDeclaration:()=>yo,InterfacePrototype:()=>eu,JSBuilder:()=>_n,LIBRARY_PREFIX:()=>Ft,LIBRARY_SUBST:()=>Fb,LazyExpression:()=>Zl,LiteralExpression:()=>wt,LiteralKind:()=>pt,Local:()=>ye,LocalFlags:()=>ws,MemoryModel:()=>_s,MemoryModelCode:()=>ax,MemoryOrder:()=>Ub,MemorySegment:()=>Ji,MethodDeclaration:()=>Jr,Module:()=>Yt,ModuleDeclaration:()=>So,NamedTypeNode:()=>Zr,Namespace:()=>Vs,NamespaceDeclaration:()=>go,NewExpression:()=>Bl,Node:()=>h,NodeKind:()=>$e,NullExpression:()=>Nl,ObjectLiteralExpression:()=>Ll,OmittedExpression:()=>Ml,OperatorKind:()=>Me,Options:()=>ca,PARENT_SUBST:()=>z1,PATH_DELIMITER:()=>mt,PackedType:()=>ms,Parameter:()=>Sf,ParameterKind:()=>jt,ParameterNode:()=>Zi,ParenthesizedExpression:()=>zl,Parser:()=>Ms,Precedence:()=>tx,Program:()=>zs,Property:()=>Cs,PropertyAccessExpression:()=>Dl,PropertyPrototype:()=>sn,Range:()=>ue,RefAsOp:()=>Vb,RegexpLiteralExpression:()=>Gl,Relooper:()=>Co,ReportMode:()=>jo,Resolver:()=>Rs,ReturnStatement:()=>bo,Runtime:()=>el,RuntimeFeatures:()=>__,SETTER_PREFIX:()=>il,SIMDExtractOp:()=>nf,SIMDLoadOp:()=>lf,SIMDLoadStoreLaneOp:()=>of,SIMDReplaceOp:()=>sf,SIMDShiftOp:()=>af,SIMDTernaryOp:()=>uf,STATIC_DELIMITER:()=>es,STUB_DELIMITER:()=>Lp,SideEffects:()=>bf,Signature:()=>de,Source:()=>Te,SourceKind:()=>Yi,State:()=>ml,Statement:()=>me,StringEncodeOp:()=>jb,StringEqOp:()=>Qb,StringLiteralExpression:()=>Vl,StringMeasureOp:()=>Hb,StringNewOp:()=>Kb,SuperExpression:()=>Ol,SwitchBuilder:()=>ys,SwitchCase:()=>xo,SwitchStatement:()=>Eo,TSDBuilder:()=>bn,Target:()=>Gi,TemplateLiteralExpression:()=>ql,TernaryExpression:()=>Ul,ThisExpression:()=>Wl,ThrowStatement:()=>Ao,Token:()=>bt,Tokenizer:()=>os,TrueExpression:()=>Kl,TryStatement:()=>To,TupleTypeNode:()=>yl,Type:()=>p,TypeBuilderErrorReason:()=>Jp,TypeDeclaration:()=>vo,TypeDefinition:()=>at,TypeFlags:()=>Bt,TypeKind:()=>xr,TypeName:()=>Xi,TypeNode:()=>Xr,TypeParameterNode:()=>bl,TypeRef:()=>P,TypedElement:()=>rr,Typeinfo:()=>Ui,TypeinfoFlags:()=>tl,UnaryExpression:()=>us,UnaryOp:()=>gs,UnaryPostfixExpression:()=>jl,UnaryPrefixExpression:()=>Ql,UncheckedBehavior:()=>qo,VariableDeclaration:()=>Io,VariableLikeDeclarationStatement:()=>$i,VariableLikeElement:()=>ri,VariableStatement:()=>ko,VoidStatement:()=>Fo,WhileStatement:()=>wo,WideIntAddSubOp:()=>Ob,WideIntMulOp:()=>qb,addGlobalAlias:()=>oF,allocPtrArray:()=>Ee,applyInTreeTransforms:()=>Xx,buildJS:()=>ow,buildTSD:()=>lw,compile:()=>aw,createType:()=>ft,defaultFeatures:()=>ou,diagnosticCategoryToColor:()=>Mb,diagnosticCategoryToString:()=>jp,diagnosticCodeToString:()=>sl,ensureType:()=>Fs,expandType:()=>cf,featureToString:()=>Di,findDecorator:()=>Zt,formatDiagnostic:()=>zb,formatDiagnosticMessage:()=>zb,getBinaryLeft:()=>st,getBinaryOp:()=>tn,getBinaryRight:()=>We,getBinaryenModuleRef:()=>uw,getBlockChildAt:()=>Ss,getBlockChildCount:()=>Ts,getBlockName:()=>As,getBreakCondition:()=>gE,getBreakName:()=>yE,getCallOperandAt:()=>Je,getCallOperandCount:()=>Pt,getCallTarget:()=>Is,getConstValueF32:()=>Ce,getConstValueF64:()=>Pe,getConstValueI32:()=>ae,getConstValueI64High:()=>Ge,getConstValueI64Low:()=>Be,getConstValueInteger:()=>pf,getConstValueV128:()=>ff,getDefaultParameterName:()=>sx,getDependee:()=>nw,getDiagnosticCategory:()=>KF,getDiagnosticCode:()=>WF,getDiagnosticMessage:()=>HF,getDiagnosticRange:()=>jF,getDiagnosticRelatedRange:()=>QF,getDropValue:()=>xE,getExpressionId:()=>re,getExpressionType:()=>ce,getFunctionBody:()=>TE,getFunctionName:()=>yf,getFunctionParams:()=>SE,getFunctionResults:()=>vE,getFunctionVars:()=>IE,getGlobalGetName:()=>xs,getGlobalInit:()=>wE,getGlobalName:()=>kE,getGlobalType:()=>FE,getIfCondition:()=>Go,getIfFalse:()=>rn,getIfTrue:()=>vs,getLoadBytes:()=>_f,getLoadOffset:()=>uE,getLoadPtr:()=>cE,getLocalGetIndex:()=>Ct,getLocalSetIndex:()=>Mo,getLocalSetValue:()=>zo,getLoopBody:()=>mE,getLoopName:()=>hE,getMemoryGrowDelta:()=>AE,getRangeEnd:()=>ZF,getRangeSource:()=>$F,getRangeStart:()=>XF,getReturnValue:()=>EE,getSelectCondition:()=>bE,getSelectElse:()=>mf,getSelectThen:()=>hf,getSideEffects:()=>ks,getSource:()=>qF,getSourceNormalizedPath:()=>YF,getStoreBytes:()=>pE,getStoreOffset:()=>fE,getStorePtr:()=>_E,getStoreValue:()=>dE,getTagName:()=>RE,getTagParams:()=>CE,getTagResults:()=>PE,getUnaryOp:()=>Es,getUnaryValue:()=>Do,initializeProgram:()=>sw,isConstExpressionNaN:()=>Lo,isConstNaN:()=>oE,isConstNegZero:()=>No,isConstNonZero:()=>xt,isConstZero:()=>nt,isDeclaredElement:()=>Gs,isError:()=>tw,isGlobalMutable:()=>gf,isIllegalVariableIdentifier:()=>Zp,isInfo:()=>JF,isLoadSigned:()=>df,isLocalTee:()=>bs,isNullableType:()=>Xb,isTypeOmitted:()=>De,isTypedElement:()=>Ko,isWarning:()=>ew,mangleInternalName:()=>Ke,mangleInternalPath:()=>ds,mustPreserveSideEffects:()=>Uo,newOptions:()=>jk,newProgram:()=>VF,nextDiagnostic:()=>OF,nextFile:()=>iw,operatorTokenToString:()=>Le,optimize:()=>pw,parse:()=>rw,readString:()=>Ye,removeGlobalAlias:()=>uF,runtimeFunctions:()=>dn,runtimeGlobals:()=>hn,setBasenameHint:()=>zF,setBindingsHint:()=>DF,setBundleVersion:()=>mF,setDebugInfo:()=>UF,setExportMemory:()=>$k,setExportRuntime:()=>_F,setExportStart:()=>cF,setExportTable:()=>iF,setFeature:()=>LF,setImportMemory:()=>Yk,setImportTable:()=>rF,setInitialMemory:()=>Jk,setLowMemoryLimit:()=>fF,setMaximumMemory:()=>eF,setMemoryBase:()=>aF,setNoAssert:()=>Zk,setNoUnsafe:()=>pF,setOptimizeLevelHints:()=>MF,setPedantic:()=>GF,setRuntime:()=>Xk,setSharedMemory:()=>tF,setSourceMap:()=>nF,setStackSize:()=>hF,setTableBase:()=>lF,setTarget:()=>Qk,setUncheckedBehavior:()=>sF,tokenFromKeyword:()=>Db,tokenIsAlsoIdentifier:()=>Gb,typesToRefs:()=>an,typesToString:()=>Ho,util:()=>Hp,validate:()=>cw});var J=typeof window<"u"&&window||typeof global<"u"&&global||self;if(typeof J.ASC_TARGET>"u"){let e=function(){Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=this.name+": "+this.message+`
7
+ var Bu=Object.defineProperty;var W_=Object.getOwnPropertyDescriptor;var v1=Object.getOwnPropertyNames;var I1=Object.prototype.hasOwnProperty;var Nu=(i,r)=>{for(var e in r)Bu(i,e,{get:r[e],enumerable:!0})},q_=(i,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of v1(r))!I1.call(i,n)&&n!==e&&Bu(i,n,{get:()=>r[n],enumerable:!(t=W_(r,n))||t.enumerable});return i},Lu=(i,r,e)=>(q_(i,r,"default"),e&&q_(e,r,"default"));var K_=(i,r,e,t)=>{for(var n=t>1?void 0:t?W_(r,e):r,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Bu(r,e,n),n};var V_={};Nu(V_,{ASTBuilder:()=>U_,ArrayLiteralExpression:()=>Yr,ArrowKind:()=>Xt,AssertionExpression:()=>Al,AssertionKind:()=>Qt,AsyncLowerTransform:()=>Fa,AtomicRMWOp:()=>rf,AwaitExpression:()=>Xl,BinaryExpression:()=>Tl,BinaryModule:()=>Po,BinaryOp:()=>en,BindResult:()=>$o,BlockStatement:()=>Jl,BrOnOp:()=>Wb,BreakStatement:()=>eo,CallExpression:()=>Sl,Class:()=>Er,ClassDeclaration:()=>cs,ClassExpression:()=>vl,ClassPrototype:()=>Os,ClosureLowerTransform:()=>ya,CommaExpression:()=>Il,CommentKind:()=>$p,CommentNode:()=>El,CommonFlags:()=>ze,CommonNames:()=>N,CompiledExpression:()=>$l,Compiler:()=>pa,ConditionKind:()=>Ef,ConstantValueKind:()=>kf,Constraints:()=>f_,ConstructorExpression:()=>kl,ContinueStatement:()=>to,DEFAULT_STACK_SIZE:()=>dF,DeclarationStatement:()=>it,DeclaredElement:()=>Ar,DecoratorFlags:()=>Nt,DecoratorKind:()=>Rt,DecoratorNode:()=>xl,DiagnosticCategory:()=>ls,DiagnosticCode:()=>Xe,DiagnosticEmitter:()=>tt,DiagnosticMessage:()=>hl,DoStatement:()=>ro,Element:()=>Ds,ElementAccessExpression:()=>Fl,ElementKind:()=>Et,EmptyStatement:()=>io,Enum:()=>Yo,EnumDeclaration:()=>no,EnumValue:()=>Jo,EnumValueDeclaration:()=>so,EnvAnalysisRecord:()=>hu,ExportDefaultStatement:()=>uo,ExportImportStatement:()=>ao,ExportMember:()=>lo,ExportNames:()=>ua,ExportStatement:()=>oo,Expression:()=>xe,ExpressionId:()=>ei,ExpressionRunnerFlags:()=>Bo,ExpressionStatement:()=>co,ExternalKind:()=>tf,FEATURES_ALL:()=>BF,FEATURES_DEFAULT:()=>NF,FEATURE_BULK_MEMORY:()=>xF,FEATURE_EXCEPTION_HANDLING:()=>TF,FEATURE_EXTENDED_CONST:()=>RF,FEATURE_GC:()=>kF,FEATURE_MEMORY64:()=>FF,FEATURE_MULTI_VALUE:()=>IF,FEATURE_MUTABLE_GLOBALS:()=>gF,FEATURE_NONTRAPPING_F2I:()=>bF,FEATURE_REFERENCE_TYPES:()=>vF,FEATURE_RELAXED_SIMD:()=>wF,FEATURE_SHARED_EVERYTHING:()=>PF,FEATURE_SIGN_EXTENSION:()=>yF,FEATURE_SIMD:()=>EF,FEATURE_STRINGREF:()=>CF,FEATURE_TAIL_CALLS:()=>SF,FEATURE_THREADS:()=>AF,FalseExpression:()=>Hl,Feature:()=>Kt,FeatureFlags:()=>ef,FieldDeclaration:()=>po,FieldFlags:()=>xf,File:()=>Us,FixedArrayTypeNode:()=>gl,FloatLiteralExpression:()=>wl,Flow:()=>Jt,FlowFlags:()=>Oo,ForOfStatement:()=>_o,ForStatement:()=>fo,Function:()=>Lt,FunctionDeclaration:()=>ps,FunctionExpression:()=>Rl,FunctionPrototype:()=>lt,FunctionTypeNode:()=>$r,GETTER_PREFIX:()=>rl,Global:()=>ti,HeapTypeRef:()=>Ie,INDEX_SUFFIX:()=>Qe,INNER_DELIMITER:()=>Np,INSTANCE_DELIMITER:()=>Bp,IdentifierExpression:()=>rt,IdentifierHandling:()=>Xp,IfStatement:()=>ho,ImportDeclaration:()=>mo,ImportNames:()=>gn,ImportStatement:()=>fs,IndexSignature:()=>Ps,IndexSignatureNode:()=>Yl,InstanceOfExpression:()=>Cl,IntegerLiteralExpression:()=>Pl,Interface:()=>Bs,InterfaceDeclaration:()=>yo,InterfacePrototype:()=>eu,JSBuilder:()=>_n,LIBRARY_PREFIX:()=>Ft,LIBRARY_SUBST:()=>Fb,LazyExpression:()=>Zl,LiteralExpression:()=>wt,LiteralKind:()=>pt,Local:()=>ye,LocalFlags:()=>ws,MemoryModel:()=>_s,MemoryModelCode:()=>ax,MemoryOrder:()=>Ub,MemorySegment:()=>Ji,MethodDeclaration:()=>Jr,Module:()=>Yt,ModuleDeclaration:()=>So,NamedTypeNode:()=>Zr,Namespace:()=>Vs,NamespaceDeclaration:()=>go,NewExpression:()=>Bl,Node:()=>h,NodeKind:()=>$e,NullExpression:()=>Nl,ObjectLiteralExpression:()=>Ll,OmittedExpression:()=>Ml,OperatorKind:()=>Me,Options:()=>ca,PARENT_SUBST:()=>z1,PATH_DELIMITER:()=>mt,PackedType:()=>ms,Parameter:()=>Sf,ParameterKind:()=>jt,ParameterNode:()=>Zi,ParenthesizedExpression:()=>zl,Parser:()=>Ms,Precedence:()=>tx,Program:()=>zs,Property:()=>Cs,PropertyAccessExpression:()=>Dl,PropertyPrototype:()=>sn,Range:()=>ue,RefAsOp:()=>Vb,RegexpLiteralExpression:()=>Gl,Relooper:()=>Co,ReportMode:()=>jo,Resolver:()=>Rs,ReturnStatement:()=>bo,Runtime:()=>el,RuntimeFeatures:()=>__,SETTER_PREFIX:()=>il,SIMDExtractOp:()=>nf,SIMDLoadOp:()=>lf,SIMDLoadStoreLaneOp:()=>of,SIMDReplaceOp:()=>sf,SIMDShiftOp:()=>af,SIMDTernaryOp:()=>uf,STATIC_DELIMITER:()=>es,STUB_DELIMITER:()=>Lp,SideEffects:()=>bf,Signature:()=>de,Source:()=>Te,SourceKind:()=>Yi,State:()=>ml,Statement:()=>me,StringEncodeOp:()=>jb,StringEqOp:()=>Qb,StringLiteralExpression:()=>Vl,StringMeasureOp:()=>Hb,StringNewOp:()=>Kb,SuperExpression:()=>Ol,SwitchBuilder:()=>ys,SwitchCase:()=>xo,SwitchStatement:()=>Eo,TSDBuilder:()=>bn,Target:()=>Gi,TemplateLiteralExpression:()=>ql,TernaryExpression:()=>Ul,ThisExpression:()=>Wl,ThrowStatement:()=>Ao,Token:()=>bt,Tokenizer:()=>os,TrueExpression:()=>Kl,TryStatement:()=>To,TupleTypeNode:()=>yl,Type:()=>p,TypeBuilderErrorReason:()=>Jp,TypeDeclaration:()=>vo,TypeDefinition:()=>at,TypeFlags:()=>Bt,TypeKind:()=>xr,TypeName:()=>Xi,TypeNode:()=>Xr,TypeParameterNode:()=>bl,TypeRef:()=>B,TypedElement:()=>rr,Typeinfo:()=>Ui,TypeinfoFlags:()=>tl,UnaryExpression:()=>us,UnaryOp:()=>gs,UnaryPostfixExpression:()=>jl,UnaryPrefixExpression:()=>Ql,UncheckedBehavior:()=>qo,VariableDeclaration:()=>Io,VariableLikeDeclarationStatement:()=>$i,VariableLikeElement:()=>ri,VariableStatement:()=>ko,VoidStatement:()=>Fo,WhileStatement:()=>wo,WideIntAddSubOp:()=>Ob,WideIntMulOp:()=>qb,addGlobalAlias:()=>oF,allocPtrArray:()=>Ee,applyInTreeTransforms:()=>Xx,buildJS:()=>ow,buildTSD:()=>lw,compile:()=>aw,createType:()=>ft,defaultFeatures:()=>ou,diagnosticCategoryToColor:()=>Mb,diagnosticCategoryToString:()=>jp,diagnosticCodeToString:()=>sl,ensureType:()=>Fs,expandType:()=>cf,featureToString:()=>Di,findDecorator:()=>Zt,formatDiagnostic:()=>zb,formatDiagnosticMessage:()=>zb,getBinaryLeft:()=>st,getBinaryOp:()=>tn,getBinaryRight:()=>We,getBinaryenModuleRef:()=>uw,getBlockChildAt:()=>Ss,getBlockChildCount:()=>Ts,getBlockName:()=>As,getBreakCondition:()=>gE,getBreakName:()=>yE,getCallOperandAt:()=>Je,getCallOperandCount:()=>Pt,getCallTarget:()=>Is,getConstValueF32:()=>Ce,getConstValueF64:()=>Pe,getConstValueI32:()=>ae,getConstValueI64High:()=>Ge,getConstValueI64Low:()=>Be,getConstValueInteger:()=>pf,getConstValueV128:()=>ff,getDefaultParameterName:()=>sx,getDependee:()=>nw,getDiagnosticCategory:()=>KF,getDiagnosticCode:()=>WF,getDiagnosticMessage:()=>HF,getDiagnosticRange:()=>jF,getDiagnosticRelatedRange:()=>QF,getDropValue:()=>xE,getExpressionId:()=>re,getExpressionType:()=>ce,getFunctionBody:()=>TE,getFunctionName:()=>yf,getFunctionParams:()=>SE,getFunctionResults:()=>vE,getFunctionVars:()=>IE,getGlobalGetName:()=>xs,getGlobalInit:()=>wE,getGlobalName:()=>kE,getGlobalType:()=>FE,getIfCondition:()=>Go,getIfFalse:()=>rn,getIfTrue:()=>vs,getLoadBytes:()=>_f,getLoadOffset:()=>uE,getLoadPtr:()=>cE,getLocalGetIndex:()=>Ct,getLocalSetIndex:()=>Mo,getLocalSetValue:()=>zo,getLoopBody:()=>mE,getLoopName:()=>hE,getMemoryGrowDelta:()=>AE,getRangeEnd:()=>ZF,getRangeSource:()=>$F,getRangeStart:()=>XF,getReturnValue:()=>EE,getSelectCondition:()=>bE,getSelectElse:()=>mf,getSelectThen:()=>hf,getSideEffects:()=>ks,getSource:()=>qF,getSourceNormalizedPath:()=>YF,getStoreBytes:()=>pE,getStoreOffset:()=>fE,getStorePtr:()=>_E,getStoreValue:()=>dE,getTagName:()=>RE,getTagParams:()=>CE,getTagResults:()=>PE,getUnaryOp:()=>Es,getUnaryValue:()=>Do,initializeProgram:()=>sw,isConstExpressionNaN:()=>Lo,isConstNaN:()=>oE,isConstNegZero:()=>No,isConstNonZero:()=>xt,isConstZero:()=>nt,isDeclaredElement:()=>Gs,isError:()=>tw,isGlobalMutable:()=>gf,isIllegalVariableIdentifier:()=>Zp,isInfo:()=>JF,isLoadSigned:()=>df,isLocalTee:()=>bs,isNullableType:()=>Xb,isTypeOmitted:()=>De,isTypedElement:()=>Ko,isWarning:()=>ew,mangleInternalName:()=>Ke,mangleInternalPath:()=>ds,mustPreserveSideEffects:()=>Uo,newOptions:()=>jk,newProgram:()=>VF,nextDiagnostic:()=>OF,nextFile:()=>iw,operatorTokenToString:()=>Le,optimize:()=>pw,parse:()=>rw,readString:()=>Ye,removeGlobalAlias:()=>uF,runtimeFunctions:()=>dn,runtimeGlobals:()=>hn,setBasenameHint:()=>zF,setBindingsHint:()=>DF,setBundleVersion:()=>mF,setDebugInfo:()=>UF,setExportMemory:()=>$k,setExportRuntime:()=>_F,setExportStart:()=>cF,setExportTable:()=>iF,setFeature:()=>LF,setImportMemory:()=>Yk,setImportTable:()=>rF,setInitialMemory:()=>Jk,setLowMemoryLimit:()=>fF,setMaximumMemory:()=>eF,setMemoryBase:()=>aF,setNoAssert:()=>Zk,setNoUnsafe:()=>pF,setOptimizeLevelHints:()=>MF,setPedantic:()=>GF,setRuntime:()=>Xk,setSharedMemory:()=>tF,setSourceMap:()=>nF,setStackSize:()=>hF,setTableBase:()=>lF,setTarget:()=>Qk,setUncheckedBehavior:()=>sF,tokenFromKeyword:()=>Db,tokenIsAlsoIdentifier:()=>Gb,typesToRefs:()=>an,typesToString:()=>Ho,util:()=>Hp,validate:()=>cw});var J=typeof window<"u"&&window||typeof global<"u"&&global||self;if(typeof J.ASC_TARGET>"u"){let e=function(){Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=this.name+": "+this.message+`
8
8
  `+new Error().stack},t=function(a){this.message=a||"assertion failed",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=this.name+": "+this.message+`
9
- `+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};k1=e,F1=t,w1=n,J.ASC_TARGET=0,J.ASC_RUNTIME=0,J.ASC_NO_ASSERT=!1,J.ASC_MEMORY_BASE=0,J.ASC_OPTIMIZE_LEVEL=3,J.ASC_SHRINK_LEVEL=0,J.ASC_FEATURE_MUTABLE_GLOBAL=!1,J.ASC_FEATURE_SIGN_EXTENSION=!1,J.ASC_FEATURE_BULK_MEMORY=!1,J.ASC_FEATURE_SIMD=!1,J.ASC_FEATURE_THREADS=!1;let i=new Float64Array(1),r=new Uint32Array(i.buffer);Object.defineProperties(J.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties(J.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties(J.i32=J.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties(J.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties(J.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties(J.u32=J.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties(J.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties(J.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties(J.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),J.clz=Math.clz32,J.ctz=function(l){return 32-Math.clz32(~l&l-1)},J.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},J.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},J.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},J.abs=Math.abs,J.max=Math.max,J.min=Math.min,J.ceil=Math.ceil,J.floor=Math.floor,J.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},J.select=function(l,o,u){return u?l:o},J.sqrt=Math.sqrt,J.trunc=Math.trunc,J.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(i[0]=o,r[1]>>>31?-1:1)},J.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",J.unreachable=function(){throw new e},t.prototype=Object.create(Error.prototype),t.prototype.name="AssertionError",J.assert=function(l,o){if(l)return l;throw new t(o)},J.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCharCode.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCodePoint.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,c){return new a(o,u,c)},configurable:!0})}),J.isInteger=Number.isInteger,J.isFloat=function(l){return typeof l=="number"},J.isNullable=function(l){return!0},J.isReference=function(l){return typeof l=="object"||typeof l=="string"},J.isFunction=function(l){return typeof l=="function"},J.isString=function(l){return typeof l=="string"||l instanceof String},J.isArray=Array.isArray,J.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},J.isDefined=function(l){return typeof l<"u"},J.isConstant=function(l){return!1},J.unchecked=function(l){return l},J.fmod=function(l,o){return l%o},J.fmodf=function(l,o){return Math.fround(l%o)},J.JSMath=Math,Object.defineProperties(J.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return i[0]=l,!!(r[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),J.unmanaged=function(){},J.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var k1,F1,w1;var Rn={};Nu(Rn,{default:()=>Cn});Lu(Rn,GM);import*as GM from"binaryen";import{default as Cn}from"binaryen";import R1 from"long";var{_BinaryenTypeCreate:H_,_BinaryenTypeArity:j_,_BinaryenTypeExpand:Q_,_BinaryenTypeGetHeapType:fr,_BinaryenTypeFromHeapType:Ae,_BinaryenTypeIsNullable:X_,_BinaryenTypeFuncref:Z_,_BinaryenTypeExternref:$_,_BinaryenTypeAnyref:Y_,_BinaryenTypeEqref:J_,_BinaryenTypeI31ref:ed,_BinaryenTypeStructref:td,_BinaryenTypeArrayref:rd,_BinaryenTypeStringref:id,_BinaryenTypeNullref:nd,_BinaryenTypeNullExternref:sd,_BinaryenTypeNullFuncref:ad,_BinaryenHeapTypeFunc:qM,_BinaryenHeapTypeExt:WM,_BinaryenHeapTypeAny:KM,_BinaryenHeapTypeEq:HM,_BinaryenHeapTypeI31:jM,_BinaryenHeapTypeStruct:QM,_BinaryenHeapTypeArray:XM,_BinaryenHeapTypeString:ZM,_BinaryenHeapTypeNone:$M,_BinaryenHeapTypeNoext:YM,_BinaryenHeapTypeNofunc:JM,_BinaryenHeapTypeIsBasic:e7,_BinaryenHeapTypeIsSignature:t7,_BinaryenHeapTypeIsStruct:r7,_BinaryenHeapTypeIsArray:i7,_BinaryenHeapTypeIsBottom:ld,_BinaryenHeapTypeGetBottom:od,_BinaryenHeapTypeIsSubType:ud,_BinaryenStructTypeGetNumFields:cd,_BinaryenStructTypeGetFieldType:n7,_BinaryenStructTypeGetFieldPackedType:s7,_BinaryenStructTypeIsFieldMutable:a7,_BinaryenArrayTypeGetElementType:l7,_BinaryenArrayTypeGetElementPackedType:o7,_BinaryenArrayTypeIsElementMutable:u7,_BinaryenSignatureTypeGetParams:c7,_BinaryenSignatureTypeGetResults:p7,_BinaryenModuleCreate:pd,_BinaryenModuleDispose:fd,_BinaryenSizeofLiteral:Mu,_BinaryenLiteralInt32:_d,_BinaryenLiteralFloat32:dd,_BinaryenLiteralFloat64:hd,_BinaryenLiteralVec128:md,_BinaryenLiteralFloat32Bits:f7,_BinaryenExpressionGetId:Wt,_BinaryenExpressionGetType:_r,_BinaryenExpressionSetType:_7,_BinaryenExpressionPrint:d7,_BinaryenExpressionCopy:yd,_BinaryenExpressionFinalize:gd,_BinaryenBlock:bd,_BinaryenBlockGetName:Ca,_BinaryenBlockSetName:h7,_BinaryenBlockGetNumChildren:Pn,_BinaryenBlockGetChildAt:Bn,_BinaryenBlockSetChildAt:xd,_BinaryenBlockAppendChild:m7,_BinaryenBlockInsertChildAt:y7,_BinaryenBlockRemoveChildAt:g7,_BinaryenIf:Ed,_BinaryenIfGetCondition:Nn,_BinaryenIfSetCondition:Ad,_BinaryenIfGetIfTrue:Ln,_BinaryenIfSetIfTrue:Td,_BinaryenIfGetIfFalse:Mn,_BinaryenIfSetIfFalse:Sd,_BinaryenLoop:vd,_BinaryenLoopGetName:Pa,_BinaryenLoopSetName:b7,_BinaryenLoopGetBody:zn,_BinaryenLoopSetBody:Id,_BinaryenBreak:kd,_BinaryenBreakGetName:Ba,_BinaryenBreakSetName:x7,_BinaryenBreakGetCondition:Dn,_BinaryenBreakSetCondition:Fd,_BinaryenBreakGetValue:zu,_BinaryenBreakSetValue:wd,_BinaryenSwitch:Rd,_BinaryenSwitchGetNumNames:Cd,_BinaryenSwitchGetNameAt:Pd,_BinaryenSwitchSetNameAt:E7,_BinaryenSwitchAppendName:A7,_BinaryenSwitchInsertNameAt:T7,_BinaryenSwitchRemoveNameAt:S7,_BinaryenSwitchGetDefaultName:Bd,_BinaryenSwitchSetDefaultName:v7,_BinaryenSwitchGetCondition:Du,_BinaryenSwitchSetCondition:Nd,_BinaryenSwitchGetValue:Gu,_BinaryenSwitchSetValue:Ld,_BinaryenCall:Md,_BinaryenCallGetTarget:Ri,_BinaryenCallSetTarget:I7,_BinaryenCallGetNumOperands:dr,_BinaryenCallGetOperandAt:hr,_BinaryenCallSetOperandAt:Na,_BinaryenCallAppendOperand:k7,_BinaryenCallInsertOperandAt:F7,_BinaryenCallRemoveOperandAt:w7,_BinaryenCallIsReturn:R7,_BinaryenCallSetReturn:C7,_BinaryenReturnCall:zd,_BinaryenCallIndirect:Dd,_BinaryenCallIndirectGetTable:P7,_BinaryenCallIndirectSetTable:B7,_BinaryenCallIndirectGetTarget:Uu,_BinaryenCallIndirectSetTarget:Gd,_BinaryenCallIndirectGetNumOperands:Gn,_BinaryenCallIndirectGetOperandAt:Un,_BinaryenCallIndirectSetOperandAt:La,_BinaryenCallIndirectAppendOperand:N7,_BinaryenCallIndirectInsertOperandAt:L7,_BinaryenCallIndirectRemoveOperandAt:M7,_BinaryenCallIndirectIsReturn:z7,_BinaryenCallIndirectSetReturn:D7,_BinaryenReturnCallIndirect:Ud,_BinaryenLocalGet:Vd,_BinaryenLocalGetGetIndex:Ma,_BinaryenLocalGetSetIndex:G7,_BinaryenLocalSet:Od,_BinaryenLocalSetIsTee:za,_BinaryenLocalSetGetIndex:Ci,_BinaryenLocalSetSetIndex:U7,_BinaryenLocalSetGetValue:Dr,_BinaryenLocalSetSetValue:Da,_BinaryenLocalTee:qd,_BinaryenGlobalGet:Wd,_BinaryenGlobalGetGetName:Ga,_BinaryenGlobalGetSetName:V7,_BinaryenGlobalSet:Kd,_BinaryenGlobalSetGetName:Hd,_BinaryenGlobalSetSetName:O7,_BinaryenGlobalSetGetValue:Vu,_BinaryenGlobalSetSetValue:jd,_BinaryenMemorySize:Qd,_BinaryenMemoryGrow:Xd,_BinaryenMemoryGrowGetDelta:Vn,_BinaryenMemoryGrowSetDelta:Zd,_BinaryenLoad:$d,_BinaryenLoadIsAtomic:q7,_BinaryenLoadSetAtomic:W7,_BinaryenLoadIsSigned:Yd,_BinaryenLoadSetSigned:K7,_BinaryenLoadGetOffset:Jd,_BinaryenLoadSetOffset:H7,_BinaryenLoadGetBytes:eh,_BinaryenLoadSetBytes:j7,_BinaryenLoadGetAlign:Q7,_BinaryenLoadSetAlign:X7,_BinaryenLoadGetPtr:On,_BinaryenLoadSetPtr:th,_BinaryenAtomicLoad:rh,_BinaryenStore:ih,_BinaryenStoreIsAtomic:Z7,_BinaryenStoreSetAtomic:$7,_BinaryenStoreGetBytes:Ua,_BinaryenStoreSetBytes:Y7,_BinaryenStoreGetOffset:Va,_BinaryenStoreSetOffset:J7,_BinaryenStoreGetAlign:ez,_BinaryenStoreSetAlign:tz,_BinaryenStoreGetPtr:Gr,_BinaryenStoreSetPtr:Oa,_BinaryenStoreGetValue:qn,_BinaryenStoreSetValue:nh,_BinaryenStoreGetValueType:rz,_BinaryenStoreSetValueType:iz,_BinaryenAtomicStore:sh,_BinaryenConst:Pi,_BinaryenConstGetValueI32:ah,_BinaryenConstSetValueI32:nz,_BinaryenConstGetValueF32:lh,_BinaryenConstSetValueF32:sz,_BinaryenConstGetValueF64:oh,_BinaryenConstSetValueF64:az,_BinaryenConstGetValueV128:uh,_BinaryenConstSetValueV128:lz,_BinaryenUnary:ch,_BinaryenUnaryGetOp:ph,_BinaryenUnarySetOp:oz,_BinaryenUnaryGetValue:Wn,_BinaryenUnarySetValue:fh,_BinaryenWideIntAddSub:_h,_BinaryenWideIntMul:dh,_BinaryenBinary:hh,_BinaryenBinaryGetOp:mh,_BinaryenBinarySetOp:uz,_BinaryenBinaryGetLeft:Kn,_BinaryenBinarySetLeft:yh,_BinaryenBinaryGetRight:Hn,_BinaryenBinarySetRight:gh,_BinaryenSelect:bh,_BinaryenSelectGetIfTrue:jn,_BinaryenSelectSetIfTrue:xh,_BinaryenSelectGetIfFalse:Qn,_BinaryenSelectSetIfFalse:Eh,_BinaryenSelectGetCondition:Xn,_BinaryenSelectSetCondition:Ah,_BinaryenDrop:Ou,_BinaryenDropGetValue:Zn,_BinaryenDropSetValue:Th,_BinaryenReturn:Sh,_BinaryenReturnGetValue:Ur,_BinaryenReturnSetValue:qa,_BinaryenNop:vh,_BinaryenUnreachable:Ih,_BinaryenAtomicRMW:kh,_BinaryenAtomicRMWGetOp:cz,_BinaryenAtomicRMWSetOp:pz,_BinaryenAtomicRMWGetBytes:fz,_BinaryenAtomicRMWSetBytes:_z,_BinaryenAtomicRMWGetOffset:dz,_BinaryenAtomicRMWSetOffset:hz,_BinaryenAtomicRMWGetPtr:qu,_BinaryenAtomicRMWSetPtr:Fh,_BinaryenAtomicRMWGetValue:Wu,_BinaryenAtomicRMWSetValue:wh,_BinaryenAtomicCmpxchg:Rh,_BinaryenAtomicCmpxchgGetBytes:mz,_BinaryenAtomicCmpxchgSetBytes:yz,_BinaryenAtomicCmpxchgGetOffset:gz,_BinaryenAtomicCmpxchgSetOffset:bz,_BinaryenAtomicCmpxchgGetPtr:Ku,_BinaryenAtomicCmpxchgSetPtr:Ch,_BinaryenAtomicCmpxchgGetExpected:Hu,_BinaryenAtomicCmpxchgSetExpected:Ph,_BinaryenAtomicCmpxchgGetReplacement:ju,_BinaryenAtomicCmpxchgSetReplacement:Bh,_BinaryenAtomicWait:Nh,_BinaryenAtomicWaitGetPtr:Qu,_BinaryenAtomicWaitSetPtr:Lh,_BinaryenAtomicWaitGetExpected:Xu,_BinaryenAtomicWaitSetExpected:Mh,_BinaryenAtomicWaitGetTimeout:Zu,_BinaryenAtomicWaitSetTimeout:zh,_BinaryenAtomicWaitGetExpectedType:xz,_BinaryenAtomicWaitSetExpectedType:Ez,_BinaryenAtomicNotify:Dh,_BinaryenAtomicNotifyGetPtr:$u,_BinaryenAtomicNotifySetPtr:Gh,_BinaryenAtomicNotifyGetNotifyCount:Yu,_BinaryenAtomicNotifySetNotifyCount:Uh,_BinaryenAtomicFence:Vh,_BinaryenAtomicFenceGetOrder:Az,_BinaryenAtomicFenceSetOrder:Tz,_BinaryenSIMDExtract:Oh,_BinaryenSIMDExtractGetOp:Sz,_BinaryenSIMDExtractSetOp:vz,_BinaryenSIMDExtractGetVec:Ju,_BinaryenSIMDExtractSetVec:qh,_BinaryenSIMDExtractGetIndex:Iz,_BinaryenSIMDExtractSetIndex:kz,_BinaryenSIMDReplace:Wh,_BinaryenSIMDReplaceGetOp:Fz,_BinaryenSIMDReplaceSetOp:wz,_BinaryenSIMDReplaceGetVec:ec,_BinaryenSIMDReplaceSetVec:Kh,_BinaryenSIMDReplaceGetIndex:Rz,_BinaryenSIMDReplaceSetIndex:Cz,_BinaryenSIMDReplaceGetValue:tc,_BinaryenSIMDReplaceSetValue:Hh,_BinaryenSIMDShuffle:jh,_BinaryenSIMDShuffleGetLeft:rc,_BinaryenSIMDShuffleSetLeft:Qh,_BinaryenSIMDShuffleGetRight:ic,_BinaryenSIMDShuffleSetRight:Xh,_BinaryenSIMDShuffleGetMask:Pz,_BinaryenSIMDShuffleSetMask:Bz,_BinaryenSIMDTernary:Zh,_BinaryenSIMDTernaryGetOp:Nz,_BinaryenSIMDTernarySetOp:Lz,_BinaryenSIMDTernaryGetA:nc,_BinaryenSIMDTernarySetA:$h,_BinaryenSIMDTernaryGetB:sc,_BinaryenSIMDTernarySetB:Yh,_BinaryenSIMDTernaryGetC:ac,_BinaryenSIMDTernarySetC:Jh,_BinaryenSIMDShift:em,_BinaryenSIMDShiftGetOp:Mz,_BinaryenSIMDShiftSetOp:zz,_BinaryenSIMDShiftGetVec:lc,_BinaryenSIMDShiftSetVec:tm,_BinaryenSIMDShiftGetShift:oc,_BinaryenSIMDShiftSetShift:rm,_BinaryenSIMDLoad:im,_BinaryenSIMDLoadGetOp:Dz,_BinaryenSIMDLoadSetOp:Gz,_BinaryenSIMDLoadGetOffset:Uz,_BinaryenSIMDLoadSetOffset:Vz,_BinaryenSIMDLoadGetAlign:Oz,_BinaryenSIMDLoadSetAlign:qz,_BinaryenSIMDLoadGetPtr:uc,_BinaryenSIMDLoadSetPtr:nm,_BinaryenSIMDLoadStoreLane:sm,_BinaryenSIMDLoadStoreLaneGetOp:Wz,_BinaryenSIMDLoadStoreLaneSetOp:Kz,_BinaryenSIMDLoadStoreLaneGetOffset:Hz,_BinaryenSIMDLoadStoreLaneSetOffset:jz,_BinaryenSIMDLoadStoreLaneGetAlign:Qz,_BinaryenSIMDLoadStoreLaneSetAlign:Xz,_BinaryenSIMDLoadStoreLaneGetIndex:Zz,_BinaryenSIMDLoadStoreLaneSetIndex:$z,_BinaryenSIMDLoadStoreLaneGetPtr:cc,_BinaryenSIMDLoadStoreLaneSetPtr:am,_BinaryenSIMDLoadStoreLaneGetVec:pc,_BinaryenSIMDLoadStoreLaneSetVec:lm,_BinaryenSIMDLoadStoreLaneIsStore:Yz,_BinaryenMemoryInit:Jz,_BinaryenMemoryInitGetSegment:eD,_BinaryenMemoryInitSetSegment:tD,_BinaryenMemoryInitGetDest:fc,_BinaryenMemoryInitSetDest:om,_BinaryenMemoryInitGetOffset:_c,_BinaryenMemoryInitSetOffset:um,_BinaryenMemoryInitGetSize:dc,_BinaryenMemoryInitSetSize:cm,_BinaryenDataDrop:rD,_BinaryenDataDropGetSegment:iD,_BinaryenDataDropSetSegment:nD,_BinaryenMemoryCopy:pm,_BinaryenMemoryCopyGetDest:hc,_BinaryenMemoryCopySetDest:fm,_BinaryenMemoryCopyGetSource:mc,_BinaryenMemoryCopySetSource:_m,_BinaryenMemoryCopyGetSize:yc,_BinaryenMemoryCopySetSize:dm,_BinaryenMemoryFill:hm,_BinaryenMemoryFillGetDest:gc,_BinaryenMemoryFillSetDest:mm,_BinaryenMemoryFillGetValue:bc,_BinaryenMemoryFillSetValue:ym,_BinaryenMemoryFillGetSize:xc,_BinaryenMemoryFillSetSize:gm,_BinaryenRefNull:bm,_BinaryenRefIsNull:xm,_BinaryenRefIsNullGetValue:Ec,_BinaryenRefIsNullSetValue:Em,_BinaryenRefAs:Ac,_BinaryenRefAsGetOp:sD,_BinaryenRefAsSetOp:aD,_BinaryenRefAsGetValue:Tc,_BinaryenRefAsSetValue:Am,_BinaryenRefFunc:Tm,_BinaryenRefFuncGetFunc:Sm,_BinaryenRefFuncSetFunc:lD,_BinaryenRefEq:vm,_BinaryenRefEqGetLeft:Sc,_BinaryenRefEqSetLeft:Im,_BinaryenRefEqGetRight:vc,_BinaryenRefEqSetRight:km,_BinaryenTableGet:Fm,_BinaryenTableGetGetTable:oD,_BinaryenTableGetSetTable:uD,_BinaryenTableGetGetIndex:cD,_BinaryenTableGetSetIndex:pD,_BinaryenTableSet:wm,_BinaryenTableSetGetTable:fD,_BinaryenTableSetSetTable:_D,_BinaryenTableSetGetIndex:dD,_BinaryenTableSetSetIndex:hD,_BinaryenTableSetGetValue:mD,_BinaryenTableSetSetValue:yD,_BinaryenTableSize:Rm,_BinaryenTableSizeGetTable:gD,_BinaryenTableSizeSetTable:bD,_BinaryenTableGrow:Cm,_BinaryenTableGrowGetTable:xD,_BinaryenTableGrowSetTable:ED,_BinaryenTableGrowGetValue:AD,_BinaryenTableGrowSetValue:TD,_BinaryenTableGrowGetDelta:SD,_BinaryenTableGrowSetDelta:vD,_BinaryenTry:Pm,_BinaryenTryGetName:ID,_BinaryenTrySetName:kD,_BinaryenTryGetBody:Ic,_BinaryenTrySetBody:Bm,_BinaryenTryGetNumCatchTags:FD,_BinaryenTryGetNumCatchBodies:kc,_BinaryenTryGetCatchTagAt:wD,_BinaryenTrySetCatchTagAt:RD,_BinaryenTryAppendCatchTag:CD,_BinaryenTryInsertCatchTagAt:PD,_BinaryenTryRemoveCatchTagAt:BD,_BinaryenTryGetCatchBodyAt:Fc,_BinaryenTrySetCatchBodyAt:Nm,_BinaryenTryAppendCatchBody:ND,_BinaryenTryInsertCatchBodyAt:LD,_BinaryenTryRemoveCatchBodyAt:MD,_BinaryenTryHasCatchAll:zD,_BinaryenTryGetDelegateTarget:DD,_BinaryenTrySetDelegateTarget:GD,_BinaryenTryIsDelegate:UD,_BinaryenThrow:Lm,_BinaryenThrowGetTag:Mm,_BinaryenThrowSetTag:VD,_BinaryenThrowGetNumOperands:wc,_BinaryenThrowGetOperandAt:Rc,_BinaryenThrowSetOperandAt:zm,_BinaryenThrowAppendOperand:OD,_BinaryenThrowInsertOperandAt:qD,_BinaryenThrowRemoveOperandAt:WD,_BinaryenRethrow:Dm,_BinaryenRethrowGetTarget:KD,_BinaryenRethrowSetDepth:HD,_BinaryenTupleMake:Gm,_BinaryenTupleMakeGetNumOperands:Cc,_BinaryenTupleMakeGetOperandAt:Pc,_BinaryenTupleMakeSetOperandAt:Um,_BinaryenTupleMakeAppendOperand:jD,_BinaryenTupleMakeInsertOperandAt:QD,_BinaryenTupleMakeRemoveOperandAt:XD,_BinaryenTupleExtract:Vm,_BinaryenTupleExtractGetTuple:Bc,_BinaryenTupleExtractSetTuple:Om,_BinaryenTupleExtractGetIndex:ZD,_BinaryenTupleExtractSetIndex:$D,_BinaryenPop:qm,_BinaryenRefI31:Wm,_BinaryenRefI31GetValue:Nc,_BinaryenRefI31SetValue:Km,_BinaryenI31Get:Hm,_BinaryenI31GetGetI31:Lc,_BinaryenI31GetSetI31:jm,_BinaryenI31GetIsSigned:YD,_BinaryenI31GetSetSigned:JD,_BinaryenCallRef:eG,_BinaryenCallRefGetNumOperands:Mc,_BinaryenCallRefGetOperandAt:zc,_BinaryenCallRefSetOperandAt:Qm,_BinaryenCallRefAppendOperand:tG,_BinaryenCallRefInsertOperandAt:rG,_BinaryenCallRefRemoveOperandAt:iG,_BinaryenCallRefGetTarget:Dc,_BinaryenCallRefSetTarget:Xm,_BinaryenCallRefIsReturn:nG,_BinaryenCallRefSetReturn:sG,_BinaryenRefTest:aG,_BinaryenRefTestGetRef:Gc,_BinaryenRefTestSetRef:Zm,_BinaryenRefTestGetCastType:lG,_BinaryenRefTestSetCastType:oG,_BinaryenRefCast:uG,_BinaryenRefCastGetRef:Uc,_BinaryenRefCastSetRef:$m,_BinaryenBrOn:cG,_BinaryenBrOnGetOp:pG,_BinaryenBrOnSetOp:fG,_BinaryenBrOnGetName:Ym,_BinaryenBrOnSetName:_G,_BinaryenBrOnGetRef:Vc,_BinaryenBrOnSetRef:Jm,_BinaryenBrOnGetCastType:dG,_BinaryenBrOnSetCastType:hG,_BinaryenStructNew:mG,_BinaryenStructNewGetNumOperands:Oc,_BinaryenStructNewGetOperandAt:qc,_BinaryenStructNewSetOperandAt:ey,_BinaryenStructNewAppendOperand:yG,_BinaryenStructNewInsertOperandAt:gG,_BinaryenStructNewRemoveOperandAt:bG,_BinaryenStructGet:xG,_BinaryenStructGetGetIndex:ty,_BinaryenStructGetSetIndex:EG,_BinaryenStructGetGetRef:Wc,_BinaryenStructGetSetRef:ry,_BinaryenStructGetIsSigned:AG,_BinaryenStructGetSetSigned:TG,_BinaryenStructSet:SG,_BinaryenStructSetGetIndex:iy,_BinaryenStructSetSetIndex:vG,_BinaryenStructSetGetRef:Kc,_BinaryenStructSetSetRef:ny,_BinaryenStructSetGetValue:Hc,_BinaryenStructSetSetValue:sy,_BinaryenArrayNew:IG,_BinaryenArrayNewGetInit:jc,_BinaryenArrayNewSetInit:ay,_BinaryenArrayNewGetSize:Qc,_BinaryenArrayNewSetSize:ly,_BinaryenArrayNewFixed:kG,_BinaryenArrayNewFixedGetNumValues:Xc,_BinaryenArrayNewFixedGetValueAt:Zc,_BinaryenArrayNewFixedSetValueAt:oy,_BinaryenArrayNewFixedAppendValue:FG,_BinaryenArrayNewFixedInsertValueAt:wG,_BinaryenArrayNewFixedRemoveValueAt:RG,_BinaryenArrayNewData:CG,_BinaryenArrayNewDataGetSegment:PG,_BinaryenArrayNewDataSetSegment:BG,_BinaryenArrayNewDataGetOffset:NG,_BinaryenArrayNewDataSetOffset:LG,_BinaryenArrayNewDataGetSize:MG,_BinaryenArrayNewDataSetSize:zG,_BinaryenArrayNewElem:DG,_BinaryenArrayNewElemGetSegment:GG,_BinaryenArrayNewElemSetSegment:UG,_BinaryenArrayNewElemGetOffset:VG,_BinaryenArrayNewElemSetOffset:OG,_BinaryenArrayNewElemGetSize:qG,_BinaryenArrayNewElemSetSize:WG,_BinaryenArrayGet:KG,_BinaryenArrayGetGetRef:$c,_BinaryenArrayGetSetRef:uy,_BinaryenArrayGetGetIndex:Yc,_BinaryenArrayGetSetIndex:cy,_BinaryenArrayGetIsSigned:HG,_BinaryenArrayGetSetSigned:jG,_BinaryenArraySet:QG,_BinaryenArraySetGetRef:Jc,_BinaryenArraySetSetRef:py,_BinaryenArraySetGetIndex:ep,_BinaryenArraySetSetIndex:fy,_BinaryenArraySetGetValue:tp,_BinaryenArraySetSetValue:_y,_BinaryenArrayLen:XG,_BinaryenArrayLenGetRef:rp,_BinaryenArrayLenSetRef:dy,_BinaryenArrayFill:ZG,_BinaryenArrayFillGetRef:$G,_BinaryenArrayFillSetRef:YG,_BinaryenArrayFillGetIndex:JG,_BinaryenArrayFillSetIndex:e9,_BinaryenArrayFillGetValue:t9,_BinaryenArrayFillSetValue:r9,_BinaryenArrayFillGetSize:i9,_BinaryenArrayFillSetSize:n9,_BinaryenArrayCopy:s9,_BinaryenArrayCopyGetDestRef:ip,_BinaryenArrayCopySetDestRef:hy,_BinaryenArrayCopyGetDestIndex:np,_BinaryenArrayCopySetDestIndex:my,_BinaryenArrayCopyGetSrcRef:sp,_BinaryenArrayCopySetSrcRef:yy,_BinaryenArrayCopyGetSrcIndex:ap,_BinaryenArrayCopySetSrcIndex:gy,_BinaryenArrayCopyGetLength:lp,_BinaryenArrayCopySetLength:by,_BinaryenArrayInitData:a9,_BinaryenArrayInitDataGetSegment:l9,_BinaryenArrayInitDataSetSegment:o9,_BinaryenArrayInitDataGetRef:u9,_BinaryenArrayInitDataSetRef:c9,_BinaryenArrayInitDataGetIndex:p9,_BinaryenArrayInitDataSetIndex:f9,_BinaryenArrayInitDataGetOffset:_9,_BinaryenArrayInitDataSetOffset:d9,_BinaryenArrayInitDataGetSize:h9,_BinaryenArrayInitDataSetSize:m9,_BinaryenArrayInitElem:y9,_BinaryenArrayInitElemGetSegment:g9,_BinaryenArrayInitElemSetSegment:b9,_BinaryenArrayInitElemGetRef:x9,_BinaryenArrayInitElemSetRef:E9,_BinaryenArrayInitElemGetIndex:A9,_BinaryenArrayInitElemSetIndex:T9,_BinaryenArrayInitElemGetOffset:S9,_BinaryenArrayInitElemSetOffset:v9,_BinaryenArrayInitElemGetSize:I9,_BinaryenArrayInitElemSetSize:k9,_BinaryenStringNew:F9,_BinaryenStringNewGetOp:w9,_BinaryenStringNewSetOp:R9,_BinaryenStringNewGetRef:op,_BinaryenStringNewSetRef:xy,_BinaryenStringNewGetStart:up,_BinaryenStringNewSetStart:Ey,_BinaryenStringNewGetEnd:cp,_BinaryenStringNewSetEnd:Ay,_BinaryenStringConst:C9,_BinaryenStringConstGetString:P9,_BinaryenStringConstSetString:B9,_BinaryenStringMeasure:N9,_BinaryenStringMeasureGetOp:L9,_BinaryenStringMeasureSetOp:M9,_BinaryenStringMeasureGetRef:pp,_BinaryenStringMeasureSetRef:Ty,_BinaryenStringEncode:z9,_BinaryenStringEncodeGetOp:D9,_BinaryenStringEncodeSetOp:G9,_BinaryenStringEncodeGetStr:fp,_BinaryenStringEncodeSetStr:Sy,_BinaryenStringEncodeGetArray:_p,_BinaryenStringEncodeSetArray:vy,_BinaryenStringEncodeGetStart:dp,_BinaryenStringEncodeSetStart:Iy,_BinaryenStringConcat:U9,_BinaryenStringConcatGetLeft:hp,_BinaryenStringConcatSetLeft:ky,_BinaryenStringConcatGetRight:mp,_BinaryenStringConcatSetRight:Fy,_BinaryenStringEq:yp,_BinaryenStringEqGetOp:V9,_BinaryenStringEqSetOp:O9,_BinaryenStringEqGetLeft:gp,_BinaryenStringEqSetLeft:wy,_BinaryenStringEqGetRight:bp,_BinaryenStringEqSetRight:Ry,_BinaryenStringWTF16Get:q9,_BinaryenStringWTF16GetGetRef:xp,_BinaryenStringWTF16GetSetRef:Cy,_BinaryenStringWTF16GetGetPos:Ep,_BinaryenStringWTF16GetSetPos:Py,_BinaryenStringSliceWTF:W9,_BinaryenStringSliceWTFGetRef:Ap,_BinaryenStringSliceWTFSetRef:By,_BinaryenStringSliceWTFGetStart:Tp,_BinaryenStringSliceWTFSetStart:Ny,_BinaryenStringSliceWTFGetEnd:Sp,_BinaryenStringSliceWTFSetEnd:Ly,_BinaryenAddFunction:Bi,_BinaryenGetFunction:Ni,_BinaryenRemoveFunction:$n,_BinaryenGetNumFunctions:My,_BinaryenGetFunctionByIndex:zy,_BinaryenFunctionGetName:Li,_BinaryenFunctionGetParams:Yn,_BinaryenFunctionGetResults:Jn,_BinaryenFunctionGetNumVars:Wa,_BinaryenFunctionGetVar:Ka,_BinaryenFunctionAddVar:K9,_BinaryenFunctionGetNumLocals:vp,_BinaryenFunctionHasLocalName:H9,_BinaryenFunctionGetLocalName:j9,_BinaryenFunctionSetLocalName:Dy,_BinaryenFunctionGetBody:mr,_BinaryenFunctionSetBody:Ha,_BinaryenFunctionGetType:Q9,_BinaryenFunctionSetType:X9,_BinaryenFunctionOptimize:Z9,_BinaryenFunctionRunPasses:Gy,_BinaryenFunctionSetDebugLocation:Uy,_BinaryenAddFunctionImport:Vy,_BinaryenAddTableImport:Oy,_BinaryenAddMemoryImport:qy,_BinaryenAddGlobalImport:Wy,_BinaryenAddTagImport:Ky,_BinaryenAddFunctionExport:ja,_BinaryenAddTableExport:Hy,_BinaryenAddMemoryExport:jy,_BinaryenAddGlobalExport:Qy,_BinaryenAddTagExport:Xy,_BinaryenGetExport:Qa,_BinaryenRemoveExport:Xa,_BinaryenGetNumExports:$9,_BinaryenGetExportByIndex:Y9,_BinaryenExportGetKind:Zy,_BinaryenExportGetName:$y,_BinaryenExportGetValue:Yy,_BinaryenAddGlobal:Jy,_BinaryenGetGlobal:Ip,_BinaryenRemoveGlobal:eg,_BinaryenGetNumGlobals:tg,_BinaryenGetGlobalByIndex:rg,_BinaryenGlobalGetName:ig,_BinaryenGlobalGetType:ng,_BinaryenGlobalIsMutable:sg,_BinaryenGlobalGetInitExpr:Za,_BinaryenAddTag:ag,_BinaryenGetTag:lg,_BinaryenRemoveTag:og,_BinaryenTagGetName:ug,_BinaryenTagGetParams:cg,_BinaryenTagGetResults:pg,_BinaryenAddTable:kp,_BinaryenRemoveTable:J9,_BinaryenGetNumTables:e5,_BinaryenGetTable:Fp,_BinaryenGetTableByIndex:t5,_BinaryenTableGetName:r5,_BinaryenTableSetName:i5,_BinaryenTableGetInitial:n5,_BinaryenTableSetInitial:fg,_BinaryenTableHasMax:s5,_BinaryenTableGetMax:a5,_BinaryenTableSetMax:_g,_BinaryenTableGetType:l5,_BinaryenTableSetType:o5,_BinaryenAddActiveElementSegment:dg,_BinaryenAddPassiveElementSegment:u5,_BinaryenRemoveElementSegment:c5,_BinaryenGetNumElementSegments:p5,_BinaryenGetElementSegment:f5,_BinaryenGetElementSegmentByIndex:_5,_BinaryenSetMemory:hg,_BinaryenGetNumMemorySegments:d5,_BinaryenGetMemorySegmentByteOffset:h5,_BinaryenGetMemorySegmentByteLength:m5,_BinaryenCopyMemorySegmentData:y5,_BinaryenAddDataSegment:g5,_BinaryenSetStart:mg,_BinaryenGetStart:b5,_BinaryenModuleParse:x5,_BinaryenModulePrint:E5,_BinaryenModulePrintAsmjs:A5,_BinaryenModuleValidate:yg,_BinaryenModuleOptimize:T5,_BinaryenModuleRunPasses:gg,_BinaryenSizeofAllocateAndWriteResult:bg,_BinaryenModuleAllocateAndWrite:xg,_BinaryenModuleAllocateAndWriteText:Eg,_BinaryenModuleAllocateAndWriteStackIR:Ag,_BinaryenModuleRead:Tg,_BinaryenModuleReadWithFeatures:S5,_BinaryenModuleInterpret:Sg,_BinaryenModuleAddDebugInfoFileName:vg,_BinaryenModuleGetDebugInfoFileName:Ig,_BinaryenModuleGetFeatures:kg,_BinaryenModuleSetFeatures:Fg,_BinaryenAddCustomSection:wg,_BinaryenExpressionGetSideEffects:Rg,_RelooperCreate:Cg,_RelooperAddBlock:Pg,_RelooperAddBranch:Bg,_RelooperAddBlockWithSwitch:Ng,_RelooperAddBranchForSwitch:Lg,_RelooperRenderAndDispose:Mg,_ExpressionRunnerCreate:zg,_ExpressionRunnerSetLocalValue:v5,_ExpressionRunnerSetGlobalValue:I5,_ExpressionRunnerRunAndDispose:Dg,_TypeBuilderCreate:Gg,_TypeBuilderGrow:wp,_TypeBuilderGetSize:$a,_TypeBuilderSetSignatureType:Ug,_TypeBuilderSetStructType:Vg,_TypeBuilderSetArrayType:k5,_TypeBuilderGetTempHeapType:Rp,_TypeBuilderGetTempTupleType:Cp,_TypeBuilderGetTempRefType:Mi,_TypeBuilderSetSubType:Og,_TypeBuilderSetOpen:F5,_TypeBuilderCreateRecGroup:w5,_TypeBuilderBuildAndDispose:qg,_BinaryenModuleSetTypeName:Wg,_BinaryenModuleSetFieldName:Kg,_BinaryenGetOptimizeLevel:Hg,_BinaryenSetOptimizeLevel:jg,_BinaryenGetShrinkLevel:Qg,_BinaryenSetShrinkLevel:Xg,_BinaryenGetDebugInfo:Zg,_BinaryenSetDebugInfo:$g,_BinaryenGetTrapsNeverHappen:Yg,_BinaryenSetTrapsNeverHappen:Jg,_BinaryenGetClosedWorld:eb,_BinaryenSetClosedWorld:tb,_BinaryenGetLowMemoryUnused:rb,_BinaryenSetLowMemoryUnused:ib,_BinaryenGetZeroFilledMemory:nb,_BinaryenSetZeroFilledMemory:sb,_BinaryenGetFastMath:ab,_BinaryenSetFastMath:lb,_BinaryenGetGenerateStackIR:ob,_BinaryenSetGenerateStackIR:ub,_BinaryenGetOptimizeStackIR:cb,_BinaryenSetOptimizeStackIR:pb,_BinaryenGetPassArgument:fb,_BinaryenSetPassArgument:_b,_BinaryenClearPassArguments:db,_BinaryenHasPassToSkip:R5,_BinaryenAddPassToSkip:C5,_BinaryenClearPassesToSkip:P5,_BinaryenGetAlwaysInlineMaxSize:hb,_BinaryenSetAlwaysInlineMaxSize:mb,_BinaryenGetFlexibleInlineMaxSize:yb,_BinaryenSetFlexibleInlineMaxSize:gb,_BinaryenGetOneCallerInlineMaxSize:bb,_BinaryenSetOneCallerInlineMaxSize:xb,_BinaryenGetAllowInliningFunctionsWithLoops:Eb,_BinaryenSetAllowInliningFunctionsWithLoops:Ab,_malloc:kt,_free:ne,__i32_store8:qe,__i32_store16:B5,__i32_store:Ya,__f32_store:N5,__f64_store:L5,__i32_load8_s:M5,__i32_load8_u:Vr,__i32_load16_s:z5,__i32_load16_u:D5,__i32_load:yr,__f32_load:G5,__f64_load:U5}=Cn;function C1(i){return BigInt(i.high|0)<<32n|BigInt(i.low>>>0)}function P1(i){return R1.fromBits(Number(i&0xFFFFFFFFn)|0,Number(i>>32n)|0)}function Tb(i,r){return Cn._BinaryenLiteralInt64(i,C1(r))}function Pp(i){return P1(Cn._BinaryenConstGetValueI64(i))}var vb="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:Ib}=(await WebAssembly.instantiateStreaming(fetch(vb))).instance.exports;var Ja=new Float64Array(1),kb=new Float32Array(Ja.buffer),zi=new Int32Array(Ja.buffer);globalThis.f32_as_i32=function(r){return kb[0]=r,zi[0]};globalThis.i32_as_f32=function(r){return zi[0]=r,kb[0]};globalThis.f64_as_i64=function(r){return Ja[0]=r,i64_new(zi[0],zi[1])};globalThis.i64_as_f64=function(r){return zi[0]=i64_low(r),zi[1]=i64_high(r),Ja[0]};globalThis.f64_pow=Ib;import we from"long";globalThis.i64_zero=we.ZERO;globalThis.i64_one=we.ONE;globalThis.i64_neg_one=we.fromInt(-1);globalThis.i64_minimum=we.MIN_VALUE;globalThis.i64_maximum=we.MAX_VALUE;globalThis.i64_is=function(r){return we.isLong(r)};globalThis.i64_new=function(r,e){return we.fromBits(r,e)};globalThis.i64_low=function(r){return r.low};globalThis.i64_high=function(r){return r.high};globalThis.i64_not=function(r){return r.not()};globalThis.i64_neg=function(r){return r.neg()};globalThis.i64_clz=function(r){return r.clz()};globalThis.i64_ctz=function(r){return r.ctz()};globalThis.i64_add=function(r,e){return r.add(e)};globalThis.i64_sub=function(r,e){return r.sub(e)};globalThis.i64_mul=function(r,e){return r.mul(e)};globalThis.i64_pow=function(r,e){let t=e.low,n=e.high;if(n<=0){if(n<0)return r.eq(globalThis.i64_neg_one)?t&1?r:we.ONE:r.eq(we.ONE)?r:we.ZERO;if(t==0)return we.ONE;if(t==1)return r;if(t==2)return r.mul(r)}let s=we.ONE;for(;t|n;)t&1&&(s=s.mul(r)),e=e.shru(1),r=r.mul(r),t=e.low,n=e.high;return s};globalThis.i64_div=function(r,e){return r.div(e)};globalThis.i64_div_u=function(r,e){return r.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(r,e){return r.mod(e)};globalThis.i64_rem_u=function(r,e){return r.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(r,e){return r.and(e)};globalThis.i64_or=function(r,e){return r.or(e)};globalThis.i64_xor=function(r,e){return r.xor(e)};globalThis.i64_shl=function(r,e){return r.shl(e)};globalThis.i64_shr=function(r,e){return r.shr(e)};globalThis.i64_shr_u=function(r,e){return r.shru(e)};globalThis.i64_eq=function(r,e){return r.eq(e)};globalThis.i64_ne=function(r,e){return r.ne(e)};globalThis.i64_ge=function(r,e){return r.ge(e)};globalThis.i64_ge_u=function(r,e){return r.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(r,e){return r.gt(e)};globalThis.i64_gt_u=function(r,e){return r.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(r,e){return r.le(e)};globalThis.i64_le_u=function(r,e){return r.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(r,e){return r.lt(e)};globalThis.i64_lt_u=function(r,e){return r.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(r,e){assert(e&&(e&e-1)==0);let t=we.fromInt(e-1);return r.add(t).and(t.not())};globalThis.i64_signbit=function(r){return!!(r.high>>>31)};globalThis.i64_is_i8=function(r){return r.high===0&&r.low>=0&&r.low<=i8.MAX_VALUE||r.high===-1&&r.low>=i8.MIN_VALUE&&r.low<0};globalThis.i64_is_i16=function(r){return r.high===0&&r.low>=0&&r.low<=i16.MAX_VALUE||r.high===-1&&r.low>=i16.MIN_VALUE&&r.low<0};globalThis.i64_is_i32=function(r){return r.high===0&&r.low>=0||r.high===-1&&r.low<0};globalThis.i64_is_u8=function(r){return r.high===0&&r.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(r){return r.high===0&&r.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(r){return r.high===0};globalThis.i64_is_bool=function(r){return(r.high|r.low&-2)===0};var B1=we.fromNumber(f32.MIN_SAFE_INTEGER),N1=we.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(r){return r.gte(B1)&&r.lte(N1)};var L1=we.fromNumber(f64.MIN_SAFE_INTEGER),M1=we.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(r){return r.gte(L1)&&r.lte(M1)};globalThis.i64_to_f32=function(r){return globalThis.Math.fround(r.toNumber())};globalThis.i64_to_f64=function(r){return r.toNumber()};globalThis.i64_to_string=function(r,e){return e?r.toUnsigned().toString():r.toString()};globalThis.i64_clone=function(r){return we.fromBits(r.low,r.high,r.unsigned)};globalThis.Map_keys=function(r){return Array.from(r.keys())};globalThis.Map_values=function(r){return Array.from(r.values())};globalThis.Set_values=function(r){return Array.from(r.values())};var Kt=(k=>(k[k.None=0]="None",k[k.SignExtension=1]="SignExtension",k[k.MutableGlobals=2]="MutableGlobals",k[k.NontrappingF2I=4]="NontrappingF2I",k[k.BulkMemory=8]="BulkMemory",k[k.Simd=16]="Simd",k[k.Threads=32]="Threads",k[k.ExceptionHandling=64]="ExceptionHandling",k[k.TailCalls=128]="TailCalls",k[k.ReferenceTypes=256]="ReferenceTypes",k[k.MultiValue=512]="MultiValue",k[k.GC=1024]="GC",k[k.Memory64=2048]="Memory64",k[k.RelaxedSimd=4096]="RelaxedSimd",k[k.ExtendedConst=8192]="ExtendedConst",k[k.Strings=16384]="Strings",k[k.SharedEverything=32768]="SharedEverything",k[k.All=65535]="All",k))(Kt||{});function Di(i){switch(i){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything"}return assert(!1),""}var Gi=(t=>(t[t.Js=0]="Js",t[t.Wasm32=1]="Wasm32",t[t.Wasm64=2]="Wasm64",t))(Gi||{});var el=(t=>(t[t.Stub=0]="Stub",t[t.Minimal=1]="Minimal",t[t.Incremental=2]="Incremental",t))(el||{});var Ui=class{constructor(){this.flags=0}};Ui=K_([unmanaged],Ui);var tl=(G=>(G[G.NONE=0]="NONE",G[G.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",G[G.ARRAY=2]="ARRAY",G[G.STATICARRAY=4]="STATICARRAY",G[G.SET=8]="SET",G[G.MAP=16]="MAP",G[G.POINTERFREE=32]="POINTERFREE",G[G.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",G[G.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",G[G.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",G[G.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",G[G.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",G[G.VALUE_SIGNED=2048]="VALUE_SIGNED",G[G.VALUE_FLOAT=4096]="VALUE_FLOAT",G[G.VALUE_NULLABLE=8192]="VALUE_NULLABLE",G[G.VALUE_MANAGED=16384]="VALUE_MANAGED",G[G.KEY_ALIGN_0=32768]="KEY_ALIGN_0",G[G.KEY_ALIGN_1=65536]="KEY_ALIGN_1",G[G.KEY_ALIGN_2=131072]="KEY_ALIGN_2",G[G.KEY_ALIGN_3=262144]="KEY_ALIGN_3",G[G.KEY_ALIGN_4=524288]="KEY_ALIGN_4",G[G.KEY_SIGNED=1048576]="KEY_SIGNED",G[G.KEY_FLOAT=2097152]="KEY_FLOAT",G[G.KEY_NULLABLE=4194304]="KEY_NULLABLE",G[G.KEY_MANAGED=8388608]="KEY_MANAGED",G))(tl||{});var ze=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(ze||{}),mt="/",z1="..",rl="get:",il="set:",Bp="#",es=".",Np="~",Fb="~lib",Ft=Fb+mt,Qe=mt+"index",Lp="@",N;(D=>(D.Empty="",D.i8="i8",D.i16="i16",D.i32="i32",D.i64="i64",D.isize="isize",D.u8="u8",D.u16="u16",D.u32="u32",D.u64="u64",D.usize="usize",D.bool="bool",D.f32="f32",D.f64="f64",D.v128="v128",D.ref_func="ref_func",D.ref_extern="ref_extern",D.ref_any="ref_any",D.ref_eq="ref_eq",D.ref_struct="ref_struct",D.ref_array="ref_array",D.ref_i31="ref_i31",D.ref_string="ref_string",D.ref_stringview_wtf8="ref_stringview_wtf8",D.ref_stringview_wtf16="ref_stringview_wtf16",D.ref_stringview_iter="ref_stringview_iter",D.i8x16="i8x16",D.u8x16="u8x16",D.i16x8="i16x8",D.u16x8="u16x8",D.i32x4="i32x4",D.u32x4="u32x4",D.i64x2="i64x2",D.u64x2="u64x2",D.f32x4="f32x4",D.f64x2="f64x2",D.void_="void",D.number="number",D.boolean="boolean",D.string="string",D.native="native",D.indexof="indexof",D.valueof="valueof",D.returnof="returnof",D.thisof="thisof",D.nonnull="nonnull",D.null_="null",D.true_="true",D.false_="false",D.this_="this",D.super_="super",D.constructor="constructor",D.COPY_STRUCT="~lib/util/bytes/COPY_STRUCT",D.ASC_TARGET="ASC_TARGET",D.ASC_RUNTIME="ASC_RUNTIME",D.ASC_NO_ASSERT="ASC_NO_ASSERT",D.ASC_MEMORY_BASE="ASC_MEMORY_BASE",D.ASC_TABLE_BASE="ASC_TABLE_BASE",D.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",D.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",D.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",D.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",D.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",D.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",D.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",D.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",D.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",D.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",D.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",D.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",D.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",D.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",D.ASC_FEATURE_GC="ASC_FEATURE_GC",D.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",D.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",D.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",D.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",D.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",D.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",D.ASC_VERSION_MINOR="ASC_VERSION_MINOR",D.ASC_VERSION_PATCH="ASC_VERSION_PATCH",D.EnumToString="__enum_to_string",D.I8="I8",D.I16="I16",D.I32="I32",D.I64="I64",D.Isize="Isize",D.U8="U8",D.U16="U16",D.U32="U32",D.U64="U64",D.Usize="Usize",D.Bool="Bool",D.F32="F32",D.F64="F64",D.V128="V128",D.RefFunc="RefFunc",D.RefExtern="RefExtern",D.RefAny="RefAny",D.RefEq="RefEq",D.RefStruct="RefStruct",D.RefArray="RefArray",D.RefI31="RefI31",D.RefString="RefString",D.String="String",D.RegExp="RegExp",D.Object="Object",D.Array="Array",D.StaticArray="StaticArray",D.Set="Set",D.Map="Map",D.Function="Function",D.Task="Task",D.ArrayBufferView="ArrayBufferView",D.ArrayBuffer="ArrayBuffer",D.Math="Math",D.Mathf="Mathf",D.NativeMath="NativeMath",D.NativeMathf="NativeMathf",D.Int8Array="Int8Array",D.Int16Array="Int16Array",D.Int32Array="Int32Array",D.Int64Array="Int64Array",D.Uint8Array="Uint8Array",D.Uint8ClampedArray="Uint8ClampedArray",D.Uint16Array="Uint16Array",D.Uint32Array="Uint32Array",D.Uint64Array="Uint64Array",D.Float32Array="Float32Array",D.Float64Array="Float64Array",D.TemplateStringsArray="TemplateStringsArray",D.Error="Error",D.abort="abort",D.trace="trace",D.seed="seed",D.pow="pow",D.ipow32="ipow32",D.ipow64="ipow64",D.mod="mod",D.alloc="__alloc",D.realloc="__realloc",D.free="__free",D.new_="__new",D.renew="__renew",D.link="__link",D.collect="__collect",D.visit="__visit",D.newBuffer="__newBuffer",D.newArray="__newArray",D.BLOCK="~lib/rt/common/BLOCK",D.OBJECT="~lib/rt/common/OBJECT",D.DefaultMemory="0",D.DefaultTable="0"))(N||={});var ts=class{constructor(r=0,e=null,t=!1,n=!1,s=null,a=!1){this.kind=r;this.envClass=e;this.ownEnv=t;this.receivesEnv=n;this.parentClass=s;this.hasThis=a}},nl=new Map,wb=null;function Vi(){let i=wb;return i==null&&(wb=i=new Map),i}var Rb=null;function Or(){let i=Rb;return i==null&&(Rb=i=new Map),i}var Xe=(S=>(S[S.Not_implemented_0=100]="Not_implemented_0",S[S.Operation_is_unsafe=101]="Operation_is_unsafe",S[S.User_defined_0=102]="User_defined_0",S[S.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",S[S.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",S[S.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",S[S.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",S[S.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",S[S.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",S[S.Transform_0_1=109]="Transform_0_1",S[S.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",S[S.Element_0_not_found=111]="Element_0_not_found",S[S.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",S[S.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",S[S.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",S[S.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",S[S.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",S[S.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",S[S.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",S[S.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",S[S.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",S[S.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",S[S.Expression_is_never_null=210]="Expression_is_never_null",S[S.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",S[S.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",S[S.Duplicate_decorator=213]="Duplicate_decorator",S[S.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",S[S.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",S[S.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",S[S.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",S[S.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",S[S.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",S[S.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",S[S.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",S[S._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",S[S._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",S[S._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",S[S.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",S[S.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",S[S.Array_literal_expected=227]="Array_literal_expected",S[S.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",S[S.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",S[S._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",S[S.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",S[S.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",S[S.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",S[S.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",S[S.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",S[S.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",S[S.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",S[S.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",S[S.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",S[S.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",S[S.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",S[S.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",S[S.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",S[S.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",S[S.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",S[S.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",S[S.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",S[S._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",S[S.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",S[S.Unterminated_string_literal=1002]="Unterminated_string_literal",S[S.Identifier_expected=1003]="Identifier_expected",S[S._0_expected=1005]="_0_expected",S[S.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",S[S.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",S[S.Unexpected_token=1012]="Unexpected_token",S[S.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",S[S.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",S[S.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",S[S._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",S[S.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",S[S.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",S[S._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",S[S.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",S[S.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",S[S.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",S[S.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",S[S.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",S[S.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",S[S.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",S[S.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",S[S.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",S[S.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",S[S.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",S[S.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",S[S.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",S[S.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",S[S.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",S[S.Expression_expected=1109]="Expression_expected",S[S.Type_expected=1110]="Type_expected",S[S.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",S[S.Duplicate_label_0=1114]="Duplicate_label_0",S[S.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",S[S.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",S[S.Digit_expected=1124]="Digit_expected",S[S.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",S[S.Unexpected_end_of_text=1126]="Unexpected_end_of_text",S[S.Invalid_character=1127]="Invalid_character",S[S._case_or_default_expected=1130]="_case_or_default_expected",S[S._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",S[S.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",S[S.Type_argument_expected=1140]="Type_argument_expected",S[S.String_literal_expected=1141]="String_literal_expected",S[S.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",S[S.Declaration_expected=1146]="Declaration_expected",S[S._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",S[S.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",S[S.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",S[S.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",S[S.Binary_digit_expected=1177]="Binary_digit_expected",S[S.Octal_digit_expected=1178]="Octal_digit_expected",S[S.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",S[S.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",S[S.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",S[S.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",S[S.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",S[S._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",S[S.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",S[S.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",S[S.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",S[S._await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules=1308]="_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules",S[S.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",S[S.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",S[S.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",S[S.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",S[S.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",S[S.Duplicate_identifier_0=2300]="Duplicate_identifier_0",S[S.Cannot_find_name_0=2304]="Cannot_find_name_0",S[S.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",S[S.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",S[S.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",S[S.Type_0_is_not_generic=2315]="Type_0_is_not_generic",S[S.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",S[S.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",S[S.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",S[S._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",S[S._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",S[S._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",S[S._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",S[S.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",S[S.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",S[S.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",S[S.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",S[S.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",S[S.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",S[S.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",S[S.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",S[S.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",S[S.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",S[S.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",S[S._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",S[S.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",S[S.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",S[S.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",S[S.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",S[S.Duplicate_function_implementation=2393]="Duplicate_function_implementation",S[S.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",S[S.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",S[S.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",S[S.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",S[S.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",S[S.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",S[S.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",S[S.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",S[S.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",S[S.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",S[S.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",S[S.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",S[S.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",S[S.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",S[S.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",S[S.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",S[S.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",S[S.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",S[S._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",S[S.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",S[S.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",S[S.Object_is_possibly_null=2531]="Object_is_possibly_null",S[S.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",S[S.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",S[S.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",S[S.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",S[S.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",S[S.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",S[S.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",S[S.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",S[S._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",S[S._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",S[S.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",S[S.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",S[S.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",S[S.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",S[S.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",S[S.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",S[S.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",S[S.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",S[S.Duplicate_property_0=2718]="Duplicate_property_0",S[S.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",S[S.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",S[S.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",S[S.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",S[S.File_0_not_found=6054]="File_0_not_found",S[S.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",S[S.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",S[S.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",S[S._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",S[S._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",S[S.A_struct_cannot_be_both_managed_and_unmanaged=6390]="A_struct_cannot_be_both_managed_and_unmanaged",S[S.A_struct_cannot_be_both_inline_and_managed=6391]="A_struct_cannot_be_both_inline_and_managed",S[S.A_memory_model_decorator_must_precede_the_type_it_applies_to_0=6392]="A_memory_model_decorator_must_precede_the_type_it_applies_to_0",S[S.Only_one_memory_model_decorator_may_apply_to_a_use=6393]="Only_one_memory_model_decorator_may_apply_to_a_use",S[S.Type_0_has_no_GC_header_so_a_use_cannot_make_it_managed_declare_the_record_managed_instead=6394]="Type_0_has_no_GC_header_so_a_use_cannot_make_it_managed_declare_the_record_managed_instead",S[S.Type_0_is_a_value_with_no_address_so_a_use_cannot_view_it_as_1_use_the_value_or_keep_it_inline=6395]="Type_0_is_a_value_with_no_address_so_a_use_cannot_view_it_as_1_use_the_value_or_keep_it_inline",S[S.A_lazy_decorator_must_precede_the_expression_it_defers_not_follow_a_type=6396]="A_lazy_decorator_must_precede_the_expression_it_defers_not_follow_a_type",S[S._lazy_expressions_must_be_the_initializer_of_a_variable_declaration=6397]="_lazy_expressions_must_be_the_initializer_of_a_variable_declaration",S[S.A_lazy_expression_in_this_position_is_not_lowered_it_is_evaluated_eagerly=6398]="A_lazy_expression_in_this_position_is_not_lowered_it_is_evaluated_eagerly",S[S.A_lazy_await_binding_needs_a_declared_type_the_memo_cells_are_lifted_into_the_task_s_state_struct_and_a_state_field_needs_a_syntactic_type_0=6399]="A_lazy_await_binding_needs_a_declared_type_the_memo_cells_are_lifted_into_the_task_s_state_struct_and_a_state_field_needs_a_syntactic_type_0",S[S.A_lazy_await_binding_cannot_be_read_from_a_nested_function_a_capture_moves_the_storage_and_the_memo_cell_is_a_state_field_0=6400]="A_lazy_await_binding_cannot_be_read_from_a_nested_function_a_capture_moves_the_storage_and_the_memo_cell_is_a_state_field_0",S[S.A_spawn_produces_a_Task_this_one_is_never_awaited_so_the_task_s_result_is_discarded=6401]="A_spawn_produces_a_Task_this_one_is_never_awaited_so_the_task_s_result_is_discarded",S[S.An_await_forces_an_immediate_read_of_lazy_so_the_deferral_is_nullified_drop_the_lazy_or_remove_the_await=6402]="An_await_forces_an_immediate_read_of_lazy_so_the_deferral_is_nullified_drop_the_lazy_or_remove_the_await",S[S.An_enum_underlying_type_must_be_one_of_i8_u8_i16_u16_i32_or_u32_not_0=6403]="An_enum_underlying_type_must_be_one_of_i8_u8_i16_u16_i32_or_u32_not_0",S[S.Enum_member_0_does_not_fit_the_underlying_type_1=6404]="Enum_member_0_does_not_fit_the_underlying_type_1",S[S._abi_align_requires_a_single_integer_literal_argument_the_alignment_is_a_compile_time_constant_so_a_computed_value_cannot_be_read_where_the_layout_is_decided=6405]="_abi_align_requires_a_single_integer_literal_argument_the_alignment_is_a_compile_time_constant_so_a_computed_value_cannot_be_read_where_the_layout_is_decided",S[S._abi_align_0_the_alignment_must_be_at_least_1=6406]="_abi_align_0_the_alignment_must_be_at_least_1",S[S._abi_align_0_the_alignment_must_be_a_power_of_two=6407]="_abi_align_0_the_alignment_must_be_a_power_of_two",S[S._abi_align_0_is_less_than_the_field_type_s_natural_alignment_1_asking_for_less_is_a_lie_so_it_is_refused_rather_than_silently_ignored=6408]="_abi_align_0_is_less_than_the_field_type_s_natural_alignment_1_asking_for_less_is_a_lie_so_it_is_refused_rather_than_silently_ignored",S[S._abi_align_0_is_too_large_the_maximum_is_1=6409]="_abi_align_0_is_too_large_the_maximum_is_1",S[S.Alignment_is_a_property_of_the_field_not_its_type_Place_abi_align_N_on_the_field_declaration=6410]="Alignment_is_a_property_of_the_field_not_its_type_Place_abi_align_N_on_the_field_declaration",S[S.A_view_parameter_unmanaged_0_over_an_inline_type_cannot_appear_in_a_host_visible_signature_an_external_or_exported_parameter_is_supplied_by_the_host_and_a_view_is_an_address_this_compiler_did_not_materialise=6411]="A_view_parameter_unmanaged_0_over_an_inline_type_cannot_appear_in_a_host_visible_signature_an_external_or_exported_parameter_is_supplied_by_the_host_and_a_view_is_an_address_this_compiler_did_not_materialise",S[S.Call_to_0_emits_1_operands_but_its_signature_declares_2=6412]="Call_to_0_emits_1_operands_but_its_signature_declares_2",S))(Xe||{});function sl(i){switch(i){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1308:return"'await' expressions are only allowed within async functions and at the top levels of modules.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";case 6390:return"A struct cannot be both '@managed' and '@unmanaged'.";case 6391:return"A struct cannot be both '@inline' and '@managed'.";case 6392:return"A memory-model decorator must precede the type it applies to: '{0}'.";case 6393:return"Only one memory-model decorator may apply to a use.";case 6394:return"Type '{0}' has no GC header, so a use cannot make it '@managed'; declare the record '@managed' instead.";case 6395:return"Type '{0}' is a value with no address, so a use cannot view it as '{1}'; use the value, or keep it '@inline'.";case 6396:return"A '@lazy' decorator must precede the expression it defers, not follow a type.";case 6397:return"'@lazy' expressions must be the initializer of a variable declaration.";case 6398:return"A '@lazy' expression in this position is not lowered; it is evaluated eagerly.";case 6399:return"A '@lazy await' binding needs a declared type: the memo cells are lifted into the task's state struct, and a state field needs a syntactic type ('{0}').";case 6400:return"A '@lazy await' binding cannot be read from a nested function: a capture moves the storage, and the memo cell is a state field ('{0}').";case 6401:return"A 'spawn' produces a Task; this one is never awaited, so the task's result is discarded.";case 6402:return"An 'await' forces an immediate read of '@lazy', so the deferral is nullified; drop the '@lazy', or remove the 'await'.";case 6403:return"An enum underlying type must be one of i8, u8, i16, u16, i32 or u32, not '{0}'.";case 6404:return"Enum member '{0}' does not fit the underlying type '{1}'.";case 6405:return"'@abi.align' requires a single integer literal argument; the alignment is a compile-time constant, so a computed value cannot be read where the layout is decided.";case 6406:return"'@abi.align({0})': the alignment must be at least 1.";case 6407:return"'@abi.align({0})': the alignment must be a power of two.";case 6408:return"'@abi.align({0})' is less than the field type's natural alignment ({1}); asking for less is a lie, so it is refused rather than silently ignored.";case 6409:return"'@abi.align({0})' is too large; the maximum is {1}.";case 6410:return"Alignment is a property of the field, not its type. Place '@abi.align(N)' on the field declaration.";case 6411:return"A view parameter ('@unmanaged {0}' over an inline type) cannot appear in a host-visible signature: an '@external' or exported parameter is supplied by the host, and a view is an address this compiler did not materialise.";case 6412:return"Call to '{0}' emits {1} operands but its signature declares {2}.";default:return""}}var Hp={};Nu(Hp,{BitSet:()=>Dp,COLOR_BLUE:()=>sE,COLOR_CYAN:()=>qp,COLOR_GRAY:()=>iE,COLOR_GREEN:()=>nE,COLOR_MAGENTA:()=>Op,COLOR_RED:()=>_l,COLOR_RESET:()=>as,COLOR_WHITE:()=>aE,COLOR_YELLOW:()=>Vp,CharCode:()=>yt,SURROGATE_HIGH:()=>is,SURROGATE_LOW:()=>Wi,accuratePow64:()=>ll,cloneMap:()=>he,colorize:()=>lE,combineSurrogates:()=>ns,dirname:()=>Nb,escapeString:()=>Re,getMapEntry:()=>ee,indent:()=>W,isAlpha:()=>Up,isAlphaOrDecimal:()=>Pb,isColorsEnabled:()=>Qi,isDecimal:()=>gt,isHexBase:()=>ss,isHexOrDecimal:()=>j1,isHighSurrogate:()=>Ki,isIdentifier:()=>Ze,isIdentifierPart:()=>ji,isIdentifierStart:()=>Hi,isLineBreak:()=>Ht,isLowSurrogate:()=>ul,isOctal:()=>cl,isPowerOf2:()=>Kr,isSurrogate:()=>W1,isSurrogateHigh:()=>K1,isSurrogateLow:()=>H1,isWhiteSpace:()=>rs,mergeMaps:()=>q1,normalizePath:()=>Qr,numCodeUnits:()=>Hr,readF32:()=>U1,readF64:()=>V1,readI16:()=>G1,readI32:()=>Oi,readI64:()=>Cb,readI8:()=>D1,readV128:()=>O1,resolvePath:()=>pl,setColorsEnabled:()=>dl,v128_ones:()=>Kp,v128_zero:()=>Wp,writeF32:()=>qr,writeF64:()=>Wr,writeI16:()=>gr,writeI32:()=>Se,writeI32AsI64:()=>al,writeI64:()=>qi,writeI64AsI32:()=>Mp,writeI8:()=>be,writeV128:()=>zp});function D1(i,r){return i[r]}function be(i,r,e){r[e]=i}function G1(i,r){return i32(i[r])|i32(i[r+1])<<8}function gr(i,r,e){r[e]=i,r[e+1]=i>>>8}function Oi(i,r){return i32(i[r])|i32(i[r+1])<<8|i32(i[r+2])<<16|i32(i[r+3])<<24}function Se(i,r,e){r[e]=i,r[e+1]=i>>>8,r[e+2]=i>>>16,r[e+3]=i>>>24}function al(i,r,e,t=!1){Se(i,r,e),Se(t||i>=0?0:-1,r,e+4)}function Cb(i,r){let e=Oi(i,r),t=Oi(i,r+4);return i64_new(e,t)}function qi(i,r,e){Se(i64_low(i),r,e),Se(i64_high(i),r,e+4)}function Mp(i,r,e,t=!1){assert(t?i64_is_u32(i):i64_is_i32(i)),Se(i64_low(i),r,e)}function U1(i,r){return i32_as_f32(Oi(i,r))}function qr(i,r,e){Se(f32_as_i32(i),r,e)}function V1(i,r){return i64_as_f64(Cb(i,r))}function Wr(i,r,e){let t=f64_as_i64(i);Se(i64_low(t),r,e),Se(i64_high(t),r,e+4)}function O1(i,r){return i.slice(r,r+16)}function zp(i,r,e){assert(i.length==16),r.set(i,e)}function ee(i,r){return i.has(r)?i.get(r):null}function he(i){if(ASC_TARGET){let r=new Map;if(i)for(let e=Map_keys(i),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]),a=assert(i.get(s));r.set(s,a)}return r}else return new Map(i)}function q1(i,r){if(ASC_TARGET){let e=new Map;for(let t=Map_keys(i),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(i.get(a));e.set(a,l)}for(let t=Map_keys(r),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(r.get(a));e.set(a,l)}return e}else{let e=new Map(i);return r.forEach((t,n)=>e.set(n,t)),e}}var Dp=class{constructor(){this.clear()}get size(){let r=0,e=this.words;for(let t=0,n=e.length;t<n;t++){let s=unchecked(e[t]);s&&(r+=popcnt(s))}return r}add(r){let e=r>>>5,t=this.words;return e>=t.length&&(this.words=new Uint32Array(e+16),this.words.set(t),t=this.words),unchecked(t[e]|=1<<r),this}delete(r){let e=r>>>5,t=this.words;e>=t.length||unchecked(t[e]&=~(1<<r))}has(r){let e=r>>>5,t=this.words;return e>=t.length?!1:(unchecked(t[r>>>5])&1<<r)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let r=new Array(this.size);for(let e=0,t=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(r[t++]=(e<<5)+popcnt(a-1)),s^=a}}return r}toString(){return`BitSet { ${this.toArray()} }`}};function Kr(i){return i!=0&&(i&i-1)==0}function ll(i,r){return ASC_TARGET?Math.pow(i,r):f64_pow(i,r)}var yt=(A=>(A[A.Null=0]="Null",A[A.LineFeed=10]="LineFeed",A[A.CarriageReturn=13]="CarriageReturn",A[A.LineSeparator=8232]="LineSeparator",A[A.ParagraphSeparator=8233]="ParagraphSeparator",A[A.NextLine=133]="NextLine",A[A.Space=32]="Space",A[A.NonBreakingSpace=160]="NonBreakingSpace",A[A.EnQuad=8192]="EnQuad",A[A.EmQuad=8193]="EmQuad",A[A.EnSpace=8194]="EnSpace",A[A.EmSpace=8195]="EmSpace",A[A.ThreePerEmSpace=8196]="ThreePerEmSpace",A[A.FourPerEmSpace=8197]="FourPerEmSpace",A[A.SixPerEmSpace=8198]="SixPerEmSpace",A[A.FigureSpace=8199]="FigureSpace",A[A.PunctuationSpace=8200]="PunctuationSpace",A[A.ThinSpace=8201]="ThinSpace",A[A.HairSpace=8202]="HairSpace",A[A.ZeroWidthSpace=8203]="ZeroWidthSpace",A[A.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",A[A.IdeographicSpace=12288]="IdeographicSpace",A[A.MathematicalSpace=8287]="MathematicalSpace",A[A.Ogham=5760]="Ogham",A[A._=95]="_",A[A._0=48]="_0",A[A._1=49]="_1",A[A._2=50]="_2",A[A._3=51]="_3",A[A._4=52]="_4",A[A._5=53]="_5",A[A._6=54]="_6",A[A._7=55]="_7",A[A._8=56]="_8",A[A._9=57]="_9",A[A.a=97]="a",A[A.b=98]="b",A[A.c=99]="c",A[A.d=100]="d",A[A.e=101]="e",A[A.f=102]="f",A[A.g=103]="g",A[A.h=104]="h",A[A.i=105]="i",A[A.j=106]="j",A[A.k=107]="k",A[A.l=108]="l",A[A.m=109]="m",A[A.n=110]="n",A[A.o=111]="o",A[A.p=112]="p",A[A.q=113]="q",A[A.r=114]="r",A[A.s=115]="s",A[A.t=116]="t",A[A.u=117]="u",A[A.v=118]="v",A[A.w=119]="w",A[A.x=120]="x",A[A.y=121]="y",A[A.z=122]="z",A[A.A=65]="A",A[A.B=66]="B",A[A.C=67]="C",A[A.D=68]="D",A[A.E=69]="E",A[A.F=70]="F",A[A.G=71]="G",A[A.H=72]="H",A[A.I=73]="I",A[A.J=74]="J",A[A.K=75]="K",A[A.L=76]="L",A[A.M=77]="M",A[A.N=78]="N",A[A.O=79]="O",A[A.P=80]="P",A[A.Q=81]="Q",A[A.R=82]="R",A[A.S=83]="S",A[A.T=84]="T",A[A.U=85]="U",A[A.V=86]="V",A[A.W=87]="W",A[A.X=88]="X",A[A.Y=89]="Y",A[A.Z=90]="Z",A[A.Ampersand=38]="Ampersand",A[A.Asterisk=42]="Asterisk",A[A.At=64]="At",A[A.Backslash=92]="Backslash",A[A.Backtick=96]="Backtick",A[A.Bar=124]="Bar",A[A.Caret=94]="Caret",A[A.CloseBrace=125]="CloseBrace",A[A.CloseBracket=93]="CloseBracket",A[A.CloseParen=41]="CloseParen",A[A.Colon=58]="Colon",A[A.Comma=44]="Comma",A[A.Dollar=36]="Dollar",A[A.Dot=46]="Dot",A[A.DoubleQuote=34]="DoubleQuote",A[A.Equals=61]="Equals",A[A.Exclamation=33]="Exclamation",A[A.GreaterThan=62]="GreaterThan",A[A.Hash=35]="Hash",A[A.LessThan=60]="LessThan",A[A.Minus=45]="Minus",A[A.OpenBrace=123]="OpenBrace",A[A.OpenBracket=91]="OpenBracket",A[A.OpenParen=40]="OpenParen",A[A.Percent=37]="Percent",A[A.Plus=43]="Plus",A[A.Question=63]="Question",A[A.Semicolon=59]="Semicolon",A[A.SingleQuote=39]="SingleQuote",A[A.Slash=47]="Slash",A[A.Tilde=126]="Tilde",A[A.Backspace=8]="Backspace",A[A.FormFeed=12]="FormFeed",A[A.ByteOrderMark=65279]="ByteOrderMark",A[A.Tab=9]="Tab",A[A.VerticalTab=11]="VerticalTab",A))(yt||{});function Ht(i){switch(i){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function rs(i){switch(i){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return i>=8192&&i<=8203}}var is=55296,Wi=56320;function W1(i){return(i&63488)==is}function K1(i){return i<Wi}function H1(i){return i>=Wi}function Ki(i){return(i&64512)==is}function ul(i){return(i&64512)==Wi}function ns(i,r){return 65536+((i&1023)<<10)|r&1023}function Hr(i){return 1+i32(i>65535)}function Up(i){let r=i|32;return r>=97&&r<=122}function gt(i){return i>=48&&i<=57}function cl(i){return i>=48&&i<=55}function ss(i){let r=i|32;return r>=97&&r<=102}function j1(i){return gt(i)||ss(i)}function Pb(i){return Up(i)||gt(i)}function Hi(i){return Up(i)||i==95||i==36||i>=X1&&i<=Z1&&Bb(i,Q1)}function ji(i){return Pb(i)||i==95||i==36||i>=Y1&&i<=J1&&Bb(i,$1)}function Ze(i){let r=i.length;if(!r)return!1;let e=i.codePointAt(0);if(!Hi(e))return!1;let t=Hr(e);for(;t<r;){if(e=i.codePointAt(t),!ji(e))return!1;t+=Hr(e)}return!0}var Q1=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],X1=170,Z1=210041,$1=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],Y1=170,J1=917999;function Bb(i,r){let e=0,t=r.length;for(;e+1<t;){let n=e+(t-e>>>1);n-=n&1;let s=r[n];if(s<=i&&i<=r[n+1])return!0;i<s?t=n:e=n+2}return!1}var Gp=" ",eE=" ",tE=" ",rE=" ",ol=new Map;function W(i,r){if(r<=4)switch(r){case 1:i.push(Gp);break;case 2:i.push(eE);break;case 3:i.push(tE);break;case 4:i.push(rE);break}else{let e;ol.size<=1024?ol.has(r)?e=assert(ol.get(r)):ol.set(r,e=Gp.repeat(r)):e=Gp.repeat(r),i.push(e)}}function Re(i,r){let e=new Array,t=0,n=0;for(let s=i.length;n<s;)switch(i.charCodeAt(n)){case 0:{n>t&&e.push(i.substring(t,t=n+1)),e.push("\\0"),t=++n;break}case 8:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\b");break}case 9:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\t");break}case 10:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\n");break}case 11:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\v");break}case 12:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\f");break}case 13:{n>t&&e.push(i.substring(t,n)),e.push("\\r"),t=++n;break}case 34:{r==34?(n>t&&e.push(i.substring(t,n)),e.push('\\"'),t=++n):++n;break}case 39:{r==39?(n>t&&e.push(i.substring(t,n)),e.push("\\'"),t=++n):++n;break}case 92:{n>t&&e.push(i.substring(t,n)),e.push("\\\\"),t=++n;break}case 96:{r==96?(n>t&&e.push(i.substring(t,n)),e.push("\\`"),t=++n):++n;break}default:{++n;break}}return n>t&&e.push(i.substring(t,n)),e.join("")}var jr=47;function Qr(i){let r=0,e=i.length;for(;r+1<e&&i.charCodeAt(r)==46&&i.charCodeAt(r+1)==jr;)r+=2;(r>0||e<i.length)&&(i=i.substring(r,e),e-=r,r=0);let t;for(;r+1<e;){if(t=!1,i.charCodeAt(r)==jr&&i.charCodeAt(r+1)==46){if(t=r+2==e,t||r+2<e&&i.charCodeAt(r+2)==jr){i=t?i.substring(0,r):i.substring(0,r)+i.substring(r+2),e-=2;continue}if(t=r+3==e,t&&i.charCodeAt(r+2)==46||r+3<e&&i.charCodeAt(r+2)==46&&i.charCodeAt(r+3)==jr){let n=r;for(;--n>=0;)if(i.charCodeAt(n)==jr){(r-n!=3||i.charCodeAt(n+1)!=46||i.charCodeAt(n+2)!=46)&&(i=t?i.substring(0,n):i.substring(0,n)+i.substring(r+3),e-=r+3-n,r=n-1);break}if(n<0&&r>0&&(r!=2||i.charCodeAt(0)!=46||i.charCodeAt(1)!=46)){i=i.substring(r+4),e=i.length;continue}}}r++}return e>0?i:"."}function pl(i,r){return i.startsWith("std/")?i:Qr(Nb(r)+mt+i)}function Nb(i){let r=i.length;if(r<=1){if(r==0)return".";if(i.charCodeAt(0)==jr)return i}for(;--r>0;)if(i.charCodeAt(r)==jr)return i.substring(0,r);return"."}var iE="\x1B[90m",_l="\x1B[91m",nE="\x1B[92m",Vp="\x1B[93m",sE="\x1B[94m",Op="\x1B[95m",qp="\x1B[96m",aE="\x1B[97m",as="\x1B[0m",fl=!0;function Qi(){return fl}function dl(i){let r=fl;return fl=i,r}function lE(i,r){return fl?r+i+as:i}var Wp=new Uint8Array(16),Kp=new Uint8Array(16).fill(255);var ls=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(ls||{}),ue=class i{constructor(r,e){this.start=r;this.end=e}static join(r,e){if(r.source!=e.source)throw new Error("source mismatch");let t=new i(r.start<e.start?r.start:e.start,r.end>e.end?r.end:e.end);return t.source=r.source,t}equals(r){return this.source==r.source&&this.start==r.start&&this.end==r.end}get atStart(){let r=new i(this.start,this.start);return r.source=this.source,r}get atEnd(){let r=new i(this.end,this.end);return r.source=this.source,r}toString(){return this.source.text.substring(this.start,this.end)}};function jp(i){switch(i){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function Mb(i){switch(i){case 0:return Op;case 1:return qp;case 2:return Vp;case 3:return _l;default:return assert(!1),""}}var hl=class i{constructor(r,e,t){this.range=null;this.relatedRange=null;this.code=r,this.category=e,this.message=t}static create(r,e,t=null,n=null,s=null){let a=sl(r);return t!=null&&(a=a.replace("{0}",t)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new i(r,e,a)}equals(r){if(this.code!=r.code)return!1;let e=this.range,t=r.range;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;let n=this.relatedRange,s=r.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==r.message}withRange(r){return this.range=r,this}withRelatedRange(r){return this.relatedRange=r,this}toString(){let r=jp(this.category),e=this.range,t=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${r} ${t}: "${n}" in ${a}(${l},${o}+${u})`}return`${r} ${t}: ${n}`}};function zb(i,r=!1,e=!1){let t=dl(r),n=[];Qi()&&n.push(Mb(i.category)),n.push(jp(i.category)),Qi()&&n.push(as),n.push(i.code<1e3?" AS":" TS"),n.push(i.code.toString()),n.push(": "),n.push(i.message);let s=i.range;if(s){let a=s.source,l=i.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
9
+ `+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};k1=e,F1=t,w1=n,J.ASC_TARGET=0,J.ASC_RUNTIME=0,J.ASC_NO_ASSERT=!1,J.ASC_MEMORY_BASE=0,J.ASC_OPTIMIZE_LEVEL=3,J.ASC_SHRINK_LEVEL=0,J.ASC_FEATURE_MUTABLE_GLOBAL=!1,J.ASC_FEATURE_SIGN_EXTENSION=!1,J.ASC_FEATURE_BULK_MEMORY=!1,J.ASC_FEATURE_SIMD=!1,J.ASC_FEATURE_THREADS=!1;let i=new Float64Array(1),r=new Uint32Array(i.buffer);Object.defineProperties(J.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties(J.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties(J.i32=J.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties(J.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties(J.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties(J.u32=J.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties(J.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties(J.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties(J.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),J.clz=Math.clz32,J.ctz=function(l){return 32-Math.clz32(~l&l-1)},J.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},J.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},J.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},J.abs=Math.abs,J.max=Math.max,J.min=Math.min,J.ceil=Math.ceil,J.floor=Math.floor,J.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},J.select=function(l,o,u){return u?l:o},J.sqrt=Math.sqrt,J.trunc=Math.trunc,J.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(i[0]=o,r[1]>>>31?-1:1)},J.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",J.unreachable=function(){throw new e},t.prototype=Object.create(Error.prototype),t.prototype.name="AssertionError",J.assert=function(l,o){if(l)return l;throw new t(o)},J.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCharCode.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCodePoint.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,c){return new a(o,u,c)},configurable:!0})}),J.isInteger=Number.isInteger,J.isFloat=function(l){return typeof l=="number"},J.isNullable=function(l){return!0},J.isReference=function(l){return typeof l=="object"||typeof l=="string"},J.isFunction=function(l){return typeof l=="function"},J.isString=function(l){return typeof l=="string"||l instanceof String},J.isArray=Array.isArray,J.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},J.isDefined=function(l){return typeof l<"u"},J.isConstant=function(l){return!1},J.unchecked=function(l){return l},J.fmod=function(l,o){return l%o},J.fmodf=function(l,o){return Math.fround(l%o)},J.JSMath=Math,Object.defineProperties(J.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return i[0]=l,!!(r[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),J.unmanaged=function(){},J.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var k1,F1,w1;var Rn={};Nu(Rn,{default:()=>Cn});Lu(Rn,GM);import*as GM from"binaryen";import{default as Cn}from"binaryen";import R1 from"long";var{_BinaryenTypeCreate:H_,_BinaryenTypeArity:j_,_BinaryenTypeExpand:Q_,_BinaryenTypeGetHeapType:fr,_BinaryenTypeFromHeapType:Ae,_BinaryenTypeIsNullable:X_,_BinaryenTypeFuncref:Z_,_BinaryenTypeExternref:$_,_BinaryenTypeAnyref:Y_,_BinaryenTypeEqref:J_,_BinaryenTypeI31ref:ed,_BinaryenTypeStructref:td,_BinaryenTypeArrayref:rd,_BinaryenTypeStringref:id,_BinaryenTypeNullref:nd,_BinaryenTypeNullExternref:sd,_BinaryenTypeNullFuncref:ad,_BinaryenHeapTypeFunc:qM,_BinaryenHeapTypeExt:WM,_BinaryenHeapTypeAny:KM,_BinaryenHeapTypeEq:HM,_BinaryenHeapTypeI31:jM,_BinaryenHeapTypeStruct:QM,_BinaryenHeapTypeArray:XM,_BinaryenHeapTypeString:ZM,_BinaryenHeapTypeNone:$M,_BinaryenHeapTypeNoext:YM,_BinaryenHeapTypeNofunc:JM,_BinaryenHeapTypeIsBasic:e7,_BinaryenHeapTypeIsSignature:t7,_BinaryenHeapTypeIsStruct:r7,_BinaryenHeapTypeIsArray:i7,_BinaryenHeapTypeIsBottom:ld,_BinaryenHeapTypeGetBottom:od,_BinaryenHeapTypeIsSubType:ud,_BinaryenStructTypeGetNumFields:cd,_BinaryenStructTypeGetFieldType:n7,_BinaryenStructTypeGetFieldPackedType:s7,_BinaryenStructTypeIsFieldMutable:a7,_BinaryenArrayTypeGetElementType:l7,_BinaryenArrayTypeGetElementPackedType:o7,_BinaryenArrayTypeIsElementMutable:u7,_BinaryenSignatureTypeGetParams:c7,_BinaryenSignatureTypeGetResults:p7,_BinaryenModuleCreate:pd,_BinaryenModuleDispose:fd,_BinaryenSizeofLiteral:Mu,_BinaryenLiteralInt32:_d,_BinaryenLiteralFloat32:dd,_BinaryenLiteralFloat64:hd,_BinaryenLiteralVec128:md,_BinaryenLiteralFloat32Bits:f7,_BinaryenExpressionGetId:Wt,_BinaryenExpressionGetType:_r,_BinaryenExpressionSetType:_7,_BinaryenExpressionPrint:d7,_BinaryenExpressionCopy:yd,_BinaryenExpressionFinalize:gd,_BinaryenBlock:bd,_BinaryenBlockGetName:Ca,_BinaryenBlockSetName:h7,_BinaryenBlockGetNumChildren:Pn,_BinaryenBlockGetChildAt:Bn,_BinaryenBlockSetChildAt:xd,_BinaryenBlockAppendChild:m7,_BinaryenBlockInsertChildAt:y7,_BinaryenBlockRemoveChildAt:g7,_BinaryenIf:Ed,_BinaryenIfGetCondition:Nn,_BinaryenIfSetCondition:Ad,_BinaryenIfGetIfTrue:Ln,_BinaryenIfSetIfTrue:Td,_BinaryenIfGetIfFalse:Mn,_BinaryenIfSetIfFalse:Sd,_BinaryenLoop:vd,_BinaryenLoopGetName:Pa,_BinaryenLoopSetName:b7,_BinaryenLoopGetBody:zn,_BinaryenLoopSetBody:Id,_BinaryenBreak:kd,_BinaryenBreakGetName:Ba,_BinaryenBreakSetName:x7,_BinaryenBreakGetCondition:Dn,_BinaryenBreakSetCondition:Fd,_BinaryenBreakGetValue:zu,_BinaryenBreakSetValue:wd,_BinaryenSwitch:Rd,_BinaryenSwitchGetNumNames:Cd,_BinaryenSwitchGetNameAt:Pd,_BinaryenSwitchSetNameAt:E7,_BinaryenSwitchAppendName:A7,_BinaryenSwitchInsertNameAt:T7,_BinaryenSwitchRemoveNameAt:S7,_BinaryenSwitchGetDefaultName:Bd,_BinaryenSwitchSetDefaultName:v7,_BinaryenSwitchGetCondition:Du,_BinaryenSwitchSetCondition:Nd,_BinaryenSwitchGetValue:Gu,_BinaryenSwitchSetValue:Ld,_BinaryenCall:Md,_BinaryenCallGetTarget:Ri,_BinaryenCallSetTarget:I7,_BinaryenCallGetNumOperands:dr,_BinaryenCallGetOperandAt:hr,_BinaryenCallSetOperandAt:Na,_BinaryenCallAppendOperand:k7,_BinaryenCallInsertOperandAt:F7,_BinaryenCallRemoveOperandAt:w7,_BinaryenCallIsReturn:R7,_BinaryenCallSetReturn:C7,_BinaryenReturnCall:zd,_BinaryenCallIndirect:Dd,_BinaryenCallIndirectGetTable:P7,_BinaryenCallIndirectSetTable:B7,_BinaryenCallIndirectGetTarget:Uu,_BinaryenCallIndirectSetTarget:Gd,_BinaryenCallIndirectGetNumOperands:Gn,_BinaryenCallIndirectGetOperandAt:Un,_BinaryenCallIndirectSetOperandAt:La,_BinaryenCallIndirectAppendOperand:N7,_BinaryenCallIndirectInsertOperandAt:L7,_BinaryenCallIndirectRemoveOperandAt:M7,_BinaryenCallIndirectIsReturn:z7,_BinaryenCallIndirectSetReturn:D7,_BinaryenReturnCallIndirect:Ud,_BinaryenLocalGet:Vd,_BinaryenLocalGetGetIndex:Ma,_BinaryenLocalGetSetIndex:G7,_BinaryenLocalSet:Od,_BinaryenLocalSetIsTee:za,_BinaryenLocalSetGetIndex:Ci,_BinaryenLocalSetSetIndex:U7,_BinaryenLocalSetGetValue:Dr,_BinaryenLocalSetSetValue:Da,_BinaryenLocalTee:qd,_BinaryenGlobalGet:Wd,_BinaryenGlobalGetGetName:Ga,_BinaryenGlobalGetSetName:V7,_BinaryenGlobalSet:Kd,_BinaryenGlobalSetGetName:Hd,_BinaryenGlobalSetSetName:O7,_BinaryenGlobalSetGetValue:Vu,_BinaryenGlobalSetSetValue:jd,_BinaryenMemorySize:Qd,_BinaryenMemoryGrow:Xd,_BinaryenMemoryGrowGetDelta:Vn,_BinaryenMemoryGrowSetDelta:Zd,_BinaryenLoad:$d,_BinaryenLoadIsAtomic:q7,_BinaryenLoadSetAtomic:W7,_BinaryenLoadIsSigned:Yd,_BinaryenLoadSetSigned:K7,_BinaryenLoadGetOffset:Jd,_BinaryenLoadSetOffset:H7,_BinaryenLoadGetBytes:eh,_BinaryenLoadSetBytes:j7,_BinaryenLoadGetAlign:Q7,_BinaryenLoadSetAlign:X7,_BinaryenLoadGetPtr:On,_BinaryenLoadSetPtr:th,_BinaryenAtomicLoad:rh,_BinaryenStore:ih,_BinaryenStoreIsAtomic:Z7,_BinaryenStoreSetAtomic:$7,_BinaryenStoreGetBytes:Ua,_BinaryenStoreSetBytes:Y7,_BinaryenStoreGetOffset:Va,_BinaryenStoreSetOffset:J7,_BinaryenStoreGetAlign:ez,_BinaryenStoreSetAlign:tz,_BinaryenStoreGetPtr:Gr,_BinaryenStoreSetPtr:Oa,_BinaryenStoreGetValue:qn,_BinaryenStoreSetValue:nh,_BinaryenStoreGetValueType:rz,_BinaryenStoreSetValueType:iz,_BinaryenAtomicStore:sh,_BinaryenConst:Pi,_BinaryenConstGetValueI32:ah,_BinaryenConstSetValueI32:nz,_BinaryenConstGetValueF32:lh,_BinaryenConstSetValueF32:sz,_BinaryenConstGetValueF64:oh,_BinaryenConstSetValueF64:az,_BinaryenConstGetValueV128:uh,_BinaryenConstSetValueV128:lz,_BinaryenUnary:ch,_BinaryenUnaryGetOp:ph,_BinaryenUnarySetOp:oz,_BinaryenUnaryGetValue:Wn,_BinaryenUnarySetValue:fh,_BinaryenWideIntAddSub:_h,_BinaryenWideIntMul:dh,_BinaryenBinary:hh,_BinaryenBinaryGetOp:mh,_BinaryenBinarySetOp:uz,_BinaryenBinaryGetLeft:Kn,_BinaryenBinarySetLeft:yh,_BinaryenBinaryGetRight:Hn,_BinaryenBinarySetRight:gh,_BinaryenSelect:bh,_BinaryenSelectGetIfTrue:jn,_BinaryenSelectSetIfTrue:xh,_BinaryenSelectGetIfFalse:Qn,_BinaryenSelectSetIfFalse:Eh,_BinaryenSelectGetCondition:Xn,_BinaryenSelectSetCondition:Ah,_BinaryenDrop:Ou,_BinaryenDropGetValue:Zn,_BinaryenDropSetValue:Th,_BinaryenReturn:Sh,_BinaryenReturnGetValue:Ur,_BinaryenReturnSetValue:qa,_BinaryenNop:vh,_BinaryenUnreachable:Ih,_BinaryenAtomicRMW:kh,_BinaryenAtomicRMWGetOp:cz,_BinaryenAtomicRMWSetOp:pz,_BinaryenAtomicRMWGetBytes:fz,_BinaryenAtomicRMWSetBytes:_z,_BinaryenAtomicRMWGetOffset:dz,_BinaryenAtomicRMWSetOffset:hz,_BinaryenAtomicRMWGetPtr:qu,_BinaryenAtomicRMWSetPtr:Fh,_BinaryenAtomicRMWGetValue:Wu,_BinaryenAtomicRMWSetValue:wh,_BinaryenAtomicCmpxchg:Rh,_BinaryenAtomicCmpxchgGetBytes:mz,_BinaryenAtomicCmpxchgSetBytes:yz,_BinaryenAtomicCmpxchgGetOffset:gz,_BinaryenAtomicCmpxchgSetOffset:bz,_BinaryenAtomicCmpxchgGetPtr:Ku,_BinaryenAtomicCmpxchgSetPtr:Ch,_BinaryenAtomicCmpxchgGetExpected:Hu,_BinaryenAtomicCmpxchgSetExpected:Ph,_BinaryenAtomicCmpxchgGetReplacement:ju,_BinaryenAtomicCmpxchgSetReplacement:Bh,_BinaryenAtomicWait:Nh,_BinaryenAtomicWaitGetPtr:Qu,_BinaryenAtomicWaitSetPtr:Lh,_BinaryenAtomicWaitGetExpected:Xu,_BinaryenAtomicWaitSetExpected:Mh,_BinaryenAtomicWaitGetTimeout:Zu,_BinaryenAtomicWaitSetTimeout:zh,_BinaryenAtomicWaitGetExpectedType:xz,_BinaryenAtomicWaitSetExpectedType:Ez,_BinaryenAtomicNotify:Dh,_BinaryenAtomicNotifyGetPtr:$u,_BinaryenAtomicNotifySetPtr:Gh,_BinaryenAtomicNotifyGetNotifyCount:Yu,_BinaryenAtomicNotifySetNotifyCount:Uh,_BinaryenAtomicFence:Vh,_BinaryenAtomicFenceGetOrder:Az,_BinaryenAtomicFenceSetOrder:Tz,_BinaryenSIMDExtract:Oh,_BinaryenSIMDExtractGetOp:Sz,_BinaryenSIMDExtractSetOp:vz,_BinaryenSIMDExtractGetVec:Ju,_BinaryenSIMDExtractSetVec:qh,_BinaryenSIMDExtractGetIndex:Iz,_BinaryenSIMDExtractSetIndex:kz,_BinaryenSIMDReplace:Wh,_BinaryenSIMDReplaceGetOp:Fz,_BinaryenSIMDReplaceSetOp:wz,_BinaryenSIMDReplaceGetVec:ec,_BinaryenSIMDReplaceSetVec:Kh,_BinaryenSIMDReplaceGetIndex:Rz,_BinaryenSIMDReplaceSetIndex:Cz,_BinaryenSIMDReplaceGetValue:tc,_BinaryenSIMDReplaceSetValue:Hh,_BinaryenSIMDShuffle:jh,_BinaryenSIMDShuffleGetLeft:rc,_BinaryenSIMDShuffleSetLeft:Qh,_BinaryenSIMDShuffleGetRight:ic,_BinaryenSIMDShuffleSetRight:Xh,_BinaryenSIMDShuffleGetMask:Pz,_BinaryenSIMDShuffleSetMask:Bz,_BinaryenSIMDTernary:Zh,_BinaryenSIMDTernaryGetOp:Nz,_BinaryenSIMDTernarySetOp:Lz,_BinaryenSIMDTernaryGetA:nc,_BinaryenSIMDTernarySetA:$h,_BinaryenSIMDTernaryGetB:sc,_BinaryenSIMDTernarySetB:Yh,_BinaryenSIMDTernaryGetC:ac,_BinaryenSIMDTernarySetC:Jh,_BinaryenSIMDShift:em,_BinaryenSIMDShiftGetOp:Mz,_BinaryenSIMDShiftSetOp:zz,_BinaryenSIMDShiftGetVec:lc,_BinaryenSIMDShiftSetVec:tm,_BinaryenSIMDShiftGetShift:oc,_BinaryenSIMDShiftSetShift:rm,_BinaryenSIMDLoad:im,_BinaryenSIMDLoadGetOp:Dz,_BinaryenSIMDLoadSetOp:Gz,_BinaryenSIMDLoadGetOffset:Uz,_BinaryenSIMDLoadSetOffset:Vz,_BinaryenSIMDLoadGetAlign:Oz,_BinaryenSIMDLoadSetAlign:qz,_BinaryenSIMDLoadGetPtr:uc,_BinaryenSIMDLoadSetPtr:nm,_BinaryenSIMDLoadStoreLane:sm,_BinaryenSIMDLoadStoreLaneGetOp:Wz,_BinaryenSIMDLoadStoreLaneSetOp:Kz,_BinaryenSIMDLoadStoreLaneGetOffset:Hz,_BinaryenSIMDLoadStoreLaneSetOffset:jz,_BinaryenSIMDLoadStoreLaneGetAlign:Qz,_BinaryenSIMDLoadStoreLaneSetAlign:Xz,_BinaryenSIMDLoadStoreLaneGetIndex:Zz,_BinaryenSIMDLoadStoreLaneSetIndex:$z,_BinaryenSIMDLoadStoreLaneGetPtr:cc,_BinaryenSIMDLoadStoreLaneSetPtr:am,_BinaryenSIMDLoadStoreLaneGetVec:pc,_BinaryenSIMDLoadStoreLaneSetVec:lm,_BinaryenSIMDLoadStoreLaneIsStore:Yz,_BinaryenMemoryInit:Jz,_BinaryenMemoryInitGetSegment:eD,_BinaryenMemoryInitSetSegment:tD,_BinaryenMemoryInitGetDest:fc,_BinaryenMemoryInitSetDest:om,_BinaryenMemoryInitGetOffset:_c,_BinaryenMemoryInitSetOffset:um,_BinaryenMemoryInitGetSize:dc,_BinaryenMemoryInitSetSize:cm,_BinaryenDataDrop:rD,_BinaryenDataDropGetSegment:iD,_BinaryenDataDropSetSegment:nD,_BinaryenMemoryCopy:pm,_BinaryenMemoryCopyGetDest:hc,_BinaryenMemoryCopySetDest:fm,_BinaryenMemoryCopyGetSource:mc,_BinaryenMemoryCopySetSource:_m,_BinaryenMemoryCopyGetSize:yc,_BinaryenMemoryCopySetSize:dm,_BinaryenMemoryFill:hm,_BinaryenMemoryFillGetDest:gc,_BinaryenMemoryFillSetDest:mm,_BinaryenMemoryFillGetValue:bc,_BinaryenMemoryFillSetValue:ym,_BinaryenMemoryFillGetSize:xc,_BinaryenMemoryFillSetSize:gm,_BinaryenRefNull:bm,_BinaryenRefIsNull:xm,_BinaryenRefIsNullGetValue:Ec,_BinaryenRefIsNullSetValue:Em,_BinaryenRefAs:Ac,_BinaryenRefAsGetOp:sD,_BinaryenRefAsSetOp:aD,_BinaryenRefAsGetValue:Tc,_BinaryenRefAsSetValue:Am,_BinaryenRefFunc:Tm,_BinaryenRefFuncGetFunc:Sm,_BinaryenRefFuncSetFunc:lD,_BinaryenRefEq:vm,_BinaryenRefEqGetLeft:Sc,_BinaryenRefEqSetLeft:Im,_BinaryenRefEqGetRight:vc,_BinaryenRefEqSetRight:km,_BinaryenTableGet:Fm,_BinaryenTableGetGetTable:oD,_BinaryenTableGetSetTable:uD,_BinaryenTableGetGetIndex:cD,_BinaryenTableGetSetIndex:pD,_BinaryenTableSet:wm,_BinaryenTableSetGetTable:fD,_BinaryenTableSetSetTable:_D,_BinaryenTableSetGetIndex:dD,_BinaryenTableSetSetIndex:hD,_BinaryenTableSetGetValue:mD,_BinaryenTableSetSetValue:yD,_BinaryenTableSize:Rm,_BinaryenTableSizeGetTable:gD,_BinaryenTableSizeSetTable:bD,_BinaryenTableGrow:Cm,_BinaryenTableGrowGetTable:xD,_BinaryenTableGrowSetTable:ED,_BinaryenTableGrowGetValue:AD,_BinaryenTableGrowSetValue:TD,_BinaryenTableGrowGetDelta:SD,_BinaryenTableGrowSetDelta:vD,_BinaryenTry:Pm,_BinaryenTryGetName:ID,_BinaryenTrySetName:kD,_BinaryenTryGetBody:Ic,_BinaryenTrySetBody:Bm,_BinaryenTryGetNumCatchTags:FD,_BinaryenTryGetNumCatchBodies:kc,_BinaryenTryGetCatchTagAt:wD,_BinaryenTrySetCatchTagAt:RD,_BinaryenTryAppendCatchTag:CD,_BinaryenTryInsertCatchTagAt:PD,_BinaryenTryRemoveCatchTagAt:BD,_BinaryenTryGetCatchBodyAt:Fc,_BinaryenTrySetCatchBodyAt:Nm,_BinaryenTryAppendCatchBody:ND,_BinaryenTryInsertCatchBodyAt:LD,_BinaryenTryRemoveCatchBodyAt:MD,_BinaryenTryHasCatchAll:zD,_BinaryenTryGetDelegateTarget:DD,_BinaryenTrySetDelegateTarget:GD,_BinaryenTryIsDelegate:UD,_BinaryenThrow:Lm,_BinaryenThrowGetTag:Mm,_BinaryenThrowSetTag:VD,_BinaryenThrowGetNumOperands:wc,_BinaryenThrowGetOperandAt:Rc,_BinaryenThrowSetOperandAt:zm,_BinaryenThrowAppendOperand:OD,_BinaryenThrowInsertOperandAt:qD,_BinaryenThrowRemoveOperandAt:WD,_BinaryenRethrow:Dm,_BinaryenRethrowGetTarget:KD,_BinaryenRethrowSetDepth:HD,_BinaryenTupleMake:Gm,_BinaryenTupleMakeGetNumOperands:Cc,_BinaryenTupleMakeGetOperandAt:Pc,_BinaryenTupleMakeSetOperandAt:Um,_BinaryenTupleMakeAppendOperand:jD,_BinaryenTupleMakeInsertOperandAt:QD,_BinaryenTupleMakeRemoveOperandAt:XD,_BinaryenTupleExtract:Vm,_BinaryenTupleExtractGetTuple:Bc,_BinaryenTupleExtractSetTuple:Om,_BinaryenTupleExtractGetIndex:ZD,_BinaryenTupleExtractSetIndex:$D,_BinaryenPop:qm,_BinaryenRefI31:Wm,_BinaryenRefI31GetValue:Nc,_BinaryenRefI31SetValue:Km,_BinaryenI31Get:Hm,_BinaryenI31GetGetI31:Lc,_BinaryenI31GetSetI31:jm,_BinaryenI31GetIsSigned:YD,_BinaryenI31GetSetSigned:JD,_BinaryenCallRef:eG,_BinaryenCallRefGetNumOperands:Mc,_BinaryenCallRefGetOperandAt:zc,_BinaryenCallRefSetOperandAt:Qm,_BinaryenCallRefAppendOperand:tG,_BinaryenCallRefInsertOperandAt:rG,_BinaryenCallRefRemoveOperandAt:iG,_BinaryenCallRefGetTarget:Dc,_BinaryenCallRefSetTarget:Xm,_BinaryenCallRefIsReturn:nG,_BinaryenCallRefSetReturn:sG,_BinaryenRefTest:aG,_BinaryenRefTestGetRef:Gc,_BinaryenRefTestSetRef:Zm,_BinaryenRefTestGetCastType:lG,_BinaryenRefTestSetCastType:oG,_BinaryenRefCast:uG,_BinaryenRefCastGetRef:Uc,_BinaryenRefCastSetRef:$m,_BinaryenBrOn:cG,_BinaryenBrOnGetOp:pG,_BinaryenBrOnSetOp:fG,_BinaryenBrOnGetName:Ym,_BinaryenBrOnSetName:_G,_BinaryenBrOnGetRef:Vc,_BinaryenBrOnSetRef:Jm,_BinaryenBrOnGetCastType:dG,_BinaryenBrOnSetCastType:hG,_BinaryenStructNew:mG,_BinaryenStructNewGetNumOperands:Oc,_BinaryenStructNewGetOperandAt:qc,_BinaryenStructNewSetOperandAt:ey,_BinaryenStructNewAppendOperand:yG,_BinaryenStructNewInsertOperandAt:gG,_BinaryenStructNewRemoveOperandAt:bG,_BinaryenStructGet:xG,_BinaryenStructGetGetIndex:ty,_BinaryenStructGetSetIndex:EG,_BinaryenStructGetGetRef:Wc,_BinaryenStructGetSetRef:ry,_BinaryenStructGetIsSigned:AG,_BinaryenStructGetSetSigned:TG,_BinaryenStructSet:SG,_BinaryenStructSetGetIndex:iy,_BinaryenStructSetSetIndex:vG,_BinaryenStructSetGetRef:Kc,_BinaryenStructSetSetRef:ny,_BinaryenStructSetGetValue:Hc,_BinaryenStructSetSetValue:sy,_BinaryenArrayNew:IG,_BinaryenArrayNewGetInit:jc,_BinaryenArrayNewSetInit:ay,_BinaryenArrayNewGetSize:Qc,_BinaryenArrayNewSetSize:ly,_BinaryenArrayNewFixed:kG,_BinaryenArrayNewFixedGetNumValues:Xc,_BinaryenArrayNewFixedGetValueAt:Zc,_BinaryenArrayNewFixedSetValueAt:oy,_BinaryenArrayNewFixedAppendValue:FG,_BinaryenArrayNewFixedInsertValueAt:wG,_BinaryenArrayNewFixedRemoveValueAt:RG,_BinaryenArrayNewData:CG,_BinaryenArrayNewDataGetSegment:PG,_BinaryenArrayNewDataSetSegment:BG,_BinaryenArrayNewDataGetOffset:NG,_BinaryenArrayNewDataSetOffset:LG,_BinaryenArrayNewDataGetSize:MG,_BinaryenArrayNewDataSetSize:zG,_BinaryenArrayNewElem:DG,_BinaryenArrayNewElemGetSegment:GG,_BinaryenArrayNewElemSetSegment:UG,_BinaryenArrayNewElemGetOffset:VG,_BinaryenArrayNewElemSetOffset:OG,_BinaryenArrayNewElemGetSize:qG,_BinaryenArrayNewElemSetSize:WG,_BinaryenArrayGet:KG,_BinaryenArrayGetGetRef:$c,_BinaryenArrayGetSetRef:uy,_BinaryenArrayGetGetIndex:Yc,_BinaryenArrayGetSetIndex:cy,_BinaryenArrayGetIsSigned:HG,_BinaryenArrayGetSetSigned:jG,_BinaryenArraySet:QG,_BinaryenArraySetGetRef:Jc,_BinaryenArraySetSetRef:py,_BinaryenArraySetGetIndex:ep,_BinaryenArraySetSetIndex:fy,_BinaryenArraySetGetValue:tp,_BinaryenArraySetSetValue:_y,_BinaryenArrayLen:XG,_BinaryenArrayLenGetRef:rp,_BinaryenArrayLenSetRef:dy,_BinaryenArrayFill:ZG,_BinaryenArrayFillGetRef:$G,_BinaryenArrayFillSetRef:YG,_BinaryenArrayFillGetIndex:JG,_BinaryenArrayFillSetIndex:e9,_BinaryenArrayFillGetValue:t9,_BinaryenArrayFillSetValue:r9,_BinaryenArrayFillGetSize:i9,_BinaryenArrayFillSetSize:n9,_BinaryenArrayCopy:s9,_BinaryenArrayCopyGetDestRef:ip,_BinaryenArrayCopySetDestRef:hy,_BinaryenArrayCopyGetDestIndex:np,_BinaryenArrayCopySetDestIndex:my,_BinaryenArrayCopyGetSrcRef:sp,_BinaryenArrayCopySetSrcRef:yy,_BinaryenArrayCopyGetSrcIndex:ap,_BinaryenArrayCopySetSrcIndex:gy,_BinaryenArrayCopyGetLength:lp,_BinaryenArrayCopySetLength:by,_BinaryenArrayInitData:a9,_BinaryenArrayInitDataGetSegment:l9,_BinaryenArrayInitDataSetSegment:o9,_BinaryenArrayInitDataGetRef:u9,_BinaryenArrayInitDataSetRef:c9,_BinaryenArrayInitDataGetIndex:p9,_BinaryenArrayInitDataSetIndex:f9,_BinaryenArrayInitDataGetOffset:_9,_BinaryenArrayInitDataSetOffset:d9,_BinaryenArrayInitDataGetSize:h9,_BinaryenArrayInitDataSetSize:m9,_BinaryenArrayInitElem:y9,_BinaryenArrayInitElemGetSegment:g9,_BinaryenArrayInitElemSetSegment:b9,_BinaryenArrayInitElemGetRef:x9,_BinaryenArrayInitElemSetRef:E9,_BinaryenArrayInitElemGetIndex:A9,_BinaryenArrayInitElemSetIndex:T9,_BinaryenArrayInitElemGetOffset:S9,_BinaryenArrayInitElemSetOffset:v9,_BinaryenArrayInitElemGetSize:I9,_BinaryenArrayInitElemSetSize:k9,_BinaryenStringNew:F9,_BinaryenStringNewGetOp:w9,_BinaryenStringNewSetOp:R9,_BinaryenStringNewGetRef:op,_BinaryenStringNewSetRef:xy,_BinaryenStringNewGetStart:up,_BinaryenStringNewSetStart:Ey,_BinaryenStringNewGetEnd:cp,_BinaryenStringNewSetEnd:Ay,_BinaryenStringConst:C9,_BinaryenStringConstGetString:P9,_BinaryenStringConstSetString:B9,_BinaryenStringMeasure:N9,_BinaryenStringMeasureGetOp:L9,_BinaryenStringMeasureSetOp:M9,_BinaryenStringMeasureGetRef:pp,_BinaryenStringMeasureSetRef:Ty,_BinaryenStringEncode:z9,_BinaryenStringEncodeGetOp:D9,_BinaryenStringEncodeSetOp:G9,_BinaryenStringEncodeGetStr:fp,_BinaryenStringEncodeSetStr:Sy,_BinaryenStringEncodeGetArray:_p,_BinaryenStringEncodeSetArray:vy,_BinaryenStringEncodeGetStart:dp,_BinaryenStringEncodeSetStart:Iy,_BinaryenStringConcat:U9,_BinaryenStringConcatGetLeft:hp,_BinaryenStringConcatSetLeft:ky,_BinaryenStringConcatGetRight:mp,_BinaryenStringConcatSetRight:Fy,_BinaryenStringEq:yp,_BinaryenStringEqGetOp:V9,_BinaryenStringEqSetOp:O9,_BinaryenStringEqGetLeft:gp,_BinaryenStringEqSetLeft:wy,_BinaryenStringEqGetRight:bp,_BinaryenStringEqSetRight:Ry,_BinaryenStringWTF16Get:q9,_BinaryenStringWTF16GetGetRef:xp,_BinaryenStringWTF16GetSetRef:Cy,_BinaryenStringWTF16GetGetPos:Ep,_BinaryenStringWTF16GetSetPos:Py,_BinaryenStringSliceWTF:W9,_BinaryenStringSliceWTFGetRef:Ap,_BinaryenStringSliceWTFSetRef:By,_BinaryenStringSliceWTFGetStart:Tp,_BinaryenStringSliceWTFSetStart:Ny,_BinaryenStringSliceWTFGetEnd:Sp,_BinaryenStringSliceWTFSetEnd:Ly,_BinaryenAddFunction:Bi,_BinaryenGetFunction:Ni,_BinaryenRemoveFunction:$n,_BinaryenGetNumFunctions:My,_BinaryenGetFunctionByIndex:zy,_BinaryenFunctionGetName:Li,_BinaryenFunctionGetParams:Yn,_BinaryenFunctionGetResults:Jn,_BinaryenFunctionGetNumVars:Wa,_BinaryenFunctionGetVar:Ka,_BinaryenFunctionAddVar:K9,_BinaryenFunctionGetNumLocals:vp,_BinaryenFunctionHasLocalName:H9,_BinaryenFunctionGetLocalName:j9,_BinaryenFunctionSetLocalName:Dy,_BinaryenFunctionGetBody:mr,_BinaryenFunctionSetBody:Ha,_BinaryenFunctionGetType:Q9,_BinaryenFunctionSetType:X9,_BinaryenFunctionOptimize:Z9,_BinaryenFunctionRunPasses:Gy,_BinaryenFunctionSetDebugLocation:Uy,_BinaryenAddFunctionImport:Vy,_BinaryenAddTableImport:Oy,_BinaryenAddMemoryImport:qy,_BinaryenAddGlobalImport:Wy,_BinaryenAddTagImport:Ky,_BinaryenAddFunctionExport:ja,_BinaryenAddTableExport:Hy,_BinaryenAddMemoryExport:jy,_BinaryenAddGlobalExport:Qy,_BinaryenAddTagExport:Xy,_BinaryenGetExport:Qa,_BinaryenRemoveExport:Xa,_BinaryenGetNumExports:$9,_BinaryenGetExportByIndex:Y9,_BinaryenExportGetKind:Zy,_BinaryenExportGetName:$y,_BinaryenExportGetValue:Yy,_BinaryenAddGlobal:Jy,_BinaryenGetGlobal:Ip,_BinaryenRemoveGlobal:eg,_BinaryenGetNumGlobals:tg,_BinaryenGetGlobalByIndex:rg,_BinaryenGlobalGetName:ig,_BinaryenGlobalGetType:ng,_BinaryenGlobalIsMutable:sg,_BinaryenGlobalGetInitExpr:Za,_BinaryenAddTag:ag,_BinaryenGetTag:lg,_BinaryenRemoveTag:og,_BinaryenTagGetName:ug,_BinaryenTagGetParams:cg,_BinaryenTagGetResults:pg,_BinaryenAddTable:kp,_BinaryenRemoveTable:J9,_BinaryenGetNumTables:e5,_BinaryenGetTable:Fp,_BinaryenGetTableByIndex:t5,_BinaryenTableGetName:r5,_BinaryenTableSetName:i5,_BinaryenTableGetInitial:n5,_BinaryenTableSetInitial:fg,_BinaryenTableHasMax:s5,_BinaryenTableGetMax:a5,_BinaryenTableSetMax:_g,_BinaryenTableGetType:l5,_BinaryenTableSetType:o5,_BinaryenAddActiveElementSegment:dg,_BinaryenAddPassiveElementSegment:u5,_BinaryenRemoveElementSegment:c5,_BinaryenGetNumElementSegments:p5,_BinaryenGetElementSegment:f5,_BinaryenGetElementSegmentByIndex:_5,_BinaryenSetMemory:hg,_BinaryenGetNumMemorySegments:d5,_BinaryenGetMemorySegmentByteOffset:h5,_BinaryenGetMemorySegmentByteLength:m5,_BinaryenCopyMemorySegmentData:y5,_BinaryenAddDataSegment:g5,_BinaryenSetStart:mg,_BinaryenGetStart:b5,_BinaryenModuleParse:x5,_BinaryenModulePrint:E5,_BinaryenModulePrintAsmjs:A5,_BinaryenModuleValidate:yg,_BinaryenModuleOptimize:T5,_BinaryenModuleRunPasses:gg,_BinaryenSizeofAllocateAndWriteResult:bg,_BinaryenModuleAllocateAndWrite:xg,_BinaryenModuleAllocateAndWriteText:Eg,_BinaryenModuleAllocateAndWriteStackIR:Ag,_BinaryenModuleRead:Tg,_BinaryenModuleReadWithFeatures:S5,_BinaryenModuleInterpret:Sg,_BinaryenModuleAddDebugInfoFileName:vg,_BinaryenModuleGetDebugInfoFileName:Ig,_BinaryenModuleGetFeatures:kg,_BinaryenModuleSetFeatures:Fg,_BinaryenAddCustomSection:wg,_BinaryenExpressionGetSideEffects:Rg,_RelooperCreate:Cg,_RelooperAddBlock:Pg,_RelooperAddBranch:Bg,_RelooperAddBlockWithSwitch:Ng,_RelooperAddBranchForSwitch:Lg,_RelooperRenderAndDispose:Mg,_ExpressionRunnerCreate:zg,_ExpressionRunnerSetLocalValue:v5,_ExpressionRunnerSetGlobalValue:I5,_ExpressionRunnerRunAndDispose:Dg,_TypeBuilderCreate:Gg,_TypeBuilderGrow:wp,_TypeBuilderGetSize:$a,_TypeBuilderSetSignatureType:Ug,_TypeBuilderSetStructType:Vg,_TypeBuilderSetArrayType:k5,_TypeBuilderGetTempHeapType:Rp,_TypeBuilderGetTempTupleType:Cp,_TypeBuilderGetTempRefType:Mi,_TypeBuilderSetSubType:Og,_TypeBuilderSetOpen:F5,_TypeBuilderCreateRecGroup:w5,_TypeBuilderBuildAndDispose:qg,_BinaryenModuleSetTypeName:Wg,_BinaryenModuleSetFieldName:Kg,_BinaryenGetOptimizeLevel:Hg,_BinaryenSetOptimizeLevel:jg,_BinaryenGetShrinkLevel:Qg,_BinaryenSetShrinkLevel:Xg,_BinaryenGetDebugInfo:Zg,_BinaryenSetDebugInfo:$g,_BinaryenGetTrapsNeverHappen:Yg,_BinaryenSetTrapsNeverHappen:Jg,_BinaryenGetClosedWorld:eb,_BinaryenSetClosedWorld:tb,_BinaryenGetLowMemoryUnused:rb,_BinaryenSetLowMemoryUnused:ib,_BinaryenGetZeroFilledMemory:nb,_BinaryenSetZeroFilledMemory:sb,_BinaryenGetFastMath:ab,_BinaryenSetFastMath:lb,_BinaryenGetGenerateStackIR:ob,_BinaryenSetGenerateStackIR:ub,_BinaryenGetOptimizeStackIR:cb,_BinaryenSetOptimizeStackIR:pb,_BinaryenGetPassArgument:fb,_BinaryenSetPassArgument:_b,_BinaryenClearPassArguments:db,_BinaryenHasPassToSkip:R5,_BinaryenAddPassToSkip:C5,_BinaryenClearPassesToSkip:P5,_BinaryenGetAlwaysInlineMaxSize:hb,_BinaryenSetAlwaysInlineMaxSize:mb,_BinaryenGetFlexibleInlineMaxSize:yb,_BinaryenSetFlexibleInlineMaxSize:gb,_BinaryenGetOneCallerInlineMaxSize:bb,_BinaryenSetOneCallerInlineMaxSize:xb,_BinaryenGetAllowInliningFunctionsWithLoops:Eb,_BinaryenSetAllowInliningFunctionsWithLoops:Ab,_malloc:kt,_free:ne,__i32_store8:qe,__i32_store16:B5,__i32_store:Ya,__f32_store:N5,__f64_store:L5,__i32_load8_s:M5,__i32_load8_u:Vr,__i32_load16_s:z5,__i32_load16_u:D5,__i32_load:yr,__f32_load:G5,__f64_load:U5}=Cn;function C1(i){return BigInt(i.high|0)<<32n|BigInt(i.low>>>0)}function P1(i){return R1.fromBits(Number(i&0xFFFFFFFFn)|0,Number(i>>32n)|0)}function Tb(i,r){return Cn._BinaryenLiteralInt64(i,C1(r))}function Pp(i){return P1(Cn._BinaryenConstGetValueI64(i))}var vb="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:Ib}=(await WebAssembly.instantiateStreaming(fetch(vb))).instance.exports;var Ja=new Float64Array(1),kb=new Float32Array(Ja.buffer),zi=new Int32Array(Ja.buffer);globalThis.f32_as_i32=function(r){return kb[0]=r,zi[0]};globalThis.i32_as_f32=function(r){return zi[0]=r,kb[0]};globalThis.f64_as_i64=function(r){return Ja[0]=r,i64_new(zi[0],zi[1])};globalThis.i64_as_f64=function(r){return zi[0]=i64_low(r),zi[1]=i64_high(r),Ja[0]};globalThis.f64_pow=Ib;import we from"long";globalThis.i64_zero=we.ZERO;globalThis.i64_one=we.ONE;globalThis.i64_neg_one=we.fromInt(-1);globalThis.i64_minimum=we.MIN_VALUE;globalThis.i64_maximum=we.MAX_VALUE;globalThis.i64_is=function(r){return we.isLong(r)};globalThis.i64_new=function(r,e){return we.fromBits(r,e)};globalThis.i64_low=function(r){return r.low};globalThis.i64_high=function(r){return r.high};globalThis.i64_not=function(r){return r.not()};globalThis.i64_neg=function(r){return r.neg()};globalThis.i64_clz=function(r){return r.clz()};globalThis.i64_ctz=function(r){return r.ctz()};globalThis.i64_add=function(r,e){return r.add(e)};globalThis.i64_sub=function(r,e){return r.sub(e)};globalThis.i64_mul=function(r,e){return r.mul(e)};globalThis.i64_pow=function(r,e){let t=e.low,n=e.high;if(n<=0){if(n<0)return r.eq(globalThis.i64_neg_one)?t&1?r:we.ONE:r.eq(we.ONE)?r:we.ZERO;if(t==0)return we.ONE;if(t==1)return r;if(t==2)return r.mul(r)}let s=we.ONE;for(;t|n;)t&1&&(s=s.mul(r)),e=e.shru(1),r=r.mul(r),t=e.low,n=e.high;return s};globalThis.i64_div=function(r,e){return r.div(e)};globalThis.i64_div_u=function(r,e){return r.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(r,e){return r.mod(e)};globalThis.i64_rem_u=function(r,e){return r.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(r,e){return r.and(e)};globalThis.i64_or=function(r,e){return r.or(e)};globalThis.i64_xor=function(r,e){return r.xor(e)};globalThis.i64_shl=function(r,e){return r.shl(e)};globalThis.i64_shr=function(r,e){return r.shr(e)};globalThis.i64_shr_u=function(r,e){return r.shru(e)};globalThis.i64_eq=function(r,e){return r.eq(e)};globalThis.i64_ne=function(r,e){return r.ne(e)};globalThis.i64_ge=function(r,e){return r.ge(e)};globalThis.i64_ge_u=function(r,e){return r.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(r,e){return r.gt(e)};globalThis.i64_gt_u=function(r,e){return r.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(r,e){return r.le(e)};globalThis.i64_le_u=function(r,e){return r.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(r,e){return r.lt(e)};globalThis.i64_lt_u=function(r,e){return r.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(r,e){assert(e&&(e&e-1)==0);let t=we.fromInt(e-1);return r.add(t).and(t.not())};globalThis.i64_signbit=function(r){return!!(r.high>>>31)};globalThis.i64_is_i8=function(r){return r.high===0&&r.low>=0&&r.low<=i8.MAX_VALUE||r.high===-1&&r.low>=i8.MIN_VALUE&&r.low<0};globalThis.i64_is_i16=function(r){return r.high===0&&r.low>=0&&r.low<=i16.MAX_VALUE||r.high===-1&&r.low>=i16.MIN_VALUE&&r.low<0};globalThis.i64_is_i32=function(r){return r.high===0&&r.low>=0||r.high===-1&&r.low<0};globalThis.i64_is_u8=function(r){return r.high===0&&r.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(r){return r.high===0&&r.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(r){return r.high===0};globalThis.i64_is_bool=function(r){return(r.high|r.low&-2)===0};var B1=we.fromNumber(f32.MIN_SAFE_INTEGER),N1=we.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(r){return r.gte(B1)&&r.lte(N1)};var L1=we.fromNumber(f64.MIN_SAFE_INTEGER),M1=we.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(r){return r.gte(L1)&&r.lte(M1)};globalThis.i64_to_f32=function(r){return globalThis.Math.fround(r.toNumber())};globalThis.i64_to_f64=function(r){return r.toNumber()};globalThis.i64_to_string=function(r,e){return e?r.toUnsigned().toString():r.toString()};globalThis.i64_clone=function(r){return we.fromBits(r.low,r.high,r.unsigned)};globalThis.Map_keys=function(r){return Array.from(r.keys())};globalThis.Map_values=function(r){return Array.from(r.values())};globalThis.Set_values=function(r){return Array.from(r.values())};var Kt=(k=>(k[k.None=0]="None",k[k.SignExtension=1]="SignExtension",k[k.MutableGlobals=2]="MutableGlobals",k[k.NontrappingF2I=4]="NontrappingF2I",k[k.BulkMemory=8]="BulkMemory",k[k.Simd=16]="Simd",k[k.Threads=32]="Threads",k[k.ExceptionHandling=64]="ExceptionHandling",k[k.TailCalls=128]="TailCalls",k[k.ReferenceTypes=256]="ReferenceTypes",k[k.MultiValue=512]="MultiValue",k[k.GC=1024]="GC",k[k.Memory64=2048]="Memory64",k[k.RelaxedSimd=4096]="RelaxedSimd",k[k.ExtendedConst=8192]="ExtendedConst",k[k.Strings=16384]="Strings",k[k.SharedEverything=32768]="SharedEverything",k[k.All=65535]="All",k))(Kt||{});function Di(i){switch(i){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything"}return assert(!1),""}var Gi=(t=>(t[t.Js=0]="Js",t[t.Wasm32=1]="Wasm32",t[t.Wasm64=2]="Wasm64",t))(Gi||{});var el=(t=>(t[t.Stub=0]="Stub",t[t.Minimal=1]="Minimal",t[t.Incremental=2]="Incremental",t))(el||{});var Ui=class{constructor(){this.flags=0}};Ui=K_([unmanaged],Ui);var tl=(G=>(G[G.NONE=0]="NONE",G[G.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",G[G.ARRAY=2]="ARRAY",G[G.STATICARRAY=4]="STATICARRAY",G[G.SET=8]="SET",G[G.MAP=16]="MAP",G[G.POINTERFREE=32]="POINTERFREE",G[G.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",G[G.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",G[G.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",G[G.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",G[G.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",G[G.VALUE_SIGNED=2048]="VALUE_SIGNED",G[G.VALUE_FLOAT=4096]="VALUE_FLOAT",G[G.VALUE_NULLABLE=8192]="VALUE_NULLABLE",G[G.VALUE_MANAGED=16384]="VALUE_MANAGED",G[G.KEY_ALIGN_0=32768]="KEY_ALIGN_0",G[G.KEY_ALIGN_1=65536]="KEY_ALIGN_1",G[G.KEY_ALIGN_2=131072]="KEY_ALIGN_2",G[G.KEY_ALIGN_3=262144]="KEY_ALIGN_3",G[G.KEY_ALIGN_4=524288]="KEY_ALIGN_4",G[G.KEY_SIGNED=1048576]="KEY_SIGNED",G[G.KEY_FLOAT=2097152]="KEY_FLOAT",G[G.KEY_NULLABLE=4194304]="KEY_NULLABLE",G[G.KEY_MANAGED=8388608]="KEY_MANAGED",G))(tl||{});var ze=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(ze||{}),mt="/",z1="..",rl="get:",il="set:",Bp="#",es=".",Np="~",Fb="~lib",Ft=Fb+mt,Qe=mt+"index",Lp="@",N;(D=>(D.Empty="",D.i8="i8",D.i16="i16",D.i32="i32",D.i64="i64",D.isize="isize",D.u8="u8",D.u16="u16",D.u32="u32",D.u64="u64",D.usize="usize",D.bool="bool",D.f32="f32",D.f64="f64",D.v128="v128",D.ref_func="ref_func",D.ref_extern="ref_extern",D.ref_any="ref_any",D.ref_eq="ref_eq",D.ref_struct="ref_struct",D.ref_array="ref_array",D.ref_i31="ref_i31",D.ref_string="ref_string",D.ref_stringview_wtf8="ref_stringview_wtf8",D.ref_stringview_wtf16="ref_stringview_wtf16",D.ref_stringview_iter="ref_stringview_iter",D.i8x16="i8x16",D.u8x16="u8x16",D.i16x8="i16x8",D.u16x8="u16x8",D.i32x4="i32x4",D.u32x4="u32x4",D.i64x2="i64x2",D.u64x2="u64x2",D.f32x4="f32x4",D.f64x2="f64x2",D.void_="void",D.number="number",D.boolean="boolean",D.string="string",D.native="native",D.indexof="indexof",D.valueof="valueof",D.returnof="returnof",D.thisof="thisof",D.nonnull="nonnull",D.null_="null",D.true_="true",D.false_="false",D.this_="this",D.super_="super",D.constructor="constructor",D.COPY_STRUCT="~lib/util/bytes/COPY_STRUCT",D.ASC_TARGET="ASC_TARGET",D.ASC_RUNTIME="ASC_RUNTIME",D.ASC_NO_ASSERT="ASC_NO_ASSERT",D.ASC_MEMORY_BASE="ASC_MEMORY_BASE",D.ASC_TABLE_BASE="ASC_TABLE_BASE",D.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",D.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",D.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",D.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",D.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",D.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",D.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",D.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",D.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",D.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",D.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",D.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",D.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",D.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",D.ASC_FEATURE_GC="ASC_FEATURE_GC",D.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",D.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",D.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",D.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",D.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",D.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",D.ASC_VERSION_MINOR="ASC_VERSION_MINOR",D.ASC_VERSION_PATCH="ASC_VERSION_PATCH",D.EnumToString="__enum_to_string",D.I8="I8",D.I16="I16",D.I32="I32",D.I64="I64",D.Isize="Isize",D.U8="U8",D.U16="U16",D.U32="U32",D.U64="U64",D.Usize="Usize",D.Bool="Bool",D.F32="F32",D.F64="F64",D.V128="V128",D.RefFunc="RefFunc",D.RefExtern="RefExtern",D.RefAny="RefAny",D.RefEq="RefEq",D.RefStruct="RefStruct",D.RefArray="RefArray",D.RefI31="RefI31",D.RefString="RefString",D.String="String",D.RegExp="RegExp",D.Object="Object",D.Array="Array",D.StaticArray="StaticArray",D.Set="Set",D.Map="Map",D.Function="Function",D.Task="Task",D.ArrayBufferView="ArrayBufferView",D.ArrayBuffer="ArrayBuffer",D.Math="Math",D.Mathf="Mathf",D.NativeMath="NativeMath",D.NativeMathf="NativeMathf",D.Int8Array="Int8Array",D.Int16Array="Int16Array",D.Int32Array="Int32Array",D.Int64Array="Int64Array",D.Uint8Array="Uint8Array",D.Uint8ClampedArray="Uint8ClampedArray",D.Uint16Array="Uint16Array",D.Uint32Array="Uint32Array",D.Uint64Array="Uint64Array",D.Float32Array="Float32Array",D.Float64Array="Float64Array",D.TemplateStringsArray="TemplateStringsArray",D.Error="Error",D.abort="abort",D.trace="trace",D.seed="seed",D.pow="pow",D.ipow32="ipow32",D.ipow64="ipow64",D.mod="mod",D.alloc="__alloc",D.realloc="__realloc",D.free="__free",D.new_="__new",D.renew="__renew",D.link="__link",D.collect="__collect",D.visit="__visit",D.newBuffer="__newBuffer",D.newArray="__newArray",D.BLOCK="~lib/rt/common/BLOCK",D.OBJECT="~lib/rt/common/OBJECT",D.DefaultMemory="0",D.DefaultTable="0"))(N||={});var ts=class{constructor(r=0,e=null,t=!1,n=!1,s=null,a=!1){this.kind=r;this.envClass=e;this.ownEnv=t;this.receivesEnv=n;this.parentClass=s;this.hasThis=a}},nl=new Map,wb=null;function Vi(){let i=wb;return i==null&&(wb=i=new Map),i}var Rb=null;function Or(){let i=Rb;return i==null&&(Rb=i=new Map),i}var Xe=(S=>(S[S.Not_implemented_0=100]="Not_implemented_0",S[S.Operation_is_unsafe=101]="Operation_is_unsafe",S[S.User_defined_0=102]="User_defined_0",S[S.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",S[S.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",S[S.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",S[S.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",S[S.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",S[S.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",S[S.Transform_0_1=109]="Transform_0_1",S[S.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",S[S.Element_0_not_found=111]="Element_0_not_found",S[S.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",S[S.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",S[S.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",S[S.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",S[S.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",S[S.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",S[S.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",S[S.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",S[S.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",S[S.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",S[S.Expression_is_never_null=210]="Expression_is_never_null",S[S.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",S[S.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",S[S.Duplicate_decorator=213]="Duplicate_decorator",S[S.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",S[S.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",S[S.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",S[S.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",S[S.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",S[S.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",S[S.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",S[S.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",S[S._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",S[S._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",S[S._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",S[S.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",S[S.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",S[S.Array_literal_expected=227]="Array_literal_expected",S[S.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",S[S.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",S[S._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",S[S.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",S[S.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",S[S.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",S[S.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",S[S.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",S[S.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",S[S.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",S[S.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",S[S.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",S[S.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",S[S.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",S[S.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",S[S.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",S[S.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",S[S.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",S[S.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",S[S.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",S[S._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",S[S.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",S[S.Unterminated_string_literal=1002]="Unterminated_string_literal",S[S.Identifier_expected=1003]="Identifier_expected",S[S._0_expected=1005]="_0_expected",S[S.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",S[S.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",S[S.Unexpected_token=1012]="Unexpected_token",S[S.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",S[S.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",S[S.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",S[S._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",S[S.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",S[S.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",S[S._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",S[S.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",S[S.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",S[S.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",S[S.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",S[S.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",S[S.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",S[S.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",S[S.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",S[S.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",S[S.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",S[S.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",S[S.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",S[S.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",S[S.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",S[S.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",S[S.Expression_expected=1109]="Expression_expected",S[S.Type_expected=1110]="Type_expected",S[S.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",S[S.Duplicate_label_0=1114]="Duplicate_label_0",S[S.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",S[S.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",S[S.Digit_expected=1124]="Digit_expected",S[S.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",S[S.Unexpected_end_of_text=1126]="Unexpected_end_of_text",S[S.Invalid_character=1127]="Invalid_character",S[S._case_or_default_expected=1130]="_case_or_default_expected",S[S._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",S[S.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",S[S.Type_argument_expected=1140]="Type_argument_expected",S[S.String_literal_expected=1141]="String_literal_expected",S[S.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",S[S.Declaration_expected=1146]="Declaration_expected",S[S._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",S[S.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",S[S.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",S[S.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",S[S.Binary_digit_expected=1177]="Binary_digit_expected",S[S.Octal_digit_expected=1178]="Octal_digit_expected",S[S.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",S[S.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",S[S.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",S[S.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",S[S.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",S[S._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",S[S.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",S[S.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",S[S.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",S[S._await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules=1308]="_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules",S[S.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",S[S.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",S[S.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",S[S.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",S[S.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",S[S.Duplicate_identifier_0=2300]="Duplicate_identifier_0",S[S.Cannot_find_name_0=2304]="Cannot_find_name_0",S[S.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",S[S.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",S[S.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",S[S.Type_0_is_not_generic=2315]="Type_0_is_not_generic",S[S.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",S[S.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",S[S.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",S[S._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",S[S._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",S[S._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",S[S._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",S[S.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",S[S.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",S[S.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",S[S.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",S[S.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",S[S.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",S[S.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",S[S.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",S[S.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",S[S.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",S[S.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",S[S._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",S[S.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",S[S.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",S[S.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",S[S.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",S[S.Duplicate_function_implementation=2393]="Duplicate_function_implementation",S[S.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",S[S.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",S[S.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",S[S.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",S[S.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",S[S.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",S[S.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",S[S.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",S[S.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",S[S.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",S[S.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",S[S.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",S[S.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",S[S.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",S[S.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",S[S.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",S[S.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",S[S.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",S[S._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",S[S.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",S[S.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",S[S.Object_is_possibly_null=2531]="Object_is_possibly_null",S[S.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",S[S.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",S[S.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",S[S.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",S[S.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",S[S.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",S[S.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",S[S.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",S[S._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",S[S._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",S[S.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",S[S.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",S[S.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",S[S.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",S[S.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",S[S.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",S[S.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",S[S.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",S[S.Duplicate_property_0=2718]="Duplicate_property_0",S[S.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",S[S.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",S[S.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",S[S.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",S[S.File_0_not_found=6054]="File_0_not_found",S[S.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",S[S.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",S[S.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",S[S._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",S[S._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",S[S.A_struct_cannot_be_both_managed_and_unmanaged=6390]="A_struct_cannot_be_both_managed_and_unmanaged",S[S.A_struct_cannot_be_both_inline_and_managed=6391]="A_struct_cannot_be_both_inline_and_managed",S[S.A_memory_model_decorator_must_precede_the_type_it_applies_to_0=6392]="A_memory_model_decorator_must_precede_the_type_it_applies_to_0",S[S.Only_one_memory_model_decorator_may_apply_to_a_use=6393]="Only_one_memory_model_decorator_may_apply_to_a_use",S[S.Type_0_has_no_GC_header_so_a_use_cannot_make_it_managed_declare_the_record_managed_instead=6394]="Type_0_has_no_GC_header_so_a_use_cannot_make_it_managed_declare_the_record_managed_instead",S[S.Type_0_is_a_value_with_no_address_so_a_use_cannot_view_it_as_1_use_the_value_or_keep_it_inline=6395]="Type_0_is_a_value_with_no_address_so_a_use_cannot_view_it_as_1_use_the_value_or_keep_it_inline",S[S.A_lazy_decorator_must_precede_the_expression_it_defers_not_follow_a_type=6396]="A_lazy_decorator_must_precede_the_expression_it_defers_not_follow_a_type",S[S._lazy_expressions_must_be_the_initializer_of_a_variable_declaration=6397]="_lazy_expressions_must_be_the_initializer_of_a_variable_declaration",S[S.A_lazy_expression_in_this_position_is_not_lowered_it_is_evaluated_eagerly=6398]="A_lazy_expression_in_this_position_is_not_lowered_it_is_evaluated_eagerly",S[S.A_lazy_await_binding_needs_a_declared_type_the_memo_cells_are_lifted_into_the_task_s_state_struct_and_a_state_field_needs_a_syntactic_type_0=6399]="A_lazy_await_binding_needs_a_declared_type_the_memo_cells_are_lifted_into_the_task_s_state_struct_and_a_state_field_needs_a_syntactic_type_0",S[S.A_lazy_await_binding_cannot_be_read_from_a_nested_function_a_capture_moves_the_storage_and_the_memo_cell_is_a_state_field_0=6400]="A_lazy_await_binding_cannot_be_read_from_a_nested_function_a_capture_moves_the_storage_and_the_memo_cell_is_a_state_field_0",S[S.A_spawn_produces_a_Task_this_one_is_never_awaited_so_the_task_s_result_is_discarded=6401]="A_spawn_produces_a_Task_this_one_is_never_awaited_so_the_task_s_result_is_discarded",S[S.An_await_forces_an_immediate_read_of_lazy_so_the_deferral_is_nullified_drop_the_lazy_or_remove_the_await=6402]="An_await_forces_an_immediate_read_of_lazy_so_the_deferral_is_nullified_drop_the_lazy_or_remove_the_await",S[S.An_enum_underlying_type_must_be_one_of_i8_u8_i16_u16_i32_or_u32_not_0=6403]="An_enum_underlying_type_must_be_one_of_i8_u8_i16_u16_i32_or_u32_not_0",S[S.Enum_member_0_does_not_fit_the_underlying_type_1=6404]="Enum_member_0_does_not_fit_the_underlying_type_1",S[S._abi_align_requires_a_single_integer_literal_argument_the_alignment_is_a_compile_time_constant_so_a_computed_value_cannot_be_read_where_the_layout_is_decided=6405]="_abi_align_requires_a_single_integer_literal_argument_the_alignment_is_a_compile_time_constant_so_a_computed_value_cannot_be_read_where_the_layout_is_decided",S[S._abi_align_0_the_alignment_must_be_at_least_1=6406]="_abi_align_0_the_alignment_must_be_at_least_1",S[S._abi_align_0_the_alignment_must_be_a_power_of_two=6407]="_abi_align_0_the_alignment_must_be_a_power_of_two",S[S._abi_align_0_is_less_than_the_field_type_s_natural_alignment_1_asking_for_less_is_a_lie_so_it_is_refused_rather_than_silently_ignored=6408]="_abi_align_0_is_less_than_the_field_type_s_natural_alignment_1_asking_for_less_is_a_lie_so_it_is_refused_rather_than_silently_ignored",S[S._abi_align_0_is_too_large_the_maximum_is_1=6409]="_abi_align_0_is_too_large_the_maximum_is_1",S[S.Alignment_is_a_property_of_the_field_not_its_type_Place_abi_align_N_on_the_field_declaration=6410]="Alignment_is_a_property_of_the_field_not_its_type_Place_abi_align_N_on_the_field_declaration",S[S.A_view_parameter_unmanaged_0_over_an_inline_type_cannot_appear_in_a_host_visible_signature_an_external_or_exported_parameter_is_supplied_by_the_host_and_a_view_is_an_address_this_compiler_did_not_materialise=6411]="A_view_parameter_unmanaged_0_over_an_inline_type_cannot_appear_in_a_host_visible_signature_an_external_or_exported_parameter_is_supplied_by_the_host_and_a_view_is_an_address_this_compiler_did_not_materialise",S[S.Call_to_0_emits_1_operands_but_its_signature_declares_2=6412]="Call_to_0_emits_1_operands_but_its_signature_declares_2",S))(Xe||{});function sl(i){switch(i){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1308:return"'await' expressions are only allowed within async functions and at the top levels of modules.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";case 6390:return"A struct cannot be both '@managed' and '@unmanaged'.";case 6391:return"A struct cannot be both '@inline' and '@managed'.";case 6392:return"A memory-model decorator must precede the type it applies to: '{0}'.";case 6393:return"Only one memory-model decorator may apply to a use.";case 6394:return"Type '{0}' has no GC header, so a use cannot make it '@managed'; declare the record '@managed' instead.";case 6395:return"Type '{0}' is a value with no address, so a use cannot view it as '{1}'; use the value, or keep it '@inline'.";case 6396:return"A '@lazy' decorator must precede the expression it defers, not follow a type.";case 6397:return"'@lazy' expressions must be the initializer of a variable declaration.";case 6398:return"A '@lazy' expression in this position is not lowered; it is evaluated eagerly.";case 6399:return"A '@lazy await' binding needs a declared type: the memo cells are lifted into the task's state struct, and a state field needs a syntactic type ('{0}').";case 6400:return"A '@lazy await' binding cannot be read from a nested function: a capture moves the storage, and the memo cell is a state field ('{0}').";case 6401:return"A 'spawn' produces a Task; this one is never awaited, so the task's result is discarded.";case 6402:return"An 'await' forces an immediate read of '@lazy', so the deferral is nullified; drop the '@lazy', or remove the 'await'.";case 6403:return"An enum underlying type must be one of i8, u8, i16, u16, i32 or u32, not '{0}'.";case 6404:return"Enum member '{0}' does not fit the underlying type '{1}'.";case 6405:return"'@abi.align' requires a single integer literal argument; the alignment is a compile-time constant, so a computed value cannot be read where the layout is decided.";case 6406:return"'@abi.align({0})': the alignment must be at least 1.";case 6407:return"'@abi.align({0})': the alignment must be a power of two.";case 6408:return"'@abi.align({0})' is less than the field type's natural alignment ({1}); asking for less is a lie, so it is refused rather than silently ignored.";case 6409:return"'@abi.align({0})' is too large; the maximum is {1}.";case 6410:return"Alignment is a property of the field, not its type. Place '@abi.align(N)' on the field declaration.";case 6411:return"A view parameter ('@unmanaged {0}' over an inline type) cannot appear in a host-visible signature: an '@external' or exported parameter is supplied by the host, and a view is an address this compiler did not materialise.";case 6412:return"Call to '{0}' emits {1} operands but its signature declares {2}.";default:return""}}var Hp={};Nu(Hp,{BitSet:()=>Dp,COLOR_BLUE:()=>sE,COLOR_CYAN:()=>qp,COLOR_GRAY:()=>iE,COLOR_GREEN:()=>nE,COLOR_MAGENTA:()=>Op,COLOR_RED:()=>_l,COLOR_RESET:()=>as,COLOR_WHITE:()=>aE,COLOR_YELLOW:()=>Vp,CharCode:()=>yt,SURROGATE_HIGH:()=>is,SURROGATE_LOW:()=>Wi,accuratePow64:()=>ll,cloneMap:()=>he,colorize:()=>lE,combineSurrogates:()=>ns,dirname:()=>Nb,escapeString:()=>Re,getMapEntry:()=>ee,indent:()=>q,isAlpha:()=>Up,isAlphaOrDecimal:()=>Pb,isColorsEnabled:()=>Qi,isDecimal:()=>gt,isHexBase:()=>ss,isHexOrDecimal:()=>j1,isHighSurrogate:()=>Ki,isIdentifier:()=>Ze,isIdentifierPart:()=>ji,isIdentifierStart:()=>Hi,isLineBreak:()=>Ht,isLowSurrogate:()=>ul,isOctal:()=>cl,isPowerOf2:()=>Kr,isSurrogate:()=>W1,isSurrogateHigh:()=>K1,isSurrogateLow:()=>H1,isWhiteSpace:()=>rs,mergeMaps:()=>q1,normalizePath:()=>Qr,numCodeUnits:()=>Hr,readF32:()=>U1,readF64:()=>V1,readI16:()=>G1,readI32:()=>Oi,readI64:()=>Cb,readI8:()=>D1,readV128:()=>O1,resolvePath:()=>pl,setColorsEnabled:()=>dl,v128_ones:()=>Kp,v128_zero:()=>Wp,writeF32:()=>qr,writeF64:()=>Wr,writeI16:()=>gr,writeI32:()=>Se,writeI32AsI64:()=>al,writeI64:()=>qi,writeI64AsI32:()=>Mp,writeI8:()=>be,writeV128:()=>zp});function D1(i,r){return i[r]}function be(i,r,e){r[e]=i}function G1(i,r){return i32(i[r])|i32(i[r+1])<<8}function gr(i,r,e){r[e]=i,r[e+1]=i>>>8}function Oi(i,r){return i32(i[r])|i32(i[r+1])<<8|i32(i[r+2])<<16|i32(i[r+3])<<24}function Se(i,r,e){r[e]=i,r[e+1]=i>>>8,r[e+2]=i>>>16,r[e+3]=i>>>24}function al(i,r,e,t=!1){Se(i,r,e),Se(t||i>=0?0:-1,r,e+4)}function Cb(i,r){let e=Oi(i,r),t=Oi(i,r+4);return i64_new(e,t)}function qi(i,r,e){Se(i64_low(i),r,e),Se(i64_high(i),r,e+4)}function Mp(i,r,e,t=!1){assert(t?i64_is_u32(i):i64_is_i32(i)),Se(i64_low(i),r,e)}function U1(i,r){return i32_as_f32(Oi(i,r))}function qr(i,r,e){Se(f32_as_i32(i),r,e)}function V1(i,r){return i64_as_f64(Cb(i,r))}function Wr(i,r,e){let t=f64_as_i64(i);Se(i64_low(t),r,e),Se(i64_high(t),r,e+4)}function O1(i,r){return i.slice(r,r+16)}function zp(i,r,e){assert(i.length==16),r.set(i,e)}function ee(i,r){return i.has(r)?i.get(r):null}function he(i){if(ASC_TARGET){let r=new Map;if(i)for(let e=Map_keys(i),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]),a=assert(i.get(s));r.set(s,a)}return r}else return new Map(i)}function q1(i,r){if(ASC_TARGET){let e=new Map;for(let t=Map_keys(i),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(i.get(a));e.set(a,l)}for(let t=Map_keys(r),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(r.get(a));e.set(a,l)}return e}else{let e=new Map(i);return r.forEach((t,n)=>e.set(n,t)),e}}var Dp=class{constructor(){this.clear()}get size(){let r=0,e=this.words;for(let t=0,n=e.length;t<n;t++){let s=unchecked(e[t]);s&&(r+=popcnt(s))}return r}add(r){let e=r>>>5,t=this.words;return e>=t.length&&(this.words=new Uint32Array(e+16),this.words.set(t),t=this.words),unchecked(t[e]|=1<<r),this}delete(r){let e=r>>>5,t=this.words;e>=t.length||unchecked(t[e]&=~(1<<r))}has(r){let e=r>>>5,t=this.words;return e>=t.length?!1:(unchecked(t[r>>>5])&1<<r)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let r=new Array(this.size);for(let e=0,t=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(r[t++]=(e<<5)+popcnt(a-1)),s^=a}}return r}toString(){return`BitSet { ${this.toArray()} }`}};function Kr(i){return i!=0&&(i&i-1)==0}function ll(i,r){return ASC_TARGET?Math.pow(i,r):f64_pow(i,r)}var yt=(A=>(A[A.Null=0]="Null",A[A.LineFeed=10]="LineFeed",A[A.CarriageReturn=13]="CarriageReturn",A[A.LineSeparator=8232]="LineSeparator",A[A.ParagraphSeparator=8233]="ParagraphSeparator",A[A.NextLine=133]="NextLine",A[A.Space=32]="Space",A[A.NonBreakingSpace=160]="NonBreakingSpace",A[A.EnQuad=8192]="EnQuad",A[A.EmQuad=8193]="EmQuad",A[A.EnSpace=8194]="EnSpace",A[A.EmSpace=8195]="EmSpace",A[A.ThreePerEmSpace=8196]="ThreePerEmSpace",A[A.FourPerEmSpace=8197]="FourPerEmSpace",A[A.SixPerEmSpace=8198]="SixPerEmSpace",A[A.FigureSpace=8199]="FigureSpace",A[A.PunctuationSpace=8200]="PunctuationSpace",A[A.ThinSpace=8201]="ThinSpace",A[A.HairSpace=8202]="HairSpace",A[A.ZeroWidthSpace=8203]="ZeroWidthSpace",A[A.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",A[A.IdeographicSpace=12288]="IdeographicSpace",A[A.MathematicalSpace=8287]="MathematicalSpace",A[A.Ogham=5760]="Ogham",A[A._=95]="_",A[A._0=48]="_0",A[A._1=49]="_1",A[A._2=50]="_2",A[A._3=51]="_3",A[A._4=52]="_4",A[A._5=53]="_5",A[A._6=54]="_6",A[A._7=55]="_7",A[A._8=56]="_8",A[A._9=57]="_9",A[A.a=97]="a",A[A.b=98]="b",A[A.c=99]="c",A[A.d=100]="d",A[A.e=101]="e",A[A.f=102]="f",A[A.g=103]="g",A[A.h=104]="h",A[A.i=105]="i",A[A.j=106]="j",A[A.k=107]="k",A[A.l=108]="l",A[A.m=109]="m",A[A.n=110]="n",A[A.o=111]="o",A[A.p=112]="p",A[A.q=113]="q",A[A.r=114]="r",A[A.s=115]="s",A[A.t=116]="t",A[A.u=117]="u",A[A.v=118]="v",A[A.w=119]="w",A[A.x=120]="x",A[A.y=121]="y",A[A.z=122]="z",A[A.A=65]="A",A[A.B=66]="B",A[A.C=67]="C",A[A.D=68]="D",A[A.E=69]="E",A[A.F=70]="F",A[A.G=71]="G",A[A.H=72]="H",A[A.I=73]="I",A[A.J=74]="J",A[A.K=75]="K",A[A.L=76]="L",A[A.M=77]="M",A[A.N=78]="N",A[A.O=79]="O",A[A.P=80]="P",A[A.Q=81]="Q",A[A.R=82]="R",A[A.S=83]="S",A[A.T=84]="T",A[A.U=85]="U",A[A.V=86]="V",A[A.W=87]="W",A[A.X=88]="X",A[A.Y=89]="Y",A[A.Z=90]="Z",A[A.Ampersand=38]="Ampersand",A[A.Asterisk=42]="Asterisk",A[A.At=64]="At",A[A.Backslash=92]="Backslash",A[A.Backtick=96]="Backtick",A[A.Bar=124]="Bar",A[A.Caret=94]="Caret",A[A.CloseBrace=125]="CloseBrace",A[A.CloseBracket=93]="CloseBracket",A[A.CloseParen=41]="CloseParen",A[A.Colon=58]="Colon",A[A.Comma=44]="Comma",A[A.Dollar=36]="Dollar",A[A.Dot=46]="Dot",A[A.DoubleQuote=34]="DoubleQuote",A[A.Equals=61]="Equals",A[A.Exclamation=33]="Exclamation",A[A.GreaterThan=62]="GreaterThan",A[A.Hash=35]="Hash",A[A.LessThan=60]="LessThan",A[A.Minus=45]="Minus",A[A.OpenBrace=123]="OpenBrace",A[A.OpenBracket=91]="OpenBracket",A[A.OpenParen=40]="OpenParen",A[A.Percent=37]="Percent",A[A.Plus=43]="Plus",A[A.Question=63]="Question",A[A.Semicolon=59]="Semicolon",A[A.SingleQuote=39]="SingleQuote",A[A.Slash=47]="Slash",A[A.Tilde=126]="Tilde",A[A.Backspace=8]="Backspace",A[A.FormFeed=12]="FormFeed",A[A.ByteOrderMark=65279]="ByteOrderMark",A[A.Tab=9]="Tab",A[A.VerticalTab=11]="VerticalTab",A))(yt||{});function Ht(i){switch(i){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function rs(i){switch(i){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return i>=8192&&i<=8203}}var is=55296,Wi=56320;function W1(i){return(i&63488)==is}function K1(i){return i<Wi}function H1(i){return i>=Wi}function Ki(i){return(i&64512)==is}function ul(i){return(i&64512)==Wi}function ns(i,r){return 65536+((i&1023)<<10)|r&1023}function Hr(i){return 1+i32(i>65535)}function Up(i){let r=i|32;return r>=97&&r<=122}function gt(i){return i>=48&&i<=57}function cl(i){return i>=48&&i<=55}function ss(i){let r=i|32;return r>=97&&r<=102}function j1(i){return gt(i)||ss(i)}function Pb(i){return Up(i)||gt(i)}function Hi(i){return Up(i)||i==95||i==36||i>=X1&&i<=Z1&&Bb(i,Q1)}function ji(i){return Pb(i)||i==95||i==36||i>=Y1&&i<=J1&&Bb(i,$1)}function Ze(i){let r=i.length;if(!r)return!1;let e=i.codePointAt(0);if(!Hi(e))return!1;let t=Hr(e);for(;t<r;){if(e=i.codePointAt(t),!ji(e))return!1;t+=Hr(e)}return!0}var Q1=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],X1=170,Z1=210041,$1=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],Y1=170,J1=917999;function Bb(i,r){let e=0,t=r.length;for(;e+1<t;){let n=e+(t-e>>>1);n-=n&1;let s=r[n];if(s<=i&&i<=r[n+1])return!0;i<s?t=n:e=n+2}return!1}var Gp=" ",eE=" ",tE=" ",rE=" ",ol=new Map;function q(i,r){if(r<=4)switch(r){case 1:i.push(Gp);break;case 2:i.push(eE);break;case 3:i.push(tE);break;case 4:i.push(rE);break}else{let e;ol.size<=1024?ol.has(r)?e=assert(ol.get(r)):ol.set(r,e=Gp.repeat(r)):e=Gp.repeat(r),i.push(e)}}function Re(i,r){let e=new Array,t=0,n=0;for(let s=i.length;n<s;)switch(i.charCodeAt(n)){case 0:{n>t&&e.push(i.substring(t,t=n+1)),e.push("\\0"),t=++n;break}case 8:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\b");break}case 9:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\t");break}case 10:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\n");break}case 11:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\v");break}case 12:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\f");break}case 13:{n>t&&e.push(i.substring(t,n)),e.push("\\r"),t=++n;break}case 34:{r==34?(n>t&&e.push(i.substring(t,n)),e.push('\\"'),t=++n):++n;break}case 39:{r==39?(n>t&&e.push(i.substring(t,n)),e.push("\\'"),t=++n):++n;break}case 92:{n>t&&e.push(i.substring(t,n)),e.push("\\\\"),t=++n;break}case 96:{r==96?(n>t&&e.push(i.substring(t,n)),e.push("\\`"),t=++n):++n;break}default:{++n;break}}return n>t&&e.push(i.substring(t,n)),e.join("")}var jr=47;function Qr(i){let r=0,e=i.length;for(;r+1<e&&i.charCodeAt(r)==46&&i.charCodeAt(r+1)==jr;)r+=2;(r>0||e<i.length)&&(i=i.substring(r,e),e-=r,r=0);let t;for(;r+1<e;){if(t=!1,i.charCodeAt(r)==jr&&i.charCodeAt(r+1)==46){if(t=r+2==e,t||r+2<e&&i.charCodeAt(r+2)==jr){i=t?i.substring(0,r):i.substring(0,r)+i.substring(r+2),e-=2;continue}if(t=r+3==e,t&&i.charCodeAt(r+2)==46||r+3<e&&i.charCodeAt(r+2)==46&&i.charCodeAt(r+3)==jr){let n=r;for(;--n>=0;)if(i.charCodeAt(n)==jr){(r-n!=3||i.charCodeAt(n+1)!=46||i.charCodeAt(n+2)!=46)&&(i=t?i.substring(0,n):i.substring(0,n)+i.substring(r+3),e-=r+3-n,r=n-1);break}if(n<0&&r>0&&(r!=2||i.charCodeAt(0)!=46||i.charCodeAt(1)!=46)){i=i.substring(r+4),e=i.length;continue}}}r++}return e>0?i:"."}function pl(i,r){return i.startsWith("std/")?i:Qr(Nb(r)+mt+i)}function Nb(i){let r=i.length;if(r<=1){if(r==0)return".";if(i.charCodeAt(0)==jr)return i}for(;--r>0;)if(i.charCodeAt(r)==jr)return i.substring(0,r);return"."}var iE="\x1B[90m",_l="\x1B[91m",nE="\x1B[92m",Vp="\x1B[93m",sE="\x1B[94m",Op="\x1B[95m",qp="\x1B[96m",aE="\x1B[97m",as="\x1B[0m",fl=!0;function Qi(){return fl}function dl(i){let r=fl;return fl=i,r}function lE(i,r){return fl?r+i+as:i}var Wp=new Uint8Array(16),Kp=new Uint8Array(16).fill(255);var ls=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(ls||{}),ue=class i{constructor(r,e){this.start=r;this.end=e}static join(r,e){if(r.source!=e.source)throw new Error("source mismatch");let t=new i(r.start<e.start?r.start:e.start,r.end>e.end?r.end:e.end);return t.source=r.source,t}equals(r){return this.source==r.source&&this.start==r.start&&this.end==r.end}get atStart(){let r=new i(this.start,this.start);return r.source=this.source,r}get atEnd(){let r=new i(this.end,this.end);return r.source=this.source,r}toString(){return this.source.text.substring(this.start,this.end)}};function jp(i){switch(i){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function Mb(i){switch(i){case 0:return Op;case 1:return qp;case 2:return Vp;case 3:return _l;default:return assert(!1),""}}var hl=class i{constructor(r,e,t){this.range=null;this.relatedRange=null;this.code=r,this.category=e,this.message=t}static create(r,e,t=null,n=null,s=null){let a=sl(r);return t!=null&&(a=a.replace("{0}",t)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new i(r,e,a)}equals(r){if(this.code!=r.code)return!1;let e=this.range,t=r.range;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;let n=this.relatedRange,s=r.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==r.message}withRange(r){return this.range=r,this}withRelatedRange(r){return this.relatedRange=r,this}toString(){let r=jp(this.category),e=this.range,t=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${r} ${t}: "${n}" in ${a}(${l},${o}+${u})`}return`${r} ${t}: ${n}`}};function zb(i,r=!1,e=!1){let t=dl(r),n=[];Qi()&&n.push(Mb(i.category)),n.push(jp(i.category)),Qi()&&n.push(as),n.push(i.code<1e3?" AS":" TS"),n.push(i.code.toString()),n.push(": "),n.push(i.message);let s=i.range;if(s){let a=s.source,l=i.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
10
10
  `),n.push(Lb(s,o))):(n.push(`
11
11
  in `),n.push(a.normalizedPath)),n.push("("),n.push(a.lineAt(s.start).toString()),n.push(","),n.push(a.columnAt().toString()),n.push(")"),l){let u=l.source;e?(n.push(`
12
12
  `),n.push(Lb(l,o))):(n.push(`
@@ -14,67 +14,67 @@ var Bu=Object.defineProperty;var W_=Object.getOwnPropertyDescriptor;var v1=Objec
14
14
  `," ".repeat(o-l.length),l," \u2502 ",t.substring(s,a).replaceAll(" "," "),`
15
15
  `,u," \u2502 "];for(;s<i.start;)t.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(Qi()&&c.push(_l),i.start==i.end)c.push("^");else for(;s++<i.end;){let f=t.charCodeAt(s);if(f==9)c.push("~~");else if(Ht(f)){c.push(s==i.start+1?"^":"~");break}else c.push("~")}return Qi()&&c.push(as),c.push(`
16
16
  `),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var tt=class{constructor(r=null){this.seen=new Map;r||(r=[]),this.diagnostics=r}emitDiagnostic(r,e,t,n,s=null,a=null,l=null){let o=hl.create(r,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 c=assert(u.get(t.source));if(c.has(t.start)){let f=assert(c.get(t.start));for(let _=0,d=f.length;_<d;++_)if(f[_].equals(o))return;f.push(o)}else c.set(t.start,[o])}else{let c=new Map;c.set(t.start,[o]),u.set(t.source,c)}}this.diagnostics.push(o)}pedantic(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,0,e,null,t,n,s)}pedanticRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,0,e,t,n,s,a)}info(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,1,e,null,t,n,s)}infoRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,1,e,t,n,s,a)}warning(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,2,e,null,t,n,s)}warningRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,2,e,t,n,s,a)}error(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,3,e,null,t,n,s)}errorRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,3,e,t,n,s,a)}};var bt=(A=>(A[A.Abstract=0]="Abstract",A[A.As=1]="As",A[A.Async=2]="Async",A[A.Await=3]="Await",A[A.Break=4]="Break",A[A.Case=5]="Case",A[A.Catch=6]="Catch",A[A.Class=7]="Class",A[A.Const=8]="Const",A[A.Continue=9]="Continue",A[A.Constructor=10]="Constructor",A[A.Debugger=11]="Debugger",A[A.Declare=12]="Declare",A[A.Default=13]="Default",A[A.Delete=14]="Delete",A[A.Do=15]="Do",A[A.Else=16]="Else",A[A.Enum=17]="Enum",A[A.Export=18]="Export",A[A.Extends=19]="Extends",A[A.False=20]="False",A[A.Finally=21]="Finally",A[A.For=22]="For",A[A.From=23]="From",A[A.Function=24]="Function",A[A.Get=25]="Get",A[A.If=26]="If",A[A.Implements=27]="Implements",A[A.Import=28]="Import",A[A.In=29]="In",A[A.InstanceOf=30]="InstanceOf",A[A.Interface=31]="Interface",A[A.Is=32]="Is",A[A.KeyOf=33]="KeyOf",A[A.Let=34]="Let",A[A.Module=35]="Module",A[A.Namespace=36]="Namespace",A[A.New=37]="New",A[A.Null=38]="Null",A[A.Of=39]="Of",A[A.Override=40]="Override",A[A.Package=41]="Package",A[A.Private=42]="Private",A[A.Protected=43]="Protected",A[A.Public=44]="Public",A[A.Readonly=45]="Readonly",A[A.Return=46]="Return",A[A.Set=47]="Set",A[A.Static=48]="Static",A[A.Struct=49]="Struct",A[A.Super=50]="Super",A[A.Switch=51]="Switch",A[A.This=52]="This",A[A.Throw=53]="Throw",A[A.True=54]="True",A[A.Try=55]="Try",A[A.Type=56]="Type",A[A.TypeOf=57]="TypeOf",A[A.Var=58]="Var",A[A.Void=59]="Void",A[A.While=60]="While",A[A.With=61]="With",A[A.Yield=62]="Yield",A[A.OpenBrace=63]="OpenBrace",A[A.CloseBrace=64]="CloseBrace",A[A.OpenParen=65]="OpenParen",A[A.CloseParen=66]="CloseParen",A[A.OpenBracket=67]="OpenBracket",A[A.CloseBracket=68]="CloseBracket",A[A.Dot=69]="Dot",A[A.Dot_Dot_Dot=70]="Dot_Dot_Dot",A[A.Semicolon=71]="Semicolon",A[A.Comma=72]="Comma",A[A.LessThan=73]="LessThan",A[A.GreaterThan=74]="GreaterThan",A[A.LessThan_Equals=75]="LessThan_Equals",A[A.GreaterThan_Equals=76]="GreaterThan_Equals",A[A.Equals_Equals=77]="Equals_Equals",A[A.Exclamation_Equals=78]="Exclamation_Equals",A[A.Equals_Equals_Equals=79]="Equals_Equals_Equals",A[A.Exclamation_Equals_Equals=80]="Exclamation_Equals_Equals",A[A.Equals_GreaterThan=81]="Equals_GreaterThan",A[A.Plus=82]="Plus",A[A.Minus=83]="Minus",A[A.Asterisk_Asterisk=84]="Asterisk_Asterisk",A[A.Asterisk=85]="Asterisk",A[A.Slash=86]="Slash",A[A.Percent=87]="Percent",A[A.Plus_Plus=88]="Plus_Plus",A[A.Minus_Minus=89]="Minus_Minus",A[A.LessThan_LessThan=90]="LessThan_LessThan",A[A.GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan",A[A.GreaterThan_GreaterThan_GreaterThan=92]="GreaterThan_GreaterThan_GreaterThan",A[A.Ampersand=93]="Ampersand",A[A.Bar=94]="Bar",A[A.Caret=95]="Caret",A[A.Exclamation=96]="Exclamation",A[A.Tilde=97]="Tilde",A[A.Ampersand_Ampersand=98]="Ampersand_Ampersand",A[A.Bar_Bar=99]="Bar_Bar",A[A.Question=100]="Question",A[A.Colon=101]="Colon",A[A.Equals=102]="Equals",A[A.Plus_Equals=103]="Plus_Equals",A[A.Minus_Equals=104]="Minus_Equals",A[A.Asterisk_Equals=105]="Asterisk_Equals",A[A.Asterisk_Asterisk_Equals=106]="Asterisk_Asterisk_Equals",A[A.Slash_Equals=107]="Slash_Equals",A[A.Percent_Equals=108]="Percent_Equals",A[A.LessThan_LessThan_Equals=109]="LessThan_LessThan_Equals",A[A.GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_Equals",A[A.GreaterThan_GreaterThan_GreaterThan_Equals=111]="GreaterThan_GreaterThan_GreaterThan_Equals",A[A.Ampersand_Equals=112]="Ampersand_Equals",A[A.Bar_Equals=113]="Bar_Equals",A[A.Caret_Equals=114]="Caret_Equals",A[A.At=115]="At",A[A.Identifier=116]="Identifier",A[A.StringLiteral=117]="StringLiteral",A[A.IntegerLiteral=118]="IntegerLiteral",A[A.FloatLiteral=119]="FloatLiteral",A[A.TemplateLiteral=120]="TemplateLiteral",A[A.Invalid=121]="Invalid",A[A.EndOfFile=122]="EndOfFile",A))(bt||{}),Xp=(t=>(t[t.Default=0]="Default",t[t.Prefer=1]="Prefer",t[t.Always=2]="Always",t))(Xp||{});function Db(i){let r=i.length;switch(assert(r),i.charCodeAt(0)){case 97:{if(r==5){if(i=="async")return 2;if(i=="await")return 3;break}if(i=="as")return 1;if(i=="abstract")return 0;break}case 98:{if(i=="break")return 4;break}case 99:{if(r==5){if(i=="const")return 8;if(i=="class")return 7;if(i=="catch")return 6;break}if(i=="case")return 5;if(i=="continue")return 9;if(i=="constructor")return 10;break}case 100:{if(r==7){if(i=="default")return 13;if(i=="declare")return 12;break}if(i=="do")return 15;if(i=="delete")return 14;if(i=="debugger")return 11;break}case 101:{if(r==4){if(i=="else")return 16;if(i=="enum")return 17;break}if(i=="export")return 18;if(i=="extends")return 19;break}case 102:{if(r<=5){if(i=="false")return 20;if(i=="for")return 22;if(i=="from")return 23;break}if(i=="function")return 24;if(i=="finally")return 21;break}case 103:{if(i=="get")return 25;break}case 105:{if(r==2){if(i=="if")return 26;if(i=="in")return 29;if(i=="is")return 32;break}switch(i.charCodeAt(3)){case 108:{if(i=="implements")return 27;break}case 111:{if(i=="import")return 28;break}case 116:{if(i=="instanceof")return 30;break}case 101:{if(i=="interface")return 31;break}}break}case 107:{if(i=="keyof")return 33;break}case 108:{if(i=="let")return 34;break}case 109:{if(i=="module")return 35;break}case 110:{if(i=="new")return 37;if(i=="null")return 38;if(i=="namespace")return 36;break}case 111:{if(i=="of")return 39;if(i=="override")return 40;break}case 112:{if(r==7){if(i=="private")return 42;if(i=="package")return 41;break}if(i=="public")return 44;if(i=="protected")return 43;break}case 114:{if(i=="return")return 46;if(i=="readonly")return 45;break}case 115:{if(r==6){if(i=="switch")return 51;if(i=="static")return 48;if(i=="struct")return 49;break}if(i=="set")return 47;if(i=="super")return 50;break}case 116:{if(r==4){if(i=="true")return 54;if(i=="this")return 52;if(i=="type")return 56;break}if(i=="try")return 55;if(i=="throw")return 53;if(i=="typeof")return 57;break}case 118:{if(i=="var")return 58;if(i=="void")return 59;break}case 119:{if(i=="while")return 60;if(i=="with")return 61;break}case 121:{if(i=="yield")return 62;break}}return 121}function Gb(i){switch(i){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 56:case 59:return!0;default:return!1}}function Zp(i){switch(assert(i.length),i.charCodeAt(0)){case 100:return i=="delete";case 102:return i=="for";case 105:return i=="instanceof";case 110:return i=="null";case 118:return i=="void"}return!1}function Le(i){switch(i){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 57:return"typeof";case 59:return"void";case 62:return"yield";case 70: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 80: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 99: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"|=";case 114:return"^=";default:return assert(!1),""}}var os=class extends tt{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==121);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,80):(this.pos=a,78)):(this.pos=a,96);case 34:case 39:return this.pos=a,117;case 96:return this.pos=a,120;case 37:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,87);case 38:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 40:return this.pos=a+1,65;case 41:return this.pos=a+1,66;case 42:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,105;if(o==42)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,106):(this.pos=a,84)}return this.pos=a,85}case 43:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 44:return this.pos=a+1,72;case 45:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,89;if(o==61)return this.pos=a+1,104}return this.pos=a,83}case 46:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(gt(o))return this.pos=a-1,119;if(t>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,70}return this.pos=a,69}case 47:{let o=a;if(++a,t>1&&a<s){let u=n.charCodeAt(a);if(u==47){let c=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,c=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(c,n.substring(o,a),this.range(o,a));break}if(u==42){let c=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,c=!0;break}c?this.onComment&&this.onComment(2,n.substring(o,a),this.range(o,a)):this.error(1005,this.range(a),"*/");break}if(u==61)return this.pos=a+1,107}return this.pos=a,86}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()?118:119;case 58:return this.pos=a+1,101;case 59:return this.pos=a+1,71;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,109):(this.pos=a,90);if(o==61)return this.pos=a+1,75}return this.pos=a,73}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,79):(this.pos=a,77);if(o==62)return this.pos=a+1,81}return this.pos=a,102}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,111):(this.pos=a,92);if(o==61)return this.pos=a+1,110}return this.pos=a,91}if(o==61)return this.pos=a+1,76}return this.pos=a,74}case 63:return this.pos=a+1,100;case 91:return this.pos=a+1,67;case 93:return this.pos=a+1,68;case 94:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,114):(this.pos=a,95);case 123:return this.pos=a+1,63;case 124:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,99;if(o==61)return this.pos=a+1,113}return this.pos=a,94}case 125:return this.pos=a+1,64;case 126:return this.pos=a+1,97;case 64:return this.pos=a+1,115;default:{if(Ki(l)&&a+1<s&&(l=ns(l,n.charCodeAt(a+1))),Hi(l)){let u=a;for(;(a+=Hr(l))<s&&ji(l=n.codePointAt(a)););if(e!=2){let c=Db(n.substring(u,a));if(c!=121&&!(e==1&&Gb(c)))return this.pos=a,c}return this.pos=u,116}else if(rs(l)){++a;break}let o=a;return a+=Hr(l),this.error(1127,this.range(o,a)),this.pos=a,121}}}return this.pos=a,122}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==121);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(Ht(e.charCodeAt(t)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(116,e)}skip(e,t=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==74&&(l=1);let o;do o=this.unsafeNext(t,l);while(o==121);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=Qp;return e?(Qp=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new ml(this.pos,this.token,this.tokenPos),e}discard(e){Qp=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 ue(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(Hi(a));(n+=Hr(a))<t&&ji(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(Ht(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&&gt(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(Ht(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(!ji(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(cl(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,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(gt(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(ss(f))u=i64_add(i64_shl(l,o),i64_new((f|32)+-87));else if(f==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),c&&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,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(gt(f))u=i64_add(i64_mul(l,o),i64_new(f-48));else if(f==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)&&(c=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):c&&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,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(cl(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(f==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):c&&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 c=e.charCodeAt(t);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==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&&gt(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(!gt(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(gt(o))n=(n<<4)+o-48;else if(ss(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&&Hi(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)}},ml=class{constructor(r,e,t){this.pos=r;this.token=e;this.tokenPos=t}},Qp=null;var $e=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.FixedArrayType=4]="FixedArrayType",V[V.TypeName=5]="TypeName",V[V.TypeParameter=6]="TypeParameter",V[V.Parameter=7]="Parameter",V[V.Identifier=8]="Identifier",V[V.Assertion=9]="Assertion",V[V.Binary=10]="Binary",V[V.Call=11]="Call",V[V.Class=12]="Class",V[V.Comma=13]="Comma",V[V.ElementAccess=14]="ElementAccess",V[V.False=15]="False",V[V.Function=16]="Function",V[V.InstanceOf=17]="InstanceOf",V[V.Literal=18]="Literal",V[V.New=19]="New",V[V.Null=20]="Null",V[V.Omitted=21]="Omitted",V[V.Parenthesized=22]="Parenthesized",V[V.PropertyAccess=23]="PropertyAccess",V[V.Ternary=24]="Ternary",V[V.Super=25]="Super",V[V.This=26]="This",V[V.True=27]="True",V[V.Constructor=28]="Constructor",V[V.UnaryPostfix=29]="UnaryPostfix",V[V.UnaryPrefix=30]="UnaryPrefix",V[V.Await=31]="Await",V[V.Lazy=32]="Lazy",V[V.Compiled=33]="Compiled",V[V.Block=34]="Block",V[V.Break=35]="Break",V[V.Continue=36]="Continue",V[V.Do=37]="Do",V[V.Empty=38]="Empty",V[V.Export=39]="Export",V[V.ExportDefault=40]="ExportDefault",V[V.ExportImport=41]="ExportImport",V[V.Expression=42]="Expression",V[V.For=43]="For",V[V.ForOf=44]="ForOf",V[V.If=45]="If",V[V.Import=46]="Import",V[V.Return=47]="Return",V[V.Switch=48]="Switch",V[V.Throw=49]="Throw",V[V.Try=50]="Try",V[V.Variable=51]="Variable",V[V.Void=52]="Void",V[V.While=53]="While",V[V.Module=54]="Module",V[V.ClassDeclaration=55]="ClassDeclaration",V[V.EnumDeclaration=56]="EnumDeclaration",V[V.EnumValueDeclaration=57]="EnumValueDeclaration",V[V.FieldDeclaration=58]="FieldDeclaration",V[V.FunctionDeclaration=59]="FunctionDeclaration",V[V.ImportDeclaration=60]="ImportDeclaration",V[V.InterfaceDeclaration=61]="InterfaceDeclaration",V[V.MethodDeclaration=62]="MethodDeclaration",V[V.NamespaceDeclaration=63]="NamespaceDeclaration",V[V.TypeDeclaration=64]="TypeDeclaration",V[V.VariableDeclaration=65]="VariableDeclaration",V[V.Decorator=66]="Decorator",V[V.ExportMember=67]="ExportMember",V[V.SwitchCase=68]="SwitchCase",V[V.IndexSignature=69]="IndexSignature",V[V.Comment=70]="Comment",V))($e||{}),h=class i{constructor(r,e){this.kind=r;this.range=e}static createSimpleTypeName(r,e){return new Xi(i.createIdentifierExpression(r,e),null,e)}static createNamedType(r,e,t,n){return new Zr(r,e,t,n)}static createFunctionType(r,e,t,n,s){return new $r(r,e,t,n,s)}static createTupleType(r,e,t,n){return new yl(r,e,t,n)}static createFixedArrayType(r,e,t){return new gl(r,e,t)}static createOmittedType(r){return new Zr(i.createSimpleTypeName("",r),null,!1,r)}static createTypeParameter(r,e,t,n){return new bl(r,e,t,n)}static createParameter(r,e,t,n,s){return new Zi(r,e,t,n,s)}static createDecorator(r,e,t){return new xl(Rt.fromNode(r),r,e,t)}static createComment(r,e,t){return new El(r,e,t)}static createIdentifierExpression(r,e,t=!1){return new rt(r,t,e)}static createEmptyIdentifierExpression(r){return new rt("",!1,r)}static createArrayLiteralExpression(r,e){return new Yr(r,e)}static createAssertionExpression(r,e,t,n){return new Al(r,e,t,n)}static createBinaryExpression(r,e,t,n){return new Tl(r,e,t,n)}static createCallExpression(r,e,t,n){return new Sl(r,e,t,n)}static createClassExpression(r){return new vl(r)}static createCommaExpression(r,e){return new Il(r,e)}static createConstructorExpression(r){return new kl(r)}static createElementAccessExpression(r,e,t){return new Fl(r,e,t)}static createFalseExpression(r){return new Hl(r)}static createFloatLiteralExpression(r,e){return new wl(r,e)}static createFunctionExpression(r){return new Rl(r)}static createInstanceOfExpression(r,e,t){return new Cl(r,e,t)}static createIntegerLiteralExpression(r,e){return new Pl(r,e)}static createNewExpression(r,e,t,n){return new Bl(r,e,t,n)}static createNullExpression(r){return new Nl(r)}static createObjectLiteralExpression(r,e,t){return new Ll(r,e,t)}static createOmittedExpression(r){return new Ml(r)}static createParenthesizedExpression(r,e){return new zl(r,e)}static createPropertyAccessExpression(r,e,t){return new Dl(r,e,t)}static createRegexpLiteralExpression(r,e,t){return new Gl(r,e,t)}static createTernaryExpression(r,e,t,n){return new Ul(r,e,t,n)}static createStringLiteralExpression(r,e){return new Vl(r,e)}static createSuperExpression(r){return new Ol(r)}static createTemplateLiteralExpression(r,e,t,n,s){return new ql(r,e,t,n,s)}static createThisExpression(r){return new Wl(r)}static createTrueExpression(r){return new Kl(r)}static createUnaryPostfixExpression(r,e,t){return new jl(r,e,t)}static createUnaryPrefixExpression(r,e,t){return new Ql(r,e,t)}static createAwaitExpression(r,e){return new Xl(r,e)}static createLazyExpression(r,e){return new Zl(r,e)}static createCompiledExpression(r,e,t){return new $l(r,e,t)}static createBlockStatement(r,e){return new Jl(r,e)}static createBreakStatement(r,e){return new eo(r,e)}static createClassDeclaration(r,e,t,n,s,a,l,o){return new cs(r,e,t,n,s,a,l,o)}static createContinueStatement(r,e){return new to(r,e)}static createDoStatement(r,e,t){return new ro(r,e,t)}static createEmptyStatement(r){return new io(r)}static createEnumDeclaration(r,e,t,n,s,a){return new no(r,e,t,n,s,a)}static createEnumValueDeclaration(r,e,t,n){return new so(r,e,t,n)}static createExportStatement(r,e,t,n){return new oo(r,e,t,n)}static createExportDefaultStatement(r,e){return new uo(r,e)}static createExportImportStatement(r,e,t){return new ao(r,e,t)}static createExportMember(r,e,t){return e||(e=r),new lo(r,e,t)}static createExpressionStatement(r){return new co(r)}static createIfStatement(r,e,t,n){return new ho(r,e,t,n)}static createImportStatement(r,e,t){return new fs(r,null,e,t)}static createWildcardImportStatement(r,e,t){return new fs(null,r,e,t)}static createImportDeclaration(r,e,t){return e||(e=r),new mo(e,r,t)}static createInterfaceDeclaration(r,e,t,n,s,a,l,o){return new yo(r,e,t,n,s,a,l,o)}static createFieldDeclaration(r,e,t,n,s,a){return new po(r,e,t,n,s,-1,a)}static createForStatement(r,e,t,n,s){return new fo(r,e,t,n,s)}static createForOfStatement(r,e,t,n){return new _o(r,e,t,n)}static createFunctionDeclaration(r,e,t,n,s,a,l,o,u=!1){return new ps(r,e,t,n,s,a,l,o,u)}static createIndexSignature(r,e,t,n){return new Yl(r,e,t,n)}static createMethodDeclaration(r,e,t,n,s,a,l,o=!1){return new Jr(r,e,t,n,s,a,l,o)}static createNamespaceDeclaration(r,e,t,n,s){return new go(r,e,t,n,s)}static createReturnStatement(r,e){return new bo(r,e)}static createSwitchStatement(r,e,t){return new Eo(r,e,t)}static createSwitchCase(r,e,t){return new xo(r,e,t)}static createThrowStatement(r,e){return new Ao(r,e)}static createTryStatement(r,e,t,n,s){return new To(r,e,t,n,s)}static createTypeDeclaration(r,e,t,n,s,a){return new vo(r,e,t,n,s,a)}static createModuleDeclaration(r,e,t){return new So(r,e,t)}static createVariableStatement(r,e,t){return new ko(r,e,t)}static createVariableDeclaration(r,e,t,n,s,a){return new Io(r,e,t,n,s,a)}static createVoidStatement(r,e){return new Fo(r,e)}static createWhileStatement(r,e,t){return new wo(r,e,t)}isLiteralKind(r){return this.kind==18&&changetype(this).literalKind==r}get isNumericLiteral(){if(this.kind==18)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 18:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 20:case 27:case 15:return!0}return!1}get evaluatesToConst(){switch(this.kind){case 9:return changetype(this).expression.evaluatesToConst;case 30:{let r=changetype(this),e=r.operator;if(e==82||e==83)return r.operand.evaluatesToConst;break}}return this.compilesToConst}isAccessOn(r){let e=changetype(this);return e.kind==11&&(e=e.expression),e.kind==23&&e.expression.kind==r}get isAccessOnThis(){return this.isAccessOn(26)}get isAccessOnSuper(){return this.isAccessOn(25)}get isEmpty(){return this.kind==38}},Xr=class extends h{constructor(e,t,n){super(e,n);this.isNullable=t;this.currentlyResolving=!1;this.memoryModel=0;this.attributes=null}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}},Xi=class extends h{constructor(e,t,n){super(5,n);this.identifier=e;this.next=t}},Zr=class extends Xr{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"}},$r=class extends Xr{constructor(e,t,n,s,a){super(2,s,a);this.parameters=e;this.returnType=t;this.explicitThisType=n}},yl=class extends Xr{constructor(e,t,n,s){super(3,n,s);this.elements=e;this.elementNames=t}},gl=class extends Xr{constructor(e,t,n){super(4,!1,n);this.elementType=e;this.length=t}},bl=class extends h{constructor(e,t,n,s){super(6,s);this.name=e;this.extendsType=t;this.defaultType=n}},jt=(t=>(t[t.Default=0]="Default",t[t.Optional=1]="Optional",t[t.Rest=2]="Rest",t))(jt||{}),Zi=class extends h{constructor(e,t,n,s,a){super(7,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}},_s=(n=>(n[n.Any=0]="Any",n[n.Inline=1]="Inline",n[n.Managed=2]="Managed",n[n.Unmanaged=3]="Unmanaged",n))(_s||{}),Rt=(y=>(y[y.Custom=0]="Custom",y[y.Global=1]="Global",y[y.Operator=2]="Operator",y[y.OperatorBinary=3]="OperatorBinary",y[y.OperatorPrefix=4]="OperatorPrefix",y[y.OperatorPostfix=5]="OperatorPostfix",y[y.Unmanaged=6]="Unmanaged",y[y.Managed=7]="Managed",y[y.Final=8]="Final",y[y.Inline=9]="Inline",y[y.External=10]="External",y[y.ExternalJs=11]="ExternalJs",y[y.Builtin=12]="Builtin",y[y.Lazy=13]="Lazy",y[y.Unsafe=14]="Unsafe",y))(Rt||{});(r=>{function i(e){if(e.kind==8){let t=e.text;switch(assert(t.length),t.charCodeAt(0)){case 98:{if(t=="builtin")return 12;break}case 101:{if(t=="external")return 10;break}case 102:{if(t=="final")return 8;break}case 103:{if(t=="global")return 1;break}case 105:{if(t=="inline")return 9;break}case 108:{if(t=="lazy")return 13;break}case 109:{if(t=="managed")return 7;break}case 111:{if(t=="operator")return 2;break}case 117:{if(t=="unmanaged")return 6;if(t=="unsafe")return 14;break}}}else if(e.kind==23){let t=e,n=t.expression;if(n.kind==8){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 11;break}}}}return 0}r.fromNode=i})(Rt||={});var xl=class extends h{constructor(e,t,n,s){super(66,s);this.decoratorKind=e;this.name=t;this.args=n}},$p=(t=>(t[t.Line=0]="Line",t[t.Triple=1]="Triple",t[t.Block=2]="Block",t))($p||{}),El=class extends h{constructor(e,t,n){super(70,n);this.commentKind=e;this.text=t}},xe=class extends h{},rt=class extends xe{constructor(e,t,n){super(8,n);this.text=e;this.isQuoted=t}},pt=(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))(pt||{}),wt=class extends xe{constructor(e,t){super(18,t);this.literalKind=e}},Yr=class extends wt{constructor(e,t){super(5,t);this.elementExpressions=e}},Qt=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Qt||{}),Al=class extends xe{constructor(e,t,n,s){super(9,s);this.assertionKind=e;this.expression=t;this.toType=n}},Tl=class extends xe{constructor(e,t,n,s){super(10,s);this.operator=e;this.left=t;this.right=n}},Sl=class extends xe{constructor(e,t,n,s){super(11,s);this.expression=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)?ue.join(e[0].range,e[t-1].range):this.expression.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.expression.range}},vl=class extends xe{constructor(e){super(12,e.range);this.declaration=e}},Il=class extends xe{constructor(e,t){super(13,t);this.expressions=e}},kl=class extends rt{constructor(r){super("constructor",!1,r),this.kind=28}},Fl=class extends xe{constructor(e,t,n){super(14,n);this.expression=e;this.elementExpression=t}},wl=class extends wt{constructor(e,t){super(0,t);this.value=e}},Rl=class extends xe{constructor(e){super(16,e.range);this.declaration=e}},Cl=class extends xe{constructor(e,t,n){super(17,n);this.expression=e;this.isType=t}},Pl=class extends wt{constructor(e,t){super(1,t);this.value=e}},Bl=class extends xe{constructor(e,t,n,s){super(19,s);this.typeName=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)>0?ue.join(e[0].range,e[t-1].range):this.typeName.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.typeName.range}},Nl=class extends rt{constructor(r){super("null",!1,r),this.kind=20}},Ll=class extends wt{constructor(e,t,n){super(6,n);this.names=e;this.values=t}},Ml=class extends xe{constructor(r){super(21,r)}},zl=class extends xe{constructor(e,t){super(22,t);this.expression=e}},Dl=class extends xe{constructor(e,t,n){super(23,n);this.expression=e;this.property=t}},Gl=class extends wt{constructor(e,t,n){super(4,n);this.pattern=e;this.patternFlags=t}},Ul=class extends xe{constructor(e,t,n,s){super(24,s);this.condition=e;this.ifThen=t;this.ifElse=n}},Vl=class extends wt{constructor(e,t){super(2,t);this.value=e}},Ol=class extends rt{constructor(r){super("super",!1,r),this.kind=25}},ql=class extends wt{constructor(e,t,n,s,a){super(3,a);this.tag=e;this.parts=t;this.rawParts=n;this.expressions=s}},Wl=class extends rt{constructor(r){super("this",!1,r),this.kind=26}},Kl=class extends rt{constructor(r){super("true",!1,r),this.kind=27}},Hl=class extends rt{constructor(r){super("false",!1,r),this.kind=15}},us=class extends xe{constructor(e,t,n,s){super(e,s);this.operator=t;this.operand=n}},jl=class extends us{constructor(r,e,t){super(29,r,e,t)}},Ql=class extends us{constructor(r,e,t){super(30,r,e,t)}},Xl=class extends xe{constructor(e,t){super(31,t);this.operand=e}},Zl=class extends xe{constructor(e,t){super(32,t);this.expression=e}},$l=class extends xe{constructor(e,t,n){super(33,n);this.expr=e;this.type=t}},me=class extends h{},Yi=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Yi||{}),Te=class i extends h{constructor(e,t,n){super(0,new ue(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=ds(t);this.internalPath=s;let a=s.lastIndexOf(mt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=i._native;return e||(i._native=e=new i(3,Ft+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==i._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}},it=class extends me{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}},Yl=class extends h{constructor(e,t,n,s){super(69,s);this.keyType=e;this.valueType=t;this.flags=n}},$i=class extends it{constructor(e,t,n,s,a,l,o){super(e,t,n,s,o);this.type=a;this.initializer=l}},Jl=class extends me{constructor(e,t){super(34,t);this.statements=e}},eo=class extends me{constructor(e,t){super(35,t);this.label=e}},cs=class extends it{constructor(e,t,n,s,a,l,o,u){super(55,e,t,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null;this.declaredAsStruct=!1;this.declaredAsManagedStruct=!1}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},to=class extends me{constructor(e,t){super(36,t);this.label=e}},ro=class extends me{constructor(e,t,n){super(37,n);this.body=e;this.condition=t}},io=class extends me{constructor(r){super(38,r)}},no=class extends it{constructor(e,t,n,s,a,l){super(56,e,t,n,l);this.values=s;this.underlyingTypeNode=a}},so=class extends $i{constructor(r,e,t,n){super(57,r,null,e,null,t,n)}},ao=class extends me{constructor(e,t,n){super(41,n);this.name=e;this.externalName=t}},lo=class extends h{constructor(e,t,n){super(67,n);this.localName=e;this.exportedName=t}},oo=class extends me{constructor(e,t,n,s){super(39,s);this.members=e;this.path=t;this.isDeclare=n;if(t){let a=Qr(t.value);t.value.startsWith(".")?a=pl(a,s.source.internalPath):a.startsWith(Ft)||(a=Ft+a),this.internalPath=a}else this.internalPath=null}},uo=class extends me{constructor(e,t){super(40,t);this.declaration=e}},co=class extends me{constructor(e){super(42,e.range);this.expression=e}},po=class extends $i{constructor(e,t,n,s,a,l,o){super(58,e,t,n,s,a,o);this.parameterIndex=l}},fo=class extends me{constructor(e,t,n,s,a){super(43,a);this.initializer=e;this.condition=t;this.incrementor=n;this.body=s}},_o=class extends me{constructor(e,t,n,s){super(44,s);this.variable=e;this.iterable=t;this.body=n}},Xt=(t=>(t[t.None=0]="None",t[t.Parenthesized=1]="Parenthesized",t[t.Single=2]="Single",t))(Xt||{}),ps=class i extends it{constructor(e,t,n,s,a,l,o,u,c=!1){super(59,e,t,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o;this.isAsync=c}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new i(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range,this.isAsync)}},ho=class extends me{constructor(e,t,n,s){super(45,s);this.condition=e;this.ifTrue=t;this.ifFalse=n}},mo=class extends it{constructor(e,t,n){super(60,e,null,0,n);this.foreignName=t}},fs=class extends me{constructor(e,t,n,s){super(46,s);this.declarations=e;this.namespaceName=t;this.path=n;let a=Qr(n.value);n.value.startsWith(".")?a=pl(a,s.source.internalPath):a.startsWith(Ft)||(a=Ft+a),this.internalPath=ds(a)}},yo=class extends cs{constructor(r,e,t,n,s,a,l,o){super(r,e,t,n,s,a,l,o),this.kind=61}},Jr=class extends ps{constructor(r,e,t,n,s,a,l,o=!1){super(r,e,t,n,s,a,0,l,o),this.kind=62}},go=class extends it{constructor(e,t,n,s,a){super(63,e,t,n,a);this.members=s}},bo=class extends me{constructor(e,t){super(47,t);this.value=e}},xo=class extends h{constructor(e,t,n){super(68,n);this.label=e;this.statements=t}get isDefault(){return this.label==null}},Eo=class extends me{constructor(e,t,n){super(48,n);this.condition=e;this.cases=t}},Ao=class extends me{constructor(e,t){super(49,t);this.value=e}},To=class extends me{constructor(e,t,n,s,a){super(50,a);this.bodyStatements=e;this.catchVariable=t;this.catchStatements=n;this.finallyStatements=s}},So=class extends me{constructor(e,t,n){super(54,n);this.moduleName=e;this.flags=t}},vo=class extends it{constructor(e,t,n,s,a,l){super(64,e,t,n,l);this.typeParameters=s;this.type=a}},Io=class extends $i{constructor(r,e,t,n,s,a){super(65,r,e,t,n,s,a)}},ko=class extends me{constructor(e,t,n){super(51,n);this.decorators=e;this.declarations=t}},Fo=class extends me{constructor(e,t){super(52,t);this.expression=e}},wo=class extends me{constructor(e,t,n){super(53,n);this.condition=e;this.body=t}};function Zt(i,r){if(r)for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.decoratorKind==i)return n}return null}function ds(i){return i.endsWith("/")?i+="index":i.endsWith(".ts")&&(i=i.substring(0,i.length-3)),i}function De(i){if(i.kind==1){let r=i.name;return!(r.next||r.identifier.text.length>0)}return!1}var P;(k=>{k.None=0,k.Unreachable=1,k.I32=2,k.I64=3,k.F32=4,k.F64=5,k.V128=6;function l(){return Z_()}k.funcref=l,k.Externref=$_(),k.Anyref=Y_(),k.Eqref=J_(),k.Structref=td(),k.Arrayref=rd(),k.I31ref=ed(),k.Stringref=id(),k.Noneref=nd(),k.Nofuncref=ad(),k.Noexternref=sd()})(P||={});var Ie;(E=>{E.Extern=8,E.Func=16,E.Any=32,E.Eq=40,E.I31=48,E.Struct=56,E.Array=64,E.Exn=7,E.String=80,E.None=88,E.Noextern=96,E.Nofunc=104;function _(T){return ld(T)}E.isBottom=_;function d(T){return od(T)}E.getBottom=d;function g(T,k){return ud(T,k)}E.isSubtype=g;function y(T,k){if(T==k)return T;if(d(T)!=d(k))return-1;if(_(T))return k;if(_(k))return T;if(T>k){let F=T;T=k,k=F}switch(T){case E.Extern:return k==E.String?T:-1;case E.Func:return-1;case E.Any:return T;case E.Eq:return k==E.I31||k==E.Struct||k==E.Array?E.Eq:E.Any;case E.I31:return k==E.Struct||k==E.Array?E.Eq:E.Any;case E.Struct:return k==E.Array?E.Eq:E.Any;case E.Array:return E.Any}return assert(!1),-1}E.leastUpperBound=y})(Ie||={});var ms;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(ms||={});var Jp;(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})(Jp||={});var ef=(U=>(U[U.MVP=0]="MVP",U[U.Atomics=1]="Atomics",U[U.MutableGlobals=2]="MutableGlobals",U[U.TruncSat=4]="TruncSat",U[U.SIMD=8]="SIMD",U[U.BulkMemory=16]="BulkMemory",U[U.SignExt=32]="SignExt",U[U.ExceptionHandling=64]="ExceptionHandling",U[U.TailCall=128]="TailCall",U[U.ReferenceTypes=256]="ReferenceTypes",U[U.MultiValue=512]="MultiValue",U[U.GC=1024]="GC",U[U.Memory64=2048]="Memory64",U[U.RelaxedSIMD=4096]="RelaxedSIMD",U[U.ExtendedConst=8192]="ExtendedConst",U[U.Strings=16384]="Strings",U[U.MultiMemory=32768]="MultiMemory",U[U.StackSwitching=65536]="StackSwitching",U[U.SharedEverything=131072]="SharedEverything",U[U.FP16=262144]="FP16",U[U.BulkMemoryOpt=524288]="BulkMemoryOpt",U[U.CallIndirectOverlong=1048576]="CallIndirectOverlong",U[U.RelaxedAtomics=4194304]="RelaxedAtomics",U[U.CustomPageSizes=8388608]="CustomPageSizes",U[U.Multibyte=16777216]="Multibyte",U[U.WideArithmetic=33554432]="WideArithmetic",U[U.CompactImports=67108864]="CompactImports",U[U.All=134217727]="All",U))(ef||{}),ei=(L=>(L[L.Invalid=0]="Invalid",L[L.Block=1]="Block",L[L.If=2]="If",L[L.Loop=3]="Loop",L[L.Break=4]="Break",L[L.Switch=5]="Switch",L[L.Call=6]="Call",L[L.CallIndirect=7]="CallIndirect",L[L.LocalGet=8]="LocalGet",L[L.LocalSet=9]="LocalSet",L[L.GlobalGet=10]="GlobalGet",L[L.GlobalSet=11]="GlobalSet",L[L.Load=12]="Load",L[L.Store=13]="Store",L[L.Const=14]="Const",L[L.Unary=15]="Unary",L[L.Binary=16]="Binary",L[L.Select=17]="Select",L[L.Drop=18]="Drop",L[L.Return=19]="Return",L[L.MemorySize=20]="MemorySize",L[L.MemoryGrow=21]="MemoryGrow",L[L.Nop=22]="Nop",L[L.Unreachable=23]="Unreachable",L[L.AtomicRMW=24]="AtomicRMW",L[L.AtomicCmpxchg=25]="AtomicCmpxchg",L[L.AtomicWait=26]="AtomicWait",L[L.AtomicNotify=27]="AtomicNotify",L[L.AtomicFence=28]="AtomicFence",L[L.Pause=29]="Pause",L[L.SIMDExtract=30]="SIMDExtract",L[L.SIMDReplace=31]="SIMDReplace",L[L.SIMDShuffle=32]="SIMDShuffle",L[L.SIMDTernary=33]="SIMDTernary",L[L.SIMDShift=34]="SIMDShift",L[L.SIMDLoad=35]="SIMDLoad",L[L.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",L[L.MemoryInit=37]="MemoryInit",L[L.DataDrop=38]="DataDrop",L[L.MemoryCopy=39]="MemoryCopy",L[L.MemoryFill=40]="MemoryFill",L[L.Pop=41]="Pop",L[L.RefNull=42]="RefNull",L[L.RefIsNull=43]="RefIsNull",L[L.RefFunc=44]="RefFunc",L[L.RefEq=45]="RefEq",L[L.TableGet=46]="TableGet",L[L.TableSet=47]="TableSet",L[L.TableSize=48]="TableSize",L[L.TableGrow=49]="TableGrow",L[L.TableFill=50]="TableFill",L[L.TableCopy=51]="TableCopy",L[L.TableInit=52]="TableInit",L[L.ElemDrop=53]="ElemDrop",L[L.Try=54]="Try",L[L.TryTable=55]="TryTable",L[L.Throw=56]="Throw",L[L.Rethrow=57]="Rethrow",L[L.ThrowRef=58]="ThrowRef",L[L.TupleMake=59]="TupleMake",L[L.TupleExtract=60]="TupleExtract",L[L.RefI31=61]="RefI31",L[L.I31Get=62]="I31Get",L[L.CallRef=63]="CallRef",L[L.RefTest=64]="RefTest",L[L.RefCast=65]="RefCast",L[L.RefGetDesc=66]="RefGetDesc",L[L.BrOn=67]="BrOn",L[L.StructNew=68]="StructNew",L[L.StructGet=69]="StructGet",L[L.StructSet=70]="StructSet",L[L.StructRMW=71]="StructRMW",L[L.StructCmpxchg=72]="StructCmpxchg",L[L.ArrayNew=73]="ArrayNew",L[L.ArrayNewData=74]="ArrayNewData",L[L.ArrayNewElem=75]="ArrayNewElem",L[L.ArrayNewFixed=76]="ArrayNewFixed",L[L.ArrayGet=77]="ArrayGet",L[L.ArraySet=78]="ArraySet",L[L.ArrayLoad=79]="ArrayLoad",L[L.ArrayStore=80]="ArrayStore",L[L.ArrayLen=81]="ArrayLen",L[L.ArrayCopy=82]="ArrayCopy",L[L.ArrayFill=83]="ArrayFill",L[L.ArrayInitData=84]="ArrayInitData",L[L.ArrayInitElem=85]="ArrayInitElem",L[L.ArrayRMW=86]="ArrayRMW",L[L.ArrayCmpxchg=87]="ArrayCmpxchg",L[L.RefAs=88]="RefAs",L[L.StringNew=89]="StringNew",L[L.StringConst=90]="StringConst",L[L.StringMeasure=91]="StringMeasure",L[L.StringEncode=92]="StringEncode",L[L.StringConcat=93]="StringConcat",L[L.StringEq=94]="StringEq",L[L.StringTest=95]="StringTest",L[L.StringWTF16Get=96]="StringWTF16Get",L[L.StringSliceWTF=97]="StringSliceWTF",L[L.ContNew=98]="ContNew",L[L.ContBind=99]="ContBind",L[L.Suspend=100]="Suspend",L[L.Resume=101]="Resume",L[L.ResumeThrow=102]="ResumeThrow",L[L.StackSwitch=103]="StackSwitch",L[L.StructWait=104]="StructWait",L[L.StructNotify=105]="StructNotify",L[L.WideIntAddSub=106]="WideIntAddSub",L[L.WideIntMul=107]="WideIntMul",L))(ei||{}),tf=(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))(tf||{}),Ub=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Ub||{}),gs=(C=>(C[C.ClzI32=0]="ClzI32",C[C.ClzI64=1]="ClzI64",C[C.CtzI32=2]="CtzI32",C[C.CtzI64=3]="CtzI64",C[C.PopcntI32=4]="PopcntI32",C[C.PopcntI64=5]="PopcntI64",C[C.NegF32=6]="NegF32",C[C.NegF64=7]="NegF64",C[C.AbsF32=8]="AbsF32",C[C.AbsF64=9]="AbsF64",C[C.CeilF32=10]="CeilF32",C[C.CeilF64=11]="CeilF64",C[C.FloorF32=12]="FloorF32",C[C.FloorF64=13]="FloorF64",C[C.TruncF32=14]="TruncF32",C[C.TruncF64=15]="TruncF64",C[C.NearestF32=16]="NearestF32",C[C.NearestF64=17]="NearestF64",C[C.SqrtF32=18]="SqrtF32",C[C.SqrtF64=19]="SqrtF64",C[C.EqzI32=20]="EqzI32",C[C.EqzI64=21]="EqzI64",C[C.ExtendI32ToI64=22]="ExtendI32ToI64",C[C.ExtendU32ToU64=23]="ExtendU32ToU64",C[C.WrapI64ToI32=24]="WrapI64ToI32",C[C.TruncF32ToI32=25]="TruncF32ToI32",C[C.TruncF32ToI64=26]="TruncF32ToI64",C[C.TruncF32ToU32=27]="TruncF32ToU32",C[C.TruncF32ToU64=28]="TruncF32ToU64",C[C.TruncF64ToI32=29]="TruncF64ToI32",C[C.TruncF64ToI64=30]="TruncF64ToI64",C[C.TruncF64ToU32=31]="TruncF64ToU32",C[C.TruncF64ToU64=32]="TruncF64ToU64",C[C.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",C[C.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",C[C.ConvertI32ToF32=35]="ConvertI32ToF32",C[C.ConvertI32ToF64=36]="ConvertI32ToF64",C[C.ConvertU32ToF32=37]="ConvertU32ToF32",C[C.ConvertU32ToF64=38]="ConvertU32ToF64",C[C.ConvertI64ToF32=39]="ConvertI64ToF32",C[C.ConvertI64ToF64=40]="ConvertI64ToF64",C[C.ConvertU64ToF32=41]="ConvertU64ToF32",C[C.ConvertU64ToF64=42]="ConvertU64ToF64",C[C.PromoteF32ToF64=43]="PromoteF32ToF64",C[C.DemoteF64ToF32=44]="DemoteF64ToF32",C[C.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",C[C.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",C[C.Extend8I32=47]="Extend8I32",C[C.Extend16I32=48]="Extend16I32",C[C.Extend8I64=49]="Extend8I64",C[C.Extend16I64=50]="Extend16I64",C[C.Extend32I64=51]="Extend32I64",C[C.TruncSatF32ToI32=52]="TruncSatF32ToI32",C[C.TruncSatF32ToU32=53]="TruncSatF32ToU32",C[C.TruncSatF64ToI32=54]="TruncSatF64ToI32",C[C.TruncSatF64ToU32=55]="TruncSatF64ToU32",C[C.TruncSatF32ToI64=56]="TruncSatF32ToI64",C[C.TruncSatF32ToU64=57]="TruncSatF32ToU64",C[C.TruncSatF64ToI64=58]="TruncSatF64ToI64",C[C.TruncSatF64ToU64=59]="TruncSatF64ToU64",C[C.SplatI8x16=60]="SplatI8x16",C[C.SplatI16x8=61]="SplatI16x8",C[C.SplatI32x4=62]="SplatI32x4",C[C.SplatI64x2=63]="SplatI64x2",C[C.SplatF32x4=64]="SplatF32x4",C[C.SplatF64x2=65]="SplatF64x2",C[C.NotV128=66]="NotV128",C[C.AnyTrueV128=67]="AnyTrueV128",C[C.AbsI8x16=68]="AbsI8x16",C[C.NegI8x16=69]="NegI8x16",C[C.AllTrueI8x16=70]="AllTrueI8x16",C[C.BitmaskI8x16=71]="BitmaskI8x16",C[C.PopcntI8x16=72]="PopcntI8x16",C[C.AbsI16x8=73]="AbsI16x8",C[C.NegI16x8=74]="NegI16x8",C[C.AllTrueI16x8=75]="AllTrueI16x8",C[C.BitmaskI16x8=76]="BitmaskI16x8",C[C.AbsI32x4=77]="AbsI32x4",C[C.NegI32x4=78]="NegI32x4",C[C.AllTrueI32x4=79]="AllTrueI32x4",C[C.BitmaskI32x4=80]="BitmaskI32x4",C[C.AbsI64x2=81]="AbsI64x2",C[C.NegI64x2=82]="NegI64x2",C[C.AllTrueI64x2=83]="AllTrueI64x2",C[C.BitmaskI64x2=84]="BitmaskI64x2",C[C.AbsF32x4=92]="AbsF32x4",C[C.NegF32x4=93]="NegF32x4",C[C.SqrtF32x4=94]="SqrtF32x4",C[C.CeilF32x4=95]="CeilF32x4",C[C.FloorF32x4=96]="FloorF32x4",C[C.TruncF32x4=97]="TruncF32x4",C[C.NearestF32x4=98]="NearestF32x4",C[C.AbsF64x2=99]="AbsF64x2",C[C.NegF64x2=100]="NegF64x2",C[C.SqrtF64x2=101]="SqrtF64x2",C[C.CeilF64x2=102]="CeilF64x2",C[C.FloorF64x2=103]="FloorF64x2",C[C.TruncF64x2=104]="TruncF64x2",C[C.NearestF64x2=105]="NearestF64x2",C[C.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",C[C.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",C[C.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",C[C.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",C[C.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",C[C.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",C[C.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",C[C.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",C[C.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",C[C.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",C[C.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",C[C.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",C[C.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",C[C.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",C[C.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",C[C.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",C[C.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",C[C.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",C[C.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",C[C.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",C[C.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",C[C.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",C[C.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",C[C.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",C[C.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",C[C.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",C[C.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",C[C.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",C[C.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",C[C.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",C[C.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",C[C._last=141]="_last",C[C.ClzSize=142]="ClzSize",C[C.CtzSize=143]="CtzSize",C[C.PopcntSize=144]="PopcntSize",C[C.EqzSize=145]="EqzSize",C))(gs||{}),en=(v=>(v[v.AddI32=0]="AddI32",v[v.SubI32=1]="SubI32",v[v.MulI32=2]="MulI32",v[v.DivI32=3]="DivI32",v[v.DivU32=4]="DivU32",v[v.RemI32=5]="RemI32",v[v.RemU32=6]="RemU32",v[v.AndI32=7]="AndI32",v[v.OrI32=8]="OrI32",v[v.XorI32=9]="XorI32",v[v.ShlI32=10]="ShlI32",v[v.ShrI32=11]="ShrI32",v[v.ShrU32=12]="ShrU32",v[v.RotlI32=13]="RotlI32",v[v.RotrI32=14]="RotrI32",v[v.EqI32=15]="EqI32",v[v.NeI32=16]="NeI32",v[v.LtI32=17]="LtI32",v[v.LtU32=18]="LtU32",v[v.LeI32=19]="LeI32",v[v.LeU32=20]="LeU32",v[v.GtI32=21]="GtI32",v[v.GtU32=22]="GtU32",v[v.GeI32=23]="GeI32",v[v.GeU32=24]="GeU32",v[v.AddI64=25]="AddI64",v[v.SubI64=26]="SubI64",v[v.MulI64=27]="MulI64",v[v.DivI64=28]="DivI64",v[v.DivU64=29]="DivU64",v[v.RemI64=30]="RemI64",v[v.RemU64=31]="RemU64",v[v.AndI64=32]="AndI64",v[v.OrI64=33]="OrI64",v[v.XorI64=34]="XorI64",v[v.ShlI64=35]="ShlI64",v[v.ShrI64=36]="ShrI64",v[v.ShrU64=37]="ShrU64",v[v.RotlI64=38]="RotlI64",v[v.RotrI64=39]="RotrI64",v[v.EqI64=40]="EqI64",v[v.NeI64=41]="NeI64",v[v.LtI64=42]="LtI64",v[v.LtU64=43]="LtU64",v[v.LeI64=44]="LeI64",v[v.LeU64=45]="LeU64",v[v.GtI64=46]="GtI64",v[v.GtU64=47]="GtU64",v[v.GeI64=48]="GeI64",v[v.GeU64=49]="GeU64",v[v.AddF32=50]="AddF32",v[v.SubF32=51]="SubF32",v[v.MulF32=52]="MulF32",v[v.DivF32=53]="DivF32",v[v.CopysignF32=54]="CopysignF32",v[v.MinF32=55]="MinF32",v[v.MaxF32=56]="MaxF32",v[v.EqF32=57]="EqF32",v[v.NeF32=58]="NeF32",v[v.LtF32=59]="LtF32",v[v.LeF32=60]="LeF32",v[v.GtF32=61]="GtF32",v[v.GeF32=62]="GeF32",v[v.AddF64=63]="AddF64",v[v.SubF64=64]="SubF64",v[v.MulF64=65]="MulF64",v[v.DivF64=66]="DivF64",v[v.CopysignF64=67]="CopysignF64",v[v.MinF64=68]="MinF64",v[v.MaxF64=69]="MaxF64",v[v.EqF64=70]="EqF64",v[v.NeF64=71]="NeF64",v[v.LtF64=72]="LtF64",v[v.LeF64=73]="LeF64",v[v.GtF64=74]="GtF64",v[v.GeF64=75]="GeF64",v[v.EqI8x16=76]="EqI8x16",v[v.NeI8x16=77]="NeI8x16",v[v.LtI8x16=78]="LtI8x16",v[v.LtU8x16=79]="LtU8x16",v[v.GtI8x16=80]="GtI8x16",v[v.GtU8x16=81]="GtU8x16",v[v.LeI8x16=82]="LeI8x16",v[v.LeU8x16=83]="LeU8x16",v[v.GeI8x16=84]="GeI8x16",v[v.GeU8x16=85]="GeU8x16",v[v.EqI16x8=86]="EqI16x8",v[v.NeI16x8=87]="NeI16x8",v[v.LtI16x8=88]="LtI16x8",v[v.LtU16x8=89]="LtU16x8",v[v.GtI16x8=90]="GtI16x8",v[v.GtU16x8=91]="GtU16x8",v[v.LeI16x8=92]="LeI16x8",v[v.LeU16x8=93]="LeU16x8",v[v.GeI16x8=94]="GeI16x8",v[v.GeU16x8=95]="GeU16x8",v[v.EqI32x4=96]="EqI32x4",v[v.NeI32x4=97]="NeI32x4",v[v.LtI32x4=98]="LtI32x4",v[v.LtU32x4=99]="LtU32x4",v[v.GtI32x4=100]="GtI32x4",v[v.GtU32x4=101]="GtU32x4",v[v.LeI32x4=102]="LeI32x4",v[v.LeU32x4=103]="LeU32x4",v[v.GeI32x4=104]="GeI32x4",v[v.GeU32x4=105]="GeU32x4",v[v.EqI64x2=106]="EqI64x2",v[v.NeI64x2=107]="NeI64x2",v[v.LtI64x2=108]="LtI64x2",v[v.GtI64x2=109]="GtI64x2",v[v.LeI64x2=110]="LeI64x2",v[v.GeI64x2=111]="GeI64x2",v[v.EqF32x4=118]="EqF32x4",v[v.NeF32x4=119]="NeF32x4",v[v.LtF32x4=120]="LtF32x4",v[v.GtF32x4=121]="GtF32x4",v[v.LeF32x4=122]="LeF32x4",v[v.GeF32x4=123]="GeF32x4",v[v.EqF64x2=124]="EqF64x2",v[v.NeF64x2=125]="NeF64x2",v[v.LtF64x2=126]="LtF64x2",v[v.GtF64x2=127]="GtF64x2",v[v.LeF64x2=128]="LeF64x2",v[v.GeF64x2=129]="GeF64x2",v[v.AndV128=130]="AndV128",v[v.OrV128=131]="OrV128",v[v.XorV128=132]="XorV128",v[v.AndnotV128=133]="AndnotV128",v[v.AddI8x16=134]="AddI8x16",v[v.AddSatI8x16=135]="AddSatI8x16",v[v.AddSatU8x16=136]="AddSatU8x16",v[v.SubI8x16=137]="SubI8x16",v[v.SubSatI8x16=138]="SubSatI8x16",v[v.SubSatU8x16=139]="SubSatU8x16",v[v.MinI8x16=140]="MinI8x16",v[v.MinU8x16=141]="MinU8x16",v[v.MaxI8x16=142]="MaxI8x16",v[v.MaxU8x16=143]="MaxU8x16",v[v.AvgrU8x16=144]="AvgrU8x16",v[v.AddI16x8=145]="AddI16x8",v[v.AddSatI16x8=146]="AddSatI16x8",v[v.AddSatU16x8=147]="AddSatU16x8",v[v.SubI16x8=148]="SubI16x8",v[v.SubSatI16x8=149]="SubSatI16x8",v[v.SubSatU16x8=150]="SubSatU16x8",v[v.MulI16x8=151]="MulI16x8",v[v.MinI16x8=152]="MinI16x8",v[v.MinU16x8=153]="MinU16x8",v[v.MaxI16x8=154]="MaxI16x8",v[v.MaxU16x8=155]="MaxU16x8",v[v.AvgrU16x8=156]="AvgrU16x8",v[v.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",v[v.ExtmulLowI16x8=158]="ExtmulLowI16x8",v[v.ExtmulHighI16x8=159]="ExtmulHighI16x8",v[v.ExtmulLowU16x8=160]="ExtmulLowU16x8",v[v.ExtmulHighU16x8=161]="ExtmulHighU16x8",v[v.AddI32x4=162]="AddI32x4",v[v.SubI32x4=163]="SubI32x4",v[v.MulI32x4=164]="MulI32x4",v[v.MinI32x4=165]="MinI32x4",v[v.MinU32x4=166]="MinU32x4",v[v.MaxI32x4=167]="MaxI32x4",v[v.MaxU32x4=168]="MaxU32x4",v[v.DotI16x8=169]="DotI16x8",v[v.ExtmulLowI32x4=170]="ExtmulLowI32x4",v[v.ExtmulHighI32x4=171]="ExtmulHighI32x4",v[v.ExtmulLowU32x4=172]="ExtmulLowU32x4",v[v.ExtmulHighU32x4=173]="ExtmulHighU32x4",v[v.AddI64x2=174]="AddI64x2",v[v.SubI64x2=175]="SubI64x2",v[v.MulI64x2=176]="MulI64x2",v[v.ExtmulLowI64x2=177]="ExtmulLowI64x2",v[v.ExtmulHighI64x2=178]="ExtmulHighI64x2",v[v.ExtmulLowU64x2=179]="ExtmulLowU64x2",v[v.ExtmulHighU64x2=180]="ExtmulHighU64x2",v[v.AddF32x4=189]="AddF32x4",v[v.SubF32x4=190]="SubF32x4",v[v.MulF32x4=191]="MulF32x4",v[v.DivF32x4=192]="DivF32x4",v[v.MinF32x4=193]="MinF32x4",v[v.MaxF32x4=194]="MaxF32x4",v[v.PminF32x4=195]="PminF32x4",v[v.PmaxF32x4=196]="PmaxF32x4",v[v.AddF64x2=197]="AddF64x2",v[v.SubF64x2=198]="SubF64x2",v[v.MulF64x2=199]="MulF64x2",v[v.DivF64x2=200]="DivF64x2",v[v.MinF64x2=201]="MinF64x2",v[v.MaxF64x2=202]="MaxF64x2",v[v.PminF64x2=203]="PminF64x2",v[v.PmaxF64x2=204]="PmaxF64x2",v[v.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",v[v.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",v[v.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",v[v.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",v[v.SwizzleI8x16=209]="SwizzleI8x16",v[v.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",v[v.RelaxedMinF32x4=211]="RelaxedMinF32x4",v[v.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",v[v.RelaxedMinF64x2=213]="RelaxedMinF64x2",v[v.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",v[v.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",v[v.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",v[v._last=216]="_last",v[v.AddSize=217]="AddSize",v[v.SubSize=218]="SubSize",v[v.MulSize=219]="MulSize",v[v.DivISize=220]="DivISize",v[v.DivUSize=221]="DivUSize",v[v.RemISize=222]="RemISize",v[v.RemUSize=223]="RemUSize",v[v.AndSize=224]="AndSize",v[v.OrSize=225]="OrSize",v[v.XorSize=226]="XorSize",v[v.ShlSize=227]="ShlSize",v[v.ShrISize=228]="ShrISize",v[v.ShrUSize=229]="ShrUSize",v[v.RotlSize=230]="RotlSize",v[v.RotrSize=231]="RotrSize",v[v.EqSize=232]="EqSize",v[v.NeSize=233]="NeSize",v[v.LtISize=234]="LtISize",v[v.LtUSize=235]="LtUSize",v[v.LeISize=236]="LeISize",v[v.LeUSize=237]="LeUSize",v[v.GtISize=238]="GtISize",v[v.GtUSize=239]="GtUSize",v[v.GeISize=240]="GeISize",v[v.GeUSize=241]="GeUSize",v))(en||{}),rf=(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))(rf||{}),nf=(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))(nf||{}),sf=(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))(sf||{}),af=(_=>(_[_.ShlI8x16=0]="ShlI8x16",_[_.ShrI8x16=1]="ShrI8x16",_[_.ShrU8x16=2]="ShrU8x16",_[_.ShlI16x8=3]="ShlI16x8",_[_.ShrI16x8=4]="ShrI16x8",_[_.ShrU16x8=5]="ShrU16x8",_[_.ShlI32x4=6]="ShlI32x4",_[_.ShrI32x4=7]="ShrI32x4",_[_.ShrU32x4=8]="ShrU32x4",_[_.ShlI64x2=9]="ShlI64x2",_[_.ShrI64x2=10]="ShrI64x2",_[_.ShrU64x2=11]="ShrU64x2",_))(af||{}),lf=(_=>(_[_.Load8Splat=0]="Load8Splat",_[_.Load16Splat=1]="Load16Splat",_[_.Load32Splat=2]="Load32Splat",_[_.Load64Splat=3]="Load64Splat",_[_.Load8x8S=4]="Load8x8S",_[_.Load8x8U=5]="Load8x8U",_[_.Load16x4S=6]="Load16x4S",_[_.Load16x4U=7]="Load16x4U",_[_.Load32x2S=8]="Load32x2S",_[_.Load32x2U=9]="Load32x2U",_[_.Load32Zero=10]="Load32Zero",_[_.Load64Zero=11]="Load64Zero",_))(lf||{}),of=(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))(of||{}),uf=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(uf||{}),Vb=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(Vb||{}),Ob=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Ob||{}),qb=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(qb||{}),Wb=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Wb||{}),Kb=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(Kb||{}),Hb=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Hb||{}),jb=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(jb||{}),Qb=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(Qb||{}),Bo=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Bo||{}),Ji=class{constructor(r,e){this.buffer=r;this.offset=e}},Yt=class i{constructor(r,e,t){this.ref=r;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==P.I32||t==P.I64),this.lit=kt(Mu())}static create(r,e){return new i(pd(),r,e)}static createFrom(r,e,t){let n=hs(r),s=new i(Tg(n,r.length),e,t);return ne(changetype(n)),s}i32(r){let e=this.lit;return _d(e,r),Pi(this.ref,e)}i64(r,e=0){let t=this.lit;return Tb(t,i64_new(r,e)),Pi(this.ref,t)}usize(r){return i64_is(r)?this.sizeType==P.I64?this.i64(i64_low(r),i64_high(r)):(assert(i64_is_u32(r)),this.i32(i64_low(r))):this.sizeType==P.I64?this.i64(i32(r)):this.i32(i32(r))}f32(r){let e=this.lit;return dd(e,r),Pi(this.ref,e)}f64(r){let e=this.lit;return hd(e,r),Pi(this.ref,e)}v128(r){assert(r.length==16);let e=this.lit;for(let t=0;t<16;++t)qe(e+t,unchecked(r[t]));return md(e,e),Pi(this.ref,e)}ref_null(r){return bm(this.ref,r)}ref_eq(r,e){return vm(this.ref,r,e)}string_eq(r,e){return yp(this.ref,0,r,e)}string_compare(r,e){return yp(this.ref,1,r,e)}unary(r,e){if(r>141){let t=this.sizeType==P.I64;switch(r){case 142:r=t?1:0;break;case 143:r=t?3:2;break;case 144:r=t?5:4;break;case 145:r=t?21:20;break;default:assert(!1)}}return ch(this.ref,r,e)}binary(r,e,t){if(r>216){let n=this.sizeType==P.I64;switch(r){case 217:r=n?25:0;break;case 218:r=n?26:1;break;case 219:r=n?27:2;break;case 220:r=n?28:3;break;case 221:r=n?29:4;break;case 222:r=n?30:5;break;case 223:r=n?31:6;break;case 224:r=n?32:7;break;case 225:r=n?33:8;break;case 226:r=n?34:9;break;case 227:r=n?35:10;break;case 228:r=n?36:11;break;case 229:r=n?37:12;break;case 230:r=n?38:13;break;case 231:r=n?39:14;break;case 232:r=n?40:15;break;case 233:r=n?41:16;break;case 234:r=n?42:17;break;case 235:r=n?43:18;break;case 236:r=n?44:19;break;case 237:r=n?45:20;break;case 238:r=n?46:21;break;case 239:r=n?47:22;break;case 240:r=n?48:23;break;case 241:r=n?49:24;break;default:assert(!1)}}return hh(this.ref,r,e,t)}wide_int_add_sub(r,e,t,n,s){return _h(this.ref,r,e,t,n,s)}wide_int_mul(r,e,t){return dh(this.ref,r,e,t)}memory_size(r=N.DefaultMemory,e=!1){let t=this.allocStringCached(r);return Qd(this.ref,t,e)}memory_grow(r,e=N.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Xd(this.ref,r,n,t)}table_size(r){let e=this.allocStringCached(r);return Rm(this.ref,e)}table_grow(r,e,t=0){let n=this.allocStringCached(r);return Cm(this.ref,n,t,e)}local_get(r,e){return Vd(this.ref,r,e)}tostack(r){if(this.useShadowStack){let e=_r(r);return assert(e==P.I32||e==P.Unreachable),this.call(m.tostack,[r],e)}return r}local_tee(r,e,t,n=-1){return n==-1&&(n=_r(e)),t&&this.useShadowStack&&(e=this.tostack(e)),qd(this.ref,r,e,n)}global_get(r,e){let t=this.allocStringCached(r);return Wd(this.ref,t,e)}table_get(r,e,t){let n=this.allocStringCached(r);return Fm(this.ref,n,e,t)}load(r,e,t,n,s=0,a=r,l=N.DefaultMemory){let o=this.allocStringCached(l);return $d(this.ref,r,e,s,a,n,t,o)}store(r,e,t,n,s=0,a=r,l=N.DefaultMemory){let o=this.allocStringCached(l);return ih(this.ref,r,s,a,e,t,n,o)}atomic_load(r,e,t,n=0,s=N.DefaultMemory,a=1){let l=this.allocStringCached(s);return rh(this.ref,r,n,t,e,l,a)}atomic_store(r,e,t,n,s=0,a=N.DefaultMemory,l=1){let o=this.allocStringCached(a);return sh(this.ref,r,s,e,t,n,o,l)}atomic_rmw(r,e,t,n,s,a,l=N.DefaultMemory,o=1){let u=this.allocStringCached(l);return kh(this.ref,r,e,t,n,s,a,u,o)}atomic_cmpxchg(r,e,t,n,s,a,l=N.DefaultMemory,o=1){let u=this.allocStringCached(l);return Rh(this.ref,r,e,t,n,s,a,u,o)}atomic_wait(r,e,t,n,s=N.DefaultMemory){let a=this.allocStringCached(s);return Nh(this.ref,r,e,t,n,a)}atomic_notify(r,e,t=N.DefaultMemory){let n=this.allocStringCached(t);return Dh(this.ref,r,e,n)}atomic_fence(r=null){let e=this.allocStringCached(r);return Vh(this.ref,e)}local_set(r,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),Od(this.ref,r,e)}global_set(r,e){let t=this.allocStringCached(r);return Kd(this.ref,t,e)}table_set(r,e,t){let n=this.allocStringCached(r);return wm(this.ref,n,e,t)}block(r,e,t=P.None){let n=this.allocStringCached(r),s=Ee(e),a=bd(this.ref,n,s,e.length,t);return ne(s),a}flatten(r,e=P.None){let t=r.length;if(t==0)return this.nop();if(t==1){let n=r[0];switch(re(n)){case 19:case 56:case 23:return n}let s=ce(n);return s!=P.Unreachable&&s!=e?this.unreachable():n}return this.block(null,r,e)}br(r,e=0,t=0){let n=this.allocStringCached(r);return kd(this.ref,n,e,t)}drop(r){return Ou(this.ref,r)}maybeDrop(r){let e=_r(r);return e!=P.None&&e!=P.Unreachable?Ou(this.ref,r):r}maybeDropCondition(r,e){return(ks(r,this.ref)&-21)!=0?this.block(null,[this.drop(r),e],ce(e)):e}loop(r,e){let t=this.allocStringCached(r);return vd(this.ref,t,e)}if(r,e,t=0){return Ed(this.ref,r,e,t)}nop(){return vh(this.ref)}return(r=0){return Sh(this.ref,r)}select(r,e,t){return bh(this.ref,t,r,e)}switch(r,e,t,n=0){let s=r.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(r[c]));let l=Ee(a),o=this.allocStringCached(e),u=Rd(this.ref,l,s,o,t,n);return ne(l),u}call(r,e,t,n=!1){let s=this.allocStringCached(r),a=Ee(e),l=n?zd(this.ref,s,a,e?e.length:0,t):Md(this.ref,s,a,e?e.length:0,t);return ne(a),l}return_call(r,e,t){return this.call(r,e,t,!0)}call_indirect(r,e,t,n,s,a=!1){let l=this.allocStringCached(r??N.DefaultTable),o=Ee(t),u=a?Ud(this.ref,l,e,o,t?t.length:0,n,s):Dd(this.ref,l,e,o,t?t.length:0,n,s);return ne(o),u}return_call_indirect(r,e,t,n,s){return this.call_indirect(r,e,t,n,s,!0)}unreachable(){return Ih(this.ref)}memory_copy(r,e,t,n=N.DefaultMemory,s=N.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return pm(this.ref,r,e,t,a,l)}memory_fill(r,e,t,n=N.DefaultMemory){let s=this.allocStringCached(n);return hm(this.ref,r,e,t,s)}try(r,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=Ee(l),u=Ee(n),c=this.allocStringCached(r),f=this.allocStringCached(s),_=Pm(this.ref,c,e,o,a,u,n.length,f);return ne(u),ne(o),_}throw(r,e){let t=this.allocStringCached(r),n=Ee(e),s=Lm(this.ref,t,n,e.length);return ne(n),s}rethrow(r){let e=this.allocStringCached(r);return Dm(this.ref,e)}pop(r){return qm(this.ref,r)}tuple_make(r){let e=Ee(r),t=Gm(this.ref,e,r.length);return ne(e),t}tuple_extract(r,e){return Vm(this.ref,r,e)}simd_extract(r,e,t){return Oh(this.ref,r,e,t)}simd_replace(r,e,t,n){return Wh(this.ref,r,e,t,n)}simd_shuffle(r,e,t){assert(t.length==16);let n=hs(t),s=jh(this.ref,r,e,n);return ne(n),s}simd_ternary(r,e,t,n){return Zh(this.ref,r,e,t,n)}simd_shift(r,e,t){return em(this.ref,r,e,t)}simd_load(r,e,t,n,s=N.DefaultMemory){let a=this.allocStringCached(s);return im(this.ref,r,t,n,e,a)}simd_loadstorelane(r,e,t,n,s,a,l=N.DefaultMemory){let o=this.allocStringCached(l);return sm(this.ref,r,t,n,s,e,a,o)}ref_is_null(r){return xm(this.ref,r)}ref_as(r,e){return Ac(this.ref,r,e)}ref_as_nonnull(r){return Xb(ce(r))?Ac(this.ref,0,r):r}ref_func(r,e){let t=this.allocStringCached(r);return Tm(this.ref,t,fr(e))}i31_new(r){return Wm(this.ref,r)}i31_get(r,e){return Hm(this.ref,r,e)}addGlobal(r,e,t,n){let s=this.allocStringCached(r);return Jy(this.ref,s,e,t,n)}getGlobal(r){let e=this.allocStringCached(r);return Ip(this.ref,e)}removeGlobal(r){let e=this.allocStringCached(r);return Ip(this.ref,e)?(eg(this.ref,e),!0):!1}addTag(r,e,t){let n=this.allocStringCached(r);return ag(this.ref,n,e,t)}getTag(r){let e=this.allocStringCached(r);return lg(this.ref,e)}removeTag(r){let e=this.allocStringCached(r);og(this.ref,e)}addFunction(r,e,t,n,s){let a=this.allocStringCached(r),l=Ee(n),o=Bi(this.ref,a,e,t,l,n?n.length:0,s);return ne(l),o}setLocalName(r,e,t){Dy(r,e,this.allocStringCached(t))}getFunction(r){let e=this.allocStringCached(r);return Ni(this.ref,e)}removeFunction(r){let e=this.allocStringCached(r);$n(this.ref,e)}hasFunction(r){let e=this.allocStringCached(r);return Ni(this.ref,e)!=0}addTemporaryFunction(r,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=Ee(e),a=Bi(this.ref,n,ft(e),r,0,0,t);return ne(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let r=this.allocStringCached("");$n(this.ref,r)}setStart(r){mg(this.ref,r)}addFunctionExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return ja(this.ref,t,n)}addTableExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Hy(this.ref,t,n)}addMemoryExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return jy(this.ref,t,n)}addGlobalExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Qy(this.ref,t,n)}addTagExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Xy(this.ref,t,n)}removeExport(r){let e=this.allocStringCached(r);Xa(this.ref,e)}hasExport(r){let e=this.allocStringCached(r);return Qa(this.ref,e)!=0}addFunctionImport(r,e,t,n,s){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Vy(this.ref,a,l,o,n,s)}addTableImport(r,e,t){let n=this.allocStringCached(r),s=this.allocStringCached(e),a=this.allocStringCached(t);Oy(this.ref,n,s,a)}addMemoryImport(r,e,t,n=!1){let s=this.allocStringCached(r),a=this.allocStringCached(e),l=this.allocStringCached(t);qy(this.ref,s,a,l,n)}addGlobalImport(r,e,t,n,s=!1){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Wy(this.ref,a,l,o,n,s)}addTagImport(r,e,t,n,s){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Ky(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(r,e,t,n,s=null,a=N.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=t.length,f=new Array(c),_=new Uint8Array(c),d=new Array(c),g=new Array(c);for(let F=0;F<c;++F){let w=unchecked(t[F]),R=w.buffer,B=w.offset;unchecked(f[F]=hs(R)),unchecked(_[F]=0),unchecked(d[F]=n==2?this.i64(i64_low(B),i64_high(B)):this.i32(i64_low(B))),unchecked(g[F]=R.length)}let y=Ee(f),E=hs(_),T=Ee(d),k=Yp(g);hg(this.ref,r,e,o,0,y,E,T,k,c,l,!1,u),ne(k),ne(T),ne(E),ne(y);for(let F=c-1;F>=0;--F)ne(unchecked(f[F]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(r,e,t,n,s){let a=this.allocStringCached(r),l=n.length,o=new Array(l);for(let f=0;f<l;++f)unchecked(o[f]=this.allocStringCached(n[f]));let u=Ee(o),c=Fp(this.ref,a);c?(fg(c,e),_g(c,t)):c=kp(this.ref,a,e,t,P.funcref()),dg(this.ref,a,a,u,l,s),ne(u)}ensureFunctionTable(r){let e=this.allocStringCached(r);Fp(this.ref,e)||kp(this.ref,e,0,i.UNLIMITED_TABLE,P.funcref())}addCustomSection(r,e){let t=this.allocStringCached(r),n=hs(e);wg(this.ref,t,n,e.length),ne(n)}getOptimizeLevel(){return Hg()}setOptimizeLevel(r){jg(r)}getShrinkLevel(){return Qg()}setShrinkLevel(r){Xg(r)}getDebugInfo(){return Zg()}setDebugInfo(r){$g(r)}getTrapsNeverHappen(){return Yg()}setTrapsNeverHappen(r){Jg(r)}getClosedWorld(){return eb()}setClosedWorld(r){tb(r)}getLowMemoryUnused(){return rb()}setLowMemoryUnused(r){ib(r)}getZeroFilledMemory(){return nb()}setZeroFilledMemory(r){sb(r)}getFastMath(){return ab()}setFastMath(r){lb(r)}getGenerateStackIR(){return ob()}setGenerateStackIR(r){ub(r)}getOptimizeStackIR(){return cb()}setOptimizeStackIR(r){pb(r)}getPassArgument(r){let e=this.allocStringCached(r),t=fb(e);return t?Ye(t):null}setPassArgument(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);_b(t,n)}clearPassArguments(){db()}getAlwaysInlineMaxSize(){return hb()}setAlwaysInlineMaxSize(r){mb(r)}getFlexibleInlineMaxSize(){return yb()}setFlexibleInlineMaxSize(r){gb(r)}getOneCallerInlineMaxSize(){return bb()}setOneCallerInlineMaxSize(r){xb(r)}getAllowInliningFunctionsWithLoops(){return Eb()}setAllowInliningFunctionsWithLoops(r){Ab(r)}setPartialInliningIfs(r){this.setPassArgument("partial-inlining-ifs",r.toString())}getFeatures(){return kg(this.ref)}setFeatures(r){r&16&&(r|=524288),Fg(this.ref,r)}runPasses(r,e=0){let t=r.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Ro(r[a]);let s=Ee(n);e?Gy(e,this.ref,s,t):gg(this.ref,s,t),ne(s);for(let a=t-1;a>=0;--a)ne(n[a])}optimize(r,e,t=!1,n=!1){(r>=3||e>=2)&&(r=4),this.clearPassArguments(),this.setOptimizeLevel(r),this.setShrinkLevel(e),this.setDebugInfo(t),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=r>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),r>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(r<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(r>=2?4:0),r>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),r>=2&&a.push("once-reduction"),(r>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(r>=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")),r>=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"),r>=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"),r>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):r>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(r>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(r>=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"),(r>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(r>=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"),r>=3&&a.push("optimize-instructions"),(r>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(r>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(r>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),r>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),r>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),r>=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"),(r>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(r>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),r>=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"),(r>=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"),(r>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return yg(this.ref)==1}interpret(){Sg(this.ref)}toBinary(r=null){assert(Mu()>=bg());let e=this.lit,t=Ro(r);xg(e,this.ref,t);let n=yr(e+0),s=yr(e+4),a=yr(e+8),l=new Po(LE(assert(n),s),Ye(a));return t&&ne(t),a&&ne(a),ne(n),l}toText(r=!0){let e=r?Ag(this.ref):Eg(this.ref),t=Ye(e);return e&&ne(e),t||""}allocStringCached(r){if(r==null)return 0;let e=this.cachedStringsToPointers;if(e.has(r))return changetype(e.get(r));let t=Ro(r);return e.set(r,t),t}readStringCached(r){if(r==0)return null;let e=this.cachedPointersToStrings;if(e.has(r))return changetype(e.get(r));let t=Ye(r);return e.set(r,t),t}dispose(){assert(this.ref);for(let r=Map_values(this.cachedStringsToPointers),e=0,t=r.length;e<t;++e){let n=unchecked(r[e]);ne(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ne(this.lit),fd(this.ref),this.ref=0}createRelooper(){return Co.create(this)}tryCopyTrivialExpression(r){return this.isTrivialExpression(r)?this.copyExpression(r):0}isTrivialExpression(r){switch(Wt(r)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(r){return yd(r,this.ref)}runExpression(r,e,t=50,n=1){let s=zg(this.ref,e,t,n),a=Dg(s,r);if(a){if(!this.isConstExpression(a))return 0;assert(ce(a)==ce(r))}return a}isConstExpression(r){switch(re(r)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(tn(r)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(st(r))&&this.isConstExpression(We(r))}break}}return!1}addDebugInfoFile(r){let e=Ro(r),t=vg(this.ref,e);return ne(e),t}getDebugInfoFile(r){return Ye(Ig(this.ref,r))}setDebugLocation(r,e,t,n,s){Uy(r,e,t,n,s)}};function ft(i){if(!i)return P.None;switch(i.length){case 0:return P.None;case 1:return i[0]}let r=Ee(i),e=H_(r,i.length);return ne(r),e}function cf(i){let r=j_(i),e=kt(r<<2);Q_(i,e);let t=new Array(r);for(let n=0;n<r;++n)unchecked(t[n]=yr(e+(n<<2)));return ne(e),t}function Xb(i){return X_(i)}function re(i){return Wt(i)}function ce(i){return _r(i)}function ae(i){return ah(i)}function Be(i){return i64_low(Pp(i))}function Ge(i){return i64_high(Pp(i))}function pf(i,r){let e=0,t=0;return r?(e=Be(i),t=Ge(i)):e=ae(i),i64_new(e,t)}function Ce(i){return lh(i)}function Pe(i){return oh(i)}function ff(i){let r=kt(16);uh(i,r);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Vr(r+t);return ne(r),e}function nt(i){if(re(i)!=14)return!1;let r=ce(i);return r==P.I32?ae(i)==0:r==P.I64?(Be(i)|Ge(i))==0:r==P.F32?Ce(i)==0:r==P.F64?Pe(i)==0:!1}function xt(i){if(re(i)!=14)return!1;let r=ce(i);return r==P.I32?ae(i)!=0:r==P.I64?(Be(i)|Ge(i))!=0:r==P.F32?Ce(i)!=0:r==P.F64?Pe(i)!=0:!1}function No(i){if(re(i)!=14)return!1;let r=ce(i);if(r==P.F32){let e=Ce(i);return e==0&&f32_as_i32(e)<0}if(r==P.F64){let e=Pe(i);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function oE(i){if(re(i)!=14)return!1;let r=ce(i);return r==P.F32?isNaN(Ce(i)):r==P.F64?isNaN(Pe(i)):!1}function Lo(i,r){let e=re(r),t=ce(r);if(t==P.F32||t==P.F64){if(e==14)return isNaN(t==P.F32?Ce(r):Pe(r));if(e==10){let n=i.runExpression(r,0,8);if(n)return isNaN(t==P.F32?Ce(n):Pe(n))}}return!1}function Ct(i){return Ma(i)}function Mo(i){return Ci(i)}function zo(i){return Dr(i)}function bs(i){return za(i)}function xs(i){return Ye(Ga(i))}function tn(i){return mh(i)}function st(i){return Kn(i)}function We(i){return Hn(i)}function Es(i){return ph(i)}function Do(i){return Wn(i)}function _f(i){return eh(i)}function uE(i){return Jd(i)}function cE(i){return On(i)}function df(i){return Yd(i)}function pE(i){return Ua(i)}function fE(i){return Va(i)}function _E(i){return Gr(i)}function dE(i){return qn(i)}function As(i){return Ye(Ca(i))}function Ts(i){return Pn(i)}function Ss(i,r){return Bn(i,r)}function Go(i){return Nn(i)}function vs(i){return Ln(i)}function rn(i){return Mn(i)}function hE(i){return Ye(Pa(i))}function mE(i){return zn(i)}function yE(i){return Ye(Ba(i))}function gE(i){return Dn(i)}function hf(i){return jn(i)}function mf(i){return Qn(i)}function bE(i){return Xn(i)}function xE(i){return Zn(i)}function EE(i){return Ur(i)}function Is(i){return Ye(Ri(i))}function Pt(i){return dr(i)}function Je(i,r){return hr(i,r)}function AE(i){return Vn(i)}function TE(i){return mr(i)}function yf(i){return Ye(Li(i))}function SE(i){return Yn(i)}function vE(i){return Jn(i)}function IE(i){let r=Wa(i),e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=Ka(i,t));return e}function kE(i){return Ye(ig(i))}function FE(i){return ng(i)}function gf(i){return sg(i)}function wE(i){return Za(i)}function RE(i){return Ye(ug(i))}function CE(i){return cg(i)}function PE(i){return pg(i)}var Co=class i{constructor(r,e){this.module=r;this.ref=e}static create(r){return new i(r,Cg(r.ref))}addBlock(r){return Pg(this.ref,r)}addBranch(r,e,t=0,n=0){Bg(r,e,t,n)}addBlockWithSwitch(r,e){return Ng(this.ref,r,e)}addBranchForSwitch(r,e,t,n=0){let s=BE(t);Lg(r,e,s,t.length,n),ne(s)}renderAndDispose(r,e){return Mg(this.ref,r,e)}},ys=class{constructor(r,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=r,this.condition=e}addOrReplaceCase(r,e){let t=this.values.indexOf(r),n=this.addCode(e);t>=0?this.indexes[t]=n:(this.values.push(r),this.indexes.push(n))}addCase(r,e){this.values.push(r),this.indexes.push(this.addCode(e))}addCode(r){let e=this.cases,t=e.indexOf(r);return t<0&&(t=e.length,e.push(r)),t}addDefault(r){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(r)}render(r,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),c=new Array(s);for(let y=0;y<s;++y)unchecked(c[y]=`case${y}${e}`);u[0]=t.local_set(r,this.condition,!1);for(let y=0;y<l;++y){let E=unchecked(o[y]);unchecked(u[1+y]=t.br(c[E],t.binary(15,t.local_get(r,P.I32),t.i32(a[y]))))}let f=this.defaultIndex,_=`default${e}`;u[1+l]=t.br(~f?c[f]:_);let d=t.block(c[0],u);for(let y=1;y<s;++y){let E=n[y-1];E.unshift(d),d=t.block(unchecked(c[y]),E)}let g=n[s-1];return g.unshift(d),t.block(~f?null:_,g)}},bf=(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))(bf||{});function ks(i,r){return Rg(i,r)}function Uo(i,r){return(ks(i,r)&-21)!=0}function hs(i){if(!i)return 0;let r=i.length,e=kt(r);for(let t=0;t<r;++t)qe(e+t,unchecked(i[t]));return e}function BE(i){if(!i)return 0;let r=i.length,e=kt(r<<2),t=e;for(let n=0;n<r;++n){let s=unchecked(i[n]);Ya(t,s),t+=4}return e}function Yp(i){if(!i)return 0;let r=i.length,e=kt(r<<2),t=e;for(let n=0;n<r;++n){let s=unchecked(i[n]);Ya(t,s),t+=4}return e}function Ee(i){if(!i)return 0;assert(ASC_TARGET!=2);let r=i.length,e=kt(r<<2),t=e;for(let n=0,s=r;n<s;++n){let a=unchecked(i[n]);Ya(t,a),t+=4}return e}function NE(i){let r=0;for(let e=0,t=i.length;e<t;++e){let n=i.charCodeAt(e)>>>0;n<=127?r+=1:n<=2047?r+=2:Ki(n)&&e+1<t&&ul(i.charCodeAt(e+1))?(e++,r+=4):r+=3}return r}function Ro(i){if(i==null)return 0;let r=NE(i),e=kt(r+1)>>>0,t=e;if(r==i.length)for(let n=0,s=i.length;n<s;++n){let a=i.charCodeAt(n)>>>0;qe(t++,a)}else for(let n=0,s=i.length;n<s;++n){let a=i.charCodeAt(n)>>>0,l;a<=127?qe(t++,a):a<=2047?(qe(t++,192|a>>>6),qe(t++,128|a&63)):Ki(a)&&n+1<s&&ul(l=i.charCodeAt(n+1))?(a=ns(a,l),++n,qe(t++,240|a>>>18),qe(t++,128|a>>>12&63),qe(t++,128|a>>>6&63),qe(t++,128|a&63)):(qe(t++,224|a>>>12),qe(t++,128|a>>>6&63),qe(t++,128|a&63))}return qe(t,0),e}function LE(i,r){let e=new Uint8Array(r);for(let t=0;t<r;++t)unchecked(e[t]=Vr(i+t));return e}function Ye(i){if(!i)return null;let r=new Array,e,t,n,s;for(;e=Vr(i++);){if(!(e&128)){r.push(e);continue}if(t=Vr(i++)&63,(e&224)==192){r.push((e&31)<<6|t);continue}if(n=Vr(i++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Vr(i++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)r.push(e);else{let a=e-65536;r.push(is|a>>>10),r.push(Wi|a&1023)}}return String.fromCharCodes(r)}var Po=class{constructor(r,e){this.output=r;this.sourceMap=e}},$t=!1;function Fs(i){if(i==p.void)return P.None;let r=Zb(i);if(r)return r;let e=i;if(i=i.nonNullableType,r=i.ref)return Ae(fr(r),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Gg(0),n=new Map;br(t,n,i);let s=$a(t),a=kt(max(4*s,8));if(!qg(t,a,a,a+4)){let l=yr(a),o=yr(a+4);throw ne(a),new Error(`type builder error at index ${l}: ${Jp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let f=yr(a+4*o),_=Ae(f,!1);assert(!c.ref),c.ref=_,$t&&console.log(` set ${c.toString()}`);let d=c.getClass();if(d){let g=d.program.module;Wg(g.ref,f,g.allocStringCached(d.internalName));let y=d.members;if(y){let E=cd(f),T=0;for(let k=Map_values(y),F=0,w=k.length;F<w;++F){let R=k[F];if(R.kind!=10)continue;let B=R.instance;!B||!B.isField||Kg(g.ref,f,T++,g.allocStringCached(B.name))}assert(E==T)}}}return ne(a),$t&&console.log(` finalize ${i.toString()}`),r=assert(i.ref),Ae(fr(r),e.is(512))}function Zb(i){switch(i.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return P.I32;case 4:case 9:return P.I64;case 5:case 10:{if(i.isInternalReference)break;return i.size==64?P.I64:P.I32}case 11:return P.F32;case 12:return P.F64;case 13:return P.V128;case 16:return Ae(Ie.Func,i.is(512));case 15:return Ae(Ie.Extern,i.is(512));case 17:return Ae(Ie.Any,i.is(512));case 18:return Ae(Ie.Eq,i.is(512));case 19:return Ae(Ie.Struct,i.is(512));case 20:return Ae(Ie.Array,i.is(512));case 21:return Ae(Ie.I31,i.is(512));case 22:return Ae(Ie.String,i.is(512));case 26:assert(!1)}return 0}function ME(i){switch(i.kind){case 0:case 1:case 6:return ms.I8;case 2:case 7:return ms.I16}return ms.NotPacked}function br(i,r,e){if(e==p.void)return P.None;let t=Zb(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(r.has(e))return $t&&console.log(` prepare ${e.toString()} (seen)`),changetype(r.get(e));$t&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=br(i,r,a.type));let o=$a(i);wp(i,1),$t&&console.log(` block [${o}]: ${e.toString()}`);let u=Rp(i,o);t=Mi(i,u,!1),r.set(e,t);let c=new Array,f=new Array,_=new Array,d=n.members;if(d)for(let T=Map_values(d),k=0,F=T.length;k<F;++k){let w=T[k];if(w.kind!=10)continue;let R=w.instance;if(!R||!R.isField)continue;let B=R.type;$t&&console.log(` field ${B.toString()}`),B.is(512)?c.push(Mi(i,fr(br(i,r,B.nonNullableType)),!0)):c.push(br(i,r,B)),f.push(ME(B)),_.push(1)}let g=Ee(c),y=Yp(f),E=Yp(_);return $t&&console.log(` concretize [${o}]: ${e.toString()}`),Vg(i,o,g,y,E,c.length),a&&($t&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),Og(i,o,fr(l))),ne(E),ne(y),ne(g),t}let s=e.getSignature();if(s){let a=$a(i);wp(i,1);let l=Mi(i,Rp(i,a),!1);r.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let g=0,y=c.length;g<y;++g){let E=c[g];E.is(512)?o.push(Mi(i,fr(br(i,r,E.nonNullableType)),!0)):o.push(br(i,r,E))}let f=s.returnType;u.push(f==p.void?P.None:f.is(512)?Mi(i,fr(br(i,r,f.nonNullableType)),!0):br(i,r,f));let _;if(o.length>1){let g=Ee(o);_=Cp(i,g,o.length),ne(g)}else _=o.length?o[0]:P.None;let d;if(u.length>1){let g=Ee(u);d=Cp(i,g,u.length),ne(g)}else d=u[0];return $t&&console.log(` concretize [${a}]: ${e.toString()}`),Ug(i,a,_,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Oo=(R=>(R[R.None=0]="None",R[R.Returns=1]="Returns",R[R.ReturnsWrapped=2]="ReturnsWrapped",R[R.ReturnsNonNull=4]="ReturnsNonNull",R[R.Throws=8]="Throws",R[R.Breaks=16]="Breaks",R[R.Continues=32]="Continues",R[R.AccessesThis=64]="AccessesThis",R[R.CallsSuper=128]="CallsSuper",R[R.Terminates=256]="Terminates",R[R.ConditionallyReturns=512]="ConditionallyReturns",R[R.ConditionallyThrows=1024]="ConditionallyThrows",R[R.ConditionallyBreaks=2048]="ConditionallyBreaks",R[R.ConditionallyContinues=4096]="ConditionallyContinues",R[R.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",R[R.MayReturnNonThis=16384]="MayReturnNonThis",R[R.UncheckedContext=32768]="UncheckedContext",R[R.CtorParamContext=65536]="CtorParamContext",R[R.InlineContext=131072]="InlineContext",R[R.AnyCategorical=511]="AnyCategorical",R[R.AnyConditional=15872]="AnyConditional",R))(Oo||{}),ws=(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))(ws||{}),xf=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(xf||{}),Ef=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(Ef||{}),Jt=class i{constructor(r,e=null){this.targetFunction=r;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}static createDefault(r){let e=new i(r);return r.is(524288)&&e.initThisFieldFlags(),r.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(r,e){let t=new i(r,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),r.program.options.uncheckedBehavior===2&&t.set(32768),t}get isInline(){return this.inlineFunction!=null}get sourceFunction(){let r=this.inlineFunction;return r||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}set(r){this.flags|=r}unset(r){this.flags&=~r}deriveConditionalFlags(){let r=this.flags&15872;return this.is(1)&&(r|=512),this.is(8)&&(r|=1024),this.is(16)&&(r|=2048),this.is(32)&&(r|=4096),this.is(64)&&(r|=8192),r}fork(r=!1,e=r){let t=new i(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,r?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=he(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(r,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(r)&&n.inherit(changetype(s.get(r))),n.inheritNonnullIfTrue(r),n}noteThen(r,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(r,e)}forkElse(r){let e=this.fork(),t=this.falseFlows;return t&&t.has(r)&&e.inherit(changetype(t.get(r))),e.inheritNonnullIfFalse(r),e}noteElse(r,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(r,e)}addScopedTypeAlias(r,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(r,e)}lookupScopedTypeAlias(r){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(r))return assert(t.get(r));e=e.parent}while(e);return null}lookupTypeAlias(r){let e=null;if(e=this.lookupScopedTypeAlias(r))return e;let t=this.sourceFunction.parent;return t.kind==5?t.flow.lookupTypeAlias(r):null}getTempLocal(r){let e=this.targetFunction.addLocal(r);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(r){let e=this.scopedLocals;return e&&e.has(r)?assert(e.get(r)):null}addScopedLocal(r,e){let t=this.getTempLocal(e);t.name=r,t.internalName=Ke(r,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(r)):this.scopedLocals=n=new Map,t.set(67108864),n.set(r,t),t}addScopedDummyLocal(r,e,t){let n=new ye(r,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(r)&&this.program.error(2451,t.range,r):this.scopedLocals=s=new Map,n.set(67108864),s.set(r,n),n}addScopedAlias(r,e,t,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(r)){let l=assert(s.get(r));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,r):this.program.errorRelated(2300,n.range,l.declaration.name.range,r)),l}assert(t<this.targetFunction.localsByIndex.length);let a=new ye(r,t,e,this.targetFunction);return a.set(67108864),s.set(r,a),a}freeScopedDummyLocal(r){let e=assert(this.scopedLocals);assert(e.has(r));let t=assert(e.get(r));assert(t.index==-1),e.delete(r)}lookupLocal(r){let e=this;do{let t=e.scopedLocals;if(t&&t.has(r))return assert(t.get(r));e=e.parent}while(e);return null}lookup(r){let e=this.lookupLocal(r);return e||this.sourceFunction.lookup(r)}isLocalFlag(r,e,t=!0){if(r<0)return t;let n=this.localFlags;return r<n.length&&(unchecked(n[r])&e)==e}isAnyLocalFlag(r,e,t=!0){if(r<0)return t;let n=this.localFlags;return r<n.length&&(unchecked(n[r])&e)!=0}setLocalFlag(r,e){if(r<0)return;let t=this.localFlags,n=r<t.length?unchecked(t[r]):0;t[r]=n|e}unsetLocalFlag(r,e){if(r<0)return;let t=this.localFlags,n=r<t.length?unchecked(t[r]):0;t[r]=n&~e}initThisFieldFlags(){let r=this.sourceFunction;assert(r.is(524288));let e=r.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(r,e){let t=this.thisFieldFlags;return t!=null&&t.has(r)?(changetype(t.get(r))&e)==e:!1}setThisFieldFlag(r,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(r)){let n=changetype(t.get(r));t.set(r,n|e)}else t.set(r,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let r=this.targetFunction,e=r.nextBreakId++,t=r.breakStack;return t?t.push(e):r.breakStack=[e],e}popControlFlowLabel(r){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.pop()==r)}inherit(r){assert(r.targetFunction==this.targetFunction);let e=r.flags;this.breakLabel!=r.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=r.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=r.localFlags,this.thisFieldFlags=r.thisFieldFlags}mergeSideEffects(r){assert(r.targetFunction==this.targetFunction);let e=this.flags,t=r.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:r.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:r.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(r){this.mergeSideEffects(r);let e=this.localFlags,t=e.length,n=r.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(r,e){assert(r.targetFunction==e.targetFunction),assert(r.targetFunction==this.targetFunction);let t=r.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,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=r.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=r.localFlags,u=o.length,c=e.localFlags,f=c.length,_=max(u,f);for(let d=0;d<_;++d){let g=d<u?o[d]:0,y=d<f?c[d]:0;a[d]=g&y&15}}let l=r.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),f=0,_=c.length;f<_;++f){let d=c[f];(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(r,e){let t=this.localFlags.length,n=r.localFlags.length,s=this.targetFunction;assert(s==r.targetFunction);let a=s.localsByIndex;assert(a==r.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(t,n);o<u;++o){let f=a[o].type;f.isShortIntegerValue&&this.isLocalFlag(o,2)&&!r.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),f.isNullableReference&&this.isLocalFlag(o,4)&&!r.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(r,e){if(!e.isNullableReference)return!0;switch(re(r)){case 9:{if(!bs(r))break;let t=this.targetFunction.localsByIndex[Mo(r)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Ct(r)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(r,e=null){switch(re(r)){case 9:{if(!bs(r))break;let t=this.targetFunction.localsByIndex[Mo(r)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(zo(r),e);break}case 8:{let t=this.targetFunction.localsByIndex[Ct(r)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=rn(r);t&&nt(t)&&(this.inheritNonnullIfTrue(Go(r),e),this.inheritNonnullIfTrue(vs(r),e));break}case 15:{switch(Es(r)){case 20:case 21:{this.inheritNonnullIfFalse(Do(r),e);break}}break}case 16:{switch(tn(r)){case 15:case 40:{let t=st(r),n=We(r);xt(t)?this.inheritNonnullIfTrue(n,e):xt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=st(r),n=We(r);nt(t)?this.inheritNonnullIfTrue(n,e):nt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Is(r);if(t==m.String_eq){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);xt(n)?this.inheritNonnullIfTrue(s,e):xt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==m.String_ne){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);nt(n)?this.inheritNonnullIfTrue(s,e):nt(s)&&this.inheritNonnullIfTrue(n,e)}else t==m.String_not?(assert(Pt(r)==1),this.inheritNonnullIfFalse(Je(r,0),e)):t==m.tostack&&(assert(Pt(r)==1),this.inheritNonnullIfTrue(Je(r,0),e));break}}}inheritNonnullIfFalse(r,e=null){switch(re(r)){case 15:{switch(Es(r)){case 20:case 21:{this.inheritNonnullIfTrue(Do(r),e);break}}break}case 2:{let t=vs(r);rn(r)&&xt(t)&&(this.inheritNonnullIfFalse(Go(r),e),this.inheritNonnullIfFalse(rn(r),e));break}case 16:{switch(tn(r)){case 15:case 40:{let t=st(r),n=We(r);nt(t)?this.inheritNonnullIfTrue(n,e):nt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=st(r),n=We(r);xt(t)?this.inheritNonnullIfTrue(n,e):xt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Is(r);if(t==m.String_eq){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);nt(n)?this.inheritNonnullIfTrue(s,e):nt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==m.String_ne){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);xt(n)?this.inheritNonnullIfTrue(s,e):xt(s)&&this.inheritNonnullIfTrue(n,e)}else t==m.String_not?(assert(Pt(r)==1),this.inheritNonnullIfTrue(Je(r,0),e)):t==m.tostack&&(assert(Pt(r)==1),this.inheritNonnullIfFalse(Je(r,0),e));break}}}canOverflow(r,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(r)){case 8:{let n=this.targetFunction.localsByIndex[Ct(r)];return!this.isLocalFlag(n.index,2,!0)||Vo(n.type,e)}case 9:return assert(bs(r)),this.canOverflow(zo(r),e);case 10:{let n=assert(this.program.elementsByName.get(assert(xs(r))));return assert(n.kind==0||n.kind==3),Vo(n.type,e)}case 16:{switch(tn(r)){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=st(r))==14&&(ae(t)==0||ae(t)==1&&!this.canOverflow(We(r),e))||re(t=We(r))==14&&(ae(t)==0||ae(t)==1&&!this.canOverflow(st(r),e)));case 7:return!(re(t=st(r))==14&&ae(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e)||re(t=We(r))==14&&ae(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=We(r))!=14||ae(t)<n}case 11:{let n=32-e.size;return this.canOverflow(st(r),e)&&(re(t=We(r))!=14||ae(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=We(r))==14&&ae(t)>n):this.canOverflow(st(r),e)&&!(re(t=We(r))==14&&ae(t)>=n)}case 4:case 5:case 6:return this.canOverflow(st(r),e)||this.canOverflow(We(r),e)}break}case 15:{switch(Es(r)){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(ce(r)){case P.I32:{n=ae(r);break}case P.I64:{n=Be(r);break}case P.F32:{n=i32(Ce(r));break}case P.F64:{n=i32(Pe(r));break}case P.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=df(r);switch(_f(r)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return Vo(n,e)}case 1:{if(!As(r)){let n=assert(Ts(r)),s=Ss(r,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(vs(r),e)||this.canOverflow(assert(rn(r)),e);case 17:return this.canOverflow(hf(r),e)||this.canOverflow(mf(r),e);case 6:{let s=this.program.instancesByName,a=assert(Is(r));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)||Vo(u,e)}return!1}case 23:return!1}return!0}toString(){let r=0,e=this.parent;for(;e;)e=e.parent,++r;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})[${r}] ${t.join(" ")}`}};function Vo(i,r){return r.isShortIntegerValue&&(!i.isIntegerValue||i.size>r.size||i.isSignedIntegerValue!=r.isSignedIntegerValue)}var jo=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(jo||{});function zE(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="align"}function DE(i){if(!i)return null;for(let r=0,e=i.length;r<e;++r){let t=i[r];if(zE(t))return t}return null}function GE(i){switch(i.kind){case 1:case 6:case 2:case 7:case 3:case 8:return!0;default:return!1}}var Rs=class extends tt{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.allowInlineView=!1;this.allowInlineViewParam=!1;this.viewCalls=null;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}markViewCall(e){let t=this.viewCalls;t==null&&(this.viewCalls=t=new Set),t.add(e)}isViewCall(e){let t=this.viewCalls;return t!=null&&t.has(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}case 4:{l=this.resolveFixedArrayType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l!=null&&e.memoryModel!=0&&(l=this.checkMemoryModelOverride(e,l,a)),l}checkMemoryModelOverride(e,t,n){let s=e.memoryModel,a=Wo(t);return a==0||s==a?t:s==2&&a==3?(n==0&&this.error(6394,e.range,t.toString()),null):(s==3||s==2)&&a==1?s==3&&(this.allowInlineView||this.allowInlineViewParam)?t:(n==0&&this.error(6395,e.range,t.toString(),UE(s)),null):t}resolveNamedType(e,t,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let _=l.identifier.text;if(s&&s.has(_)){let d=assert(s.get(_));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 c=this.resolveTypeName(l,t,n,a);if(!c)return null;let f=c.shadowType;if(f)c=f;else{if(c.kind==2){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let _=this.resolveEnumType(c,a);return e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/${_.toString()}`),_}if(c.kind==6||c.kind==8){let _=this.resolveClassInclTypeArguments(c,o,t,n,he(s),e,a);return _?e.isNullable?_.type.asNullable():_.type:null}}if(c.kind==14){let _=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let E=_.type;if(e.isNullable){if(E.isReference)return E.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return E}if(u){let E=l.identifier.text;if(er.has(E)){let T=assert(er.get(E)),k=new Qo(this,e,n,s,a);return T(k)}}let d=_.typeParameterNodes,g=null;if(d){if(g=this.resolveTypeArguments(d,o,t,n,s=he(s),e,a),!g)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let y=this.resolveType(_.typeNode,t,c,s,a);if(!y)return null;if(e.isNullable){if(y.isReference)return y.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return y}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveEnumType(e,t=0){if(e.underlyingTypeResolved)return e.type;let n=e.declaration.underlyingTypeNode;if(!n)return e.underlyingTypeResolved=!0,e.type;if(e.underlyingTypeResolving)return p.i32;e.underlyingTypeResolving=!0;let s=this.resolveType(n,null,e.parent,null,t);if(e.underlyingTypeResolving=!1,!s)return p.i32;if(!GE(s))return t==0&&this.error(6403,n.range,s.toString()),p.i32;e.refineType(s);let a=e.members;if(a)for(let l=Map_values(a),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]);c.kind==3&&c.refineType(s)}return e.underlyingTypeResolved=!0,s}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,c=u.length,f=new Array(c),_=0,d=!1,g=this.allowInlineViewParam;this.allowInlineViewParam=!0;for(let k=0;k<c;++k){let F=u[k];switch(F.parameterKind){case 0:{_=k+1;break}case 2:{assert(k==c-1),d=!0;break}}let w=F.type;if(De(w))return a==0&&this.error(1110,w.range),null;let R=this.resolveType(w,t,n,s,a);if(!R)return null;if(R==p.void)return a==0&&this.error(214,w.range,R.toString()),null;f[k]=R}this.allowInlineViewParam=g;let y=e.returnType,E;if(De(y))a==0&&this.error(1110,y.range),E=p.void;else if(E=this.resolveType(y,t,n,s,a),!E)return null;let T=de.create(this.program,f,E,o,_,d);return e.isNullable?T.type.asNullable():T.type}resolveFixedArrayType(e,t,n,s=null,a=0){let l=this.resolveType(e.elementType,t,n,s,a);return l?l.classReference!=null&&assert(l.classReference).hasDecorator(4096)?(a==0&&this.error(100,e.elementType.range,"an inline array (T[N]) of an @inline struct (elements by value are a later phase)"),null):l.isMemory?p.fixedArray(l,e.length):(a==0&&this.error(203,e.elementType.range,"a fixed-size array of",l.toString()),null):null}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,c=0;for(let g=0,y=e.length;g<y;++g)e[g].defaultType||++u,++c;let f=t?t.length:0;if(f<u||f>c)return o==0&&this.error(2558,f?ue.join(t[0].range,t[f-1].range):l.range,(f<u?u:c).toString(),f.toString()),null;let _=new Array(c),d=he(a);a.clear();for(let g=0;g<c;++g){let y=g<f?this.resolveType(t[g],n,s,d,o):this.resolveType(assert(e[g].defaultType),n,s,he(a),o);if(!y)return null;a.set(e[g].name.text,y),_[g]=y}return _}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a){if(!t.is(65536))return s==0&&this.error(2315,e.expression.range,t.internalName),null;let l=t.internalName==m.changetype;if(l&&a.length==1&&a[0].memoryModel==3){let u=this.viewCalls;u==null&&(this.viewCalls=u=new Set),u.add(e)}l&&(this.allowInlineView=!0);let o=this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,he(n.contextualTypeArguments),e,s);return l&&(this.allowInlineView=!1),o}if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,he(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=he(s.contextualTypeArguments),o=n.length,u=new Set;for(let E=0;E<o;++E){let T=n[E].name.text;l.set(T,p.auto),u.add(T)}let c=t.functionTypeNode.parameters,f=c.length,_,d;switch(e.kind){case 11:{let E=e;_=E.args,d=E.argumentsRange;break}case 19:{let E=e;_=E.args,d=E.argumentsRange;break}default:return assert(!1),null}let g=_.length;for(let E=0;E<f;++E){let T=E<g?_[E]:c[E].initializer;if(!T){if(c[E].parameterKind==1)continue;return a==0&&(c[E].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,f.toString(),g.toString())),null}let k=c[E].type;if(c[E].parameterKind==2&&(k=k.typeArguments[0]),k.hasGenericComponent(n)){let F=this.resolveExpression(T,s,p.auto,1);F&&this.propagateInferredGenericTypes(k,F,t,l,u)}}let y=new Array(o);for(let E=0;E<o;++E){let T=n[E],k=T.name.text;if(l.has(k)){let F=assert(l.get(k));if(F!=p.auto){y[E]=F;continue}let w=T.defaultType;if(w){let R=t.parent,B=null;(R.kind==7||R.kind==5)&&(B=R.contextualTypeArguments);let M=this.resolveType(w,null,t,B,a);if(!M)return null;y[E]=M;continue}}if(a==0){let F;switch(e.kind){case 11:F=e.expression.range;break;case 19:F=e.typeName.range;break;default:return assert(!1),null}this.error(1140,F.atEnd)}return null}return y}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 c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let f=u.typeArguments;if(f&&f.length==o.length){for(let _=0,d=f.length;_<d;++_)this.propagateInferredGenericTypes(o[_],f[_],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let c=u.parameterTypes;for(let g=0,y=min(c.length,o.length);g<y;++g)this.propagateInferredGenericTypes(o[g].type,c[g],n,s,a);let f=u.returnType;f!=p.void&&this.propagateInferredGenericTypes(l.returnType,f,n,s,a);let _=u.thisType,d=l.explicitThisType;_&&d&&this.propagateInferredGenericTypes(d,_,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Ko(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=p.auto,s=0){for(;e.kind==22;)e=e.expression;switch(e.kind){case 9:return this.lookupAssertionExpression(e,t,n,s);case 10:return this.lookupBinaryExpression(e,t,n,s);case 11:return this.lookupCallExpression(e,t,n,s);case 13:return this.lookupCommaExpression(e,t,n,s);case 14:return this.lookupElementAccessExpression(e,t,n,s);case 16:return this.lookupFunctionExpression(e,t,n,s);case 8:case 15:case 20:case 27:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 26:return this.lookupThisExpression(e,t,n,s);case 25:return this.lookupSuperExpression(e,t,n,s);case 17:return this.lookupInstanceOfExpression(e,t,n,s);case 18:return this.lookupLiteralExpression(e,t,n,s);case 19:return this.lookupNewExpression(e,t,n,s);case 23:return this.lookupPropertyAccessExpression(e,t,n,s);case 24:return this.lookupTernaryExpression(e,t,n,s);case 29:return this.lookupUnaryPostfixExpression(e,t,n,s);case 30:return this.lookupUnaryPrefixExpression(e,t,n,s);case 31:{let a=this.resolveAwaitExpression(e,t,s);return a?this.getElementOfType(a):null}}return assert(!1),null}resolveExpression(e,t,n=p.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=p.auto,s=0){for(;e.kind==22;)e=e.expression;switch(e.kind){case 9:return this.resolveAssertionExpression(e,t,n,s);case 10:return this.resolveBinaryExpression(e,t,n,s);case 11:return this.resolveCallExpression(e,t,n,s);case 13:return this.resolveCommaExpression(e,t,n,s);case 14:return this.resolveElementAccessExpression(e,t,n,s);case 16:return this.resolveFunctionExpression(e,t,n,s);case 8:case 15:case 20:case 27:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 26:return this.resolveThisExpression(e,t,n,s);case 25:return this.resolveSuperExpression(e,t,n,s);case 17:return this.resolveInstanceOfExpression(e,t,n,s);case 18:return this.resolveLiteralExpression(e,t,n,s);case 19:return this.resolveNewExpression(e,t,n,s);case 23:return this.resolvePropertyAccessExpression(e,t,n,s);case 24:return this.resolveTernaryExpression(e,t,n,s);case 29:return this.resolveUnaryPostfixExpression(e,t,n,s);case 30:return this.resolveUnaryPrefixExpression(e,t,n,s);case 31:return this.resolveAwaitExpression(e,t,s)}return assert(!1),null}resolveAwaitExpression(e,t,n=0){let s=this.resolveExpression(e.operand,t,p.auto,n);if(!s)return null;let a=this.resolveTaskValueType(s);return a??s}resolveTaskValueType(e){let t=e.getClass();if(!t)return null;let n=this.program.taskPrototype;if(!n)return null;let s=t.getTypeArgumentsTo(n);return!s||s.length!=1?null:s[0]}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 27:case 15:case 20:{let u=this.resolveIdentifierExpression(e,t,p.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=p.auto,s=t.sourceFunction,a=0){switch(e.kind){case 27:case 15:return p.bool;case 20:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,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,p.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,c=u.type;if(c==p.void)return null;let f=c.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=f;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let f=c.signature.returnType,_=f.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,f.toString()),null;l=_;break}case 15:{let c=l.parent;assert(c.kind==7);let f=c,_=assert(this.currentElementExpression),d=f.lookupOverload(1);if(!d)return s==0&&this.error(2329,_.range,c.internalName),null;let g=d.signature.returnType,y=g.getClassOrWrapper(this.program);if(!y)return s==0&&this.error(2339,e.property.range,o,g.toString()),null;l=y;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let f=this.resolveType(u.typeNode,null,u.parent,null,s);f&&u.setType(f)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let f=this.resolveFunction(l,null,new Map,1);if(f){let _=f.type.getClassOrWrapper(this.program);_&&(l=_)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let f=u.getMember(o);if(f){if(f.kind==10){let _=this.resolveProperty(f,s);if(!_)return null;f=_,_.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,f}switch(c=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(c=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(c=!0,u=d);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,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?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,t,n=p.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=p.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=p.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,Le(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 83:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 82:case 88:case 89:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Me.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Le(l),o.toString()),null)}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 97:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 70:return s==0&&this.error(100,e.range,"Spread operator"),null;case 57:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,t,n=p.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,Le(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=p.auto,s=0){let a=e.operator;switch(a){case 88:case 89:{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(Me.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Le(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=p.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=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:return this.resolveExpression(a,t,n,s);case 73:case 74:case 75:case 76:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Le(o),u.toString()),null)}case 77:case 78:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return p.bool}case 79:case 80:return p.bool;case 29:return p.bool;case 82:case 83:case 85:case 86:case 87:case 84:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Me.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(l,t,u,s);if(!f)return null;let _=p.commonType(u,f,n);return _||s==0&&this.error(2365,e.range,Le(o),u.toString(),f.toString()),_}case 90:case 91:case 92:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Le(o),u.toString()),null)}case 93:case 94:case 95:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Me.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(l,t,n,s);if(!f)return null;let _=p.commonType(u,f,n);return(!_||!_.isIntegerValue)&&s==0&&this.error(2365,e.range,Le(o),u.toString(),f.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=this.resolveExpression(l,t,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),f}case 99:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=this.resolveExpression(l,t,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f?u.is(512)&&c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}markCapturingArrows(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];a.prototype.capturesThis||(a.prototype.capturesThis=!0,assert(!a.signature.thisType),a.addLocal(t,N.this_))}}lookupThisExpression(e,t,n=p.auto,s=0){if(t.isInline){let o=t.lookupLocal(N.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.sourceFunction,l=null;for(;a!=null&&a.prototype.arrowKind!=0;){l||(l=new Array),l.push(a);let o=a.parent;a=o!=null&&o.kind==5?o:null}if(a!=null){let o=a.parent;if(o!=null&&o.kind==7)return l&&this.markCapturingArrows(l,o.type),this.currentThisExpression=null,this.currentElementExpression=null,o;if(o!=null&&o.kind==6)return this.currentThisExpression=null,this.currentElementExpression=null,o;let u=a.flow.scopedLocals,c=u?ee(u,N.this_):null;if(c)return l&&this.markCapturingArrows(l,c.type),this.currentThisExpression=null,this.currentElementExpression=null,c}return s==0&&this.error(2332,e.range),null}resolveThisExpression(e,t,n=p.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=p.auto,s=0){if(t.isInline){let l=t.lookupLocal(N.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=p.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=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let f=0,_=o;f<_;++f){let d=l[f];if(d)if(d.kind==20&&o>1)++c;else{let g=this.resolveExpression(d,t,u);if(!g)return null;if(u==p.auto)u=g;else if(g!=u){let y=p.commonType(u,g,u);y&&(u=y)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,t,n=p.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=p.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=p.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==m.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:{let o=l;if(o.prototype.isAsync){let u=this.resolveAsyncCallType(o,s);if(u)return u}return o.signature.returnType}case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Ko(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}resolveAsyncCallType(e,t=0){let n=this.program.taskPrototype;if(!n)return null;let s=this.resolveClass(n,[e.signature.returnType],new Map,t);return s?s.type:null}lookupCommaExpression(e,t,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=p.auto,s=0){return p.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=p.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,he(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==42&&De(l.returnType)){let c=o.expression,f=assert(u.getSignature()),_=Jt.createDefault(t.sourceFunction),d=l.parameters;assert(f.parameterTypes.length==d.length);for(let y=0,E=d.length;y<E;y++){let T=d[y],k=f.parameterTypes[y];_.addScopedDummyLocal(T.name.text,k,T)}let g=this.resolveExpression(c,_,n,s);g&&(u.signatureReference=de.create(this.program,f.parameterTypes,g,f.thisType,f.requiredParameters,f.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?Ho(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let z=e.getResolvedInstance(l);if(z)return z;let U=a.typeArguments;if(U){let j=assert(a.prototype.typeParameterNodes),Y=j.length;assert(Y==j.length);for(let O=0;O<Y;++O){let ie=j[O].name.text;n.set(ie,U[O])}}}else{assert(!e.isBound);let z=e.getResolvedInstance(l);if(z)return z}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(t&&(c=t.length)>0){assert(u&&c==u.length);for(let z=0;z<c;++z)n.set(u[z].name.text,t[z])}else assert(!u||u.length==0);let f=null,_=o.explicitThisType;if(_){if(f=this.resolveType(_,null,e.parent,n,s),!f)return null;n.set(N.this_,f)}else a&&(f=a.type,n.set(N.this_,f));let d=o.parameters,g=d.length,y=new Array(g),E=null,T=0,k=!1,F=this.allowInlineViewParam;this.allowInlineViewParam=!0;for(let z=0;z<g;++z){let U=d[z];U.parameterKind==0?T=z+1:U.parameterKind==2&&(k=!0);let j=U.type;if(De(j))return s==0&&this.error(1110,j.range),null;let Y=this.resolveType(j,null,e.parent,n,s);if(!Y)return null;if(Y==p.void)return s==0&&this.error(1110,j.range),null;y[z]=Y;let O=j.memoryModel;if(O!=0){if(E==null){E=new Array(g);for(let ie=0;ie<g;++ie)unchecked(E[ie]=0)}unchecked(E[z]=O)}}this.allowInlineViewParam=F;let w;if(e.is(4096))w=p.void;else if(e.is(524288))w=a.type;else{let z=o.returnType;if(De(z))return s==0&&this.error(1110,z.range),null;let U=this.resolveType(z,null,e.parent,n,s);if(!U)return null;w=U}let R=e.is(524288)&&w.classReference!=null&&assert(w.classReference).hasDecorator(4096),B=e.hasAnyDecorator(384)&&$b(y,E),M=e.is(1048576)&&!e.hasAnyDecorator(384)&&$b(y,E);if(E!=null&&(e.hasAnyDecorator(384)||e.is(1048576))){for(let z=0;z<g;++z)if(unchecked(E[z])==3&&de.isInlineStructRef(unchecked(y[z])))return s==0&&this.error(6411,d[z].type.range,unchecked(y[z]).toString()),null}if(E!=null&&(e.hasAnyDecorator(384)||e.is(1048576))){for(let z=0;z<g;++z)if(unchecked(E[z])==3&&de.isInlineStructRef(unchecked(y[z])))return s==0&&this.error(6411,d[z].type.range,unchecked(y[z]).toString()),null}let q=de.create(this.program,y,w,f,T,k,R,B,M,E),G=e.name;l.length&&(G+=`<${l}>`);let X=new Lt(G,e,t,q,n);if(e.setResolvedInstance(l,X),a){let z=X.declaration.name.text,U=a.base;if(U){let j=U.getMember(z);if(j){this.discoveredOverride=!0;let Y=!0;if(X.isAny(6144)){if(j.kind==10){let O=this.resolveProperty(j,s);if(O)if(X.is(2048)){let ie=O.getterInstance;ie&&X.signature.isAssignableTo(ie.signature,!0)&&(Y=!1)}else{assert(X.is(4096));let ie=O.setterInstance;ie&&X.signature.isAssignableTo(ie.signature,!0)&&(Y=!1)}}}else if(X.is(524288))Y=!1;else if(j.kind==4){let O=j,ie=O.typeParameterNodes,H=ie!=null&&ie.length>0,ge=t!=null&&t.length>0;if(H!=ge)this.errorRelated(242,X.identifierAndSignatureRange,j.identifierAndSignatureRange,z),Y=!1;else{let oe=this.resolveFunction(O,t,new Map,1);oe&&X.signature.isAssignableTo(oe.signature,!0)&&(Y=!1)}}Y&&this.errorRelated(2394,X.identifierAndSignatureRange,j.identifierAndSignatureRange)}}}return X}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let f=assert(u.prototype.typeParameterNodes),_=c.length;assert(_==f.length);for(let d=0;d<_;++d)s.set(f[d].name.text,c[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 c=u.parent,f;if(assert(c.kind==6||c.kind==8),f=c.instances,!!f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d){let y=_[d];if(!y.isAssignableTo(n))continue;let E=null;if(e.isAny(6144)){let T=e.declaration.name.text,k=assert(y.getMember(T));assert(k.kind==10);let F=this.resolveProperty(k);if(!F)continue;e.is(2048)?E=F.getterInstance:(assert(e.is(4096)),E=F.setterInstance)}else{let T=y.getMember(u.name);if(T){assert(T.kind==4);let k=T;k.is(65536)==e.is(65536)&&(E=this.resolveFunction(k,e.typeArguments))}}E&&s.add(E)}}return Set_values(s)}findManagedLeaf(e,t){let n=e.classReference;if(n==null||t.has(n))return null;t.add(n);let s=n.members;if(!s)return null;for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);if(u.kind!=10)continue;let c=u.instance;if(c==null||!c.isField)continue;let f=c.type;if(f.isManaged)return c;if(f.kind==14){let _=f.fixedElementType;if(_!=null&&_.isManaged)return c}else if(Wo(f)==1){let _=this.findManagedLeaf(f,t);if(_!=null)return _}}return null}resolveClass(e,t,n=new Map,s=0){let a=t?Ho(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Bs(o,e,t):l=new Er(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),g=d.length,y=t.length;assert(y==g);for(let E=0;E<y;++E)n.set(d[E].name.text,t[E])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let c=!1,f=e.basePrototype;if(f){let d=f;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let g=assert(e.extendsNode),y=this.resolveClassInclTypeArguments(f,g.typeArguments,null,e.parent,he(n),g,s);if(!y)return null;l.setBase(y),u.has(y)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let _=e.interfacePrototypes;if(_)for(let d=0,g=_.length;d<g;++d){let y=_[d],E=y;do{if(E==e)return this.error(2506,e.identifierNode.range,e.internalName),null;E=E.basePrototype}while(E);let T=assert(e.implementsNodes[d]),k=this.resolveClassInclTypeArguments(y,T.typeArguments,null,e.parent,he(n),T,s);if(!k)return null;assert(k.kind==9),l.addInterface(k),u.has(k)&&(c=!0)}return c||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 g=Set_values(l),y=0,E=g.length;y<E;++y){let T=g[y];assert(!s.has(T));let k=T.members;if(k)for(let F=Map_keys(k),w=0,R=F.length;w<R;++w){let B=unchecked(F[w]),M=assert(k.get(B)),q=e.getMember(B);q&&!this.checkOverrideVisibility(B,q,e,M,T,t)||(n.set(B,M),a.set(B,M))}}let o=0,u=0,c=e.base;if(c){let g=e.prototype.implicitlyExtendsObject;assert(!s.has(c));let y=c.members;if(y)for(let E=Map_keys(y),T=0,k=E.length;T<k;++T){let F=unchecked(E[T]),w=assert(y.get(F));if(g&&w.is(32))continue;let R=e.getMember(F);R&&!this.checkOverrideVisibility(F,R,e,w,c,t)||(n.set(F,w),w.is(128)?a.set(F,w):a.delete(F))}o=c.nextMemoryOffset,u=c.alignLog2}let f=e.prototype,_=f.instanceMembers;if(_)for(let g=Map_values(_),y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=T.name;if(c){let F=c.getMember(k);F&&this.checkOverrideVisibility(k,T,e,F,c,t)}switch(T.kind){case 4:{let F=T.toBound(e);e.add(F.name,F);break}case 10:{let F=T.toBound(e);if(F.isField){let w=this.resolveProperty(F,t);if(w){let R=w.type;if(R==p.void)break;if(R.isExternalReference){this.error(100,assert(F.typeNode).range,"Reference typed fields");break}let B=!0;if(c){let q=c.getMember(F.name);if(q&&q.kind==10){let G=q,X=this.resolveProperty(G,t);if(X&&X.isField){if(X.type!=w.type){this.errorRelated(2416,w.identifierNode.range,X.identifierNode.range,w.name,e.internalName,c.internalName);break}w.memoryOffset=X.memoryOffset,B=!1}}}if(B){let q=null;if(Wo(R)==1){let Y=R.classReference;if(Y!=null){q=Y;let O=assert(F.fieldDeclaration).type;if(s.has(Y)){this.error(100,O.range,"a recursive @inline struct: '"+Y.name+"' would have an infinite size (it contains itself, directly or through another @inline struct, by value)");break}let ie=this.findManagedLeaf(Y.type,new Set);if(ie!=null){this.error(100,O.range,"an @inline struct field '"+ie.name+"' of '"+Y.name+"' is a GC reference, and"+(e.hasDecorator(2048)?" the __visit pass walks the outer's fields -- an inline field's GC pointer is invisible to it, so the collector would not trace it":" an inline field's GC pointer is invisible to the collector -- the field looks safe but is not; the escape hatch is a hand-written byte layout, not an @inline field"));break}}}let G=q!=null?q.nextMemoryOffset:R.byteSize;if(e.hasDecorator(2048)&&R.kind==14){let Y=R.fixedElementType;this.error(100,assert(F.fieldDeclaration).type.range,Y!=null&&Y.isManaged?"an inline array of GC references on an @managed struct (the collector cannot trace its elements)":"an inline array (T[N]) on an @managed struct (field initialization cannot fill an extent yet; see compiler.ts makeZero)");break}let X=q!=null?q.alignLog2:R.alignLog2,z=X,U=DE(assert(F.fieldDeclaration).decorators);if(U){let Y=U.args,O=i64_zero,ie=!1;if(Y&&Y.length==1&&Y[0].isLiteralKind(1)&&(O=Y[0].value,ie=!0),!ie)this.error(6405,U.range);else if(i64_lt(O,i64_one))this.error(6406,U.range,O.toString());else if(i64_gt(O,i64_new(1073741824,0)))this.error(6409,U.range,O.toString(),"1073741824");else{let H=i64_low(O);if((H&H-1)!=0)this.error(6407,U.range,O.toString());else{let ge=1<<X;if(H<ge)this.error(6408,U.range,O.toString(),ge.toString());else{let oe=0,pe=H;for(;pe>1;)pe>>=1,++oe;z=oe}}}}assert(z>=0),z>u&&(u=z);let j=(1<<z)-1;o&j&&(o=(o|j)+1),w.memoryOffset=o,o+=G}F.instance=w,e.add(F.name,F);let M=assert(F.fieldDeclaration).type;M&&(Wo(R)==1&&(e.hasDecorator(4096)||!e.hasDecorator(16)&&!e.hasDecorator(2048)&&this.error(100,M.range,"an @inline struct as a class field (a class field is a pointer slot; inline-in-heap is a separate, deferred case -- use an @unmanaged or @managed record field)")),this.program.checkTypeSupported(R,M))}}else e.add(F.name,F);break}default:assert(!1)}!T.is(128)&&!T.is(65536)&&a.delete(k)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let g=Map_keys(a),y=0,E=g.length;y<E;++y){let T=g[y],k=assert(a.get(T));this.errorRelated(2515,e.identifierNode.range,k.identifierNode.range,e.internalName,T,k.parent.internalName)}if(e.hasDecorator(16)||e.hasDecorator(2048)){let g=(1<<u)-1;o=o+g&~g}e.alignLog2=u,e.nextMemoryOffset=o;{let g=e.getMember(N.constructor);if(g&&g.parent==e){assert(g.kind==4);let y=this.resolveFunction(g,null,assert(e.contextualTypeArguments),t);y&&(e.constructorInstance=y)}}}let d=f.operatorOverloadPrototypes;for(let g=Map_keys(d),y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=assert(d.get(T));if(assert(T!=0),k.is(65536))continue;let F;if(k.is(262144)){let R=k.toBound(e);F=this.resolveFunction(R,null,new Map,t)}else F=this.resolveFunction(k,null,new Map,t);if(!F)continue;let w=e.operatorOverloads;if(w||(e.operatorOverloads=w=new Map),F.is(262144))switch(T){case 27:case 28:case 29:case 30:{let R=F.signature.returnType;R.isAssignableTo(e.type)||t==0&&this.error(2322,k.functionTypeNode.returnType.range,R.toString(),e.type.toString())}}if(w.has(T))t==0&&this.error(213,F.declaration.range);else if(w.set(T,F),T==1||T==2){let R=e.indexSignature;R||(e.indexSignature=R=new Ps(e)),T==1&&R.setType(F.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let g=Set_values(s),y=0,E=g.length;y<E;++y){let T=g[y],k=T.base==e,F=T.interfaces;if(F){let w=!1;for(let R=Set_values(F),B=0,M=R.length;B<M;++B){let q=R[B];q==e?k=!0:s.has(q)&&(w=!0)}if(w)continue}k&&this.finishResolveClass(T,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let f=e;f&&!c;f=f.basePrototype)c=f.constructorPrototype;if(!t&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,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 Cs(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]}};function $b(i,r){for(let e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);if((de.isInlineStructRef(n)||r!=null&&unchecked(r[e])==1)&&de.fieldCountOf(n)>1)return!0}return!1}function Wo(i){let r=i.classReference;return r==null?0:r.hasDecorator(4096)?1:r.hasDecorator(2048)?2:r.hasDecorator(16)?3:0}function UE(i){switch(i){case 1:return"@inline";case 2:return"@managed";case 3:return"@unmanaged";default:return"@none"}}var Ls=class{constructor(r,e){this.source=r;this.reportNode=e}};function Yb(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==6)return!0;return!1}function VE(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==7)return!0;return!1}function Jb(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==9)return!0;return!1}function ex(i){let r=null;if(i.kind==8)r=i.text;else if(i.kind==23)return 0;return r==null?0:r=="inline"?1:r=="managed"?2:r=="unmanaged"?3:0}function OE(i){let r=i.name;return r.kind==8&&r.text=="lazy"}function qE(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="align"}function WE(i,r){return i==1&&r==2||i==2&&r==1}var Ms=class extends tt{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.currentModuleName=null;this.options=null;this.unplacedLazyExpressions=null;this.awaitNullifiedLazyExpressions=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.inAsyncContext=!1;this.sources=t}parseFile(e,t,n){let s=Qr(t),a=ds(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let _=this.dependees,d=null;_.has(a)&&(d=assert(_.get(a))),this.error(6054,d?d.reportNode.range:null,t);return}let l=new Te(n?1:t.startsWith(Ft)?t.indexOf(mt,Ft.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new os(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(122);){let _=this.parseTopLevelStatement(o,null);_?u.push(_):this.skipStatement(o)}let c=this.unplacedLazyExpressions;this.unplacedLazyExpressions=null;let f=this.awaitNullifiedLazyExpressions;if(this.awaitNullifiedLazyExpressions=null,c!=null)for(let _=Set_values(c),d=0,g=_.length;d<g;++d){let y=unchecked(_[d]);this.error(f!=null&&f.has(y)?6402:6397,y.range)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(115);){s<0&&(s=e.tokenPos);let F=this.parseDecorator(e);if(!F){this.skipStatement(e);continue}a?a.push(F):a=[F]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let f=0,_=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),f=s,_=e.pos,n|=32772):d&&(n|=32768);let g=!1,y=0,E=0;if(e.peek()==2){let F=e.mark();e.next(),!e.peekOnNewLine()&&e.peek()==24?(g=!0,y=e.tokenPos,E=e.pos,s<0&&(s=y)):e.reset(F)}let T=null,k=e.peek();switch(s<0&&(s=e.nextTokenPos),k){case 8:{e.next(),n|=8,e.skip(17)?T=this.parseEnum(e,n,a,s):T=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 58:{e.next(),T=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),T=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),T=this.parseFunction(e,n,a,s,g),g&&T&&n&32768&&this.error(1042,e.range(y,E),"async"),a=null;break}case 0:{let F=e.mark();e.next();let w=e.tokenPos,R=e.pos;if(e.peekOnNewLine()){e.reset(F),T=this.parseStatement(e,!0);break}let B=e.peek();if(B!=7){B==31&&this.error(1242,e.range(w,R)),e.reset(F),T=this.parseStatement(e,!0);break}else e.discard(F);n|=128}case 7:case 31:{e.next(),T=this.parseClassOrInterface(e,n,a,s),a=null;break}case 49:{let F=e.tokenPos,w=e.range(F,e.pos),R=Yb(a),B=Jb(a),M=VE(a);M&&R&&this.error(6390,w),M&&Jb(a)&&this.error(6391,w),e.next();let q=this.parseClassOrInterface(e,n,M?a:this.withValueDefault(a,w,R||B),s);q&&(q.declaredAsStruct=!0,q.declaredAsManagedStruct=M),T=q,a=null;break}case 36:{let F=e.mark();e.next(),e.peek(1)==116?(e.discard(F),T=this.parseNamespace(e,n,a,s),a=null):(e.reset(F),T=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?T=this.parseExportImport(e,s):T=this.parseImport(e);break}case 56:{let F=e.mark();e.next(),e.peek(1)==116?(e.discard(F),T=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(F),T=this.parseStatement(e,!0));break}case 35:{let F=e.mark();e.next(),e.peek()==117&&!e.peekOnNewLine()?(e.discard(F),T=this.parseModuleDeclaration(e,n)):(e.reset(F),T=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(_&&this.error(1120,e.range(f,_)),T=this.parseExportDefaultAlias(e,s,u,c),u=c=0):T=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),_&&this.error(1042,e.range(f,_),"declare"),t?this.error(2695,e.range(s)):T=this.parseStatement(e,!0));break}}if(a)for(let F=0,w=a.length;F<w;++F)this.error(1206,a[F].range);if(c&&T!=null)switch(T.kind){case 56:case 59:case 55:case 61:case 63:return h.createExportDefaultStatement(T,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return T}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.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear()}parseTypeName(e){let t=h.createSimpleTypeName(e.readIdentifier(),e.range()),n=t;for(;e.skip(69);)if(e.skip(116)){let s=h.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return t}parseType(e,t=!0,n=!1){let s=0,a=null,l=e.next();for(;l==115;){let c=this.parseDecorator(e);if(!c)break;let f=ex(c.name);f==0?this.error(212,c.range,c.name.range.toString()):s!=0?this.error(WE(s,f)?6391:6393,ue.join(assert(a).range,c.range)):(s=f,a=c),l=e.next()}let o=e.tokenPos,u;if(l==65){let c=e.skip(65),f=this.tryParseFunctionType(e);if(f){if(c&&!e.skip(66))return n||this.error(1005,e.range(),")"),null;u=f}else{if(c||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(t){let _=this.parseType(e,!1,n);if(!_)return null;if(!e.skip(66))return n||this.error(1005,e.range(e.pos),")"),null;u=_,u.range.start=o,u.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(l==45){let c=this.parseType(e,t,n);if(!c)return null;u=c,u.range.start=o}else if(l==67&&this.options&&this.options.hasFeature(512)){let c=[],f=[],_=!1;if(!e.skip(68)){do{let d=null,g=e.mark();if(e.skip(116)){let E=e.readIdentifier(),T=e.range();e.skip(101)?(d=h.createIdentifierExpression(E,T),_=!0):e.reset(g)}let y=this.parseType(e,!0,n);if(!y)return null;c.push(y),f.push(d)}while(e.skip(72));if(!e.skip(68))return n||this.error(1005,e.range(e.pos),"]"),null}u=h.createTupleType(c,_?f:null,!1,e.range(o,e.pos))}else if(l==59)u=h.createNamedType(h.createSimpleTypeName("void",e.range()),[],!1,e.range(o,e.pos));else if(l==52)u=h.createNamedType(h.createSimpleTypeName("this",e.range()),[],!1,e.range(o,e.pos));else if(l==54||l==20)u=h.createNamedType(h.createSimpleTypeName("bool",e.range()),[],!1,e.range(o,e.pos));else if(l==38)u=h.createNamedType(h.createSimpleTypeName("null",e.range()),[],!1,e.range(o,e.pos));else if(l==117)e.readString(),u=h.createNamedType(h.createSimpleTypeName("string",e.range()),[],!1,e.range(o,e.pos));else if(l==116){let c=this.parseTypeName(e);if(!c)return null;let f=null;if(e.skip(73)){do{let _=this.parseType(e,!0,n);if(!_)return null;f?f.push(_):f=[_]}while(e.skip(72));if(!e.skip(74))return n||this.error(1005,e.range(e.pos),">"),null}f||(f=[]),u=h.createNamedType(c,f,!1,e.range(o,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(94);){let c=this.parseType(e,!0,!1);if(!c)return null;let f=u.kind==1&&u.isNull,_=c.kind==1&&c.isNull;if(!f&&!_)return n||this.error(100,c.range,"union types"),null;_?(u.isNullable=!0,u.range.end=c.range.end):f?(c.range.start=u.range.start,c.isNullable=!0,u=c):u.range.end=c.range.end}for(;e.skip(67);){let c=e.tokenPos,f=-1;if(e.peek()==118){e.next();let g=e.tokenPos,y=e.readInteger(),E=e.range(g,e.pos);if(!e.skip(68)||i64_lt(y,i64_new(1))||i64_gt(y,i64_new(i32.MAX_VALUE)))return n||this.error(1005,E,"]"),null;f=i64_low(y)}if(f>=0){u=h.createFixedArrayType(u,f,e.range(o,e.pos));continue}if(!e.skip(68))return n||this.error(1005,e.range(),"]"),null;let _=e.range(c,e.pos),d=!1;if(e.skip(94))if(e.skip(38))d=!0;else return n||this.error(100,e.range(),"union types"),null;if(u=h.createNamedType(h.createSimpleTypeName("Array",_),[u],d,e.range(o,e.pos)),d)break}for(;e.peek()==115&&!e.peekOnNewLine();){e.next();let c=this.parseDecorator(e);if(!c)break;if(ex(c.name)!=0){this.error(6392,c.range,c.name.range.toString());continue}if(OE(c)){this.error(6396,c.range);continue}if(qE(c)){this.error(6410,c.range);continue}u.attributes?assert(u.attributes).push(c):u.attributes=[c]}return s!=0&&(u.memoryModel=s),u}tryParseFunctionType(e){let t=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(66))l=!0,e.discard(t),s=[];else{l=!1;do{let f=-1,_=0;if(e.skip(70)&&(f=e.tokenPos,l=!0,e.discard(t),_=2),e.skip(52))if(f<0&&(f=e.tokenPos),e.skip(101)){l=!0,e.discard(t);let d=this.parseType(e,!1);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),this.tryParseSignatureIsSignature=!0,null;a=d}else return e.reset(t),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){f<0&&(f=e.tokenPos);let d=h.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(100)&&(l=!0,e.discard(t),_==2?this.error(1047,e.range()):_=1),e.skip(101)){l=!0,e.discard(t);let g=this.parseType(e);if(!g)return this.tryParseSignatureIsSignature=l,null;let y=h.createParameter(_,d,g,null,e.range(f,e.pos));s?s.push(y):s=[y]}else if(l||e.peek()==72&&(l=!0,e.discard(t)),l){let g=h.createParameter(_,d,h.createOmittedType(e.range(e.pos)),null,e.range(f,e.pos));s?s.push(g):s=[g],this.error(1110,g.type.range)}else s||(o=d,u=_)}else{if(l){if(e.peek()==66)break;this.error(1003,e.range())}else e.reset(t);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(72));if(!e.skip(66))return l?this.error(1005,e.range(),")"):e.reset(t),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(81)){if(!l&&(l=!0,e.discard(t),o)){let f=h.createParameter(u,o,h.createOmittedType(o.range.atEnd),null,o.range);s?s.push(f):s=[f],this.error(1110,f.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(t),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),h.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let t=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=h.createIdentifierExpression(n,e.range(t,e.pos));for(;e.skip(69);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=h.createPropertyAccessExpression(s,h.createIdentifierExpression(n,e.range()),e.range(t,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(65)){if(a=this.parseArguments(e),a)return h.createDecorator(s,a,e.range(t,e.pos))}else return h.createDecorator(s,null,e.range(t,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,t,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,t,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(72));let o=h.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(71)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,t,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=h.createIdentifierExpression(e.readIdentifier(),e.range());Zp(a.text)&&this.error(1003,a.range);let l=t;e.skip(96)&&(l|=16384);let o=null;e.skip(101)&&(o=this.parseType(e,!0));let u=null;if(e.skip(102)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;if(u.kind==32){let f=this.unplacedLazyExpressions;f?.delete(u)}l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=ue.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),h.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,t,n,s){if(e.next()!=116)return this.error(1003,e.range()),null;let a=h.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(101)&&(l=this.parseType(e,!1),!l))return null;if(e.next()!=63)return this.error(1005,e.range(),"{"),null;let o=new Array;for(;!e.skip(64);){let c=this.parseEnumValue(e,0);if(!c)return null;if(o.push(c),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}let u=h.createEnumDeclaration(a,n,t,o,l,e.range(s,e.pos));return u.overriddenModuleName=this.currentModuleName,e.skip(71),u}parseEnumValue(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=h.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(102)&&(s=this.parseExpression(e,2),!s)?null:h.createEnumValueDeclaration(n,t,s,ue.join(n.range,e.range()))}parseReturn(e){let t=e.tokenPos,n=null,s=e.peek();if(s!=71&&s!=64&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=h.createReturnStatement(n,e.range(t,e.pos));return e.skip(71)||this.checkASI(e),a}parseTypeParameters(e){let t=new Array,n=!1,s=e.tokenPos;for(;!e.skip(74);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),t.push(a),!e.skip(72)){if(e.skip(74))break;return this.error(1005,e.range(),">"),null}}return t.length||this.error(1098,e.range(s,e.pos)),t}parseTypeParameter(e){if(e.next()==116){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(102)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return h.createTypeParameter(t,n,s,ue.join(t.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,t=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(52)){if(e.skip(101)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(72))return e.skip(66)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(66);){let u=this.parseParameter(e,t);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(72)){if(e.skip(66))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,t=!1){let n=!1,s=!1,a=null,l=0;if(t&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=101?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(70)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=h.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(100))&&n&&this.error(1047,o.range),e.skip(101)){if(u=this.parseType(e),!u)return null}else u=h.createOmittedType(e.range(e.pos));let c=null;if(e.skip(102)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let f=h.createParameter(n?2:s?1:0,o,u,c,ue.join(assert(a),e.range()));return f.flags|=l,f}else this.error(1003,e.range());return null}parseFunction(e,t,n,s,a=!1){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let l=h.createIdentifierExpression(e.readIdentifier(),e.range()),o=-1,u=null;if(e.skip(73)){if(o=e.tokenPos,u=this.parseTypeParameters(e),!u)return null;t|=65536}if(!e.skip(65))return this.error(1005,e.range(e.pos),"("),null;o<0&&(o=e.tokenPos);let c=this.parseParameters(e);if(!c)return null;let f=this.parseParametersThis,_=(t&4096)!=0;_&&(c.length!=1&&this.error(1049,l.range),c.length>0&&c[0].initializer&&this.error(1052,l.range)),t&2048&&c.length&&this.error(1054,l.range);let d=null;if(e.skip(101)&&(d=this.parseType(e,!0,_),!d))return null;d||(d=h.createOmittedType(e.range(e.pos)),_||this.error(1110,d.range));let g=h.createFunctionType(c,d,f,!1,e.range(o,e.pos)),y=null;if(e.skip(63)){t&32768&&this.error(1183,e.range());let T=this.inAsyncContext;if(this.inAsyncContext=a,y=this.parseBlockStatement(e,!1),this.inAsyncContext=T,!y)return null}else t&32768||this.error(2391,e.range(e.pos));let E=h.createFunctionDeclaration(l,n,t,u,g,y,0,e.range(s,e.pos),a);return E.overriddenModuleName=this.currentModuleName,e.skip(71),E}parseFunctionExpression(e,t=!1){let n=e.tokenPos,s,a=0;if(e.token==24){if(e.skipIdentifier()?s=h.createIdentifierExpression(e.readIdentifier(),e.range()):s=h.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(65))return this.error(1005,e.range(e.pos),"("),null}else a=1,assert(e.token==65),s=h.createEmptyIdentifierExpression(e.range(e.tokenPos));let l=e.pos,o=this.parseParameters(e);return o?this.parseFunctionExpressionCommon(e,s,o,this.parseParametersThis,a,n,l,t):null}parseFunctionExpressionCommon(e,t,n,s,a,l=-1,o=-1,u=!1){l<0&&(l=t.range.start),o<0&&(o=l);let c=null;if(a!=2&&e.skip(101)){if(c=this.parseType(e),!c)return null}else c=h.createOmittedType(e.range(e.pos));if(a&&!e.skip(81))return this.error(1005,e.range(e.pos),"=>"),null;let f=h.createFunctionType(n,c,s,!1,e.range(o,e.pos)),_=null,d=this.inAsyncContext;if(this.inAsyncContext=u,a)if(e.skip(63))_=this.parseBlockStatement(e,!1);else{let y=this.parseExpression(e,2);y&&(_=h.createExpressionStatement(y))}else{if(!e.skip(63))return this.inAsyncContext=d,this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(this.inAsyncContext=d,!_)return null;let g=h.createFunctionDeclaration(t,null,0,null,f,_,a,e.range(l,e.pos),u);return h.createFunctionExpression(g)}withValueDefault(e,t,n){let s=this.withUnmanaged(e,t);if(n)return s;let a=h.createDecorator(h.createIdentifierExpression("inline",t),null,t),l=new Array(s.length+1);l[0]=a;for(let o=0,u=s.length;o<u;++o)l[o+1]=s[o];return l}withUnmanaged(e,t){if(Yb(e))return e;let n=h.createDecorator(h.createIdentifierExpression("unmanaged",t),null,t);if(!e)return[n];let s=new Array(e.length+1);s[0]=n;for(let a=0,l=e.length;a<l;++a)s[a+1]=e[a];return s}parseClassOrInterface(e,t,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=h.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(73)){if(o=this.parseTypeParameters(e),!o)return null;t|=65536}let u=null;if(e.skip(19)){let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;u=d}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;a||(c||(c=[]),c.push(d))}while(e.skip(72))}if(!e.skip(63))return this.error(1005,e.range(),"{"),null;let f=new Array,_;if(a?(assert(!c),_=h.createInterfaceDeclaration(l,n,t,o,u,null,f,e.range(s,e.pos))):_=h.createClassDeclaration(l,n,t,o,u,c,f,e.range(s,e.pos)),!e.skip(64))do{let d=this.parseClassMember(e,_);if(d)d.kind==69?_.indexSignature=d:(assert(d instanceof it),f.push(d));else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}while(!e.skip(64));return _.range.end=e.pos,_.overriddenModuleName=this.currentModuleName,_}parseClassExpression(e){let t=e.tokenPos,n;if(e.skipIdentifier()?n=h.createIdentifierExpression(e.readIdentifier(),e.range()):n=h.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(63))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=h.createClassDeclaration(n,null,0,null,null,null,s,e.range(t,e.pos));if(!e.skip(64))do{let l=this.parseClassMember(e,a);if(l)l.kind==69?a.indexSignature=l:(assert(a instanceof it),s.push(l));else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}while(!e.skip(64));return a.range.end=e.pos,h.createClassExpression(a)}parseClassMember(e,t){let n=t.kind==61,s=0,a=null;if(e.skip(115)){s=e.tokenPos;do{let oe=this.parseDecorator(e);if(!oe)break;a||(a=new Array),a.push(oe)}while(e.skip(115));n&&a&&this.error(1206,ue.join(a[0].range,a[a.length-1].range))}let l=t.flags&32768;n&&(l|=268435456);let o=0,u=0,c=t.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):c?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):c&&(l|=32768);let f=0,_=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos));let d=0,g=0,y=0,E=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,d=e.tokenPos,g=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!t.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,y=e.tokenPos,E=e.pos),s||(s=e.tokenPos)),t.flags&65536&&(l|=131072));let T=0,k=0;e.skip(40)&&(n||t.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,T=e.tokenPos,k=e.pos),s||(s=e.tokenPos));let F=0,w=0;if(e.peek()==45){let oe=e.mark();e.next(),e.peek()!=101?(e.discard(oe),l|=64,F=e.tokenPos,w=e.pos,s||(s=F)):e.reset(oe)}let R=0,B=0,M=!1;if(e.skip(2))switch(M=!0,R=e.tokenPos,B=e.pos,s||(s=R),n&&this.error(1031,e.range(R,B),"async"),e.peek()){case 44:case 42:case 43:case 48:case 0:case 45:case 40:case 12:{this.error(1042,e.range(R,B),"async"),e.next(),M=!1;break}}let q=e.mark(),G=!1,X=!1,z=0,U=0,j=!1,Y=0,O=0;n||(e.skip(25)?e.peek(1)==116&&!e.peekOnNewLine()?(l|=2048,X=!0,z=e.tokenPos,U=e.pos,s||(s=z),l&64&&this.error(1042,e.range(F,w),"readonly")):e.reset(q):e.skip(47)?e.peek(1)==116&&!e.peekOnNewLine()?(l|=4096,j=!0,Y=e.tokenPos,O=e.pos,s||(s=Y),l&64&&this.error(1042,e.range(F,w),"readonly")):e.reset(q):e.skip(10)&&(l|=524288,G=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(d,g),"static"),l&128&&this.error(1042,e.range(y,E),"abstract"),l&64&&this.error(1042,e.range(F,w),"readonly")));let ie=X||j,H;if(G)H=h.createConstructorExpression(e.range());else{if(!ie&&e.skip(67)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(f,_),"public"):l&1024?this.error(1042,e.range(f,_),"protected"):l&512&&this.error(1042,e.range(f,_),"private"),l&32&&this.error(1042,e.range(d,g),"static"),l&8192&&this.error(1042,e.range(T,k),"override"),l&128&&this.error(1042,e.range(y,E),"abstract");let oe=this.parseIndexSignature(e,l,a);return oe?(e.skip(71),oe):(l&64&&this.error(1042,e.range(F,w),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),H=h.createIdentifierExpression(e.readIdentifier(),e.range())}let ge=null;if(e.skip(73)){let oe=e.tokenPos;if(ge=this.parseTypeParameters(e),!ge)return null;G?this.error(1092,e.range(oe,e.pos)):ie?this.error(1094,e.range(oe,e.pos)):l|=65536}if(e.skip(65)){l&4&&this.error(1031,e.range(o,u),"declare");let oe=e.tokenPos,pe=this.parseParameters(e,G);if(!pe)return null;let It=this.parseParametersThis;if(G)for(let je=0,ki=pe.length;je<ki;++je){let dt=pe[je];if(dt.isAny(1856)){let pr=h.createFieldDeclaration(dt.name,null,dt.flags|262144,dt.type,null,dt.range);pr.parameterIndex=je,dt.implicitFieldDeclaration=pr,t.members.push(pr)}}else X?pe.length&&this.error(1054,H.range):j?(pe.length!=1&&this.error(1049,H.range),pe.length>0&&pe[0].initializer&&this.error(1052,H.range)):H.text=="constructor"&&this.error(230,H.range,"constructor");let Fe=null;if(e.skip(101)){if(H.kind==28?this.error(1093,e.range()):j&&this.error(1095,e.range()),Fe=this.parseType(e,j||H.kind==28),!Fe)return null}else Fe=h.createOmittedType(e.range(e.pos)),!j&&H.kind!=28&&this.error(1110,Fe.range);let vn=h.createFunctionType(pe,Fe,It,!1,e.range(oe,e.pos)),Ot=null;if(e.skip(63)){l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),H.text):n&&this.error(1005,e.range(),";");let je=this.inAsyncContext;if(this.inAsyncContext=M,Ot=this.parseBlockStatement(e,!1),this.inAsyncContext=je,!Ot)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let zr=M;M&&(H.kind==28||ie)&&(zr=!1,this.error(1042,e.range(R,B),"async"));let Ii=h.createMethodDeclaration(H,a,l,ge,vn,Ot,e.range(s,e.pos),zr);return n&&e.skip(72)||e.skip(71),Ii}else if(G)this.error(2390,H.range);else if(ie)this.error(2391,H.range);else{M&&this.error(1042,e.range(R,B),"async"),l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(y,E),"abstract"),l&2048&&this.error(1042,e.range(z,U),"get"),l&4096&&this.error(1042,e.range(Y,O),"set");let oe=null;if(e.skip(100)&&this.error(219,e.range(s,e.pos)),e.skip(96)&&(l|=16384),e.skip(101)){if(oe=this.parseType(e),!oe)return null}else this.error(1110,e.range());let pe=null;if(e.skip(102)){if(l&32768&&this.error(1039,e.range()),pe=this.parseExpression(e),!pe)return null;l&16384&&this.error(1263,H.range)}let It=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,It);let Fe=h.createFieldDeclaration(H,a,l,oe,pe,It);return n&&e.skip(72)||e.skip(71),Fe}return null}parseIndexSignature(e,t,n){n&&n.length>0&&this.error(1206,ue.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(101)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(68))if(e.skip(101)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):h.createIndexSignature(l,o,t,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,t,n,s){if(e.skipIdentifier()){let a=h.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(63)){let l=new Array,o=h.createNamespaceDeclaration(a,n,t,l,e.range(s,e.pos));for(;!e.skip(64);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==39)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(71),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,t,n){let s=null,a=assert(this.currentSource);if(e.skip(63)){let l=new Array;for(;!e.skip(64);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(117))s=h.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=h.createExportStatement(l,s,n,e.range(t,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new Ls(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(71),o}else if(e.skip(85))if(e.skip(23))if(e.skip(117)){s=h.createStringLiteralExpression(e.readString(),e.range());let l=h.createExportStatement(null,s,n,e.range(t,e.pos)),o=assert(l.internalPath),u=e.source,c=u.exportPaths;return c?c.includes(o)||c.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new Ls(a,s)),this.backlog.push(o)),e.skip(71),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?h.createExportMember(t,n,ue.join(t.range,n.range)):h.createExportMember(t,null,t.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,t,n,s){let a=e.readIdentifier(),l=e.range(),o=h.createExportStatement([h.createExportMember(h.createIdentifierExpression(a,l),h.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(t,e.pos));return e.skip(71),o}parseImport(e){let t=e.tokenPos,n=null,s=null,a=!1;if(e.skip(63))for(n=new Array;!e.skip(64);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(85))if(e.skip(1))if(e.skipIdentifier())s=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(116,1)){let l=e.readIdentifier(),o=e.range();if(n=[h.createImportDeclaration(h.createIdentifierExpression("default",o),h.createIdentifierExpression(l,o),o)],e.skip(72))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(117)){let l=h.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=h.createWildcardImportStatement(s,l,e.range(t,e.pos))):o=h.createImportStatement(n,l,e.range(t,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new Ls(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(71),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?h.createImportDeclaration(t,n,ue.join(t.range,n.range)):h.createImportDeclaration(t,null,t.range)}else this.error(1003,e.range());return null}parseExportImport(e,t){if(e.skipIdentifier()){let n=h.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(102))if(e.skipIdentifier()){let s=h.createIdentifierExpression(e.readIdentifier(),e.range()),a=h.createExportImportStatement(s,n,e.range(t,e.pos));return e.skip(71),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,t=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 58:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 63:{a=this.parseBlockStatement(e,t);break}case 46:{t&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 71:return h.createEmptyStatement(e.range(e.tokenPos));case 51:{a=this.parseSwitchStatement(e);break}case 53:{a=this.parseThrowStatement(e);break}case 55:{a=this.parseTryStatement(e);break}case 59:{a=this.parseVoidStatement(e);break}case 60:{a=this.parseWhileStatement(e);break}case 56:if(e.peek(1)==116){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,t){let n=e.tokenPos,s=new Array;for(;!e.skip(64);){let l=e.mark(),o=this.parseStatement(e,t);if(o)e.discard(l),s.push(o);else{if(e.token==122)return null;e.reset(l),this.skipStatement(e)}}let a=h.createBlockStatement(s,e.range(n,e.pos));return t&&e.skip(71),a}parseBreak(e){let t=null;e.peek()==116&&!e.peekOnNewLine()&&(e.next(1),t=h.createIdentifierExpression(e.readIdentifier(),e.range()));let n=h.createBreakStatement(t,e.range());return e.skip(71),n}parseContinue(e){let t=null;e.peek()==116&&!e.peekOnNewLine()&&(e.next(1),t=h.createIdentifierExpression(e.readIdentifier(),e.range()));let n=h.createContinueStatement(t,e.range());return e.skip(71),n}parseDoStatement(e){let t=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(60))if(e.skip(65)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(66)){let a=h.createDoStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let t=this.parseExpression(e);if(!t)return null;let n=h.createExpressionStatement(t);return e.skip(71),n}parseForStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(58))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(71)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==42)return n.expression.kind!=8?(this.error(1003,n.range),null):this.parseForOfStatement(e,t,n);if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,t,n)}return this.error(1003,n.range),null}if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==71){let s=null;if(!e.skip(71)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==71){let a=null;if(!e.skip(66)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(66))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?h.createForStatement(n,s?s.expression:null,a,l,e.range(t,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,t,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(66))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?h.createForOfStatement(n,s,a,e.range(t,e.pos)):null}parseIfStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:h.createIfStatement(n,s,a,e.range(t,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66))if(e.skip(63)){let s=new Array;for(;!e.skip(64);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=h.createSwitchStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let t=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(101)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=64;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return h.createSwitchCase(a,n,e.range(t,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(101)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=64;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return h.createSwitchCase(null,n,e.range(t,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let t=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=h.createThrowStatement(n,e.range(t,e.pos));return e.skip(71)||this.checkASI(e),s}parseTryStatement(e){let t=e.tokenPos,n;if(e.skip(63)){let s=new Array;for(;!e.skip(64);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(65))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=h.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(66))return this.error(1005,e.range(),")"),null;if(!e.skip(63))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(64);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(63))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(64);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=h.createTryStatement(s,a,l,o,e.range(t,e.pos));return e.skip(71),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,t,n,s){if(e.skipIdentifier()){let a=h.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(73)){if(l=this.parseTypeParameters(e),!l)return null;t|=65536}if(e.skip(102)){e.skip(94);let o=this.parseType(e);if(!o)return null;if(Ns(a.text,o))return this.error(2456,a.range,a.text),null;let u=h.createTypeDeclaration(a,n,t,l,o,e.range(s,e.pos));return e.skip(71),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,t){let n=e.tokenPos;assert(e.next()==117);let s=e.readString(),a=h.createModuleDeclaration(s,t,e.range(n,e.pos));return this.currentModuleName=s,e.skip(71),a}parseVoidStatement(e){let t=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=h.createVoidStatement(n,e.range(t,e.pos));return e.skip(71),s}parseWhileStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66)){let s=this.parseStatement(e);if(!s)return null;let a=h.createWhileStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let t=e.next(1),n=e.tokenPos;switch(t){case 70:case 62:case 96:case 97:case 82:case 83:case 57:case 59:case 14:{let s=this.parseExpression(e,17);return s?h.createUnaryPrefixExpression(t,s,e.range(n,e.pos)):null}case 115:{let s=this.parseLazyExpression(e,n);return s||null}case 3:{let s=e.pos,a=this.parseExpression(e,17);if(!a)return null;if(this.inAsyncContext||this.error(1308,e.range(n,s)),a.kind==32){let l=this.awaitNullifiedLazyExpressions;l==null&&(l=new Set,this.awaitNullifiedLazyExpressions=l),l.add(a)}return h.createAwaitExpression(a,e.range(n,e.pos))}case 2:{let s=e.pos;if(e.peekOnNewLine())return this.error(1042,e.range(n,s),"async"),null;switch(e.peek()){case 24:{e.next();let a=this.parseFunctionExpression(e,!0);return a?(a.range.start=n,a):null}case 65:{e.next();let a=this.parseFunctionExpression(e,!0);return a?(a.range.start=n,a):null}case 116:{if(!e.peekOnNewLine()){e.next();let a=h.createIdentifierExpression(e.readIdentifier(),e.range(n,e.pos));if(e.peek()==81&&!e.peekOnNewLine()){let l=this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[h.createParameter(0,a,h.createOmittedType(a.range.atEnd),null,a.range)],null,2,n,-1,!0);return l||null}}break}}return this.error(1042,e.range(n,s),"async"),null}case 88:case 89:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 8:case 14:case 23:break;default:this.error(2357,s.range)}return h.createUnaryPrefixExpression(t,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(65)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return h.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return h.createNullExpression(e.range());case 54:return h.createTrueExpression(e.range());case 20:return h.createFalseExpression(e.range());case 52:return h.createThisExpression(e.range());case 10:return h.createConstructorExpression(e.range());case 65:{if(e.skip(66))return this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 70:return e.reset(s),this.parseFunctionExpression(e);case 116:{switch(e.readIdentifier(),e.next()){case 66:{if(e.skip(101)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(81)){a=!1;break}}case 101:return e.reset(s),this.parseFunctionExpression(e);case 100:{if(e.skip(101)||e.skip(72)||e.skip(66))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 72:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(66)?(l=h.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 67:{let s=new Array;for(;!e.skip(68);){let a;if(e.peek()==72)a=h.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(72)){if(e.skip(68))break;return this.error(1005,e.range(),"]"),null}}return h.createArrayLiteralExpression(s,e.range(n,e.pos))}case 63:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(64);){if(e.skipIdentifier())o=h.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(117))return this.error(1003,e.range()),null;o=h.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(101)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}return h.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 73:{let s=this.parseType(e);if(!s)return null;if(!e.skip(74))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?h.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 116:{let s=e.readIdentifier();if(s=="null")return h.createNullExpression(e.range());let a=h.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(120)?this.parseTemplateLiteral(e,a):e.peek()==81&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[h.createParameter(0,a,h.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 50:{e.peek()!=69&&e.nextToken!=65&&this.error(1034,e.range());let s=h.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 117:return h.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 120:return this.parseTemplateLiteral(e);case 118:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),h.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 119:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),h.createFloatLiteralExpression(s,e.range(n,e.pos))}case 86:{let s=e.readRegexpPattern();return e.skip(86)?h.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return t==122?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let t=e.mark();if(!e.skip(73))return null;let n=e.tokenPos,s=null;do{if(e.peek()==74)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(t),null;s?s.push(a):s=[a]}while(e.skip(72));if(e.skip(74)){let a=e.pos;if(e.skip(65))return s||this.error(1099,e.range(n,a)),s}return e.reset(t),null}parseArguments(e){let t=new Array;for(;!e.skip(66);){let n=this.parseExpression(e,2);if(!n)return null;if(t.push(n),!e.skip(72)){if(e.skip(66))break;return this.error(1005,e.range(),")"),null}}return t}parseLazyExpression(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=e.readIdentifier();if(n!="lazy")return this.error(212,e.range(t,e.pos),n),null;let s=this.parseExpression(e,17);if(!s)return null;let a=h.createLazyExpression(s,e.range(t,e.pos)),l=this.unplacedLazyExpressions;return l==null&&(l=new Set,this.unplacedLazyExpressions=l),l.add(a),a}parseExpression(e,t=1){assert(t!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=KE(e.peek()))>=t;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=h.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=h.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 96:{n=h.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=h.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 67:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(68))return this.error(1005,e.range(),"]"),null;n=h.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 88:case 89:{n.kind!=8&&n.kind!=14&&n.kind!=23&&this.error(2357,n.range),n=h.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 100:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(101))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,t>1?2:1);if(!u)return null;n=h.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 72:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(72));n=h.createCommaExpression(o,e.range(s,e.pos));break}case 69:{if(e.skipIdentifier(2)){let o=h.createIdentifierExpression(e.readIdentifier(),e.range());n=h.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==11){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(120)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 102:case 103:case 104:case 106:case 105:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:case 84:{let o=this.parseExpression(e,a);if(!o)return null;n=h.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 73:case 74:case 75:case 76:case 77:case 79:case 80:case 78:case 82:case 83:case 85:case 86:case 87:case 90:case 91:case 92:case 93:case 94:case 95:case 98:case 99:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=h.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,t=null){let n=t?t.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(64))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return h.createTemplateLiteralExpression(t,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,t,n,s){let a=s.expression;switch(a.kind){case 8:{s.expression=h.createPropertyAccessExpression(n,a,e.range(t,e.pos));break}case 11:{let l=this.joinPropertyCall(e,t,n,a);if(!l)return null;s.expression=l,s.range=e.range(t,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,t,n=!1){let s=null;for(;e.skip(65)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;t=h.createCallExpression(t,s,a,e.range(t.range.start,e.pos)),n=!1}return t}checkASI(e){let t=e.peek();t==122||t==64||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let t=e.peek();if(t==122||t==71){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 116:{e.readIdentifier();break}case 117:case 120:{e.readString();break}case 118:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 119:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 63:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let t=1,n=!0;do switch(e.next()){case 122:{this.error(1005,e.range(),"}"),n=!1;break}case 63:{++t;break}case 64:{--t,t||(n=!1);break}case 116:{e.readIdentifier();break}case 117:{e.readString();break}case 120:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 118:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 119:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},tx=(B=>(B[B.None=0]="None",B[B.Comma=1]="Comma",B[B.Spread=2]="Spread",B[B.Yield=3]="Yield",B[B.Assignment=4]="Assignment",B[B.Conditional=5]="Conditional",B[B.LogicalOr=6]="LogicalOr",B[B.LogicalAnd=7]="LogicalAnd",B[B.BitwiseOr=8]="BitwiseOr",B[B.BitwiseXor=9]="BitwiseXor",B[B.BitwiseAnd=10]="BitwiseAnd",B[B.Equality=11]="Equality",B[B.Relational=12]="Relational",B[B.Shift=13]="Shift",B[B.Additive=14]="Additive",B[B.Multiplicative=15]="Multiplicative",B[B.Exponentiated=16]="Exponentiated",B[B.UnaryPrefix=17]="UnaryPrefix",B[B.UnaryPostfix=18]="UnaryPostfix",B[B.Call=19]="Call",B[B.MemberAccess=20]="MemberAccess",B[B.Grouping=21]="Grouping",B))(tx||{});function KE(i){switch(i){case 72:return 1;case 102:case 103:case 104:case 106:case 105:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:return 4;case 100:return 5;case 99:return 6;case 98:return 7;case 94:return 8;case 95:return 9;case 93:return 10;case 77:case 78:case 79:case 80:return 11;case 1:case 29:case 30:case 73:case 74:case 75:case 76:return 12;case 90:case 91:case 92:return 13;case 82:case 83:return 14;case 85:case 86:case 87:return 15;case 84:return 16;case 88:case 89:return 18;case 69:case 67:case 96:return 20}return 0}function Ns(i,r){switch(r.kind){case 1:{if(r.name.identifier.text==i)return!0;let e=r.typeArguments;if(e){for(let t=0,n=e.length;t<n;t++)if(Ns(i,e[t]))return!0}break}case 2:{let e=r;if(Ns(i,e.returnType))return!0;let t=e.parameters;for(let n=0,s=t.length;n<s;n++)if(Ns(i,t[n].type))return!0;break}case 3:{let e=r.elements;for(let t=0,n=e.length;t<n;t++)if(Ns(i,e[t]))return!0;break}default:assert(!1)}return!1}var rx=16,nn=rx-1,Xo=class{constructor(r,e,t,n,s){this.localFile=r;this.localIdentifier=e;this.foreignIdentifier=t;this.foreignPath=n;this.foreignPathAlt=s}},Zo=class{constructor(r,e,t,n){this.localIdentifier=r;this.foreignIdentifier=e;this.foreignPath=t;this.foreignPathAlt=n}},Tf=class{constructor(r,e,t){this.foreignPath=r;this.foreignPathAlt=e;this.pathLiteral=t}},Me=(O=>(O[O.Invalid=0]="Invalid",O[O.IndexedGet=1]="IndexedGet",O[O.IndexedSet=2]="IndexedSet",O[O.UncheckedIndexedGet=3]="UncheckedIndexedGet",O[O.UncheckedIndexedSet=4]="UncheckedIndexedSet",O[O.Add=5]="Add",O[O.Sub=6]="Sub",O[O.Mul=7]="Mul",O[O.Div=8]="Div",O[O.Rem=9]="Rem",O[O.Pow=10]="Pow",O[O.BitwiseAnd=11]="BitwiseAnd",O[O.BitwiseOr=12]="BitwiseOr",O[O.BitwiseXor=13]="BitwiseXor",O[O.BitwiseShl=14]="BitwiseShl",O[O.BitwiseShr=15]="BitwiseShr",O[O.BitwiseShrU=16]="BitwiseShrU",O[O.Eq=17]="Eq",O[O.Ne=18]="Ne",O[O.Gt=19]="Gt",O[O.Ge=20]="Ge",O[O.Lt=21]="Lt",O[O.Le=22]="Le",O[O.Plus=23]="Plus",O[O.Minus=24]="Minus",O[O.Not=25]="Not",O[O.BitwiseNot=26]="BitwiseNot",O[O.PrefixInc=27]="PrefixInc",O[O.PrefixDec=28]="PrefixDec",O[O.PostfixInc=29]="PostfixInc",O[O.PostfixDec=30]="PostfixDec",O))(Me||{});(n=>{function i(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=i;function r(s){switch(s){case 82:case 103:return 5;case 83:case 104:return 6;case 85:case 105:return 7;case 86:case 107:return 8;case 87:case 108:return 9;case 84:case 106:return 10;case 93:case 112:return 11;case 94:case 113:return 12;case 95:case 114:return 13;case 90:case 109:return 14;case 91:case 110:return 15;case 92:case 111:return 16;case 77:case 79:return 17;case 78:case 80:return 18;case 74:return 19;case 76:return 20;case 73:return 21;case 75:return 22}return 0}n.fromBinaryToken=r;function e(s){switch(s){case 82:return 23;case 83:return 24;case 96:return 25;case 97:return 26;case 88:return 27;case 89:return 28}return 0}n.fromUnaryPrefixToken=e;function t(s){switch(s){case 88:return 29;case 89:return 30}return 0}n.fromUnaryPostfixToken=t})(Me||={});var $o=class{constructor(r){this.leafCount=r}},zs=class extends tt{constructor(e,t=null){super(t);this.options=e;this.sources=[];this.stdSources=new Set;this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._taskPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Yt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new Ms(this.diagnostics,this.sources),this.resolver=new Rs(this);let n=new Us(this,Te.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(N.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(N.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(N.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(N.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(N.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(N.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(N.Function,6)),e}get taskPrototype(){let e=this._taskPrototype;if(!e){let t=ee(this.elementsByName,N.Task);if(!t||t.kind!=6)return null;this._taskPrototype=e=t}return e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(N.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(N.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(N.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(N.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(N.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(N.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(N.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(N.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(N.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(N.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(N.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(N.String)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(N.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(N.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(N.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(N.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(N.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(N.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(N.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(N.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(N.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(N.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(N.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(N.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(N.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(N.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(N.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(N.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(N.OBJECT)),e}getSource(e){let t=this.sources;for(let n=0;n<t.length;++n){let s=t[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+nn&~nn}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let t=yf(e);if(t){let n=this.instancesByName;if(n.has(t)){let s=assert(n.get(t));if(s.kind==5)return s}}return null}computeBlockStart(e){let t=this.blockOverhead;return(e+t+nn&~nn)-t}computeBlockStart64(e){let t=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,t),rx),t)}computeBlockSize(e,t){t&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+nn&~nn)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,t=0){let n=Te.native.range;return h.createVariableDeclaration(h.createIdentifierExpression(e,n),null,t,null,null,n)}makeNativeTypeDeclaration(e,t=0){let n=Te.native.range,s=h.createIdentifierExpression(e,n);return h.createTypeDeclaration(s,null,t,null,h.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,t=0){let n=Te.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=h.createFunctionType([],h.createNamedType(h.createSimpleTypeName(N.void_,n),null,!1,n),null,!1,n)),h.createFunctionDeclaration(h.createIdentifierExpression(e,n),null,t,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,t=0){let n=Te.native.range;return h.createNamespaceDeclaration(h.createIdentifierExpression(e,n),null,t,[],n)}makeNativeFunction(e,t,n=this.nativeFile,s=0,a=0){return new Lt(e,new lt(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,t)}getElementByDeclaration(e){let t=this.elementsByDeclaration;return t.has(e)?assert(t.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(N.i8,p.i8),this.registerNativeType(N.i16,p.i16),this.registerNativeType(N.i32,p.i32),this.registerNativeType(N.i64,p.i64),this.registerNativeType(N.isize,e.isizeType),this.registerNativeType(N.u8,p.u8),this.registerNativeType(N.u16,p.u16),this.registerNativeType(N.u32,p.u32),this.registerNativeType(N.u64,p.u64),this.registerNativeType(N.usize,e.usizeType),this.registerNativeType(N.bool,p.bool),this.registerNativeType(N.f32,p.f32),this.registerNativeType(N.f64,p.f64),this.registerNativeType(N.void_,p.void),this.registerNativeType(N.number,p.f64),this.registerNativeType(N.boolean,p.bool),this.nativeFile.add(N.native,new at(N.native,this.nativeFile,this.makeNativeTypeDeclaration(N.native,65538),512)),this.nativeFile.add(N.indexof,new at(N.indexof,this.nativeFile,this.makeNativeTypeDeclaration(N.indexof,65538),512)),this.nativeFile.add(N.valueof,new at(N.valueof,this.nativeFile,this.makeNativeTypeDeclaration(N.valueof,65538),512)),this.nativeFile.add(N.returnof,new at(N.returnof,this.nativeFile,this.makeNativeTypeDeclaration(N.returnof,65538),512)),this.nativeFile.add(N.thisof,new at(N.thisof,this.nativeFile,this.makeNativeTypeDeclaration(N.thisof,65538),512)),this.nativeFile.add(N.nonnull,new at(N.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(N.nonnull,65538),512)),this.registerNativeType(N.v128,p.v128),this.registerNativeType(N.ref_func,p.func),this.registerNativeType(N.ref_extern,p.extern),this.registerNativeType(N.ref_any,p.any),this.registerNativeType(N.ref_eq,p.eq),this.registerNativeType(N.ref_struct,p.struct),this.registerNativeType(N.ref_array,p.array),this.registerNativeType(N.ref_i31,p.i31),this.registerNativeType(N.ref_string,p.string),this.registerNativeType(N.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(N.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(N.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(N.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(N.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(N.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(N.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(N.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(N.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(N.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(N.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(N.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(N.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(N.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(N.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(N.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(16384)?1:0,0));let t=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,c=this.sources.length;u<c;++u){let f=this.sources[u],_=new Us(this,f);this.filesByName.set(_.internalName,_);let d=f.statements;for(let g=0,y=d.length;g<y;++g){let E=d[g];switch(E.kind){case 39:{this.initializeExports(E,_,n,s);break}case 40:{this.initializeExportDefault(E,_,a,l);break}case 46:{this.initializeImports(E,_,t,n);break}case 51:{this.initializeVariables(E,_);break}case 55:{this.initializeClass(E,_,a,l);break}case 56:{this.initializeEnum(E,_);break}case 59:{this.initializeFunction(E,_);break}case 61:{this.initializeInterface(E,_,a);break}case 63:{this.initializeNamespace(E,_,a,l);break}case 64:{this.initializeTypeDefinition(E,_);break}}}}for(let u=Map_keys(s),c=0,f=u.length;c<f;++c){let _=u[c],d=assert(s.get(_));for(let g=0,y=d.length;g<y;++g){let E=unchecked(d[g]),T=this.lookupForeignFile(E.foreignPath,E.foreignPathAlt);if(!T){this.error(6054,E.pathLiteral.range,E.pathLiteral.value);continue}_.ensureExportStar(T)}}do{let u=0,c=!1;for(;u<t.length;){let f=t[u],_=f.localIdentifier,d=f.foreignIdentifier,g=assert(this.lookupForeignFile(f.foreignPath,f.foreignPathAlt));if(d){let y=this.lookupForeign(d.text,g,n);y?(f.localFile.add(_.text,y,_),t.splice(u,1),c=!0):++u}else{let y=f.localFile,E=_.text;y.add(E,g.asAliasNamespace(E,y,_),_),t.splice(u,1),c=!0}}if(!c){for(let f=0,_=t.length;f<_;++f){let d=t[f],g=d.foreignIdentifier;g&&this.error(2305,g.range,d.foreignPath,g.text)}break}}while(!0);for(let u=Map_keys(n),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),d=assert(n.get(_));for(let g=Map_keys(d),y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=assert(d.get(T)),F=k.localIdentifier.text,w=k.foreignPath;if(w){let R=assert(this.lookupForeignFile(w,assert(k.foreignPathAlt))),B=this.lookupForeign(F,R,n);B?_.ensureExport(T,B):this.error(2305,k.localIdentifier.range,w,F)}else{let R=_.getMember(F);if(R)_.ensureExport(T,R);else{let B=this.lookup(F);B&&Gs(B.kind)?_.ensureExport(T,B):this.error(2305,k.foreignIdentifier.range,_.internalName,k.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(p.i8,N.I8),this.registerWrapperClass(p.i16,N.I16),this.registerWrapperClass(p.i32,N.I32),this.registerWrapperClass(p.i64,N.I64),this.registerWrapperClass(e.isizeType,N.Isize),this.registerWrapperClass(p.u8,N.U8),this.registerWrapperClass(p.u16,N.U16),this.registerWrapperClass(p.u32,N.U32),this.registerWrapperClass(p.u64,N.U64),this.registerWrapperClass(e.usizeType,N.Usize),this.registerWrapperClass(p.bool,N.Bool),this.registerWrapperClass(p.f32,N.F32),this.registerWrapperClass(p.f64,N.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,N.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,N.RefFunc),this.registerWrapperClass(p.extern,N.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,N.RefAny),this.registerWrapperClass(p.eq,N.RefEq),this.registerWrapperClass(p.struct,N.RefStruct),this.registerWrapperClass(p.array,N.RefArray),this.registerWrapperClass(p.i31,N.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,N.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let f=a[u],_=assert(f.extendsNode),d=o.resolveTypeName(_.name,null,f.parent);if(d){if(f.kind==6)if(d.kind==6){let g=d;g.hasDecorator(32)&&this.error(211,_.range,g.identifierNode.text),g.hasDecorator(16)!=f.hasDecorator(16)&&this.error(207,ue.join(f.identifierNode.range,_.range)),f.extends(g)?this.error(2506,g.identifierNode.range,g.identifierNode.text):f.basePrototype=g}else this.error(1311,_.range);else if(f.kind==8)if(d.kind==8){let g=d;f.extends(g)?this.error(2506,g.identifierNode.range,g.identifierNode.text):f.basePrototype=g}else this.error(2312,_.range)}}for(let u=0,c=a.length;u<c;u++){let f=a[u],_=f.instanceMembers;if(_){let d=Map_values(_);for(let g=0,y=d.length;g<y;g++){let E=d[g],T=E.declaration;if(T.is(8192)){let k=f.basePrototype,F=!1;for(;k;){let w=k.instanceMembers;if(w&&w.has(E.name)){F=!0;break}k=k.basePrototype}if(!F){let w=assert(f.basePrototype);this.error(4117,T.name.range,w.name)}}}}}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=assert(f.implementsNodes);for(let d=0,g=_.length;d<g;++d){let y=_[d],E=o.resolveTypeName(y.name,null,f.parent);if(E)if(E.kind==8){let T=E,k=f.interfacePrototypes;k||(f.interfacePrototypes=k=new Array),k.push(T)}else this.error(2422,y.range)}}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.basePrototype;_&&this.processOverrides(f,_)}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=f.basePrototype,d=f.interfacePrototypes;if(_&&this.processOverrides(f,_),d)for(let g=0,y=d.length;g<y;++g)this.processOverrides(f,d[g])}{let u=e.globalAliases;u||(u=new Map),u.has(N.abort)||u.set(N.abort,m.abort),u.has(N.trace)||u.set(N.trace,m.trace),u.has(N.seed)||u.set(N.seed,m.seed),u.has(N.Math)||u.set(N.Math,N.NativeMath),u.has(N.Mathf)||u.set(N.Mathf,N.NativeMathf);for(let c=Map_keys(u),f=0,_=c.length;f<_;++f){let d=unchecked(c[f]),g=changetype(u.get(d));if(assert(g!=null),!g.length){this.elementsByName.delete(d);continue}let y=g.charCodeAt(0);if(y>=48&&y<=57)this.registerConstantInteger(d,p.i32,i64_new(parseInt(g,10)));else{let E=this.elementsByName;E.has(g)?E.set(d,assert(E.get(g))):this.error(111,null,g)}}}for(let u=Map_values(this.filesByName),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]);_.source.sourceKind==1&&this.markModuleExports(_)}}processOverrides(e,t){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=t.instanceMembers;if(l)for(let c=0,f=s.length;c<f;++c){let _=s[c];if(l.has(_.name)){let d=assert(l.get(_.name));this.doProcessOverride(e,_,t,d)}}let o=t.interfacePrototypes;if(o)for(let c=0,f=o.length;c<f;++c){let _=o[c];_!=t&&this.processOverrides(e,_)}let u=t.basePrototype;if(!u||(a||(a=new Set),a.add(t),a.has(u)))break;t=u}while(!0)}}doProcessOverride(e,t,n,s){if(!t.isAny(524800))if(t.kind==4&&s.kind==4){let a=t,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let c=l.unboundOverrides;c||(l.unboundOverrides=c=new Set),c.add(t);let f=l.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}else if(t.kind==10&&s.kind==10){let a=t,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let c=a.isField;if(c!=l.isField){c?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(c)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let c=a.getterPrototype;if(c){let _=o.unboundOverrides;_||(o.unboundOverrides=_=new Set),_.add(c)}let f=o.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let _=u.unboundOverrides;_||(u.unboundOverrides=_=new Set),_.add(c)}let f=u.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}}else this.errorRelated(2416,t.identifierNode.range,s.identifierNode.range,t.name,e.internalName,n.internalName)}lookup(e){let t=this.elementsByName;return t.has(e)?assert(t.get(e)):null}require(e,t){let n=this.lookup(e);if(!n)throw new Error(`Missing standard library component: ${e}`);if(n.kind!=t)throw Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let t=this.require(e,6),n=this.resolver.resolveClass(t,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,t=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,t);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let t=e.exports;if(t)for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let t=e.members;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,t,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(t,n)}registerNativeType(e,t){let n=new at(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(t),this.nativeFile.add(e,n)}registerWrapperClass(e,t){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(t));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,t,n){assert(t.isIntegerInclReference);let s=new ti(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,t),this.nativeFile.add(e,s)}registerConstantFloat(e,t,n){assert(t.isFloatValue);let s=new ti(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,t),this.nativeFile.add(e,s)}ensureGlobal(e,t){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=t){let a=wf(s,t);if(!a)return Gs(s.kind)?this.errorRelated(2300,t.identifierNode.range,s.declaration.name.range,e):this.error(2300,t.identifierNode.range,e),t;t=a}}return n.set(e,t),t}lookupForeignFile(e,t){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(t)?assert(n.get(t)):null}lookupForeign(e,t,n){do{let a=t.lookupExport(e);if(a)return a;if(n.has(t)){let l=assert(n.get(t));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let c=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!c)return null;e=o.localIdentifier.text,t=c;continue}if(a=t.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=t.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,t){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Rt.fromNode(l.name),u=Nt.fromKind(o);u&&(t&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,t){return this.options.hasFeature(e)?!0:(this.error(103,t.range,Di(e)),!1)}checkTypeSupported(e,t){switch(e.kind){case 13:return this.checkFeatureEnabled(16,t);case 16:case 15:return e.is(512)?this.checkFeatureEnabled(256,t):this.checkFeatureEnabled(1024,t);case 17:case 18:case 19:case 20:case 21:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(1024,t);case 22:case 23:case 24:case 25:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(16384,t)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkInlineStructValue(s[a],t,"a type argument (Array<T>)")||!this.checkTypeSupported(s[a],t))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,t))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],t))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,t))return!1}}return!0}checkInlineStructValue(e,t,n){let s=e.getClass();return s!=null&&s.hasDecorator(4096)?(this.error(100,t.range,n=="a global"?"an @inline struct at top level (a global is a pointer slot, so two values would alias; declare it inside a function)":"an @inline struct value in "+n+" (value types are not implemented here yet; a pointer would alias)"),!1):!0}initializeClass(e,t,n,s){let a=e.name.text,l=e.declaredAsStruct&&HE(e.decorators,64),o=new Os(a,t,e,this.checkDecorators(e.decorators,49|(e.declaredAsStruct?2112:0)));if(!t.add(a,o))return null;l&&(o.decoratorFlags|=4096),(o.hasDecorator(2048)||o.hasDecorator(4096))&&(o.decoratorFlags|=32);let u=e.implementsTypes;if(u){let f=u.length;f&&(o.hasDecorator(16)?this.error(208,ue.join(e.name.range,u[f-1].range)):s.push(o))}e.extendsType?o.hasDecorator(4096)?this.error(100,ue.join(e.name.range,assert(e.extendsType).range),"inheritance on an @inline struct (a value type is final: no base class, no virtual methods)"):o.hasDecorator(2048)?this.error(100,ue.join(e.name.range,assert(e.extendsType).range),"inheritance on an @managed struct (its fields must stay at fixed offsets from the reference)"):n.push(o):!o.hasDecorator(16)&&o.internalName!=m.Object&&(o.implicitlyExtendsObject=!0);let c=e.members;for(let f=0,_=c.length;f<_;++f){let d=c[f];switch(d.kind){case 58:{this.initializeField(d,o);break}case 62:{let g=d;if(g.is(128)&&g.is(65536)&&this.error(241,g.name.range,g.name.text),d.isAny(6144))this.initializeProperty(g,o);else{let y=this.initializeMethod(g,o);y&&g.name.kind==28&&(o.constructorPrototype=y)}break}case 69:break;default:assert(!1)}}return o}initializeField(e,t){let n=e.name.text,s=e.decorators,a,l=8192;if(t.is(32768)&&(l|=128),e.is(32)){if(assert(t.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new ti(n,t,this.checkDecorators(s,l),e),!t.add(n,a))return}else if(assert(!e.isAny(6272)),a=sn.forField(n,t,e,this.checkDecorators(s,l)),!t.addInstance(n,a))return}initializeMethod(e,t){let n=e.name.text,s=e.is(32),a=8256;e.is(65536)||(a|=14),t.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new lt(n,t,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!x.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=28),!t.add(n,l))return null}else if(!t.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,t),l}checkOperatorOverloads(e,t,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let c=l.args[0];if(c.isLiteralKind(2)){let f=c.value,_=Me.fromDecorator(l.decoratorKind,f);if(_==0)this.error(224,c.range,f);else{let d=n.operatorOverloadPrototypes;d.has(_)?this.error(2393,c.range):(t.operatorKind=_,d.set(_,t))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,t){let n=e.name.text;if(e.is(32)){let s=t.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new sn(n,t,e);return t.add(n,a)?a:null}}else{let s=t.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new sn(n,t,e);return t.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,t){let n=this.ensureProperty(e,t);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new lt((a?rl:il)+s,n.parent,e,this.checkDecorators(e.decorators,8256));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,t){let n=e.name.text,s=new Yo(n,t,e,this.checkDecorators(e.decorators,1089));if(!t.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,t){let n=e.name.text,s=new Jo(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeExports(e,t,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],t,e.internalPath,n);else{let l;s.has(t)?l=assert(s.get(t)):s.set(t,l=[]);let o=e.internalPath;l.push(new Tf(o,o.endsWith(Qe)?o.substring(0,o.length-Qe.length):o+Qe,assert(e.path)))}}initializeExport(e,t,n,s){let a=e.localName.text,l=e.exportedName.text,o=t.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=t.getMember(a))t.ensureExport(l,o);else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new Zo(e.localName,e.exportedName,null,null))}else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new Zo(e.localName,e.exportedName,n,n.endsWith(Qe)?n.substring(0,n.length-Qe.length):n+Qe))}}initializeExportDefault(e,t,n,s){let a=e.declaration,l=null;switch(a.kind){case 56:{l=this.initializeEnum(a,t);break}case 59:{l=this.initializeFunction(a,t);break}case 55:{l=this.initializeClass(a,t,n,s);break}case 61:{l=this.initializeInterface(a,t,n);break}case 63:{l=this.initializeNamespace(a,t,n,s);break}default:assert(!1)}if(l){let o=t.exports;if(!o)t.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,t,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],t,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Xo(t,l,null,e.internalPath,e.internalPath+Qe))}}initializeImport(e,t,n,s,a){let l=n.endsWith(Qe)?n.substring(0,n.length-Qe.length):n+Qe,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){t.add(e.name.text,u,e.name);return}}s.push(new Xo(t,e.name,e.foreignName,n,l))}initializeFunction(e,t){let n=e.name.text,s=8192;e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||t.kind!=6&&(s|=1),e.range.source.isLibrary&&(s|=512);let a=new lt(n,t,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!x.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),t.add(n,a)?a:null}initializeInterface(e,t,n){let s=e.name.text,a=new eu(s,t,e,this.checkDecorators(e.decorators,1));if(!t.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let c=l[o];switch(c.kind){case 58:{this.initializeFieldAsProperty(c,a);break}case 62:{let f=c;f.is(65536)&&this.error(241,f.name.range,f.name.text),c.isAny(6144)?this.initializeProperty(f,a):this.initializeMethod(f,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,t){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=h.createOmittedType(e.name.range.atEnd)),this.initializeProperty(h.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,h.createFunctionType([],s,null,!1,e.range),null,e.range),t),e.is(64)||this.initializeProperty(h.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,h.createFunctionType([h.createParameter(0,e.name,s,null,e.name.range)],h.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),t)}initializeNamespace(e,t,n,s){let a=e.name.text,l=new Vs(a,t,e,this.checkDecorators(e.decorators,1));if(!t.add(a,l))return null;let o=assert(t.getMember(a)),u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 55:{this.initializeClass(_,l,n,s);break}case 56:{this.initializeEnum(_,l);break}case 59:{this.initializeFunction(_,l);break}case 61:{this.initializeInterface(_,l,n);break}case 63:{this.initializeNamespace(_,l,n,s);break}case 64:{this.initializeTypeDefinition(_,l);break}case 51:{this.initializeVariables(_,l);break}default:assert(!1)}}return l!=o&&tr(l,o),o}initializeTypeDefinition(e,t){let n=e.name.text,s=new at(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeVariables(e,t){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let c=new ti(o,t,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!At.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),t.add(o,c)}}},Et=(E=>(E[E.Global=0]="Global",E[E.Local=1]="Local",E[E.Enum=2]="Enum",E[E.EnumValue=3]="EnumValue",E[E.FunctionPrototype=4]="FunctionPrototype",E[E.Function=5]="Function",E[E.ClassPrototype=6]="ClassPrototype",E[E.Class=7]="Class",E[E.InterfacePrototype=8]="InterfacePrototype",E[E.Interface=9]="Interface",E[E.PropertyPrototype=10]="PropertyPrototype",E[E.Property=11]="Property",E[E.Namespace=12]="Namespace",E[E.File=13]="File",E[E.TypeDefinition=14]="TypeDefinition",E[E.IndexSignature=15]="IndexSignature",E))(Et||{}),Nt=(y=>(y[y.None=0]="None",y[y.Global=1]="Global",y[y.OperatorBinary=2]="OperatorBinary",y[y.OperatorPrefix=4]="OperatorPrefix",y[y.OperatorPostfix=8]="OperatorPostfix",y[y.Unmanaged=16]="Unmanaged",y[y.Final=32]="Final",y[y.Inline=64]="Inline",y[y.ManagedStruct=2048]="ManagedStruct",y[y.External=128]="External",y[y.ExternalJs=256]="ExternalJs",y[y.Builtin=512]="Builtin",y[y.Lazy=1024]="Lazy",y[y.InlineStruct=4096]="InlineStruct",y[y.Unsafe=8192]="Unsafe",y))(Nt||{});(r=>{function i(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 2048;case 8:return 32;case 9:return 64;case 10:return 128;case 11:return 256;case 12:return 512;case 13:return 1024;case 14:return 8192;default:return 0}}r.fromKind=i})(Nt||={});var Ds=class{constructor(r,e,t,n,s){this.kind=r;this.name=e;this.internalName=t;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=t,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let r=this;do if(r=r.parent,r.kind==13)return r;while(!0)}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}set(r){this.flags|=r}unset(r){this.flags&=~r}hasDecorator(r){return(this.decoratorFlags&r)==r}hasAnyDecorator(r){return(this.decoratorFlags&r)!=0}getMember(r){let e=this.members;return e&&e.has(r)?assert(e.get(r)):null}lookup(r,e=!1){return this.parent.lookup(r,e)}add(r,e,t=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(r)){let l=assert(s.get(r));if(l.parent==this){let o=wf(l,e);if(o)e=o;else{let u=t||e.identifierNode;return Gs(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(r,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(r){if(this.isPublic==r.isPublic)return!0;let e=1536;return(this.flags&e)==(r.flags&e)}visibilityNoLessThan(r){return this.isPublic?!0:this.is(512)?r.is(512):this.is(1024)?r.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let r=this.parent;switch(r.kind){case 7:case 9:return r}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},ix=new Set;function Gs(i){return ix.has(i)}var Ar=class extends Ds{constructor(e,t,n,s,a,l){super(e,t,n,s,a);this.declaration=l;ix.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,t=e.name;if(e.kind==59||e.kind==62){let n=e.signature;if(t.range.source==n.range.source)return ue.join(t.range,n.range)}return t.range}get decoratorNodes(){return this.declaration.decorators}},nx=new Set;function Ko(i){return nx.has(i)}var rr=class extends Ar{constructor(e,t,n,s,a,l){super(e,t,n,s,a,l);this.type=p.void;nx.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}refineType(e){this.type=e,this.set(4194304)}},Us=class extends Ds{constructor(e,t){super(13,t.normalizedPath,t.internalPath,e,null);this.source=t;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=t,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,de.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,t,n=null){return t.hasDecorator(1)&&(t=this.program.ensureGlobal(e,t)),super.add(e,t,n)?(t=assert(this.getMember(e)),t.is(2)&&!n&&this.ensureExport(t.name,t),!0):!1}getMember(e){let t=super.getMember(e);if(t)return t;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(t=n[s].getMember(e))return t}return null}lookup(e,t=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,t){let n=this.exports;n||(this.exports=n=new Map),n.set(e,t),this.source.sourceKind==3&&this.program.ensureGlobal(e,t);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,t)}ensureExportStar(e){let t=this.exportsStar;if(!t)this.exportsStar=t=[];else if(t.includes(e))return;t.push(e)}lookupExport(e){let t=this.exports;if(t&&t.has(e))return assert(t.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,t,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new Vs(e,t,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let t=this.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},at=class extends rr{constructor(r,e,t,n=0){super(14,r,Ke(r,e,!1),e.program,e,t),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},Vs=class extends Ar{constructor(r,e,t,n=0){super(12,r,Ke(r,e,!1),e.program,e,t),this.decoratorFlags=n}lookup(r,e=!1){let t=this.getMember(r);return t||super.lookup(r,e)}},Yo=class extends rr{constructor(e,t,n,s=0){super(2,e,Ke(e,t,!1),t.program,t,n);this.toStringFunctionName=null;this.underlyingTypeResolved=!1;this.underlyingTypeResolving=!1;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,t=!1){let n=this.getMember(e);return n||super.lookup(e,t)}},kf=(t=>(t[t.None=0]="None",t[t.Integer=1]="Integer",t[t.Float=2]="Float",t))(kf||{}),ri=class extends rr{constructor(e,t,n,s=n.program.makeNativeVariableDeclaration(t)){super(e,t,Ke(t,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,t){assert(t.isIntegerInclReference),this.type=t,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,t){assert(t.isFloatValue),this.type=t,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},Jo=class extends ri{constructor(e,t,n,s=0){super(3,e,t,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(t.type)}get valueNode(){return this.declaration.initializer}},ti=class extends ri{constructor(r,e,t,n=e.program.makeNativeVariableDeclaration(r)){super(0,r,e,n),this.decoratorFlags=t}},Sf=class{constructor(r,e,t=null){this.name=r;this.type=e;this.initializer=t}},ye=class extends ri{constructor(e,t,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=t;this.fieldLocals=null;this.isViewParam=!1;this.isViewLocal=!1;this.originalName=e,this.index=t,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},lt=class i extends Ar{constructor(e,t,n,s=0){super(4,e,Ke(e,t,n.is(262144)),t.program,t,n);this.operatorKind=0;this.capturesThis=!1;this.envKind=0;this.envClass=null;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}get isAsync(){return this.declaration.isAsync&&!this.isAny(530432)}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==62);let s=new i(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,t.set(e,s),s}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?assert(t.get(e)):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},Lt=class i extends rr{constructor(e,t,n,s,a=null){super(5,e,Ke(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.tableIndex=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.nextBreakId=0;this.breakStack=null;this.prototype=t,this.typeArguments=n,this.signature=s,this.flags=t.flags|4194304,this.decoratorFlags=t.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=t.program;this.type=s.type;let o=Jt.createDefault(this);if(this.flow=o,!t.is(32768)){let u=0,c=s.thisType;if(c){let d=new ye(N.this_,u++,c,this),g=this.flow.scopedLocals;g||(this.flow.scopedLocals=g=new Map),g.set(N.this_,d),this.localsByIndex[d.index]=d,o.setLocalFlag(d.index,8)}if(s.hasHiddenDestParam){let d=new ye("$sretDest",u++,p.u32,this);this.localsByIndex[d.index]=d,o.setLocalFlag(d.index,8)}let f=s.parameterTypes,_=null;for(let d=0,g=f.length;d<g;++d){let y=f[d],E=this.getParameterName(d);if(s.isExportByValParam(d)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new ye(E+"$byval",u++,p.u32,this);this.localsByIndex[w.index]=w,o.setLocalFlag(w.index,8),F.set(E+"$byval",w),_||(_=new Array),unchecked(_[_.length]=new vf(d,E,y,new Map));continue}if(s.isViewParam(d)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new ye(E,u++,y,this);w.isViewParam=!0,this.localsByIndex[w.index]=w,o.setLocalFlag(w.index,8),F.set(E,w);continue}if(de.isInlineStructRef(y)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new Map,R=this.bindSroaParameterLeaves(y,E,w,u,o);u+=R.leafCount;let B=new ye(E,-1,y,this);B.fieldLocals=w,F.set(E,B);continue}let T=new ye(E,u++,y,this),k=this.flow.scopedLocals;k||(this.flow.scopedLocals=k=new Map),k.set(E,T),this.localsByIndex[T.index]=T,o.setLocalFlag(T.index,8)}if(_)for(let d=0,g=_.length;d<g;++d){let y=unchecked(_[d]),E=y.parameterName,T=y.parameterType,k=y.fieldLocals,F=assert(T.classReference),w=assert(F.members);for(let M=Map_values(w),q=0,G=M.length;q<G;++q){let X=unchecked(M[q]);if(X.kind!=10)continue;let z=X.instance;if(z==null||!z.isField)continue;let U=new ye(E+"$"+z.name,u++,z.type,this);k.set(z.name,U),this.localsByIndex[U.index]=U,o.setLocalFlag(U.index,8)}let R=new ye(E,-1,T,this);R.fieldLocals=k;let B=this.flow.scopedLocals;B||(this.flow.scopedLocals=B=new Map),B.set(E,R)}}l.instancesByName.has(this.internalName)?(l.error(2393,t.declaration.name.range),this.set(16777216)):Ff(l,this)}bindSroaParameterLeaves(e,t,n,s,a){let l=assert(e.classReference),o=assert(l.members),u=0;for(let c=Map_values(o),f=0,_=c.length;f<_;++f){let d=unchecked(c[f]);if(d.kind!=10)continue;let g=d.instance;if(g==null||!g.isField)continue;let y=t+"$"+g.name,E=g.type;if(de.isInlineStructRef(E)){let k=new Map,F=this.bindSroaParameterLeaves(E,y,k,s+u,a);u+=F.leafCount;let w=new ye(y,-1,E,a.sourceFunction);w.fieldLocals=k,n.set(g.name,w);continue}let T=new ye(y,s+u,E,a.sourceFunction);this.localsByIndex[T.index]=T,a.setLocalFlag(T.index,8),n.set(g.name,T),++u}return new $o(u)}getNonParameterLocalTypes(){let e=this.localsByIndex,t=this.signature,n=e.length,s=t.wasmParamCount();t.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o){let u=e[s+o];l[o]=u.isViewLocal?this.program.options.usizeType:u.type}return l}getParameterName(e){let t=this.declaration.signature.parameters;return t.length>e?t[e].name.text:sx(e)}newStub(e,t=this.signature.requiredParameters){let n=new i(this.original.name+Lp+e,this.prototype,this.typeArguments,this.signature.clone(t),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,t=null,n=null){let s=this.localsByIndex,a=s.length,l=t??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new ye(l,a,e,this,n);if(t){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(t))throw new Error("duplicate local name");c.set(t,o)}return s[a]=o,o}lookup(e,t=!1){if(!t){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,t)}finalize(e,t){this.ref=t;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,t)}addDebugInfo(e,t){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),c=u.source;e.setDebugLocation(t,o,c.debugInfoIndex,c.lineAt(u.start),c.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(t,a,o)}}}},sn=class i extends Ar{constructor(e,t,n){super(10,e,Ke(e,t,n.is(262144)),t.program,t,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,t,n,s){let a=Te.native.range,l=n.type;l||(l=h.createOmittedType(n.name.range.atEnd));let o=new Jr(n.name,n.decorators,n.flags|262144|2048,null,new $r([],l,null,!1,a),null,a),u=new Jr(n.name,n.decorators,n.flags|262144|4096,null,new $r([new Zi(0,n.name,l,null,a)],new Zr(new Xi(new rt("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new i(e,t,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new lt(rl+e,t,o,s),c.setterPrototype=new lt(il+e,t,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let t=this.getterPrototype;if(t){let s=t.declaration;if(s.kind==59)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==59){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==62);let s=new i(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),t.set(e,s),s}},Cs=class extends ri{constructor(e,t){super(11,e.name,t,e.isField?assert(e.fieldDeclaration):h.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&Ff(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let t=this.getterInstance,n=this.setterInstance;t&&n&&!t.visibilityNoLessThan(n)&&e.errorRelated(2808,t.identifierNode.range,n.identifierNode.range,t.identifierNode.text)}},Ps=class extends rr{constructor(r){super(15,"[]",r.internalName+"[]",r.program,r,r.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(r){return this.parent.lookupOverload(1,r)}getSetterInstance(r){return this.parent.lookupOverload(2,r)}};function HE(i,r){if(!i)return!1;for(let e=0,t=i.length;e<t;++e)if(Nt.fromKind(i[e].decoratorKind)&r)return!0;return!1}var Os=class extends Ar{constructor(e,t,n,s=0,a=!1){super(a?8:6,e,Ke(e,t,n.is(262144)),t.program,t,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let t=this,n=new Set;do{if(n.has(t))break;if(n.add(t),t==e)return!0;t=t.basePrototype}while(t);return!1}addInstance(e,t){let n=t.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=wf(a,t);if(!l)return Gs(a.kind)?this.program.errorRelated(2300,t.identifierNode.range,a.declaration.name.range,t.identifierNode.text):this.program.error(2300,t.identifierNode.range,t.identifierNode.text),!1;t=l}return s.set(e,t),t.is(2)&&this.is(1048576)&&t.set(1048576),this.program.elementsByDeclaration.set(n,t),!0}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?t.get(e):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},Er=class extends rr{constructor(e,t,n=null,s=!1){super(s?9:7,e,Ke(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.alignLog2=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=t,this.flags=t.flags,this.decoratorFlags=t.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let c=a.nextClassId++;this._id=c,a.managedClasses.set(c,this)}let u=t.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let f=this.contextualTypeArguments;f||(this.contextualTypeArguments=f=new Map);for(let _=0;_<c;++_)f.set(u[_].name.text,n[_])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");Ff(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,t){if(e==t)return e;let n=new Set;for(n.add(e),n.add(t);;){let s=e.base,a=t.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(t=a)}}}setBase(e){assert(!this.base),this.base=e;let t=e.contextualTypeArguments;if(t){let a=this.contextualTypeArguments;for(let l=Map_keys(t),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),f=assert(t.get(c));a?a.has(c)||a.set(c,f):(this.contextualTypeArguments=a=new Map,a.set(c,f))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let c=l[o];this.propagateInterfaceDown(c)}s=s.base}while(s)}propagateExtenderUp(e){let t=this;do{let n=t.extenders;n||(t.extenders=n=new Set),n.add(e),t=t.base}while(t)}propagateInterfaceDown(e){let t=e,n=this.extenders;do{let s=t.implementers;if(s||(t.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}t=t.base}while(t)}addInterface(e){let t=this.interfaces;t||(this.interfaces=t=new Set),t.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,t=!1){if(t)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,t=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,t):null}offsetof(e){let t=assert(this.getMember(e));assert(t.kind==10);let s=t.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let t=this.program,n=this.nextMemoryOffset+e,s=t.computeBlockSize(n,!0),a=new Uint8Array(t.blockOverhead+s),l=t.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,t,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,c=o.type.kind;switch(c){case 1:case 6:return assert(!i64_is(t)),be(i32(t),n,u),1;case 2:case 7:return assert(!i64_is(t)),gr(i32(t),n,u),2;case 3:case 8:return assert(!i64_is(t)),Se(i32(t),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(t)?qi(t,n,u):al(i32(t),n,u,c==10),8):(i64_is(t)?Mp(t,n,u,c==10):Se(i32(t),n,u),4);case 4:case 9:return i64_is(t)?qi(t,n,u):al(i32(t),n,u,c==9),8;case 11:return assert(!i64_is(t)),qr(f32(t),n,u),4;case 12:return assert(!i64_is(t)),Wr(f64(t),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let t=this;do{if(t.prototype==e)return t.typeArguments;t=t.base}while(t);return null}getArrayValueType(){let e=this,t=this.program,n=t.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=t.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=t.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==t.float32ArrayPrototype)return p.f32;if(l==t.float64ArrayPrototype)return p.f64;break}case 73:{if(l==t.int8ArrayPrototype)return p.i8;if(l==t.int16ArrayPrototype)return p.i16;if(l==t.int32ArrayPrototype)return p.i32;if(l==t.int64ArrayPrototype)return p.i64;break}case 85:{if(l==t.uint8ArrayPrototype)return p.u8;if(l==t.uint8ClampedArrayPrototype)return p.u8;if(l==t.uint16ArrayPrototype)return p.u16;if(l==t.uint32ArrayPrototype)return p.u32;if(l==t.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,t=this.members;if(t){for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(t.has(N.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let t=this.extenders;return t!=null&&t.has(e)}hasExtenderImplementing(e){let t=this.extenders;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let t=this.implementers;return t!=null&&t.has(e)}hasImplementerImplementing(e){let t=this.implementers;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},eu=class extends Os{constructor(r,e,t,n){super(r,e,t,n,!0)}},Bs=class extends Er{constructor(r,e,t=null){super(r,e,t,!0)}};function Ff(i,r){assert(!i.instancesByName.has(r.internalName)),i.instancesByName.set(r.internalName,r)}function wf(i,r){if(assert(i.program==r.program),r.members)return null;let e=null;switch(i.kind){case 4:{switch(r.kind){case 12:{tr(r,i),e=i;break}case 14:{i.shadowType||(i.shadowType=r,tr(r,i),e=i);break}}break}case 6:case 2:{if(r.kind==12){tr(r,i),e=i;break}break}case 12:{switch(r.kind){case 2:case 6:case 4:{tr(i,r),e=r;break}case 12:{tr(r,i),e=i;break}case 14:{i.shadowType||(i.shadowType=r,tr(r,i),e=i);break}}break}case 0:{r.kind==14&&(i.shadowType||(i.shadowType=r,tr(r,i),e=i));break}case 14:{switch(r.kind){case 0:case 4:case 12:{r.shadowType||(r.shadowType=i,tr(i,r),e=r);break}}break}}if(e){let t=i.is(2)||i.hasDecorator(1),n=r.is(2)||r.hasDecorator(1);t!=n&&i.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function tr(i,r){let e=i.members;if(e){let t=r.members;t||(r.members=t=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));t.set(l,o)}}}function Ke(i,r,e,t=!1){switch(r.kind){case 13:return t?i:r.internalName+mt+i;case 5:return t?i:(assert(!e),r.internalName+Np+i);case 10:case 11:r=r.parent;default:return Ke(r.name,r.parent,r.is(262144),t)+(e?Bp:es)+i}}var Af=[];function sx(i){for(let r=Af.length;r<=i;++r)Af.push(`$${r}`);return Af[i]}var vf=class{constructor(r,e,t,n){this.index=r;this.parameterName=e;this.parameterType=t;this.fieldLocals=n}};var xr=(z=>(z[z.Bool=0]="Bool",z[z.I8=1]="I8",z[z.I16=2]="I16",z[z.I32=3]="I32",z[z.I64=4]="I64",z[z.Isize=5]="Isize",z[z.U8=6]="U8",z[z.U16=7]="U16",z[z.U32=8]="U32",z[z.U64=9]="U64",z[z.Usize=10]="Usize",z[z.F32=11]="F32",z[z.F64=12]="F64",z[z.V128=13]="V128",z[z.FixedArray=14]="FixedArray",z[z.Extern=15]="Extern",z[z.Func=16]="Func",z[z.Any=17]="Any",z[z.Eq=18]="Eq",z[z.Struct=19]="Struct",z[z.Array=20]="Array",z[z.I31=21]="I31",z[z.String=22]="String",z[z.StringviewWTF8=23]="StringviewWTF8",z[z.StringviewWTF16=24]="StringviewWTF16",z[z.StringviewIter=25]="StringviewIter",z[z.Void=26]="Void",z))(xr||{}),Bt=(y=>(y[y.None=0]="None",y[y.Signed=1]="Signed",y[y.Unsigned=2]="Unsigned",y[y.Integer=4]="Integer",y[y.Float=8]="Float",y[y.Varying=16]="Varying",y[y.Short=32]="Short",y[y.Long=64]="Long",y[y.Value=128]="Value",y[y.Reference=256]="Reference",y[y.Nullable=512]="Nullable",y[y.Vector=1024]="Vector",y[y.External=2048]="External",y[y.Class=4096]="Class",y[y.Function=8192]="Function",y))(Bt||{}),p=class i{constructor(r,e,t){this.classReference=null;this.signatureReference=null;this.fixedElementType=null;this.fixedLength=0;this.fixedAlignLog2=0;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=r,this.flags=e,this.size=t,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==i.auto)return this;switch(this.kind){case 0:case 3:case 11:return i.i32;case 1:return i.i8;case 2:return i.i16;case 12:case 4:return i.i64;case 5:return this.size==64?i.isize64:i.isize32;case 6:return i.u8;case 7:return i.u16;case 8:return i.u32;case 9:return i.u64;case 10:return this.size==64?i.usize64:i.usize32;default:return i.i32}}get exceptVoid(){return this.kind==26?i.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return this.kind==14?this.fixedAlignLog2:31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==i.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(r){let e=this.getClass();if(e)return e;{let t=this.getSignature();if(t){let n=t.type,s=assert(r.resolver.resolveClass(r.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=r.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(r,e){let t=this.getClassOrWrapper(e);return t?t.lookupOverload(r):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let r=this.classReference;return r?!r.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let r=this.classReference;return r!=null&&r.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(r){return r.size-this.size}computeSmallIntegerMask(r){let e=this.size;return this.is(2)||(e-=1),-1>>>r.size-e}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}asNullable(){assert(this.isReference);let r=this._nullableType;return r||(assert(!this.isNullableReference),this._nullableType=r=new i(this.kind,this.flags|512,this.size),r.classReference=this.classReference,r.signatureReference=this.signatureReference,r._nonNullableType=this),r}toUnsigned(){switch(this.kind){case 1:return i.u8;case 2:return i.u16;case 3:return i.u32;case 4:return i.u64;case 5:return this.size==64?i.usize64:i.usize32}return this}equals(r){if(this.kind!=r.kind)return!1;if(this.kind==14){let e=this.fixedElementType,t=r.fixedElementType;return e!=null&&t!=null&&this.fixedLength==r.fixedLength&&e.equals(t)}if(this.isReference){let e=this.signatureReference,t=r.signatureReference;return this.classReference==r.classReference&&e==t&&this.isNullableReference==r.isNullableReference}return!0}isAssignableTo(r,e=!1){let t,n,s,a;if(this.isReference){if(r.isReference&&(!this.isNullableReference||r.isNullableReference)){if(t=this.getClass()){if(n=r.getClass())return t.isAssignableTo(n)}else if(s=this.getSignature()){if(a=r.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==r.kind||r.kind==17&&this.kind!=15))return!0}}else if(!r.isReference){if(this.isIntegerValue)if(r.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==r.isSignedIntegerValue)return this.size<=r.size}else{if(r.kind==11)return this.size<=23;if(r.kind==12)return this.size<=52}else if(this.isFloatValue){if(r.isFloatValue)return this.size<=r.size}else if(this.isVectorValue&&r.isVectorValue)return this.size==r.size}return!1}isStrictlyAssignableTo(r,e=!1){return this.isReference?this.isAssignableTo(r):r.isReference?!1:this.isIntegerValue?r.isIntegerValue&&r.size==this.size&&(!e||this.isSignedIntegerValue==r.isSignedIntegerValue):this.kind==r.kind}hasSubtypeAssignableTo(r){let e=this.getClass(),t=r.getClass();return!e||!t?!1:e.hasSubclassAssignableTo(t)}isChangeableTo(r){if(this.is(4)&&r.is(4)){let e=this.size;return e==r.size&&(e>=32||this.is(1)==r.is(1))}return this.kind==r.kind}canExtendOrImplement(r){let e=this.getClass(),t=r.getClass();if(!e||!t||this.isManaged!=r.isManaged)return!1;if(this.isInternalReference){if(!r.isInternalReference)return!1}else if(this.isExternalReference){if(!r.isExternalReference)return!1}else return!1;return!0}static commonType(r,e,t=i.auto,n=!1){if(r.isInternalReference){if(!e.isInternalReference)return null;if(t!=i.void&&r.isAssignableTo(t)&&e.isAssignableTo(t))return t;let s=r.getClass(),a=e.getClass();if(s&&a){let l=Er.leastUpperBound(s,a);if(l)return r.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(r,n)?r:r.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return N.bool;case 1:return N.i8;case 2:return N.i16;case 3:return N.i32;case 4:return N.i64;case 5:return N.isize;case 6:return N.u8;case 7:return N.u16;case 8:return N.u32;case 9:return N.u64;case 10:return N.usize;case 11:return N.f32;case 12:return N.f64;case 13:return N.v128;case 16:return N.ref_func;case 15:return N.ref_extern;case 17:return N.ref_any;case 18:return N.ref_eq;case 19:return N.ref_struct;case 20:return N.ref_array;case 21:return N.ref_i31;case 22:return N.ref_string;case 23:return N.ref_stringview_wtf8;case 24:return N.ref_stringview_wtf16;case 25:return N.ref_stringview_iter;case 14:{let r=this.fixedElementType;return(r?r.toString():"?")+"["+this.fixedLength.toString()+"]"}default:assert(!1);case 26:return N.void_}}toString(r=!1){let e=r?"|null":" | null";if(this.isReference){let t=this.getClass();if(t)return this.isNullableReference?t.internalName+e:t.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(r)})${e}`:n.toString(r):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==i.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return P.I32;case 5:case 10:if(this.size!=64)return P.I32;case 4:case 9:return P.I64;case 11:return P.F32;case 12:return P.F64;case 13:return P.V128;case 16:return Ae(Ie.Func,this.is(512));case 15:return Ae(Ie.Extern,this.is(512));case 17:return Ae(Ie.Any,this.is(512));case 18:return Ae(Ie.Eq,this.is(512));case 19:return Ae(Ie.Struct,this.is(512));case 20:return Ae(Ie.Array,this.is(512));case 21:return Ae(Ie.I31,this.is(512));case 22:return Ae(Ie.String,this.is(512));case 26:return P.None}return assert(!1),Fs(this)}static{this.i8=new i(1,165,8)}static{this.i16=new i(2,165,16)}static{this.i32=new i(3,133,32)}static{this.i64=new i(4,197,64)}static{this.isize32=new i(5,149,32)}static{this.isize64=new i(5,213,64)}static{this.u8=new i(6,166,8)}static{this.u16=new i(7,166,16)}static{this.u32=new i(8,134,32)}static{this.u64=new i(9,198,64)}static{this.usize32=new i(10,150,32)}static{this.usize64=new i(10,214,64)}static{this.bool=new i(0,166,1)}static{this.f32=new i(11,137,32)}static{this._fixedArrays=null}static fixedArray(r,e){let t=r.toString()+"["+e.toString()+"]",n=i._fixedArrays;if(!n){let l=new Map;i._fixedArrays=l,n=l}let s=ee(n,t);if(s)return s;let a=new i(14,0,r.byteSize*e<<3);return a.fixedElementType=r,a.fixedLength=e,a.fixedAlignLog2=r.alignLog2,n.set(t,a),a}get fixedArrayElementType(){return assert(this.fixedElementType)}static{this.f64=new i(12,201,64)}static{this.v128=new i(13,1152,128)}static{this.func=new i(16,2304,0)}static{this.extern=new i(15,2304,0)}static{this.any=new i(17,2304,0)}static{this.eq=new i(18,2304,0)}static{this.struct=new i(19,2304,0)}static{this.array=new i(20,2304,0)}static{this.i31=new i(21,2304,0)}static{this.string=new i(22,2304,0)}static{this.stringview_wtf8=new i(23,2304,0)}static{this.stringview_wtf16=new i(24,2304,0)}static{this.stringview_iter=new i(25,2304,0)}static{this.void=new i(26,0,0)}static{this.auto=new i(i.i32.kind,i.i32.flags,i.i32.size)}};function an(i){let r=i.length,e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=i[t].toRef());return e}function Ho(i){let r=i.length;if(!r)return"";let e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=i[t].toString(!0));return e.join(",")}var ax=(n=>(n[n.None=0]="None",n[n.Inline=1]="Inline",n[n.Managed=2]="Managed",n[n.Unmanaged=3]="Unmanaged",n))(ax||{});function jE(i){if(i==null)return"";let r=i.length;if(!r)return"";let e=new Array(r);for(let t=0;t<r;++t){let n=unchecked(i[t]);unchecked(e[t]=n==1?"i":n==2?"m":n==3?"u":"-")}return"!mm:"+e.join("")+":"}var de=class i{constructor(r,e,t,n,s,a,l,o,u,c,f,_){this.program=r;this.parameterTypes=e;this.returnType=t;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.sretDisabled=l;this.externalBoundary=o;this.exportByValParams=u;this.memoryModels=c;this.id=f;this.type=_}static create(r,e=[],t=p.void,n=null,s=e?e.length:0,a=!1,l=!1,o=!1,u=!1,c=null){let f=r.options.usizeType,_=new p(f.kind,f.flags&-129|256,f.size),d=r.uniqueSignatures,g=r.nextSignatureId,y=new i(r,e,t,n,s,a,l,o,u,c,g,_),E=(l?"!sret-disabled:":"")+(o?"!external-boundary:":"")+(u?"!export-byval:":"")+jE(c)+y.toString();if(d.has(E)){let T=assert(d.get(E));return assert(y.equals(T)),T}return r.nextSignatureId=g+1,_.signatureReference=y,d.set(E,y),y}memoryModelOf(r){let e=this.memoryModels;return e==null?0:unchecked(e[r])}static wasmParamCountOf(r){let e=r.classReference;if(e==null||!e.hasDecorator(4096))return 1;let t=i.leafCountOf(r);return t>0?t:1}static leafTypesOf(r,e){let t=r.classReference;if(t==null)return;let n=t.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=10)continue;let u=o.instance;if(u==null||!u.isField)continue;let c=u.type;i.isInlineStructRef(c)?i.leafTypesOf(c,e):e.push(c)}}static leafCountOf(r){let e=new Array;return i.leafTypesOf(r,e),e.length}wasmParamSlotCountOf(r){return this.isViewParam(r)||this.isByValPointerParam(r)?1:i.wasmParamCountOf(unchecked(this.parameterTypes[r]))}isViewParam(r){return this.memoryModelOf(r)==3&&i.isInlineStructRef(unchecked(this.parameterTypes[r]))}crossesByValueParam(r){return this.isViewParam(r)?!1:i.isInlineStructRef(unchecked(this.parameterTypes[r]))?!0:this.memoryModelOf(r)==1}isExternalPointerParam(r){return this.externalBoundary?this.crossesByValueParam(r):!1}isExportByValParam(r){return this.exportByValParams?this.crossesByValueParam(r):!1}isByValPointerParam(r){return this.isExternalPointerParam(r)||this.isExportByValParam(r)}get byValPointerParams(){return this.externalBoundary||this.exportByValParams}static isInlineStructRef(r){let e=r.classReference;return e!=null&&e.hasDecorator(4096)}static fieldCountOf(r){return r.classReference==null?0:i.leafCountOf(r)}get hasHiddenDestParam(){if(this.sretDisabled)return!1;let r=this.returnType.classReference;return r!=null&&r.hasDecorator(4096)}wasmParamStartOf(r){let e=this.parameterTypes,t=this.hasHiddenDestParam?1:0;for(let n=0;n<r&&n<e.length;++n)t+=this.wasmParamSlotCountOf(n);return t}wasmParamCount(){let r=this.parameterTypes,e=this.hasHiddenDestParam?1:0;for(let t=0,n=r.length;t<n;++t)e+=this.wasmParamSlotCountOf(t);return e}sourceIndexOf(r){let e=this.parameterTypes,t=this.hasHiddenDestParam?1:0;if(r<t)return-1;for(let n=0,s=e.length;n<s;++n){let a=this.wasmParamSlotCountOf(n);if(r<t+a)return n;t+=a}return-1}get paramRefs(){let r=this.thisType,e=this.parameterTypes,t=e.length,n=this.hasHiddenDestParam;if(!t&&!n)return r?r.toRef():P.None;let s=this.wasmParamCount(),a=new Array(r?1+s:s),l=0;r&&unchecked(a[l++]=r.toRef()),n&&unchecked(a[l++]=P.I32);for(let o=0;o<t;++o){let u=unchecked(e[o]);if(this.isViewParam(o))unchecked(a[l++]=P.I32);else if(this.isByValPointerParam(o))unchecked(a[l++]=P.I32);else if(i.isInlineStructRef(u)){let c=new Array;i.leafTypesOf(u,c);for(let f=0,_=c.length;f<_;++f)unchecked(a[l++]=unchecked(c[f]).toRef())}else unchecked(a[l++]=u.toRef())}return ft(a)}get resultRefs(){return this.hasHiddenDestParam?P.None:this.returnType.toRef()}equals(r){let e=this.thisType,t=r.thisType;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;if(this.hasRest!=r.hasRest||this.sretDisabled!=r.sretDisabled||this.externalBoundary!=r.externalBoundary||this.exportByValParams!=r.exportByValParams)return!1;let n=this.memoryModels,s=r.memoryModels;if(n==null!=(s==null))return!1;if(n!=null){let u=assert(s),c=n.length;if(c!=u.length)return!1;for(let f=0;f<c;++f)if(unchecked(n[f])!=unchecked(u[f]))return!1}if(!this.returnType.equals(r.returnType))return!1;let a=this.parameterTypes,l=r.parameterTypes,o=a.length;if(o!=l.length)return!1;for(let u=0;u<o;++u){let c=unchecked(a[u]),f=unchecked(l[u]);if(!c.equals(f))return!1}return!0}isAssignableTo(r,e=!1){let t=this.thisType,n=r.thisType;if(t&&n){if(!(e?t.canExtendOrImplement(n):n.isAssignableTo(t)))return!1}else if(t||n)return!1;if(this.hasRest!=r.hasRest)return!1;let s=this.returnType,a=r.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=r.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let f=unchecked(l[c]),_=unchecked(o[c]);if(f!=_)return!1}return!0}get hasManagedOperands(){let r=this.thisType;if(r&&r.isManaged)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isManaged)return!0;return!1}getManagedOperandIndices(){let r=new Array,e=0,t=this.thisType;t&&(t.isManaged&&r.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&r.push(e),++e;return r}get hasVectorValueOperands(){let r=this.thisType;if(r&&r.isVectorValue)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let r=new Array,e=0,t=this.thisType;t&&(t.isVectorValue&&r.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&r.push(e),++e;return r}toString(r=!1){let e=new Array;e.push(r?"%28":"(");let t=0,n=this.thisType;n&&(e.push(r?"this:":"this: "),e.push(n.toString(r)),t=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++t)t&&e.push(r?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(r)),u>=l&&u!=o&&e.push("?")}return e.push(r?"%29=>":") => "),e.push(this.returnType.toString(r)),e.join("")}clone(r=this.requiredParameters,e=this.hasRest){let t=this.parameterTypes,n=t.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=t[a]);return i.create(this.program,s,this.returnType,this.thisType,r,e,this.sretDisabled,this.externalBoundary,this.exportByValParams,this.memoryModels)}};var m;(b=>(b.start="~start",b.started="~started",b.argumentsLength="~argumentsLength",b.setArgumentsLength="~setArgumentsLength",b.env="~env",b.abort="~lib/builtins/abort",b.trace="~lib/builtins/trace",b.seed="~lib/builtins/seed",b.isBoolean="~lib/builtins/isBoolean",b.isInteger="~lib/builtins/isInteger",b.isSigned="~lib/builtins/isSigned",b.isFloat="~lib/builtins/isFloat",b.isVector="~lib/builtins/isVector",b.isReference="~lib/builtins/isReference",b.isString="~lib/builtins/isString",b.isArray="~lib/builtins/isArray",b.isArrayLike="~lib/builtins/isArrayLike",b.isFunction="~lib/builtins/isFunction",b.isNullable="~lib/builtins/isNullable",b.isDefined="~lib/builtins/isDefined",b.isConstant="~lib/builtins/isConstant",b.isManaged="~lib/builtins/isManaged",b.isVoid="~lib/builtins/isVoid",b.add="~lib/builtins/add",b.sub="~lib/builtins/sub",b.mul="~lib/builtins/mul",b.div="~lib/builtins/div",b.clz="~lib/builtins/clz",b.ctz="~lib/builtins/ctz",b.popcnt="~lib/builtins/popcnt",b.rotl="~lib/builtins/rotl",b.rotr="~lib/builtins/rotr",b.abs="~lib/builtins/abs",b.max="~lib/builtins/max",b.min="~lib/builtins/min",b.ceil="~lib/builtins/ceil",b.floor="~lib/builtins/floor",b.copysign="~lib/builtins/copysign",b.nearest="~lib/builtins/nearest",b.reinterpret="~lib/builtins/reinterpret",b.sqrt="~lib/builtins/sqrt",b.trunc="~lib/builtins/trunc",b.eq="~lib/builtins/eq",b.ne="~lib/builtins/ne",b.rem="~lib/builtins/rem",b.load="~lib/builtins/load",b.store="~lib/builtins/store",b.atomic_load="~lib/builtins/atomic.load",b.atomic_store="~lib/builtins/atomic.store",b.atomic_add="~lib/builtins/atomic.add",b.atomic_sub="~lib/builtins/atomic.sub",b.atomic_and="~lib/builtins/atomic.and",b.atomic_or="~lib/builtins/atomic.or",b.atomic_xor="~lib/builtins/atomic.xor",b.atomic_xchg="~lib/builtins/atomic.xchg",b.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",b.atomic_wait="~lib/builtins/atomic.wait",b.atomic_notify="~lib/builtins/atomic.notify",b.atomic_fence="~lib/builtins/atomic.fence",b.sizeof="~lib/builtins/sizeof",b.alignof="~lib/builtins/alignof",b.offsetof="~lib/builtins/offsetof",b.abiNameOf="~lib/builtins/abiNameOf",b.nameof="~lib/builtins/nameof",b.lengthof="~lib/builtins/lengthof",b.select="~lib/builtins/select",b.unreachable="~lib/builtins/unreachable",b.changetype="~lib/builtins/changetype",b.copyInto="~lib/builtins/copyInto",b.assert="~lib/builtins/assert",b.call_indirect="~lib/builtins/call_indirect",b.unchecked="~lib/builtins/unchecked",b.inline_always="~lib/builtins/inline.always",b.instantiate="~lib/builtins/instantiate",b.idof="~lib/builtins/idof",b.i8="~lib/builtins/i8",b.i16="~lib/builtins/i16",b.i32="~lib/builtins/i32",b.i64="~lib/builtins/i64",b.isize="~lib/builtins/isize",b.u8="~lib/builtins/u8",b.u16="~lib/builtins/u16",b.u32="~lib/builtins/u32",b.u64="~lib/builtins/u64",b.usize="~lib/builtins/usize",b.bool="~lib/builtins/bool",b.f32="~lib/builtins/f32",b.f64="~lib/builtins/f64",b.v128="~lib/builtins/v128",b.i32_clz="~lib/builtins/i32.clz",b.i64_clz="~lib/builtins/i64.clz",b.i32_ctz="~lib/builtins/i32.ctz",b.i64_ctz="~lib/builtins/i64.ctz",b.i32_popcnt="~lib/builtins/i32.popcnt",b.i64_popcnt="~lib/builtins/i64.popcnt",b.i32_rotl="~lib/builtins/i32.rotl",b.i64_rotl="~lib/builtins/i64.rotl",b.i32_rotr="~lib/builtins/i32.rotr",b.i64_rotr="~lib/builtins/i64.rotr",b.f32_abs="~lib/builtins/f32.abs",b.f64_abs="~lib/builtins/f64.abs",b.f32_max="~lib/builtins/f32.max",b.f64_max="~lib/builtins/f64.max",b.f32_min="~lib/builtins/f32.min",b.f64_min="~lib/builtins/f64.min",b.f32_ceil="~lib/builtins/f32.ceil",b.f64_ceil="~lib/builtins/f64.ceil",b.f32_floor="~lib/builtins/f32.floor",b.f64_floor="~lib/builtins/f64.floor",b.f32_copysign="~lib/builtins/f32.copysign",b.f64_copysign="~lib/builtins/f64.copysign",b.f32_nearest="~lib/builtins/f32.nearest",b.f64_nearest="~lib/builtins/f64.nearest",b.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",b.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",b.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",b.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",b.f32_sqrt="~lib/builtins/f32.sqrt",b.f64_sqrt="~lib/builtins/f64.sqrt",b.f32_trunc="~lib/builtins/f32.trunc",b.f64_trunc="~lib/builtins/f64.trunc",b.i32_add="~lib/builtins/i32.add",b.i64_add="~lib/builtins/i64.add",b.f32_add="~lib/builtins/f32.add",b.f64_add="~lib/builtins/f64.add",b.i32_sub="~lib/builtins/i32.sub",b.i64_sub="~lib/builtins/i64.sub",b.f32_sub="~lib/builtins/f32.sub",b.f64_sub="~lib/builtins/f64.sub",b.i32_mul="~lib/builtins/i32.mul",b.i64_mul="~lib/builtins/i64.mul",b.f32_mul="~lib/builtins/f32.mul",b.f64_mul="~lib/builtins/f64.mul",b.i32_div_s="~lib/builtins/i32.div_s",b.i32_div_u="~lib/builtins/i32.div_u",b.i64_div_s="~lib/builtins/i64.div_s",b.i64_div_u="~lib/builtins/i64.div_u",b.f32_div="~lib/builtins/f32.div",b.f64_div="~lib/builtins/f64.div",b.i32_eq="~lib/builtins/i32.eq",b.i64_eq="~lib/builtins/i64.eq",b.f32_eq="~lib/builtins/f32.eq",b.f64_eq="~lib/builtins/f64.eq",b.i32_ne="~lib/builtins/i32.ne",b.i64_ne="~lib/builtins/i64.ne",b.f32_ne="~lib/builtins/f32.ne",b.f64_ne="~lib/builtins/f64.ne",b.i32_rem_s="~lib/builtins/i32.rem_s",b.i32_rem_u="~lib/builtins/i32.rem_u",b.i64_rem_s="~lib/builtins/i64.rem_s",b.i64_rem_u="~lib/builtins/i64.rem_u",b.i32_load8_s="~lib/builtins/i32.load8_s",b.i32_load8_u="~lib/builtins/i32.load8_u",b.i32_load16_s="~lib/builtins/i32.load16_s",b.i32_load16_u="~lib/builtins/i32.load16_u",b.i32_load="~lib/builtins/i32.load",b.i64_load8_s="~lib/builtins/i64.load8_s",b.i64_load8_u="~lib/builtins/i64.load8_u",b.i64_load16_s="~lib/builtins/i64.load16_s",b.i64_load16_u="~lib/builtins/i64.load16_u",b.i64_load32_s="~lib/builtins/i64.load32_s",b.i64_load32_u="~lib/builtins/i64.load32_u",b.i64_load="~lib/builtins/i64.load",b.f32_load="~lib/builtins/f32.load",b.f64_load="~lib/builtins/f64.load",b.i32_store8="~lib/builtins/i32.store8",b.i32_store16="~lib/builtins/i32.store16",b.i32_store="~lib/builtins/i32.store",b.i64_store8="~lib/builtins/i64.store8",b.i64_store16="~lib/builtins/i64.store16",b.i64_store32="~lib/builtins/i64.store32",b.i64_store="~lib/builtins/i64.store",b.f32_store="~lib/builtins/f32.store",b.f64_store="~lib/builtins/f64.store",b.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",b.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",b.i32_atomic_load="~lib/builtins/i32.atomic.load",b.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",b.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",b.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",b.i64_atomic_load="~lib/builtins/i64.atomic.load",b.i32_atomic_store8="~lib/builtins/i32.atomic.store8",b.i32_atomic_store16="~lib/builtins/i32.atomic.store16",b.i32_atomic_store="~lib/builtins/i32.atomic.store",b.i64_atomic_store8="~lib/builtins/i64.atomic.store8",b.i64_atomic_store16="~lib/builtins/i64.atomic.store16",b.i64_atomic_store32="~lib/builtins/i64.atomic.store32",b.i64_atomic_store="~lib/builtins/i64.atomic.store",b.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",b.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",b.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",b.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",b.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",b.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",b.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",b.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",b.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",b.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",b.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",b.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",b.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",b.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",b.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",b.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",b.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",b.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",b.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",b.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",b.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",b.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",b.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",b.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",b.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",b.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",b.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",b.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",b.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",b.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",b.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",b.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",b.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",b.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",b.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",b.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",b.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",b.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",b.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",b.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",b.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",b.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",b.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",b.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",b.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",b.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",b.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",b.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",b.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",b.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",b.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",b.v128_splat="~lib/builtins/v128.splat",b.v128_extract_lane="~lib/builtins/v128.extract_lane",b.v128_replace_lane="~lib/builtins/v128.replace_lane",b.v128_shuffle="~lib/builtins/v128.shuffle",b.v128_swizzle="~lib/builtins/v128.swizzle",b.v128_load_splat="~lib/builtins/v128.load_splat",b.v128_load_ext="~lib/builtins/v128.load_ext",b.v128_load_zero="~lib/builtins/v128.load_zero",b.v128_load_lane="~lib/builtins/v128.load_lane",b.v128_store_lane="~lib/builtins/v128.store_lane",b.v128_load="~lib/builtins/v128.load",b.v128_load8x8_s="~lib/builtins/v128.load8x8_s",b.v128_load8x8_u="~lib/builtins/v128.load8x8_u",b.v128_load16x4_s="~lib/builtins/v128.load16x4_s",b.v128_load16x4_u="~lib/builtins/v128.load16x4_u",b.v128_load32x2_s="~lib/builtins/v128.load32x2_s",b.v128_load32x2_u="~lib/builtins/v128.load32x2_u",b.v128_load8_splat="~lib/builtins/v128.load8_splat",b.v128_load16_splat="~lib/builtins/v128.load16_splat",b.v128_load32_splat="~lib/builtins/v128.load32_splat",b.v128_load64_splat="~lib/builtins/v128.load64_splat",b.v128_load32_zero="~lib/builtins/v128.load32_zero",b.v128_load64_zero="~lib/builtins/v128.load64_zero",b.v128_load8_lane="~lib/builtins/v128.load8_lane",b.v128_load16_lane="~lib/builtins/v128.load16_lane",b.v128_load32_lane="~lib/builtins/v128.load32_lane",b.v128_load64_lane="~lib/builtins/v128.load64_lane",b.v128_store8_lane="~lib/builtins/v128.store8_lane",b.v128_store16_lane="~lib/builtins/v128.store16_lane",b.v128_store32_lane="~lib/builtins/v128.store32_lane",b.v128_store64_lane="~lib/builtins/v128.store64_lane",b.v128_store="~lib/builtins/v128.store",b.v128_add="~lib/builtins/v128.add",b.v128_sub="~lib/builtins/v128.sub",b.v128_mul="~lib/builtins/v128.mul",b.v128_div="~lib/builtins/v128.div",b.v128_neg="~lib/builtins/v128.neg",b.v128_add_sat="~lib/builtins/v128.add_sat",b.v128_sub_sat="~lib/builtins/v128.sub_sat",b.v128_shl="~lib/builtins/v128.shl",b.v128_shr="~lib/builtins/v128.shr",b.v128_and="~lib/builtins/v128.and",b.v128_or="~lib/builtins/v128.or",b.v128_xor="~lib/builtins/v128.xor",b.v128_andnot="~lib/builtins/v128.andnot",b.v128_not="~lib/builtins/v128.not",b.v128_bitselect="~lib/builtins/v128.bitselect",b.v128_any_true="~lib/builtins/v128.any_true",b.v128_all_true="~lib/builtins/v128.all_true",b.v128_bitmask="~lib/builtins/v128.bitmask",b.v128_popcnt="~lib/builtins/v128.popcnt",b.v128_min="~lib/builtins/v128.min",b.v128_max="~lib/builtins/v128.max",b.v128_pmin="~lib/builtins/v128.pmin",b.v128_pmax="~lib/builtins/v128.pmax",b.v128_dot="~lib/builtins/v128.dot",b.v128_avgr="~lib/builtins/v128.avgr",b.v128_abs="~lib/builtins/v128.abs",b.v128_sqrt="~lib/builtins/v128.sqrt",b.v128_ceil="~lib/builtins/v128.ceil",b.v128_floor="~lib/builtins/v128.floor",b.v128_trunc="~lib/builtins/v128.trunc",b.v128_nearest="~lib/builtins/v128.nearest",b.v128_eq="~lib/builtins/v128.eq",b.v128_ne="~lib/builtins/v128.ne",b.v128_lt="~lib/builtins/v128.lt",b.v128_le="~lib/builtins/v128.le",b.v128_gt="~lib/builtins/v128.gt",b.v128_ge="~lib/builtins/v128.ge",b.v128_convert="~lib/builtins/v128.convert",b.v128_convert_low="~lib/builtins/v128.convert_low",b.v128_trunc_sat="~lib/builtins/v128.trunc_sat",b.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",b.v128_narrow="~lib/builtins/v128.narrow",b.v128_extend_low="~lib/builtins/v128.extend_low",b.v128_extend_high="~lib/builtins/v128.extend_high",b.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",b.v128_demote_zero="~lib/builtins/v128.demote_zero",b.v128_promote_low="~lib/builtins/v128.promote_low",b.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",b.v128_extmul_low="~lib/builtins/v128.extmul_low",b.v128_extmul_high="~lib/builtins/v128.extmul_high",b.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",b.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",b.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",b.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",b.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",b.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",b.v128_relaxed_min="~lib/builtins/v128.relaxed_min",b.v128_relaxed_max="~lib/builtins/v128.relaxed_max",b.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",b.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",b.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",b.i8x16="~lib/builtins/i8x16",b.i16x8="~lib/builtins/i16x8",b.i32x4="~lib/builtins/i32x4",b.i64x2="~lib/builtins/i64x2",b.f32x4="~lib/builtins/f32x4",b.f64x2="~lib/builtins/f64x2",b.i8x16_splat="~lib/builtins/i8x16.splat",b.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",b.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",b.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",b.i8x16_add="~lib/builtins/i8x16.add",b.i8x16_sub="~lib/builtins/i8x16.sub",b.i8x16_mul="~lib/builtins/i8x16.mul",b.i8x16_min_s="~lib/builtins/i8x16.min_s",b.i8x16_min_u="~lib/builtins/i8x16.min_u",b.i8x16_max_s="~lib/builtins/i8x16.max_s",b.i8x16_max_u="~lib/builtins/i8x16.max_u",b.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",b.i8x16_abs="~lib/builtins/i8x16.abs",b.i8x16_neg="~lib/builtins/i8x16.neg",b.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",b.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",b.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",b.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",b.i8x16_shl="~lib/builtins/i8x16.shl",b.i8x16_shr_s="~lib/builtins/i8x16.shr_s",b.i8x16_shr_u="~lib/builtins/i8x16.shr_u",b.i8x16_all_true="~lib/builtins/i8x16.all_true",b.i8x16_bitmask="~lib/builtins/i8x16.bitmask",b.i8x16_popcnt="~lib/builtins/i8x16.popcnt",b.i8x16_eq="~lib/builtins/i8x16.eq",b.i8x16_ne="~lib/builtins/i8x16.ne",b.i8x16_lt_s="~lib/builtins/i8x16.lt_s",b.i8x16_lt_u="~lib/builtins/i8x16.lt_u",b.i8x16_le_s="~lib/builtins/i8x16.le_s",b.i8x16_le_u="~lib/builtins/i8x16.le_u",b.i8x16_gt_s="~lib/builtins/i8x16.gt_s",b.i8x16_gt_u="~lib/builtins/i8x16.gt_u",b.i8x16_ge_s="~lib/builtins/i8x16.ge_s",b.i8x16_ge_u="~lib/builtins/i8x16.ge_u",b.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",b.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",b.i8x16_shuffle="~lib/builtins/i8x16.shuffle",b.i8x16_swizzle="~lib/builtins/i8x16.swizzle",b.i16x8_splat="~lib/builtins/i16x8.splat",b.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",b.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",b.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",b.i16x8_add="~lib/builtins/i16x8.add",b.i16x8_sub="~lib/builtins/i16x8.sub",b.i16x8_mul="~lib/builtins/i16x8.mul",b.i16x8_min_s="~lib/builtins/i16x8.min_s",b.i16x8_min_u="~lib/builtins/i16x8.min_u",b.i16x8_max_s="~lib/builtins/i16x8.max_s",b.i16x8_max_u="~lib/builtins/i16x8.max_u",b.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",b.i16x8_abs="~lib/builtins/i16x8.abs",b.i16x8_neg="~lib/builtins/i16x8.neg",b.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",b.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",b.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",b.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",b.i16x8_shl="~lib/builtins/i16x8.shl",b.i16x8_shr_s="~lib/builtins/i16x8.shr_s",b.i16x8_shr_u="~lib/builtins/i16x8.shr_u",b.i16x8_all_true="~lib/builtins/i16x8.all_true",b.i16x8_bitmask="~lib/builtins/i16x8.bitmask",b.i16x8_eq="~lib/builtins/i16x8.eq",b.i16x8_ne="~lib/builtins/i16x8.ne",b.i16x8_lt_s="~lib/builtins/i16x8.lt_s",b.i16x8_lt_u="~lib/builtins/i16x8.lt_u",b.i16x8_le_s="~lib/builtins/i16x8.le_s",b.i16x8_le_u="~lib/builtins/i16x8.le_u",b.i16x8_gt_s="~lib/builtins/i16x8.gt_s",b.i16x8_gt_u="~lib/builtins/i16x8.gt_u",b.i16x8_ge_s="~lib/builtins/i16x8.ge_s",b.i16x8_ge_u="~lib/builtins/i16x8.ge_u",b.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",b.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",b.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",b.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",b.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",b.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",b.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",b.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",b.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",b.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",b.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",b.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",b.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",b.i16x8_shuffle="~lib/builtins/i16x8.shuffle",b.i32x4_splat="~lib/builtins/i32x4.splat",b.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",b.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",b.i32x4_add="~lib/builtins/i32x4.add",b.i32x4_sub="~lib/builtins/i32x4.sub",b.i32x4_mul="~lib/builtins/i32x4.mul",b.i32x4_min_s="~lib/builtins/i32x4.min_s",b.i32x4_min_u="~lib/builtins/i32x4.min_u",b.i32x4_max_s="~lib/builtins/i32x4.max_s",b.i32x4_max_u="~lib/builtins/i32x4.max_u",b.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",b.i32x4_abs="~lib/builtins/i32x4.abs",b.i32x4_neg="~lib/builtins/i32x4.neg",b.i32x4_shl="~lib/builtins/i32x4.shl",b.i32x4_shr_s="~lib/builtins/i32x4.shr_s",b.i32x4_shr_u="~lib/builtins/i32x4.shr_u",b.i32x4_all_true="~lib/builtins/i32x4.all_true",b.i32x4_bitmask="~lib/builtins/i32x4.bitmask",b.i32x4_eq="~lib/builtins/i32x4.eq",b.i32x4_ne="~lib/builtins/i32x4.ne",b.i32x4_lt_s="~lib/builtins/i32x4.lt_s",b.i32x4_lt_u="~lib/builtins/i32x4.lt_u",b.i32x4_le_s="~lib/builtins/i32x4.le_s",b.i32x4_le_u="~lib/builtins/i32x4.le_u",b.i32x4_gt_s="~lib/builtins/i32x4.gt_s",b.i32x4_gt_u="~lib/builtins/i32x4.gt_u",b.i32x4_ge_s="~lib/builtins/i32x4.ge_s",b.i32x4_ge_u="~lib/builtins/i32x4.ge_u",b.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",b.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",b.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",b.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",b.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",b.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",b.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",b.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",b.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",b.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",b.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",b.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",b.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",b.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",b.i32x4_shuffle="~lib/builtins/i32x4.shuffle",b.i64x2_splat="~lib/builtins/i64x2.splat",b.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",b.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",b.i64x2_add="~lib/builtins/i64x2.add",b.i64x2_sub="~lib/builtins/i64x2.sub",b.i64x2_mul="~lib/builtins/i64x2.mul",b.i64x2_abs="~lib/builtins/i64x2.abs",b.i64x2_neg="~lib/builtins/i64x2.neg",b.i64x2_shl="~lib/builtins/i64x2.shl",b.i64x2_shr_s="~lib/builtins/i64x2.shr_s",b.i64x2_shr_u="~lib/builtins/i64x2.shr_u",b.i64x2_all_true="~lib/builtins/i64x2.all_true",b.i64x2_bitmask="~lib/builtins/i64x2.bitmask",b.i64x2_eq="~lib/builtins/i64x2.eq",b.i64x2_ne="~lib/builtins/i64x2.ne",b.i64x2_lt_s="~lib/builtins/i64x2.lt_s",b.i64x2_lt_u="~lib/builtins/i64x2.lt_u",b.i64x2_le_s="~lib/builtins/i64x2.le_s",b.i64x2_le_u="~lib/builtins/i64x2.le_u",b.i64x2_gt_s="~lib/builtins/i64x2.gt_s",b.i64x2_gt_u="~lib/builtins/i64x2.gt_u",b.i64x2_ge_s="~lib/builtins/i64x2.ge_s",b.i64x2_ge_u="~lib/builtins/i64x2.ge_u",b.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",b.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",b.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",b.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",b.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",b.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",b.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",b.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",b.i64x2_shuffle="~lib/builtins/i64x2.shuffle",b.f32x4_splat="~lib/builtins/f32x4.splat",b.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",b.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",b.f32x4_add="~lib/builtins/f32x4.add",b.f32x4_sub="~lib/builtins/f32x4.sub",b.f32x4_mul="~lib/builtins/f32x4.mul",b.f32x4_div="~lib/builtins/f32x4.div",b.f32x4_neg="~lib/builtins/f32x4.neg",b.f32x4_min="~lib/builtins/f32x4.min",b.f32x4_max="~lib/builtins/f32x4.max",b.f32x4_pmin="~lib/builtins/f32x4.pmin",b.f32x4_pmax="~lib/builtins/f32x4.pmax",b.f32x4_abs="~lib/builtins/f32x4.abs",b.f32x4_sqrt="~lib/builtins/f32x4.sqrt",b.f32x4_ceil="~lib/builtins/f32x4.ceil",b.f32x4_floor="~lib/builtins/f32x4.floor",b.f32x4_trunc="~lib/builtins/f32x4.trunc",b.f32x4_nearest="~lib/builtins/f32x4.nearest",b.f32x4_eq="~lib/builtins/f32x4.eq",b.f32x4_ne="~lib/builtins/f32x4.ne",b.f32x4_lt="~lib/builtins/f32x4.lt",b.f32x4_le="~lib/builtins/f32x4.le",b.f32x4_gt="~lib/builtins/f32x4.gt",b.f32x4_ge="~lib/builtins/f32x4.ge",b.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",b.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",b.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",b.f32x4_shuffle="~lib/builtins/f32x4.shuffle",b.f64x2_splat="~lib/builtins/f64x2.splat",b.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",b.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",b.f64x2_add="~lib/builtins/f64x2.add",b.f64x2_sub="~lib/builtins/f64x2.sub",b.f64x2_mul="~lib/builtins/f64x2.mul",b.f64x2_div="~lib/builtins/f64x2.div",b.f64x2_neg="~lib/builtins/f64x2.neg",b.f64x2_min="~lib/builtins/f64x2.min",b.f64x2_max="~lib/builtins/f64x2.max",b.f64x2_pmin="~lib/builtins/f64x2.pmin",b.f64x2_pmax="~lib/builtins/f64x2.pmax",b.f64x2_abs="~lib/builtins/f64x2.abs",b.f64x2_sqrt="~lib/builtins/f64x2.sqrt",b.f64x2_ceil="~lib/builtins/f64x2.ceil",b.f64x2_floor="~lib/builtins/f64x2.floor",b.f64x2_trunc="~lib/builtins/f64x2.trunc",b.f64x2_nearest="~lib/builtins/f64x2.nearest",b.f64x2_eq="~lib/builtins/f64x2.eq",b.f64x2_ne="~lib/builtins/f64x2.ne",b.f64x2_lt="~lib/builtins/f64x2.lt",b.f64x2_le="~lib/builtins/f64x2.le",b.f64x2_gt="~lib/builtins/f64x2.gt",b.f64x2_ge="~lib/builtins/f64x2.ge",b.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",b.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",b.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",b.f64x2_shuffle="~lib/builtins/f64x2.shuffle",b.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",b.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",b.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",b.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",b.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",b.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",b.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",b.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",b.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",b.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",b.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",b.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",b.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",b.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",b.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",b.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",b.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",b.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",b.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",b.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",b.i31_new="~lib/builtins/i31.new",b.i31_get="~lib/builtins/i31.get",b.data_end="~lib/memory/__data_end",b.stack_pointer="~lib/memory/__stack_pointer",b.heap_base="~lib/memory/__heap_base",b.rtti_base="~lib/rt/__rtti_base",b.visit_globals="~lib/rt/__visit_globals",b.visit_members="~lib/rt/__visit_members",b.tostack="~lib/rt/__tostack",b.NaN="~lib/number/NaN",b.Infinity="~lib/number/Infinity",b.isNaN="~lib/number/isNaN",b.isFinite="~lib/number/isFinite",b.ERROR="~lib/diagnostics/ERROR",b.WARNING="~lib/diagnostics/WARNING",b.INFO="~lib/diagnostics/INFO",b.Function="~lib/function/Function",b.Function_call="~lib/function/Function#call",b.memory_size="~lib/memory/memory.size",b.memory_grow="~lib/memory/memory.grow",b.memory_copy="~lib/memory/memory.copy",b.memory_fill="~lib/memory/memory.fill",b.memory_data="~lib/memory/memory.data",b.Int8Array="~lib/typedarray/Int8Array",b.Uint8Array="~lib/typedarray/Uint8Array",b.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",b.Int16Array="~lib/typedarray/Int16Array",b.Uint16Array="~lib/typedarray/Uint16Array",b.Int32Array="~lib/typedarray/Int32Array",b.Uint32Array="~lib/typedarray/Uint32Array",b.Int64Array="~lib/typedarray/Int64Array",b.Uint64Array="~lib/typedarray/Uint64Array",b.Float32Array="~lib/typedarray/Float32Array",b.Float64Array="~lib/typedarray/Float64Array",b.String_raw="~lib/string/String.raw",b.String_eq="~lib/string/String.__eq",b.String_ne="~lib/string/String.__ne",b.String_not="~lib/string/String.__not",b.Object="~lib/object/Object"))(m||={});var Qo=class{constructor(r,e,t,n,s){this.resolver=r;this.node=e;this.ctxElement=t;this.ctxTypes=n;this.reportMode=s}},qs=class{constructor(r,e,t=e.type,n=e.identifierNode){this.compiler=r;this.element=e;this.contextualType=t;this.reportNode=n}},tu=class{constructor(r,e,t,n,s,a,l,o){this.compiler=r;this.prototype=e;this.typeArguments=t;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},er=new Map,x=new Map,nr=new Map,At=new Map;function QE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!r.program.options.isWasm64)return p.i32;case 4:return p.i64;case 6:case 7:case 8:case 0:return p.u32;case 10:if(!r.program.options.isWasm64)return p.u32;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64;case 13:return p.v128;case 26:return p.void;default:assert(!1)}return null}er.set(N.native,QE);function XE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&r.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let c=u.signature.parameterTypes;return u.is(32)?(assert(c.length==2),c[1]):(assert(c.length==1),c[0])}return s==0&&r.error(2329,a.range,l.toString()),null}er.set(N.indexof,XE);function ZE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(r.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&r.error(2329,a.range,l.toString()),null}er.set(N.valueof,ZE);function $E(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&r.error(2757,a.range,l.toString()),null)}er.set(N.returnof,$E);function YE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();if(o){let u=o.thisType;return u||p.any}return s==0&&r.error(2757,a.range,l.toString()),null}er.set(N.thisof,YE);function JE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}er.set(N.nonnull,JE);var on=0;function e6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isBooleanValue?1:0)):e.unreachable()}x.set(m.isBoolean,e6);function t6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isIntegerValue?1:0)):e.unreachable()}x.set(m.isInteger,t6);function r6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isSignedIntegerValue?1:0)):e.unreachable()}x.set(m.isSigned,r6);function i6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isFloatValue?1:0)):e.unreachable()}x.set(m.isFloat,i6);function n6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isVectorValue?1:0)):e.unreachable()}x.set(m.isVector,n6);function s6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isReference?1:0)):e.unreachable()}x.set(m.isReference,s6);function a6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.isAssignableTo(r.program.stringInstance)?1:0))}x.set(m.isString,a6);function l6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.extendsPrototype(r.program.arrayPrototype)?1:0))}x.set(m.isArray,l6);function o6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.isArrayLike?1:0))}x.set(m.isArrayLike,o6);function u6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isFunction?1:0)):e.unreachable()}x.set(m.isFunction,u6);function c6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isNullableReference?1:0)):e.unreachable()}x.set(m.isNullable,c6);function p6(i){let r=i.compiler,e=r.module;if(r.currentType=p.bool,I(i)|K(i,1))return e.unreachable();let t=r.resolver.lookupExpression(i.operands[0],r.currentFlow,p.auto,1);return e.i32(t?1:0)}x.set(m.isDefined,p6);function f6(i){let r=i.compiler,e=r.module;if(r.currentType=p.bool,I(i)|K(i,1))return e.unreachable();let t=r.compileExpression(i.operands[0],p.auto);return r.currentType=p.bool,Uo(t,e.ref)?e.block(null,[e.maybeDrop(t),e.i32(0)],ce(t)):e.i32(e.isConstExpression(t)?1:0)}x.set(m.isConstant,f6);function _6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isManaged?1:0)):e.unreachable()}x.set(m.isManaged,_6);function d6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.kind==26?1:0)):e.unreachable()}x.set(m.isVoid,d6);function h6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.i32,!t)return e.unreachable();let n=t.signatureReference;return n?ke(i,e.i32(n.parameterTypes.length)):(r.error(2757,i.reportNode.range,t.toString()),e.unreachable())}x.set(m.lengthof,h6);function m6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,Z(i)|K(i,0))return e.unreachable();let t=i.typeArguments[0],n=t.byteSize;if(!n)return r.error(203,i.reportNode.typeArgumentsRange,"sizeof",t.toString()),e.unreachable();let s=t.classReference;return s!=null&&(s.hasDecorator(16)||s.hasDecorator(2048))?ii(r,i64_new(s.nextMemoryOffset),i.contextualType):ii(r,i64_new(n),i.contextualType)}x.set(m.sizeof,m6);function y6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,Z(i)|K(i,0))return e.unreachable();let t=i.typeArguments[0],n=t.byteSize;if(!n||t.kind!=14&&!Kr(n))return r.error(203,i.reportNode.typeArgumentsRange,"alignof",t.toString()),e.unreachable();let s=t.classReference;return s!=null&&(s.hasDecorator(16)||s.hasDecorator(2048))?ii(r,i64_new(s.alignLog2),i.contextualType):ii(r,i64_new(t.alignLog2),i.contextualType)}x.set(m.alignof,y6);function g6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,Z(i)|Ne(i,0,1))return e.unreachable();let t=i.operands,n=i.contextualType,s=i.typeArguments[0];if(s.kind==14)return i.operands.length?(r.error(203,i.reportNode.range,"offsetof",s.toString()),e.unreachable()):ii(r,i64_new(s.byteSize),i.contextualType);let a=s.getClassOrWrapper(r.program);if(!a)return r.error(203,i.reportNode.typeArgumentsRange,"offsetof",s.toString()),r.options.isWasm64?n.isIntegerValue&&n.size<=32&&(r.currentType=p.u32):n.isIntegerValue&&n.size==64&&(r.currentType=p.u64),e.unreachable();if(t.length){let l=t[0];if(!l.isLiteralKind(2))return r.error(1141,t[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let c=u.instance;if(c&&c.isField)return assert(c.memoryOffset>=0),ii(r,i64_new(c.memoryOffset),n)}return r.error(2460,l.range,a.internalName,o),e.unreachable()}return ii(r,i64_new(a.nextMemoryOffset),n)}x.set(m.offsetof,g6);function b6(i){let r=i.compiler,e=r.module;if(r.currentType=r.program.stringInstance.type,Z(i)|K(i,1))return e.unreachable();let t=i.typeArguments[0],n=t.getClassOrWrapper(r.program);if(!n)return r.error(203,i.reportNode.typeArgumentsRange,"abiNameOf",t.toString()),e.unreachable();let s=i.operands[0];if(!s.isLiteralKind(2))return r.error(1141,s.range),e.unreachable();let a=s.value,l=n.getMember(a);if(!l||l.kind!=10)return r.error(2460,s.range,n.internalName,a),e.unreachable();let o=l.fieldDeclaration,u=o?o.type:null,c=u?u.attributes:null;if(c)for(let f=0,_=c.length;f<_;++f){if(!x6(c[f]))continue;let d=c[f].args,g=d&&d.length?d[0]:null;if(g&&g.isLiteralKind(2))return ke(i,r.ensureStaticString(g.value));break}return ke(i,r.ensureStaticString(a))}x.set(m.abiNameOf,b6);function x6(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="alias"}function E6(i){let r=i.compiler,e=r.module,t=Ve(i);if(!t)return r.currentType=r.program.stringInstance.type,e.unreachable();let n;if(t.isInternalReference){let s=t.getClass();s?n=s.name:(assert(t.getSignature()),n="Function")}else n=t.toString();return ke(i,r.ensureStaticString(n))}x.set(m.nameof,E6);function A6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.u32,!t)return e.unreachable();let n=t.getSignature();if(n)return ke(i,e.i32(n.id));let s=t.getClassOrWrapper(r.program);return s&&!s.hasDecorator(16)?ke(i,e.i32(s.id)):(r.error(203,i.reportNode.typeArgumentsRange,"idof",t.toString()),e.unreachable())}x.set(m.idof,A6);function T6(i){let r=i.element;if(r.is(1048576)){let e=i.compiler.module;e.addGlobal(r.internalName,P.F64,!1,e.f64(NaN))}}nr.set(m.NaN,T6);function S6(i){let r=i.compiler,e=r.module;return i.contextualType==p.f32?(r.currentType=p.f32,e.f32(NaN)):(r.currentType=p.f64,e.f64(NaN))}At.set(m.NaN,S6);function v6(i){let r=i.element;if(r.is(1048576)){let e=i.compiler.module;e.addGlobal(r.internalName,P.F64,!1,e.f64(1/0))}}nr.set(m.Infinity,v6);function I6(i){let r=i.compiler,e=r.module;return i.contextualType==p.f32?(r.currentType=p.f32,e.f32(1/0)):(r.currentType=p.f64,e.f64(1/0))}At.set(m.Infinity,I6);function Rf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.typeArguments,n=t?r.compileExpression(i.operands[0],t[0],5):r.compileExpression(i.operands[0],p.i32,4),s=r.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return r.error(203,i.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}x.set(m.clz,Rf);function Cf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return r.error(203,i.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}x.set(m.ctz,Cf);function Pf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue)switch(r.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return r.error(203,i.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}x.set(m.popcnt,Pf);function Bf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=r.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,P.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,P.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}x.set(m.rotl,Bf);function Nf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=r.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,P.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,P.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}x.set(m.rotr,Nf);function Lf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.auto,4),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=r.currentFlow,o=l.getTempLocal(p.i32),u=l.getTempLocal(p.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,P.I32)),e.local_get(u.index,P.I32))}case 5:{let l=r.options,o=r.currentFlow,u=o.getTempLocal(l.usizeType),c=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(c.index,e.binary(228,e.local_tee(u.index,s,!1),r.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(c.index,l.sizeTypeRef))}case 4:{let l=r.currentFlow,o=l.getTempLocal(p.i64),u=l.getTempLocal(p.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,P.I64)),e.local_get(u.index,P.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return r.error(203,i.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}x.set(m.abs,Lf);function Mf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],5):r.compileExpression(t[0],p.auto,4),l=r.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l,4),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,5))):o=r.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let c=r.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let d=c.getTempLocal(l);return c.setLocalFlag(d.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(d.index,f)))}}return r.error(203,i.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}x.set(m.max,Mf);function zf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],5):r.compileExpression(t[0],p.auto,4),l=r.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l,4),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,5))):o=r.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let c=r.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let d=c.getTempLocal(l);return c.setLocalFlag(d.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(d.index,f)))}}return r.error(203,i.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}x.set(m.min,zf);function Df(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return r.error(203,i.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}x.set(m.ceil,Df);function Gf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return r.error(203,i.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}x.set(m.floor,Gf);function Uf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.f64,0),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}x.set(m.copysign,Uf);function Vf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return r.error(203,i.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}x.set(m.nearest,Vf);function Ws(i){let r=i.compiler,e=r.module;if(Z(i,!0)|K(i,1))return e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=r.compileExpression(t[0],p.f32,1);return r.currentType=s,e.unary(33,a)}case 4:case 9:{let a=r.compileExpression(t[0],p.f64,1);return r.currentType=s,e.unary(34,a)}case 5:case 10:{let a=r.options.isWasm64,l=r.compileExpression(t[0],a?p.f64:p.f32,1);return r.currentType=s,e.unary(a?34:33,l)}case 11:{let a=r.compileExpression(t[0],p.i32,1);return r.currentType=p.f32,e.unary(45,a)}case 12:{let a=r.compileExpression(t[0],p.i64,1);return r.currentType=p.f64,e.unary(46,a)}}return r.error(203,i.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}x.set(m.reinterpret,Ws);function Of(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.f64,0),a=r.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return r.error(203,i.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}x.set(m.sqrt,Of);function qf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return r.error(203,i.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}x.set(m.trunc,qf);function k6(i){let r=i.compiler,e=r.module;if(fe(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(r.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if(re(s)==8)return e.binary(58,s,e.local_get(Ct(s),P.F32));let o=r.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F32))}case 12:{if(re(s)==8)return e.binary(71,s,e.local_get(Ct(s),P.F64));let o=r.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F64))}}return r.error(203,i.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}x.set(m.isNaN,k6);function F6(i){let r=i.compiler,e=r.module;if(fe(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(r.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if(re(s)==8)return e.binary(57,e.binary(51,s,e.local_get(Ct(s),P.F32)),e.f32(0));let o=r.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F32)),e.f32(0))}case 12:{if(re(s)==8)return e.binary(70,e.binary(64,s,e.local_get(Ct(s),P.F64)),e.f64(0));let o=r.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F64)),e.f64(0))}}return r.error(203,i.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}x.set(m.isFinite,F6);function w6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=4,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.heap_base,w6);function R6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=4,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.heap_base,R6);function C6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=1,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.data_end,C6);function P6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=1,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.data_end,P6);function B6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=2,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.stack_pointer,B6);function N6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=2,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.stack_pointer,N6);function L6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=8,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.rtti_base,L6);function M6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=8,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.rtti_base,M6);function Ue(i){let r=i.compiler,e=r.module;if(Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return r.error(203,i.reportNode.typeArgumentsRange,"load",l.toString()),r.currentType=p.void,e.unreachable();let o=r.compileExpression(t[0],r.options.usizeType,1),u=t.length,c=0,f=a.byteSize;return u>=2&&(c=_t(t[1],r),c<0||u==3&&(f=ir(t[2],f,r),f<0))?(r.currentType=l,e.unreachable()):(r.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,f))}x.set(m.load,Ue);function Tt(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,Z(i)|Ne(i,2,4))return e.unreachable();let t=i.operands,n=t.length,s=i.typeArguments,a=i.contextualType,l=s[0],o=r.compileExpression(t[0],r.options.usizeType,1),u=i.contextIsExact?r.compileExpression(t[1],a,1):r.compileExpression(t[1],l,l.isIntegerValue?0:1),c=r.currentType;if(!c.isMemory)return r.error(203,i.reportNode.typeArgumentsRange,"store",c.toString()),r.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=r.convertExpression(u,c,l,!1,t[1]),c=l);let f=0,_=l.byteSize;if(n>=3){if(f=_t(t[2],r),f<0)return r.currentType=p.void,e.unreachable();if(n==4&&(_=ir(t[3],_,r),_<0))return r.currentType=p.void,e.unreachable()}return r.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),f,_)}x.set(m.store,Tt);function Ks(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isIntegerValue)return r.makeRem(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}x.set(m.rem,Ks);function Hs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeAdd(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}x.set(m.add,Hs);function js(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeSub(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}x.set(m.sub,js);function Qs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeMul(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}x.set(m.mul,Qs);function ni(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeDiv(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}x.set(m.div,ni);function Xs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.currentType=p.i32,r.makeEq(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}x.set(m.eq,Xs);function Zs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.currentType=p.i32,r.makeNe(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}x.set(m.ne,Zs);function Tr(i){let r=i.compiler,e=r.module;if(Q(i,32)|Z(i,!0)|Ne(i,1,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.load",a.toString()),r.currentType=l,e.unreachable();let o=r.compileExpression(t[0],r.options.usizeType,1),u=t.length==2?_t(t[1],r):0;return u<0?(r.currentType=l,e.unreachable()):(r.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}x.set(m.atomic_load,Tr);function Sr(i){let r=i.compiler,e=r.module;if(Q(i,32)|Z(i)|Ne(i,2,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0];if(!a.isIntegerValue)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.store",a.toString()),r.currentType=p.void,e.unreachable();let l=r.compileExpression(t[0],r.options.usizeType,1),o=i.contextIsExact?r.compileExpression(t[1],s,1):r.compileExpression(t[1],a,a.isIntegerValue?0:1),u=r.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=r.convertExpression(o,u,a,!1,t[1]),u=a);let c=t.length==3?_t(t[2],r):0;return c<0?(r.currentType=p.void,e.unreachable()):(r.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}x.set(m.atomic_store,Sr);function un(i,r,e){let t=i.compiler,n=t.module;if(Q(i,32)|Z(i,!0)|Ne(i,2,3))return n.unreachable();let s=i.operands,a=i.typeArguments,l=i.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return t.error(203,i.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=t.compileExpression(s[0],t.options.usizeType,1),c=i.contextIsExact?t.compileExpression(s[1],l,1):t.compileExpression(s[1],o,o.isIntegerValue?0:1),f=t.currentType;o.isIntegerValue&&(!f.isIntegerValue||f.size<o.size)&&(c=t.convertExpression(c,f,o,!1,s[1]),f=o);let _=s.length==3?_t(s[2],t):0;return _<0?(t.currentType=f,n.unreachable()):(t.currentType=f,n.atomic_rmw(r,o.byteSize,_,u,c,f.toRef()))}function vr(i){return un(i,0,"atomic.add")}x.set(m.atomic_add,vr);function Ir(i){return un(i,1,"atomic.sub")}x.set(m.atomic_sub,Ir);function kr(i){return un(i,2,"atomic.and")}x.set(m.atomic_and,kr);function Fr(i){return un(i,3,"atomic.or")}x.set(m.atomic_or,Fr);function wr(i){return un(i,4,"atomic.xor")}x.set(m.atomic_xor,wr);function Rr(i){return un(i,5,"atomic.xchg")}x.set(m.atomic_xchg,Rr);function Cr(i){let r=i.compiler,e=r.module;if(Q(i,32)|Z(i,!0)|Ne(i,3,4))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=r.compileExpression(t[0],r.options.usizeType,1),o=i.contextIsExact?r.compileExpression(t[1],s,1):r.compileExpression(t[1],a,a.isIntegerValue?0:1),u=r.currentType,c=r.compileExpression(t[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=r.convertExpression(o,u,a,!1,t[1]),c=r.convertExpression(c,u,a,!1,t[2]),u=a);let f=t.length==4?_t(t[3],r):0;return f<0?(r.currentType=u,e.unreachable()):(r.currentType=u,e.atomic_cmpxchg(a.byteSize,f,l,o,c,u.toRef()))}x.set(m.atomic_cmpxchg,Cr);function Wf(i){let r=i.compiler,e=r.module;if(Q(i,32)|Z(i)|Ne(i,2,3))return r.currentType=p.i32,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],s,1),o=t.length==3?r.compileExpression(t[2],p.i64,1):e.i64(-1,-1);switch(r.currentType=p.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return r.error(203,i.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}x.set(m.atomic_wait,Wf);function z6(i){let r=i.compiler,e=r.module;if(Q(i,32)|I(i)|Ne(i,1,2))return r.currentType=p.i32,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],r.options.usizeType,1),s=t.length==2?r.compileExpression(t[1],p.i32,1):e.i32(-1);return r.currentType=p.i32,e.atomic_notify(n,s)}x.set(m.atomic_notify,z6);function D6(i){let r=i.compiler,e=r.module;return r.currentType=p.void,Q(i,32)|I(i)|K(i,0)?e.unreachable():e.atomic_fence()}x.set(m.atomic_fence,D6);function G6(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(!a.isAny(384))return r.error(203,i.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=r.compileExpression(t[1],a,1),o=r.makeIsTrueish(r.compileExpression(t[2],p.bool),r.currentType,t[2]);return r.currentType=a,e.select(s,l,o)}x.set(m.select,G6);function U6(i){return I(i),K(i,0),i.compiler.module.unreachable()}x.set(m.unreachable,U6);function V6(i){let r=i.compiler,e=r.module;return r.currentType=p.i32,I(i)|K(i,0)?e.unreachable():e.memory_size()}x.set(m.memory_size,V6);function O6(i){let r=i.compiler,e=r.module;return r.currentType=p.i32,I(i)|K(i,1)?e.unreachable():e.memory_grow(r.compileExpression(i.operands[0],p.i32,1))}x.set(m.memory_grow,O6);function q6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,I(i)|K(i,3))return e.unreachable();let t=i.operands;if(!r.options.hasFeature(8)){let o=r.resolver.resolveFunction(i.prototype,null);return r.currentType=p.void,!o||!r.compileFunction(o,!0)?e.unreachable():r.compileCallDirect(o,t,i.reportNode)}let n=r.options.usizeType,s=r.compileExpression(t[0],n,1),a=r.compileExpression(t[1],n,1),l=r.compileExpression(t[2],n,1);return r.currentType=p.void,e.memory_copy(s,a,l)}x.set(m.memory_copy,q6);function W6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,I(i)|K(i,3))return e.unreachable();let t=i.operands;if(!r.options.hasFeature(8)){let o=r.resolver.resolveFunction(i.prototype,null);return r.currentType=p.void,!o||!r.compileFunction(o,!0)?e.unreachable():r.compileCallDirect(o,t,i.reportNode)}let n=r.options.usizeType,s=r.compileExpression(t[0],n,1),a=r.compileExpression(t[1],p.u8,1),l=r.compileExpression(t[2],n,1);return r.currentType=p.void,e.memory_fill(s,a,l)}x.set(m.memory_fill,W6);function K6(i){let r=i.compiler,e=r.module;if(r.currentType=p.i32,fe(i)|Ne(i,1,2))return e.unreachable();let t=i.typeArguments,n=i.operands,s=n.length,a=r.options.usizeType,l;if(t&&t.length>0){let o=t[0];if(!o.isValue)return r.error(203,i.reportNode.typeArgumentsRange,"memory.data",o.toString()),r.currentType=a,e.unreachable();let u=n[0];if(u.kind!=18||u.literalKind!=5)return r.error(227,n[0].range),r.currentType=a,e.unreachable();let c=u.elementExpressions,f=c.length,_=new Array(f),d=!0;for(let E=0;E<f;++E){let T=c[E];if(T.kind!=21){let k=r.compileExpression(T,o,1),F=e.runExpression(k,1);F?k=F:d=!1,_[E]=k}else _[E]=r.makeZero(o)}if(!d)return r.error(220,u.range),r.currentType=a,e.unreachable();let g=o.byteSize;if(s==2&&(g=ir(n[1],g,r),g<0))return r.currentType=a,e.unreachable();let y=new Uint8Array(f*o.byteSize);assert(r.writeStaticBuffer(y,0,o,_)==y.byteLength),l=r.addAlignedMemorySegment(y,g).offset}else{let o=r.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return r.error(220,n[0].range),r.currentType=a,e.unreachable();let c=ae(u);if(c<1)return r.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),r.currentType=a,e.unreachable();let f=16;if(s==2&&(f=ir(n[1],f,r),f<0))return r.currentType=a,e.unreachable();l=r.addAlignedMemorySegment(new Uint8Array(c),f).offset}return r.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}x.set(m.memory_data,K6);function H6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.i32,1);return r.currentType=p.i31,e.i31_new(n)}x.set(m.i31_new,H6);function j6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.i31.asNullable(),1);return i.contextualType.is(2)?(r.currentType=p.u32,e.i31_get(n,!1)):(r.currentType=p.i32,e.i31_get(n,!0))}x.set(m.i31_get,j6);function lx(i){let r=i.classReference;return r!=null&&r.hasDecorator(2048)}function ox(i){let r=i.classReference;return r!=null&&r.hasDecorator(16)&&!r.hasDecorator(2048)&&!r.hasDecorator(4096)}function Q6(i){let r=i.compiler,e=r.module;if(Z(i,!0)|K(i,1))return e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.classReference!=null&&assert(s.classReference).hasDecorator(4096)){if(!r.resolver.isViewCall(i.reportNode))return r.error(100,i.reportNode.range,"changetype to an @inline struct (a value has no pointer representation; use @unmanaged struct for a view over bytes)"),e.unreachable();let u=r.resolver.resolveExpression(t[0],r.currentFlow),c=u!=null?u.classReference:null;if(c!=null&&c.hasDecorator(4096))return r.error(6395,i.reportNode.range,assert(u).toString(),"@unmanaged"),e.unreachable();let f=r.compileExpression(t[0],p.auto);return r.currentType=s,f}let l=r.compileExpression(t[0],p.auto),o=r.currentType;return r.currentType=s,lx(s)&&ox(o)?(r.error(6394,i.reportNode.range,o.toString()),e.unreachable()):(ox(s)&&lx(o)&&r.markOperandForRooting(),o.isChangeableTo(s)?l:(r.error(202,i.reportNode.range,o.toString(),s.toString()),e.unreachable()))}x.set(m.changetype,Q6);function X6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,K(i,2))return e.unreachable();let t=i.operands,n=r.resolver.resolveExpression(t[1],r.currentFlow);if(n==null)return e.unreachable();let s=n.classReference;if(s==null||!s.hasDecorator(4096))return r.error(100,i.reportNode.typeArgumentsRange,"copyInto needs an @inline struct value: '"+n.toString()+"' is not a value type"),e.unreachable();let a=r.compileExpression(t[0],r.options.usizeType,1),l=r.sroaTreeOf(t[1]);if(l==null)return r.error(100,t[1].range,"copyInto needs an @inline struct value held in a local (a value has no address, so only a tracked value can be copied out)"),e.unreachable();let o=new Array;return r.emitSroaStores(n,l,a,0,o),r.currentType=p.void,e.flatten(o,P.None)}x.set(m.copyInto,X6);function Z6(i){let r=i.compiler,e=r.module,t=i.typeArguments;if(fe(i,!0)|Ne(i,1,2))return t&&(assert(t.length),r.currentType=t[0].nonNullableType),e.unreachable();let n=i.operands,s=i.contextualType,a=t?r.compileExpression(n[0],t[0],5):r.compileExpression(n[0],p.bool,4),l=r.currentType;if(r.currentType=l.nonNullableType,r.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(ce(o)){case P.I32:{if(ae(o))return a;break}case P.I64:{if(Be(o)|Ge(o))return a;break}case P.F32:{if(Ce(o))return a;break}case P.F64:{if(Pe(o))return a;break}}let u=r.makeAbort(n.length==2?n[1]:null,i.reportNode);if(r.currentType=l.nonNullableType,s==p.void)switch(r.currentType=p.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:return e.if(e.ref_is_null(a),u)}else{r.currentType=l.nonNullableType;let c=r.currentFlow;switch(r.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let f=c.getTempLocal(l);return c.setLocalFlag(f.index,2),e.if(e.local_tee(f.index,a,!1),e.local_get(f.index,P.I32),u)}case 4:case 9:{let f=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(f.index,a,!1)),u,e.local_get(f.index,P.I64))}case 5:case 10:{let f=c.getTempLocal(r.options.usizeType);return e.if(e.unary(145,e.local_tee(f.index,a,l.isManaged)),u,e.local_get(f.index,r.options.sizeTypeRef))}case 11:{let f=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(f.index,a,!1),e.f32(0)),u,e.local_get(f.index,P.F32))}case 12:{let f=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(f.index,a,!1),e.f64(0)),u,e.local_get(f.index,P.F64))}case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:{let f=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(f.index,a,!1)),u,e.local_get(f.index,l.toRef()))}}}return r.error(203,i.reportNode.typeArgumentsRange,"assert",r.currentType.toString()),u}x.set(m.assert,Z6);function $6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=r.currentFlow,n=r.options.uncheckedBehavior===1,s=t.is(32768);n?assert(!s):t.set(32768);let a=r.compileExpression(i.operands[0],i.contextualType);return s||t.unset(32768),a}x.set(m.unchecked,$6);function Y6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=r.currentFlow,n=t.is(131072);n||t.set(131072);let s=r.compileExpression(i.operands[0],i.contextualType);return n||t.unset(131072),s}x.set(m.inline_always,Y6);function J6(i){let r=i.compiler,e=r.module;if(fe(i,!0)|Ne(i,1,i32.MAX_VALUE))return e.unreachable();let t=i.operands,n=i.typeArguments,s;n?(assert(n.length),s=n[0]):s=i.contextualType;let a=r.compileExpression(t[0],p.u32,1),l=t.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=r.compileExpression(t[1+c],p.auto),r.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=r.currentType.toRef();return r.currentType=s,e.call_indirect(null,a,o,ft(u),s.toRef())}x.set(m.call_indirect,J6);function eA(i){let r=i.compiler,e=r.module;if(Z(i,!0))return e.unreachable();let t=i.operands,a=i.typeArguments[0].getClass();if(!a)return r.error(2351,i.reportNode.expression.range),e.unreachable();r.currentType=a.type;let l=r.ensureConstructor(a,i.reportNode);return r.checkFieldInitialization(a,i.reportNode),r.compileInstantiate(l,t,0,i.reportNode)}x.set(m.instantiate,eA);function Kf(i,r){let e=i.compiler,t=e.module;I(i);let n=i.operands,s=i.reportNode;return e.emitDiagnostic(102,r,s.range,null,n.length?n[0].range.toString():s.range.toString()),r==3?t.unreachable():t.nop()}function tA(i){return Kf(i,3)}x.set(m.ERROR,tA);function rA(i){return Kf(i,2)}x.set(m.WARNING,rA);function iA(i){return Kf(i,1)}x.set(m.INFO,iA);function nA(i){let r=i.compiler,e=i.prototype.parent;assert(e.kind==7);let t=e;assert(t.prototype==r.program.functionPrototype);let n=assert(t.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(I(i)|Ne(i,1+a.requiredParameters,1+a.parameterTypes.length))return r.currentType=l,r.module.unreachable();let o=r.compileExpression(assert(i.thisOperand),s,1),u=assert(i.operands.shift()),c=a.thisType,f=0;if(c)f=r.compileExpression(u,c,1);else if(u.kind!=20)return r.error(2332,u.range),r.module.unreachable();return r.compileCallIndirect(a,o,i.operands,i.reportNode,f,i.contextualType==p.void)}x.set(m.Function_call,nA);function sA(i){let r=i.compiler,e=r.module;return r.currentType=i.compiler.program.stringInstance.type,r.error(100,i.reportNode.range,"String.raw"),e.unreachable()}x.set(m.String_raw,sA);function ot(i,r){let e=i.compiler;return I(i)|K(i,1)?(e.currentType=r,e.module.unreachable()):e.compileExpression(i.operands[0],r,2)}function aA(i){return ot(i,p.i8)}x.set(m.i8,aA);function lA(i){return ot(i,p.i16)}x.set(m.i16,lA);function oA(i){return ot(i,p.i32)}x.set(m.i32,oA);function uA(i){return ot(i,p.i64)}x.set(m.i64,uA);function cA(i){return ot(i,i.compiler.options.isizeType)}x.set(m.isize,cA);function pA(i){return ot(i,p.u8)}x.set(m.u8,pA);function fA(i){return ot(i,p.u16)}x.set(m.u16,fA);function _A(i){return ot(i,p.u32)}x.set(m.u32,_A);function dA(i){return ot(i,p.u64)}x.set(m.u64,dA);function hA(i){return ot(i,i.compiler.options.usizeType)}x.set(m.usize,hA);function mA(i){return ot(i,p.bool)}x.set(m.bool,mA);function yA(i){return ot(i,p.f32)}x.set(m.f32,yA);function gA(i){return ot(i,p.f64)}x.set(m.f64,gA);function bA(i){return ux(i)}x.set(m.v128,bA);function ux(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,16))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=r.compileExpression(t[l],p.i8,1),u=e.runExpression(o,1);u?be(ae(u),n,l):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let c=s[u];c&&(l=e.simd_replace(0,l,u,c))}return l}}x.set(m.i8x16,ux);function xA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,8))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=r.compileExpression(t[l],p.i16,1),u=e.runExpression(o,1);u?gr(ae(u),n,l<<1):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let c=s[u];c&&(l=e.simd_replace(1,l,u,c))}return l}}x.set(m.i16x8,xA);function EA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,4))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=r.compileExpression(t[l],p.i32,1),u=e.runExpression(o,1);u?Se(ae(u),n,l<<2):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(2,l,u,c))}return l}}x.set(m.i32x4,EA);function AA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=r.compileExpression(t[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;Se(Be(u),n,c+0),Se(Ge(u),n,c+4)}else s[l]=o,a++}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(3,l,u,c))}return l}}x.set(m.i64x2,AA);function TA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,4))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=r.compileExpression(t[l],p.f32,1),u=e.runExpression(o,1);u?qr(Ce(u),n,l<<2):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(5,l,u,c))}return l}}x.set(m.f32x4,TA);function SA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=r.compileExpression(t[l],p.f64,1),u=e.runExpression(o,1);u?Wr(Pe(u),n,l<<3):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(6,l,u,c))}return l}}x.set(m.f64x2,SA);function si(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],s,1);if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(r.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}x.set(m.v128_splat,si);function sr(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i,!0)|K(i,2))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.u8,1);r.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ae(u):r.error(220,t[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(r.error(222,t[1].range,"Lane index","0",c.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(r.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}x.set(m.v128_extract_lane,sr);function ai(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.u8,1),o=r.compileExpression(t[2],s,1);r.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=ae(c):r.error(220,t[1].range),s.isValue){let f=16/assert(s.byteSize)-1;switch((u<0||u>f)&&(r.error(222,t[1].range,"Lane index","0",f.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(r.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}x.set(m.v128_replace_lane,ai);function li(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Kr(l)),K(i,2+l))return r.currentType=p.v128,e.unreachable();let o=r.compileExpression(t[0],p.v128,1),u=r.compileExpression(t[1],p.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let c=new Uint8Array(16),f=(l<<1)-1;for(let _=0;_<l;++_){let d=t[2+_],g=r.compileExpression(d,p.u8,1),y=e.runExpression(g,1),E=0;switch(y?(E=ae(y),(E<0||E>f)&&(r.error(222,d.range,"Lane index","0",f.toString()),E=0)):r.error(220,d.range),a){case 1:{be(E,c,_);break}case 2:{let T=_<<1,k=E<<1;be(k,c,T),be(k+1,c,T+1);break}case 4:{let T=_<<2,k=E<<2;be(k,c,T),be(k+1,c,T+1),be(k+2,c,T+2),be(k+3,c,T+3);break}case 8:{let T=_<<3,k=E<<3;be(k,c,T),be(k+1,c,T+1),be(k+2,c,T+2),be(k+3,c,T+3),be(k+4,c,T+4),be(k+5,c,T+5),be(k+6,c,T+6),be(k+7,c,T+7);break}default:assert(!1)}}return r.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),r.currentType=p.v128,e.unreachable()}x.set(m.v128_shuffle,li);function cx(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1);return e.binary(209,n,s)}x.set(m.v128_swizzle,cx);function $s(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!r.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}x.set(m.v128_load_splat,$s);function oi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(r.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(r.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}x.set(m.v128_load_ext,oi);function Hf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(r.options.isWasm64?11:10,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}x.set(m.v128_load_zero,Hf);function Ys(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i,!0)|Ne(i,3,5))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ae(c):r.error(220,t[2].range);let f=t.length,_=0,d=s.byteSize;if(f>=4){if(_=_t(t[3],r),_<0)return r.currentType=p.v128,e.unreachable();if(f==5&&(d=ir(t[4],d,r),d<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue){let g=16/assert(s.byteSize)-1;switch((u<0||u>g)&&(r.error(222,t[1].range,"Lane index","0",g.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,_,d,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,_,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,_,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,_,d,u,l);case 5:case 10:return e.simd_loadstorelane(r.options.isWasm64?3:2,a,_,d,u,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}x.set(m.v128_load_lane,Ys);function Js(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i,!0)|Ne(i,3,5))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ae(c):r.error(220,t[2].range);let f=t.length,_=0,d=s.byteSize;if(f>=4){if(_=_t(t[3],r),_<0)return r.currentType=p.v128,e.unreachable();if(f==5&&(d=ir(t[4],d,r),d<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.void,s.isValue){let g=16/assert(s.byteSize)-1;switch((u<0||u>g)&&(r.error(222,t[1].range,"Lane index","0",g.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,_,d,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,_,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,_,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,_,d,u,l);case 5:case 10:return e.simd_loadstorelane(r.options.isWasm64?7:6,a,_,d,u,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}x.set(m.v128_store_lane,Js);function ui(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(r.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}x.set(m.v128_add,ui);function ci(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(r.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}x.set(m.v128_sub,ci);function cn(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(r.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}x.set(m.v128_mul,cn);function jf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}x.set(m.v128_div,jf);function ea(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}x.set(m.v128_add_sat,ea);function ta(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}x.set(m.v128_sub_sat,ta);function ar(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(r.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(r.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}x.set(m.v128_min,ar);function lr(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(r.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(r.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}x.set(m.v128_max,lr);function Qf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}x.set(m.v128_pmin,Qf);function Xf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}x.set(m.v128_pmax,Xf);function px(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}x.set(m.v128_dot,px);function Zf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}x.set(m.v128_avgr,Zf);function pi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(r.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}x.set(m.v128_eq,pi);function fi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(r.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}x.set(m.v128_ne,fi);function Mt(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(r.options.isWasm64?108:98,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}x.set(m.v128_lt,Mt);function zt(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(r.options.isWasm64?110:102,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}x.set(m.v128_le,zt);function Dt(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(r.options.isWasm64?109:100,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}x.set(m.v128_gt,Dt);function Gt(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(r.options.isWasm64?111:104,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}x.set(m.v128_ge,Gt);function ra(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}x.set(m.v128_narrow,ra);function _i(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(r.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}x.set(m.v128_neg,_i);function di(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(r.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}x.set(m.v128_abs,di);function $f(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}x.set(m.v128_sqrt,$f);function Yf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}x.set(m.v128_ceil,Yf);function Jf(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}x.set(m.v128_floor,Jf);function e_(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}x.set(m.v128_trunc,e_);function t_(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}x.set(m.v128_nearest,t_);function r_(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(113,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}x.set(m.v128_convert,r_);function i_(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(127,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}x.set(m.v128_convert_low,i_);function n_(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(111,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}x.set(m.v128_trunc_sat,n_);function s_(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(129,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}x.set(m.v128_trunc_sat_zero,s_);function hi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(r.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(124,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}x.set(m.v128_extend_low,hi);function mi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(r.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(125,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}x.set(m.v128_extend_high,mi);function ia(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1),a=r.compileExpression(t[1],p.i32,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(r.options.isWasm64?9:6,s,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}x.set(m.v128_shl,ia);function or(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1),a=r.compileExpression(t[1],p.i32,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(r.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(r.options.isWasm64?11:8,s,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}x.set(m.v128_shr,or);function ru(i,r){let e=i.compiler,t=e.module;if(Q(i,16)|I(i)|K(i,2))return e.currentType=p.v128,t.unreachable();let n=i.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return t.binary(r,s,a)}function vA(i){return ru(i,130)}x.set(m.v128_and,vA);function IA(i){return ru(i,131)}x.set(m.v128_or,IA);function kA(i){return ru(i,132)}x.set(m.v128_xor,kA);function FA(i){return ru(i,133)}x.set(m.v128_andnot,FA);function wA(i,r){let e=i.compiler,t=e.module;if(Q(i,16)|I(i)|K(i,1))return e.currentType=p.v128,t.unreachable();let n=i.operands,s=e.compileExpression(n[0],p.v128,1);return t.unary(r,s)}function RA(i){return wA(i,66)}x.set(m.v128_not,RA);function CA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1),a=r.compileExpression(t[2],p.v128,1);return e.simd_ternary(0,n,s,a)}x.set(m.v128_bitselect,CA);function PA(i){let r=i.compiler,e=r.module;if(Q(i,16)|I(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1);return r.currentType=p.bool,e.unary(67,n)}x.set(m.v128_any_true,PA);function na(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(r.options.isWasm64?83:79,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}x.set(m.v128_all_true,na);function sa(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.i32,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(r.options.isWasm64?84:80,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}x.set(m.v128_bitmask,sa);function fx(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}x.set(m.v128_popcnt,fx);function aa(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}x.set(m.v128_extadd_pairwise,aa);function _x(i){let r=i.compiler,e=r.module;if(Q(i,16)|fe(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?n[0]:p.f64,a=r.compileExpression(t[0],p.v128,1);return r.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(r.error(203,i.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}x.set(m.v128_demote_zero,_x);function dx(i){let r=i.compiler,e=r.module;if(Q(i,16)|fe(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?n[0]:p.f32,a=r.compileExpression(t[0],p.v128,1);return r.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(r.error(203,i.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}x.set(m.v128_promote_low,dx);function hx(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}x.set(m.v128_q15mulr_sat,hx);function yi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}x.set(m.v128_extmul_low,yi);function gi(i){let r=i.compiler,e=r.module;if(Q(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}x.set(m.v128_extmul_high,gi);function mx(i){let r=i.compiler,e=r.module;if(Q(i,4096)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1);return e.binary(210,n,s)}x.set(m.v128_relaxed_swizzle,mx);function a_(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(133,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}x.set(m.v128_relaxed_trunc,a_);function l_(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(135,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}x.set(m.v128_relaxed_trunc_zero,l_);function o_(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}x.set(m.v128_relaxed_madd,o_);function u_(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}x.set(m.v128_relaxed_nmadd,u_);function la(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(r.options.isWasm64?8:7,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}x.set(m.v128_relaxed_laneselect,la);function c_(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}x.set(m.v128_relaxed_min,c_);function p_(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}x.set(m.v128_relaxed_max,p_);function yx(i){let r=i.compiler,e=r.module;if(Q(i,4096)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}x.set(m.v128_relaxed_q15mulr,yx);function gx(i){let r=i.compiler,e=r.module;if(Q(i,4096)|K(i,2)|Z(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}x.set(m.v128_relaxed_dot,gx);function bx(i){let r=i.compiler,e=r.module;if(Q(i,4096)|K(i,3)|Z(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}x.set(m.v128_relaxed_dot_add,bx);function BA(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return r.currentType=p.void,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.u32,1);return r.runtimeFeatures|=16,r.currentType=p.void,e.call(m.visit_globals,[n],P.None)}x.set(m.visit_globals,BA);function NA(i){let r=i.compiler,e=r.module;if(I(i)|K(i,2))return r.currentType=p.void,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],r.options.usizeType,1),s=r.compileExpression(t[1],p.u32,1);return r.runtimeFeatures|=32,r.currentType=p.void,e.call(m.visit_members,[n,s],P.None)}x.set(m.visit_members,NA);function LA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Rf(i)}x.set(m.i32_clz,LA);function MA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Rf(i)}x.set(m.i64_clz,MA);function zA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Cf(i)}x.set(m.i32_ctz,zA);function DA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Cf(i)}x.set(m.i64_ctz,DA);function GA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Pf(i)}x.set(m.i32_popcnt,GA);function UA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Pf(i)}x.set(m.i64_popcnt,UA);function VA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Bf(i)}x.set(m.i32_rotl,VA);function OA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Bf(i)}x.set(m.i64_rotl,OA);function qA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Nf(i)}x.set(m.i32_rotr,qA);function WA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Nf(i)}x.set(m.i64_rotr,WA);function KA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Lf(i)}x.set(m.f32_abs,KA);function HA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Lf(i)}x.set(m.f64_abs,HA);function jA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Mf(i)}x.set(m.f32_max,jA);function QA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Mf(i)}x.set(m.f64_max,QA);function XA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,zf(i)}x.set(m.f32_min,XA);function ZA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,zf(i)}x.set(m.f64_min,ZA);function $A(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Df(i)}x.set(m.f32_ceil,$A);function YA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Df(i)}x.set(m.f64_ceil,YA);function JA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Gf(i)}x.set(m.f32_floor,JA);function eT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Gf(i)}x.set(m.f64_floor,eT);function tT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Uf(i)}x.set(m.f32_copysign,tT);function rT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Uf(i)}x.set(m.f64_copysign,rT);function iT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Vf(i)}x.set(m.f32_nearest,iT);function nT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Vf(i)}x.set(m.f64_nearest,nT);function sT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.f32,Ws(i)}x.set(m.i32_reinterpret_f32,sT);function aT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.f64,Ws(i)}x.set(m.i64_reinterpret_f64,aT);function lT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Ws(i)}x.set(m.f32_reinterpret_i32,lT);function oT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i64,Ws(i)}x.set(m.f64_reinterpret_i64,oT);function uT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Of(i)}x.set(m.f32_sqrt,uT);function cT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Of(i)}x.set(m.f64_sqrt,cT);function pT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,qf(i)}x.set(m.f32_trunc,pT);function fT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,qf(i)}x.set(m.f64_trunc,fT);function _T(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ks(i)}x.set(m.i32_rem_s,_T);function dT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.u32,Ks(i)}x.set(m.i32_rem_u,dT);function hT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ks(i)}x.set(m.i64_rem_s,hT);function mT(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.u64,Ks(i)}x.set(m.i64_rem_u,mT);function yT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Hs(i)}x.set(m.i32_add,yT);function gT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Hs(i)}x.set(m.i64_add,gT);function bT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Hs(i)}x.set(m.f32_add,bT);function xT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Hs(i)}x.set(m.f64_add,xT);function ET(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,js(i)}x.set(m.i32_sub,ET);function AT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,js(i)}x.set(m.i64_sub,AT);function TT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,js(i)}x.set(m.f32_sub,TT);function ST(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,js(i)}x.set(m.f64_sub,ST);function vT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Qs(i)}x.set(m.i32_mul,vT);function IT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Qs(i)}x.set(m.i64_mul,IT);function kT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Qs(i)}x.set(m.f32_mul,kT);function FT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Qs(i)}x.set(m.f64_mul,FT);function wT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,ni(i)}x.set(m.i32_div_s,wT);function RT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.u32,ni(i)}x.set(m.i32_div_u,RT);function CT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,ni(i)}x.set(m.i64_div_s,CT);function PT(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.u64,ni(i)}x.set(m.i64_div_u,PT);function BT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,ni(i)}x.set(m.f32_div,BT);function NT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,ni(i)}x.set(m.f64_div,NT);function LT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Xs(i)}x.set(m.i32_eq,LT);function MT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Xs(i)}x.set(m.i64_eq,MT);function zT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Xs(i)}x.set(m.f32_eq,zT);function DT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i32,Xs(i)}x.set(m.f64_eq,DT);function GT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Zs(i)}x.set(m.i32_ne,GT);function UT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Zs(i)}x.set(m.i64_ne,UT);function VT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Zs(i)}x.set(m.f32_ne,VT);function OT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i32,Zs(i)}x.set(m.f64_ne,OT);function qT(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load8_s,qT);function WT(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load8_u,WT);function KT(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load16_s,KT);function HT(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load16_u,HT);function jT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load,jT);function QT(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load8_s,QT);function XT(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load8_u,XT);function ZT(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load16_s,ZT);function $T(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load16_u,$T);function YT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load32_s,YT);function JT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load32_u,JT);function eS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load,eS);function tS(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Ue(i)}x.set(m.f32_load,tS);function rS(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Ue(i)}x.set(m.f64_load,rS);function iS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store8,iS);function nS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store16,nS);function sS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store,sS);function aS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store8,aS);function lS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store16,lS);function oS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store32,oS);function uS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store,uS);function cS(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,i.contextIsExact=!0,Tt(i)}x.set(m.f32_store,cS);function pS(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,i.contextIsExact=!0,Tt(i)}x.set(m.f64_store,pS);function fS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load8_u,fS);function _S(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load16_u,_S);function dS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load,dS);function hS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load8_u,hS);function mS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load16_u,mS);function yS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load32_u,yS);function gS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load,gS);function bS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store8,bS);function xS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store16,xS);function ES(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store,ES);function AS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store8,AS);function TS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store16,TS);function SS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store32,SS);function vS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store,vS);function IS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw8_add_u,IS);function kS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw16_add_u,kS);function FS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw_add,FS);function wS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw8_add_u,wS);function RS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw16_add_u,RS);function CS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw32_add_u,CS);function PS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw_add,PS);function BS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw8_sub_u,BS);function NS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw16_sub_u,NS);function LS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw_sub,LS);function MS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw8_sub_u,MS);function zS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw16_sub_u,zS);function DS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw32_sub_u,DS);function GS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw_sub,GS);function US(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw8_and_u,US);function VS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw16_and_u,VS);function OS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw_and,OS);function qS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw8_and_u,qS);function WS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw16_and_u,WS);function KS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw32_and_u,KS);function HS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw_and,HS);function jS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw8_or_u,jS);function QS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw16_or_u,QS);function XS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw_or,XS);function ZS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw8_or_u,ZS);function $S(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw16_or_u,$S);function YS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw32_or_u,YS);function JS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw_or,JS);function ev(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw8_xor_u,ev);function tv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw16_xor_u,tv);function rv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw_xor,rv);function iv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw8_xor_u,iv);function nv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw16_xor_u,nv);function sv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw32_xor_u,sv);function av(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw_xor,av);function lv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw8_xchg_u,lv);function ov(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw16_xchg_u,ov);function uv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw_xchg,uv);function cv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw8_xchg_u,cv);function pv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw16_xchg_u,pv);function fv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw32_xchg_u,fv);function _v(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw_xchg,_v);function dv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw8_cmpxchg_u,dv);function hv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw16_cmpxchg_u,hv);function mv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw_cmpxchg,mv);function yv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw8_cmpxchg_u,yv);function gv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw16_cmpxchg_u,gv);function bv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw32_cmpxchg_u,bv);function xv(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw_cmpxchg,xv);function Ev(i){return I(i),i.typeArguments=[p.i32],Wf(i)}x.set(m.memory_atomic_wait32,Ev);function Av(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Wf(i)}x.set(m.memory_atomic_wait64,Av);function Tv(i){return I(i),i.typeArguments=[p.v128],i.contextualType=p.v128,Ue(i)}x.set(m.v128_load,Tv);function Sv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,oi(i)}x.set(m.v128_load8x8_s,Sv);function vv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,oi(i)}x.set(m.v128_load8x8_u,vv);function Iv(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,oi(i)}x.set(m.v128_load16x4_s,Iv);function kv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,oi(i)}x.set(m.v128_load16x4_u,kv);function Fv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,oi(i)}x.set(m.v128_load32x2_s,Fv);function wv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,oi(i)}x.set(m.v128_load32x2_u,wv);function Rv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,$s(i)}x.set(m.v128_load8_splat,Rv);function Cv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,$s(i)}x.set(m.v128_load16_splat,Cv);function Pv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,$s(i)}x.set(m.v128_load32_splat,Pv);function Bv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,$s(i)}x.set(m.v128_load64_splat,Bv);function Nv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Hf(i)}x.set(m.v128_load32_zero,Nv);function Lv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Hf(i)}x.set(m.v128_load64_zero,Lv);function Mv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load8_lane,Mv);function zv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load16_lane,zv);function Dv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load32_lane,Dv);function Gv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load64_lane,Gv);function Uv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Js(i)}x.set(m.v128_store8_lane,Uv);function Vv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Js(i)}x.set(m.v128_store16_lane,Vv);function Ov(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Js(i)}x.set(m.v128_store32_lane,Ov);function qv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Js(i)}x.set(m.v128_store64_lane,qv);function Wv(i){return I(i),i.typeArguments=[p.v128],i.contextualType=p.v128,i.contextIsExact=!0,Tt(i)}x.set(m.v128_store,Wv);function Kv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,si(i)}x.set(m.i8x16_splat,Kv);function Hv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,sr(i)}x.set(m.i8x16_extract_lane_s,Hv);function jv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,sr(i)}x.set(m.i8x16_extract_lane_u,jv);function Qv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ai(i)}x.set(m.i8x16_replace_lane,Qv);function Xv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ui(i)}x.set(m.i8x16_add,Xv);function Zv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ci(i)}x.set(m.i8x16_sub,Zv);function $v(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ar(i)}x.set(m.i8x16_min_s,$v);function Yv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ar(i)}x.set(m.i8x16_min_u,Yv);function Jv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,lr(i)}x.set(m.i8x16_max_s,Jv);function e4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,lr(i)}x.set(m.i8x16_max_u,e4);function t4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Zf(i)}x.set(m.i8x16_avgr_u,t4);function r4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,di(i)}x.set(m.i8x16_abs,r4);function i4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,_i(i)}x.set(m.i8x16_neg,i4);function n4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ea(i)}x.set(m.i8x16_add_sat_s,n4);function s4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ea(i)}x.set(m.i8x16_add_sat_u,s4);function a4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ta(i)}x.set(m.i8x16_sub_sat_s,a4);function l4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ta(i)}x.set(m.i8x16_sub_sat_u,l4);function o4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ia(i)}x.set(m.i8x16_shl,o4);function u4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,or(i)}x.set(m.i8x16_shr_s,u4);function c4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,or(i)}x.set(m.i8x16_shr_u,c4);function p4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,na(i)}x.set(m.i8x16_all_true,p4);function f4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,sa(i)}x.set(m.i8x16_bitmask,f4);function _4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,fx(i)}x.set(m.i8x16_popcnt,_4);function d4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,pi(i)}x.set(m.i8x16_eq,d4);function h4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,fi(i)}x.set(m.i8x16_ne,h4);function m4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Mt(i)}x.set(m.i8x16_lt_s,m4);function y4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Mt(i)}x.set(m.i8x16_lt_u,y4);function g4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,zt(i)}x.set(m.i8x16_le_s,g4);function b4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,zt(i)}x.set(m.i8x16_le_u,b4);function x4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Dt(i)}x.set(m.i8x16_gt_s,x4);function E4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Dt(i)}x.set(m.i8x16_gt_u,E4);function A4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Gt(i)}x.set(m.i8x16_ge_s,A4);function T4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Gt(i)}x.set(m.i8x16_ge_u,T4);function S4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ra(i)}x.set(m.i8x16_narrow_i16x8_s,S4);function v4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ra(i)}x.set(m.i8x16_narrow_i16x8_u,v4);function I4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,li(i)}x.set(m.i8x16_shuffle,I4);function k4(i){return I(i),i.typeArguments=null,i.contextualType=p.v128,cx(i)}x.set(m.i8x16_swizzle,k4);function F4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,si(i)}x.set(m.i16x8_splat,F4);function w4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,sr(i)}x.set(m.i16x8_extract_lane_s,w4);function R4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,sr(i)}x.set(m.i16x8_extract_lane_u,R4);function C4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ai(i)}x.set(m.i16x8_replace_lane,C4);function P4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ui(i)}x.set(m.i16x8_add,P4);function B4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ci(i)}x.set(m.i16x8_sub,B4);function N4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,cn(i)}x.set(m.i16x8_mul,N4);function L4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ar(i)}x.set(m.i16x8_min_s,L4);function M4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ar(i)}x.set(m.i16x8_min_u,M4);function z4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,lr(i)}x.set(m.i16x8_max_s,z4);function D4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,lr(i)}x.set(m.i16x8_max_u,D4);function G4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Zf(i)}x.set(m.i16x8_avgr_u,G4);function U4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,di(i)}x.set(m.i16x8_abs,U4);function V4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,_i(i)}x.set(m.i16x8_neg,V4);function O4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ea(i)}x.set(m.i16x8_add_sat_s,O4);function q4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ea(i)}x.set(m.i16x8_add_sat_u,q4);function W4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ta(i)}x.set(m.i16x8_sub_sat_s,W4);function K4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ta(i)}x.set(m.i16x8_sub_sat_u,K4);function H4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ia(i)}x.set(m.i16x8_shl,H4);function j4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,or(i)}x.set(m.i16x8_shr_s,j4);function Q4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,or(i)}x.set(m.i16x8_shr_u,Q4);function X4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,na(i)}x.set(m.i16x8_all_true,X4);function Z4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,sa(i)}x.set(m.i16x8_bitmask,Z4);function $4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,pi(i)}x.set(m.i16x8_eq,$4);function Y4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,fi(i)}x.set(m.i16x8_ne,Y4);function J4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Mt(i)}x.set(m.i16x8_lt_s,J4);function eI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Mt(i)}x.set(m.i16x8_lt_u,eI);function tI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,zt(i)}x.set(m.i16x8_le_s,tI);function rI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,zt(i)}x.set(m.i16x8_le_u,rI);function iI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Dt(i)}x.set(m.i16x8_gt_s,iI);function nI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Dt(i)}x.set(m.i16x8_gt_u,nI);function sI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Gt(i)}x.set(m.i16x8_ge_s,sI);function aI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Gt(i)}x.set(m.i16x8_ge_u,aI);function lI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ra(i)}x.set(m.i16x8_narrow_i32x4_s,lI);function oI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,ra(i)}x.set(m.i16x8_narrow_i32x4_u,oI);function uI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,hi(i)}x.set(m.i16x8_extend_low_i8x16_s,uI);function cI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,hi(i)}x.set(m.i16x8_extend_low_i8x16_u,cI);function pI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,mi(i)}x.set(m.i16x8_extend_high_i8x16_s,pI);function fI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,mi(i)}x.set(m.i16x8_extend_high_i8x16_u,fI);function _I(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,aa(i)}x.set(m.i16x8_extadd_pairwise_i8x16_s,_I);function dI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,aa(i)}x.set(m.i16x8_extadd_pairwise_i8x16_u,dI);function hI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,hx(i)}x.set(m.i16x8_q15mulr_sat_s,hI);function mI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,yi(i)}x.set(m.i16x8_extmul_low_i8x16_s,mI);function yI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,yi(i)}x.set(m.i16x8_extmul_low_i8x16_u,yI);function gI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,gi(i)}x.set(m.i16x8_extmul_high_i8x16_s,gI);function bI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,gi(i)}x.set(m.i16x8_extmul_high_i8x16_u,bI);function xI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,li(i)}x.set(m.i16x8_shuffle,xI);function EI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,si(i)}x.set(m.i32x4_splat,EI);function AI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,sr(i)}x.set(m.i32x4_extract_lane,AI);function TI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ai(i)}x.set(m.i32x4_replace_lane,TI);function SI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ui(i)}x.set(m.i32x4_add,SI);function vI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ci(i)}x.set(m.i32x4_sub,vI);function II(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,cn(i)}x.set(m.i32x4_mul,II);function kI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ar(i)}x.set(m.i32x4_min_s,kI);function FI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,ar(i)}x.set(m.i32x4_min_u,FI);function wI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,lr(i)}x.set(m.i32x4_max_s,wI);function RI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,lr(i)}x.set(m.i32x4_max_u,RI);function CI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,px(i)}x.set(m.i32x4_dot_i16x8_s,CI);function PI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,di(i)}x.set(m.i32x4_abs,PI);function BI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,_i(i)}x.set(m.i32x4_neg,BI);function NI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ia(i)}x.set(m.i32x4_shl,NI);function LI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,or(i)}x.set(m.i32x4_shr_s,LI);function MI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,or(i)}x.set(m.i32x4_shr_u,MI);function zI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,na(i)}x.set(m.i32x4_all_true,zI);function DI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,sa(i)}x.set(m.i32x4_bitmask,DI);function GI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,pi(i)}x.set(m.i32x4_eq,GI);function UI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,fi(i)}x.set(m.i32x4_ne,UI);function VI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Mt(i)}x.set(m.i32x4_lt_s,VI);function OI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Mt(i)}x.set(m.i32x4_lt_u,OI);function qI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,zt(i)}x.set(m.i32x4_le_s,qI);function WI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,zt(i)}x.set(m.i32x4_le_u,WI);function KI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Dt(i)}x.set(m.i32x4_gt_s,KI);function HI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Dt(i)}x.set(m.i32x4_gt_u,HI);function jI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Gt(i)}x.set(m.i32x4_ge_s,jI);function QI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Gt(i)}x.set(m.i32x4_ge_u,QI);function XI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,n_(i)}x.set(m.i32x4_trunc_sat_f32x4_s,XI);function ZI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,n_(i)}x.set(m.i32x4_trunc_sat_f32x4_u,ZI);function $I(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,s_(i)}x.set(m.i32x4_trunc_sat_f64x2_s_zero,$I);function YI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,s_(i)}x.set(m.i32x4_trunc_sat_f64x2_u_zero,YI);function JI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,hi(i)}x.set(m.i32x4_extend_low_i16x8_s,JI);function e3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,hi(i)}x.set(m.i32x4_extend_low_i16x8_u,e3);function t3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,mi(i)}x.set(m.i32x4_extend_high_i16x8_s,t3);function r3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,mi(i)}x.set(m.i32x4_extend_high_i16x8_u,r3);function i3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,aa(i)}x.set(m.i32x4_extadd_pairwise_i16x8_s,i3);function n3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,aa(i)}x.set(m.i32x4_extadd_pairwise_i16x8_u,n3);function s3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,yi(i)}x.set(m.i32x4_extmul_low_i16x8_s,s3);function a3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,yi(i)}x.set(m.i32x4_extmul_low_i16x8_u,a3);function l3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,gi(i)}x.set(m.i32x4_extmul_high_i16x8_s,l3);function o3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,gi(i)}x.set(m.i32x4_extmul_high_i16x8_u,o3);function u3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,li(i)}x.set(m.i32x4_shuffle,u3);function c3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,si(i)}x.set(m.i64x2_splat,c3);function p3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,sr(i)}x.set(m.i64x2_extract_lane,p3);function f3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ai(i)}x.set(m.i64x2_replace_lane,f3);function _3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ui(i)}x.set(m.i64x2_add,_3);function d3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ci(i)}x.set(m.i64x2_sub,d3);function h3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,cn(i)}x.set(m.i64x2_mul,h3);function m3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,di(i)}x.set(m.i64x2_abs,m3);function y3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,_i(i)}x.set(m.i64x2_neg,y3);function g3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ia(i)}x.set(m.i64x2_shl,g3);function b3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,or(i)}x.set(m.i64x2_shr_s,b3);function x3(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,or(i)}x.set(m.i64x2_shr_u,x3);function E3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,na(i)}x.set(m.i64x2_all_true,E3);function A3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,sa(i)}x.set(m.i64x2_bitmask,A3);function T3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,pi(i)}x.set(m.i64x2_eq,T3);function S3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,fi(i)}x.set(m.i64x2_ne,S3);function v3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Mt(i)}x.set(m.i64x2_lt_s,v3);function I3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,zt(i)}x.set(m.i64x2_le_s,I3);function k3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Dt(i)}x.set(m.i64x2_gt_s,k3);function F3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Gt(i)}x.set(m.i64x2_ge_s,F3);function w3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,hi(i)}x.set(m.i64x2_extend_low_i32x4_s,w3);function R3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,hi(i)}x.set(m.i64x2_extend_low_i32x4_u,R3);function C3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,mi(i)}x.set(m.i64x2_extend_high_i32x4_s,C3);function P3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,mi(i)}x.set(m.i64x2_extend_high_i32x4_u,P3);function B3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,yi(i)}x.set(m.i64x2_extmul_low_i32x4_s,B3);function N3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,yi(i)}x.set(m.i64x2_extmul_low_i32x4_u,N3);function L3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,gi(i)}x.set(m.i64x2_extmul_high_i32x4_s,L3);function M3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,gi(i)}x.set(m.i64x2_extmul_high_i32x4_u,M3);function z3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,li(i)}x.set(m.i64x2_shuffle,z3);function D3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,si(i)}x.set(m.f32x4_splat,D3);function G3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,sr(i)}x.set(m.f32x4_extract_lane,G3);function U3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ai(i)}x.set(m.f32x4_replace_lane,U3);function V3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ui(i)}x.set(m.f32x4_add,V3);function O3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ci(i)}x.set(m.f32x4_sub,O3);function q3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,cn(i)}x.set(m.f32x4_mul,q3);function W3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,jf(i)}x.set(m.f32x4_div,W3);function K3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,_i(i)}x.set(m.f32x4_neg,K3);function H3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ar(i)}x.set(m.f32x4_min,H3);function j3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,lr(i)}x.set(m.f32x4_max,j3);function Q3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Qf(i)}x.set(m.f32x4_pmin,Q3);function X3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Xf(i)}x.set(m.f32x4_pmax,X3);function Z3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,di(i)}x.set(m.f32x4_abs,Z3);function $3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,$f(i)}x.set(m.f32x4_sqrt,$3);function Y3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Yf(i)}x.set(m.f32x4_ceil,Y3);function J3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Jf(i)}x.set(m.f32x4_floor,J3);function e0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,e_(i)}x.set(m.f32x4_trunc,e0);function t0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,t_(i)}x.set(m.f32x4_nearest,t0);function r0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,pi(i)}x.set(m.f32x4_eq,r0);function i0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,fi(i)}x.set(m.f32x4_ne,i0);function n0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Mt(i)}x.set(m.f32x4_lt,n0);function s0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,zt(i)}x.set(m.f32x4_le,s0);function a0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Dt(i)}x.set(m.f32x4_gt,a0);function l0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Gt(i)}x.set(m.f32x4_ge,l0);function o0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,r_(i)}x.set(m.f32x4_convert_i32x4_s,o0);function u0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,r_(i)}x.set(m.f32x4_convert_i32x4_u,u0);function c0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,_x(i)}x.set(m.f32x4_demote_f64x2_zero,c0);function p0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,li(i)}x.set(m.f32x4_shuffle,p0);function f0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,si(i)}x.set(m.f64x2_splat,f0);function _0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,sr(i)}x.set(m.f64x2_extract_lane,_0);function d0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ai(i)}x.set(m.f64x2_replace_lane,d0);function h0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ui(i)}x.set(m.f64x2_add,h0);function m0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ci(i)}x.set(m.f64x2_sub,m0);function y0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,cn(i)}x.set(m.f64x2_mul,y0);function g0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,jf(i)}x.set(m.f64x2_div,g0);function b0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,_i(i)}x.set(m.f64x2_neg,b0);function x0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ar(i)}x.set(m.f64x2_min,x0);function E0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,lr(i)}x.set(m.f64x2_max,E0);function A0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Qf(i)}x.set(m.f64x2_pmin,A0);function T0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Xf(i)}x.set(m.f64x2_pmax,T0);function S0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,di(i)}x.set(m.f64x2_abs,S0);function v0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,$f(i)}x.set(m.f64x2_sqrt,v0);function I0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Yf(i)}x.set(m.f64x2_ceil,I0);function k0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Jf(i)}x.set(m.f64x2_floor,k0);function F0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,e_(i)}x.set(m.f64x2_trunc,F0);function w0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,t_(i)}x.set(m.f64x2_nearest,w0);function R0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,pi(i)}x.set(m.f64x2_eq,R0);function C0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,fi(i)}x.set(m.f64x2_ne,C0);function P0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Mt(i)}x.set(m.f64x2_lt,P0);function B0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,zt(i)}x.set(m.f64x2_le,B0);function N0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Dt(i)}x.set(m.f64x2_gt,N0);function L0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Gt(i)}x.set(m.f64x2_ge,L0);function M0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,i_(i)}x.set(m.f64x2_convert_low_i32x4_s,M0);function z0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,i_(i)}x.set(m.f64x2_convert_low_i32x4_u,z0);function D0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,dx(i)}x.set(m.f64x2_promote_low_f32x4,D0);function G0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,li(i)}x.set(m.f64x2_shuffle,G0);function U0(i){return I(i),i.typeArguments=null,i.contextualType=p.v128,mx(i)}x.set(m.i8x16_relaxed_swizzle,U0);function V0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,a_(i)}x.set(m.i32x4_relaxed_trunc_f32x4_s,V0);function O0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,a_(i)}x.set(m.i32x4_relaxed_trunc_f32x4_u,O0);function q0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,l_(i)}x.set(m.i32x4_relaxed_trunc_f64x2_s_zero,q0);function W0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,l_(i)}x.set(m.i32x4_relaxed_trunc_f64x2_u_zero,W0);function K0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,o_(i)}x.set(m.f32x4_relaxed_madd,K0);function H0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,u_(i)}x.set(m.f32x4_relaxed_nmadd,H0);function j0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,o_(i)}x.set(m.f64x2_relaxed_madd,j0);function Q0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,u_(i)}x.set(m.f64x2_relaxed_nmadd,Q0);function X0(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,la(i)}x.set(m.i8x16_relaxed_laneselect,X0);function Z0(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,la(i)}x.set(m.i16x8_relaxed_laneselect,Z0);function $0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,la(i)}x.set(m.i32x4_relaxed_laneselect,$0);function Y0(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,la(i)}x.set(m.i64x2_relaxed_laneselect,Y0);function J0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,c_(i)}x.set(m.f32x4_relaxed_min,J0);function ek(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,p_(i)}x.set(m.f32x4_relaxed_max,ek);function tk(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,c_(i)}x.set(m.f64x2_relaxed_min,tk);function rk(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,p_(i)}x.set(m.f64x2_relaxed_max,rk);function ik(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,yx(i)}x.set(m.i16x8_relaxed_q15mulr_s,ik);function nk(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,gx(i)}x.set(m.i16x8_relaxed_dot_i8x16_i7x16_s,nk);function sk(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,bx(i)}x.set(m.i32x4_relaxed_dot_i8x16_i7x16_add_s,sk);function xx(i){let r=i.module,e=new Array,t=i.options.sizeTypeRef,n=assert(i.program.visitInstance);i.compileFunction(n,!0);for(let s=Map_values(i.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,f=u.type.getClass();if(f&&!f.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let _=u.constantIntegerValue;(i64_low(_)||i64_high(_))&&e.push(r.call(n.internalName,[i.options.isWasm64?r.i64(i64_low(_),i64_high(_)):r.i32(i64_low(_)),r.local_get(0,P.I32)],P.None))}else e.push(r.if(r.local_tee(1,r.global_get(u.internalName,t),!1),r.call(n.internalName,[r.local_get(1,t),r.local_get(0,P.I32)],P.None)))}r.addFunction(m.visit_globals,P.I32,P.None,[t],e.length?r.block(null,e):r.nop())}function Ex(i,r){if(assert(r.type.isManaged),r.visitRef)return;let e=i.program,t=i.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=r.base;u&&o.push(t.call(`${u.internalName}~visit`,[t.local_get(0,s),t.local_get(1,P.I32)],P.None));let c=!1;if(r.isDeclaredInLibrary){let _=r.getMember("__visit");if(_){assert(_.kind==4);let d=e.resolver.resolveFunction(_,null);if(!d||!i.compileFunction(d))o.push(t.unreachable());else{let g=d.signature,y=assert(g.thisType);assert(g.parameterTypes.length==1&&g.parameterTypes[0]==p.u32&&g.returnType==p.void&&r.type.isStrictlyAssignableTo(y)),o.push(t.call(d.internalName,[t.local_get(0,s),t.local_get(1,P.I32)],P.None))}c=!0}}let f=!1;if(!c){let _=r.members;if(_)for(let d=Map_values(_),g=0,y=d.length;g<y;++g){let E=unchecked(d[g]);if(E.kind!=10)continue;let T=E.instance;if(!T)continue;let k=T.type;if(!T.isField||T.getBoundClassOrInterface()!=r||!k.isManaged)continue;let F=T.memoryOffset;assert(F>=0),f=!0,o.push(t.call(l.internalName,[t.load(a,!1,t.local_get(0,s),s,F),t.local_get(1,P.I32)],P.None))}}r.visitRef=t.addFunction(`${r.internalName}~visit`,ft([s,P.I32]),P.None,f?[s]:null,t.flatten(o,P.None)),u&&u.type.isManaged&&Ex(i,u)}function Ax(i){let r=i.program,e=i.module,n=r.options.usizeType.toRef(),s=r.managedClasses,a=assert(r.visitInstance);i.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let f=Map_keys(s),_=0,d=f.length;_<d;++_){let g=f[_];assert(g==u++);let y=assert(s.get(g));l[_]=y.internalName,y.isPointerfree?o[_]=e.return():(o[_]=e.block(null,[e.call(`${y.internalName}~visit`,[e.local_get(0,n),e.local_get(1,P.I32)],P.None),e.return()],P.None),Ex(i,y))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==P.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),P.I32,0))],P.None);for(let f=0,_=l.length-1;f<_;++f)c=e.block(l[f+1],[c,o[f]],P.None);c=e.block("invalid",[c,o[l.length-1]],P.None),e.addFunction(m.visit_members,ft([n,P.I32]),P.None,null,e.flatten([c,e.unreachable()]))}function ln(i){let r=64*(1<<i.alignLog2);return i.is(1)&&(r|=2048),i.is(8)&&(r|=4096),i.is(512)&&(r|=8192),i.isManaged&&(r|=16384),r/64}function Tx(i){let r=i.program,e=i.module,t=r.managedClasses,n=t.size,s=4+4*n,a=new Uint8Array(s);Se(n,a,0);let l=4,o=r.arrayBufferViewInstance,u=o.prototype,c=r.arrayPrototype,f=r.setPrototype,_=r.mapPrototype,d=r.staticArrayPrototype,g=0;for(let T=Map_keys(t),k=0,F=T.length;k<F;++k){let w=unchecked(T[k]),R=assert(t.get(w));assert(w==g++);let B=0;if(R.isPointerfree&&(B|=32),R!=o&&R.extendsPrototype(u)){let M=R.getArrayValueType();B|=1,B|=64*ln(M)}else if(R.extendsPrototype(c)){let M=R.getArrayValueType();B|=2,B|=64*ln(M)}else if(R.extendsPrototype(f)){let M=assert(R.getTypeArgumentsTo(f));assert(M.length==1),B|=8,B|=64*ln(M[0])}else if(R.extendsPrototype(_)){let M=assert(R.getTypeArgumentsTo(_));assert(M.length==2),B|=16,B|=32768*ln(M[0]),B|=64*ln(M[1])}else if(R.extendsPrototype(d)){let M=R.getArrayValueType();B|=4,B|=64*ln(M)}Se(B,a,l),l+=4,R.rttiFlags=B}assert(l==s);let y=r.options.usizeType,E=i.addAlignedMemorySegment(a);if(y.size==8){let T=E.offset;e.addGlobal(m.rtti_base,P.I64,!1,e.i64(i64_low(T),i64_high(T)))}else e.addGlobal(m.rtti_base,P.I32,!1,e.i32(i64_low(E.offset)))}function Ve(i){let r=i.compiler,e=i.operands,t=i.typeArguments;if(on=0,e.length==0)return!t||t.length!=1?(r.error(2558,i.reportNode.typeArgumentsRange,"1",t?t.length.toString():"0"),null):t[0];if(e.length==1){if(t&&t.length>0){if(t.length>1)return r.error(2558,i.reportNode.typeArgumentsRange,"1",t.length.toString()),null;on=r.compileExpression(e[0],t[0],1)}else on=r.compileExpression(e[0],p.auto);return r.currentType}return t&&t.length>1&&r.error(2558,i.reportNode.typeArgumentsRange,"1",t.length.toString()),r.error(2554,i.reportNode.argumentsRange,"1",e.length.toString()),null}function ke(i,r){let e=i.compiler.module;return on&&Uo(on,e.ref)&&(r=e.block(null,[e.maybeDrop(on),r],ce(r))),r}function _t(i,r){let e=r.module,t;if(r.options.isWasm64){let n=r.compileExpression(i,p.usize64,1),s=e.runExpression(n,1);s?(assert(Ge(s)==0),t=Be(s)):(r.error(220,i.range),t=-1)}else{let n=r.compileExpression(i,p.usize32,1),s=e.runExpression(n,1);s?t=ae(s):(r.error(220,i.range),t=-1)}return t}function ir(i,r,e){let t=_t(i,e);return t<0?t:t<1||r>16?(e.error(222,i.range,"Alignment","1",r.toString()),-1):Kr(t)?t:(e.error(223,i.range,"Alignment"),-1)}function Q(i,r){let e=i.compiler;return e.options.hasFeature(r)?0:(e.error(103,i.reportNode.range,Di(r)),1)}function Z(i,r=!1){let e=i.compiler,t=i.typeArguments;if(t){let n=t.length;if(n==1)return 0;assert(n),r&&(e.currentType=t[0]),e.error(2558,i.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,i.reportNode.range,"1","0");return 1}function fe(i,r=!1){let e=i.typeArguments;if(e){let t=i.compiler,n=e.length;return n==1?0:(assert(n),r&&(t.currentType=e[0]),t.error(2558,i.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function I(i){if(i.typeArguments){let e=i.prototype;return e.program.error(2315,i.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(i,r){let e=i.operands;return e.length!=r?(i.compiler.error(2554,i.reportNode.range,r.toString(),e.length.toString()),1):0}function Ne(i,r,e){let n=i.operands.length;return n<r?(i.compiler.error(2555,i.reportNode.range,r.toString(),n.toString()),1):n>e?(i.compiler.error(2554,i.reportNode.range,e.toString(),n.toString()),1):0}function ii(i,r,e){let t=i.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(r))return i.currentType=p.i32,t.i32(i64_low(r));break}case 8:{if(i64_is_u32(r))return i.currentType=p.u32,t.i32(i64_low(r));break}case 4:case 9:return i.currentType=e,t.i64(i64_low(r),i64_high(r))}return i.options.isWasm64?(i.currentType=p.usize64,t.i64(i64_low(r),i64_high(r))):(i.currentType=p.usize32,assert(!i64_high(r)),t.i32(i64_low(r)))}var iu=class{constructor(r,e){this.discriminator=r;this.recordExpression=e}},Sx=null;function nu(){let i=Sx;return i==null&&(Sx=i=new Map),i}var d_=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let r=this._currentExpression;if(!r)throw new Error("not walking expressions");return r}get parentExpressionOrNull(){let r=this.stack,e=r.length;return e?r[e-1]:0}visitBlock(r){}visitIf(r){}visitLoop(r){}visitBreak(r){}visitSwitch(r){}visitCallPre(r){}visitCall(r){}visitCallIndirectPre(r){}visitCallIndirect(r){}visitLocalGet(r){}visitLocalSet(r){}visitGlobalGet(r){}visitGlobalSet(r){}visitLoad(r){}visitStore(r){}visitConst(r){}visitUnary(r){}visitBinary(r){}visitSelect(r){}visitDrop(r){}visitReturn(r){}visitMemorySize(r){}visitMemoryGrow(r){}visitNop(r){}visitUnreachable(r){}visitAtomicRMW(r){}visitAtomicCmpxchg(r){}visitAtomicWait(r){}visitAtomicNotify(r){}visitAtomicFence(r){}visitSIMDExtract(r){}visitSIMDReplace(r){}visitSIMDShuffle(r){}visitSIMDTernary(r){}visitSIMDShift(r){}visitSIMDLoad(r){}visitSIMDLoadStoreLane(r){}visitMemoryInit(r){}visitDataDrop(r){}visitMemoryCopy(r){}visitMemoryFill(r){}visitPop(r){}visitRefNull(r){}visitRefIsNull(r){}visitRefFunc(r){}visitRefEq(r){}visitTry(r){}visitThrow(r){}visitRethrow(r){}visitTupleMake(r){}visitTupleExtract(r){}visitRefI31(r){}visitI31Get(r){}visitCallRef(r){}visitRefTest(r){}visitRefCast(r){}visitBrOn(r){}visitStructNew(r){}visitStructGet(r){}visitStructSet(r){}visitArrayNew(r){}visitArrayNewFixed(r){}visitArrayGet(r){}visitArraySet(r){}visitArrayLen(r){}visitArrayCopy(r){}visitRefAs(r){}visitStringNew(r){}visitStringConst(r){}visitStringMeasure(r){}visitStringEncode(r){}visitStringConcat(r){}visitStringEq(r){}visitStringAs(r){}visitStringWTF8Advance(r){}visitStringWTF16Get(r){}visitStringIterNext(r){}visitStringIterMove(r){}visitStringSliceWTF(r){}visitStringSliceIter(r){}visitName(r){}visitLabel(r){}visitIndex(r){}visitTag(r){}visit(r){let e=this._currentExpression;switch(this._currentExpression=assert(r),Wt(r)){case 1:{this.stack.push(r);let t=Ca(r);t&&this.visitLabel(t);for(let n=0,s=Pn(r);n<s;++n)this.visit(Bn(r,n));assert(this.stack.pop()==r),this.visitBlock(r);break}case 2:{this.stack.push(r),this.visit(Nn(r)),this.visit(Ln(r));let t=Mn(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitIf(r);break}case 3:{this.stack.push(r);let t=Pa(r);t&&this.visitLabel(t),this.visit(zn(r)),assert(this.stack.pop()==r),this.visitLoop(r);break}case 4:{this.stack.push(r),this.visitLabel(Ba(r));let t=Dn(r);t&&this.visit(t);let n=zu(r);n&&this.visit(n),assert(this.stack.pop()==r),this.visitBreak(r);break}case 5:{this.stack.push(r);let t=Bd(r);t&&this.visitLabel(t);let n=Cd(r);for(let a=0;a<n;++a)this.visitLabel(Pd(r,a));this.visit(Du(r));let s=Gu(r);s&&this.visit(s),assert(this.stack.pop()==r),this.visitSwitch(r);break}case 6:{this.visitCallPre(r),this.stack.push(r),this.visitName(Ri(r));let t=dr(r);for(let n=0;n<t;++n)this.visit(hr(r,n));assert(this.stack.pop()==r),this.visitCall(r);break}case 7:{this.visitCallIndirectPre(r),this.stack.push(r),this.visit(Uu(r));for(let t=0,n=Gn(r);t<n;++t)this.visit(Un(r,t));assert(this.stack.pop()==r),this.visitCallIndirect(r);break}case 8:{this.stack.push(r),this.visitIndex(Ma(r)),assert(this.stack.pop()==r),this.visitLocalGet(r);break}case 9:{this.stack.push(r),this.visitIndex(Ci(r)),this.visit(Dr(r)),assert(this.stack.pop()==r),this.visitLocalSet(r);break}case 10:{this.stack.push(r),this.visitName(Ga(r)),assert(this.stack.pop()==r),this.visitGlobalGet(r);break}case 11:{this.stack.push(r),this.visitName(Hd(r)),this.visit(Vu(r)),assert(this.stack.pop()==r),this.visitGlobalSet(r);break}case 12:{this.stack.push(r),this.visit(On(r)),assert(this.stack.pop()==r),this.visitLoad(r);break}case 13:{this.stack.push(r),this.visit(Gr(r)),this.visit(qn(r)),assert(this.stack.pop()==r),this.visitStore(r);break}case 14:{this.visitConst(r);break}case 15:{this.stack.push(r),this.visit(Wn(r)),assert(this.stack.pop()==r),this.visitUnary(r);break}case 16:{this.stack.push(r),this.visit(Kn(r)),this.visit(Hn(r)),assert(this.stack.pop()==r),this.visitBinary(r);break}case 17:{this.stack.push(r),this.visit(jn(r)),this.visit(Qn(r)),this.visit(Xn(r)),assert(this.stack.pop()==r),this.visitSelect(r);break}case 18:{this.stack.push(r),this.visit(Zn(r)),assert(this.stack.pop()==r),this.visitDrop(r);break}case 19:{let t=Ur(r);t&&(this.stack.push(r),this.visit(t),assert(this.stack.pop()==r)),this.visitReturn(r);break}case 20:{this.visitMemorySize(r);break}case 21:{this.stack.push(r),this.visit(Vn(r)),assert(this.stack.pop()==r),this.visitMemoryGrow(r);break}case 22:{this.visitNop(r);break}case 23:{this.visitUnreachable(r);break}case 24:{this.stack.push(r),this.visit(qu(r)),this.visit(Wu(r)),assert(this.stack.pop()==r),this.visitAtomicRMW(r);break}case 25:{this.stack.push(r),this.visit(Ku(r)),this.visit(Hu(r)),this.visit(ju(r)),assert(this.stack.pop()==r),this.visitAtomicCmpxchg(r);break}case 26:{this.stack.push(r),this.visit(Qu(r)),this.visit(Xu(r)),this.visit(Zu(r)),assert(this.stack.pop()==r),this.visitAtomicWait(r);break}case 27:{this.stack.push(r),this.visit($u(r)),this.visit(Yu(r)),assert(this.stack.pop()==r),this.visitAtomicNotify(r);break}case 28:{this.visitAtomicFence(r);break}case 30:{this.stack.push(r),this.visit(Ju(r)),assert(this.stack.pop()==r),this.visitSIMDExtract(r);break}case 31:{this.stack.push(r),this.visit(ec(r)),this.visit(tc(r)),assert(this.stack.pop()==r),this.visitSIMDReplace(r);break}case 32:{this.stack.push(r),this.visit(rc(r)),this.visit(ic(r)),assert(this.stack.pop()==r),this.visitSIMDShuffle(r);break}case 33:{this.stack.push(r),this.visit(nc(r)),this.visit(sc(r)),this.visit(ac(r)),assert(this.stack.pop()==r),this.visitSIMDTernary(r);break}case 34:{this.stack.push(r),this.visit(lc(r)),this.visit(oc(r)),assert(this.stack.pop()==r),this.visitSIMDShift(r);break}case 35:{this.stack.push(r),this.visit(uc(r)),assert(this.stack.pop()==r),this.visitSIMDLoad(r);break}case 36:{this.stack.push(r),this.visit(cc(r)),this.visit(pc(r)),assert(this.stack.pop()==r),this.visitSIMDLoadStoreLane(r);break}case 37:{this.stack.push(r),this.visit(fc(r)),this.visit(_c(r)),this.visit(dc(r)),assert(this.stack.pop()==r),this.visitMemoryInit(r);break}case 38:{this.visitDataDrop(r);break}case 39:{this.stack.push(r),this.visit(hc(r)),this.visit(mc(r)),this.visit(yc(r)),assert(this.stack.pop()==r),this.visitMemoryCopy(r);break}case 40:{this.stack.push(r),this.visit(gc(r)),this.visit(bc(r)),this.visit(xc(r)),assert(this.stack.pop()==r),this.visitMemoryFill(r);break}case 41:{this.visitPop(r);break}case 42:{this.visitRefNull(r);break}case 43:{this.stack.push(r),this.visit(Ec(r)),assert(this.stack.pop()==r),this.visitRefIsNull(r);break}case 44:{this.stack.push(r),this.visitName(Sm(r)),assert(this.stack.pop()==r),this.visitRefFunc(r);break}case 45:{this.stack.push(r),this.visit(Sc(r)),this.visit(vc(r)),assert(this.stack.pop()==r),this.visitRefEq(r);break}case 54:{this.stack.push(r),this.visit(Ic(r));let t=kc(r);for(let n=0;n<t;++n)this.visit(Fc(r,n));assert(this.stack.pop()==r),this.visitTry(r);break}case 56:{this.stack.push(r),this.visitTag(Mm(r));let t=wc(r);for(let n=0;n<t;++n)this.visit(Rc(r,n));assert(this.stack.pop()==r),this.visitThrow(r);break}case 57:{this.visitRethrow(r);break}case 59:{let t=Cc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Pc(r,n));assert(this.stack.pop()==r)}this.visitTupleMake(r);break}case 60:{this.stack.push(r),this.visit(Bc(r)),assert(this.stack.pop()==r),this.visitTupleExtract(r);break}case 61:{this.stack.push(r),this.visit(Nc(r)),assert(this.stack.pop()==r),this.visitRefI31(r);break}case 62:{this.stack.push(r),this.visit(Lc(r)),assert(this.stack.pop()==r),this.visitI31Get(r);break}case 63:{this.stack.push(r);let t=Mc(r);if(t)for(let n=0;n<t;++n)this.visit(zc(r,n));this.visit(Dc(r)),assert(this.stack.pop()==r),this.visitCallRef(r);break}case 64:{this.stack.push(r),this.visit(Gc(r)),assert(this.stack.pop()==r),this.visitRefTest(r);break}case 65:{this.stack.push(r),this.visit(Uc(r)),assert(this.stack.pop()==r),this.visitRefCast(r);break}case 67:{this.stack.push(r),this.visitLabel(Ym(r)),this.visit(Vc(r)),assert(this.stack.pop()==r),this.visitBrOn(r);break}case 68:{let t=Oc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(qc(r,n));assert(this.stack.pop()==r)}this.visitStructNew(r);break}case 69:{this.stack.push(r),this.visit(Wc(r)),this.visitIndex(ty(r)),assert(this.stack.pop()==r),this.visitStructGet(r);break}case 70:{this.stack.push(r),this.visit(Kc(r)),this.visitIndex(iy(r)),this.visit(Hc(r)),assert(this.stack.pop()==r),this.visitStructSet(r);break}case 73:{this.stack.push(r),this.visit(Qc(r));let t=jc(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitArrayNew(r);break}case 76:{let t=Xc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Zc(r,n));assert(this.stack.pop()==r)}this.visitArrayNewFixed(r);break}case 77:{this.stack.push(r),this.visit($c(r)),this.visit(Yc(r)),assert(this.stack.pop()==r),this.visitArrayGet(r);break}case 78:{this.stack.push(r),this.visit(Jc(r)),this.visit(ep(r)),this.visit(tp(r)),assert(this.stack.pop()==r),this.visitArraySet(r);break}case 81:{this.stack.push(r),this.visit(rp(r)),assert(this.stack.pop()==r),this.visitArrayLen(r);break}case 82:{this.stack.push(r),this.visit(ip(r)),this.visit(np(r)),this.visit(sp(r)),this.visit(ap(r)),this.visit(lp(r)),assert(this.stack.pop()==r),this.visitArrayCopy(r);break}case 88:{this.stack.push(r),this.visit(Tc(r)),assert(this.stack.pop()==r),this.visitRefAs(r);break}case 89:{this.stack.push(r),this.visit(op(r));let t=up(r);t&&this.visit(t);let n=cp(r);n&&this.visit(n),assert(this.stack.pop()==r),this.visitStringNew(r);break}case 90:{this.stack.push(r),assert(this.stack.pop()==r),this.visitStringConst(r);break}case 91:{this.stack.push(r),this.visit(pp(r)),assert(this.stack.pop()==r),this.visitStringMeasure(r);break}case 92:{this.stack.push(r),this.visit(fp(r)),this.visit(_p(r));let t=dp(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitStringEncode(r);break}case 93:{this.stack.push(r),this.visit(hp(r)),this.visit(mp(r)),assert(this.stack.pop()==r),this.visitStringConcat(r);break}case 94:{this.stack.push(r),this.visit(gp(r)),this.visit(bp(r)),assert(this.stack.pop()==r),this.visitStringEq(r);break}case 96:{this.stack.push(r),this.visit(xp(r)),this.visit(Ep(r)),assert(this.stack.pop()==r),this.visitStringWTF16Get(r);break}case 97:{this.stack.push(r),this.visit(Ap(r)),this.visit(Tp(r)),this.visit(Sp(r)),assert(this.stack.pop()==r),this.visitStringSliceWTF(r);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},bi=class extends d_{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let t=0,n=My(e);t<n;++t)this.walkFunction(zy(e,t))}walkFunction(e){let t=mr(e);t&&(this._currentFunction=e,this.visit(t),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let t=0,n=tg(e);t<n;++t)this.walkGlobal(rg(e,t))}walkGlobal(e){this._currentGlobal=e;let t=Za(e);t&&this.visit(t),this._currentGlobal=0}replaceCurrent(e){let t=this.currentExpression,n=this.currentFunction;if(mr(n)==t)Ha(n,e);else{let a=assert(this.parentExpressionOrNull);if(!ak(a,t,e))throw Error("failed to replace expression");gd(a)}}};function ak(i,r,e){switch(Wt(i)){case 1:{let t=Pn(i);for(let n=0;n<t;++n){let s=Bn(i,n);if(s==r)return xd(i,n,e),s}break}case 2:{let t=Nn(i);if(t==r)return Ad(i,e),t;let n=Ln(i);if(n==r)return Td(i,e),n;let s=Mn(i);if(s==r)return Sd(i,e),s;break}case 3:{let t=zn(i);if(t==r)return Id(i,e),t;break}case 4:{let t=Dn(i);if(t==r)return Fd(i,e),t;let n=zu(i);if(n==r)return wd(i,e),n;break}case 5:{let t=Du(i);if(t==r)return Nd(i,e),t;let n=Gu(i);if(n==r)return Ld(i,e),n;break}case 6:{let t=dr(i);for(let n=0;n<t;++n){let s=hr(i,n);if(s==r)return Na(i,n,e),s}break}case 7:{let t=Uu(i);if(t==r)return Gd(i,e),t;let n=Gn(i);for(let s=0;s<n;++s){let a=Un(i,s);if(a==r)return La(i,s,e),a}break}case 8:break;case 9:{let t=Dr(i);if(t==r)return Da(i,e),t;break}case 10:break;case 11:{let t=Vu(i);if(t==r)return jd(i,e),t;break}case 12:{let t=On(i);if(t==r)return th(i,e),t;break}case 13:{let t=Gr(i);if(t==r)return Oa(i,e),t;let n=qn(i);if(n==r)return nh(i,e),n;break}case 14:break;case 15:{let t=Wn(i);if(t==r)return fh(i,e),t;break}case 16:{let t=Kn(i);if(t==r)return yh(i,e),t;let n=Hn(i);if(n==r)return gh(i,e),n;break}case 17:{let t=jn(i);if(t==r)return xh(i,e),t;let n=Qn(i);if(n==r)return Eh(i,e),n;let s=Xn(i);if(s==r)return Ah(i,e),s;break}case 18:{let t=Zn(i);if(t==r)return Th(i,e),t;break}case 19:{let t=Ur(i);if(t==r)return qa(i,e),t;break}case 20:break;case 21:{let t=Vn(i);if(t==r)return Zd(i,e),t;break}case 22:break;case 23:break;case 24:{let t=qu(i);if(t==r)return Fh(i,e),t;let n=Wu(i);if(n==r)return wh(i,e),n;break}case 25:{let t=Ku(i);if(t==r)return Ch(i,e),t;let n=Hu(i);if(n==r)return Ph(i,e),n;let s=ju(i);if(s==r)return Bh(i,e),s;break}case 26:{let t=Qu(i);if(t==r)return Lh(i,e),t;let n=Xu(i);if(n==r)return Mh(i,e),n;let s=Zu(i);if(s==r)return zh(i,e),s;break}case 27:{let t=$u(i);if(t==r)return Gh(i,e),t;let n=Yu(i);if(n==r)return Uh(i,e),n;break}case 28:break;case 30:{let t=Ju(i);if(t==r)return qh(i,e),t;break}case 31:{let t=ec(i);if(t==r)return Kh(i,e),t;let n=tc(i);if(n==r)return Hh(i,e),n;break}case 32:{let t=rc(i);if(t==r)return Qh(i,e),t;let n=ic(i);if(n==r)return Xh(i,e),n;break}case 33:{let t=nc(i);if(t==r)return $h(i,e),t;let n=sc(i);if(n==r)return Yh(i,e),n;let s=ac(i);if(s==r)return Jh(i,e),s;break}case 34:{let t=lc(i);if(t==r)return tm(i,e),t;let n=oc(i);if(n==r)return rm(i,e),n;break}case 35:{let t=uc(i);if(t==r)return nm(i,e),t;break}case 36:{let t=cc(i);if(t==r)return am(i,e),t;if(pc(i)==r)return lm(i,e),t;break}case 37:{let t=fc(i);if(t==r)return om(i,e),t;let n=_c(i);if(n==r)return um(i,e),n;let s=dc(i);if(s==r)return cm(i,e),s;break}case 38:break;case 39:{let t=hc(i);if(t==r)return fm(i,e),t;let n=mc(i);if(n==r)return _m(i,e),n;let s=yc(i);if(s==r)return dm(i,e),s;break}case 40:{let t=gc(i);if(t==r)return mm(i,e),t;let n=bc(i);if(n==r)return ym(i,e),n;let s=xc(i);if(s==r)return gm(i,e),s;break}case 41:break;case 42:break;case 43:{let t=Ec(i);if(t==r)return Em(i,e),t;break}case 44:break;case 45:{let t=Sc(i);if(t==r)return Im(i,e),t;let n=vc(i);if(n==r)return km(i,e),n;break}case 54:{let t=Ic(i);if(t==r)return Bm(i,e),t;let n=kc(i);for(let s=0;s<n;++s){let a=Fc(i,s);if(a==r)return Nm(i,s,e),a}break}case 56:{let t=wc(i);for(let n=0;n<t;++n){let s=Rc(i,n);if(s==r)return zm(i,n,e),s}break}case 57:break;case 59:{let t=Cc(i);for(let n=0;n<t;++n){let s=Pc(i,n);if(s==r)return Um(i,n,e),s}break}case 60:{let t=Bc(i);if(t==r)return Om(i,e),t;break}case 61:{let t=Nc(i);if(t==r)return Km(i,e),t;break}case 62:{let t=Lc(i);if(t==r)return jm(i,e),t;break}case 63:{let t=Mc(i);for(let s=0;s<t;++s){let a=zc(i,s);if(a==r)return Qm(i,s,e),a}let n=Dc(i);if(n==r)return Xm(i,e),n;break}case 64:{let t=Gc(i);if(t==r)return Zm(i,e),t;break}case 65:{let t=Uc(i);if(t==r)return $m(i,e),t;break}case 67:{let t=Vc(i);if(t==r)return Jm(i,e),t;break}case 68:{let t=Oc(i);for(let n=0;n<t;++n){let s=qc(i,n);if(s==r)return ey(i,n,e),s}break}case 69:{let t=Wc(i);if(t==r)return ry(i,e),t;break}case 70:{let t=Kc(i);if(t==r)return ny(i,e),t;let n=Hc(i);if(n==r)return sy(i,e),n;break}case 73:{let t=Qc(i);if(t==r)return ly(i,e),t;let n=jc(i);if(n==r)return ay(i,e),n;break}case 76:{let t=Xc(i);for(let n=0;n<t;++n){let s=Zc(i,n);if(s==r)return oy(i,n,e),s}break}case 77:{let t=$c(i);if(t==r)return uy(i,e),t;let n=Yc(i);if(n==r)return cy(i,e),n;break}case 78:{let t=Jc(i);if(t==r)return py(i,e),t;let n=ep(i);if(n==r)return fy(i,e),n;let s=tp(i);if(s==r)return _y(i,e),s;break}case 81:{let t=rp(i);if(t==r)return dy(i,e),t;break}case 82:{let t=ip(i);if(t==r)return hy(i,e),t;let n=np(i);if(n==r)return my(i,e),n;let s=sp(i);if(s==r)return yy(i,e),s;let a=ap(i);if(a==r)return gy(i,e),a;let l=lp(i);if(l==r)return by(i,e),l;break}case 88:{let t=Tc(i);if(t==r)return Am(i,e),t;break}case 89:{let t=op(i);if(t==r)return xy(i,e),t;let n=up(i);if(n==r)return Ey(i,e),n;let s=cp(i);if(s==r)return Ay(i,e),s;break}case 90:break;case 91:{let t=pp(i);if(t==r)return Ty(i,e),t;break}case 92:{let t=fp(i);if(t==r)return Sy(i,e),t;let n=_p(i);if(n==r)return vy(i,e),n;let s=dp(i);if(s==r)return Iy(i,e),s;break}case 93:{let t=hp(i);if(t==r)return ky(i,e),t;let n=mp(i);if(n==r)return Fy(i,e),n;break}case 94:{let t=gp(i);if(t==r)return wy(i,e),t;let n=bp(i);if(n==r)return Ry(i,e),n;break}case 96:{let t=xp(i);if(t==r)return Cy(i,e),t;let n=Ep(i);if(n==r)return Py(i,e),n;break}case 97:{let t=Ap(i);if(t==r)return By(i,e),t;let n=Tp(i);if(n==r)return Ny(i,e),n;let s=Sp(i);if(s==r)return Ly(i,e),s;break}default:throw new Error("unexpected expression id")}return 0}var su=class extends bi{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(Li(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let t=this.module,n=Gr(e),s=Va(e),a=Ua(e);Oa(e,t.call("~onstore",[n,t.i32(s),t.i32(a),t.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",ft([this.ptrType,P.I32,P.I32,P.I32]),this.ptrType)}};function vx(i,r){let e=!1;for(;Wt(r)==6&&i.readStringCached(Ri(r))==m.tostack;)assert(dr(r)==1),r=hr(r,0),e=!0;return e?r:0}function Ix(i){return Wt(i)===14?!nt(i):!0}var au=class extends bi{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==P.I64?8:4}get ptrBinaryAdd(){return this.ptrType==P.I64?25:0}get ptrBinarySub(){return this.ptrType==P.I64?26:1}ptrConst(e){return this.ptrType==P.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,t){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(t,s),s}noteExport(e,t){t.length&&this.exportMap.set(e,t)}getSharedTemp(e,t){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.tempMaps.set(e,n);let a=vp(e)+n.size;return n.set(t,a),a}makeStackOffset(e){assert(e!=0);let t=this.module,n=t.global_set(m.stack_pointer,t.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,t.global_get(m.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:t.block(null,[n,this.makeStackCheck()],P.None)}makeStackFill(e,t){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)t.push(n.memory_fill(n.global_get(m.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)t.push(n.store(8,n.global_get(m.stack_pointer,this.ptrType),n.i64(0),P.I64,e-s)),s-=8;s&&(assert(s==4),t.push(n.store(4,n.global_get(m.stack_pointer,this.ptrType),n.i32(0),P.I32,e-s)))}}makeStackCheck(){let e=this.module;return this.hasStackCheckFunction||(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",P.None,P.None,null,e.if(e.binary(17,e.global_get(m.stack_pointer,this.ptrType),e.global_get(m.data_end,this.ptrType)),this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),Te.native)))),e.call("~stack_check",null,P.None)}updateCallOperands(e){let t=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=vx(t,l);if(!o)continue;if(!Ix(o)){e[s]=o;continue}let u=this.currentFunction,c=vp(u),f=this.noteSlot(u,c+this.callSlotOffset+n),_=this.getSharedTemp(u,this.ptrType),d=new Array;d.push(t.local_set(_,o,!1)),d.push(t.store(this.ptrSize,t.global_get(m.stack_pointer,this.ptrType),t.local_get(_,this.ptrType),this.ptrType,f*this.ptrSize)),d.push(t.local_get(_,this.ptrType)),e[s]=t.block(null,d,this.ptrType),++n}return n}visitCallPre(e){let t=dr(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=hr(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Na(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitCallIndirectPre(e){let t=Gn(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=Un(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)La(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitLocalSet(e){let t=this.module,n=Dr(e),s=vx(t,n);if(!s)return;if(!Ix(s)){Da(e,s);return}let a=Ci(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(t.store(this.ptrSize,t.global_get(m.stack_pointer,this.ptrType),t.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),za(e)?(o.push(t.local_get(a,this.ptrType)),this.replaceCurrent(t.flatten(o,this.ptrType))):this.replaceCurrent(t.flatten(o,P.None))}updateFunction(e){let t=Li(e),n=Yn(e),s=Jn(e),a=assert(mr(e)),l=Wa(e),o=new Array;for(let d=0;d<l;++d)o[d]=Ka(e,d);let u=this.tempMaps;if(u.has(e)){let d=changetype(u.get(e));for(let g=Map_keys(d),y=0,E=g.length;y<E;++y)o.push(g[y])}let c=this.module.ref;$n(c,t);let f=Ee(o),_=Bi(c,t,n,s,f,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let d=this.compiler.program.searchFunctionByRef(_);d&&d.addDebugInfo(this.module,_)}ne(f)}updateExport(e,t){let n=this.module,s=n.ref;assert(Zy(e)==0);let a=Yy(e),l=n.readStringCached(a),o=$y(e),u=Ni(s,a),c=Yn(u),f=cf(c),_=f.length,d=Jn(u),g=_,y=new Array,E=assert(t.length),T=E*this.ptrSize,k="export:"+l,F=n.allocStringCached(k);if(Ni(s,F)==0){let w=new Array;w.push(this.makeStackOffset(-T));for(let M=0;M<E;++M)w.push(n.store(this.ptrSize,n.global_get(m.stack_pointer,this.ptrType),n.local_get(t[M],this.ptrType),this.ptrType,M*this.ptrSize));let R=new Array(_);for(let M=0;M<_;++M)R[M]=n.local_get(M,f[M]);if(d!=P.None){let M=g++;y.push(d),w.push(n.local_set(M,n.call(l,R,d),!1)),w.push(this.makeStackOffset(+T)),w.push(n.local_get(M,d))}else w.push(n.call(l,R,d)),w.push(this.makeStackOffset(+T));let B=Ee(y);Bi(s,F,c,d,B,y.length,n.block(null,w,d)),ne(B)}Xa(s,o),ja(s,F,o)}walkModule(){super.walkModule();let e=this.module,t=new h_(this);for(let s=Map_keys(this.slotMaps),a=0,l=s.length;a<l;++a){let o=s[a],c=changetype(this.slotMaps.get(o)).size*this.ptrSize;t.frameSize=c,t.walkFunction(o);let f=new Array;f.push(this.makeStackOffset(-c)),this.makeStackFill(c,f);let _=mr(o),d=_r(_);if(d==P.Unreachable)f.push(_);else if(d==P.None)f.push(_),f.push(this.makeStackOffset(+c));else{let g=this.getSharedTemp(o,d);f.push(e.local_set(g,_,!1)),f.push(this.makeStackOffset(+c)),f.push(e.local_get(g,d))}Ha(o,e.flatten(f,d))}for(let s=Map_keys(this.tempMaps),a=0,l=s.length;a<l;++a)this.updateFunction(s[a]);let n=this.exportMap;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=Qa(e.ref,e.allocStringCached(o)),c=changetype(n.get(o));this.updateExport(u,c)}}},h_=class extends bi{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let t=this.module,n=Ur(e),s=new Array;if(n){let a=_r(n);if(a==P.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(t.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),qa(e,t.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(t.flatten(s,P.Unreachable))}};var pn=class{constructor(r,e=!1){this.seen=new Map;this.program=r,this.includePrivate=e}walk(){for(let r=Map_values(this.program.filesByName),e=0,t=r.length;e<t;++e){let n=unchecked(r[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(r){let e=r.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let t=r.exportsStar;if(t)for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);this.visitFile(a)}}visitElement(r,e){if(e.is(512)&&!this.includePrivate)return;let t=this.seen;if(!e.is(262144)&&t.has(e)){this.visitAlias(r,e,assert(t.get(e)));return}switch(t.set(e,r),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(r,e);break}case 2:{e.is(8388608)&&this.visitEnum(r,e);break}case 3:break;case 4:{this.visitFunctionInstances(r,e);break}case 6:{this.visitClassInstances(r,e);break}case 8:{this.visitInterfaceInstances(r,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(r,s);let a=n.setterInstance;a&&this.visitFunction(r,a);break}case 12:{kx(e)&&this.visitNamespace(r,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(r,l)}}visitClassInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(r,l)}}visitInterfaceInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(r,l)}}};function kx(i){let r=i.members;if(r)for(let e=Map_values(r),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||kx(s))return!0;break}}}return!1}function lk(i){return i=="rtrace"?"#rtrace":i}function ok(i){return i!="rtrace"}var _n=class i extends pn{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=t}static build(e,t=!0){return new i(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type;this.exports.push(e),xi(s,1)||(W(n,this.indentLevel),n.push(e),n.push(`: {
18
- `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(": "),n.push(s.toString()),n.push(`
19
- `),W(n,this.indentLevel),n.push(`valueOf() { return this.value; },
20
- `),W(n,this.indentLevel),n.push(`get value() {
21
- `),W(n,++this.indentLevel),n.push("return "),this.makeLiftFromValue("exports."+e+".value",s,n),n.push(`;
22
- `),W(n,--this.indentLevel),n.push("}"),t.is(8)||(n.push(`,
23
- `),W(n,this.indentLevel),n.push(`set value(value) {
24
- `),W(n,++this.indentLevel),n.push("exports."),n.push(e),n.push(".value = "),this.makeLowerToValue("value",s,n),n.push(`;
25
- `),W(n,--this.indentLevel),n.push("}")),n.push(`
26
- `),W(n,--this.indentLevel),n.push(`},
27
- `)),this.visitNamespace(e,t)}visitEnum(e,t){let n=this.sb;this.exports.push(e),W(n,this.indentLevel),n.push(e),n.push(`: (values => (
28
- `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(`
29
- `);let s=t.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];u.kind==3&&(W(n,this.indentLevel),n.push("values[values."),n.push(u.name),u.is(33554432)?(n.push(" = "),n.push(i64_low(u.constantIntegerValue).toString())):(n.push(' = exports["'),n.push(Re(e+"."+u.name,34)),n.push('"].valueOf()')),n.push('] = "'),n.push(Re(u.name,34)),n.push(`",
30
- `))}W(n,this.indentLevel),n.push(`values
31
- `),W(n,--this.indentLevel),n.push(`))({}),
32
- `),this.visitNamespace(e,t)}makeGlobalImport(e,t,n){let s=this.sb,a=n.type;W(s,this.indentLevel),Ze(t)?s.push(t):(s.push('"'),s.push(Re(t,34)),s.push('": '));let l=this.ensureModuleId(e);xi(a,0)?(s.push(`(
33
- `),W(s,this.indentLevel+1),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
34
- `),W(s,this.indentLevel+1),e!="env"&&(s.push("__module"),s.push(l.toString()),s.push(".")),s.push(t),s.push(`
35
- `),W(s,this.indentLevel),s.push(")")):(s.push(`{
36
- `),W(s,++this.indentLevel),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
37
- `),W(s,this.indentLevel),s.push(`// not supported: cannot lower before instantiate completes
38
- `),W(s,--this.indentLevel),s.push("}")),s.push(`,
39
- `)}makeFunctionImport(e,t,n,s=null){let a=this.sb,l=n.signature;if(W(a,this.indentLevel),Ze(t)?a.push(t):(a.push('"'),a.push(Re(t,34)),a.push('"')),m_(l,0)&&!s&&Ze(t))a.push(`: (
40
- `),W(a,this.indentLevel+1),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
41
- `),W(a,this.indentLevel+1),e!="env"&&(a.push(e),a.push(".")),a.push(t),a.push(`
42
- `),W(a,this.indentLevel),a.push(")");else{a.push("(");let o=l.parameterTypes,u=new Array;for(let _=0,d=o.length;_<d;++_)u.push(n.getParameterName(_));a.push(u.join(", ")),a.push(`) {
43
- `),W(a,++this.indentLevel),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
44
- `);for(let _=0,d=o.length;_<d;++_){let g=o[_];if(!xi(g,1)){let y=n.getParameterName(_);W(a,this.indentLevel),a.push(y),a.push(" = "),this.makeLiftFromValue(y,g,a),a.push(`;
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(Ht(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(!ji(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(cl(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,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(gt(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(ss(f))u=i64_add(i64_shl(l,o),i64_new((f|32)+-87));else if(f==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),c&&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,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(gt(f))u=i64_add(i64_mul(l,o),i64_new(f-48));else if(f==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)&&(c=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):c&&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,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(cl(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(f==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):c&&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 c=e.charCodeAt(t);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==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&&gt(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(!gt(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(gt(o))n=(n<<4)+o-48;else if(ss(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&&Hi(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)}},ml=class{constructor(r,e,t){this.pos=r;this.token=e;this.tokenPos=t}},Qp=null;var $e=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.FixedArrayType=4]="FixedArrayType",V[V.TypeName=5]="TypeName",V[V.TypeParameter=6]="TypeParameter",V[V.Parameter=7]="Parameter",V[V.Identifier=8]="Identifier",V[V.Assertion=9]="Assertion",V[V.Binary=10]="Binary",V[V.Call=11]="Call",V[V.Class=12]="Class",V[V.Comma=13]="Comma",V[V.ElementAccess=14]="ElementAccess",V[V.False=15]="False",V[V.Function=16]="Function",V[V.InstanceOf=17]="InstanceOf",V[V.Literal=18]="Literal",V[V.New=19]="New",V[V.Null=20]="Null",V[V.Omitted=21]="Omitted",V[V.Parenthesized=22]="Parenthesized",V[V.PropertyAccess=23]="PropertyAccess",V[V.Ternary=24]="Ternary",V[V.Super=25]="Super",V[V.This=26]="This",V[V.True=27]="True",V[V.Constructor=28]="Constructor",V[V.UnaryPostfix=29]="UnaryPostfix",V[V.UnaryPrefix=30]="UnaryPrefix",V[V.Await=31]="Await",V[V.Lazy=32]="Lazy",V[V.Compiled=33]="Compiled",V[V.Block=34]="Block",V[V.Break=35]="Break",V[V.Continue=36]="Continue",V[V.Do=37]="Do",V[V.Empty=38]="Empty",V[V.Export=39]="Export",V[V.ExportDefault=40]="ExportDefault",V[V.ExportImport=41]="ExportImport",V[V.Expression=42]="Expression",V[V.For=43]="For",V[V.ForOf=44]="ForOf",V[V.If=45]="If",V[V.Import=46]="Import",V[V.Return=47]="Return",V[V.Switch=48]="Switch",V[V.Throw=49]="Throw",V[V.Try=50]="Try",V[V.Variable=51]="Variable",V[V.Void=52]="Void",V[V.While=53]="While",V[V.Module=54]="Module",V[V.ClassDeclaration=55]="ClassDeclaration",V[V.EnumDeclaration=56]="EnumDeclaration",V[V.EnumValueDeclaration=57]="EnumValueDeclaration",V[V.FieldDeclaration=58]="FieldDeclaration",V[V.FunctionDeclaration=59]="FunctionDeclaration",V[V.ImportDeclaration=60]="ImportDeclaration",V[V.InterfaceDeclaration=61]="InterfaceDeclaration",V[V.MethodDeclaration=62]="MethodDeclaration",V[V.NamespaceDeclaration=63]="NamespaceDeclaration",V[V.TypeDeclaration=64]="TypeDeclaration",V[V.VariableDeclaration=65]="VariableDeclaration",V[V.Decorator=66]="Decorator",V[V.ExportMember=67]="ExportMember",V[V.SwitchCase=68]="SwitchCase",V[V.IndexSignature=69]="IndexSignature",V[V.Comment=70]="Comment",V))($e||{}),h=class i{constructor(r,e){this.kind=r;this.range=e}static createSimpleTypeName(r,e){return new Xi(i.createIdentifierExpression(r,e),null,e)}static createNamedType(r,e,t,n){return new Zr(r,e,t,n)}static createFunctionType(r,e,t,n,s){return new $r(r,e,t,n,s)}static createTupleType(r,e,t,n){return new yl(r,e,t,n)}static createFixedArrayType(r,e,t){return new gl(r,e,t)}static createOmittedType(r){return new Zr(i.createSimpleTypeName("",r),null,!1,r)}static createTypeParameter(r,e,t,n){return new bl(r,e,t,n)}static createParameter(r,e,t,n,s){return new Zi(r,e,t,n,s)}static createDecorator(r,e,t){return new xl(Rt.fromNode(r),r,e,t)}static createComment(r,e,t){return new El(r,e,t)}static createIdentifierExpression(r,e,t=!1){return new rt(r,t,e)}static createEmptyIdentifierExpression(r){return new rt("",!1,r)}static createArrayLiteralExpression(r,e){return new Yr(r,e)}static createAssertionExpression(r,e,t,n){return new Al(r,e,t,n)}static createBinaryExpression(r,e,t,n){return new Tl(r,e,t,n)}static createCallExpression(r,e,t,n){return new Sl(r,e,t,n)}static createClassExpression(r){return new vl(r)}static createCommaExpression(r,e){return new Il(r,e)}static createConstructorExpression(r){return new kl(r)}static createElementAccessExpression(r,e,t){return new Fl(r,e,t)}static createFalseExpression(r){return new Hl(r)}static createFloatLiteralExpression(r,e){return new wl(r,e)}static createFunctionExpression(r){return new Rl(r)}static createInstanceOfExpression(r,e,t){return new Cl(r,e,t)}static createIntegerLiteralExpression(r,e){return new Pl(r,e)}static createNewExpression(r,e,t,n){return new Bl(r,e,t,n)}static createNullExpression(r){return new Nl(r)}static createObjectLiteralExpression(r,e,t){return new Ll(r,e,t)}static createOmittedExpression(r){return new Ml(r)}static createParenthesizedExpression(r,e){return new zl(r,e)}static createPropertyAccessExpression(r,e,t){return new Dl(r,e,t)}static createRegexpLiteralExpression(r,e,t){return new Gl(r,e,t)}static createTernaryExpression(r,e,t,n){return new Ul(r,e,t,n)}static createStringLiteralExpression(r,e){return new Vl(r,e)}static createSuperExpression(r){return new Ol(r)}static createTemplateLiteralExpression(r,e,t,n,s){return new ql(r,e,t,n,s)}static createThisExpression(r){return new Wl(r)}static createTrueExpression(r){return new Kl(r)}static createUnaryPostfixExpression(r,e,t){return new jl(r,e,t)}static createUnaryPrefixExpression(r,e,t){return new Ql(r,e,t)}static createAwaitExpression(r,e){return new Xl(r,e)}static createLazyExpression(r,e){return new Zl(r,e)}static createCompiledExpression(r,e,t){return new $l(r,e,t)}static createBlockStatement(r,e){return new Jl(r,e)}static createBreakStatement(r,e){return new eo(r,e)}static createClassDeclaration(r,e,t,n,s,a,l,o){return new cs(r,e,t,n,s,a,l,o)}static createContinueStatement(r,e){return new to(r,e)}static createDoStatement(r,e,t){return new ro(r,e,t)}static createEmptyStatement(r){return new io(r)}static createEnumDeclaration(r,e,t,n,s,a){return new no(r,e,t,n,s,a)}static createEnumValueDeclaration(r,e,t,n){return new so(r,e,t,n)}static createExportStatement(r,e,t,n){return new oo(r,e,t,n)}static createExportDefaultStatement(r,e){return new uo(r,e)}static createExportImportStatement(r,e,t){return new ao(r,e,t)}static createExportMember(r,e,t){return e||(e=r),new lo(r,e,t)}static createExpressionStatement(r){return new co(r)}static createIfStatement(r,e,t,n){return new ho(r,e,t,n)}static createImportStatement(r,e,t){return new fs(r,null,e,t)}static createWildcardImportStatement(r,e,t){return new fs(null,r,e,t)}static createImportDeclaration(r,e,t){return e||(e=r),new mo(e,r,t)}static createInterfaceDeclaration(r,e,t,n,s,a,l,o){return new yo(r,e,t,n,s,a,l,o)}static createFieldDeclaration(r,e,t,n,s,a){return new po(r,e,t,n,s,-1,a)}static createForStatement(r,e,t,n,s){return new fo(r,e,t,n,s)}static createForOfStatement(r,e,t,n){return new _o(r,e,t,n)}static createFunctionDeclaration(r,e,t,n,s,a,l,o,u=!1){return new ps(r,e,t,n,s,a,l,o,u)}static createIndexSignature(r,e,t,n){return new Yl(r,e,t,n)}static createMethodDeclaration(r,e,t,n,s,a,l,o=!1){return new Jr(r,e,t,n,s,a,l,o)}static createNamespaceDeclaration(r,e,t,n,s){return new go(r,e,t,n,s)}static createReturnStatement(r,e){return new bo(r,e)}static createSwitchStatement(r,e,t){return new Eo(r,e,t)}static createSwitchCase(r,e,t){return new xo(r,e,t)}static createThrowStatement(r,e){return new Ao(r,e)}static createTryStatement(r,e,t,n,s){return new To(r,e,t,n,s)}static createTypeDeclaration(r,e,t,n,s,a){return new vo(r,e,t,n,s,a)}static createModuleDeclaration(r,e,t){return new So(r,e,t)}static createVariableStatement(r,e,t){return new ko(r,e,t)}static createVariableDeclaration(r,e,t,n,s,a){return new Io(r,e,t,n,s,a)}static createVoidStatement(r,e){return new Fo(r,e)}static createWhileStatement(r,e,t){return new wo(r,e,t)}isLiteralKind(r){return this.kind==18&&changetype(this).literalKind==r}get isNumericLiteral(){if(this.kind==18)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 18:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 20:case 27:case 15:return!0}return!1}get evaluatesToConst(){switch(this.kind){case 9:return changetype(this).expression.evaluatesToConst;case 30:{let r=changetype(this),e=r.operator;if(e==82||e==83)return r.operand.evaluatesToConst;break}}return this.compilesToConst}isAccessOn(r){let e=changetype(this);return e.kind==11&&(e=e.expression),e.kind==23&&e.expression.kind==r}get isAccessOnThis(){return this.isAccessOn(26)}get isAccessOnSuper(){return this.isAccessOn(25)}get isEmpty(){return this.kind==38}},Xr=class extends h{constructor(e,t,n){super(e,n);this.isNullable=t;this.currentlyResolving=!1;this.memoryModel=0;this.attributes=null}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}},Xi=class extends h{constructor(e,t,n){super(5,n);this.identifier=e;this.next=t}},Zr=class extends Xr{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"}},$r=class extends Xr{constructor(e,t,n,s,a){super(2,s,a);this.parameters=e;this.returnType=t;this.explicitThisType=n}},yl=class extends Xr{constructor(e,t,n,s){super(3,n,s);this.elements=e;this.elementNames=t}},gl=class extends Xr{constructor(e,t,n){super(4,!1,n);this.elementType=e;this.length=t}},bl=class extends h{constructor(e,t,n,s){super(6,s);this.name=e;this.extendsType=t;this.defaultType=n}},jt=(t=>(t[t.Default=0]="Default",t[t.Optional=1]="Optional",t[t.Rest=2]="Rest",t))(jt||{}),Zi=class extends h{constructor(e,t,n,s,a){super(7,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}},_s=(n=>(n[n.Any=0]="Any",n[n.Inline=1]="Inline",n[n.Managed=2]="Managed",n[n.Unmanaged=3]="Unmanaged",n))(_s||{}),Rt=(y=>(y[y.Custom=0]="Custom",y[y.Global=1]="Global",y[y.Operator=2]="Operator",y[y.OperatorBinary=3]="OperatorBinary",y[y.OperatorPrefix=4]="OperatorPrefix",y[y.OperatorPostfix=5]="OperatorPostfix",y[y.Unmanaged=6]="Unmanaged",y[y.Managed=7]="Managed",y[y.Final=8]="Final",y[y.Inline=9]="Inline",y[y.External=10]="External",y[y.ExternalJs=11]="ExternalJs",y[y.Builtin=12]="Builtin",y[y.Lazy=13]="Lazy",y[y.Unsafe=14]="Unsafe",y))(Rt||{});(r=>{function i(e){if(e.kind==8){let t=e.text;switch(assert(t.length),t.charCodeAt(0)){case 98:{if(t=="builtin")return 12;break}case 101:{if(t=="external")return 10;break}case 102:{if(t=="final")return 8;break}case 103:{if(t=="global")return 1;break}case 105:{if(t=="inline")return 9;break}case 108:{if(t=="lazy")return 13;break}case 109:{if(t=="managed")return 7;break}case 111:{if(t=="operator")return 2;break}case 117:{if(t=="unmanaged")return 6;if(t=="unsafe")return 14;break}}}else if(e.kind==23){let t=e,n=t.expression;if(n.kind==8){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 11;break}}}}return 0}r.fromNode=i})(Rt||={});var xl=class extends h{constructor(e,t,n,s){super(66,s);this.decoratorKind=e;this.name=t;this.args=n}},$p=(t=>(t[t.Line=0]="Line",t[t.Triple=1]="Triple",t[t.Block=2]="Block",t))($p||{}),El=class extends h{constructor(e,t,n){super(70,n);this.commentKind=e;this.text=t}},xe=class extends h{},rt=class extends xe{constructor(e,t,n){super(8,n);this.text=e;this.isQuoted=t}},pt=(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))(pt||{}),wt=class extends xe{constructor(e,t){super(18,t);this.literalKind=e}},Yr=class extends wt{constructor(e,t){super(5,t);this.elementExpressions=e}},Qt=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Qt||{}),Al=class extends xe{constructor(e,t,n,s){super(9,s);this.assertionKind=e;this.expression=t;this.toType=n}},Tl=class extends xe{constructor(e,t,n,s){super(10,s);this.operator=e;this.left=t;this.right=n}},Sl=class extends xe{constructor(e,t,n,s){super(11,s);this.expression=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)?ue.join(e[0].range,e[t-1].range):this.expression.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.expression.range}},vl=class extends xe{constructor(e){super(12,e.range);this.declaration=e}},Il=class extends xe{constructor(e,t){super(13,t);this.expressions=e}},kl=class extends rt{constructor(r){super("constructor",!1,r),this.kind=28}},Fl=class extends xe{constructor(e,t,n){super(14,n);this.expression=e;this.elementExpression=t}},wl=class extends wt{constructor(e,t){super(0,t);this.value=e}},Rl=class extends xe{constructor(e){super(16,e.range);this.declaration=e}},Cl=class extends xe{constructor(e,t,n){super(17,n);this.expression=e;this.isType=t}},Pl=class extends wt{constructor(e,t){super(1,t);this.value=e}},Bl=class extends xe{constructor(e,t,n,s){super(19,s);this.typeName=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)>0?ue.join(e[0].range,e[t-1].range):this.typeName.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.typeName.range}},Nl=class extends rt{constructor(r){super("null",!1,r),this.kind=20}},Ll=class extends wt{constructor(e,t,n){super(6,n);this.names=e;this.values=t}},Ml=class extends xe{constructor(r){super(21,r)}},zl=class extends xe{constructor(e,t){super(22,t);this.expression=e}},Dl=class extends xe{constructor(e,t,n){super(23,n);this.expression=e;this.property=t}},Gl=class extends wt{constructor(e,t,n){super(4,n);this.pattern=e;this.patternFlags=t}},Ul=class extends xe{constructor(e,t,n,s){super(24,s);this.condition=e;this.ifThen=t;this.ifElse=n}},Vl=class extends wt{constructor(e,t){super(2,t);this.value=e}},Ol=class extends rt{constructor(r){super("super",!1,r),this.kind=25}},ql=class extends wt{constructor(e,t,n,s,a){super(3,a);this.tag=e;this.parts=t;this.rawParts=n;this.expressions=s}},Wl=class extends rt{constructor(r){super("this",!1,r),this.kind=26}},Kl=class extends rt{constructor(r){super("true",!1,r),this.kind=27}},Hl=class extends rt{constructor(r){super("false",!1,r),this.kind=15}},us=class extends xe{constructor(e,t,n,s){super(e,s);this.operator=t;this.operand=n}},jl=class extends us{constructor(r,e,t){super(29,r,e,t)}},Ql=class extends us{constructor(r,e,t){super(30,r,e,t)}},Xl=class extends xe{constructor(e,t){super(31,t);this.operand=e}},Zl=class extends xe{constructor(e,t){super(32,t);this.expression=e}},$l=class extends xe{constructor(e,t,n){super(33,n);this.expr=e;this.type=t}},me=class extends h{},Yi=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Yi||{}),Te=class i extends h{constructor(e,t,n){super(0,new ue(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=ds(t);this.internalPath=s;let a=s.lastIndexOf(mt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=i._native;return e||(i._native=e=new i(3,Ft+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==i._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}},it=class extends me{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}},Yl=class extends h{constructor(e,t,n,s){super(69,s);this.keyType=e;this.valueType=t;this.flags=n}},$i=class extends it{constructor(e,t,n,s,a,l,o){super(e,t,n,s,o);this.type=a;this.initializer=l}},Jl=class extends me{constructor(e,t){super(34,t);this.statements=e}},eo=class extends me{constructor(e,t){super(35,t);this.label=e}},cs=class extends it{constructor(e,t,n,s,a,l,o,u){super(55,e,t,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null;this.declaredAsStruct=!1;this.declaredAsManagedStruct=!1}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},to=class extends me{constructor(e,t){super(36,t);this.label=e}},ro=class extends me{constructor(e,t,n){super(37,n);this.body=e;this.condition=t}},io=class extends me{constructor(r){super(38,r)}},no=class extends it{constructor(e,t,n,s,a,l){super(56,e,t,n,l);this.values=s;this.underlyingTypeNode=a}},so=class extends $i{constructor(r,e,t,n){super(57,r,null,e,null,t,n)}},ao=class extends me{constructor(e,t,n){super(41,n);this.name=e;this.externalName=t}},lo=class extends h{constructor(e,t,n){super(67,n);this.localName=e;this.exportedName=t}},oo=class extends me{constructor(e,t,n,s){super(39,s);this.members=e;this.path=t;this.isDeclare=n;if(t){let a=Qr(t.value);t.value.startsWith(".")?a=pl(a,s.source.internalPath):a.startsWith(Ft)||(a=Ft+a),this.internalPath=a}else this.internalPath=null}},uo=class extends me{constructor(e,t){super(40,t);this.declaration=e}},co=class extends me{constructor(e){super(42,e.range);this.expression=e}},po=class extends $i{constructor(e,t,n,s,a,l,o){super(58,e,t,n,s,a,o);this.parameterIndex=l}},fo=class extends me{constructor(e,t,n,s,a){super(43,a);this.initializer=e;this.condition=t;this.incrementor=n;this.body=s}},_o=class extends me{constructor(e,t,n,s){super(44,s);this.variable=e;this.iterable=t;this.body=n}},Xt=(t=>(t[t.None=0]="None",t[t.Parenthesized=1]="Parenthesized",t[t.Single=2]="Single",t))(Xt||{}),ps=class i extends it{constructor(e,t,n,s,a,l,o,u,c=!1){super(59,e,t,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o;this.isAsync=c}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new i(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range,this.isAsync)}},ho=class extends me{constructor(e,t,n,s){super(45,s);this.condition=e;this.ifTrue=t;this.ifFalse=n}},mo=class extends it{constructor(e,t,n){super(60,e,null,0,n);this.foreignName=t}},fs=class extends me{constructor(e,t,n,s){super(46,s);this.declarations=e;this.namespaceName=t;this.path=n;let a=Qr(n.value);n.value.startsWith(".")?a=pl(a,s.source.internalPath):a.startsWith(Ft)||(a=Ft+a),this.internalPath=ds(a)}},yo=class extends cs{constructor(r,e,t,n,s,a,l,o){super(r,e,t,n,s,a,l,o),this.kind=61}},Jr=class extends ps{constructor(r,e,t,n,s,a,l,o=!1){super(r,e,t,n,s,a,0,l,o),this.kind=62}},go=class extends it{constructor(e,t,n,s,a){super(63,e,t,n,a);this.members=s}},bo=class extends me{constructor(e,t){super(47,t);this.value=e}},xo=class extends h{constructor(e,t,n){super(68,n);this.label=e;this.statements=t}get isDefault(){return this.label==null}},Eo=class extends me{constructor(e,t,n){super(48,n);this.condition=e;this.cases=t}},Ao=class extends me{constructor(e,t){super(49,t);this.value=e}},To=class extends me{constructor(e,t,n,s,a){super(50,a);this.bodyStatements=e;this.catchVariable=t;this.catchStatements=n;this.finallyStatements=s}},So=class extends me{constructor(e,t,n){super(54,n);this.moduleName=e;this.flags=t}},vo=class extends it{constructor(e,t,n,s,a,l){super(64,e,t,n,l);this.typeParameters=s;this.type=a}},Io=class extends $i{constructor(r,e,t,n,s,a){super(65,r,e,t,n,s,a)}},ko=class extends me{constructor(e,t,n){super(51,n);this.decorators=e;this.declarations=t}},Fo=class extends me{constructor(e,t){super(52,t);this.expression=e}},wo=class extends me{constructor(e,t,n){super(53,n);this.condition=e;this.body=t}};function Zt(i,r){if(r)for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.decoratorKind==i)return n}return null}function ds(i){return i.endsWith("/")?i+="index":i.endsWith(".ts")&&(i=i.substring(0,i.length-3)),i}function De(i){if(i.kind==1){let r=i.name;return!(r.next||r.identifier.text.length>0)}return!1}var B;(k=>{k.None=0,k.Unreachable=1,k.I32=2,k.I64=3,k.F32=4,k.F64=5,k.V128=6;function l(){return Z_()}k.funcref=l,k.Externref=$_(),k.Anyref=Y_(),k.Eqref=J_(),k.Structref=td(),k.Arrayref=rd(),k.I31ref=ed(),k.Stringref=id(),k.Noneref=nd(),k.Nofuncref=ad(),k.Noexternref=sd()})(B||={});var Ie;(E=>{E.Extern=8,E.Func=16,E.Any=32,E.Eq=40,E.I31=48,E.Struct=56,E.Array=64,E.Exn=7,E.String=80,E.None=88,E.Noextern=96,E.Nofunc=104;function _(T){return ld(T)}E.isBottom=_;function d(T){return od(T)}E.getBottom=d;function g(T,k){return ud(T,k)}E.isSubtype=g;function y(T,k){if(T==k)return T;if(d(T)!=d(k))return-1;if(_(T))return k;if(_(k))return T;if(T>k){let F=T;T=k,k=F}switch(T){case E.Extern:return k==E.String?T:-1;case E.Func:return-1;case E.Any:return T;case E.Eq:return k==E.I31||k==E.Struct||k==E.Array?E.Eq:E.Any;case E.I31:return k==E.Struct||k==E.Array?E.Eq:E.Any;case E.Struct:return k==E.Array?E.Eq:E.Any;case E.Array:return E.Any}return assert(!1),-1}E.leastUpperBound=y})(Ie||={});var ms;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(ms||={});var Jp;(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})(Jp||={});var ef=(U=>(U[U.MVP=0]="MVP",U[U.Atomics=1]="Atomics",U[U.MutableGlobals=2]="MutableGlobals",U[U.TruncSat=4]="TruncSat",U[U.SIMD=8]="SIMD",U[U.BulkMemory=16]="BulkMemory",U[U.SignExt=32]="SignExt",U[U.ExceptionHandling=64]="ExceptionHandling",U[U.TailCall=128]="TailCall",U[U.ReferenceTypes=256]="ReferenceTypes",U[U.MultiValue=512]="MultiValue",U[U.GC=1024]="GC",U[U.Memory64=2048]="Memory64",U[U.RelaxedSIMD=4096]="RelaxedSIMD",U[U.ExtendedConst=8192]="ExtendedConst",U[U.Strings=16384]="Strings",U[U.MultiMemory=32768]="MultiMemory",U[U.StackSwitching=65536]="StackSwitching",U[U.SharedEverything=131072]="SharedEverything",U[U.FP16=262144]="FP16",U[U.BulkMemoryOpt=524288]="BulkMemoryOpt",U[U.CallIndirectOverlong=1048576]="CallIndirectOverlong",U[U.RelaxedAtomics=4194304]="RelaxedAtomics",U[U.CustomPageSizes=8388608]="CustomPageSizes",U[U.Multibyte=16777216]="Multibyte",U[U.WideArithmetic=33554432]="WideArithmetic",U[U.CompactImports=67108864]="CompactImports",U[U.All=134217727]="All",U))(ef||{}),ei=(L=>(L[L.Invalid=0]="Invalid",L[L.Block=1]="Block",L[L.If=2]="If",L[L.Loop=3]="Loop",L[L.Break=4]="Break",L[L.Switch=5]="Switch",L[L.Call=6]="Call",L[L.CallIndirect=7]="CallIndirect",L[L.LocalGet=8]="LocalGet",L[L.LocalSet=9]="LocalSet",L[L.GlobalGet=10]="GlobalGet",L[L.GlobalSet=11]="GlobalSet",L[L.Load=12]="Load",L[L.Store=13]="Store",L[L.Const=14]="Const",L[L.Unary=15]="Unary",L[L.Binary=16]="Binary",L[L.Select=17]="Select",L[L.Drop=18]="Drop",L[L.Return=19]="Return",L[L.MemorySize=20]="MemorySize",L[L.MemoryGrow=21]="MemoryGrow",L[L.Nop=22]="Nop",L[L.Unreachable=23]="Unreachable",L[L.AtomicRMW=24]="AtomicRMW",L[L.AtomicCmpxchg=25]="AtomicCmpxchg",L[L.AtomicWait=26]="AtomicWait",L[L.AtomicNotify=27]="AtomicNotify",L[L.AtomicFence=28]="AtomicFence",L[L.Pause=29]="Pause",L[L.SIMDExtract=30]="SIMDExtract",L[L.SIMDReplace=31]="SIMDReplace",L[L.SIMDShuffle=32]="SIMDShuffle",L[L.SIMDTernary=33]="SIMDTernary",L[L.SIMDShift=34]="SIMDShift",L[L.SIMDLoad=35]="SIMDLoad",L[L.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",L[L.MemoryInit=37]="MemoryInit",L[L.DataDrop=38]="DataDrop",L[L.MemoryCopy=39]="MemoryCopy",L[L.MemoryFill=40]="MemoryFill",L[L.Pop=41]="Pop",L[L.RefNull=42]="RefNull",L[L.RefIsNull=43]="RefIsNull",L[L.RefFunc=44]="RefFunc",L[L.RefEq=45]="RefEq",L[L.TableGet=46]="TableGet",L[L.TableSet=47]="TableSet",L[L.TableSize=48]="TableSize",L[L.TableGrow=49]="TableGrow",L[L.TableFill=50]="TableFill",L[L.TableCopy=51]="TableCopy",L[L.TableInit=52]="TableInit",L[L.ElemDrop=53]="ElemDrop",L[L.Try=54]="Try",L[L.TryTable=55]="TryTable",L[L.Throw=56]="Throw",L[L.Rethrow=57]="Rethrow",L[L.ThrowRef=58]="ThrowRef",L[L.TupleMake=59]="TupleMake",L[L.TupleExtract=60]="TupleExtract",L[L.RefI31=61]="RefI31",L[L.I31Get=62]="I31Get",L[L.CallRef=63]="CallRef",L[L.RefTest=64]="RefTest",L[L.RefCast=65]="RefCast",L[L.RefGetDesc=66]="RefGetDesc",L[L.BrOn=67]="BrOn",L[L.StructNew=68]="StructNew",L[L.StructGet=69]="StructGet",L[L.StructSet=70]="StructSet",L[L.StructRMW=71]="StructRMW",L[L.StructCmpxchg=72]="StructCmpxchg",L[L.ArrayNew=73]="ArrayNew",L[L.ArrayNewData=74]="ArrayNewData",L[L.ArrayNewElem=75]="ArrayNewElem",L[L.ArrayNewFixed=76]="ArrayNewFixed",L[L.ArrayGet=77]="ArrayGet",L[L.ArraySet=78]="ArraySet",L[L.ArrayLoad=79]="ArrayLoad",L[L.ArrayStore=80]="ArrayStore",L[L.ArrayLen=81]="ArrayLen",L[L.ArrayCopy=82]="ArrayCopy",L[L.ArrayFill=83]="ArrayFill",L[L.ArrayInitData=84]="ArrayInitData",L[L.ArrayInitElem=85]="ArrayInitElem",L[L.ArrayRMW=86]="ArrayRMW",L[L.ArrayCmpxchg=87]="ArrayCmpxchg",L[L.RefAs=88]="RefAs",L[L.StringNew=89]="StringNew",L[L.StringConst=90]="StringConst",L[L.StringMeasure=91]="StringMeasure",L[L.StringEncode=92]="StringEncode",L[L.StringConcat=93]="StringConcat",L[L.StringEq=94]="StringEq",L[L.StringTest=95]="StringTest",L[L.StringWTF16Get=96]="StringWTF16Get",L[L.StringSliceWTF=97]="StringSliceWTF",L[L.ContNew=98]="ContNew",L[L.ContBind=99]="ContBind",L[L.Suspend=100]="Suspend",L[L.Resume=101]="Resume",L[L.ResumeThrow=102]="ResumeThrow",L[L.StackSwitch=103]="StackSwitch",L[L.StructWait=104]="StructWait",L[L.StructNotify=105]="StructNotify",L[L.WideIntAddSub=106]="WideIntAddSub",L[L.WideIntMul=107]="WideIntMul",L))(ei||{}),tf=(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))(tf||{}),Ub=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Ub||{}),gs=(P=>(P[P.ClzI32=0]="ClzI32",P[P.ClzI64=1]="ClzI64",P[P.CtzI32=2]="CtzI32",P[P.CtzI64=3]="CtzI64",P[P.PopcntI32=4]="PopcntI32",P[P.PopcntI64=5]="PopcntI64",P[P.NegF32=6]="NegF32",P[P.NegF64=7]="NegF64",P[P.AbsF32=8]="AbsF32",P[P.AbsF64=9]="AbsF64",P[P.CeilF32=10]="CeilF32",P[P.CeilF64=11]="CeilF64",P[P.FloorF32=12]="FloorF32",P[P.FloorF64=13]="FloorF64",P[P.TruncF32=14]="TruncF32",P[P.TruncF64=15]="TruncF64",P[P.NearestF32=16]="NearestF32",P[P.NearestF64=17]="NearestF64",P[P.SqrtF32=18]="SqrtF32",P[P.SqrtF64=19]="SqrtF64",P[P.EqzI32=20]="EqzI32",P[P.EqzI64=21]="EqzI64",P[P.ExtendI32ToI64=22]="ExtendI32ToI64",P[P.ExtendU32ToU64=23]="ExtendU32ToU64",P[P.WrapI64ToI32=24]="WrapI64ToI32",P[P.TruncF32ToI32=25]="TruncF32ToI32",P[P.TruncF32ToI64=26]="TruncF32ToI64",P[P.TruncF32ToU32=27]="TruncF32ToU32",P[P.TruncF32ToU64=28]="TruncF32ToU64",P[P.TruncF64ToI32=29]="TruncF64ToI32",P[P.TruncF64ToI64=30]="TruncF64ToI64",P[P.TruncF64ToU32=31]="TruncF64ToU32",P[P.TruncF64ToU64=32]="TruncF64ToU64",P[P.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",P[P.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",P[P.ConvertI32ToF32=35]="ConvertI32ToF32",P[P.ConvertI32ToF64=36]="ConvertI32ToF64",P[P.ConvertU32ToF32=37]="ConvertU32ToF32",P[P.ConvertU32ToF64=38]="ConvertU32ToF64",P[P.ConvertI64ToF32=39]="ConvertI64ToF32",P[P.ConvertI64ToF64=40]="ConvertI64ToF64",P[P.ConvertU64ToF32=41]="ConvertU64ToF32",P[P.ConvertU64ToF64=42]="ConvertU64ToF64",P[P.PromoteF32ToF64=43]="PromoteF32ToF64",P[P.DemoteF64ToF32=44]="DemoteF64ToF32",P[P.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",P[P.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",P[P.Extend8I32=47]="Extend8I32",P[P.Extend16I32=48]="Extend16I32",P[P.Extend8I64=49]="Extend8I64",P[P.Extend16I64=50]="Extend16I64",P[P.Extend32I64=51]="Extend32I64",P[P.TruncSatF32ToI32=52]="TruncSatF32ToI32",P[P.TruncSatF32ToU32=53]="TruncSatF32ToU32",P[P.TruncSatF64ToI32=54]="TruncSatF64ToI32",P[P.TruncSatF64ToU32=55]="TruncSatF64ToU32",P[P.TruncSatF32ToI64=56]="TruncSatF32ToI64",P[P.TruncSatF32ToU64=57]="TruncSatF32ToU64",P[P.TruncSatF64ToI64=58]="TruncSatF64ToI64",P[P.TruncSatF64ToU64=59]="TruncSatF64ToU64",P[P.SplatI8x16=60]="SplatI8x16",P[P.SplatI16x8=61]="SplatI16x8",P[P.SplatI32x4=62]="SplatI32x4",P[P.SplatI64x2=63]="SplatI64x2",P[P.SplatF32x4=64]="SplatF32x4",P[P.SplatF64x2=65]="SplatF64x2",P[P.NotV128=66]="NotV128",P[P.AnyTrueV128=67]="AnyTrueV128",P[P.AbsI8x16=68]="AbsI8x16",P[P.NegI8x16=69]="NegI8x16",P[P.AllTrueI8x16=70]="AllTrueI8x16",P[P.BitmaskI8x16=71]="BitmaskI8x16",P[P.PopcntI8x16=72]="PopcntI8x16",P[P.AbsI16x8=73]="AbsI16x8",P[P.NegI16x8=74]="NegI16x8",P[P.AllTrueI16x8=75]="AllTrueI16x8",P[P.BitmaskI16x8=76]="BitmaskI16x8",P[P.AbsI32x4=77]="AbsI32x4",P[P.NegI32x4=78]="NegI32x4",P[P.AllTrueI32x4=79]="AllTrueI32x4",P[P.BitmaskI32x4=80]="BitmaskI32x4",P[P.AbsI64x2=81]="AbsI64x2",P[P.NegI64x2=82]="NegI64x2",P[P.AllTrueI64x2=83]="AllTrueI64x2",P[P.BitmaskI64x2=84]="BitmaskI64x2",P[P.AbsF32x4=92]="AbsF32x4",P[P.NegF32x4=93]="NegF32x4",P[P.SqrtF32x4=94]="SqrtF32x4",P[P.CeilF32x4=95]="CeilF32x4",P[P.FloorF32x4=96]="FloorF32x4",P[P.TruncF32x4=97]="TruncF32x4",P[P.NearestF32x4=98]="NearestF32x4",P[P.AbsF64x2=99]="AbsF64x2",P[P.NegF64x2=100]="NegF64x2",P[P.SqrtF64x2=101]="SqrtF64x2",P[P.CeilF64x2=102]="CeilF64x2",P[P.FloorF64x2=103]="FloorF64x2",P[P.TruncF64x2=104]="TruncF64x2",P[P.NearestF64x2=105]="NearestF64x2",P[P.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",P[P.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",P[P.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",P[P.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",P[P.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",P[P.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",P[P.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",P[P.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",P[P.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",P[P.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",P[P.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",P[P.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",P[P.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",P[P.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",P[P.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",P[P.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",P[P.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",P[P.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",P[P.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",P[P.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",P[P.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",P[P.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",P[P.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",P[P.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",P[P.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",P[P.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",P[P.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",P[P.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",P[P.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",P[P.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",P[P.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",P[P._last=141]="_last",P[P.ClzSize=142]="ClzSize",P[P.CtzSize=143]="CtzSize",P[P.PopcntSize=144]="PopcntSize",P[P.EqzSize=145]="EqzSize",P))(gs||{}),en=(v=>(v[v.AddI32=0]="AddI32",v[v.SubI32=1]="SubI32",v[v.MulI32=2]="MulI32",v[v.DivI32=3]="DivI32",v[v.DivU32=4]="DivU32",v[v.RemI32=5]="RemI32",v[v.RemU32=6]="RemU32",v[v.AndI32=7]="AndI32",v[v.OrI32=8]="OrI32",v[v.XorI32=9]="XorI32",v[v.ShlI32=10]="ShlI32",v[v.ShrI32=11]="ShrI32",v[v.ShrU32=12]="ShrU32",v[v.RotlI32=13]="RotlI32",v[v.RotrI32=14]="RotrI32",v[v.EqI32=15]="EqI32",v[v.NeI32=16]="NeI32",v[v.LtI32=17]="LtI32",v[v.LtU32=18]="LtU32",v[v.LeI32=19]="LeI32",v[v.LeU32=20]="LeU32",v[v.GtI32=21]="GtI32",v[v.GtU32=22]="GtU32",v[v.GeI32=23]="GeI32",v[v.GeU32=24]="GeU32",v[v.AddI64=25]="AddI64",v[v.SubI64=26]="SubI64",v[v.MulI64=27]="MulI64",v[v.DivI64=28]="DivI64",v[v.DivU64=29]="DivU64",v[v.RemI64=30]="RemI64",v[v.RemU64=31]="RemU64",v[v.AndI64=32]="AndI64",v[v.OrI64=33]="OrI64",v[v.XorI64=34]="XorI64",v[v.ShlI64=35]="ShlI64",v[v.ShrI64=36]="ShrI64",v[v.ShrU64=37]="ShrU64",v[v.RotlI64=38]="RotlI64",v[v.RotrI64=39]="RotrI64",v[v.EqI64=40]="EqI64",v[v.NeI64=41]="NeI64",v[v.LtI64=42]="LtI64",v[v.LtU64=43]="LtU64",v[v.LeI64=44]="LeI64",v[v.LeU64=45]="LeU64",v[v.GtI64=46]="GtI64",v[v.GtU64=47]="GtU64",v[v.GeI64=48]="GeI64",v[v.GeU64=49]="GeU64",v[v.AddF32=50]="AddF32",v[v.SubF32=51]="SubF32",v[v.MulF32=52]="MulF32",v[v.DivF32=53]="DivF32",v[v.CopysignF32=54]="CopysignF32",v[v.MinF32=55]="MinF32",v[v.MaxF32=56]="MaxF32",v[v.EqF32=57]="EqF32",v[v.NeF32=58]="NeF32",v[v.LtF32=59]="LtF32",v[v.LeF32=60]="LeF32",v[v.GtF32=61]="GtF32",v[v.GeF32=62]="GeF32",v[v.AddF64=63]="AddF64",v[v.SubF64=64]="SubF64",v[v.MulF64=65]="MulF64",v[v.DivF64=66]="DivF64",v[v.CopysignF64=67]="CopysignF64",v[v.MinF64=68]="MinF64",v[v.MaxF64=69]="MaxF64",v[v.EqF64=70]="EqF64",v[v.NeF64=71]="NeF64",v[v.LtF64=72]="LtF64",v[v.LeF64=73]="LeF64",v[v.GtF64=74]="GtF64",v[v.GeF64=75]="GeF64",v[v.EqI8x16=76]="EqI8x16",v[v.NeI8x16=77]="NeI8x16",v[v.LtI8x16=78]="LtI8x16",v[v.LtU8x16=79]="LtU8x16",v[v.GtI8x16=80]="GtI8x16",v[v.GtU8x16=81]="GtU8x16",v[v.LeI8x16=82]="LeI8x16",v[v.LeU8x16=83]="LeU8x16",v[v.GeI8x16=84]="GeI8x16",v[v.GeU8x16=85]="GeU8x16",v[v.EqI16x8=86]="EqI16x8",v[v.NeI16x8=87]="NeI16x8",v[v.LtI16x8=88]="LtI16x8",v[v.LtU16x8=89]="LtU16x8",v[v.GtI16x8=90]="GtI16x8",v[v.GtU16x8=91]="GtU16x8",v[v.LeI16x8=92]="LeI16x8",v[v.LeU16x8=93]="LeU16x8",v[v.GeI16x8=94]="GeI16x8",v[v.GeU16x8=95]="GeU16x8",v[v.EqI32x4=96]="EqI32x4",v[v.NeI32x4=97]="NeI32x4",v[v.LtI32x4=98]="LtI32x4",v[v.LtU32x4=99]="LtU32x4",v[v.GtI32x4=100]="GtI32x4",v[v.GtU32x4=101]="GtU32x4",v[v.LeI32x4=102]="LeI32x4",v[v.LeU32x4=103]="LeU32x4",v[v.GeI32x4=104]="GeI32x4",v[v.GeU32x4=105]="GeU32x4",v[v.EqI64x2=106]="EqI64x2",v[v.NeI64x2=107]="NeI64x2",v[v.LtI64x2=108]="LtI64x2",v[v.GtI64x2=109]="GtI64x2",v[v.LeI64x2=110]="LeI64x2",v[v.GeI64x2=111]="GeI64x2",v[v.EqF32x4=118]="EqF32x4",v[v.NeF32x4=119]="NeF32x4",v[v.LtF32x4=120]="LtF32x4",v[v.GtF32x4=121]="GtF32x4",v[v.LeF32x4=122]="LeF32x4",v[v.GeF32x4=123]="GeF32x4",v[v.EqF64x2=124]="EqF64x2",v[v.NeF64x2=125]="NeF64x2",v[v.LtF64x2=126]="LtF64x2",v[v.GtF64x2=127]="GtF64x2",v[v.LeF64x2=128]="LeF64x2",v[v.GeF64x2=129]="GeF64x2",v[v.AndV128=130]="AndV128",v[v.OrV128=131]="OrV128",v[v.XorV128=132]="XorV128",v[v.AndnotV128=133]="AndnotV128",v[v.AddI8x16=134]="AddI8x16",v[v.AddSatI8x16=135]="AddSatI8x16",v[v.AddSatU8x16=136]="AddSatU8x16",v[v.SubI8x16=137]="SubI8x16",v[v.SubSatI8x16=138]="SubSatI8x16",v[v.SubSatU8x16=139]="SubSatU8x16",v[v.MinI8x16=140]="MinI8x16",v[v.MinU8x16=141]="MinU8x16",v[v.MaxI8x16=142]="MaxI8x16",v[v.MaxU8x16=143]="MaxU8x16",v[v.AvgrU8x16=144]="AvgrU8x16",v[v.AddI16x8=145]="AddI16x8",v[v.AddSatI16x8=146]="AddSatI16x8",v[v.AddSatU16x8=147]="AddSatU16x8",v[v.SubI16x8=148]="SubI16x8",v[v.SubSatI16x8=149]="SubSatI16x8",v[v.SubSatU16x8=150]="SubSatU16x8",v[v.MulI16x8=151]="MulI16x8",v[v.MinI16x8=152]="MinI16x8",v[v.MinU16x8=153]="MinU16x8",v[v.MaxI16x8=154]="MaxI16x8",v[v.MaxU16x8=155]="MaxU16x8",v[v.AvgrU16x8=156]="AvgrU16x8",v[v.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",v[v.ExtmulLowI16x8=158]="ExtmulLowI16x8",v[v.ExtmulHighI16x8=159]="ExtmulHighI16x8",v[v.ExtmulLowU16x8=160]="ExtmulLowU16x8",v[v.ExtmulHighU16x8=161]="ExtmulHighU16x8",v[v.AddI32x4=162]="AddI32x4",v[v.SubI32x4=163]="SubI32x4",v[v.MulI32x4=164]="MulI32x4",v[v.MinI32x4=165]="MinI32x4",v[v.MinU32x4=166]="MinU32x4",v[v.MaxI32x4=167]="MaxI32x4",v[v.MaxU32x4=168]="MaxU32x4",v[v.DotI16x8=169]="DotI16x8",v[v.ExtmulLowI32x4=170]="ExtmulLowI32x4",v[v.ExtmulHighI32x4=171]="ExtmulHighI32x4",v[v.ExtmulLowU32x4=172]="ExtmulLowU32x4",v[v.ExtmulHighU32x4=173]="ExtmulHighU32x4",v[v.AddI64x2=174]="AddI64x2",v[v.SubI64x2=175]="SubI64x2",v[v.MulI64x2=176]="MulI64x2",v[v.ExtmulLowI64x2=177]="ExtmulLowI64x2",v[v.ExtmulHighI64x2=178]="ExtmulHighI64x2",v[v.ExtmulLowU64x2=179]="ExtmulLowU64x2",v[v.ExtmulHighU64x2=180]="ExtmulHighU64x2",v[v.AddF32x4=189]="AddF32x4",v[v.SubF32x4=190]="SubF32x4",v[v.MulF32x4=191]="MulF32x4",v[v.DivF32x4=192]="DivF32x4",v[v.MinF32x4=193]="MinF32x4",v[v.MaxF32x4=194]="MaxF32x4",v[v.PminF32x4=195]="PminF32x4",v[v.PmaxF32x4=196]="PmaxF32x4",v[v.AddF64x2=197]="AddF64x2",v[v.SubF64x2=198]="SubF64x2",v[v.MulF64x2=199]="MulF64x2",v[v.DivF64x2=200]="DivF64x2",v[v.MinF64x2=201]="MinF64x2",v[v.MaxF64x2=202]="MaxF64x2",v[v.PminF64x2=203]="PminF64x2",v[v.PmaxF64x2=204]="PmaxF64x2",v[v.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",v[v.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",v[v.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",v[v.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",v[v.SwizzleI8x16=209]="SwizzleI8x16",v[v.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",v[v.RelaxedMinF32x4=211]="RelaxedMinF32x4",v[v.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",v[v.RelaxedMinF64x2=213]="RelaxedMinF64x2",v[v.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",v[v.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",v[v.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",v[v._last=216]="_last",v[v.AddSize=217]="AddSize",v[v.SubSize=218]="SubSize",v[v.MulSize=219]="MulSize",v[v.DivISize=220]="DivISize",v[v.DivUSize=221]="DivUSize",v[v.RemISize=222]="RemISize",v[v.RemUSize=223]="RemUSize",v[v.AndSize=224]="AndSize",v[v.OrSize=225]="OrSize",v[v.XorSize=226]="XorSize",v[v.ShlSize=227]="ShlSize",v[v.ShrISize=228]="ShrISize",v[v.ShrUSize=229]="ShrUSize",v[v.RotlSize=230]="RotlSize",v[v.RotrSize=231]="RotrSize",v[v.EqSize=232]="EqSize",v[v.NeSize=233]="NeSize",v[v.LtISize=234]="LtISize",v[v.LtUSize=235]="LtUSize",v[v.LeISize=236]="LeISize",v[v.LeUSize=237]="LeUSize",v[v.GtISize=238]="GtISize",v[v.GtUSize=239]="GtUSize",v[v.GeISize=240]="GeISize",v[v.GeUSize=241]="GeUSize",v))(en||{}),rf=(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))(rf||{}),nf=(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))(nf||{}),sf=(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))(sf||{}),af=(_=>(_[_.ShlI8x16=0]="ShlI8x16",_[_.ShrI8x16=1]="ShrI8x16",_[_.ShrU8x16=2]="ShrU8x16",_[_.ShlI16x8=3]="ShlI16x8",_[_.ShrI16x8=4]="ShrI16x8",_[_.ShrU16x8=5]="ShrU16x8",_[_.ShlI32x4=6]="ShlI32x4",_[_.ShrI32x4=7]="ShrI32x4",_[_.ShrU32x4=8]="ShrU32x4",_[_.ShlI64x2=9]="ShlI64x2",_[_.ShrI64x2=10]="ShrI64x2",_[_.ShrU64x2=11]="ShrU64x2",_))(af||{}),lf=(_=>(_[_.Load8Splat=0]="Load8Splat",_[_.Load16Splat=1]="Load16Splat",_[_.Load32Splat=2]="Load32Splat",_[_.Load64Splat=3]="Load64Splat",_[_.Load8x8S=4]="Load8x8S",_[_.Load8x8U=5]="Load8x8U",_[_.Load16x4S=6]="Load16x4S",_[_.Load16x4U=7]="Load16x4U",_[_.Load32x2S=8]="Load32x2S",_[_.Load32x2U=9]="Load32x2U",_[_.Load32Zero=10]="Load32Zero",_[_.Load64Zero=11]="Load64Zero",_))(lf||{}),of=(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))(of||{}),uf=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(uf||{}),Vb=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(Vb||{}),Ob=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Ob||{}),qb=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(qb||{}),Wb=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(Wb||{}),Kb=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(Kb||{}),Hb=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Hb||{}),jb=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(jb||{}),Qb=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(Qb||{}),Bo=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Bo||{}),Ji=class{constructor(r,e){this.buffer=r;this.offset=e}},Yt=class i{constructor(r,e,t){this.ref=r;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==B.I32||t==B.I64),this.lit=kt(Mu())}static create(r,e){return new i(pd(),r,e)}static createFrom(r,e,t){let n=hs(r),s=new i(Tg(n,r.length),e,t);return ne(changetype(n)),s}i32(r){let e=this.lit;return _d(e,r),Pi(this.ref,e)}i64(r,e=0){let t=this.lit;return Tb(t,i64_new(r,e)),Pi(this.ref,t)}usize(r){return i64_is(r)?this.sizeType==B.I64?this.i64(i64_low(r),i64_high(r)):(assert(i64_is_u32(r)),this.i32(i64_low(r))):this.sizeType==B.I64?this.i64(i32(r)):this.i32(i32(r))}f32(r){let e=this.lit;return dd(e,r),Pi(this.ref,e)}f64(r){let e=this.lit;return hd(e,r),Pi(this.ref,e)}v128(r){assert(r.length==16);let e=this.lit;for(let t=0;t<16;++t)qe(e+t,unchecked(r[t]));return md(e,e),Pi(this.ref,e)}ref_null(r){return bm(this.ref,r)}ref_eq(r,e){return vm(this.ref,r,e)}string_eq(r,e){return yp(this.ref,0,r,e)}string_compare(r,e){return yp(this.ref,1,r,e)}unary(r,e){if(r>141){let t=this.sizeType==B.I64;switch(r){case 142:r=t?1:0;break;case 143:r=t?3:2;break;case 144:r=t?5:4;break;case 145:r=t?21:20;break;default:assert(!1)}}return ch(this.ref,r,e)}binary(r,e,t){if(r>216){let n=this.sizeType==B.I64;switch(r){case 217:r=n?25:0;break;case 218:r=n?26:1;break;case 219:r=n?27:2;break;case 220:r=n?28:3;break;case 221:r=n?29:4;break;case 222:r=n?30:5;break;case 223:r=n?31:6;break;case 224:r=n?32:7;break;case 225:r=n?33:8;break;case 226:r=n?34:9;break;case 227:r=n?35:10;break;case 228:r=n?36:11;break;case 229:r=n?37:12;break;case 230:r=n?38:13;break;case 231:r=n?39:14;break;case 232:r=n?40:15;break;case 233:r=n?41:16;break;case 234:r=n?42:17;break;case 235:r=n?43:18;break;case 236:r=n?44:19;break;case 237:r=n?45:20;break;case 238:r=n?46:21;break;case 239:r=n?47:22;break;case 240:r=n?48:23;break;case 241:r=n?49:24;break;default:assert(!1)}}return hh(this.ref,r,e,t)}wide_int_add_sub(r,e,t,n,s){return _h(this.ref,r,e,t,n,s)}wide_int_mul(r,e,t){return dh(this.ref,r,e,t)}memory_size(r=N.DefaultMemory,e=!1){let t=this.allocStringCached(r);return Qd(this.ref,t,e)}memory_grow(r,e=N.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Xd(this.ref,r,n,t)}table_size(r){let e=this.allocStringCached(r);return Rm(this.ref,e)}table_grow(r,e,t=0){let n=this.allocStringCached(r);return Cm(this.ref,n,t,e)}local_get(r,e){return Vd(this.ref,r,e)}tostack(r){if(this.useShadowStack){let e=_r(r);return assert(e==B.I32||e==B.Unreachable),this.call(m.tostack,[r],e)}return r}local_tee(r,e,t,n=-1){return n==-1&&(n=_r(e)),t&&this.useShadowStack&&(e=this.tostack(e)),qd(this.ref,r,e,n)}global_get(r,e){let t=this.allocStringCached(r);return Wd(this.ref,t,e)}table_get(r,e,t){let n=this.allocStringCached(r);return Fm(this.ref,n,e,t)}load(r,e,t,n,s=0,a=r,l=N.DefaultMemory){let o=this.allocStringCached(l);return $d(this.ref,r,e,s,a,n,t,o)}store(r,e,t,n,s=0,a=r,l=N.DefaultMemory){let o=this.allocStringCached(l);return ih(this.ref,r,s,a,e,t,n,o)}atomic_load(r,e,t,n=0,s=N.DefaultMemory,a=1){let l=this.allocStringCached(s);return rh(this.ref,r,n,t,e,l,a)}atomic_store(r,e,t,n,s=0,a=N.DefaultMemory,l=1){let o=this.allocStringCached(a);return sh(this.ref,r,s,e,t,n,o,l)}atomic_rmw(r,e,t,n,s,a,l=N.DefaultMemory,o=1){let u=this.allocStringCached(l);return kh(this.ref,r,e,t,n,s,a,u,o)}atomic_cmpxchg(r,e,t,n,s,a,l=N.DefaultMemory,o=1){let u=this.allocStringCached(l);return Rh(this.ref,r,e,t,n,s,a,u,o)}atomic_wait(r,e,t,n,s=N.DefaultMemory){let a=this.allocStringCached(s);return Nh(this.ref,r,e,t,n,a)}atomic_notify(r,e,t=N.DefaultMemory){let n=this.allocStringCached(t);return Dh(this.ref,r,e,n)}atomic_fence(r=null){let e=this.allocStringCached(r);return Vh(this.ref,e)}local_set(r,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),Od(this.ref,r,e)}global_set(r,e){let t=this.allocStringCached(r);return Kd(this.ref,t,e)}table_set(r,e,t){let n=this.allocStringCached(r);return wm(this.ref,n,e,t)}block(r,e,t=B.None){let n=this.allocStringCached(r),s=Ee(e),a=bd(this.ref,n,s,e.length,t);return ne(s),a}flatten(r,e=B.None){let t=r.length;if(t==0)return this.nop();if(t==1){let n=r[0];switch(re(n)){case 19:case 56:case 23:return n}let s=ce(n);return s!=B.Unreachable&&s!=e?this.unreachable():n}return this.block(null,r,e)}br(r,e=0,t=0){let n=this.allocStringCached(r);return kd(this.ref,n,e,t)}drop(r){return Ou(this.ref,r)}maybeDrop(r){let e=_r(r);return e!=B.None&&e!=B.Unreachable?Ou(this.ref,r):r}maybeDropCondition(r,e){return(ks(r,this.ref)&-21)!=0?this.block(null,[this.drop(r),e],ce(e)):e}loop(r,e){let t=this.allocStringCached(r);return vd(this.ref,t,e)}if(r,e,t=0){return Ed(this.ref,r,e,t)}nop(){return vh(this.ref)}return(r=0){return Sh(this.ref,r)}select(r,e,t){return bh(this.ref,t,r,e)}switch(r,e,t,n=0){let s=r.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(r[c]));let l=Ee(a),o=this.allocStringCached(e),u=Rd(this.ref,l,s,o,t,n);return ne(l),u}call(r,e,t,n=!1){let s=this.allocStringCached(r),a=Ee(e),l=n?zd(this.ref,s,a,e?e.length:0,t):Md(this.ref,s,a,e?e.length:0,t);return ne(a),l}return_call(r,e,t){return this.call(r,e,t,!0)}call_indirect(r,e,t,n,s,a=!1){let l=this.allocStringCached(r??N.DefaultTable),o=Ee(t),u=a?Ud(this.ref,l,e,o,t?t.length:0,n,s):Dd(this.ref,l,e,o,t?t.length:0,n,s);return ne(o),u}return_call_indirect(r,e,t,n,s){return this.call_indirect(r,e,t,n,s,!0)}unreachable(){return Ih(this.ref)}memory_copy(r,e,t,n=N.DefaultMemory,s=N.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return pm(this.ref,r,e,t,a,l)}memory_fill(r,e,t,n=N.DefaultMemory){let s=this.allocStringCached(n);return hm(this.ref,r,e,t,s)}try(r,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=Ee(l),u=Ee(n),c=this.allocStringCached(r),f=this.allocStringCached(s),_=Pm(this.ref,c,e,o,a,u,n.length,f);return ne(u),ne(o),_}throw(r,e){let t=this.allocStringCached(r),n=Ee(e),s=Lm(this.ref,t,n,e.length);return ne(n),s}rethrow(r){let e=this.allocStringCached(r);return Dm(this.ref,e)}pop(r){return qm(this.ref,r)}tuple_make(r){let e=Ee(r),t=Gm(this.ref,e,r.length);return ne(e),t}tuple_extract(r,e){return Vm(this.ref,r,e)}simd_extract(r,e,t){return Oh(this.ref,r,e,t)}simd_replace(r,e,t,n){return Wh(this.ref,r,e,t,n)}simd_shuffle(r,e,t){assert(t.length==16);let n=hs(t),s=jh(this.ref,r,e,n);return ne(n),s}simd_ternary(r,e,t,n){return Zh(this.ref,r,e,t,n)}simd_shift(r,e,t){return em(this.ref,r,e,t)}simd_load(r,e,t,n,s=N.DefaultMemory){let a=this.allocStringCached(s);return im(this.ref,r,t,n,e,a)}simd_loadstorelane(r,e,t,n,s,a,l=N.DefaultMemory){let o=this.allocStringCached(l);return sm(this.ref,r,t,n,s,e,a,o)}ref_is_null(r){return xm(this.ref,r)}ref_as(r,e){return Ac(this.ref,r,e)}ref_as_nonnull(r){return Xb(ce(r))?Ac(this.ref,0,r):r}ref_func(r,e){let t=this.allocStringCached(r);return Tm(this.ref,t,fr(e))}i31_new(r){return Wm(this.ref,r)}i31_get(r,e){return Hm(this.ref,r,e)}addGlobal(r,e,t,n){let s=this.allocStringCached(r);return Jy(this.ref,s,e,t,n)}getGlobal(r){let e=this.allocStringCached(r);return Ip(this.ref,e)}removeGlobal(r){let e=this.allocStringCached(r);return Ip(this.ref,e)?(eg(this.ref,e),!0):!1}addTag(r,e,t){let n=this.allocStringCached(r);return ag(this.ref,n,e,t)}getTag(r){let e=this.allocStringCached(r);return lg(this.ref,e)}removeTag(r){let e=this.allocStringCached(r);og(this.ref,e)}addFunction(r,e,t,n,s){let a=this.allocStringCached(r),l=Ee(n),o=Bi(this.ref,a,e,t,l,n?n.length:0,s);return ne(l),o}setLocalName(r,e,t){Dy(r,e,this.allocStringCached(t))}getFunction(r){let e=this.allocStringCached(r);return Ni(this.ref,e)}removeFunction(r){let e=this.allocStringCached(r);$n(this.ref,e)}hasFunction(r){let e=this.allocStringCached(r);return Ni(this.ref,e)!=0}addTemporaryFunction(r,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=Ee(e),a=Bi(this.ref,n,ft(e),r,0,0,t);return ne(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let r=this.allocStringCached("");$n(this.ref,r)}setStart(r){mg(this.ref,r)}addFunctionExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return ja(this.ref,t,n)}addTableExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Hy(this.ref,t,n)}addMemoryExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return jy(this.ref,t,n)}addGlobalExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Qy(this.ref,t,n)}addTagExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Xy(this.ref,t,n)}removeExport(r){let e=this.allocStringCached(r);Xa(this.ref,e)}hasExport(r){let e=this.allocStringCached(r);return Qa(this.ref,e)!=0}addFunctionImport(r,e,t,n,s){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Vy(this.ref,a,l,o,n,s)}addTableImport(r,e,t){let n=this.allocStringCached(r),s=this.allocStringCached(e),a=this.allocStringCached(t);Oy(this.ref,n,s,a)}addMemoryImport(r,e,t,n=!1){let s=this.allocStringCached(r),a=this.allocStringCached(e),l=this.allocStringCached(t);qy(this.ref,s,a,l,n)}addGlobalImport(r,e,t,n,s=!1){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Wy(this.ref,a,l,o,n,s)}addTagImport(r,e,t,n,s){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Ky(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(r,e,t,n,s=null,a=N.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=t.length,f=new Array(c),_=new Uint8Array(c),d=new Array(c),g=new Array(c);for(let F=0;F<c;++F){let w=unchecked(t[F]),R=w.buffer,C=w.offset;unchecked(f[F]=hs(R)),unchecked(_[F]=0),unchecked(d[F]=n==2?this.i64(i64_low(C),i64_high(C)):this.i32(i64_low(C))),unchecked(g[F]=R.length)}let y=Ee(f),E=hs(_),T=Ee(d),k=Yp(g);hg(this.ref,r,e,o,0,y,E,T,k,c,l,!1,u),ne(k),ne(T),ne(E),ne(y);for(let F=c-1;F>=0;--F)ne(unchecked(f[F]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(r,e,t,n,s){let a=this.allocStringCached(r),l=n.length,o=new Array(l);for(let f=0;f<l;++f)unchecked(o[f]=this.allocStringCached(n[f]));let u=Ee(o),c=Fp(this.ref,a);c?(fg(c,e),_g(c,t)):c=kp(this.ref,a,e,t,B.funcref()),dg(this.ref,a,a,u,l,s),ne(u)}ensureFunctionTable(r){let e=this.allocStringCached(r);Fp(this.ref,e)||kp(this.ref,e,0,i.UNLIMITED_TABLE,B.funcref())}addCustomSection(r,e){let t=this.allocStringCached(r),n=hs(e);wg(this.ref,t,n,e.length),ne(n)}getOptimizeLevel(){return Hg()}setOptimizeLevel(r){jg(r)}getShrinkLevel(){return Qg()}setShrinkLevel(r){Xg(r)}getDebugInfo(){return Zg()}setDebugInfo(r){$g(r)}getTrapsNeverHappen(){return Yg()}setTrapsNeverHappen(r){Jg(r)}getClosedWorld(){return eb()}setClosedWorld(r){tb(r)}getLowMemoryUnused(){return rb()}setLowMemoryUnused(r){ib(r)}getZeroFilledMemory(){return nb()}setZeroFilledMemory(r){sb(r)}getFastMath(){return ab()}setFastMath(r){lb(r)}getGenerateStackIR(){return ob()}setGenerateStackIR(r){ub(r)}getOptimizeStackIR(){return cb()}setOptimizeStackIR(r){pb(r)}getPassArgument(r){let e=this.allocStringCached(r),t=fb(e);return t?Ye(t):null}setPassArgument(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);_b(t,n)}clearPassArguments(){db()}getAlwaysInlineMaxSize(){return hb()}setAlwaysInlineMaxSize(r){mb(r)}getFlexibleInlineMaxSize(){return yb()}setFlexibleInlineMaxSize(r){gb(r)}getOneCallerInlineMaxSize(){return bb()}setOneCallerInlineMaxSize(r){xb(r)}getAllowInliningFunctionsWithLoops(){return Eb()}setAllowInliningFunctionsWithLoops(r){Ab(r)}setPartialInliningIfs(r){this.setPassArgument("partial-inlining-ifs",r.toString())}getFeatures(){return kg(this.ref)}setFeatures(r){r&16&&(r|=524288),Fg(this.ref,r)}runPasses(r,e=0){let t=r.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Ro(r[a]);let s=Ee(n);e?Gy(e,this.ref,s,t):gg(this.ref,s,t),ne(s);for(let a=t-1;a>=0;--a)ne(n[a])}optimize(r,e,t=!1,n=!1){(r>=3||e>=2)&&(r=4),this.clearPassArguments(),this.setOptimizeLevel(r),this.setShrinkLevel(e),this.setDebugInfo(t),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=r>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),r>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(r<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(r>=2?4:0),r>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),r>=2&&a.push("once-reduction"),(r>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(r>=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")),r>=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"),r>=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"),r>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):r>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(r>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(r>=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"),(r>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(r>=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"),r>=3&&a.push("optimize-instructions"),(r>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(r>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(r>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),r>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),r>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),r>=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"),(r>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(r>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),r>=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"),(r>=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"),(r>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return yg(this.ref)==1}interpret(){Sg(this.ref)}toBinary(r=null){assert(Mu()>=bg());let e=this.lit,t=Ro(r);xg(e,this.ref,t);let n=yr(e+0),s=yr(e+4),a=yr(e+8),l=new Po(LE(assert(n),s),Ye(a));return t&&ne(t),a&&ne(a),ne(n),l}toText(r=!0){let e=r?Ag(this.ref):Eg(this.ref),t=Ye(e);return e&&ne(e),t||""}allocStringCached(r){if(r==null)return 0;let e=this.cachedStringsToPointers;if(e.has(r))return changetype(e.get(r));let t=Ro(r);return e.set(r,t),t}readStringCached(r){if(r==0)return null;let e=this.cachedPointersToStrings;if(e.has(r))return changetype(e.get(r));let t=Ye(r);return e.set(r,t),t}dispose(){assert(this.ref);for(let r=Map_values(this.cachedStringsToPointers),e=0,t=r.length;e<t;++e){let n=unchecked(r[e]);ne(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ne(this.lit),fd(this.ref),this.ref=0}createRelooper(){return Co.create(this)}tryCopyTrivialExpression(r){return this.isTrivialExpression(r)?this.copyExpression(r):0}isTrivialExpression(r){switch(Wt(r)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(r){return yd(r,this.ref)}runExpression(r,e,t=50,n=1){let s=zg(this.ref,e,t,n),a=Dg(s,r);if(a){if(!this.isConstExpression(a))return 0;assert(ce(a)==ce(r))}return a}isConstExpression(r){switch(re(r)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(tn(r)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(st(r))&&this.isConstExpression(We(r))}break}}return!1}addDebugInfoFile(r){let e=Ro(r),t=vg(this.ref,e);return ne(e),t}getDebugInfoFile(r){return Ye(Ig(this.ref,r))}setDebugLocation(r,e,t,n,s){Uy(r,e,t,n,s)}};function ft(i){if(!i)return B.None;switch(i.length){case 0:return B.None;case 1:return i[0]}let r=Ee(i),e=H_(r,i.length);return ne(r),e}function cf(i){let r=j_(i),e=kt(r<<2);Q_(i,e);let t=new Array(r);for(let n=0;n<r;++n)unchecked(t[n]=yr(e+(n<<2)));return ne(e),t}function Xb(i){return X_(i)}function re(i){return Wt(i)}function ce(i){return _r(i)}function ae(i){return ah(i)}function Be(i){return i64_low(Pp(i))}function Ge(i){return i64_high(Pp(i))}function pf(i,r){let e=0,t=0;return r?(e=Be(i),t=Ge(i)):e=ae(i),i64_new(e,t)}function Ce(i){return lh(i)}function Pe(i){return oh(i)}function ff(i){let r=kt(16);uh(i,r);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Vr(r+t);return ne(r),e}function nt(i){if(re(i)!=14)return!1;let r=ce(i);return r==B.I32?ae(i)==0:r==B.I64?(Be(i)|Ge(i))==0:r==B.F32?Ce(i)==0:r==B.F64?Pe(i)==0:!1}function xt(i){if(re(i)!=14)return!1;let r=ce(i);return r==B.I32?ae(i)!=0:r==B.I64?(Be(i)|Ge(i))!=0:r==B.F32?Ce(i)!=0:r==B.F64?Pe(i)!=0:!1}function No(i){if(re(i)!=14)return!1;let r=ce(i);if(r==B.F32){let e=Ce(i);return e==0&&f32_as_i32(e)<0}if(r==B.F64){let e=Pe(i);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function oE(i){if(re(i)!=14)return!1;let r=ce(i);return r==B.F32?isNaN(Ce(i)):r==B.F64?isNaN(Pe(i)):!1}function Lo(i,r){let e=re(r),t=ce(r);if(t==B.F32||t==B.F64){if(e==14)return isNaN(t==B.F32?Ce(r):Pe(r));if(e==10){let n=i.runExpression(r,0,8);if(n)return isNaN(t==B.F32?Ce(n):Pe(n))}}return!1}function Ct(i){return Ma(i)}function Mo(i){return Ci(i)}function zo(i){return Dr(i)}function bs(i){return za(i)}function xs(i){return Ye(Ga(i))}function tn(i){return mh(i)}function st(i){return Kn(i)}function We(i){return Hn(i)}function Es(i){return ph(i)}function Do(i){return Wn(i)}function _f(i){return eh(i)}function uE(i){return Jd(i)}function cE(i){return On(i)}function df(i){return Yd(i)}function pE(i){return Ua(i)}function fE(i){return Va(i)}function _E(i){return Gr(i)}function dE(i){return qn(i)}function As(i){return Ye(Ca(i))}function Ts(i){return Pn(i)}function Ss(i,r){return Bn(i,r)}function Go(i){return Nn(i)}function vs(i){return Ln(i)}function rn(i){return Mn(i)}function hE(i){return Ye(Pa(i))}function mE(i){return zn(i)}function yE(i){return Ye(Ba(i))}function gE(i){return Dn(i)}function hf(i){return jn(i)}function mf(i){return Qn(i)}function bE(i){return Xn(i)}function xE(i){return Zn(i)}function EE(i){return Ur(i)}function Is(i){return Ye(Ri(i))}function Pt(i){return dr(i)}function Je(i,r){return hr(i,r)}function AE(i){return Vn(i)}function TE(i){return mr(i)}function yf(i){return Ye(Li(i))}function SE(i){return Yn(i)}function vE(i){return Jn(i)}function IE(i){let r=Wa(i),e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=Ka(i,t));return e}function kE(i){return Ye(ig(i))}function FE(i){return ng(i)}function gf(i){return sg(i)}function wE(i){return Za(i)}function RE(i){return Ye(ug(i))}function CE(i){return cg(i)}function PE(i){return pg(i)}var Co=class i{constructor(r,e){this.module=r;this.ref=e}static create(r){return new i(r,Cg(r.ref))}addBlock(r){return Pg(this.ref,r)}addBranch(r,e,t=0,n=0){Bg(r,e,t,n)}addBlockWithSwitch(r,e){return Ng(this.ref,r,e)}addBranchForSwitch(r,e,t,n=0){let s=BE(t);Lg(r,e,s,t.length,n),ne(s)}renderAndDispose(r,e){return Mg(this.ref,r,e)}},ys=class{constructor(r,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=r,this.condition=e}addOrReplaceCase(r,e){let t=this.values.indexOf(r),n=this.addCode(e);t>=0?this.indexes[t]=n:(this.values.push(r),this.indexes.push(n))}addCase(r,e){this.values.push(r),this.indexes.push(this.addCode(e))}addCode(r){let e=this.cases,t=e.indexOf(r);return t<0&&(t=e.length,e.push(r)),t}addDefault(r){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(r)}render(r,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),c=new Array(s);for(let y=0;y<s;++y)unchecked(c[y]=`case${y}${e}`);u[0]=t.local_set(r,this.condition,!1);for(let y=0;y<l;++y){let E=unchecked(o[y]);unchecked(u[1+y]=t.br(c[E],t.binary(15,t.local_get(r,B.I32),t.i32(a[y]))))}let f=this.defaultIndex,_=`default${e}`;u[1+l]=t.br(~f?c[f]:_);let d=t.block(c[0],u);for(let y=1;y<s;++y){let E=n[y-1];E.unshift(d),d=t.block(unchecked(c[y]),E)}let g=n[s-1];return g.unshift(d),t.block(~f?null:_,g)}},bf=(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))(bf||{});function ks(i,r){return Rg(i,r)}function Uo(i,r){return(ks(i,r)&-21)!=0}function hs(i){if(!i)return 0;let r=i.length,e=kt(r);for(let t=0;t<r;++t)qe(e+t,unchecked(i[t]));return e}function BE(i){if(!i)return 0;let r=i.length,e=kt(r<<2),t=e;for(let n=0;n<r;++n){let s=unchecked(i[n]);Ya(t,s),t+=4}return e}function Yp(i){if(!i)return 0;let r=i.length,e=kt(r<<2),t=e;for(let n=0;n<r;++n){let s=unchecked(i[n]);Ya(t,s),t+=4}return e}function Ee(i){if(!i)return 0;assert(ASC_TARGET!=2);let r=i.length,e=kt(r<<2),t=e;for(let n=0,s=r;n<s;++n){let a=unchecked(i[n]);Ya(t,a),t+=4}return e}function NE(i){let r=0;for(let e=0,t=i.length;e<t;++e){let n=i.charCodeAt(e)>>>0;n<=127?r+=1:n<=2047?r+=2:Ki(n)&&e+1<t&&ul(i.charCodeAt(e+1))?(e++,r+=4):r+=3}return r}function Ro(i){if(i==null)return 0;let r=NE(i),e=kt(r+1)>>>0,t=e;if(r==i.length)for(let n=0,s=i.length;n<s;++n){let a=i.charCodeAt(n)>>>0;qe(t++,a)}else for(let n=0,s=i.length;n<s;++n){let a=i.charCodeAt(n)>>>0,l;a<=127?qe(t++,a):a<=2047?(qe(t++,192|a>>>6),qe(t++,128|a&63)):Ki(a)&&n+1<s&&ul(l=i.charCodeAt(n+1))?(a=ns(a,l),++n,qe(t++,240|a>>>18),qe(t++,128|a>>>12&63),qe(t++,128|a>>>6&63),qe(t++,128|a&63)):(qe(t++,224|a>>>12),qe(t++,128|a>>>6&63),qe(t++,128|a&63))}return qe(t,0),e}function LE(i,r){let e=new Uint8Array(r);for(let t=0;t<r;++t)unchecked(e[t]=Vr(i+t));return e}function Ye(i){if(!i)return null;let r=new Array,e,t,n,s;for(;e=Vr(i++);){if(!(e&128)){r.push(e);continue}if(t=Vr(i++)&63,(e&224)==192){r.push((e&31)<<6|t);continue}if(n=Vr(i++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Vr(i++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)r.push(e);else{let a=e-65536;r.push(is|a>>>10),r.push(Wi|a&1023)}}return String.fromCharCodes(r)}var Po=class{constructor(r,e){this.output=r;this.sourceMap=e}},$t=!1;function Fs(i){if(i==p.void)return B.None;let r=Zb(i);if(r)return r;let e=i;if(i=i.nonNullableType,r=i.ref)return Ae(fr(r),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Gg(0),n=new Map;br(t,n,i);let s=$a(t),a=kt(max(4*s,8));if(!qg(t,a,a,a+4)){let l=yr(a),o=yr(a+4);throw ne(a),new Error(`type builder error at index ${l}: ${Jp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let f=yr(a+4*o),_=Ae(f,!1);assert(!c.ref),c.ref=_,$t&&console.log(` set ${c.toString()}`);let d=c.getClass();if(d){let g=d.program.module;Wg(g.ref,f,g.allocStringCached(d.internalName));let y=d.members;if(y){let E=cd(f),T=0;for(let k=Map_values(y),F=0,w=k.length;F<w;++F){let R=k[F];if(R.kind!=10)continue;let C=R.instance;!C||!C.isField||Kg(g.ref,f,T++,g.allocStringCached(C.name))}assert(E==T)}}}return ne(a),$t&&console.log(` finalize ${i.toString()}`),r=assert(i.ref),Ae(fr(r),e.is(512))}function Zb(i){switch(i.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return B.I32;case 4:case 9:return B.I64;case 5:case 10:{if(i.isInternalReference)break;return i.size==64?B.I64:B.I32}case 11:return B.F32;case 12:return B.F64;case 13:return B.V128;case 16:return Ae(Ie.Func,i.is(512));case 15:return Ae(Ie.Extern,i.is(512));case 17:return Ae(Ie.Any,i.is(512));case 18:return Ae(Ie.Eq,i.is(512));case 19:return Ae(Ie.Struct,i.is(512));case 20:return Ae(Ie.Array,i.is(512));case 21:return Ae(Ie.I31,i.is(512));case 22:return Ae(Ie.String,i.is(512));case 26:assert(!1)}return 0}function ME(i){switch(i.kind){case 0:case 1:case 6:return ms.I8;case 2:case 7:return ms.I16}return ms.NotPacked}function br(i,r,e){if(e==p.void)return B.None;let t=Zb(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(r.has(e))return $t&&console.log(` prepare ${e.toString()} (seen)`),changetype(r.get(e));$t&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=br(i,r,a.type));let o=$a(i);wp(i,1),$t&&console.log(` block [${o}]: ${e.toString()}`);let u=Rp(i,o);t=Mi(i,u,!1),r.set(e,t);let c=new Array,f=new Array,_=new Array,d=n.members;if(d)for(let T=Map_values(d),k=0,F=T.length;k<F;++k){let w=T[k];if(w.kind!=10)continue;let R=w.instance;if(!R||!R.isField)continue;let C=R.type;$t&&console.log(` field ${C.toString()}`),C.is(512)?c.push(Mi(i,fr(br(i,r,C.nonNullableType)),!0)):c.push(br(i,r,C)),f.push(ME(C)),_.push(1)}let g=Ee(c),y=Yp(f),E=Yp(_);return $t&&console.log(` concretize [${o}]: ${e.toString()}`),Vg(i,o,g,y,E,c.length),a&&($t&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),Og(i,o,fr(l))),ne(E),ne(y),ne(g),t}let s=e.getSignature();if(s){let a=$a(i);wp(i,1);let l=Mi(i,Rp(i,a),!1);r.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let g=0,y=c.length;g<y;++g){let E=c[g];E.is(512)?o.push(Mi(i,fr(br(i,r,E.nonNullableType)),!0)):o.push(br(i,r,E))}let f=s.returnType;u.push(f==p.void?B.None:f.is(512)?Mi(i,fr(br(i,r,f.nonNullableType)),!0):br(i,r,f));let _;if(o.length>1){let g=Ee(o);_=Cp(i,g,o.length),ne(g)}else _=o.length?o[0]:B.None;let d;if(u.length>1){let g=Ee(u);d=Cp(i,g,u.length),ne(g)}else d=u[0];return $t&&console.log(` concretize [${a}]: ${e.toString()}`),Ug(i,a,_,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Oo=(R=>(R[R.None=0]="None",R[R.Returns=1]="Returns",R[R.ReturnsWrapped=2]="ReturnsWrapped",R[R.ReturnsNonNull=4]="ReturnsNonNull",R[R.Throws=8]="Throws",R[R.Breaks=16]="Breaks",R[R.Continues=32]="Continues",R[R.AccessesThis=64]="AccessesThis",R[R.CallsSuper=128]="CallsSuper",R[R.Terminates=256]="Terminates",R[R.ConditionallyReturns=512]="ConditionallyReturns",R[R.ConditionallyThrows=1024]="ConditionallyThrows",R[R.ConditionallyBreaks=2048]="ConditionallyBreaks",R[R.ConditionallyContinues=4096]="ConditionallyContinues",R[R.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",R[R.MayReturnNonThis=16384]="MayReturnNonThis",R[R.UncheckedContext=32768]="UncheckedContext",R[R.CtorParamContext=65536]="CtorParamContext",R[R.InlineContext=131072]="InlineContext",R[R.AnyCategorical=511]="AnyCategorical",R[R.AnyConditional=15872]="AnyConditional",R))(Oo||{}),ws=(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))(ws||{}),xf=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(xf||{}),Ef=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(Ef||{}),Jt=class i{constructor(r,e=null){this.targetFunction=r;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}static createDefault(r){let e=new i(r);return r.is(524288)&&e.initThisFieldFlags(),r.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(r,e){let t=new i(r,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),r.program.options.uncheckedBehavior===2&&t.set(32768),t}get isInline(){return this.inlineFunction!=null}get sourceFunction(){let r=this.inlineFunction;return r||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}set(r){this.flags|=r}unset(r){this.flags&=~r}deriveConditionalFlags(){let r=this.flags&15872;return this.is(1)&&(r|=512),this.is(8)&&(r|=1024),this.is(16)&&(r|=2048),this.is(32)&&(r|=4096),this.is(64)&&(r|=8192),r}fork(r=!1,e=r){let t=new i(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,r?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=he(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(r,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(r)&&n.inherit(changetype(s.get(r))),n.inheritNonnullIfTrue(r),n}noteThen(r,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(r,e)}forkElse(r){let e=this.fork(),t=this.falseFlows;return t&&t.has(r)&&e.inherit(changetype(t.get(r))),e.inheritNonnullIfFalse(r),e}noteElse(r,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(r,e)}addScopedTypeAlias(r,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(r,e)}lookupScopedTypeAlias(r){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(r))return assert(t.get(r));e=e.parent}while(e);return null}lookupTypeAlias(r){let e=null;if(e=this.lookupScopedTypeAlias(r))return e;let t=this.sourceFunction.parent;return t.kind==5?t.flow.lookupTypeAlias(r):null}getTempLocal(r){let e=this.targetFunction.addLocal(r);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(r){let e=this.scopedLocals;return e&&e.has(r)?assert(e.get(r)):null}addScopedLocal(r,e){let t=this.getTempLocal(e);t.name=r,t.internalName=Ke(r,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(r)):this.scopedLocals=n=new Map,t.set(67108864),n.set(r,t),t}addScopedDummyLocal(r,e,t){let n=new ye(r,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(r)&&this.program.error(2451,t.range,r):this.scopedLocals=s=new Map,n.set(67108864),s.set(r,n),n}addScopedAlias(r,e,t,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(r)){let l=assert(s.get(r));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,r):this.program.errorRelated(2300,n.range,l.declaration.name.range,r)),l}assert(t<this.targetFunction.localsByIndex.length);let a=new ye(r,t,e,this.targetFunction);return a.set(67108864),s.set(r,a),a}freeScopedDummyLocal(r){let e=assert(this.scopedLocals);assert(e.has(r));let t=assert(e.get(r));assert(t.index==-1),e.delete(r)}lookupLocal(r){let e=this;do{let t=e.scopedLocals;if(t&&t.has(r))return assert(t.get(r));e=e.parent}while(e);return null}lookup(r){let e=this.lookupLocal(r);return e||this.sourceFunction.lookup(r)}isLocalFlag(r,e,t=!0){if(r<0)return t;let n=this.localFlags;return r<n.length&&(unchecked(n[r])&e)==e}isAnyLocalFlag(r,e,t=!0){if(r<0)return t;let n=this.localFlags;return r<n.length&&(unchecked(n[r])&e)!=0}setLocalFlag(r,e){if(r<0)return;let t=this.localFlags,n=r<t.length?unchecked(t[r]):0;t[r]=n|e}unsetLocalFlag(r,e){if(r<0)return;let t=this.localFlags,n=r<t.length?unchecked(t[r]):0;t[r]=n&~e}initThisFieldFlags(){let r=this.sourceFunction;assert(r.is(524288));let e=r.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(r,e){let t=this.thisFieldFlags;return t!=null&&t.has(r)?(changetype(t.get(r))&e)==e:!1}setThisFieldFlag(r,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(r)){let n=changetype(t.get(r));t.set(r,n|e)}else t.set(r,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let r=this.targetFunction,e=r.nextBreakId++,t=r.breakStack;return t?t.push(e):r.breakStack=[e],e}popControlFlowLabel(r){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.pop()==r)}inherit(r){assert(r.targetFunction==this.targetFunction);let e=r.flags;this.breakLabel!=r.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=r.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=r.localFlags,this.thisFieldFlags=r.thisFieldFlags}mergeSideEffects(r){assert(r.targetFunction==this.targetFunction);let e=this.flags,t=r.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:r.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:r.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(r){this.mergeSideEffects(r);let e=this.localFlags,t=e.length,n=r.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(r,e){assert(r.targetFunction==e.targetFunction),assert(r.targetFunction==this.targetFunction);let t=r.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,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=r.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=r.localFlags,u=o.length,c=e.localFlags,f=c.length,_=max(u,f);for(let d=0;d<_;++d){let g=d<u?o[d]:0,y=d<f?c[d]:0;a[d]=g&y&15}}let l=r.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),f=0,_=c.length;f<_;++f){let d=c[f];(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(r,e){let t=this.localFlags.length,n=r.localFlags.length,s=this.targetFunction;assert(s==r.targetFunction);let a=s.localsByIndex;assert(a==r.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(t,n);o<u;++o){let f=a[o].type;f.isShortIntegerValue&&this.isLocalFlag(o,2)&&!r.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),f.isNullableReference&&this.isLocalFlag(o,4)&&!r.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(r,e){if(!e.isNullableReference)return!0;switch(re(r)){case 9:{if(!bs(r))break;let t=this.targetFunction.localsByIndex[Mo(r)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Ct(r)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(r,e=null){switch(re(r)){case 9:{if(!bs(r))break;let t=this.targetFunction.localsByIndex[Mo(r)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(zo(r),e);break}case 8:{let t=this.targetFunction.localsByIndex[Ct(r)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=rn(r);t&&nt(t)&&(this.inheritNonnullIfTrue(Go(r),e),this.inheritNonnullIfTrue(vs(r),e));break}case 15:{switch(Es(r)){case 20:case 21:{this.inheritNonnullIfFalse(Do(r),e);break}}break}case 16:{switch(tn(r)){case 15:case 40:{let t=st(r),n=We(r);xt(t)?this.inheritNonnullIfTrue(n,e):xt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=st(r),n=We(r);nt(t)?this.inheritNonnullIfTrue(n,e):nt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Is(r);if(t==m.String_eq){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);xt(n)?this.inheritNonnullIfTrue(s,e):xt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==m.String_ne){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);nt(n)?this.inheritNonnullIfTrue(s,e):nt(s)&&this.inheritNonnullIfTrue(n,e)}else t==m.String_not?(assert(Pt(r)==1),this.inheritNonnullIfFalse(Je(r,0),e)):t==m.tostack&&(assert(Pt(r)==1),this.inheritNonnullIfTrue(Je(r,0),e));break}}}inheritNonnullIfFalse(r,e=null){switch(re(r)){case 15:{switch(Es(r)){case 20:case 21:{this.inheritNonnullIfTrue(Do(r),e);break}}break}case 2:{let t=vs(r);rn(r)&&xt(t)&&(this.inheritNonnullIfFalse(Go(r),e),this.inheritNonnullIfFalse(rn(r),e));break}case 16:{switch(tn(r)){case 15:case 40:{let t=st(r),n=We(r);nt(t)?this.inheritNonnullIfTrue(n,e):nt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=st(r),n=We(r);xt(t)?this.inheritNonnullIfTrue(n,e):xt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Is(r);if(t==m.String_eq){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);nt(n)?this.inheritNonnullIfTrue(s,e):nt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==m.String_ne){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);xt(n)?this.inheritNonnullIfTrue(s,e):xt(s)&&this.inheritNonnullIfTrue(n,e)}else t==m.String_not?(assert(Pt(r)==1),this.inheritNonnullIfTrue(Je(r,0),e)):t==m.tostack&&(assert(Pt(r)==1),this.inheritNonnullIfFalse(Je(r,0),e));break}}}canOverflow(r,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(r)){case 8:{let n=this.targetFunction.localsByIndex[Ct(r)];return!this.isLocalFlag(n.index,2,!0)||Vo(n.type,e)}case 9:return assert(bs(r)),this.canOverflow(zo(r),e);case 10:{let n=assert(this.program.elementsByName.get(assert(xs(r))));return assert(n.kind==0||n.kind==3),Vo(n.type,e)}case 16:{switch(tn(r)){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=st(r))==14&&(ae(t)==0||ae(t)==1&&!this.canOverflow(We(r),e))||re(t=We(r))==14&&(ae(t)==0||ae(t)==1&&!this.canOverflow(st(r),e)));case 7:return!(re(t=st(r))==14&&ae(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e)||re(t=We(r))==14&&ae(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=We(r))!=14||ae(t)<n}case 11:{let n=32-e.size;return this.canOverflow(st(r),e)&&(re(t=We(r))!=14||ae(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=We(r))==14&&ae(t)>n):this.canOverflow(st(r),e)&&!(re(t=We(r))==14&&ae(t)>=n)}case 4:case 5:case 6:return this.canOverflow(st(r),e)||this.canOverflow(We(r),e)}break}case 15:{switch(Es(r)){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(ce(r)){case B.I32:{n=ae(r);break}case B.I64:{n=Be(r);break}case B.F32:{n=i32(Ce(r));break}case B.F64:{n=i32(Pe(r));break}case B.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=df(r);switch(_f(r)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return Vo(n,e)}case 1:{if(!As(r)){let n=assert(Ts(r)),s=Ss(r,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(vs(r),e)||this.canOverflow(assert(rn(r)),e);case 17:return this.canOverflow(hf(r),e)||this.canOverflow(mf(r),e);case 6:{let s=this.program.instancesByName,a=assert(Is(r));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)||Vo(u,e)}return!1}case 23:return!1}return!0}toString(){let r=0,e=this.parent;for(;e;)e=e.parent,++r;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})[${r}] ${t.join(" ")}`}};function Vo(i,r){return r.isShortIntegerValue&&(!i.isIntegerValue||i.size>r.size||i.isSignedIntegerValue!=r.isSignedIntegerValue)}var jo=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(jo||{});function zE(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="align"}function DE(i){if(!i)return null;for(let r=0,e=i.length;r<e;++r){let t=i[r];if(zE(t))return t}return null}function GE(i){switch(i.kind){case 1:case 6:case 2:case 7:case 3:case 8:return!0;default:return!1}}var Rs=class extends tt{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.allowInlineView=!1;this.allowInlineViewParam=!1;this.viewCalls=null;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}markViewCall(e){let t=this.viewCalls;t==null&&(this.viewCalls=t=new Set),t.add(e)}isViewCall(e){let t=this.viewCalls;return t!=null&&t.has(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}case 4:{l=this.resolveFixedArrayType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l!=null&&e.memoryModel!=0&&(l=this.checkMemoryModelOverride(e,l,a)),l}checkMemoryModelOverride(e,t,n){let s=e.memoryModel,a=Wo(t);return a==0||s==a?t:s==2&&a==3?(n==0&&this.error(6394,e.range,t.toString()),null):(s==3||s==2)&&a==1?s==3&&(this.allowInlineView||this.allowInlineViewParam)?t:(n==0&&this.error(6395,e.range,t.toString(),UE(s)),null):t}resolveNamedType(e,t,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let _=l.identifier.text;if(s&&s.has(_)){let d=assert(s.get(_));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 c=this.resolveTypeName(l,t,n,a);if(!c)return null;let f=c.shadowType;if(f)c=f;else{if(c.kind==2){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let _=this.resolveEnumType(c,a);return e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/${_.toString()}`),_}if(c.kind==6||c.kind==8){let _=this.resolveClassInclTypeArguments(c,o,t,n,he(s),e,a);return _?e.isNullable?_.type.asNullable():_.type:null}}if(c.kind==14){let _=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let E=_.type;if(e.isNullable){if(E.isReference)return E.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return E}if(u){let E=l.identifier.text;if(er.has(E)){let T=assert(er.get(E)),k=new Qo(this,e,n,s,a);return T(k)}}let d=_.typeParameterNodes,g=null;if(d){if(g=this.resolveTypeArguments(d,o,t,n,s=he(s),e,a),!g)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let y=this.resolveType(_.typeNode,t,c,s,a);if(!y)return null;if(e.isNullable){if(y.isReference)return y.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return y}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveEnumType(e,t=0){if(e.underlyingTypeResolved)return e.type;let n=e.declaration.underlyingTypeNode;if(!n)return e.underlyingTypeResolved=!0,e.type;if(e.underlyingTypeResolving)return p.i32;e.underlyingTypeResolving=!0;let s=this.resolveType(n,null,e.parent,null,t);if(e.underlyingTypeResolving=!1,!s)return p.i32;if(!GE(s))return t==0&&this.error(6403,n.range,s.toString()),p.i32;e.refineType(s);let a=e.members;if(a)for(let l=Map_values(a),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]);c.kind==3&&c.refineType(s)}return e.underlyingTypeResolved=!0,s}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,c=u.length,f=new Array(c),_=0,d=!1,g=this.allowInlineViewParam;this.allowInlineViewParam=!0;for(let k=0;k<c;++k){let F=u[k];switch(F.parameterKind){case 0:{_=k+1;break}case 2:{assert(k==c-1),d=!0;break}}let w=F.type;if(De(w))return a==0&&this.error(1110,w.range),null;let R=this.resolveType(w,t,n,s,a);if(!R)return null;if(R==p.void)return a==0&&this.error(214,w.range,R.toString()),null;f[k]=R}this.allowInlineViewParam=g;let y=e.returnType,E;if(De(y))a==0&&this.error(1110,y.range),E=p.void;else if(E=this.resolveType(y,t,n,s,a),!E)return null;let T=de.create(this.program,f,E,o,_,d);return e.isNullable?T.type.asNullable():T.type}resolveFixedArrayType(e,t,n,s=null,a=0){let l=this.resolveType(e.elementType,t,n,s,a);return l?l.classReference!=null&&assert(l.classReference).hasDecorator(4096)?(a==0&&this.error(100,e.elementType.range,"an inline array (T[N]) of an @inline struct (elements by value are a later phase)"),null):l.isMemory?p.fixedArray(l,e.length):(a==0&&this.error(203,e.elementType.range,"a fixed-size array of",l.toString()),null):null}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,c=0;for(let g=0,y=e.length;g<y;++g)e[g].defaultType||++u,++c;let f=t?t.length:0;if(f<u||f>c)return o==0&&this.error(2558,f?ue.join(t[0].range,t[f-1].range):l.range,(f<u?u:c).toString(),f.toString()),null;let _=new Array(c),d=he(a);a.clear();for(let g=0;g<c;++g){let y=g<f?this.resolveType(t[g],n,s,d,o):this.resolveType(assert(e[g].defaultType),n,s,he(a),o);if(!y)return null;a.set(e[g].name.text,y),_[g]=y}return _}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a){if(!t.is(65536))return s==0&&this.error(2315,e.expression.range,t.internalName),null;let l=t.internalName==m.changetype;if(l&&a.length==1&&a[0].memoryModel==3){let u=this.viewCalls;u==null&&(this.viewCalls=u=new Set),u.add(e)}l&&(this.allowInlineView=!0);let o=this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,he(n.contextualTypeArguments),e,s);return l&&(this.allowInlineView=!1),o}if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,he(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=he(s.contextualTypeArguments),o=n.length,u=new Set;for(let E=0;E<o;++E){let T=n[E].name.text;l.set(T,p.auto),u.add(T)}let c=t.functionTypeNode.parameters,f=c.length,_,d;switch(e.kind){case 11:{let E=e;_=E.args,d=E.argumentsRange;break}case 19:{let E=e;_=E.args,d=E.argumentsRange;break}default:return assert(!1),null}let g=_.length;for(let E=0;E<f;++E){let T=E<g?_[E]:c[E].initializer;if(!T){if(c[E].parameterKind==1)continue;return a==0&&(c[E].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,f.toString(),g.toString())),null}let k=c[E].type;if(c[E].parameterKind==2&&(k=k.typeArguments[0]),k.hasGenericComponent(n)){let F=this.resolveExpression(T,s,p.auto,1);F&&this.propagateInferredGenericTypes(k,F,t,l,u)}}let y=new Array(o);for(let E=0;E<o;++E){let T=n[E],k=T.name.text;if(l.has(k)){let F=assert(l.get(k));if(F!=p.auto){y[E]=F;continue}let w=T.defaultType;if(w){let R=t.parent,C=null;(R.kind==7||R.kind==5)&&(C=R.contextualTypeArguments);let M=this.resolveType(w,null,t,C,a);if(!M)return null;y[E]=M;continue}}if(a==0){let F;switch(e.kind){case 11:F=e.expression.range;break;case 19:F=e.typeName.range;break;default:return assert(!1),null}this.error(1140,F.atEnd)}return null}return y}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 c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let f=u.typeArguments;if(f&&f.length==o.length){for(let _=0,d=f.length;_<d;++_)this.propagateInferredGenericTypes(o[_],f[_],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let c=u.parameterTypes;for(let g=0,y=min(c.length,o.length);g<y;++g)this.propagateInferredGenericTypes(o[g].type,c[g],n,s,a);let f=u.returnType;f!=p.void&&this.propagateInferredGenericTypes(l.returnType,f,n,s,a);let _=u.thisType,d=l.explicitThisType;_&&d&&this.propagateInferredGenericTypes(d,_,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Ko(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=p.auto,s=0){for(;e.kind==22;)e=e.expression;switch(e.kind){case 9:return this.lookupAssertionExpression(e,t,n,s);case 10:return this.lookupBinaryExpression(e,t,n,s);case 11:return this.lookupCallExpression(e,t,n,s);case 13:return this.lookupCommaExpression(e,t,n,s);case 14:return this.lookupElementAccessExpression(e,t,n,s);case 16:return this.lookupFunctionExpression(e,t,n,s);case 8:case 15:case 20:case 27:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 26:return this.lookupThisExpression(e,t,n,s);case 25:return this.lookupSuperExpression(e,t,n,s);case 17:return this.lookupInstanceOfExpression(e,t,n,s);case 18:return this.lookupLiteralExpression(e,t,n,s);case 19:return this.lookupNewExpression(e,t,n,s);case 23:return this.lookupPropertyAccessExpression(e,t,n,s);case 24:return this.lookupTernaryExpression(e,t,n,s);case 29:return this.lookupUnaryPostfixExpression(e,t,n,s);case 30:return this.lookupUnaryPrefixExpression(e,t,n,s);case 31:{let a=this.resolveAwaitExpression(e,t,s);return a?this.getElementOfType(a):null}}return assert(!1),null}resolveExpression(e,t,n=p.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=p.auto,s=0){for(;e.kind==22;)e=e.expression;switch(e.kind){case 9:return this.resolveAssertionExpression(e,t,n,s);case 10:return this.resolveBinaryExpression(e,t,n,s);case 11:return this.resolveCallExpression(e,t,n,s);case 13:return this.resolveCommaExpression(e,t,n,s);case 14:return this.resolveElementAccessExpression(e,t,n,s);case 16:return this.resolveFunctionExpression(e,t,n,s);case 8:case 15:case 20:case 27:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 26:return this.resolveThisExpression(e,t,n,s);case 25:return this.resolveSuperExpression(e,t,n,s);case 17:return this.resolveInstanceOfExpression(e,t,n,s);case 18:return this.resolveLiteralExpression(e,t,n,s);case 19:return this.resolveNewExpression(e,t,n,s);case 23:return this.resolvePropertyAccessExpression(e,t,n,s);case 24:return this.resolveTernaryExpression(e,t,n,s);case 29:return this.resolveUnaryPostfixExpression(e,t,n,s);case 30:return this.resolveUnaryPrefixExpression(e,t,n,s);case 31:return this.resolveAwaitExpression(e,t,s)}return assert(!1),null}resolveAwaitExpression(e,t,n=0){let s=this.resolveExpression(e.operand,t,p.auto,n);if(!s)return null;let a=this.resolveTaskValueType(s);return a??s}resolveTaskValueType(e){let t=e.getClass();if(!t)return null;let n=this.program.taskPrototype;if(!n)return null;let s=t.getTypeArgumentsTo(n);return!s||s.length!=1?null:s[0]}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 27:case 15:case 20:{let u=this.resolveIdentifierExpression(e,t,p.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=p.auto,s=t.sourceFunction,a=0){switch(e.kind){case 27:case 15:return p.bool;case 20:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,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,p.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,c=u.type;if(c==p.void)return null;let f=c.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=f;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let f=c.signature.returnType,_=f.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,f.toString()),null;l=_;break}case 15:{let c=l.parent;assert(c.kind==7);let f=c,_=assert(this.currentElementExpression),d=f.lookupOverload(1);if(!d)return s==0&&this.error(2329,_.range,c.internalName),null;let g=d.signature.returnType,y=g.getClassOrWrapper(this.program);if(!y)return s==0&&this.error(2339,e.property.range,o,g.toString()),null;l=y;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let f=this.resolveType(u.typeNode,null,u.parent,null,s);f&&u.setType(f)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let f=this.resolveFunction(l,null,new Map,1);if(f){let _=f.type.getClassOrWrapper(this.program);_&&(l=_)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let f=u.getMember(o);if(f){if(f.kind==10){let _=this.resolveProperty(f,s);if(!_)return null;f=_,_.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,f}switch(c=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(c=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(c=!0,u=d);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,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?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,t,n=p.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=p.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=p.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,Le(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 83:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 82:case 88:case 89:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Me.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Le(l),o.toString()),null)}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 97:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 70:return s==0&&this.error(100,e.range,"Spread operator"),null;case 57:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,t,n=p.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,Le(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=p.auto,s=0){let a=e.operator;switch(a){case 88:case 89:{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(Me.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Le(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=p.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=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:return this.resolveExpression(a,t,n,s);case 73:case 74:case 75:case 76:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Le(o),u.toString()),null)}case 77:case 78:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return p.bool}case 79:case 80:return p.bool;case 29:return p.bool;case 82:case 83:case 85:case 86:case 87:case 84:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Me.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(l,t,u,s);if(!f)return null;let _=p.commonType(u,f,n);return _||s==0&&this.error(2365,e.range,Le(o),u.toString(),f.toString()),_}case 90:case 91:case 92:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Le(o),u.toString()),null)}case 93:case 94:case 95:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Me.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(l,t,n,s);if(!f)return null;let _=p.commonType(u,f,n);return(!_||!_.isIntegerValue)&&s==0&&this.error(2365,e.range,Le(o),u.toString(),f.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=this.resolveExpression(l,t,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),f}case 99:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=this.resolveExpression(l,t,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f?u.is(512)&&c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}markCapturingArrows(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];a.prototype.capturesThis||(a.prototype.capturesThis=!0,assert(!a.signature.thisType),a.addLocal(t,N.this_))}}lookupThisExpression(e,t,n=p.auto,s=0){if(t.isInline){let o=t.lookupLocal(N.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.sourceFunction,l=null;for(;a!=null&&a.prototype.arrowKind!=0;){l||(l=new Array),l.push(a);let o=a.parent;a=o!=null&&o.kind==5?o:null}if(a!=null){let o=a.parent;if(o!=null&&o.kind==7)return l&&this.markCapturingArrows(l,o.type),this.currentThisExpression=null,this.currentElementExpression=null,o;if(o!=null&&o.kind==6)return this.currentThisExpression=null,this.currentElementExpression=null,o;let u=a.flow.scopedLocals,c=u?ee(u,N.this_):null;if(c)return l&&this.markCapturingArrows(l,c.type),this.currentThisExpression=null,this.currentElementExpression=null,c}return s==0&&this.error(2332,e.range),null}resolveThisExpression(e,t,n=p.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=p.auto,s=0){if(t.isInline){let l=t.lookupLocal(N.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=p.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=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let f=0,_=o;f<_;++f){let d=l[f];if(d)if(d.kind==20&&o>1)++c;else{let g=this.resolveExpression(d,t,u);if(!g)return null;if(u==p.auto)u=g;else if(g!=u){let y=p.commonType(u,g,u);y&&(u=y)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,t,n=p.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=p.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=p.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==m.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:{let o=l;if(o.prototype.isAsync){let u=this.resolveAsyncCallType(o,s);if(u)return u}return o.signature.returnType}case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Ko(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}resolveAsyncCallType(e,t=0){let n=this.program.taskPrototype;if(!n)return null;let s=this.resolveClass(n,[e.signature.returnType],new Map,t);return s?s.type:null}lookupCommaExpression(e,t,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=p.auto,s=0){return p.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=p.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,he(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==42&&De(l.returnType)){let c=o.expression,f=assert(u.getSignature()),_=Jt.createDefault(t.sourceFunction),d=l.parameters;assert(f.parameterTypes.length==d.length);for(let y=0,E=d.length;y<E;y++){let T=d[y],k=f.parameterTypes[y];_.addScopedDummyLocal(T.name.text,k,T)}let g=this.resolveExpression(c,_,n,s);g&&(u.signatureReference=de.create(this.program,f.parameterTypes,g,f.thisType,f.requiredParameters,f.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?Ho(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let z=e.getResolvedInstance(l);if(z)return z;let U=a.typeArguments;if(U){let Q=assert(a.prototype.typeParameterNodes),Y=Q.length;assert(Y==Q.length);for(let O=0;O<Y;++O){let ie=Q[O].name.text;n.set(ie,U[O])}}}else{assert(!e.isBound);let z=e.getResolvedInstance(l);if(z)return z}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(t&&(c=t.length)>0){assert(u&&c==u.length);for(let z=0;z<c;++z)n.set(u[z].name.text,t[z])}else assert(!u||u.length==0);let f=null,_=o.explicitThisType;if(_){if(f=this.resolveType(_,null,e.parent,n,s),!f)return null;n.set(N.this_,f)}else a&&(f=a.type,n.set(N.this_,f));let d=o.parameters,g=d.length,y=new Array(g),E=null,T=0,k=!1,F=this.allowInlineViewParam;this.allowInlineViewParam=!0;for(let z=0;z<g;++z){let U=d[z];U.parameterKind==0?T=z+1:U.parameterKind==2&&(k=!0);let Q=U.type;if(De(Q))return s==0&&this.error(1110,Q.range),null;let Y=this.resolveType(Q,null,e.parent,n,s);if(!Y)return null;if(Y==p.void)return s==0&&this.error(1110,Q.range),null;y[z]=Y;let O=Q.memoryModel;if(O!=0){if(E==null){E=new Array(g);for(let ie=0;ie<g;++ie)unchecked(E[ie]=0)}unchecked(E[z]=O)}}this.allowInlineViewParam=F;let w;if(e.is(4096))w=p.void;else if(e.is(524288))w=a.type;else{let z=o.returnType;if(De(z))return s==0&&this.error(1110,z.range),null;let U=this.resolveType(z,null,e.parent,n,s);if(!U)return null;w=U}let R=e.is(524288)&&w.classReference!=null&&assert(w.classReference).hasDecorator(4096),C=e.hasAnyDecorator(384)&&$b(y,E),M=e.is(1048576)&&!e.hasAnyDecorator(384)&&$b(y,E);if(E!=null&&(e.hasAnyDecorator(384)||e.is(1048576))){for(let z=0;z<g;++z)if(unchecked(E[z])==3&&de.isInlineStructRef(unchecked(y[z])))return s==0&&this.error(6411,d[z].type.range,unchecked(y[z]).toString()),null}if(E!=null&&(e.hasAnyDecorator(384)||e.is(1048576))){for(let z=0;z<g;++z)if(unchecked(E[z])==3&&de.isInlineStructRef(unchecked(y[z])))return s==0&&this.error(6411,d[z].type.range,unchecked(y[z]).toString()),null}let W=de.create(this.program,y,w,f,T,k,R,C,M,E),G=e.name;l.length&&(G+=`<${l}>`);let j=new Lt(G,e,t,W,n);if(e.setResolvedInstance(l,j),a){let z=j.declaration.name.text,U=a.base;if(U){let Q=U.getMember(z);if(Q){this.discoveredOverride=!0;let Y=!0;if(j.isAny(6144)){if(Q.kind==10){let O=this.resolveProperty(Q,s);if(O)if(j.is(2048)){let ie=O.getterInstance;ie&&j.signature.isAssignableTo(ie.signature,!0)&&(Y=!1)}else{assert(j.is(4096));let ie=O.setterInstance;ie&&j.signature.isAssignableTo(ie.signature,!0)&&(Y=!1)}}}else if(j.is(524288))Y=!1;else if(Q.kind==4){let O=Q,ie=O.typeParameterNodes,H=ie!=null&&ie.length>0,ge=t!=null&&t.length>0;if(H!=ge)this.errorRelated(242,j.identifierAndSignatureRange,Q.identifierAndSignatureRange,z),Y=!1;else{let oe=this.resolveFunction(O,t,new Map,1);oe&&j.signature.isAssignableTo(oe.signature,!0)&&(Y=!1)}}Y&&this.errorRelated(2394,j.identifierAndSignatureRange,Q.identifierAndSignatureRange)}}}return j}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let f=assert(u.prototype.typeParameterNodes),_=c.length;assert(_==f.length);for(let d=0;d<_;++d)s.set(f[d].name.text,c[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 c=u.parent,f;if(assert(c.kind==6||c.kind==8),f=c.instances,!!f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d){let y=_[d];if(!y.isAssignableTo(n))continue;let E=null;if(e.isAny(6144)){let T=e.declaration.name.text,k=assert(y.getMember(T));assert(k.kind==10);let F=this.resolveProperty(k);if(!F)continue;e.is(2048)?E=F.getterInstance:(assert(e.is(4096)),E=F.setterInstance)}else{let T=y.getMember(u.name);if(T){assert(T.kind==4);let k=T;k.is(65536)==e.is(65536)&&(E=this.resolveFunction(k,e.typeArguments))}}E&&s.add(E)}}return Set_values(s)}findManagedLeaf(e,t){let n=e.classReference;if(n==null||t.has(n))return null;t.add(n);let s=n.members;if(!s)return null;for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);if(u.kind!=10)continue;let c=u.instance;if(c==null||!c.isField)continue;let f=c.type;if(f.isManaged)return c;if(f.kind==14){let _=f.fixedElementType;if(_!=null&&_.isManaged)return c}else if(Wo(f)==1){let _=this.findManagedLeaf(f,t);if(_!=null)return _}}return null}resolveClass(e,t,n=new Map,s=0){let a=t?Ho(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Bs(o,e,t):l=new Er(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),g=d.length,y=t.length;assert(y==g);for(let E=0;E<y;++E)n.set(d[E].name.text,t[E])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let c=!1,f=e.basePrototype;if(f){let d=f;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let g=assert(e.extendsNode),y=this.resolveClassInclTypeArguments(f,g.typeArguments,null,e.parent,he(n),g,s);if(!y)return null;l.setBase(y),u.has(y)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let _=e.interfacePrototypes;if(_)for(let d=0,g=_.length;d<g;++d){let y=_[d],E=y;do{if(E==e)return this.error(2506,e.identifierNode.range,e.internalName),null;E=E.basePrototype}while(E);let T=assert(e.implementsNodes[d]),k=this.resolveClassInclTypeArguments(y,T.typeArguments,null,e.parent,he(n),T,s);if(!k)return null;assert(k.kind==9),l.addInterface(k),u.has(k)&&(c=!0)}return c||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 g=Set_values(l),y=0,E=g.length;y<E;++y){let T=g[y];assert(!s.has(T));let k=T.members;if(k)for(let F=Map_keys(k),w=0,R=F.length;w<R;++w){let C=unchecked(F[w]),M=assert(k.get(C)),W=e.getMember(C);W&&!this.checkOverrideVisibility(C,W,e,M,T,t)||(n.set(C,M),a.set(C,M))}}let o=0,u=0,c=e.base;if(c){let g=e.prototype.implicitlyExtendsObject;assert(!s.has(c));let y=c.members;if(y)for(let E=Map_keys(y),T=0,k=E.length;T<k;++T){let F=unchecked(E[T]),w=assert(y.get(F));if(g&&w.is(32))continue;let R=e.getMember(F);R&&!this.checkOverrideVisibility(F,R,e,w,c,t)||(n.set(F,w),w.is(128)?a.set(F,w):a.delete(F))}o=c.nextMemoryOffset,u=c.alignLog2}let f=e.prototype,_=f.instanceMembers;if(_)for(let g=Map_values(_),y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=T.name;if(c){let F=c.getMember(k);F&&this.checkOverrideVisibility(k,T,e,F,c,t)}switch(T.kind){case 4:{let F=T.toBound(e);e.add(F.name,F);break}case 10:{let F=T.toBound(e);if(F.isField){let w=this.resolveProperty(F,t);if(w){let R=w.type;if(R==p.void)break;if(R.isExternalReference){this.error(100,assert(F.typeNode).range,"Reference typed fields");break}let C=!0;if(c){let W=c.getMember(F.name);if(W&&W.kind==10){let G=W,j=this.resolveProperty(G,t);if(j&&j.isField){if(j.type!=w.type){this.errorRelated(2416,w.identifierNode.range,j.identifierNode.range,w.name,e.internalName,c.internalName);break}w.memoryOffset=j.memoryOffset,C=!1}}}if(C){let W=null;if(Wo(R)==1){let Y=R.classReference;if(Y!=null){W=Y;let O=assert(F.fieldDeclaration).type;if(s.has(Y)){this.error(100,O.range,"a recursive @inline struct: '"+Y.name+"' would have an infinite size (it contains itself, directly or through another @inline struct, by value)");break}let ie=this.findManagedLeaf(Y.type,new Set);if(ie!=null){this.error(100,O.range,"an @inline struct field '"+ie.name+"' of '"+Y.name+"' is a GC reference, and"+(e.hasDecorator(2048)?" the __visit pass walks the outer's fields -- an inline field's GC pointer is invisible to it, so the collector would not trace it":" an inline field's GC pointer is invisible to the collector -- the field looks safe but is not; the escape hatch is a hand-written byte layout, not an @inline field"));break}}}let G=W!=null?W.nextMemoryOffset:R.byteSize;if(e.hasDecorator(2048)&&R.kind==14){let Y=R.fixedElementType;this.error(100,assert(F.fieldDeclaration).type.range,Y!=null&&Y.isManaged?"an inline array of GC references on an @managed struct (the collector cannot trace its elements)":"an inline array (T[N]) on an @managed struct (field initialization cannot fill an extent yet; see compiler.ts makeZero)");break}let j=W!=null?W.alignLog2:R.alignLog2,z=j,U=DE(assert(F.fieldDeclaration).decorators);if(U){let Y=U.args,O=i64_zero,ie=!1;if(Y&&Y.length==1&&Y[0].isLiteralKind(1)&&(O=Y[0].value,ie=!0),!ie)this.error(6405,U.range);else if(i64_lt(O,i64_one))this.error(6406,U.range,O.toString());else if(i64_gt(O,i64_new(1073741824,0)))this.error(6409,U.range,O.toString(),"1073741824");else{let H=i64_low(O);if((H&H-1)!=0)this.error(6407,U.range,O.toString());else{let ge=1<<j;if(H<ge)this.error(6408,U.range,O.toString(),ge.toString());else{let oe=0,pe=H;for(;pe>1;)pe>>=1,++oe;z=oe}}}}assert(z>=0),z>u&&(u=z);let Q=(1<<z)-1;o&Q&&(o=(o|Q)+1),w.memoryOffset=o,o+=G}F.instance=w,e.add(F.name,F);let M=assert(F.fieldDeclaration).type;M&&(Wo(R)==1&&(e.hasDecorator(4096)||!e.hasDecorator(16)&&!e.hasDecorator(2048)&&this.error(100,M.range,"an @inline struct as a class field (a class field is a pointer slot; inline-in-heap is a separate, deferred case -- use an @unmanaged or @managed record field)")),this.program.checkTypeSupported(R,M))}}else e.add(F.name,F);break}default:assert(!1)}!T.is(128)&&!T.is(65536)&&a.delete(k)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let g=Map_keys(a),y=0,E=g.length;y<E;++y){let T=g[y],k=assert(a.get(T));this.errorRelated(2515,e.identifierNode.range,k.identifierNode.range,e.internalName,T,k.parent.internalName)}if(e.hasDecorator(16)||e.hasDecorator(2048)){let g=(1<<u)-1;o=o+g&~g}e.alignLog2=u,e.nextMemoryOffset=o;{let g=e.getMember(N.constructor);if(g&&g.parent==e){assert(g.kind==4);let y=this.resolveFunction(g,null,assert(e.contextualTypeArguments),t);y&&(e.constructorInstance=y)}}}let d=f.operatorOverloadPrototypes;for(let g=Map_keys(d),y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=assert(d.get(T));if(assert(T!=0),k.is(65536))continue;let F;if(k.is(262144)){let R=k.toBound(e);F=this.resolveFunction(R,null,new Map,t)}else F=this.resolveFunction(k,null,new Map,t);if(!F)continue;let w=e.operatorOverloads;if(w||(e.operatorOverloads=w=new Map),F.is(262144))switch(T){case 27:case 28:case 29:case 30:{let R=F.signature.returnType;R.isAssignableTo(e.type)||t==0&&this.error(2322,k.functionTypeNode.returnType.range,R.toString(),e.type.toString())}}if(w.has(T))t==0&&this.error(213,F.declaration.range);else if(w.set(T,F),T==1||T==2){let R=e.indexSignature;R||(e.indexSignature=R=new Ps(e)),T==1&&R.setType(F.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let g=Set_values(s),y=0,E=g.length;y<E;++y){let T=g[y],k=T.base==e,F=T.interfaces;if(F){let w=!1;for(let R=Set_values(F),C=0,M=R.length;C<M;++C){let W=R[C];W==e?k=!0:s.has(W)&&(w=!0)}if(w)continue}k&&this.finishResolveClass(T,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let f=e;f&&!c;f=f.basePrototype)c=f.constructorPrototype;if(!t&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,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 Cs(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]}};function $b(i,r){for(let e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);if((de.isInlineStructRef(n)||r!=null&&unchecked(r[e])==1)&&de.fieldCountOf(n)>1)return!0}return!1}function Wo(i){let r=i.classReference;return r==null?0:r.hasDecorator(4096)?1:r.hasDecorator(2048)?2:r.hasDecorator(16)?3:0}function UE(i){switch(i){case 1:return"@inline";case 2:return"@managed";case 3:return"@unmanaged";default:return"@none"}}var Ls=class{constructor(r,e){this.source=r;this.reportNode=e}};function Yb(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==6)return!0;return!1}function VE(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==7)return!0;return!1}function Jb(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==9)return!0;return!1}function ex(i){let r=null;if(i.kind==8)r=i.text;else if(i.kind==23)return 0;return r==null?0:r=="inline"?1:r=="managed"?2:r=="unmanaged"?3:0}function OE(i){let r=i.name;return r.kind==8&&r.text=="lazy"}function qE(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="align"}function WE(i,r){return i==1&&r==2||i==2&&r==1}var Ms=class extends tt{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.currentModuleName=null;this.options=null;this.unplacedLazyExpressions=null;this.awaitNullifiedLazyExpressions=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.inAsyncContext=!1;this.sources=t}parseFile(e,t,n){let s=Qr(t),a=ds(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let _=this.dependees,d=null;_.has(a)&&(d=assert(_.get(a))),this.error(6054,d?d.reportNode.range:null,t);return}let l=new Te(n?1:t.startsWith(Ft)?t.indexOf(mt,Ft.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new os(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(122);){let _=this.parseTopLevelStatement(o,null);_?u.push(_):this.skipStatement(o)}let c=this.unplacedLazyExpressions;this.unplacedLazyExpressions=null;let f=this.awaitNullifiedLazyExpressions;if(this.awaitNullifiedLazyExpressions=null,c!=null)for(let _=Set_values(c),d=0,g=_.length;d<g;++d){let y=unchecked(_[d]);this.error(f!=null&&f.has(y)?6402:6397,y.range)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(115);){s<0&&(s=e.tokenPos);let F=this.parseDecorator(e);if(!F){this.skipStatement(e);continue}a?a.push(F):a=[F]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let f=0,_=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),f=s,_=e.pos,n|=32772):d&&(n|=32768);let g=!1,y=0,E=0;if(e.peek()==2){let F=e.mark();e.next(),!e.peekOnNewLine()&&e.peek()==24?(g=!0,y=e.tokenPos,E=e.pos,s<0&&(s=y)):e.reset(F)}let T=null,k=e.peek();switch(s<0&&(s=e.nextTokenPos),k){case 8:{e.next(),n|=8,e.skip(17)?T=this.parseEnum(e,n,a,s):T=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 58:{e.next(),T=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),T=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),T=this.parseFunction(e,n,a,s,g),g&&T&&n&32768&&this.error(1042,e.range(y,E),"async"),a=null;break}case 0:{let F=e.mark();e.next();let w=e.tokenPos,R=e.pos;if(e.peekOnNewLine()){e.reset(F),T=this.parseStatement(e,!0);break}let C=e.peek();if(C!=7){C==31&&this.error(1242,e.range(w,R)),e.reset(F),T=this.parseStatement(e,!0);break}else e.discard(F);n|=128}case 7:case 31:{e.next(),T=this.parseClassOrInterface(e,n,a,s),a=null;break}case 49:{let F=e.tokenPos,w=e.range(F,e.pos),R=Yb(a),C=Jb(a),M=VE(a);M&&R&&this.error(6390,w),M&&Jb(a)&&this.error(6391,w),e.next();let W=this.parseClassOrInterface(e,n,M?a:this.withValueDefault(a,w,R||C),s);W&&(W.declaredAsStruct=!0,W.declaredAsManagedStruct=M),T=W,a=null;break}case 36:{let F=e.mark();e.next(),e.peek(1)==116?(e.discard(F),T=this.parseNamespace(e,n,a,s),a=null):(e.reset(F),T=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?T=this.parseExportImport(e,s):T=this.parseImport(e);break}case 56:{let F=e.mark();e.next(),e.peek(1)==116?(e.discard(F),T=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(F),T=this.parseStatement(e,!0));break}case 35:{let F=e.mark();e.next(),e.peek()==117&&!e.peekOnNewLine()?(e.discard(F),T=this.parseModuleDeclaration(e,n)):(e.reset(F),T=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(_&&this.error(1120,e.range(f,_)),T=this.parseExportDefaultAlias(e,s,u,c),u=c=0):T=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),_&&this.error(1042,e.range(f,_),"declare"),t?this.error(2695,e.range(s)):T=this.parseStatement(e,!0));break}}if(a)for(let F=0,w=a.length;F<w;++F)this.error(1206,a[F].range);if(c&&T!=null)switch(T.kind){case 56:case 59:case 55:case 61:case 63:return h.createExportDefaultStatement(T,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return T}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.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear()}parseTypeName(e){let t=h.createSimpleTypeName(e.readIdentifier(),e.range()),n=t;for(;e.skip(69);)if(e.skip(116)){let s=h.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return t}parseType(e,t=!0,n=!1){let s=0,a=null,l=e.next();for(;l==115;){let c=this.parseDecorator(e);if(!c)break;let f=ex(c.name);f==0?this.error(212,c.range,c.name.range.toString()):s!=0?this.error(WE(s,f)?6391:6393,ue.join(assert(a).range,c.range)):(s=f,a=c),l=e.next()}let o=e.tokenPos,u;if(l==65){let c=e.skip(65),f=this.tryParseFunctionType(e);if(f){if(c&&!e.skip(66))return n||this.error(1005,e.range(),")"),null;u=f}else{if(c||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(t){let _=this.parseType(e,!1,n);if(!_)return null;if(!e.skip(66))return n||this.error(1005,e.range(e.pos),")"),null;u=_,u.range.start=o,u.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(l==45){let c=this.parseType(e,t,n);if(!c)return null;u=c,u.range.start=o}else if(l==67&&this.options&&this.options.hasFeature(512)){let c=[],f=[],_=!1;if(!e.skip(68)){do{let d=null,g=e.mark();if(e.skip(116)){let E=e.readIdentifier(),T=e.range();e.skip(101)?(d=h.createIdentifierExpression(E,T),_=!0):e.reset(g)}let y=this.parseType(e,!0,n);if(!y)return null;c.push(y),f.push(d)}while(e.skip(72));if(!e.skip(68))return n||this.error(1005,e.range(e.pos),"]"),null}u=h.createTupleType(c,_?f:null,!1,e.range(o,e.pos))}else if(l==59)u=h.createNamedType(h.createSimpleTypeName("void",e.range()),[],!1,e.range(o,e.pos));else if(l==52)u=h.createNamedType(h.createSimpleTypeName("this",e.range()),[],!1,e.range(o,e.pos));else if(l==54||l==20)u=h.createNamedType(h.createSimpleTypeName("bool",e.range()),[],!1,e.range(o,e.pos));else if(l==38)u=h.createNamedType(h.createSimpleTypeName("null",e.range()),[],!1,e.range(o,e.pos));else if(l==117)e.readString(),u=h.createNamedType(h.createSimpleTypeName("string",e.range()),[],!1,e.range(o,e.pos));else if(l==116){let c=this.parseTypeName(e);if(!c)return null;let f=null;if(e.skip(73)){do{let _=this.parseType(e,!0,n);if(!_)return null;f?f.push(_):f=[_]}while(e.skip(72));if(!e.skip(74))return n||this.error(1005,e.range(e.pos),">"),null}f||(f=[]),u=h.createNamedType(c,f,!1,e.range(o,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(94);){let c=this.parseType(e,!0,!1);if(!c)return null;let f=u.kind==1&&u.isNull,_=c.kind==1&&c.isNull;if(!f&&!_)return n||this.error(100,c.range,"union types"),null;_?(u.isNullable=!0,u.range.end=c.range.end):f?(c.range.start=u.range.start,c.isNullable=!0,u=c):u.range.end=c.range.end}for(;e.skip(67);){let c=e.tokenPos,f=-1;if(e.peek()==118){e.next();let g=e.tokenPos,y=e.readInteger(),E=e.range(g,e.pos);if(!e.skip(68)||i64_lt(y,i64_new(1))||i64_gt(y,i64_new(i32.MAX_VALUE)))return n||this.error(1005,E,"]"),null;f=i64_low(y)}if(f>=0){u=h.createFixedArrayType(u,f,e.range(o,e.pos));continue}if(!e.skip(68))return n||this.error(1005,e.range(),"]"),null;let _=e.range(c,e.pos),d=!1;if(e.skip(94))if(e.skip(38))d=!0;else return n||this.error(100,e.range(),"union types"),null;if(u=h.createNamedType(h.createSimpleTypeName("Array",_),[u],d,e.range(o,e.pos)),d)break}for(;e.peek()==115&&!e.peekOnNewLine();){e.next();let c=this.parseDecorator(e);if(!c)break;if(ex(c.name)!=0){this.error(6392,c.range,c.name.range.toString());continue}if(OE(c)){this.error(6396,c.range);continue}if(qE(c)){this.error(6410,c.range);continue}u.attributes?assert(u.attributes).push(c):u.attributes=[c]}return s!=0&&(u.memoryModel=s),u}tryParseFunctionType(e){let t=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(66))l=!0,e.discard(t),s=[];else{l=!1;do{let f=-1,_=0;if(e.skip(70)&&(f=e.tokenPos,l=!0,e.discard(t),_=2),e.skip(52))if(f<0&&(f=e.tokenPos),e.skip(101)){l=!0,e.discard(t);let d=this.parseType(e,!1);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),this.tryParseSignatureIsSignature=!0,null;a=d}else return e.reset(t),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){f<0&&(f=e.tokenPos);let d=h.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(100)&&(l=!0,e.discard(t),_==2?this.error(1047,e.range()):_=1),e.skip(101)){l=!0,e.discard(t);let g=this.parseType(e);if(!g)return this.tryParseSignatureIsSignature=l,null;let y=h.createParameter(_,d,g,null,e.range(f,e.pos));s?s.push(y):s=[y]}else if(l||e.peek()==72&&(l=!0,e.discard(t)),l){let g=h.createParameter(_,d,h.createOmittedType(e.range(e.pos)),null,e.range(f,e.pos));s?s.push(g):s=[g],this.error(1110,g.type.range)}else s||(o=d,u=_)}else{if(l){if(e.peek()==66)break;this.error(1003,e.range())}else e.reset(t);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(72));if(!e.skip(66))return l?this.error(1005,e.range(),")"):e.reset(t),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(81)){if(!l&&(l=!0,e.discard(t),o)){let f=h.createParameter(u,o,h.createOmittedType(o.range.atEnd),null,o.range);s?s.push(f):s=[f],this.error(1110,f.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(t),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),h.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let t=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=h.createIdentifierExpression(n,e.range(t,e.pos));for(;e.skip(69);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=h.createPropertyAccessExpression(s,h.createIdentifierExpression(n,e.range()),e.range(t,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(65)){if(a=this.parseArguments(e),a)return h.createDecorator(s,a,e.range(t,e.pos))}else return h.createDecorator(s,null,e.range(t,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,t,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,t,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(72));let o=h.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(71)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,t,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=h.createIdentifierExpression(e.readIdentifier(),e.range());Zp(a.text)&&this.error(1003,a.range);let l=t;e.skip(96)&&(l|=16384);let o=null;e.skip(101)&&(o=this.parseType(e,!0));let u=null;if(e.skip(102)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;if(u.kind==32){let f=this.unplacedLazyExpressions;f?.delete(u)}l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=ue.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),h.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,t,n,s){if(e.next()!=116)return this.error(1003,e.range()),null;let a=h.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(101)&&(l=this.parseType(e,!1),!l))return null;if(e.next()!=63)return this.error(1005,e.range(),"{"),null;let o=new Array;for(;!e.skip(64);){let c=this.parseEnumValue(e,0);if(!c)return null;if(o.push(c),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}let u=h.createEnumDeclaration(a,n,t,o,l,e.range(s,e.pos));return u.overriddenModuleName=this.currentModuleName,e.skip(71),u}parseEnumValue(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=h.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(102)&&(s=this.parseExpression(e,2),!s)?null:h.createEnumValueDeclaration(n,t,s,ue.join(n.range,e.range()))}parseReturn(e){let t=e.tokenPos,n=null,s=e.peek();if(s!=71&&s!=64&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=h.createReturnStatement(n,e.range(t,e.pos));return e.skip(71)||this.checkASI(e),a}parseTypeParameters(e){let t=new Array,n=!1,s=e.tokenPos;for(;!e.skip(74);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),t.push(a),!e.skip(72)){if(e.skip(74))break;return this.error(1005,e.range(),">"),null}}return t.length||this.error(1098,e.range(s,e.pos)),t}parseTypeParameter(e){if(e.next()==116){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(102)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return h.createTypeParameter(t,n,s,ue.join(t.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,t=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(52)){if(e.skip(101)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(72))return e.skip(66)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(66);){let u=this.parseParameter(e,t);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(72)){if(e.skip(66))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,t=!1){let n=!1,s=!1,a=null,l=0;if(t&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=101?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(70)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=h.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(100))&&n&&this.error(1047,o.range),e.skip(101)){if(u=this.parseType(e),!u)return null}else u=h.createOmittedType(e.range(e.pos));let c=null;if(e.skip(102)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let f=h.createParameter(n?2:s?1:0,o,u,c,ue.join(assert(a),e.range()));return f.flags|=l,f}else this.error(1003,e.range());return null}parseFunction(e,t,n,s,a=!1){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let l=h.createIdentifierExpression(e.readIdentifier(),e.range()),o=-1,u=null;if(e.skip(73)){if(o=e.tokenPos,u=this.parseTypeParameters(e),!u)return null;t|=65536}if(!e.skip(65))return this.error(1005,e.range(e.pos),"("),null;o<0&&(o=e.tokenPos);let c=this.parseParameters(e);if(!c)return null;let f=this.parseParametersThis,_=(t&4096)!=0;_&&(c.length!=1&&this.error(1049,l.range),c.length>0&&c[0].initializer&&this.error(1052,l.range)),t&2048&&c.length&&this.error(1054,l.range);let d=null;if(e.skip(101)&&(d=this.parseType(e,!0,_),!d))return null;d||(d=h.createOmittedType(e.range(e.pos)),_||this.error(1110,d.range));let g=h.createFunctionType(c,d,f,!1,e.range(o,e.pos)),y=null;if(e.skip(63)){t&32768&&this.error(1183,e.range());let T=this.inAsyncContext;if(this.inAsyncContext=a,y=this.parseBlockStatement(e,!1),this.inAsyncContext=T,!y)return null}else t&32768||this.error(2391,e.range(e.pos));let E=h.createFunctionDeclaration(l,n,t,u,g,y,0,e.range(s,e.pos),a);return E.overriddenModuleName=this.currentModuleName,e.skip(71),E}parseFunctionExpression(e,t=!1){let n=e.tokenPos,s,a=0;if(e.token==24){if(e.skipIdentifier()?s=h.createIdentifierExpression(e.readIdentifier(),e.range()):s=h.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(65))return this.error(1005,e.range(e.pos),"("),null}else a=1,assert(e.token==65),s=h.createEmptyIdentifierExpression(e.range(e.tokenPos));let l=e.pos,o=this.parseParameters(e);return o?this.parseFunctionExpressionCommon(e,s,o,this.parseParametersThis,a,n,l,t):null}parseFunctionExpressionCommon(e,t,n,s,a,l=-1,o=-1,u=!1){l<0&&(l=t.range.start),o<0&&(o=l);let c=null;if(a!=2&&e.skip(101)){if(c=this.parseType(e),!c)return null}else c=h.createOmittedType(e.range(e.pos));if(a&&!e.skip(81))return this.error(1005,e.range(e.pos),"=>"),null;let f=h.createFunctionType(n,c,s,!1,e.range(o,e.pos)),_=null,d=this.inAsyncContext;if(this.inAsyncContext=u,a)if(e.skip(63))_=this.parseBlockStatement(e,!1);else{let y=this.parseExpression(e,2);y&&(_=h.createExpressionStatement(y))}else{if(!e.skip(63))return this.inAsyncContext=d,this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(this.inAsyncContext=d,!_)return null;let g=h.createFunctionDeclaration(t,null,0,null,f,_,a,e.range(l,e.pos),u);return h.createFunctionExpression(g)}withValueDefault(e,t,n){let s=this.withUnmanaged(e,t);if(n)return s;let a=h.createDecorator(h.createIdentifierExpression("inline",t),null,t),l=new Array(s.length+1);l[0]=a;for(let o=0,u=s.length;o<u;++o)l[o+1]=s[o];return l}withUnmanaged(e,t){if(Yb(e))return e;let n=h.createDecorator(h.createIdentifierExpression("unmanaged",t),null,t);if(!e)return[n];let s=new Array(e.length+1);s[0]=n;for(let a=0,l=e.length;a<l;++a)s[a+1]=e[a];return s}parseClassOrInterface(e,t,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=h.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(73)){if(o=this.parseTypeParameters(e),!o)return null;t|=65536}let u=null;if(e.skip(19)){let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;u=d}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;a||(c||(c=[]),c.push(d))}while(e.skip(72))}if(!e.skip(63))return this.error(1005,e.range(),"{"),null;let f=new Array,_;if(a?(assert(!c),_=h.createInterfaceDeclaration(l,n,t,o,u,null,f,e.range(s,e.pos))):_=h.createClassDeclaration(l,n,t,o,u,c,f,e.range(s,e.pos)),!e.skip(64))do{let d=this.parseClassMember(e,_);if(d)d.kind==69?_.indexSignature=d:(assert(d instanceof it),f.push(d));else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}while(!e.skip(64));return _.range.end=e.pos,_.overriddenModuleName=this.currentModuleName,_}parseClassExpression(e){let t=e.tokenPos,n;if(e.skipIdentifier()?n=h.createIdentifierExpression(e.readIdentifier(),e.range()):n=h.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(63))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=h.createClassDeclaration(n,null,0,null,null,null,s,e.range(t,e.pos));if(!e.skip(64))do{let l=this.parseClassMember(e,a);if(l)l.kind==69?a.indexSignature=l:(assert(a instanceof it),s.push(l));else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}while(!e.skip(64));return a.range.end=e.pos,h.createClassExpression(a)}parseClassMember(e,t){let n=t.kind==61,s=0,a=null;if(e.skip(115)){s=e.tokenPos;do{let oe=this.parseDecorator(e);if(!oe)break;a||(a=new Array),a.push(oe)}while(e.skip(115));n&&a&&this.error(1206,ue.join(a[0].range,a[a.length-1].range))}let l=t.flags&32768;n&&(l|=268435456);let o=0,u=0,c=t.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):c?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):c&&(l|=32768);let f=0,_=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos));let d=0,g=0,y=0,E=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,d=e.tokenPos,g=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!t.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,y=e.tokenPos,E=e.pos),s||(s=e.tokenPos)),t.flags&65536&&(l|=131072));let T=0,k=0;e.skip(40)&&(n||t.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,T=e.tokenPos,k=e.pos),s||(s=e.tokenPos));let F=0,w=0;if(e.peek()==45){let oe=e.mark();e.next(),e.peek()!=101?(e.discard(oe),l|=64,F=e.tokenPos,w=e.pos,s||(s=F)):e.reset(oe)}let R=0,C=0,M=!1;if(e.skip(2))switch(M=!0,R=e.tokenPos,C=e.pos,s||(s=R),n&&this.error(1031,e.range(R,C),"async"),e.peek()){case 44:case 42:case 43:case 48:case 0:case 45:case 40:case 12:{this.error(1042,e.range(R,C),"async"),e.next(),M=!1;break}}let W=e.mark(),G=!1,j=!1,z=0,U=0,Q=!1,Y=0,O=0;n||(e.skip(25)?e.peek(1)==116&&!e.peekOnNewLine()?(l|=2048,j=!0,z=e.tokenPos,U=e.pos,s||(s=z),l&64&&this.error(1042,e.range(F,w),"readonly")):e.reset(W):e.skip(47)?e.peek(1)==116&&!e.peekOnNewLine()?(l|=4096,Q=!0,Y=e.tokenPos,O=e.pos,s||(s=Y),l&64&&this.error(1042,e.range(F,w),"readonly")):e.reset(W):e.skip(10)&&(l|=524288,G=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(d,g),"static"),l&128&&this.error(1042,e.range(y,E),"abstract"),l&64&&this.error(1042,e.range(F,w),"readonly")));let ie=j||Q,H;if(G)H=h.createConstructorExpression(e.range());else{if(!ie&&e.skip(67)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(f,_),"public"):l&1024?this.error(1042,e.range(f,_),"protected"):l&512&&this.error(1042,e.range(f,_),"private"),l&32&&this.error(1042,e.range(d,g),"static"),l&8192&&this.error(1042,e.range(T,k),"override"),l&128&&this.error(1042,e.range(y,E),"abstract");let oe=this.parseIndexSignature(e,l,a);return oe?(e.skip(71),oe):(l&64&&this.error(1042,e.range(F,w),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),H=h.createIdentifierExpression(e.readIdentifier(),e.range())}let ge=null;if(e.skip(73)){let oe=e.tokenPos;if(ge=this.parseTypeParameters(e),!ge)return null;G?this.error(1092,e.range(oe,e.pos)):ie?this.error(1094,e.range(oe,e.pos)):l|=65536}if(e.skip(65)){l&4&&this.error(1031,e.range(o,u),"declare");let oe=e.tokenPos,pe=this.parseParameters(e,G);if(!pe)return null;let It=this.parseParametersThis;if(G)for(let je=0,ki=pe.length;je<ki;++je){let dt=pe[je];if(dt.isAny(1856)){let pr=h.createFieldDeclaration(dt.name,null,dt.flags|262144,dt.type,null,dt.range);pr.parameterIndex=je,dt.implicitFieldDeclaration=pr,t.members.push(pr)}}else j?pe.length&&this.error(1054,H.range):Q?(pe.length!=1&&this.error(1049,H.range),pe.length>0&&pe[0].initializer&&this.error(1052,H.range)):H.text=="constructor"&&this.error(230,H.range,"constructor");let Fe=null;if(e.skip(101)){if(H.kind==28?this.error(1093,e.range()):Q&&this.error(1095,e.range()),Fe=this.parseType(e,Q||H.kind==28),!Fe)return null}else Fe=h.createOmittedType(e.range(e.pos)),!Q&&H.kind!=28&&this.error(1110,Fe.range);let vn=h.createFunctionType(pe,Fe,It,!1,e.range(oe,e.pos)),Ot=null;if(e.skip(63)){l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),H.text):n&&this.error(1005,e.range(),";");let je=this.inAsyncContext;if(this.inAsyncContext=M,Ot=this.parseBlockStatement(e,!1),this.inAsyncContext=je,!Ot)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let zr=M;M&&(H.kind==28||ie)&&(zr=!1,this.error(1042,e.range(R,C),"async"));let Ii=h.createMethodDeclaration(H,a,l,ge,vn,Ot,e.range(s,e.pos),zr);return n&&e.skip(72)||e.skip(71),Ii}else if(G)this.error(2390,H.range);else if(ie)this.error(2391,H.range);else{M&&this.error(1042,e.range(R,C),"async"),l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(y,E),"abstract"),l&2048&&this.error(1042,e.range(z,U),"get"),l&4096&&this.error(1042,e.range(Y,O),"set");let oe=null;if(e.skip(100)&&this.error(219,e.range(s,e.pos)),e.skip(96)&&(l|=16384),e.skip(101)){if(oe=this.parseType(e),!oe)return null}else this.error(1110,e.range());let pe=null;if(e.skip(102)){if(l&32768&&this.error(1039,e.range()),pe=this.parseExpression(e),!pe)return null;l&16384&&this.error(1263,H.range)}let It=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,It);let Fe=h.createFieldDeclaration(H,a,l,oe,pe,It);return n&&e.skip(72)||e.skip(71),Fe}return null}parseIndexSignature(e,t,n){n&&n.length>0&&this.error(1206,ue.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(101)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(68))if(e.skip(101)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):h.createIndexSignature(l,o,t,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,t,n,s){if(e.skipIdentifier()){let a=h.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(63)){let l=new Array,o=h.createNamespaceDeclaration(a,n,t,l,e.range(s,e.pos));for(;!e.skip(64);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==39)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(71),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,t,n){let s=null,a=assert(this.currentSource);if(e.skip(63)){let l=new Array;for(;!e.skip(64);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(117))s=h.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=h.createExportStatement(l,s,n,e.range(t,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new Ls(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(71),o}else if(e.skip(85))if(e.skip(23))if(e.skip(117)){s=h.createStringLiteralExpression(e.readString(),e.range());let l=h.createExportStatement(null,s,n,e.range(t,e.pos)),o=assert(l.internalPath),u=e.source,c=u.exportPaths;return c?c.includes(o)||c.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new Ls(a,s)),this.backlog.push(o)),e.skip(71),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?h.createExportMember(t,n,ue.join(t.range,n.range)):h.createExportMember(t,null,t.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,t,n,s){let a=e.readIdentifier(),l=e.range(),o=h.createExportStatement([h.createExportMember(h.createIdentifierExpression(a,l),h.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(t,e.pos));return e.skip(71),o}parseImport(e){let t=e.tokenPos,n=null,s=null,a=!1;if(e.skip(63))for(n=new Array;!e.skip(64);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(85))if(e.skip(1))if(e.skipIdentifier())s=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(116,1)){let l=e.readIdentifier(),o=e.range();if(n=[h.createImportDeclaration(h.createIdentifierExpression("default",o),h.createIdentifierExpression(l,o),o)],e.skip(72))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(117)){let l=h.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=h.createWildcardImportStatement(s,l,e.range(t,e.pos))):o=h.createImportStatement(n,l,e.range(t,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new Ls(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(71),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?h.createImportDeclaration(t,n,ue.join(t.range,n.range)):h.createImportDeclaration(t,null,t.range)}else this.error(1003,e.range());return null}parseExportImport(e,t){if(e.skipIdentifier()){let n=h.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(102))if(e.skipIdentifier()){let s=h.createIdentifierExpression(e.readIdentifier(),e.range()),a=h.createExportImportStatement(s,n,e.range(t,e.pos));return e.skip(71),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,t=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 58:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 63:{a=this.parseBlockStatement(e,t);break}case 46:{t&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 71:return h.createEmptyStatement(e.range(e.tokenPos));case 51:{a=this.parseSwitchStatement(e);break}case 53:{a=this.parseThrowStatement(e);break}case 55:{a=this.parseTryStatement(e);break}case 59:{a=this.parseVoidStatement(e);break}case 60:{a=this.parseWhileStatement(e);break}case 56:if(e.peek(1)==116){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,t){let n=e.tokenPos,s=new Array;for(;!e.skip(64);){let l=e.mark(),o=this.parseStatement(e,t);if(o)e.discard(l),s.push(o);else{if(e.token==122)return null;e.reset(l),this.skipStatement(e)}}let a=h.createBlockStatement(s,e.range(n,e.pos));return t&&e.skip(71),a}parseBreak(e){let t=null;e.peek()==116&&!e.peekOnNewLine()&&(e.next(1),t=h.createIdentifierExpression(e.readIdentifier(),e.range()));let n=h.createBreakStatement(t,e.range());return e.skip(71),n}parseContinue(e){let t=null;e.peek()==116&&!e.peekOnNewLine()&&(e.next(1),t=h.createIdentifierExpression(e.readIdentifier(),e.range()));let n=h.createContinueStatement(t,e.range());return e.skip(71),n}parseDoStatement(e){let t=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(60))if(e.skip(65)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(66)){let a=h.createDoStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let t=this.parseExpression(e);if(!t)return null;let n=h.createExpressionStatement(t);return e.skip(71),n}parseForStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(58))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(71)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==42)return n.expression.kind!=8?(this.error(1003,n.range),null):this.parseForOfStatement(e,t,n);if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,t,n)}return this.error(1003,n.range),null}if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==71){let s=null;if(!e.skip(71)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==71){let a=null;if(!e.skip(66)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(66))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?h.createForStatement(n,s?s.expression:null,a,l,e.range(t,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,t,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(66))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?h.createForOfStatement(n,s,a,e.range(t,e.pos)):null}parseIfStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:h.createIfStatement(n,s,a,e.range(t,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66))if(e.skip(63)){let s=new Array;for(;!e.skip(64);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=h.createSwitchStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let t=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(101)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=64;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return h.createSwitchCase(a,n,e.range(t,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(101)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=64;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return h.createSwitchCase(null,n,e.range(t,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let t=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=h.createThrowStatement(n,e.range(t,e.pos));return e.skip(71)||this.checkASI(e),s}parseTryStatement(e){let t=e.tokenPos,n;if(e.skip(63)){let s=new Array;for(;!e.skip(64);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(65))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=h.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(66))return this.error(1005,e.range(),")"),null;if(!e.skip(63))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(64);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(63))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(64);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=h.createTryStatement(s,a,l,o,e.range(t,e.pos));return e.skip(71),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,t,n,s){if(e.skipIdentifier()){let a=h.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(73)){if(l=this.parseTypeParameters(e),!l)return null;t|=65536}if(e.skip(102)){e.skip(94);let o=this.parseType(e);if(!o)return null;if(Ns(a.text,o))return this.error(2456,a.range,a.text),null;let u=h.createTypeDeclaration(a,n,t,l,o,e.range(s,e.pos));return e.skip(71),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,t){let n=e.tokenPos;assert(e.next()==117);let s=e.readString(),a=h.createModuleDeclaration(s,t,e.range(n,e.pos));return this.currentModuleName=s,e.skip(71),a}parseVoidStatement(e){let t=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=h.createVoidStatement(n,e.range(t,e.pos));return e.skip(71),s}parseWhileStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66)){let s=this.parseStatement(e);if(!s)return null;let a=h.createWhileStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let t=e.next(1),n=e.tokenPos;switch(t){case 70:case 62:case 96:case 97:case 82:case 83:case 57:case 59:case 14:{let s=this.parseExpression(e,17);return s?h.createUnaryPrefixExpression(t,s,e.range(n,e.pos)):null}case 115:{let s=this.parseLazyExpression(e,n);return s||null}case 3:{let s=e.pos,a=this.parseExpression(e,17);if(!a)return null;if(this.inAsyncContext||this.error(1308,e.range(n,s)),a.kind==32){let l=this.awaitNullifiedLazyExpressions;l==null&&(l=new Set,this.awaitNullifiedLazyExpressions=l),l.add(a)}return h.createAwaitExpression(a,e.range(n,e.pos))}case 2:{let s=e.pos;if(e.peekOnNewLine())return this.error(1042,e.range(n,s),"async"),null;switch(e.peek()){case 24:{e.next();let a=this.parseFunctionExpression(e,!0);return a?(a.range.start=n,a):null}case 65:{e.next();let a=this.parseFunctionExpression(e,!0);return a?(a.range.start=n,a):null}case 116:{if(!e.peekOnNewLine()){e.next();let a=h.createIdentifierExpression(e.readIdentifier(),e.range(n,e.pos));if(e.peek()==81&&!e.peekOnNewLine()){let l=this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[h.createParameter(0,a,h.createOmittedType(a.range.atEnd),null,a.range)],null,2,n,-1,!0);return l||null}}break}}return this.error(1042,e.range(n,s),"async"),null}case 88:case 89:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 8:case 14:case 23:break;default:this.error(2357,s.range)}return h.createUnaryPrefixExpression(t,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(65)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return h.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return h.createNullExpression(e.range());case 54:return h.createTrueExpression(e.range());case 20:return h.createFalseExpression(e.range());case 52:return h.createThisExpression(e.range());case 10:return h.createConstructorExpression(e.range());case 65:{if(e.skip(66))return this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 70:return e.reset(s),this.parseFunctionExpression(e);case 116:{switch(e.readIdentifier(),e.next()){case 66:{if(e.skip(101)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(81)){a=!1;break}}case 101:return e.reset(s),this.parseFunctionExpression(e);case 100:{if(e.skip(101)||e.skip(72)||e.skip(66))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 72:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(66)?(l=h.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 67:{let s=new Array;for(;!e.skip(68);){let a;if(e.peek()==72)a=h.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(72)){if(e.skip(68))break;return this.error(1005,e.range(),"]"),null}}return h.createArrayLiteralExpression(s,e.range(n,e.pos))}case 63:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(64);){if(e.skipIdentifier())o=h.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(117))return this.error(1003,e.range()),null;o=h.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(101)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}return h.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 73:{let s=this.parseType(e);if(!s)return null;if(!e.skip(74))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?h.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 116:{let s=e.readIdentifier();if(s=="null")return h.createNullExpression(e.range());let a=h.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(120)?this.parseTemplateLiteral(e,a):e.peek()==81&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[h.createParameter(0,a,h.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 50:{e.peek()!=69&&e.nextToken!=65&&this.error(1034,e.range());let s=h.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 117:return h.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 120:return this.parseTemplateLiteral(e);case 118:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),h.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 119:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),h.createFloatLiteralExpression(s,e.range(n,e.pos))}case 86:{let s=e.readRegexpPattern();return e.skip(86)?h.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return t==122?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let t=e.mark();if(!e.skip(73))return null;let n=e.tokenPos,s=null;do{if(e.peek()==74)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(t),null;s?s.push(a):s=[a]}while(e.skip(72));if(e.skip(74)){let a=e.pos;if(e.skip(65))return s||this.error(1099,e.range(n,a)),s}return e.reset(t),null}parseArguments(e){let t=new Array;for(;!e.skip(66);){let n=this.parseExpression(e,2);if(!n)return null;if(t.push(n),!e.skip(72)){if(e.skip(66))break;return this.error(1005,e.range(),")"),null}}return t}parseLazyExpression(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=e.readIdentifier();if(n!="lazy")return this.error(212,e.range(t,e.pos),n),null;let s=this.parseExpression(e,17);if(!s)return null;let a=h.createLazyExpression(s,e.range(t,e.pos)),l=this.unplacedLazyExpressions;return l==null&&(l=new Set,this.unplacedLazyExpressions=l),l.add(a),a}parseExpression(e,t=1){assert(t!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=KE(e.peek()))>=t;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=h.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=h.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 96:{n=h.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=h.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 67:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(68))return this.error(1005,e.range(),"]"),null;n=h.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 88:case 89:{n.kind!=8&&n.kind!=14&&n.kind!=23&&this.error(2357,n.range),n=h.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 100:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(101))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,t>1?2:1);if(!u)return null;n=h.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 72:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(72));n=h.createCommaExpression(o,e.range(s,e.pos));break}case 69:{if(e.skipIdentifier(2)){let o=h.createIdentifierExpression(e.readIdentifier(),e.range());n=h.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==11){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(120)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 102:case 103:case 104:case 106:case 105:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:case 84:{let o=this.parseExpression(e,a);if(!o)return null;n=h.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 73:case 74:case 75:case 76:case 77:case 79:case 80:case 78:case 82:case 83:case 85:case 86:case 87:case 90:case 91:case 92:case 93:case 94:case 95:case 98:case 99:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=h.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,t=null){let n=t?t.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(64))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return h.createTemplateLiteralExpression(t,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,t,n,s){let a=s.expression;switch(a.kind){case 8:{s.expression=h.createPropertyAccessExpression(n,a,e.range(t,e.pos));break}case 11:{let l=this.joinPropertyCall(e,t,n,a);if(!l)return null;s.expression=l,s.range=e.range(t,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,t,n=!1){let s=null;for(;e.skip(65)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;t=h.createCallExpression(t,s,a,e.range(t.range.start,e.pos)),n=!1}return t}checkASI(e){let t=e.peek();t==122||t==64||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let t=e.peek();if(t==122||t==71){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 116:{e.readIdentifier();break}case 117:case 120:{e.readString();break}case 118:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 119:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 63:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let t=1,n=!0;do switch(e.next()){case 122:{this.error(1005,e.range(),"}"),n=!1;break}case 63:{++t;break}case 64:{--t,t||(n=!1);break}case 116:{e.readIdentifier();break}case 117:{e.readString();break}case 120:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 118:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 119:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},tx=(C=>(C[C.None=0]="None",C[C.Comma=1]="Comma",C[C.Spread=2]="Spread",C[C.Yield=3]="Yield",C[C.Assignment=4]="Assignment",C[C.Conditional=5]="Conditional",C[C.LogicalOr=6]="LogicalOr",C[C.LogicalAnd=7]="LogicalAnd",C[C.BitwiseOr=8]="BitwiseOr",C[C.BitwiseXor=9]="BitwiseXor",C[C.BitwiseAnd=10]="BitwiseAnd",C[C.Equality=11]="Equality",C[C.Relational=12]="Relational",C[C.Shift=13]="Shift",C[C.Additive=14]="Additive",C[C.Multiplicative=15]="Multiplicative",C[C.Exponentiated=16]="Exponentiated",C[C.UnaryPrefix=17]="UnaryPrefix",C[C.UnaryPostfix=18]="UnaryPostfix",C[C.Call=19]="Call",C[C.MemberAccess=20]="MemberAccess",C[C.Grouping=21]="Grouping",C))(tx||{});function KE(i){switch(i){case 72:return 1;case 102:case 103:case 104:case 106:case 105:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:return 4;case 100:return 5;case 99:return 6;case 98:return 7;case 94:return 8;case 95:return 9;case 93:return 10;case 77:case 78:case 79:case 80:return 11;case 1:case 29:case 30:case 73:case 74:case 75:case 76:return 12;case 90:case 91:case 92:return 13;case 82:case 83:return 14;case 85:case 86:case 87:return 15;case 84:return 16;case 88:case 89:return 18;case 69:case 67:case 96:return 20}return 0}function Ns(i,r){switch(r.kind){case 1:{if(r.name.identifier.text==i)return!0;let e=r.typeArguments;if(e){for(let t=0,n=e.length;t<n;t++)if(Ns(i,e[t]))return!0}break}case 2:{let e=r;if(Ns(i,e.returnType))return!0;let t=e.parameters;for(let n=0,s=t.length;n<s;n++)if(Ns(i,t[n].type))return!0;break}case 3:{let e=r.elements;for(let t=0,n=e.length;t<n;t++)if(Ns(i,e[t]))return!0;break}default:assert(!1)}return!1}var rx=16,nn=rx-1,Xo=class{constructor(r,e,t,n,s){this.localFile=r;this.localIdentifier=e;this.foreignIdentifier=t;this.foreignPath=n;this.foreignPathAlt=s}},Zo=class{constructor(r,e,t,n){this.localIdentifier=r;this.foreignIdentifier=e;this.foreignPath=t;this.foreignPathAlt=n}},Tf=class{constructor(r,e,t){this.foreignPath=r;this.foreignPathAlt=e;this.pathLiteral=t}},Me=(O=>(O[O.Invalid=0]="Invalid",O[O.IndexedGet=1]="IndexedGet",O[O.IndexedSet=2]="IndexedSet",O[O.UncheckedIndexedGet=3]="UncheckedIndexedGet",O[O.UncheckedIndexedSet=4]="UncheckedIndexedSet",O[O.Add=5]="Add",O[O.Sub=6]="Sub",O[O.Mul=7]="Mul",O[O.Div=8]="Div",O[O.Rem=9]="Rem",O[O.Pow=10]="Pow",O[O.BitwiseAnd=11]="BitwiseAnd",O[O.BitwiseOr=12]="BitwiseOr",O[O.BitwiseXor=13]="BitwiseXor",O[O.BitwiseShl=14]="BitwiseShl",O[O.BitwiseShr=15]="BitwiseShr",O[O.BitwiseShrU=16]="BitwiseShrU",O[O.Eq=17]="Eq",O[O.Ne=18]="Ne",O[O.Gt=19]="Gt",O[O.Ge=20]="Ge",O[O.Lt=21]="Lt",O[O.Le=22]="Le",O[O.Plus=23]="Plus",O[O.Minus=24]="Minus",O[O.Not=25]="Not",O[O.BitwiseNot=26]="BitwiseNot",O[O.PrefixInc=27]="PrefixInc",O[O.PrefixDec=28]="PrefixDec",O[O.PostfixInc=29]="PostfixInc",O[O.PostfixDec=30]="PostfixDec",O))(Me||{});(n=>{function i(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=i;function r(s){switch(s){case 82:case 103:return 5;case 83:case 104:return 6;case 85:case 105:return 7;case 86:case 107:return 8;case 87:case 108:return 9;case 84:case 106:return 10;case 93:case 112:return 11;case 94:case 113:return 12;case 95:case 114:return 13;case 90:case 109:return 14;case 91:case 110:return 15;case 92:case 111:return 16;case 77:case 79:return 17;case 78:case 80:return 18;case 74:return 19;case 76:return 20;case 73:return 21;case 75:return 22}return 0}n.fromBinaryToken=r;function e(s){switch(s){case 82:return 23;case 83:return 24;case 96:return 25;case 97:return 26;case 88:return 27;case 89:return 28}return 0}n.fromUnaryPrefixToken=e;function t(s){switch(s){case 88:return 29;case 89:return 30}return 0}n.fromUnaryPostfixToken=t})(Me||={});var $o=class{constructor(r){this.leafCount=r}},zs=class extends tt{constructor(e,t=null){super(t);this.options=e;this.sources=[];this.stdSources=new Set;this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._taskPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Yt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new Ms(this.diagnostics,this.sources),this.resolver=new Rs(this);let n=new Us(this,Te.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(N.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(N.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(N.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(N.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(N.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(N.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(N.Function,6)),e}get taskPrototype(){let e=this._taskPrototype;if(!e){let t=ee(this.elementsByName,N.Task);if(!t||t.kind!=6)return null;this._taskPrototype=e=t}return e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(N.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(N.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(N.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(N.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(N.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(N.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(N.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(N.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(N.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(N.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(N.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(N.String)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(N.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(N.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(N.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(N.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(N.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(N.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(N.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(N.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(N.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(N.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(N.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(N.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(N.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(N.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(N.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(N.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(N.OBJECT)),e}getSource(e){let t=this.sources;for(let n=0;n<t.length;++n){let s=t[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+nn&~nn}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let t=yf(e);if(t){let n=this.instancesByName;if(n.has(t)){let s=assert(n.get(t));if(s.kind==5)return s}}return null}computeBlockStart(e){let t=this.blockOverhead;return(e+t+nn&~nn)-t}computeBlockStart64(e){let t=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,t),rx),t)}computeBlockSize(e,t){t&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+nn&~nn)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,t=0){let n=Te.native.range;return h.createVariableDeclaration(h.createIdentifierExpression(e,n),null,t,null,null,n)}makeNativeTypeDeclaration(e,t=0){let n=Te.native.range,s=h.createIdentifierExpression(e,n);return h.createTypeDeclaration(s,null,t,null,h.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,t=0){let n=Te.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=h.createFunctionType([],h.createNamedType(h.createSimpleTypeName(N.void_,n),null,!1,n),null,!1,n)),h.createFunctionDeclaration(h.createIdentifierExpression(e,n),null,t,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,t=0){let n=Te.native.range;return h.createNamespaceDeclaration(h.createIdentifierExpression(e,n),null,t,[],n)}makeNativeFunction(e,t,n=this.nativeFile,s=0,a=0){return new Lt(e,new lt(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,t)}getElementByDeclaration(e){let t=this.elementsByDeclaration;return t.has(e)?assert(t.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(N.i8,p.i8),this.registerNativeType(N.i16,p.i16),this.registerNativeType(N.i32,p.i32),this.registerNativeType(N.i64,p.i64),this.registerNativeType(N.isize,e.isizeType),this.registerNativeType(N.u8,p.u8),this.registerNativeType(N.u16,p.u16),this.registerNativeType(N.u32,p.u32),this.registerNativeType(N.u64,p.u64),this.registerNativeType(N.usize,e.usizeType),this.registerNativeType(N.bool,p.bool),this.registerNativeType(N.f32,p.f32),this.registerNativeType(N.f64,p.f64),this.registerNativeType(N.void_,p.void),this.registerNativeType(N.number,p.f64),this.registerNativeType(N.boolean,p.bool),this.nativeFile.add(N.native,new at(N.native,this.nativeFile,this.makeNativeTypeDeclaration(N.native,65538),512)),this.nativeFile.add(N.indexof,new at(N.indexof,this.nativeFile,this.makeNativeTypeDeclaration(N.indexof,65538),512)),this.nativeFile.add(N.valueof,new at(N.valueof,this.nativeFile,this.makeNativeTypeDeclaration(N.valueof,65538),512)),this.nativeFile.add(N.returnof,new at(N.returnof,this.nativeFile,this.makeNativeTypeDeclaration(N.returnof,65538),512)),this.nativeFile.add(N.thisof,new at(N.thisof,this.nativeFile,this.makeNativeTypeDeclaration(N.thisof,65538),512)),this.nativeFile.add(N.nonnull,new at(N.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(N.nonnull,65538),512)),this.registerNativeType(N.v128,p.v128),this.registerNativeType(N.ref_func,p.func),this.registerNativeType(N.ref_extern,p.extern),this.registerNativeType(N.ref_any,p.any),this.registerNativeType(N.ref_eq,p.eq),this.registerNativeType(N.ref_struct,p.struct),this.registerNativeType(N.ref_array,p.array),this.registerNativeType(N.ref_i31,p.i31),this.registerNativeType(N.ref_string,p.string),this.registerNativeType(N.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(N.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(N.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(N.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(N.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(N.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(N.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(N.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(N.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(N.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(N.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(N.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(N.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(N.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(N.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(N.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(16384)?1:0,0));let t=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,c=this.sources.length;u<c;++u){let f=this.sources[u],_=new Us(this,f);this.filesByName.set(_.internalName,_);let d=f.statements;for(let g=0,y=d.length;g<y;++g){let E=d[g];switch(E.kind){case 39:{this.initializeExports(E,_,n,s);break}case 40:{this.initializeExportDefault(E,_,a,l);break}case 46:{this.initializeImports(E,_,t,n);break}case 51:{this.initializeVariables(E,_);break}case 55:{this.initializeClass(E,_,a,l);break}case 56:{this.initializeEnum(E,_);break}case 59:{this.initializeFunction(E,_);break}case 61:{this.initializeInterface(E,_,a);break}case 63:{this.initializeNamespace(E,_,a,l);break}case 64:{this.initializeTypeDefinition(E,_);break}}}}for(let u=Map_keys(s),c=0,f=u.length;c<f;++c){let _=u[c],d=assert(s.get(_));for(let g=0,y=d.length;g<y;++g){let E=unchecked(d[g]),T=this.lookupForeignFile(E.foreignPath,E.foreignPathAlt);if(!T){this.error(6054,E.pathLiteral.range,E.pathLiteral.value);continue}_.ensureExportStar(T)}}do{let u=0,c=!1;for(;u<t.length;){let f=t[u],_=f.localIdentifier,d=f.foreignIdentifier,g=assert(this.lookupForeignFile(f.foreignPath,f.foreignPathAlt));if(d){let y=this.lookupForeign(d.text,g,n);y?(f.localFile.add(_.text,y,_),t.splice(u,1),c=!0):++u}else{let y=f.localFile,E=_.text;y.add(E,g.asAliasNamespace(E,y,_),_),t.splice(u,1),c=!0}}if(!c){for(let f=0,_=t.length;f<_;++f){let d=t[f],g=d.foreignIdentifier;g&&this.error(2305,g.range,d.foreignPath,g.text)}break}}while(!0);for(let u=Map_keys(n),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),d=assert(n.get(_));for(let g=Map_keys(d),y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=assert(d.get(T)),F=k.localIdentifier.text,w=k.foreignPath;if(w){let R=assert(this.lookupForeignFile(w,assert(k.foreignPathAlt))),C=this.lookupForeign(F,R,n);C?_.ensureExport(T,C):this.error(2305,k.localIdentifier.range,w,F)}else{let R=_.getMember(F);if(R)_.ensureExport(T,R);else{let C=this.lookup(F);C&&Gs(C.kind)?_.ensureExport(T,C):this.error(2305,k.foreignIdentifier.range,_.internalName,k.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(p.i8,N.I8),this.registerWrapperClass(p.i16,N.I16),this.registerWrapperClass(p.i32,N.I32),this.registerWrapperClass(p.i64,N.I64),this.registerWrapperClass(e.isizeType,N.Isize),this.registerWrapperClass(p.u8,N.U8),this.registerWrapperClass(p.u16,N.U16),this.registerWrapperClass(p.u32,N.U32),this.registerWrapperClass(p.u64,N.U64),this.registerWrapperClass(e.usizeType,N.Usize),this.registerWrapperClass(p.bool,N.Bool),this.registerWrapperClass(p.f32,N.F32),this.registerWrapperClass(p.f64,N.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,N.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,N.RefFunc),this.registerWrapperClass(p.extern,N.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,N.RefAny),this.registerWrapperClass(p.eq,N.RefEq),this.registerWrapperClass(p.struct,N.RefStruct),this.registerWrapperClass(p.array,N.RefArray),this.registerWrapperClass(p.i31,N.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,N.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let f=a[u],_=assert(f.extendsNode),d=o.resolveTypeName(_.name,null,f.parent);if(d){if(f.kind==6)if(d.kind==6){let g=d;g.hasDecorator(32)&&this.error(211,_.range,g.identifierNode.text),g.hasDecorator(16)!=f.hasDecorator(16)&&this.error(207,ue.join(f.identifierNode.range,_.range)),f.extends(g)?this.error(2506,g.identifierNode.range,g.identifierNode.text):f.basePrototype=g}else this.error(1311,_.range);else if(f.kind==8)if(d.kind==8){let g=d;f.extends(g)?this.error(2506,g.identifierNode.range,g.identifierNode.text):f.basePrototype=g}else this.error(2312,_.range)}}for(let u=0,c=a.length;u<c;u++){let f=a[u],_=f.instanceMembers;if(_){let d=Map_values(_);for(let g=0,y=d.length;g<y;g++){let E=d[g],T=E.declaration;if(T.is(8192)){let k=f.basePrototype,F=!1;for(;k;){let w=k.instanceMembers;if(w&&w.has(E.name)){F=!0;break}k=k.basePrototype}if(!F){let w=assert(f.basePrototype);this.error(4117,T.name.range,w.name)}}}}}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=assert(f.implementsNodes);for(let d=0,g=_.length;d<g;++d){let y=_[d],E=o.resolveTypeName(y.name,null,f.parent);if(E)if(E.kind==8){let T=E,k=f.interfacePrototypes;k||(f.interfacePrototypes=k=new Array),k.push(T)}else this.error(2422,y.range)}}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.basePrototype;_&&this.processOverrides(f,_)}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=f.basePrototype,d=f.interfacePrototypes;if(_&&this.processOverrides(f,_),d)for(let g=0,y=d.length;g<y;++g)this.processOverrides(f,d[g])}{let u=e.globalAliases;u||(u=new Map),u.has(N.abort)||u.set(N.abort,m.abort),u.has(N.trace)||u.set(N.trace,m.trace),u.has(N.seed)||u.set(N.seed,m.seed),u.has(N.Math)||u.set(N.Math,N.NativeMath),u.has(N.Mathf)||u.set(N.Mathf,N.NativeMathf);for(let c=Map_keys(u),f=0,_=c.length;f<_;++f){let d=unchecked(c[f]),g=changetype(u.get(d));if(assert(g!=null),!g.length){this.elementsByName.delete(d);continue}let y=g.charCodeAt(0);if(y>=48&&y<=57)this.registerConstantInteger(d,p.i32,i64_new(parseInt(g,10)));else{let E=this.elementsByName;E.has(g)?E.set(d,assert(E.get(g))):this.error(111,null,g)}}}for(let u=Map_values(this.filesByName),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]);_.source.sourceKind==1&&this.markModuleExports(_)}}processOverrides(e,t){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=t.instanceMembers;if(l)for(let c=0,f=s.length;c<f;++c){let _=s[c];if(l.has(_.name)){let d=assert(l.get(_.name));this.doProcessOverride(e,_,t,d)}}let o=t.interfacePrototypes;if(o)for(let c=0,f=o.length;c<f;++c){let _=o[c];_!=t&&this.processOverrides(e,_)}let u=t.basePrototype;if(!u||(a||(a=new Set),a.add(t),a.has(u)))break;t=u}while(!0)}}doProcessOverride(e,t,n,s){if(!t.isAny(524800))if(t.kind==4&&s.kind==4){let a=t,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let c=l.unboundOverrides;c||(l.unboundOverrides=c=new Set),c.add(t);let f=l.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}else if(t.kind==10&&s.kind==10){let a=t,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let c=a.isField;if(c!=l.isField){c?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(c)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let c=a.getterPrototype;if(c){let _=o.unboundOverrides;_||(o.unboundOverrides=_=new Set),_.add(c)}let f=o.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let _=u.unboundOverrides;_||(u.unboundOverrides=_=new Set),_.add(c)}let f=u.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}}else this.errorRelated(2416,t.identifierNode.range,s.identifierNode.range,t.name,e.internalName,n.internalName)}lookup(e){let t=this.elementsByName;return t.has(e)?assert(t.get(e)):null}require(e,t){let n=this.lookup(e);if(!n)throw new Error(`Missing standard library component: ${e}`);if(n.kind!=t)throw Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let t=this.require(e,6),n=this.resolver.resolveClass(t,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,t=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,t);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let t=e.exports;if(t)for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let t=e.members;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,t,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(t,n)}registerNativeType(e,t){let n=new at(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(t),this.nativeFile.add(e,n)}registerWrapperClass(e,t){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(t));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,t,n){assert(t.isIntegerInclReference);let s=new ti(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,t),this.nativeFile.add(e,s)}registerConstantFloat(e,t,n){assert(t.isFloatValue);let s=new ti(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,t),this.nativeFile.add(e,s)}ensureGlobal(e,t){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=t){let a=wf(s,t);if(!a)return Gs(s.kind)?this.errorRelated(2300,t.identifierNode.range,s.declaration.name.range,e):this.error(2300,t.identifierNode.range,e),t;t=a}}return n.set(e,t),t}lookupForeignFile(e,t){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(t)?assert(n.get(t)):null}lookupForeign(e,t,n){do{let a=t.lookupExport(e);if(a)return a;if(n.has(t)){let l=assert(n.get(t));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let c=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!c)return null;e=o.localIdentifier.text,t=c;continue}if(a=t.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=t.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,t){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Rt.fromNode(l.name),u=Nt.fromKind(o);u&&(t&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,t){return this.options.hasFeature(e)?!0:(this.error(103,t.range,Di(e)),!1)}checkTypeSupported(e,t){switch(e.kind){case 13:return this.checkFeatureEnabled(16,t);case 16:case 15:return e.is(512)?this.checkFeatureEnabled(256,t):this.checkFeatureEnabled(1024,t);case 17:case 18:case 19:case 20:case 21:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(1024,t);case 22:case 23:case 24:case 25:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(16384,t)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkInlineStructValue(s[a],t,"a type argument (Array<T>)")||!this.checkTypeSupported(s[a],t))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,t))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],t))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,t))return!1}}return!0}checkInlineStructValue(e,t,n){let s=e.getClass();return s!=null&&s.hasDecorator(4096)?(this.error(100,t.range,n=="a global"?"an @inline struct at top level (a global is a pointer slot, so two values would alias; declare it inside a function)":"an @inline struct value in "+n+" (value types are not implemented here yet; a pointer would alias)"),!1):!0}initializeClass(e,t,n,s){let a=e.name.text,l=e.declaredAsStruct&&HE(e.decorators,64),o=new Os(a,t,e,this.checkDecorators(e.decorators,49|(e.declaredAsStruct?2112:0)));if(!t.add(a,o))return null;l&&(o.decoratorFlags|=4096),(o.hasDecorator(2048)||o.hasDecorator(4096))&&(o.decoratorFlags|=32);let u=e.implementsTypes;if(u){let f=u.length;f&&(o.hasDecorator(16)?this.error(208,ue.join(e.name.range,u[f-1].range)):s.push(o))}e.extendsType?o.hasDecorator(4096)?this.error(100,ue.join(e.name.range,assert(e.extendsType).range),"inheritance on an @inline struct (a value type is final: no base class, no virtual methods)"):o.hasDecorator(2048)?this.error(100,ue.join(e.name.range,assert(e.extendsType).range),"inheritance on an @managed struct (its fields must stay at fixed offsets from the reference)"):n.push(o):!o.hasDecorator(16)&&o.internalName!=m.Object&&(o.implicitlyExtendsObject=!0);let c=e.members;for(let f=0,_=c.length;f<_;++f){let d=c[f];switch(d.kind){case 58:{this.initializeField(d,o);break}case 62:{let g=d;if(g.is(128)&&g.is(65536)&&this.error(241,g.name.range,g.name.text),d.isAny(6144))this.initializeProperty(g,o);else{let y=this.initializeMethod(g,o);y&&g.name.kind==28&&(o.constructorPrototype=y)}break}case 69:break;default:assert(!1)}}return o}initializeField(e,t){let n=e.name.text,s=e.decorators,a,l=8192;if(t.is(32768)&&(l|=128),e.is(32)){if(assert(t.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new ti(n,t,this.checkDecorators(s,l),e),!t.add(n,a))return}else if(assert(!e.isAny(6272)),a=sn.forField(n,t,e,this.checkDecorators(s,l)),!t.addInstance(n,a))return}initializeMethod(e,t){let n=e.name.text,s=e.is(32),a=8256;e.is(65536)||(a|=14),t.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new lt(n,t,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!x.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=28),!t.add(n,l))return null}else if(!t.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,t),l}checkOperatorOverloads(e,t,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let c=l.args[0];if(c.isLiteralKind(2)){let f=c.value,_=Me.fromDecorator(l.decoratorKind,f);if(_==0)this.error(224,c.range,f);else{let d=n.operatorOverloadPrototypes;d.has(_)?this.error(2393,c.range):(t.operatorKind=_,d.set(_,t))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,t){let n=e.name.text;if(e.is(32)){let s=t.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new sn(n,t,e);return t.add(n,a)?a:null}}else{let s=t.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new sn(n,t,e);return t.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,t){let n=this.ensureProperty(e,t);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new lt((a?rl:il)+s,n.parent,e,this.checkDecorators(e.decorators,8256));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,t){let n=e.name.text,s=new Yo(n,t,e,this.checkDecorators(e.decorators,1089));if(!t.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,t){let n=e.name.text,s=new Jo(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeExports(e,t,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],t,e.internalPath,n);else{let l;s.has(t)?l=assert(s.get(t)):s.set(t,l=[]);let o=e.internalPath;l.push(new Tf(o,o.endsWith(Qe)?o.substring(0,o.length-Qe.length):o+Qe,assert(e.path)))}}initializeExport(e,t,n,s){let a=e.localName.text,l=e.exportedName.text,o=t.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=t.getMember(a))t.ensureExport(l,o);else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new Zo(e.localName,e.exportedName,null,null))}else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new Zo(e.localName,e.exportedName,n,n.endsWith(Qe)?n.substring(0,n.length-Qe.length):n+Qe))}}initializeExportDefault(e,t,n,s){let a=e.declaration,l=null;switch(a.kind){case 56:{l=this.initializeEnum(a,t);break}case 59:{l=this.initializeFunction(a,t);break}case 55:{l=this.initializeClass(a,t,n,s);break}case 61:{l=this.initializeInterface(a,t,n);break}case 63:{l=this.initializeNamespace(a,t,n,s);break}default:assert(!1)}if(l){let o=t.exports;if(!o)t.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,t,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],t,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Xo(t,l,null,e.internalPath,e.internalPath+Qe))}}initializeImport(e,t,n,s,a){let l=n.endsWith(Qe)?n.substring(0,n.length-Qe.length):n+Qe,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){t.add(e.name.text,u,e.name);return}}s.push(new Xo(t,e.name,e.foreignName,n,l))}initializeFunction(e,t){let n=e.name.text,s=8192;e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||t.kind!=6&&(s|=1),e.range.source.isLibrary&&(s|=512);let a=new lt(n,t,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!x.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),t.add(n,a)?a:null}initializeInterface(e,t,n){let s=e.name.text,a=new eu(s,t,e,this.checkDecorators(e.decorators,1));if(!t.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let c=l[o];switch(c.kind){case 58:{this.initializeFieldAsProperty(c,a);break}case 62:{let f=c;f.is(65536)&&this.error(241,f.name.range,f.name.text),c.isAny(6144)?this.initializeProperty(f,a):this.initializeMethod(f,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,t){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=h.createOmittedType(e.name.range.atEnd)),this.initializeProperty(h.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,h.createFunctionType([],s,null,!1,e.range),null,e.range),t),e.is(64)||this.initializeProperty(h.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,h.createFunctionType([h.createParameter(0,e.name,s,null,e.name.range)],h.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),t)}initializeNamespace(e,t,n,s){let a=e.name.text,l=new Vs(a,t,e,this.checkDecorators(e.decorators,1));if(!t.add(a,l))return null;let o=assert(t.getMember(a)),u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 55:{this.initializeClass(_,l,n,s);break}case 56:{this.initializeEnum(_,l);break}case 59:{this.initializeFunction(_,l);break}case 61:{this.initializeInterface(_,l,n);break}case 63:{this.initializeNamespace(_,l,n,s);break}case 64:{this.initializeTypeDefinition(_,l);break}case 51:{this.initializeVariables(_,l);break}default:assert(!1)}}return l!=o&&tr(l,o),o}initializeTypeDefinition(e,t){let n=e.name.text,s=new at(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeVariables(e,t){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let c=new ti(o,t,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!At.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),t.add(o,c)}}},Et=(E=>(E[E.Global=0]="Global",E[E.Local=1]="Local",E[E.Enum=2]="Enum",E[E.EnumValue=3]="EnumValue",E[E.FunctionPrototype=4]="FunctionPrototype",E[E.Function=5]="Function",E[E.ClassPrototype=6]="ClassPrototype",E[E.Class=7]="Class",E[E.InterfacePrototype=8]="InterfacePrototype",E[E.Interface=9]="Interface",E[E.PropertyPrototype=10]="PropertyPrototype",E[E.Property=11]="Property",E[E.Namespace=12]="Namespace",E[E.File=13]="File",E[E.TypeDefinition=14]="TypeDefinition",E[E.IndexSignature=15]="IndexSignature",E))(Et||{}),Nt=(y=>(y[y.None=0]="None",y[y.Global=1]="Global",y[y.OperatorBinary=2]="OperatorBinary",y[y.OperatorPrefix=4]="OperatorPrefix",y[y.OperatorPostfix=8]="OperatorPostfix",y[y.Unmanaged=16]="Unmanaged",y[y.Final=32]="Final",y[y.Inline=64]="Inline",y[y.ManagedStruct=2048]="ManagedStruct",y[y.External=128]="External",y[y.ExternalJs=256]="ExternalJs",y[y.Builtin=512]="Builtin",y[y.Lazy=1024]="Lazy",y[y.InlineStruct=4096]="InlineStruct",y[y.Unsafe=8192]="Unsafe",y))(Nt||{});(r=>{function i(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 2048;case 8:return 32;case 9:return 64;case 10:return 128;case 11:return 256;case 12:return 512;case 13:return 1024;case 14:return 8192;default:return 0}}r.fromKind=i})(Nt||={});var Ds=class{constructor(r,e,t,n,s){this.kind=r;this.name=e;this.internalName=t;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=t,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let r=this;do if(r=r.parent,r.kind==13)return r;while(!0)}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}set(r){this.flags|=r}unset(r){this.flags&=~r}hasDecorator(r){return(this.decoratorFlags&r)==r}hasAnyDecorator(r){return(this.decoratorFlags&r)!=0}getMember(r){let e=this.members;return e&&e.has(r)?assert(e.get(r)):null}lookup(r,e=!1){return this.parent.lookup(r,e)}add(r,e,t=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(r)){let l=assert(s.get(r));if(l.parent==this){let o=wf(l,e);if(o)e=o;else{let u=t||e.identifierNode;return Gs(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(r,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(r){if(this.isPublic==r.isPublic)return!0;let e=1536;return(this.flags&e)==(r.flags&e)}visibilityNoLessThan(r){return this.isPublic?!0:this.is(512)?r.is(512):this.is(1024)?r.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let r=this.parent;switch(r.kind){case 7:case 9:return r}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},ix=new Set;function Gs(i){return ix.has(i)}var Ar=class extends Ds{constructor(e,t,n,s,a,l){super(e,t,n,s,a);this.declaration=l;ix.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,t=e.name;if(e.kind==59||e.kind==62){let n=e.signature;if(t.range.source==n.range.source)return ue.join(t.range,n.range)}return t.range}get decoratorNodes(){return this.declaration.decorators}},nx=new Set;function Ko(i){return nx.has(i)}var rr=class extends Ar{constructor(e,t,n,s,a,l){super(e,t,n,s,a,l);this.type=p.void;nx.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}refineType(e){this.type=e,this.set(4194304)}},Us=class extends Ds{constructor(e,t){super(13,t.normalizedPath,t.internalPath,e,null);this.source=t;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=t,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,de.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,t,n=null){return t.hasDecorator(1)&&(t=this.program.ensureGlobal(e,t)),super.add(e,t,n)?(t=assert(this.getMember(e)),t.is(2)&&!n&&this.ensureExport(t.name,t),!0):!1}getMember(e){let t=super.getMember(e);if(t)return t;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(t=n[s].getMember(e))return t}return null}lookup(e,t=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,t){let n=this.exports;n||(this.exports=n=new Map),n.set(e,t),this.source.sourceKind==3&&this.program.ensureGlobal(e,t);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,t)}ensureExportStar(e){let t=this.exportsStar;if(!t)this.exportsStar=t=[];else if(t.includes(e))return;t.push(e)}lookupExport(e){let t=this.exports;if(t&&t.has(e))return assert(t.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,t,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new Vs(e,t,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let t=this.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},at=class extends rr{constructor(r,e,t,n=0){super(14,r,Ke(r,e,!1),e.program,e,t),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},Vs=class extends Ar{constructor(r,e,t,n=0){super(12,r,Ke(r,e,!1),e.program,e,t),this.decoratorFlags=n}lookup(r,e=!1){let t=this.getMember(r);return t||super.lookup(r,e)}},Yo=class extends rr{constructor(e,t,n,s=0){super(2,e,Ke(e,t,!1),t.program,t,n);this.toStringFunctionName=null;this.underlyingTypeResolved=!1;this.underlyingTypeResolving=!1;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,t=!1){let n=this.getMember(e);return n||super.lookup(e,t)}},kf=(t=>(t[t.None=0]="None",t[t.Integer=1]="Integer",t[t.Float=2]="Float",t))(kf||{}),ri=class extends rr{constructor(e,t,n,s=n.program.makeNativeVariableDeclaration(t)){super(e,t,Ke(t,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,t){assert(t.isIntegerInclReference),this.type=t,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,t){assert(t.isFloatValue),this.type=t,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},Jo=class extends ri{constructor(e,t,n,s=0){super(3,e,t,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(t.type)}get valueNode(){return this.declaration.initializer}},ti=class extends ri{constructor(r,e,t,n=e.program.makeNativeVariableDeclaration(r)){super(0,r,e,n),this.decoratorFlags=t}},Sf=class{constructor(r,e,t=null){this.name=r;this.type=e;this.initializer=t}},ye=class extends ri{constructor(e,t,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=t;this.fieldLocals=null;this.isViewParam=!1;this.isViewLocal=!1;this.originalName=e,this.index=t,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},lt=class i extends Ar{constructor(e,t,n,s=0){super(4,e,Ke(e,t,n.is(262144)),t.program,t,n);this.operatorKind=0;this.capturesThis=!1;this.envKind=0;this.envClass=null;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}get isAsync(){return this.declaration.isAsync&&!this.isAny(530432)}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==62);let s=new i(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,t.set(e,s),s}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?assert(t.get(e)):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},Lt=class i extends rr{constructor(e,t,n,s,a=null){super(5,e,Ke(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.tableIndex=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.nextBreakId=0;this.breakStack=null;this.prototype=t,this.typeArguments=n,this.signature=s,this.flags=t.flags|4194304,this.decoratorFlags=t.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=t.program;this.type=s.type;let o=Jt.createDefault(this);if(this.flow=o,!t.is(32768)){let u=0,c=s.thisType;if(c){let d=new ye(N.this_,u++,c,this),g=this.flow.scopedLocals;g||(this.flow.scopedLocals=g=new Map),g.set(N.this_,d),this.localsByIndex[d.index]=d,o.setLocalFlag(d.index,8)}if(s.hasHiddenDestParam){let d=new ye("$sretDest",u++,p.u32,this);this.localsByIndex[d.index]=d,o.setLocalFlag(d.index,8)}let f=s.parameterTypes,_=null;for(let d=0,g=f.length;d<g;++d){let y=f[d],E=this.getParameterName(d);if(s.isExportByValParam(d)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new ye(E+"$byval",u++,p.u32,this);this.localsByIndex[w.index]=w,o.setLocalFlag(w.index,8),F.set(E+"$byval",w),_||(_=new Array),unchecked(_[_.length]=new vf(d,E,y,new Map));continue}if(s.isViewParam(d)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new ye(E,u++,y,this);w.isViewParam=!0,this.localsByIndex[w.index]=w,o.setLocalFlag(w.index,8),F.set(E,w);continue}if(de.isInlineStructRef(y)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new Map,R=this.bindSroaParameterLeaves(y,E,w,u,o);u+=R.leafCount;let C=new ye(E,-1,y,this);C.fieldLocals=w,F.set(E,C);continue}let T=new ye(E,u++,y,this),k=this.flow.scopedLocals;k||(this.flow.scopedLocals=k=new Map),k.set(E,T),this.localsByIndex[T.index]=T,o.setLocalFlag(T.index,8)}if(_)for(let d=0,g=_.length;d<g;++d){let y=unchecked(_[d]),E=y.parameterName,T=y.parameterType,k=y.fieldLocals,F=assert(T.classReference),w=assert(F.members);for(let M=Map_values(w),W=0,G=M.length;W<G;++W){let j=unchecked(M[W]);if(j.kind!=10)continue;let z=j.instance;if(z==null||!z.isField)continue;let U=new ye(E+"$"+z.name,u++,z.type,this);k.set(z.name,U),this.localsByIndex[U.index]=U,o.setLocalFlag(U.index,8)}let R=new ye(E,-1,T,this);R.fieldLocals=k;let C=this.flow.scopedLocals;C||(this.flow.scopedLocals=C=new Map),C.set(E,R)}}l.instancesByName.has(this.internalName)?(l.error(2393,t.declaration.name.range),this.set(16777216)):Ff(l,this)}bindSroaParameterLeaves(e,t,n,s,a){let l=assert(e.classReference),o=assert(l.members),u=0;for(let c=Map_values(o),f=0,_=c.length;f<_;++f){let d=unchecked(c[f]);if(d.kind!=10)continue;let g=d.instance;if(g==null||!g.isField)continue;let y=t+"$"+g.name,E=g.type;if(de.isInlineStructRef(E)){let k=new Map,F=this.bindSroaParameterLeaves(E,y,k,s+u,a);u+=F.leafCount;let w=new ye(y,-1,E,a.sourceFunction);w.fieldLocals=k,n.set(g.name,w);continue}let T=new ye(y,s+u,E,a.sourceFunction);this.localsByIndex[T.index]=T,a.setLocalFlag(T.index,8),n.set(g.name,T),++u}return new $o(u)}getNonParameterLocalTypes(){let e=this.localsByIndex,t=this.signature,n=e.length,s=t.wasmParamCount();t.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o){let u=e[s+o];l[o]=u.isViewLocal?this.program.options.usizeType:u.type}return l}getParameterName(e){let t=this.declaration.signature.parameters;return t.length>e?t[e].name.text:sx(e)}newStub(e,t=this.signature.requiredParameters){let n=new i(this.original.name+Lp+e,this.prototype,this.typeArguments,this.signature.clone(t),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,t=null,n=null){let s=this.localsByIndex,a=s.length,l=t??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new ye(l,a,e,this,n);if(t){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(t))throw new Error("duplicate local name");c.set(t,o)}return s[a]=o,o}lookup(e,t=!1){if(!t){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,t)}finalize(e,t){this.ref=t;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,t)}addDebugInfo(e,t){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),c=u.source;e.setDebugLocation(t,o,c.debugInfoIndex,c.lineAt(u.start),c.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(t,a,o)}}}},sn=class i extends Ar{constructor(e,t,n){super(10,e,Ke(e,t,n.is(262144)),t.program,t,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,t,n,s){let a=Te.native.range,l=n.type;l||(l=h.createOmittedType(n.name.range.atEnd));let o=new Jr(n.name,n.decorators,n.flags|262144|2048,null,new $r([],l,null,!1,a),null,a),u=new Jr(n.name,n.decorators,n.flags|262144|4096,null,new $r([new Zi(0,n.name,l,null,a)],new Zr(new Xi(new rt("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new i(e,t,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new lt(rl+e,t,o,s),c.setterPrototype=new lt(il+e,t,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let t=this.getterPrototype;if(t){let s=t.declaration;if(s.kind==59)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==59){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==62);let s=new i(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),t.set(e,s),s}},Cs=class extends ri{constructor(e,t){super(11,e.name,t,e.isField?assert(e.fieldDeclaration):h.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&Ff(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let t=this.getterInstance,n=this.setterInstance;t&&n&&!t.visibilityNoLessThan(n)&&e.errorRelated(2808,t.identifierNode.range,n.identifierNode.range,t.identifierNode.text)}},Ps=class extends rr{constructor(r){super(15,"[]",r.internalName+"[]",r.program,r,r.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(r){return this.parent.lookupOverload(1,r)}getSetterInstance(r){return this.parent.lookupOverload(2,r)}};function HE(i,r){if(!i)return!1;for(let e=0,t=i.length;e<t;++e)if(Nt.fromKind(i[e].decoratorKind)&r)return!0;return!1}var Os=class extends Ar{constructor(e,t,n,s=0,a=!1){super(a?8:6,e,Ke(e,t,n.is(262144)),t.program,t,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let t=this,n=new Set;do{if(n.has(t))break;if(n.add(t),t==e)return!0;t=t.basePrototype}while(t);return!1}addInstance(e,t){let n=t.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=wf(a,t);if(!l)return Gs(a.kind)?this.program.errorRelated(2300,t.identifierNode.range,a.declaration.name.range,t.identifierNode.text):this.program.error(2300,t.identifierNode.range,t.identifierNode.text),!1;t=l}return s.set(e,t),t.is(2)&&this.is(1048576)&&t.set(1048576),this.program.elementsByDeclaration.set(n,t),!0}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?t.get(e):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},Er=class extends rr{constructor(e,t,n=null,s=!1){super(s?9:7,e,Ke(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.alignLog2=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=t,this.flags=t.flags,this.decoratorFlags=t.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let c=a.nextClassId++;this._id=c,a.managedClasses.set(c,this)}let u=t.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let f=this.contextualTypeArguments;f||(this.contextualTypeArguments=f=new Map);for(let _=0;_<c;++_)f.set(u[_].name.text,n[_])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");Ff(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,t){if(e==t)return e;let n=new Set;for(n.add(e),n.add(t);;){let s=e.base,a=t.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(t=a)}}}setBase(e){assert(!this.base),this.base=e;let t=e.contextualTypeArguments;if(t){let a=this.contextualTypeArguments;for(let l=Map_keys(t),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),f=assert(t.get(c));a?a.has(c)||a.set(c,f):(this.contextualTypeArguments=a=new Map,a.set(c,f))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let c=l[o];this.propagateInterfaceDown(c)}s=s.base}while(s)}propagateExtenderUp(e){let t=this;do{let n=t.extenders;n||(t.extenders=n=new Set),n.add(e),t=t.base}while(t)}propagateInterfaceDown(e){let t=e,n=this.extenders;do{let s=t.implementers;if(s||(t.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}t=t.base}while(t)}addInterface(e){let t=this.interfaces;t||(this.interfaces=t=new Set),t.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,t=!1){if(t)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,t=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,t):null}offsetof(e){let t=assert(this.getMember(e));assert(t.kind==10);let s=t.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let t=this.program,n=this.nextMemoryOffset+e,s=t.computeBlockSize(n,!0),a=new Uint8Array(t.blockOverhead+s),l=t.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,t,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,c=o.type.kind;switch(c){case 1:case 6:return assert(!i64_is(t)),be(i32(t),n,u),1;case 2:case 7:return assert(!i64_is(t)),gr(i32(t),n,u),2;case 3:case 8:return assert(!i64_is(t)),Se(i32(t),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(t)?qi(t,n,u):al(i32(t),n,u,c==10),8):(i64_is(t)?Mp(t,n,u,c==10):Se(i32(t),n,u),4);case 4:case 9:return i64_is(t)?qi(t,n,u):al(i32(t),n,u,c==9),8;case 11:return assert(!i64_is(t)),qr(f32(t),n,u),4;case 12:return assert(!i64_is(t)),Wr(f64(t),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let t=this;do{if(t.prototype==e)return t.typeArguments;t=t.base}while(t);return null}getArrayValueType(){let e=this,t=this.program,n=t.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=t.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=t.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==t.float32ArrayPrototype)return p.f32;if(l==t.float64ArrayPrototype)return p.f64;break}case 73:{if(l==t.int8ArrayPrototype)return p.i8;if(l==t.int16ArrayPrototype)return p.i16;if(l==t.int32ArrayPrototype)return p.i32;if(l==t.int64ArrayPrototype)return p.i64;break}case 85:{if(l==t.uint8ArrayPrototype)return p.u8;if(l==t.uint8ClampedArrayPrototype)return p.u8;if(l==t.uint16ArrayPrototype)return p.u16;if(l==t.uint32ArrayPrototype)return p.u32;if(l==t.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,t=this.members;if(t){for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(t.has(N.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let t=this.extenders;return t!=null&&t.has(e)}hasExtenderImplementing(e){let t=this.extenders;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let t=this.implementers;return t!=null&&t.has(e)}hasImplementerImplementing(e){let t=this.implementers;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},eu=class extends Os{constructor(r,e,t,n){super(r,e,t,n,!0)}},Bs=class extends Er{constructor(r,e,t=null){super(r,e,t,!0)}};function Ff(i,r){assert(!i.instancesByName.has(r.internalName)),i.instancesByName.set(r.internalName,r)}function wf(i,r){if(assert(i.program==r.program),r.members)return null;let e=null;switch(i.kind){case 4:{switch(r.kind){case 12:{tr(r,i),e=i;break}case 14:{i.shadowType||(i.shadowType=r,tr(r,i),e=i);break}}break}case 6:case 2:{if(r.kind==12){tr(r,i),e=i;break}break}case 12:{switch(r.kind){case 2:case 6:case 4:{tr(i,r),e=r;break}case 12:{tr(r,i),e=i;break}case 14:{i.shadowType||(i.shadowType=r,tr(r,i),e=i);break}}break}case 0:{r.kind==14&&(i.shadowType||(i.shadowType=r,tr(r,i),e=i));break}case 14:{switch(r.kind){case 0:case 4:case 12:{r.shadowType||(r.shadowType=i,tr(i,r),e=r);break}}break}}if(e){let t=i.is(2)||i.hasDecorator(1),n=r.is(2)||r.hasDecorator(1);t!=n&&i.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function tr(i,r){let e=i.members;if(e){let t=r.members;t||(r.members=t=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));t.set(l,o)}}}function Ke(i,r,e,t=!1){switch(r.kind){case 13:return t?i:r.internalName+mt+i;case 5:return t?i:(assert(!e),r.internalName+Np+i);case 10:case 11:r=r.parent;default:return Ke(r.name,r.parent,r.is(262144),t)+(e?Bp:es)+i}}var Af=[];function sx(i){for(let r=Af.length;r<=i;++r)Af.push(`$${r}`);return Af[i]}var vf=class{constructor(r,e,t,n){this.index=r;this.parameterName=e;this.parameterType=t;this.fieldLocals=n}};var xr=(z=>(z[z.Bool=0]="Bool",z[z.I8=1]="I8",z[z.I16=2]="I16",z[z.I32=3]="I32",z[z.I64=4]="I64",z[z.Isize=5]="Isize",z[z.U8=6]="U8",z[z.U16=7]="U16",z[z.U32=8]="U32",z[z.U64=9]="U64",z[z.Usize=10]="Usize",z[z.F32=11]="F32",z[z.F64=12]="F64",z[z.V128=13]="V128",z[z.FixedArray=14]="FixedArray",z[z.Extern=15]="Extern",z[z.Func=16]="Func",z[z.Any=17]="Any",z[z.Eq=18]="Eq",z[z.Struct=19]="Struct",z[z.Array=20]="Array",z[z.I31=21]="I31",z[z.String=22]="String",z[z.StringviewWTF8=23]="StringviewWTF8",z[z.StringviewWTF16=24]="StringviewWTF16",z[z.StringviewIter=25]="StringviewIter",z[z.Void=26]="Void",z))(xr||{}),Bt=(y=>(y[y.None=0]="None",y[y.Signed=1]="Signed",y[y.Unsigned=2]="Unsigned",y[y.Integer=4]="Integer",y[y.Float=8]="Float",y[y.Varying=16]="Varying",y[y.Short=32]="Short",y[y.Long=64]="Long",y[y.Value=128]="Value",y[y.Reference=256]="Reference",y[y.Nullable=512]="Nullable",y[y.Vector=1024]="Vector",y[y.External=2048]="External",y[y.Class=4096]="Class",y[y.Function=8192]="Function",y))(Bt||{}),p=class i{constructor(r,e,t){this.classReference=null;this.signatureReference=null;this.fixedElementType=null;this.fixedLength=0;this.fixedAlignLog2=0;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=r,this.flags=e,this.size=t,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==i.auto)return this;switch(this.kind){case 0:case 3:case 11:return i.i32;case 1:return i.i8;case 2:return i.i16;case 12:case 4:return i.i64;case 5:return this.size==64?i.isize64:i.isize32;case 6:return i.u8;case 7:return i.u16;case 8:return i.u32;case 9:return i.u64;case 10:return this.size==64?i.usize64:i.usize32;default:return i.i32}}get exceptVoid(){return this.kind==26?i.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return this.kind==14?this.fixedAlignLog2:31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==i.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(r){let e=this.getClass();if(e)return e;{let t=this.getSignature();if(t){let n=t.type,s=assert(r.resolver.resolveClass(r.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=r.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(r,e){let t=this.getClassOrWrapper(e);return t?t.lookupOverload(r):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let r=this.classReference;return r?!r.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let r=this.classReference;return r!=null&&r.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(r){return r.size-this.size}computeSmallIntegerMask(r){let e=this.size;return this.is(2)||(e-=1),-1>>>r.size-e}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}asNullable(){assert(this.isReference);let r=this._nullableType;return r||(assert(!this.isNullableReference),this._nullableType=r=new i(this.kind,this.flags|512,this.size),r.classReference=this.classReference,r.signatureReference=this.signatureReference,r._nonNullableType=this),r}toUnsigned(){switch(this.kind){case 1:return i.u8;case 2:return i.u16;case 3:return i.u32;case 4:return i.u64;case 5:return this.size==64?i.usize64:i.usize32}return this}equals(r){if(this.kind!=r.kind)return!1;if(this.kind==14){let e=this.fixedElementType,t=r.fixedElementType;return e!=null&&t!=null&&this.fixedLength==r.fixedLength&&e.equals(t)}if(this.isReference){let e=this.signatureReference,t=r.signatureReference;return this.classReference==r.classReference&&e==t&&this.isNullableReference==r.isNullableReference}return!0}isAssignableTo(r,e=!1){let t,n,s,a;if(this.isReference){if(r.isReference&&(!this.isNullableReference||r.isNullableReference)){if(t=this.getClass()){if(n=r.getClass())return t.isAssignableTo(n)}else if(s=this.getSignature()){if(a=r.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==r.kind||r.kind==17&&this.kind!=15))return!0}}else if(!r.isReference){if(this.isIntegerValue)if(r.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==r.isSignedIntegerValue)return this.size<=r.size}else{if(r.kind==11)return this.size<=23;if(r.kind==12)return this.size<=52}else if(this.isFloatValue){if(r.isFloatValue)return this.size<=r.size}else if(this.isVectorValue&&r.isVectorValue)return this.size==r.size}return!1}isStrictlyAssignableTo(r,e=!1){return this.isReference?this.isAssignableTo(r):r.isReference?!1:this.isIntegerValue?r.isIntegerValue&&r.size==this.size&&(!e||this.isSignedIntegerValue==r.isSignedIntegerValue):this.kind==r.kind}hasSubtypeAssignableTo(r){let e=this.getClass(),t=r.getClass();return!e||!t?!1:e.hasSubclassAssignableTo(t)}isChangeableTo(r){if(this.is(4)&&r.is(4)){let e=this.size;return e==r.size&&(e>=32||this.is(1)==r.is(1))}return this.kind==r.kind}canExtendOrImplement(r){let e=this.getClass(),t=r.getClass();if(!e||!t||this.isManaged!=r.isManaged)return!1;if(this.isInternalReference){if(!r.isInternalReference)return!1}else if(this.isExternalReference){if(!r.isExternalReference)return!1}else return!1;return!0}static commonType(r,e,t=i.auto,n=!1){if(r.isInternalReference){if(!e.isInternalReference)return null;if(t!=i.void&&r.isAssignableTo(t)&&e.isAssignableTo(t))return t;let s=r.getClass(),a=e.getClass();if(s&&a){let l=Er.leastUpperBound(s,a);if(l)return r.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(r,n)?r:r.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return N.bool;case 1:return N.i8;case 2:return N.i16;case 3:return N.i32;case 4:return N.i64;case 5:return N.isize;case 6:return N.u8;case 7:return N.u16;case 8:return N.u32;case 9:return N.u64;case 10:return N.usize;case 11:return N.f32;case 12:return N.f64;case 13:return N.v128;case 16:return N.ref_func;case 15:return N.ref_extern;case 17:return N.ref_any;case 18:return N.ref_eq;case 19:return N.ref_struct;case 20:return N.ref_array;case 21:return N.ref_i31;case 22:return N.ref_string;case 23:return N.ref_stringview_wtf8;case 24:return N.ref_stringview_wtf16;case 25:return N.ref_stringview_iter;case 14:{let r=this.fixedElementType;return(r?r.toString():"?")+"["+this.fixedLength.toString()+"]"}default:assert(!1);case 26:return N.void_}}toString(r=!1){let e=r?"|null":" | null";if(this.isReference){let t=this.getClass();if(t)return this.isNullableReference?t.internalName+e:t.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(r)})${e}`:n.toString(r):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==i.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return B.I32;case 5:case 10:if(this.size!=64)return B.I32;case 4:case 9:return B.I64;case 11:return B.F32;case 12:return B.F64;case 13:return B.V128;case 16:return Ae(Ie.Func,this.is(512));case 15:return Ae(Ie.Extern,this.is(512));case 17:return Ae(Ie.Any,this.is(512));case 18:return Ae(Ie.Eq,this.is(512));case 19:return Ae(Ie.Struct,this.is(512));case 20:return Ae(Ie.Array,this.is(512));case 21:return Ae(Ie.I31,this.is(512));case 22:return Ae(Ie.String,this.is(512));case 26:return B.None}return assert(!1),Fs(this)}static{this.i8=new i(1,165,8)}static{this.i16=new i(2,165,16)}static{this.i32=new i(3,133,32)}static{this.i64=new i(4,197,64)}static{this.isize32=new i(5,149,32)}static{this.isize64=new i(5,213,64)}static{this.u8=new i(6,166,8)}static{this.u16=new i(7,166,16)}static{this.u32=new i(8,134,32)}static{this.u64=new i(9,198,64)}static{this.usize32=new i(10,150,32)}static{this.usize64=new i(10,214,64)}static{this.bool=new i(0,166,1)}static{this.f32=new i(11,137,32)}static{this._fixedArrays=null}static fixedArray(r,e){let t=r.toString()+"["+e.toString()+"]",n=i._fixedArrays;if(!n){let l=new Map;i._fixedArrays=l,n=l}let s=ee(n,t);if(s)return s;let a=new i(14,0,r.byteSize*e<<3);return a.fixedElementType=r,a.fixedLength=e,a.fixedAlignLog2=r.alignLog2,n.set(t,a),a}get fixedArrayElementType(){return assert(this.fixedElementType)}static{this.f64=new i(12,201,64)}static{this.v128=new i(13,1152,128)}static{this.func=new i(16,2304,0)}static{this.extern=new i(15,2304,0)}static{this.any=new i(17,2304,0)}static{this.eq=new i(18,2304,0)}static{this.struct=new i(19,2304,0)}static{this.array=new i(20,2304,0)}static{this.i31=new i(21,2304,0)}static{this.string=new i(22,2304,0)}static{this.stringview_wtf8=new i(23,2304,0)}static{this.stringview_wtf16=new i(24,2304,0)}static{this.stringview_iter=new i(25,2304,0)}static{this.void=new i(26,0,0)}static{this.auto=new i(i.i32.kind,i.i32.flags,i.i32.size)}};function an(i){let r=i.length,e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=i[t].toRef());return e}function Ho(i){let r=i.length;if(!r)return"";let e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=i[t].toString(!0));return e.join(",")}var ax=(n=>(n[n.None=0]="None",n[n.Inline=1]="Inline",n[n.Managed=2]="Managed",n[n.Unmanaged=3]="Unmanaged",n))(ax||{});function jE(i){if(i==null)return"";let r=i.length;if(!r)return"";let e=new Array(r);for(let t=0;t<r;++t){let n=unchecked(i[t]);unchecked(e[t]=n==1?"i":n==2?"m":n==3?"u":"-")}return"!mm:"+e.join("")+":"}var de=class i{constructor(r,e,t,n,s,a,l,o,u,c,f,_){this.program=r;this.parameterTypes=e;this.returnType=t;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.sretDisabled=l;this.externalBoundary=o;this.exportByValParams=u;this.memoryModels=c;this.id=f;this.type=_}static create(r,e=[],t=p.void,n=null,s=e?e.length:0,a=!1,l=!1,o=!1,u=!1,c=null){let f=r.options.usizeType,_=new p(f.kind,f.flags&-129|256,f.size),d=r.uniqueSignatures,g=r.nextSignatureId,y=new i(r,e,t,n,s,a,l,o,u,c,g,_),E=(l?"!sret-disabled:":"")+(o?"!external-boundary:":"")+(u?"!export-byval:":"")+jE(c)+y.toString();if(d.has(E)){let T=assert(d.get(E));return assert(y.equals(T)),T}return r.nextSignatureId=g+1,_.signatureReference=y,d.set(E,y),y}memoryModelOf(r){let e=this.memoryModels;return e==null?0:unchecked(e[r])}static wasmParamCountOf(r){let e=r.classReference;if(e==null||!e.hasDecorator(4096))return 1;let t=i.leafCountOf(r);return t>0?t:1}static leafTypesOf(r,e){let t=r.classReference;if(t==null)return;let n=t.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=10)continue;let u=o.instance;if(u==null||!u.isField)continue;let c=u.type;i.isInlineStructRef(c)?i.leafTypesOf(c,e):e.push(c)}}static leafCountOf(r){let e=new Array;return i.leafTypesOf(r,e),e.length}wasmParamSlotCountOf(r){return this.isViewParam(r)||this.isByValPointerParam(r)?1:i.wasmParamCountOf(unchecked(this.parameterTypes[r]))}isViewParam(r){return this.memoryModelOf(r)==3&&i.isInlineStructRef(unchecked(this.parameterTypes[r]))}crossesByValueParam(r){return this.isViewParam(r)?!1:i.isInlineStructRef(unchecked(this.parameterTypes[r]))?!0:this.memoryModelOf(r)==1}isExternalPointerParam(r){return this.externalBoundary?this.crossesByValueParam(r):!1}isExportByValParam(r){return this.exportByValParams?this.crossesByValueParam(r):!1}isByValPointerParam(r){return this.isExternalPointerParam(r)||this.isExportByValParam(r)}get byValPointerParams(){return this.externalBoundary||this.exportByValParams}static isInlineStructRef(r){let e=r.classReference;return e!=null&&e.hasDecorator(4096)}static fieldCountOf(r){return r.classReference==null?0:i.leafCountOf(r)}get hasHiddenDestParam(){if(this.sretDisabled)return!1;let r=this.returnType.classReference;return r!=null&&r.hasDecorator(4096)}wasmParamStartOf(r){let e=this.parameterTypes,t=this.hasHiddenDestParam?1:0;for(let n=0;n<r&&n<e.length;++n)t+=this.wasmParamSlotCountOf(n);return t}wasmParamCount(){let r=this.parameterTypes,e=this.hasHiddenDestParam?1:0;for(let t=0,n=r.length;t<n;++t)e+=this.wasmParamSlotCountOf(t);return e}sourceIndexOf(r){let e=this.parameterTypes,t=this.hasHiddenDestParam?1:0;if(r<t)return-1;for(let n=0,s=e.length;n<s;++n){let a=this.wasmParamSlotCountOf(n);if(r<t+a)return n;t+=a}return-1}get paramRefs(){let r=this.thisType,e=this.parameterTypes,t=e.length,n=this.hasHiddenDestParam;if(!t&&!n)return r?r.toRef():B.None;let s=this.wasmParamCount(),a=new Array(r?1+s:s),l=0;r&&unchecked(a[l++]=r.toRef()),n&&unchecked(a[l++]=B.I32);for(let o=0;o<t;++o){let u=unchecked(e[o]);if(this.isViewParam(o))unchecked(a[l++]=B.I32);else if(this.isByValPointerParam(o))unchecked(a[l++]=B.I32);else if(i.isInlineStructRef(u)){let c=new Array;i.leafTypesOf(u,c);for(let f=0,_=c.length;f<_;++f)unchecked(a[l++]=unchecked(c[f]).toRef())}else unchecked(a[l++]=u.toRef())}return ft(a)}get resultRefs(){return this.hasHiddenDestParam?B.None:this.returnType.toRef()}equals(r){let e=this.thisType,t=r.thisType;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;if(this.hasRest!=r.hasRest||this.sretDisabled!=r.sretDisabled||this.externalBoundary!=r.externalBoundary||this.exportByValParams!=r.exportByValParams)return!1;let n=this.memoryModels,s=r.memoryModels;if(n==null!=(s==null))return!1;if(n!=null){let u=assert(s),c=n.length;if(c!=u.length)return!1;for(let f=0;f<c;++f)if(unchecked(n[f])!=unchecked(u[f]))return!1}if(!this.returnType.equals(r.returnType))return!1;let a=this.parameterTypes,l=r.parameterTypes,o=a.length;if(o!=l.length)return!1;for(let u=0;u<o;++u){let c=unchecked(a[u]),f=unchecked(l[u]);if(!c.equals(f))return!1}return!0}isAssignableTo(r,e=!1){let t=this.thisType,n=r.thisType;if(t&&n){if(!(e?t.canExtendOrImplement(n):n.isAssignableTo(t)))return!1}else if(t||n)return!1;if(this.hasRest!=r.hasRest)return!1;let s=this.returnType,a=r.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=r.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let f=unchecked(l[c]),_=unchecked(o[c]);if(f!=_)return!1}return!0}get hasManagedOperands(){let r=this.thisType;if(r&&r.isManaged)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isManaged)return!0;return!1}getManagedOperandIndices(){let r=new Array,e=0,t=this.thisType;t&&(t.isManaged&&r.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&r.push(e),++e;return r}get hasVectorValueOperands(){let r=this.thisType;if(r&&r.isVectorValue)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let r=new Array,e=0,t=this.thisType;t&&(t.isVectorValue&&r.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&r.push(e),++e;return r}toString(r=!1){let e=new Array;e.push(r?"%28":"(");let t=0,n=this.thisType;n&&(e.push(r?"this:":"this: "),e.push(n.toString(r)),t=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++t)t&&e.push(r?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(r)),u>=l&&u!=o&&e.push("?")}return e.push(r?"%29=>":") => "),e.push(this.returnType.toString(r)),e.join("")}clone(r=this.requiredParameters,e=this.hasRest){let t=this.parameterTypes,n=t.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=t[a]);return i.create(this.program,s,this.returnType,this.thisType,r,e,this.sretDisabled,this.externalBoundary,this.exportByValParams,this.memoryModels)}};var m;(b=>(b.start="~start",b.started="~started",b.argumentsLength="~argumentsLength",b.setArgumentsLength="~setArgumentsLength",b.env="~env",b.abort="~lib/builtins/abort",b.trace="~lib/builtins/trace",b.seed="~lib/builtins/seed",b.isBoolean="~lib/builtins/isBoolean",b.isInteger="~lib/builtins/isInteger",b.isSigned="~lib/builtins/isSigned",b.isFloat="~lib/builtins/isFloat",b.isVector="~lib/builtins/isVector",b.isReference="~lib/builtins/isReference",b.isString="~lib/builtins/isString",b.isArray="~lib/builtins/isArray",b.isArrayLike="~lib/builtins/isArrayLike",b.isFunction="~lib/builtins/isFunction",b.isNullable="~lib/builtins/isNullable",b.isDefined="~lib/builtins/isDefined",b.isConstant="~lib/builtins/isConstant",b.isManaged="~lib/builtins/isManaged",b.isVoid="~lib/builtins/isVoid",b.add="~lib/builtins/add",b.sub="~lib/builtins/sub",b.mul="~lib/builtins/mul",b.div="~lib/builtins/div",b.clz="~lib/builtins/clz",b.ctz="~lib/builtins/ctz",b.popcnt="~lib/builtins/popcnt",b.rotl="~lib/builtins/rotl",b.rotr="~lib/builtins/rotr",b.abs="~lib/builtins/abs",b.max="~lib/builtins/max",b.min="~lib/builtins/min",b.ceil="~lib/builtins/ceil",b.floor="~lib/builtins/floor",b.copysign="~lib/builtins/copysign",b.nearest="~lib/builtins/nearest",b.reinterpret="~lib/builtins/reinterpret",b.sqrt="~lib/builtins/sqrt",b.trunc="~lib/builtins/trunc",b.eq="~lib/builtins/eq",b.ne="~lib/builtins/ne",b.rem="~lib/builtins/rem",b.load="~lib/builtins/load",b.store="~lib/builtins/store",b.atomic_load="~lib/builtins/atomic.load",b.atomic_store="~lib/builtins/atomic.store",b.atomic_add="~lib/builtins/atomic.add",b.atomic_sub="~lib/builtins/atomic.sub",b.atomic_and="~lib/builtins/atomic.and",b.atomic_or="~lib/builtins/atomic.or",b.atomic_xor="~lib/builtins/atomic.xor",b.atomic_xchg="~lib/builtins/atomic.xchg",b.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",b.atomic_wait="~lib/builtins/atomic.wait",b.atomic_notify="~lib/builtins/atomic.notify",b.atomic_fence="~lib/builtins/atomic.fence",b.sizeof="~lib/builtins/sizeof",b.alignof="~lib/builtins/alignof",b.offsetof="~lib/builtins/offsetof",b.abiNameOf="~lib/builtins/abiNameOf",b.nameof="~lib/builtins/nameof",b.lengthof="~lib/builtins/lengthof",b.select="~lib/builtins/select",b.unreachable="~lib/builtins/unreachable",b.changetype="~lib/builtins/changetype",b.copyInto="~lib/builtins/copyInto",b.assert="~lib/builtins/assert",b.call_indirect="~lib/builtins/call_indirect",b.unchecked="~lib/builtins/unchecked",b.inline_always="~lib/builtins/inline.always",b.instantiate="~lib/builtins/instantiate",b.idof="~lib/builtins/idof",b.i8="~lib/builtins/i8",b.i16="~lib/builtins/i16",b.i32="~lib/builtins/i32",b.i64="~lib/builtins/i64",b.isize="~lib/builtins/isize",b.u8="~lib/builtins/u8",b.u16="~lib/builtins/u16",b.u32="~lib/builtins/u32",b.u64="~lib/builtins/u64",b.usize="~lib/builtins/usize",b.bool="~lib/builtins/bool",b.f32="~lib/builtins/f32",b.f64="~lib/builtins/f64",b.v128="~lib/builtins/v128",b.i32_clz="~lib/builtins/i32.clz",b.i64_clz="~lib/builtins/i64.clz",b.i32_ctz="~lib/builtins/i32.ctz",b.i64_ctz="~lib/builtins/i64.ctz",b.i32_popcnt="~lib/builtins/i32.popcnt",b.i64_popcnt="~lib/builtins/i64.popcnt",b.i32_rotl="~lib/builtins/i32.rotl",b.i64_rotl="~lib/builtins/i64.rotl",b.i32_rotr="~lib/builtins/i32.rotr",b.i64_rotr="~lib/builtins/i64.rotr",b.f32_abs="~lib/builtins/f32.abs",b.f64_abs="~lib/builtins/f64.abs",b.f32_max="~lib/builtins/f32.max",b.f64_max="~lib/builtins/f64.max",b.f32_min="~lib/builtins/f32.min",b.f64_min="~lib/builtins/f64.min",b.f32_ceil="~lib/builtins/f32.ceil",b.f64_ceil="~lib/builtins/f64.ceil",b.f32_floor="~lib/builtins/f32.floor",b.f64_floor="~lib/builtins/f64.floor",b.f32_copysign="~lib/builtins/f32.copysign",b.f64_copysign="~lib/builtins/f64.copysign",b.f32_nearest="~lib/builtins/f32.nearest",b.f64_nearest="~lib/builtins/f64.nearest",b.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",b.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",b.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",b.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",b.f32_sqrt="~lib/builtins/f32.sqrt",b.f64_sqrt="~lib/builtins/f64.sqrt",b.f32_trunc="~lib/builtins/f32.trunc",b.f64_trunc="~lib/builtins/f64.trunc",b.i32_add="~lib/builtins/i32.add",b.i64_add="~lib/builtins/i64.add",b.f32_add="~lib/builtins/f32.add",b.f64_add="~lib/builtins/f64.add",b.i32_sub="~lib/builtins/i32.sub",b.i64_sub="~lib/builtins/i64.sub",b.f32_sub="~lib/builtins/f32.sub",b.f64_sub="~lib/builtins/f64.sub",b.i32_mul="~lib/builtins/i32.mul",b.i64_mul="~lib/builtins/i64.mul",b.f32_mul="~lib/builtins/f32.mul",b.f64_mul="~lib/builtins/f64.mul",b.i32_div_s="~lib/builtins/i32.div_s",b.i32_div_u="~lib/builtins/i32.div_u",b.i64_div_s="~lib/builtins/i64.div_s",b.i64_div_u="~lib/builtins/i64.div_u",b.f32_div="~lib/builtins/f32.div",b.f64_div="~lib/builtins/f64.div",b.i32_eq="~lib/builtins/i32.eq",b.i64_eq="~lib/builtins/i64.eq",b.f32_eq="~lib/builtins/f32.eq",b.f64_eq="~lib/builtins/f64.eq",b.i32_ne="~lib/builtins/i32.ne",b.i64_ne="~lib/builtins/i64.ne",b.f32_ne="~lib/builtins/f32.ne",b.f64_ne="~lib/builtins/f64.ne",b.i32_rem_s="~lib/builtins/i32.rem_s",b.i32_rem_u="~lib/builtins/i32.rem_u",b.i64_rem_s="~lib/builtins/i64.rem_s",b.i64_rem_u="~lib/builtins/i64.rem_u",b.i32_load8_s="~lib/builtins/i32.load8_s",b.i32_load8_u="~lib/builtins/i32.load8_u",b.i32_load16_s="~lib/builtins/i32.load16_s",b.i32_load16_u="~lib/builtins/i32.load16_u",b.i32_load="~lib/builtins/i32.load",b.i64_load8_s="~lib/builtins/i64.load8_s",b.i64_load8_u="~lib/builtins/i64.load8_u",b.i64_load16_s="~lib/builtins/i64.load16_s",b.i64_load16_u="~lib/builtins/i64.load16_u",b.i64_load32_s="~lib/builtins/i64.load32_s",b.i64_load32_u="~lib/builtins/i64.load32_u",b.i64_load="~lib/builtins/i64.load",b.f32_load="~lib/builtins/f32.load",b.f64_load="~lib/builtins/f64.load",b.i32_store8="~lib/builtins/i32.store8",b.i32_store16="~lib/builtins/i32.store16",b.i32_store="~lib/builtins/i32.store",b.i64_store8="~lib/builtins/i64.store8",b.i64_store16="~lib/builtins/i64.store16",b.i64_store32="~lib/builtins/i64.store32",b.i64_store="~lib/builtins/i64.store",b.f32_store="~lib/builtins/f32.store",b.f64_store="~lib/builtins/f64.store",b.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",b.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",b.i32_atomic_load="~lib/builtins/i32.atomic.load",b.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",b.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",b.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",b.i64_atomic_load="~lib/builtins/i64.atomic.load",b.i32_atomic_store8="~lib/builtins/i32.atomic.store8",b.i32_atomic_store16="~lib/builtins/i32.atomic.store16",b.i32_atomic_store="~lib/builtins/i32.atomic.store",b.i64_atomic_store8="~lib/builtins/i64.atomic.store8",b.i64_atomic_store16="~lib/builtins/i64.atomic.store16",b.i64_atomic_store32="~lib/builtins/i64.atomic.store32",b.i64_atomic_store="~lib/builtins/i64.atomic.store",b.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",b.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",b.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",b.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",b.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",b.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",b.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",b.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",b.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",b.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",b.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",b.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",b.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",b.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",b.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",b.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",b.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",b.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",b.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",b.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",b.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",b.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",b.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",b.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",b.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",b.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",b.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",b.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",b.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",b.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",b.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",b.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",b.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",b.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",b.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",b.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",b.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",b.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",b.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",b.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",b.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",b.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",b.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",b.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",b.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",b.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",b.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",b.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",b.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",b.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",b.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",b.v128_splat="~lib/builtins/v128.splat",b.v128_extract_lane="~lib/builtins/v128.extract_lane",b.v128_replace_lane="~lib/builtins/v128.replace_lane",b.v128_shuffle="~lib/builtins/v128.shuffle",b.v128_swizzle="~lib/builtins/v128.swizzle",b.v128_load_splat="~lib/builtins/v128.load_splat",b.v128_load_ext="~lib/builtins/v128.load_ext",b.v128_load_zero="~lib/builtins/v128.load_zero",b.v128_load_lane="~lib/builtins/v128.load_lane",b.v128_store_lane="~lib/builtins/v128.store_lane",b.v128_load="~lib/builtins/v128.load",b.v128_load8x8_s="~lib/builtins/v128.load8x8_s",b.v128_load8x8_u="~lib/builtins/v128.load8x8_u",b.v128_load16x4_s="~lib/builtins/v128.load16x4_s",b.v128_load16x4_u="~lib/builtins/v128.load16x4_u",b.v128_load32x2_s="~lib/builtins/v128.load32x2_s",b.v128_load32x2_u="~lib/builtins/v128.load32x2_u",b.v128_load8_splat="~lib/builtins/v128.load8_splat",b.v128_load16_splat="~lib/builtins/v128.load16_splat",b.v128_load32_splat="~lib/builtins/v128.load32_splat",b.v128_load64_splat="~lib/builtins/v128.load64_splat",b.v128_load32_zero="~lib/builtins/v128.load32_zero",b.v128_load64_zero="~lib/builtins/v128.load64_zero",b.v128_load8_lane="~lib/builtins/v128.load8_lane",b.v128_load16_lane="~lib/builtins/v128.load16_lane",b.v128_load32_lane="~lib/builtins/v128.load32_lane",b.v128_load64_lane="~lib/builtins/v128.load64_lane",b.v128_store8_lane="~lib/builtins/v128.store8_lane",b.v128_store16_lane="~lib/builtins/v128.store16_lane",b.v128_store32_lane="~lib/builtins/v128.store32_lane",b.v128_store64_lane="~lib/builtins/v128.store64_lane",b.v128_store="~lib/builtins/v128.store",b.v128_add="~lib/builtins/v128.add",b.v128_sub="~lib/builtins/v128.sub",b.v128_mul="~lib/builtins/v128.mul",b.v128_div="~lib/builtins/v128.div",b.v128_neg="~lib/builtins/v128.neg",b.v128_add_sat="~lib/builtins/v128.add_sat",b.v128_sub_sat="~lib/builtins/v128.sub_sat",b.v128_shl="~lib/builtins/v128.shl",b.v128_shr="~lib/builtins/v128.shr",b.v128_and="~lib/builtins/v128.and",b.v128_or="~lib/builtins/v128.or",b.v128_xor="~lib/builtins/v128.xor",b.v128_andnot="~lib/builtins/v128.andnot",b.v128_not="~lib/builtins/v128.not",b.v128_bitselect="~lib/builtins/v128.bitselect",b.v128_any_true="~lib/builtins/v128.any_true",b.v128_all_true="~lib/builtins/v128.all_true",b.v128_bitmask="~lib/builtins/v128.bitmask",b.v128_popcnt="~lib/builtins/v128.popcnt",b.v128_min="~lib/builtins/v128.min",b.v128_max="~lib/builtins/v128.max",b.v128_pmin="~lib/builtins/v128.pmin",b.v128_pmax="~lib/builtins/v128.pmax",b.v128_dot="~lib/builtins/v128.dot",b.v128_avgr="~lib/builtins/v128.avgr",b.v128_abs="~lib/builtins/v128.abs",b.v128_sqrt="~lib/builtins/v128.sqrt",b.v128_ceil="~lib/builtins/v128.ceil",b.v128_floor="~lib/builtins/v128.floor",b.v128_trunc="~lib/builtins/v128.trunc",b.v128_nearest="~lib/builtins/v128.nearest",b.v128_eq="~lib/builtins/v128.eq",b.v128_ne="~lib/builtins/v128.ne",b.v128_lt="~lib/builtins/v128.lt",b.v128_le="~lib/builtins/v128.le",b.v128_gt="~lib/builtins/v128.gt",b.v128_ge="~lib/builtins/v128.ge",b.v128_convert="~lib/builtins/v128.convert",b.v128_convert_low="~lib/builtins/v128.convert_low",b.v128_trunc_sat="~lib/builtins/v128.trunc_sat",b.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",b.v128_narrow="~lib/builtins/v128.narrow",b.v128_extend_low="~lib/builtins/v128.extend_low",b.v128_extend_high="~lib/builtins/v128.extend_high",b.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",b.v128_demote_zero="~lib/builtins/v128.demote_zero",b.v128_promote_low="~lib/builtins/v128.promote_low",b.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",b.v128_extmul_low="~lib/builtins/v128.extmul_low",b.v128_extmul_high="~lib/builtins/v128.extmul_high",b.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",b.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",b.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",b.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",b.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",b.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",b.v128_relaxed_min="~lib/builtins/v128.relaxed_min",b.v128_relaxed_max="~lib/builtins/v128.relaxed_max",b.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",b.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",b.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",b.i8x16="~lib/builtins/i8x16",b.i16x8="~lib/builtins/i16x8",b.i32x4="~lib/builtins/i32x4",b.i64x2="~lib/builtins/i64x2",b.f32x4="~lib/builtins/f32x4",b.f64x2="~lib/builtins/f64x2",b.i8x16_splat="~lib/builtins/i8x16.splat",b.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",b.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",b.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",b.i8x16_add="~lib/builtins/i8x16.add",b.i8x16_sub="~lib/builtins/i8x16.sub",b.i8x16_mul="~lib/builtins/i8x16.mul",b.i8x16_min_s="~lib/builtins/i8x16.min_s",b.i8x16_min_u="~lib/builtins/i8x16.min_u",b.i8x16_max_s="~lib/builtins/i8x16.max_s",b.i8x16_max_u="~lib/builtins/i8x16.max_u",b.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",b.i8x16_abs="~lib/builtins/i8x16.abs",b.i8x16_neg="~lib/builtins/i8x16.neg",b.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",b.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",b.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",b.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",b.i8x16_shl="~lib/builtins/i8x16.shl",b.i8x16_shr_s="~lib/builtins/i8x16.shr_s",b.i8x16_shr_u="~lib/builtins/i8x16.shr_u",b.i8x16_all_true="~lib/builtins/i8x16.all_true",b.i8x16_bitmask="~lib/builtins/i8x16.bitmask",b.i8x16_popcnt="~lib/builtins/i8x16.popcnt",b.i8x16_eq="~lib/builtins/i8x16.eq",b.i8x16_ne="~lib/builtins/i8x16.ne",b.i8x16_lt_s="~lib/builtins/i8x16.lt_s",b.i8x16_lt_u="~lib/builtins/i8x16.lt_u",b.i8x16_le_s="~lib/builtins/i8x16.le_s",b.i8x16_le_u="~lib/builtins/i8x16.le_u",b.i8x16_gt_s="~lib/builtins/i8x16.gt_s",b.i8x16_gt_u="~lib/builtins/i8x16.gt_u",b.i8x16_ge_s="~lib/builtins/i8x16.ge_s",b.i8x16_ge_u="~lib/builtins/i8x16.ge_u",b.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",b.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",b.i8x16_shuffle="~lib/builtins/i8x16.shuffle",b.i8x16_swizzle="~lib/builtins/i8x16.swizzle",b.i16x8_splat="~lib/builtins/i16x8.splat",b.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",b.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",b.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",b.i16x8_add="~lib/builtins/i16x8.add",b.i16x8_sub="~lib/builtins/i16x8.sub",b.i16x8_mul="~lib/builtins/i16x8.mul",b.i16x8_min_s="~lib/builtins/i16x8.min_s",b.i16x8_min_u="~lib/builtins/i16x8.min_u",b.i16x8_max_s="~lib/builtins/i16x8.max_s",b.i16x8_max_u="~lib/builtins/i16x8.max_u",b.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",b.i16x8_abs="~lib/builtins/i16x8.abs",b.i16x8_neg="~lib/builtins/i16x8.neg",b.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",b.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",b.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",b.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",b.i16x8_shl="~lib/builtins/i16x8.shl",b.i16x8_shr_s="~lib/builtins/i16x8.shr_s",b.i16x8_shr_u="~lib/builtins/i16x8.shr_u",b.i16x8_all_true="~lib/builtins/i16x8.all_true",b.i16x8_bitmask="~lib/builtins/i16x8.bitmask",b.i16x8_eq="~lib/builtins/i16x8.eq",b.i16x8_ne="~lib/builtins/i16x8.ne",b.i16x8_lt_s="~lib/builtins/i16x8.lt_s",b.i16x8_lt_u="~lib/builtins/i16x8.lt_u",b.i16x8_le_s="~lib/builtins/i16x8.le_s",b.i16x8_le_u="~lib/builtins/i16x8.le_u",b.i16x8_gt_s="~lib/builtins/i16x8.gt_s",b.i16x8_gt_u="~lib/builtins/i16x8.gt_u",b.i16x8_ge_s="~lib/builtins/i16x8.ge_s",b.i16x8_ge_u="~lib/builtins/i16x8.ge_u",b.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",b.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",b.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",b.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",b.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",b.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",b.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",b.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",b.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",b.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",b.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",b.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",b.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",b.i16x8_shuffle="~lib/builtins/i16x8.shuffle",b.i32x4_splat="~lib/builtins/i32x4.splat",b.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",b.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",b.i32x4_add="~lib/builtins/i32x4.add",b.i32x4_sub="~lib/builtins/i32x4.sub",b.i32x4_mul="~lib/builtins/i32x4.mul",b.i32x4_min_s="~lib/builtins/i32x4.min_s",b.i32x4_min_u="~lib/builtins/i32x4.min_u",b.i32x4_max_s="~lib/builtins/i32x4.max_s",b.i32x4_max_u="~lib/builtins/i32x4.max_u",b.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",b.i32x4_abs="~lib/builtins/i32x4.abs",b.i32x4_neg="~lib/builtins/i32x4.neg",b.i32x4_shl="~lib/builtins/i32x4.shl",b.i32x4_shr_s="~lib/builtins/i32x4.shr_s",b.i32x4_shr_u="~lib/builtins/i32x4.shr_u",b.i32x4_all_true="~lib/builtins/i32x4.all_true",b.i32x4_bitmask="~lib/builtins/i32x4.bitmask",b.i32x4_eq="~lib/builtins/i32x4.eq",b.i32x4_ne="~lib/builtins/i32x4.ne",b.i32x4_lt_s="~lib/builtins/i32x4.lt_s",b.i32x4_lt_u="~lib/builtins/i32x4.lt_u",b.i32x4_le_s="~lib/builtins/i32x4.le_s",b.i32x4_le_u="~lib/builtins/i32x4.le_u",b.i32x4_gt_s="~lib/builtins/i32x4.gt_s",b.i32x4_gt_u="~lib/builtins/i32x4.gt_u",b.i32x4_ge_s="~lib/builtins/i32x4.ge_s",b.i32x4_ge_u="~lib/builtins/i32x4.ge_u",b.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",b.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",b.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",b.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",b.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",b.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",b.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",b.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",b.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",b.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",b.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",b.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",b.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",b.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",b.i32x4_shuffle="~lib/builtins/i32x4.shuffle",b.i64x2_splat="~lib/builtins/i64x2.splat",b.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",b.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",b.i64x2_add="~lib/builtins/i64x2.add",b.i64x2_sub="~lib/builtins/i64x2.sub",b.i64x2_mul="~lib/builtins/i64x2.mul",b.i64x2_abs="~lib/builtins/i64x2.abs",b.i64x2_neg="~lib/builtins/i64x2.neg",b.i64x2_shl="~lib/builtins/i64x2.shl",b.i64x2_shr_s="~lib/builtins/i64x2.shr_s",b.i64x2_shr_u="~lib/builtins/i64x2.shr_u",b.i64x2_all_true="~lib/builtins/i64x2.all_true",b.i64x2_bitmask="~lib/builtins/i64x2.bitmask",b.i64x2_eq="~lib/builtins/i64x2.eq",b.i64x2_ne="~lib/builtins/i64x2.ne",b.i64x2_lt_s="~lib/builtins/i64x2.lt_s",b.i64x2_lt_u="~lib/builtins/i64x2.lt_u",b.i64x2_le_s="~lib/builtins/i64x2.le_s",b.i64x2_le_u="~lib/builtins/i64x2.le_u",b.i64x2_gt_s="~lib/builtins/i64x2.gt_s",b.i64x2_gt_u="~lib/builtins/i64x2.gt_u",b.i64x2_ge_s="~lib/builtins/i64x2.ge_s",b.i64x2_ge_u="~lib/builtins/i64x2.ge_u",b.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",b.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",b.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",b.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",b.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",b.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",b.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",b.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",b.i64x2_shuffle="~lib/builtins/i64x2.shuffle",b.f32x4_splat="~lib/builtins/f32x4.splat",b.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",b.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",b.f32x4_add="~lib/builtins/f32x4.add",b.f32x4_sub="~lib/builtins/f32x4.sub",b.f32x4_mul="~lib/builtins/f32x4.mul",b.f32x4_div="~lib/builtins/f32x4.div",b.f32x4_neg="~lib/builtins/f32x4.neg",b.f32x4_min="~lib/builtins/f32x4.min",b.f32x4_max="~lib/builtins/f32x4.max",b.f32x4_pmin="~lib/builtins/f32x4.pmin",b.f32x4_pmax="~lib/builtins/f32x4.pmax",b.f32x4_abs="~lib/builtins/f32x4.abs",b.f32x4_sqrt="~lib/builtins/f32x4.sqrt",b.f32x4_ceil="~lib/builtins/f32x4.ceil",b.f32x4_floor="~lib/builtins/f32x4.floor",b.f32x4_trunc="~lib/builtins/f32x4.trunc",b.f32x4_nearest="~lib/builtins/f32x4.nearest",b.f32x4_eq="~lib/builtins/f32x4.eq",b.f32x4_ne="~lib/builtins/f32x4.ne",b.f32x4_lt="~lib/builtins/f32x4.lt",b.f32x4_le="~lib/builtins/f32x4.le",b.f32x4_gt="~lib/builtins/f32x4.gt",b.f32x4_ge="~lib/builtins/f32x4.ge",b.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",b.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",b.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",b.f32x4_shuffle="~lib/builtins/f32x4.shuffle",b.f64x2_splat="~lib/builtins/f64x2.splat",b.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",b.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",b.f64x2_add="~lib/builtins/f64x2.add",b.f64x2_sub="~lib/builtins/f64x2.sub",b.f64x2_mul="~lib/builtins/f64x2.mul",b.f64x2_div="~lib/builtins/f64x2.div",b.f64x2_neg="~lib/builtins/f64x2.neg",b.f64x2_min="~lib/builtins/f64x2.min",b.f64x2_max="~lib/builtins/f64x2.max",b.f64x2_pmin="~lib/builtins/f64x2.pmin",b.f64x2_pmax="~lib/builtins/f64x2.pmax",b.f64x2_abs="~lib/builtins/f64x2.abs",b.f64x2_sqrt="~lib/builtins/f64x2.sqrt",b.f64x2_ceil="~lib/builtins/f64x2.ceil",b.f64x2_floor="~lib/builtins/f64x2.floor",b.f64x2_trunc="~lib/builtins/f64x2.trunc",b.f64x2_nearest="~lib/builtins/f64x2.nearest",b.f64x2_eq="~lib/builtins/f64x2.eq",b.f64x2_ne="~lib/builtins/f64x2.ne",b.f64x2_lt="~lib/builtins/f64x2.lt",b.f64x2_le="~lib/builtins/f64x2.le",b.f64x2_gt="~lib/builtins/f64x2.gt",b.f64x2_ge="~lib/builtins/f64x2.ge",b.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",b.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",b.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",b.f64x2_shuffle="~lib/builtins/f64x2.shuffle",b.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",b.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",b.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",b.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",b.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",b.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",b.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",b.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",b.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",b.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",b.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",b.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",b.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",b.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",b.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",b.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",b.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",b.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",b.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",b.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",b.i31_new="~lib/builtins/i31.new",b.i31_get="~lib/builtins/i31.get",b.data_end="~lib/memory/__data_end",b.stack_pointer="~lib/memory/__stack_pointer",b.heap_base="~lib/memory/__heap_base",b.rtti_base="~lib/rt/__rtti_base",b.visit_globals="~lib/rt/__visit_globals",b.visit_members="~lib/rt/__visit_members",b.tostack="~lib/rt/__tostack",b.NaN="~lib/number/NaN",b.Infinity="~lib/number/Infinity",b.isNaN="~lib/number/isNaN",b.isFinite="~lib/number/isFinite",b.ERROR="~lib/diagnostics/ERROR",b.WARNING="~lib/diagnostics/WARNING",b.INFO="~lib/diagnostics/INFO",b.Function="~lib/function/Function",b.Function_call="~lib/function/Function#call",b.memory_size="~lib/memory/memory.size",b.memory_grow="~lib/memory/memory.grow",b.memory_copy="~lib/memory/memory.copy",b.memory_fill="~lib/memory/memory.fill",b.memory_data="~lib/memory/memory.data",b.Int8Array="~lib/typedarray/Int8Array",b.Uint8Array="~lib/typedarray/Uint8Array",b.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",b.Int16Array="~lib/typedarray/Int16Array",b.Uint16Array="~lib/typedarray/Uint16Array",b.Int32Array="~lib/typedarray/Int32Array",b.Uint32Array="~lib/typedarray/Uint32Array",b.Int64Array="~lib/typedarray/Int64Array",b.Uint64Array="~lib/typedarray/Uint64Array",b.Float32Array="~lib/typedarray/Float32Array",b.Float64Array="~lib/typedarray/Float64Array",b.String_raw="~lib/string/String.raw",b.String_eq="~lib/string/String.__eq",b.String_ne="~lib/string/String.__ne",b.String_not="~lib/string/String.__not",b.Object="~lib/object/Object"))(m||={});var Qo=class{constructor(r,e,t,n,s){this.resolver=r;this.node=e;this.ctxElement=t;this.ctxTypes=n;this.reportMode=s}},qs=class{constructor(r,e,t=e.type,n=e.identifierNode){this.compiler=r;this.element=e;this.contextualType=t;this.reportNode=n}},tu=class{constructor(r,e,t,n,s,a,l,o){this.compiler=r;this.prototype=e;this.typeArguments=t;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},er=new Map,x=new Map,nr=new Map,At=new Map;function QE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!r.program.options.isWasm64)return p.i32;case 4:return p.i64;case 6:case 7:case 8:case 0:return p.u32;case 10:if(!r.program.options.isWasm64)return p.u32;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64;case 13:return p.v128;case 26:return p.void;default:assert(!1)}return null}er.set(N.native,QE);function XE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&r.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let c=u.signature.parameterTypes;return u.is(32)?(assert(c.length==2),c[1]):(assert(c.length==1),c[0])}return s==0&&r.error(2329,a.range,l.toString()),null}er.set(N.indexof,XE);function ZE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(r.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&r.error(2329,a.range,l.toString()),null}er.set(N.valueof,ZE);function $E(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&r.error(2757,a.range,l.toString()),null)}er.set(N.returnof,$E);function YE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();if(o){let u=o.thisType;return u||p.any}return s==0&&r.error(2757,a.range,l.toString()),null}er.set(N.thisof,YE);function JE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}er.set(N.nonnull,JE);var on=0;function e6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isBooleanValue?1:0)):e.unreachable()}x.set(m.isBoolean,e6);function t6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isIntegerValue?1:0)):e.unreachable()}x.set(m.isInteger,t6);function r6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isSignedIntegerValue?1:0)):e.unreachable()}x.set(m.isSigned,r6);function i6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isFloatValue?1:0)):e.unreachable()}x.set(m.isFloat,i6);function n6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isVectorValue?1:0)):e.unreachable()}x.set(m.isVector,n6);function s6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isReference?1:0)):e.unreachable()}x.set(m.isReference,s6);function a6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.isAssignableTo(r.program.stringInstance)?1:0))}x.set(m.isString,a6);function l6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.extendsPrototype(r.program.arrayPrototype)?1:0))}x.set(m.isArray,l6);function o6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.isArrayLike?1:0))}x.set(m.isArrayLike,o6);function u6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isFunction?1:0)):e.unreachable()}x.set(m.isFunction,u6);function c6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isNullableReference?1:0)):e.unreachable()}x.set(m.isNullable,c6);function p6(i){let r=i.compiler,e=r.module;if(r.currentType=p.bool,I(i)|K(i,1))return e.unreachable();let t=r.resolver.lookupExpression(i.operands[0],r.currentFlow,p.auto,1);return e.i32(t?1:0)}x.set(m.isDefined,p6);function f6(i){let r=i.compiler,e=r.module;if(r.currentType=p.bool,I(i)|K(i,1))return e.unreachable();let t=r.compileExpression(i.operands[0],p.auto);return r.currentType=p.bool,Uo(t,e.ref)?e.block(null,[e.maybeDrop(t),e.i32(0)],ce(t)):e.i32(e.isConstExpression(t)?1:0)}x.set(m.isConstant,f6);function _6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isManaged?1:0)):e.unreachable()}x.set(m.isManaged,_6);function d6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.kind==26?1:0)):e.unreachable()}x.set(m.isVoid,d6);function h6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.i32,!t)return e.unreachable();let n=t.signatureReference;return n?ke(i,e.i32(n.parameterTypes.length)):(r.error(2757,i.reportNode.range,t.toString()),e.unreachable())}x.set(m.lengthof,h6);function m6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,Z(i)|K(i,0))return e.unreachable();let t=i.typeArguments[0],n=t.byteSize;if(!n)return r.error(203,i.reportNode.typeArgumentsRange,"sizeof",t.toString()),e.unreachable();let s=t.classReference;return s!=null&&(s.hasDecorator(16)||s.hasDecorator(2048))?ii(r,i64_new(s.nextMemoryOffset),i.contextualType):ii(r,i64_new(n),i.contextualType)}x.set(m.sizeof,m6);function y6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,Z(i)|K(i,0))return e.unreachable();let t=i.typeArguments[0],n=t.byteSize;if(!n||t.kind!=14&&!Kr(n))return r.error(203,i.reportNode.typeArgumentsRange,"alignof",t.toString()),e.unreachable();let s=t.classReference;return s!=null&&(s.hasDecorator(16)||s.hasDecorator(2048))?ii(r,i64_new(s.alignLog2),i.contextualType):ii(r,i64_new(t.alignLog2),i.contextualType)}x.set(m.alignof,y6);function g6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,Z(i)|Ne(i,0,1))return e.unreachable();let t=i.operands,n=i.contextualType,s=i.typeArguments[0];if(s.kind==14)return i.operands.length?(r.error(203,i.reportNode.range,"offsetof",s.toString()),e.unreachable()):ii(r,i64_new(s.byteSize),i.contextualType);let a=s.getClassOrWrapper(r.program);if(!a)return r.error(203,i.reportNode.typeArgumentsRange,"offsetof",s.toString()),r.options.isWasm64?n.isIntegerValue&&n.size<=32&&(r.currentType=p.u32):n.isIntegerValue&&n.size==64&&(r.currentType=p.u64),e.unreachable();if(t.length){let l=t[0];if(!l.isLiteralKind(2))return r.error(1141,t[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let c=u.instance;if(c&&c.isField)return assert(c.memoryOffset>=0),ii(r,i64_new(c.memoryOffset),n)}return r.error(2460,l.range,a.internalName,o),e.unreachable()}return ii(r,i64_new(a.nextMemoryOffset),n)}x.set(m.offsetof,g6);function b6(i){let r=i.compiler,e=r.module;if(r.currentType=r.program.stringInstance.type,Z(i)|K(i,1))return e.unreachable();let t=i.typeArguments[0],n=t.getClassOrWrapper(r.program);if(!n)return r.error(203,i.reportNode.typeArgumentsRange,"abiNameOf",t.toString()),e.unreachable();let s=i.operands[0];if(!s.isLiteralKind(2))return r.error(1141,s.range),e.unreachable();let a=s.value,l=n.getMember(a);if(!l||l.kind!=10)return r.error(2460,s.range,n.internalName,a),e.unreachable();let o=l.fieldDeclaration,u=o?o.type:null,c=u?u.attributes:null;if(c)for(let f=0,_=c.length;f<_;++f){if(!x6(c[f]))continue;let d=c[f].args,g=d&&d.length?d[0]:null;if(g&&g.isLiteralKind(2))return ke(i,r.ensureStaticString(g.value));break}return ke(i,r.ensureStaticString(a))}x.set(m.abiNameOf,b6);function x6(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="alias"}function E6(i){let r=i.compiler,e=r.module,t=Ve(i);if(!t)return r.currentType=r.program.stringInstance.type,e.unreachable();let n;if(t.isInternalReference){let s=t.getClass();s?n=s.name:(assert(t.getSignature()),n="Function")}else n=t.toString();return ke(i,r.ensureStaticString(n))}x.set(m.nameof,E6);function A6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.u32,!t)return e.unreachable();let n=t.getSignature();if(n)return ke(i,e.i32(n.id));let s=t.getClassOrWrapper(r.program);return s&&!s.hasDecorator(16)?ke(i,e.i32(s.id)):(r.error(203,i.reportNode.typeArgumentsRange,"idof",t.toString()),e.unreachable())}x.set(m.idof,A6);function T6(i){let r=i.element;if(r.is(1048576)){let e=i.compiler.module;e.addGlobal(r.internalName,B.F64,!1,e.f64(NaN))}}nr.set(m.NaN,T6);function S6(i){let r=i.compiler,e=r.module;return i.contextualType==p.f32?(r.currentType=p.f32,e.f32(NaN)):(r.currentType=p.f64,e.f64(NaN))}At.set(m.NaN,S6);function v6(i){let r=i.element;if(r.is(1048576)){let e=i.compiler.module;e.addGlobal(r.internalName,B.F64,!1,e.f64(1/0))}}nr.set(m.Infinity,v6);function I6(i){let r=i.compiler,e=r.module;return i.contextualType==p.f32?(r.currentType=p.f32,e.f32(1/0)):(r.currentType=p.f64,e.f64(1/0))}At.set(m.Infinity,I6);function Rf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.typeArguments,n=t?r.compileExpression(i.operands[0],t[0],5):r.compileExpression(i.operands[0],p.i32,4),s=r.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return r.error(203,i.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}x.set(m.clz,Rf);function Cf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return r.error(203,i.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}x.set(m.ctz,Cf);function Pf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue)switch(r.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return r.error(203,i.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}x.set(m.popcnt,Pf);function Bf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=r.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,B.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,B.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}x.set(m.rotl,Bf);function Nf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=r.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,B.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,B.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}x.set(m.rotr,Nf);function Lf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.auto,4),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=r.currentFlow,o=l.getTempLocal(p.i32),u=l.getTempLocal(p.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,B.I32)),e.local_get(u.index,B.I32))}case 5:{let l=r.options,o=r.currentFlow,u=o.getTempLocal(l.usizeType),c=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(c.index,e.binary(228,e.local_tee(u.index,s,!1),r.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(c.index,l.sizeTypeRef))}case 4:{let l=r.currentFlow,o=l.getTempLocal(p.i64),u=l.getTempLocal(p.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,B.I64)),e.local_get(u.index,B.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return r.error(203,i.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}x.set(m.abs,Lf);function Mf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],5):r.compileExpression(t[0],p.auto,4),l=r.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l,4),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,5))):o=r.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let c=r.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let d=c.getTempLocal(l);return c.setLocalFlag(d.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(d.index,f)))}}return r.error(203,i.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}x.set(m.max,Mf);function zf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],5):r.compileExpression(t[0],p.auto,4),l=r.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l,4),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,5))):o=r.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let c=r.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let d=c.getTempLocal(l);return c.setLocalFlag(d.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(d.index,f)))}}return r.error(203,i.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}x.set(m.min,zf);function Df(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return r.error(203,i.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}x.set(m.ceil,Df);function Gf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return r.error(203,i.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}x.set(m.floor,Gf);function Uf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.f64,0),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}x.set(m.copysign,Uf);function Vf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return r.error(203,i.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}x.set(m.nearest,Vf);function Ws(i){let r=i.compiler,e=r.module;if(Z(i,!0)|K(i,1))return e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=r.compileExpression(t[0],p.f32,1);return r.currentType=s,e.unary(33,a)}case 4:case 9:{let a=r.compileExpression(t[0],p.f64,1);return r.currentType=s,e.unary(34,a)}case 5:case 10:{let a=r.options.isWasm64,l=r.compileExpression(t[0],a?p.f64:p.f32,1);return r.currentType=s,e.unary(a?34:33,l)}case 11:{let a=r.compileExpression(t[0],p.i32,1);return r.currentType=p.f32,e.unary(45,a)}case 12:{let a=r.compileExpression(t[0],p.i64,1);return r.currentType=p.f64,e.unary(46,a)}}return r.error(203,i.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}x.set(m.reinterpret,Ws);function Of(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.f64,0),a=r.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return r.error(203,i.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}x.set(m.sqrt,Of);function qf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return r.error(203,i.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}x.set(m.trunc,qf);function k6(i){let r=i.compiler,e=r.module;if(fe(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(r.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if(re(s)==8)return e.binary(58,s,e.local_get(Ct(s),B.F32));let o=r.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F32))}case 12:{if(re(s)==8)return e.binary(71,s,e.local_get(Ct(s),B.F64));let o=r.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F64))}}return r.error(203,i.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}x.set(m.isNaN,k6);function F6(i){let r=i.compiler,e=r.module;if(fe(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(r.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if(re(s)==8)return e.binary(57,e.binary(51,s,e.local_get(Ct(s),B.F32)),e.f32(0));let o=r.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F32)),e.f32(0))}case 12:{if(re(s)==8)return e.binary(70,e.binary(64,s,e.local_get(Ct(s),B.F64)),e.f64(0));let o=r.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F64)),e.f64(0))}}return r.error(203,i.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}x.set(m.isFinite,F6);function w6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=4,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.heap_base,w6);function R6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=4,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.heap_base,R6);function C6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=1,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.data_end,C6);function P6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=1,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.data_end,P6);function B6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=2,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.stack_pointer,B6);function N6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=2,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.stack_pointer,N6);function L6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=8,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.rtti_base,L6);function M6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=8,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.rtti_base,M6);function Ue(i){let r=i.compiler,e=r.module;if(Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return r.error(203,i.reportNode.typeArgumentsRange,"load",l.toString()),r.currentType=p.void,e.unreachable();let o=r.compileExpression(t[0],r.options.usizeType,1),u=t.length,c=0,f=a.byteSize;return u>=2&&(c=_t(t[1],r),c<0||u==3&&(f=ir(t[2],f,r),f<0))?(r.currentType=l,e.unreachable()):(r.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,f))}x.set(m.load,Ue);function Tt(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,Z(i)|Ne(i,2,4))return e.unreachable();let t=i.operands,n=t.length,s=i.typeArguments,a=i.contextualType,l=s[0],o=r.compileExpression(t[0],r.options.usizeType,1),u=i.contextIsExact?r.compileExpression(t[1],a,1):r.compileExpression(t[1],l,l.isIntegerValue?0:1),c=r.currentType;if(!c.isMemory)return r.error(203,i.reportNode.typeArgumentsRange,"store",c.toString()),r.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=r.convertExpression(u,c,l,!1,t[1]),c=l);let f=0,_=l.byteSize;if(n>=3){if(f=_t(t[2],r),f<0)return r.currentType=p.void,e.unreachable();if(n==4&&(_=ir(t[3],_,r),_<0))return r.currentType=p.void,e.unreachable()}return r.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),f,_)}x.set(m.store,Tt);function Ks(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isIntegerValue)return r.makeRem(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}x.set(m.rem,Ks);function Hs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeAdd(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}x.set(m.add,Hs);function js(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeSub(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}x.set(m.sub,js);function Qs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeMul(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}x.set(m.mul,Qs);function ni(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeDiv(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}x.set(m.div,ni);function Xs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.currentType=p.i32,r.makeEq(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}x.set(m.eq,Xs);function Zs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.currentType=p.i32,r.makeNe(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}x.set(m.ne,Zs);function Tr(i){let r=i.compiler,e=r.module;if(X(i,32)|Z(i,!0)|Ne(i,1,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.load",a.toString()),r.currentType=l,e.unreachable();let o=r.compileExpression(t[0],r.options.usizeType,1),u=t.length==2?_t(t[1],r):0;return u<0?(r.currentType=l,e.unreachable()):(r.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}x.set(m.atomic_load,Tr);function Sr(i){let r=i.compiler,e=r.module;if(X(i,32)|Z(i)|Ne(i,2,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0];if(!a.isIntegerValue)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.store",a.toString()),r.currentType=p.void,e.unreachable();let l=r.compileExpression(t[0],r.options.usizeType,1),o=i.contextIsExact?r.compileExpression(t[1],s,1):r.compileExpression(t[1],a,a.isIntegerValue?0:1),u=r.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=r.convertExpression(o,u,a,!1,t[1]),u=a);let c=t.length==3?_t(t[2],r):0;return c<0?(r.currentType=p.void,e.unreachable()):(r.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}x.set(m.atomic_store,Sr);function un(i,r,e){let t=i.compiler,n=t.module;if(X(i,32)|Z(i,!0)|Ne(i,2,3))return n.unreachable();let s=i.operands,a=i.typeArguments,l=i.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return t.error(203,i.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=t.compileExpression(s[0],t.options.usizeType,1),c=i.contextIsExact?t.compileExpression(s[1],l,1):t.compileExpression(s[1],o,o.isIntegerValue?0:1),f=t.currentType;o.isIntegerValue&&(!f.isIntegerValue||f.size<o.size)&&(c=t.convertExpression(c,f,o,!1,s[1]),f=o);let _=s.length==3?_t(s[2],t):0;return _<0?(t.currentType=f,n.unreachable()):(t.currentType=f,n.atomic_rmw(r,o.byteSize,_,u,c,f.toRef()))}function vr(i){return un(i,0,"atomic.add")}x.set(m.atomic_add,vr);function Ir(i){return un(i,1,"atomic.sub")}x.set(m.atomic_sub,Ir);function kr(i){return un(i,2,"atomic.and")}x.set(m.atomic_and,kr);function Fr(i){return un(i,3,"atomic.or")}x.set(m.atomic_or,Fr);function wr(i){return un(i,4,"atomic.xor")}x.set(m.atomic_xor,wr);function Rr(i){return un(i,5,"atomic.xchg")}x.set(m.atomic_xchg,Rr);function Cr(i){let r=i.compiler,e=r.module;if(X(i,32)|Z(i,!0)|Ne(i,3,4))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=r.compileExpression(t[0],r.options.usizeType,1),o=i.contextIsExact?r.compileExpression(t[1],s,1):r.compileExpression(t[1],a,a.isIntegerValue?0:1),u=r.currentType,c=r.compileExpression(t[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=r.convertExpression(o,u,a,!1,t[1]),c=r.convertExpression(c,u,a,!1,t[2]),u=a);let f=t.length==4?_t(t[3],r):0;return f<0?(r.currentType=u,e.unreachable()):(r.currentType=u,e.atomic_cmpxchg(a.byteSize,f,l,o,c,u.toRef()))}x.set(m.atomic_cmpxchg,Cr);function Wf(i){let r=i.compiler,e=r.module;if(X(i,32)|Z(i)|Ne(i,2,3))return r.currentType=p.i32,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],s,1),o=t.length==3?r.compileExpression(t[2],p.i64,1):e.i64(-1,-1);switch(r.currentType=p.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return r.error(203,i.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}x.set(m.atomic_wait,Wf);function z6(i){let r=i.compiler,e=r.module;if(X(i,32)|I(i)|Ne(i,1,2))return r.currentType=p.i32,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],r.options.usizeType,1),s=t.length==2?r.compileExpression(t[1],p.i32,1):e.i32(-1);return r.currentType=p.i32,e.atomic_notify(n,s)}x.set(m.atomic_notify,z6);function D6(i){let r=i.compiler,e=r.module;return r.currentType=p.void,X(i,32)|I(i)|K(i,0)?e.unreachable():e.atomic_fence()}x.set(m.atomic_fence,D6);function G6(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(!a.isAny(384))return r.error(203,i.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=r.compileExpression(t[1],a,1),o=r.makeIsTrueish(r.compileExpression(t[2],p.bool),r.currentType,t[2]);return r.currentType=a,e.select(s,l,o)}x.set(m.select,G6);function U6(i){return I(i),K(i,0),i.compiler.module.unreachable()}x.set(m.unreachable,U6);function V6(i){let r=i.compiler,e=r.module;return r.currentType=p.i32,I(i)|K(i,0)?e.unreachable():e.memory_size()}x.set(m.memory_size,V6);function O6(i){let r=i.compiler,e=r.module;return r.currentType=p.i32,I(i)|K(i,1)?e.unreachable():e.memory_grow(r.compileExpression(i.operands[0],p.i32,1))}x.set(m.memory_grow,O6);function q6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,I(i)|K(i,3))return e.unreachable();let t=i.operands;if(!r.options.hasFeature(8)){let o=r.resolver.resolveFunction(i.prototype,null);return r.currentType=p.void,!o||!r.compileFunction(o,!0)?e.unreachable():r.compileCallDirect(o,t,i.reportNode)}let n=r.options.usizeType,s=r.compileExpression(t[0],n,1),a=r.compileExpression(t[1],n,1),l=r.compileExpression(t[2],n,1);return r.currentType=p.void,e.memory_copy(s,a,l)}x.set(m.memory_copy,q6);function W6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,I(i)|K(i,3))return e.unreachable();let t=i.operands;if(!r.options.hasFeature(8)){let o=r.resolver.resolveFunction(i.prototype,null);return r.currentType=p.void,!o||!r.compileFunction(o,!0)?e.unreachable():r.compileCallDirect(o,t,i.reportNode)}let n=r.options.usizeType,s=r.compileExpression(t[0],n,1),a=r.compileExpression(t[1],p.u8,1),l=r.compileExpression(t[2],n,1);return r.currentType=p.void,e.memory_fill(s,a,l)}x.set(m.memory_fill,W6);function K6(i){let r=i.compiler,e=r.module;if(r.currentType=p.i32,fe(i)|Ne(i,1,2))return e.unreachable();let t=i.typeArguments,n=i.operands,s=n.length,a=r.options.usizeType,l;if(t&&t.length>0){let o=t[0];if(!o.isValue)return r.error(203,i.reportNode.typeArgumentsRange,"memory.data",o.toString()),r.currentType=a,e.unreachable();let u=n[0];if(u.kind!=18||u.literalKind!=5)return r.error(227,n[0].range),r.currentType=a,e.unreachable();let c=u.elementExpressions,f=c.length,_=new Array(f),d=!0;for(let E=0;E<f;++E){let T=c[E];if(T.kind!=21){let k=r.compileExpression(T,o,1),F=e.runExpression(k,1);F?k=F:d=!1,_[E]=k}else _[E]=r.makeZero(o)}if(!d)return r.error(220,u.range),r.currentType=a,e.unreachable();let g=o.byteSize;if(s==2&&(g=ir(n[1],g,r),g<0))return r.currentType=a,e.unreachable();let y=new Uint8Array(f*o.byteSize);assert(r.writeStaticBuffer(y,0,o,_)==y.byteLength),l=r.addAlignedMemorySegment(y,g).offset}else{let o=r.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return r.error(220,n[0].range),r.currentType=a,e.unreachable();let c=ae(u);if(c<1)return r.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),r.currentType=a,e.unreachable();let f=16;if(s==2&&(f=ir(n[1],f,r),f<0))return r.currentType=a,e.unreachable();l=r.addAlignedMemorySegment(new Uint8Array(c),f).offset}return r.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}x.set(m.memory_data,K6);function H6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.i32,1);return r.currentType=p.i31,e.i31_new(n)}x.set(m.i31_new,H6);function j6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.i31.asNullable(),1);return i.contextualType.is(2)?(r.currentType=p.u32,e.i31_get(n,!1)):(r.currentType=p.i32,e.i31_get(n,!0))}x.set(m.i31_get,j6);function lx(i){let r=i.classReference;return r!=null&&r.hasDecorator(2048)}function ox(i){let r=i.classReference;return r!=null&&r.hasDecorator(16)&&!r.hasDecorator(2048)&&!r.hasDecorator(4096)}function Q6(i){let r=i.compiler,e=r.module;if(Z(i,!0)|K(i,1))return e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.classReference!=null&&assert(s.classReference).hasDecorator(4096)){if(!r.resolver.isViewCall(i.reportNode))return r.error(100,i.reportNode.range,"changetype to an @inline struct (a value has no pointer representation; use @unmanaged struct for a view over bytes)"),e.unreachable();let u=r.resolver.resolveExpression(t[0],r.currentFlow),c=u!=null?u.classReference:null;if(c!=null&&c.hasDecorator(4096))return r.error(6395,i.reportNode.range,assert(u).toString(),"@unmanaged"),e.unreachable();let f=r.compileExpression(t[0],p.auto);return r.currentType=s,f}let l=r.compileExpression(t[0],p.auto),o=r.currentType;return r.currentType=s,lx(s)&&ox(o)?(r.error(6394,i.reportNode.range,o.toString()),e.unreachable()):(ox(s)&&lx(o)&&r.markOperandForRooting(),o.isChangeableTo(s)?l:(r.error(202,i.reportNode.range,o.toString(),s.toString()),e.unreachable()))}x.set(m.changetype,Q6);function X6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,K(i,2))return e.unreachable();let t=i.operands,n=r.resolver.resolveExpression(t[1],r.currentFlow);if(n==null)return e.unreachable();let s=n.classReference;if(s==null||!s.hasDecorator(4096))return r.error(100,i.reportNode.typeArgumentsRange,"copyInto needs an @inline struct value: '"+n.toString()+"' is not a value type"),e.unreachable();let a=r.compileExpression(t[0],r.options.usizeType,1),l=r.sroaTreeOf(t[1]);if(l==null)return r.error(100,t[1].range,"copyInto needs an @inline struct value held in a local (a value has no address, so only a tracked value can be copied out)"),e.unreachable();let o=new Array;return r.emitSroaStores(n,l,a,0,o),r.currentType=p.void,e.flatten(o,B.None)}x.set(m.copyInto,X6);function Z6(i){let r=i.compiler,e=r.module,t=i.typeArguments;if(fe(i,!0)|Ne(i,1,2))return t&&(assert(t.length),r.currentType=t[0].nonNullableType),e.unreachable();let n=i.operands,s=i.contextualType,a=t?r.compileExpression(n[0],t[0],5):r.compileExpression(n[0],p.bool,4),l=r.currentType;if(r.currentType=l.nonNullableType,r.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(ce(o)){case B.I32:{if(ae(o))return a;break}case B.I64:{if(Be(o)|Ge(o))return a;break}case B.F32:{if(Ce(o))return a;break}case B.F64:{if(Pe(o))return a;break}}let u=r.makeAbort(n.length==2?n[1]:null,i.reportNode);if(r.currentType=l.nonNullableType,s==p.void)switch(r.currentType=p.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:return e.if(e.ref_is_null(a),u)}else{r.currentType=l.nonNullableType;let c=r.currentFlow;switch(r.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let f=c.getTempLocal(l);return c.setLocalFlag(f.index,2),e.if(e.local_tee(f.index,a,!1),e.local_get(f.index,B.I32),u)}case 4:case 9:{let f=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(f.index,a,!1)),u,e.local_get(f.index,B.I64))}case 5:case 10:{let f=c.getTempLocal(r.options.usizeType);return e.if(e.unary(145,e.local_tee(f.index,a,l.isManaged)),u,e.local_get(f.index,r.options.sizeTypeRef))}case 11:{let f=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(f.index,a,!1),e.f32(0)),u,e.local_get(f.index,B.F32))}case 12:{let f=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(f.index,a,!1),e.f64(0)),u,e.local_get(f.index,B.F64))}case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:{let f=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(f.index,a,!1)),u,e.local_get(f.index,l.toRef()))}}}return r.error(203,i.reportNode.typeArgumentsRange,"assert",r.currentType.toString()),u}x.set(m.assert,Z6);function $6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=r.currentFlow,n=r.options.uncheckedBehavior===1,s=t.is(32768);n?assert(!s):t.set(32768);let a=r.compileExpression(i.operands[0],i.contextualType);return s||t.unset(32768),a}x.set(m.unchecked,$6);function Y6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=r.currentFlow,n=t.is(131072);n||t.set(131072);let s=r.compileExpression(i.operands[0],i.contextualType);return n||t.unset(131072),s}x.set(m.inline_always,Y6);function J6(i){let r=i.compiler,e=r.module;if(fe(i,!0)|Ne(i,1,i32.MAX_VALUE))return e.unreachable();let t=i.operands,n=i.typeArguments,s;n?(assert(n.length),s=n[0]):s=i.contextualType;let a=r.compileExpression(t[0],p.u32,1),l=t.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=r.compileExpression(t[1+c],p.auto),r.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=r.currentType.toRef();return r.currentType=s,e.call_indirect(null,a,o,ft(u),s.toRef())}x.set(m.call_indirect,J6);function eA(i){let r=i.compiler,e=r.module;if(Z(i,!0))return e.unreachable();let t=i.operands,a=i.typeArguments[0].getClass();if(!a)return r.error(2351,i.reportNode.expression.range),e.unreachable();r.currentType=a.type;let l=r.ensureConstructor(a,i.reportNode);return r.checkFieldInitialization(a,i.reportNode),r.compileInstantiate(l,t,0,i.reportNode)}x.set(m.instantiate,eA);function Kf(i,r){let e=i.compiler,t=e.module;I(i);let n=i.operands,s=i.reportNode;return e.emitDiagnostic(102,r,s.range,null,n.length?n[0].range.toString():s.range.toString()),r==3?t.unreachable():t.nop()}function tA(i){return Kf(i,3)}x.set(m.ERROR,tA);function rA(i){return Kf(i,2)}x.set(m.WARNING,rA);function iA(i){return Kf(i,1)}x.set(m.INFO,iA);function nA(i){let r=i.compiler,e=i.prototype.parent;assert(e.kind==7);let t=e;assert(t.prototype==r.program.functionPrototype);let n=assert(t.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(I(i)|Ne(i,1+a.requiredParameters,1+a.parameterTypes.length))return r.currentType=l,r.module.unreachable();let o=r.compileExpression(assert(i.thisOperand),s,1),u=assert(i.operands.shift()),c=a.thisType,f=0;if(c)f=r.compileExpression(u,c,1);else if(u.kind!=20)return r.error(2332,u.range),r.module.unreachable();return r.compileCallIndirect(a,o,i.operands,i.reportNode,f,i.contextualType==p.void)}x.set(m.Function_call,nA);function sA(i){let r=i.compiler,e=r.module;return r.currentType=i.compiler.program.stringInstance.type,r.error(100,i.reportNode.range,"String.raw"),e.unreachable()}x.set(m.String_raw,sA);function ot(i,r){let e=i.compiler;return I(i)|K(i,1)?(e.currentType=r,e.module.unreachable()):e.compileExpression(i.operands[0],r,2)}function aA(i){return ot(i,p.i8)}x.set(m.i8,aA);function lA(i){return ot(i,p.i16)}x.set(m.i16,lA);function oA(i){return ot(i,p.i32)}x.set(m.i32,oA);function uA(i){return ot(i,p.i64)}x.set(m.i64,uA);function cA(i){return ot(i,i.compiler.options.isizeType)}x.set(m.isize,cA);function pA(i){return ot(i,p.u8)}x.set(m.u8,pA);function fA(i){return ot(i,p.u16)}x.set(m.u16,fA);function _A(i){return ot(i,p.u32)}x.set(m.u32,_A);function dA(i){return ot(i,p.u64)}x.set(m.u64,dA);function hA(i){return ot(i,i.compiler.options.usizeType)}x.set(m.usize,hA);function mA(i){return ot(i,p.bool)}x.set(m.bool,mA);function yA(i){return ot(i,p.f32)}x.set(m.f32,yA);function gA(i){return ot(i,p.f64)}x.set(m.f64,gA);function bA(i){return ux(i)}x.set(m.v128,bA);function ux(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,16))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=r.compileExpression(t[l],p.i8,1),u=e.runExpression(o,1);u?be(ae(u),n,l):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let c=s[u];c&&(l=e.simd_replace(0,l,u,c))}return l}}x.set(m.i8x16,ux);function xA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,8))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=r.compileExpression(t[l],p.i16,1),u=e.runExpression(o,1);u?gr(ae(u),n,l<<1):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let c=s[u];c&&(l=e.simd_replace(1,l,u,c))}return l}}x.set(m.i16x8,xA);function EA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,4))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=r.compileExpression(t[l],p.i32,1),u=e.runExpression(o,1);u?Se(ae(u),n,l<<2):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(2,l,u,c))}return l}}x.set(m.i32x4,EA);function AA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=r.compileExpression(t[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;Se(Be(u),n,c+0),Se(Ge(u),n,c+4)}else s[l]=o,a++}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(3,l,u,c))}return l}}x.set(m.i64x2,AA);function TA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,4))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=r.compileExpression(t[l],p.f32,1),u=e.runExpression(o,1);u?qr(Ce(u),n,l<<2):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(5,l,u,c))}return l}}x.set(m.f32x4,TA);function SA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=r.compileExpression(t[l],p.f64,1),u=e.runExpression(o,1);u?Wr(Pe(u),n,l<<3):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(6,l,u,c))}return l}}x.set(m.f64x2,SA);function si(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],s,1);if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(r.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}x.set(m.v128_splat,si);function sr(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i,!0)|K(i,2))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.u8,1);r.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ae(u):r.error(220,t[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(r.error(222,t[1].range,"Lane index","0",c.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(r.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}x.set(m.v128_extract_lane,sr);function ai(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.u8,1),o=r.compileExpression(t[2],s,1);r.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=ae(c):r.error(220,t[1].range),s.isValue){let f=16/assert(s.byteSize)-1;switch((u<0||u>f)&&(r.error(222,t[1].range,"Lane index","0",f.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(r.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}x.set(m.v128_replace_lane,ai);function li(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Kr(l)),K(i,2+l))return r.currentType=p.v128,e.unreachable();let o=r.compileExpression(t[0],p.v128,1),u=r.compileExpression(t[1],p.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let c=new Uint8Array(16),f=(l<<1)-1;for(let _=0;_<l;++_){let d=t[2+_],g=r.compileExpression(d,p.u8,1),y=e.runExpression(g,1),E=0;switch(y?(E=ae(y),(E<0||E>f)&&(r.error(222,d.range,"Lane index","0",f.toString()),E=0)):r.error(220,d.range),a){case 1:{be(E,c,_);break}case 2:{let T=_<<1,k=E<<1;be(k,c,T),be(k+1,c,T+1);break}case 4:{let T=_<<2,k=E<<2;be(k,c,T),be(k+1,c,T+1),be(k+2,c,T+2),be(k+3,c,T+3);break}case 8:{let T=_<<3,k=E<<3;be(k,c,T),be(k+1,c,T+1),be(k+2,c,T+2),be(k+3,c,T+3),be(k+4,c,T+4),be(k+5,c,T+5),be(k+6,c,T+6),be(k+7,c,T+7);break}default:assert(!1)}}return r.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),r.currentType=p.v128,e.unreachable()}x.set(m.v128_shuffle,li);function cx(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1);return e.binary(209,n,s)}x.set(m.v128_swizzle,cx);function $s(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!r.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}x.set(m.v128_load_splat,$s);function oi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(r.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(r.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}x.set(m.v128_load_ext,oi);function Hf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(r.options.isWasm64?11:10,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}x.set(m.v128_load_zero,Hf);function Ys(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i,!0)|Ne(i,3,5))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ae(c):r.error(220,t[2].range);let f=t.length,_=0,d=s.byteSize;if(f>=4){if(_=_t(t[3],r),_<0)return r.currentType=p.v128,e.unreachable();if(f==5&&(d=ir(t[4],d,r),d<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue){let g=16/assert(s.byteSize)-1;switch((u<0||u>g)&&(r.error(222,t[1].range,"Lane index","0",g.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,_,d,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,_,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,_,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,_,d,u,l);case 5:case 10:return e.simd_loadstorelane(r.options.isWasm64?3:2,a,_,d,u,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}x.set(m.v128_load_lane,Ys);function Js(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i,!0)|Ne(i,3,5))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ae(c):r.error(220,t[2].range);let f=t.length,_=0,d=s.byteSize;if(f>=4){if(_=_t(t[3],r),_<0)return r.currentType=p.v128,e.unreachable();if(f==5&&(d=ir(t[4],d,r),d<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.void,s.isValue){let g=16/assert(s.byteSize)-1;switch((u<0||u>g)&&(r.error(222,t[1].range,"Lane index","0",g.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,_,d,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,_,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,_,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,_,d,u,l);case 5:case 10:return e.simd_loadstorelane(r.options.isWasm64?7:6,a,_,d,u,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}x.set(m.v128_store_lane,Js);function ui(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(r.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}x.set(m.v128_add,ui);function ci(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(r.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}x.set(m.v128_sub,ci);function cn(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(r.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}x.set(m.v128_mul,cn);function jf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}x.set(m.v128_div,jf);function ea(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}x.set(m.v128_add_sat,ea);function ta(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}x.set(m.v128_sub_sat,ta);function ar(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(r.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(r.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}x.set(m.v128_min,ar);function lr(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(r.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(r.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}x.set(m.v128_max,lr);function Qf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}x.set(m.v128_pmin,Qf);function Xf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}x.set(m.v128_pmax,Xf);function px(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}x.set(m.v128_dot,px);function Zf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}x.set(m.v128_avgr,Zf);function pi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(r.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}x.set(m.v128_eq,pi);function fi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(r.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}x.set(m.v128_ne,fi);function Mt(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(r.options.isWasm64?108:98,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}x.set(m.v128_lt,Mt);function zt(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(r.options.isWasm64?110:102,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}x.set(m.v128_le,zt);function Dt(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(r.options.isWasm64?109:100,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}x.set(m.v128_gt,Dt);function Gt(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(r.options.isWasm64?111:104,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}x.set(m.v128_ge,Gt);function ra(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}x.set(m.v128_narrow,ra);function _i(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(r.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}x.set(m.v128_neg,_i);function di(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(r.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}x.set(m.v128_abs,di);function $f(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}x.set(m.v128_sqrt,$f);function Yf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}x.set(m.v128_ceil,Yf);function Jf(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}x.set(m.v128_floor,Jf);function e_(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}x.set(m.v128_trunc,e_);function t_(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}x.set(m.v128_nearest,t_);function r_(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(113,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}x.set(m.v128_convert,r_);function i_(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(127,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}x.set(m.v128_convert_low,i_);function n_(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(111,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}x.set(m.v128_trunc_sat,n_);function s_(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(129,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}x.set(m.v128_trunc_sat_zero,s_);function hi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(r.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(124,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}x.set(m.v128_extend_low,hi);function mi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(r.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(125,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}x.set(m.v128_extend_high,mi);function ia(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1),a=r.compileExpression(t[1],p.i32,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(r.options.isWasm64?9:6,s,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}x.set(m.v128_shl,ia);function or(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1),a=r.compileExpression(t[1],p.i32,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(r.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(r.options.isWasm64?11:8,s,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}x.set(m.v128_shr,or);function ru(i,r){let e=i.compiler,t=e.module;if(X(i,16)|I(i)|K(i,2))return e.currentType=p.v128,t.unreachable();let n=i.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return t.binary(r,s,a)}function vA(i){return ru(i,130)}x.set(m.v128_and,vA);function IA(i){return ru(i,131)}x.set(m.v128_or,IA);function kA(i){return ru(i,132)}x.set(m.v128_xor,kA);function FA(i){return ru(i,133)}x.set(m.v128_andnot,FA);function wA(i,r){let e=i.compiler,t=e.module;if(X(i,16)|I(i)|K(i,1))return e.currentType=p.v128,t.unreachable();let n=i.operands,s=e.compileExpression(n[0],p.v128,1);return t.unary(r,s)}function RA(i){return wA(i,66)}x.set(m.v128_not,RA);function CA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1),a=r.compileExpression(t[2],p.v128,1);return e.simd_ternary(0,n,s,a)}x.set(m.v128_bitselect,CA);function PA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1);return r.currentType=p.bool,e.unary(67,n)}x.set(m.v128_any_true,PA);function na(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(r.options.isWasm64?83:79,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}x.set(m.v128_all_true,na);function sa(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.i32,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(r.options.isWasm64?84:80,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}x.set(m.v128_bitmask,sa);function fx(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}x.set(m.v128_popcnt,fx);function aa(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}x.set(m.v128_extadd_pairwise,aa);function _x(i){let r=i.compiler,e=r.module;if(X(i,16)|fe(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?n[0]:p.f64,a=r.compileExpression(t[0],p.v128,1);return r.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(r.error(203,i.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}x.set(m.v128_demote_zero,_x);function dx(i){let r=i.compiler,e=r.module;if(X(i,16)|fe(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?n[0]:p.f32,a=r.compileExpression(t[0],p.v128,1);return r.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(r.error(203,i.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}x.set(m.v128_promote_low,dx);function hx(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}x.set(m.v128_q15mulr_sat,hx);function yi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}x.set(m.v128_extmul_low,yi);function gi(i){let r=i.compiler,e=r.module;if(X(i,16)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}x.set(m.v128_extmul_high,gi);function mx(i){let r=i.compiler,e=r.module;if(X(i,4096)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1);return e.binary(210,n,s)}x.set(m.v128_relaxed_swizzle,mx);function a_(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(133,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}x.set(m.v128_relaxed_trunc,a_);function l_(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(135,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}x.set(m.v128_relaxed_trunc_zero,l_);function o_(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}x.set(m.v128_relaxed_madd,o_);function u_(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}x.set(m.v128_relaxed_nmadd,u_);function la(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(r.options.isWasm64?8:7,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}x.set(m.v128_relaxed_laneselect,la);function c_(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}x.set(m.v128_relaxed_min,c_);function p_(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}x.set(m.v128_relaxed_max,p_);function yx(i){let r=i.compiler,e=r.module;if(X(i,4096)|Z(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}x.set(m.v128_relaxed_q15mulr,yx);function gx(i){let r=i.compiler,e=r.module;if(X(i,4096)|K(i,2)|Z(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}x.set(m.v128_relaxed_dot,gx);function bx(i){let r=i.compiler,e=r.module;if(X(i,4096)|K(i,3)|Z(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}x.set(m.v128_relaxed_dot_add,bx);function BA(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return r.currentType=p.void,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.u32,1);return r.runtimeFeatures|=16,r.currentType=p.void,e.call(m.visit_globals,[n],B.None)}x.set(m.visit_globals,BA);function NA(i){let r=i.compiler,e=r.module;if(I(i)|K(i,2))return r.currentType=p.void,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],r.options.usizeType,1),s=r.compileExpression(t[1],p.u32,1);return r.runtimeFeatures|=32,r.currentType=p.void,e.call(m.visit_members,[n,s],B.None)}x.set(m.visit_members,NA);function LA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Rf(i)}x.set(m.i32_clz,LA);function MA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Rf(i)}x.set(m.i64_clz,MA);function zA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Cf(i)}x.set(m.i32_ctz,zA);function DA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Cf(i)}x.set(m.i64_ctz,DA);function GA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Pf(i)}x.set(m.i32_popcnt,GA);function UA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Pf(i)}x.set(m.i64_popcnt,UA);function VA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Bf(i)}x.set(m.i32_rotl,VA);function OA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Bf(i)}x.set(m.i64_rotl,OA);function qA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Nf(i)}x.set(m.i32_rotr,qA);function WA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Nf(i)}x.set(m.i64_rotr,WA);function KA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Lf(i)}x.set(m.f32_abs,KA);function HA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Lf(i)}x.set(m.f64_abs,HA);function jA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Mf(i)}x.set(m.f32_max,jA);function QA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Mf(i)}x.set(m.f64_max,QA);function XA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,zf(i)}x.set(m.f32_min,XA);function ZA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,zf(i)}x.set(m.f64_min,ZA);function $A(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Df(i)}x.set(m.f32_ceil,$A);function YA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Df(i)}x.set(m.f64_ceil,YA);function JA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Gf(i)}x.set(m.f32_floor,JA);function eT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Gf(i)}x.set(m.f64_floor,eT);function tT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Uf(i)}x.set(m.f32_copysign,tT);function rT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Uf(i)}x.set(m.f64_copysign,rT);function iT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Vf(i)}x.set(m.f32_nearest,iT);function nT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Vf(i)}x.set(m.f64_nearest,nT);function sT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.f32,Ws(i)}x.set(m.i32_reinterpret_f32,sT);function aT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.f64,Ws(i)}x.set(m.i64_reinterpret_f64,aT);function lT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Ws(i)}x.set(m.f32_reinterpret_i32,lT);function oT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i64,Ws(i)}x.set(m.f64_reinterpret_i64,oT);function uT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Of(i)}x.set(m.f32_sqrt,uT);function cT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Of(i)}x.set(m.f64_sqrt,cT);function pT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,qf(i)}x.set(m.f32_trunc,pT);function fT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,qf(i)}x.set(m.f64_trunc,fT);function _T(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ks(i)}x.set(m.i32_rem_s,_T);function dT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.u32,Ks(i)}x.set(m.i32_rem_u,dT);function hT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ks(i)}x.set(m.i64_rem_s,hT);function mT(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.u64,Ks(i)}x.set(m.i64_rem_u,mT);function yT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Hs(i)}x.set(m.i32_add,yT);function gT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Hs(i)}x.set(m.i64_add,gT);function bT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Hs(i)}x.set(m.f32_add,bT);function xT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Hs(i)}x.set(m.f64_add,xT);function ET(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,js(i)}x.set(m.i32_sub,ET);function AT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,js(i)}x.set(m.i64_sub,AT);function TT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,js(i)}x.set(m.f32_sub,TT);function ST(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,js(i)}x.set(m.f64_sub,ST);function vT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Qs(i)}x.set(m.i32_mul,vT);function IT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Qs(i)}x.set(m.i64_mul,IT);function kT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Qs(i)}x.set(m.f32_mul,kT);function FT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Qs(i)}x.set(m.f64_mul,FT);function wT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,ni(i)}x.set(m.i32_div_s,wT);function RT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.u32,ni(i)}x.set(m.i32_div_u,RT);function CT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,ni(i)}x.set(m.i64_div_s,CT);function PT(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.u64,ni(i)}x.set(m.i64_div_u,PT);function BT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,ni(i)}x.set(m.f32_div,BT);function NT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,ni(i)}x.set(m.f64_div,NT);function LT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Xs(i)}x.set(m.i32_eq,LT);function MT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Xs(i)}x.set(m.i64_eq,MT);function zT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Xs(i)}x.set(m.f32_eq,zT);function DT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i32,Xs(i)}x.set(m.f64_eq,DT);function GT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Zs(i)}x.set(m.i32_ne,GT);function UT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Zs(i)}x.set(m.i64_ne,UT);function VT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Zs(i)}x.set(m.f32_ne,VT);function OT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i32,Zs(i)}x.set(m.f64_ne,OT);function qT(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load8_s,qT);function WT(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load8_u,WT);function KT(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load16_s,KT);function HT(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load16_u,HT);function jT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load,jT);function QT(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load8_s,QT);function XT(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load8_u,XT);function ZT(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load16_s,ZT);function $T(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load16_u,$T);function YT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load32_s,YT);function JT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load32_u,JT);function eS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load,eS);function tS(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Ue(i)}x.set(m.f32_load,tS);function rS(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Ue(i)}x.set(m.f64_load,rS);function iS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store8,iS);function nS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store16,nS);function sS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store,sS);function aS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store8,aS);function lS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store16,lS);function oS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store32,oS);function uS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store,uS);function cS(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,i.contextIsExact=!0,Tt(i)}x.set(m.f32_store,cS);function pS(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,i.contextIsExact=!0,Tt(i)}x.set(m.f64_store,pS);function fS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load8_u,fS);function _S(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load16_u,_S);function dS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load,dS);function hS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load8_u,hS);function mS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load16_u,mS);function yS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load32_u,yS);function gS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load,gS);function bS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store8,bS);function xS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store16,xS);function ES(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store,ES);function AS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store8,AS);function TS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store16,TS);function SS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store32,SS);function vS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store,vS);function IS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw8_add_u,IS);function kS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw16_add_u,kS);function FS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw_add,FS);function wS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw8_add_u,wS);function RS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw16_add_u,RS);function CS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw32_add_u,CS);function PS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw_add,PS);function BS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw8_sub_u,BS);function NS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw16_sub_u,NS);function LS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw_sub,LS);function MS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw8_sub_u,MS);function zS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw16_sub_u,zS);function DS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw32_sub_u,DS);function GS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw_sub,GS);function US(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw8_and_u,US);function VS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw16_and_u,VS);function OS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw_and,OS);function qS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw8_and_u,qS);function WS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw16_and_u,WS);function KS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw32_and_u,KS);function HS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw_and,HS);function jS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw8_or_u,jS);function QS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw16_or_u,QS);function XS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw_or,XS);function ZS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw8_or_u,ZS);function $S(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw16_or_u,$S);function YS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw32_or_u,YS);function JS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw_or,JS);function ev(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw8_xor_u,ev);function tv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw16_xor_u,tv);function rv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw_xor,rv);function iv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw8_xor_u,iv);function nv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw16_xor_u,nv);function sv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw32_xor_u,sv);function av(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw_xor,av);function lv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw8_xchg_u,lv);function ov(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw16_xchg_u,ov);function uv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw_xchg,uv);function cv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw8_xchg_u,cv);function pv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw16_xchg_u,pv);function fv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw32_xchg_u,fv);function _v(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw_xchg,_v);function dv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw8_cmpxchg_u,dv);function hv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw16_cmpxchg_u,hv);function mv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw_cmpxchg,mv);function yv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw8_cmpxchg_u,yv);function gv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw16_cmpxchg_u,gv);function bv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw32_cmpxchg_u,bv);function xv(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw_cmpxchg,xv);function Ev(i){return I(i),i.typeArguments=[p.i32],Wf(i)}x.set(m.memory_atomic_wait32,Ev);function Av(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Wf(i)}x.set(m.memory_atomic_wait64,Av);function Tv(i){return I(i),i.typeArguments=[p.v128],i.contextualType=p.v128,Ue(i)}x.set(m.v128_load,Tv);function Sv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,oi(i)}x.set(m.v128_load8x8_s,Sv);function vv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,oi(i)}x.set(m.v128_load8x8_u,vv);function Iv(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,oi(i)}x.set(m.v128_load16x4_s,Iv);function kv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,oi(i)}x.set(m.v128_load16x4_u,kv);function Fv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,oi(i)}x.set(m.v128_load32x2_s,Fv);function wv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,oi(i)}x.set(m.v128_load32x2_u,wv);function Rv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,$s(i)}x.set(m.v128_load8_splat,Rv);function Cv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,$s(i)}x.set(m.v128_load16_splat,Cv);function Pv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,$s(i)}x.set(m.v128_load32_splat,Pv);function Bv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,$s(i)}x.set(m.v128_load64_splat,Bv);function Nv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Hf(i)}x.set(m.v128_load32_zero,Nv);function Lv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Hf(i)}x.set(m.v128_load64_zero,Lv);function Mv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load8_lane,Mv);function zv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load16_lane,zv);function Dv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load32_lane,Dv);function Gv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Ys(i)}x.set(m.v128_load64_lane,Gv);function Uv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Js(i)}x.set(m.v128_store8_lane,Uv);function Vv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Js(i)}x.set(m.v128_store16_lane,Vv);function Ov(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Js(i)}x.set(m.v128_store32_lane,Ov);function qv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Js(i)}x.set(m.v128_store64_lane,qv);function Wv(i){return I(i),i.typeArguments=[p.v128],i.contextualType=p.v128,i.contextIsExact=!0,Tt(i)}x.set(m.v128_store,Wv);function Kv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,si(i)}x.set(m.i8x16_splat,Kv);function Hv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,sr(i)}x.set(m.i8x16_extract_lane_s,Hv);function jv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,sr(i)}x.set(m.i8x16_extract_lane_u,jv);function Qv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ai(i)}x.set(m.i8x16_replace_lane,Qv);function Xv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ui(i)}x.set(m.i8x16_add,Xv);function Zv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ci(i)}x.set(m.i8x16_sub,Zv);function $v(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ar(i)}x.set(m.i8x16_min_s,$v);function Yv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ar(i)}x.set(m.i8x16_min_u,Yv);function Jv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,lr(i)}x.set(m.i8x16_max_s,Jv);function e4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,lr(i)}x.set(m.i8x16_max_u,e4);function t4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Zf(i)}x.set(m.i8x16_avgr_u,t4);function r4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,di(i)}x.set(m.i8x16_abs,r4);function i4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,_i(i)}x.set(m.i8x16_neg,i4);function n4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ea(i)}x.set(m.i8x16_add_sat_s,n4);function s4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ea(i)}x.set(m.i8x16_add_sat_u,s4);function a4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ta(i)}x.set(m.i8x16_sub_sat_s,a4);function l4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ta(i)}x.set(m.i8x16_sub_sat_u,l4);function o4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ia(i)}x.set(m.i8x16_shl,o4);function u4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,or(i)}x.set(m.i8x16_shr_s,u4);function c4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,or(i)}x.set(m.i8x16_shr_u,c4);function p4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,na(i)}x.set(m.i8x16_all_true,p4);function f4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,sa(i)}x.set(m.i8x16_bitmask,f4);function _4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,fx(i)}x.set(m.i8x16_popcnt,_4);function d4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,pi(i)}x.set(m.i8x16_eq,d4);function h4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,fi(i)}x.set(m.i8x16_ne,h4);function m4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Mt(i)}x.set(m.i8x16_lt_s,m4);function y4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Mt(i)}x.set(m.i8x16_lt_u,y4);function g4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,zt(i)}x.set(m.i8x16_le_s,g4);function b4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,zt(i)}x.set(m.i8x16_le_u,b4);function x4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Dt(i)}x.set(m.i8x16_gt_s,x4);function E4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Dt(i)}x.set(m.i8x16_gt_u,E4);function A4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Gt(i)}x.set(m.i8x16_ge_s,A4);function T4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Gt(i)}x.set(m.i8x16_ge_u,T4);function S4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ra(i)}x.set(m.i8x16_narrow_i16x8_s,S4);function v4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ra(i)}x.set(m.i8x16_narrow_i16x8_u,v4);function I4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,li(i)}x.set(m.i8x16_shuffle,I4);function k4(i){return I(i),i.typeArguments=null,i.contextualType=p.v128,cx(i)}x.set(m.i8x16_swizzle,k4);function F4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,si(i)}x.set(m.i16x8_splat,F4);function w4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,sr(i)}x.set(m.i16x8_extract_lane_s,w4);function R4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,sr(i)}x.set(m.i16x8_extract_lane_u,R4);function C4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ai(i)}x.set(m.i16x8_replace_lane,C4);function P4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ui(i)}x.set(m.i16x8_add,P4);function B4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ci(i)}x.set(m.i16x8_sub,B4);function N4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,cn(i)}x.set(m.i16x8_mul,N4);function L4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ar(i)}x.set(m.i16x8_min_s,L4);function M4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ar(i)}x.set(m.i16x8_min_u,M4);function z4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,lr(i)}x.set(m.i16x8_max_s,z4);function D4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,lr(i)}x.set(m.i16x8_max_u,D4);function G4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Zf(i)}x.set(m.i16x8_avgr_u,G4);function U4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,di(i)}x.set(m.i16x8_abs,U4);function V4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,_i(i)}x.set(m.i16x8_neg,V4);function O4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ea(i)}x.set(m.i16x8_add_sat_s,O4);function q4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ea(i)}x.set(m.i16x8_add_sat_u,q4);function W4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ta(i)}x.set(m.i16x8_sub_sat_s,W4);function K4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ta(i)}x.set(m.i16x8_sub_sat_u,K4);function H4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ia(i)}x.set(m.i16x8_shl,H4);function j4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,or(i)}x.set(m.i16x8_shr_s,j4);function Q4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,or(i)}x.set(m.i16x8_shr_u,Q4);function X4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,na(i)}x.set(m.i16x8_all_true,X4);function Z4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,sa(i)}x.set(m.i16x8_bitmask,Z4);function $4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,pi(i)}x.set(m.i16x8_eq,$4);function Y4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,fi(i)}x.set(m.i16x8_ne,Y4);function J4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Mt(i)}x.set(m.i16x8_lt_s,J4);function eI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Mt(i)}x.set(m.i16x8_lt_u,eI);function tI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,zt(i)}x.set(m.i16x8_le_s,tI);function rI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,zt(i)}x.set(m.i16x8_le_u,rI);function iI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Dt(i)}x.set(m.i16x8_gt_s,iI);function nI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Dt(i)}x.set(m.i16x8_gt_u,nI);function sI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Gt(i)}x.set(m.i16x8_ge_s,sI);function aI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Gt(i)}x.set(m.i16x8_ge_u,aI);function lI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ra(i)}x.set(m.i16x8_narrow_i32x4_s,lI);function oI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,ra(i)}x.set(m.i16x8_narrow_i32x4_u,oI);function uI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,hi(i)}x.set(m.i16x8_extend_low_i8x16_s,uI);function cI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,hi(i)}x.set(m.i16x8_extend_low_i8x16_u,cI);function pI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,mi(i)}x.set(m.i16x8_extend_high_i8x16_s,pI);function fI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,mi(i)}x.set(m.i16x8_extend_high_i8x16_u,fI);function _I(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,aa(i)}x.set(m.i16x8_extadd_pairwise_i8x16_s,_I);function dI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,aa(i)}x.set(m.i16x8_extadd_pairwise_i8x16_u,dI);function hI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,hx(i)}x.set(m.i16x8_q15mulr_sat_s,hI);function mI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,yi(i)}x.set(m.i16x8_extmul_low_i8x16_s,mI);function yI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,yi(i)}x.set(m.i16x8_extmul_low_i8x16_u,yI);function gI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,gi(i)}x.set(m.i16x8_extmul_high_i8x16_s,gI);function bI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,gi(i)}x.set(m.i16x8_extmul_high_i8x16_u,bI);function xI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,li(i)}x.set(m.i16x8_shuffle,xI);function EI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,si(i)}x.set(m.i32x4_splat,EI);function AI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,sr(i)}x.set(m.i32x4_extract_lane,AI);function TI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ai(i)}x.set(m.i32x4_replace_lane,TI);function SI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ui(i)}x.set(m.i32x4_add,SI);function vI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ci(i)}x.set(m.i32x4_sub,vI);function II(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,cn(i)}x.set(m.i32x4_mul,II);function kI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ar(i)}x.set(m.i32x4_min_s,kI);function FI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,ar(i)}x.set(m.i32x4_min_u,FI);function wI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,lr(i)}x.set(m.i32x4_max_s,wI);function RI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,lr(i)}x.set(m.i32x4_max_u,RI);function CI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,px(i)}x.set(m.i32x4_dot_i16x8_s,CI);function PI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,di(i)}x.set(m.i32x4_abs,PI);function BI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,_i(i)}x.set(m.i32x4_neg,BI);function NI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ia(i)}x.set(m.i32x4_shl,NI);function LI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,or(i)}x.set(m.i32x4_shr_s,LI);function MI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,or(i)}x.set(m.i32x4_shr_u,MI);function zI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,na(i)}x.set(m.i32x4_all_true,zI);function DI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,sa(i)}x.set(m.i32x4_bitmask,DI);function GI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,pi(i)}x.set(m.i32x4_eq,GI);function UI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,fi(i)}x.set(m.i32x4_ne,UI);function VI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Mt(i)}x.set(m.i32x4_lt_s,VI);function OI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Mt(i)}x.set(m.i32x4_lt_u,OI);function qI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,zt(i)}x.set(m.i32x4_le_s,qI);function WI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,zt(i)}x.set(m.i32x4_le_u,WI);function KI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Dt(i)}x.set(m.i32x4_gt_s,KI);function HI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Dt(i)}x.set(m.i32x4_gt_u,HI);function jI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Gt(i)}x.set(m.i32x4_ge_s,jI);function QI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Gt(i)}x.set(m.i32x4_ge_u,QI);function XI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,n_(i)}x.set(m.i32x4_trunc_sat_f32x4_s,XI);function ZI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,n_(i)}x.set(m.i32x4_trunc_sat_f32x4_u,ZI);function $I(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,s_(i)}x.set(m.i32x4_trunc_sat_f64x2_s_zero,$I);function YI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,s_(i)}x.set(m.i32x4_trunc_sat_f64x2_u_zero,YI);function JI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,hi(i)}x.set(m.i32x4_extend_low_i16x8_s,JI);function e3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,hi(i)}x.set(m.i32x4_extend_low_i16x8_u,e3);function t3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,mi(i)}x.set(m.i32x4_extend_high_i16x8_s,t3);function r3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,mi(i)}x.set(m.i32x4_extend_high_i16x8_u,r3);function i3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,aa(i)}x.set(m.i32x4_extadd_pairwise_i16x8_s,i3);function n3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,aa(i)}x.set(m.i32x4_extadd_pairwise_i16x8_u,n3);function s3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,yi(i)}x.set(m.i32x4_extmul_low_i16x8_s,s3);function a3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,yi(i)}x.set(m.i32x4_extmul_low_i16x8_u,a3);function l3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,gi(i)}x.set(m.i32x4_extmul_high_i16x8_s,l3);function o3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,gi(i)}x.set(m.i32x4_extmul_high_i16x8_u,o3);function u3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,li(i)}x.set(m.i32x4_shuffle,u3);function c3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,si(i)}x.set(m.i64x2_splat,c3);function p3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,sr(i)}x.set(m.i64x2_extract_lane,p3);function f3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ai(i)}x.set(m.i64x2_replace_lane,f3);function _3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ui(i)}x.set(m.i64x2_add,_3);function d3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ci(i)}x.set(m.i64x2_sub,d3);function h3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,cn(i)}x.set(m.i64x2_mul,h3);function m3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,di(i)}x.set(m.i64x2_abs,m3);function y3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,_i(i)}x.set(m.i64x2_neg,y3);function g3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ia(i)}x.set(m.i64x2_shl,g3);function b3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,or(i)}x.set(m.i64x2_shr_s,b3);function x3(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,or(i)}x.set(m.i64x2_shr_u,x3);function E3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,na(i)}x.set(m.i64x2_all_true,E3);function A3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,sa(i)}x.set(m.i64x2_bitmask,A3);function T3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,pi(i)}x.set(m.i64x2_eq,T3);function S3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,fi(i)}x.set(m.i64x2_ne,S3);function v3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Mt(i)}x.set(m.i64x2_lt_s,v3);function I3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,zt(i)}x.set(m.i64x2_le_s,I3);function k3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Dt(i)}x.set(m.i64x2_gt_s,k3);function F3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Gt(i)}x.set(m.i64x2_ge_s,F3);function w3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,hi(i)}x.set(m.i64x2_extend_low_i32x4_s,w3);function R3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,hi(i)}x.set(m.i64x2_extend_low_i32x4_u,R3);function C3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,mi(i)}x.set(m.i64x2_extend_high_i32x4_s,C3);function P3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,mi(i)}x.set(m.i64x2_extend_high_i32x4_u,P3);function B3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,yi(i)}x.set(m.i64x2_extmul_low_i32x4_s,B3);function N3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,yi(i)}x.set(m.i64x2_extmul_low_i32x4_u,N3);function L3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,gi(i)}x.set(m.i64x2_extmul_high_i32x4_s,L3);function M3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,gi(i)}x.set(m.i64x2_extmul_high_i32x4_u,M3);function z3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,li(i)}x.set(m.i64x2_shuffle,z3);function D3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,si(i)}x.set(m.f32x4_splat,D3);function G3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,sr(i)}x.set(m.f32x4_extract_lane,G3);function U3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ai(i)}x.set(m.f32x4_replace_lane,U3);function V3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ui(i)}x.set(m.f32x4_add,V3);function O3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ci(i)}x.set(m.f32x4_sub,O3);function q3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,cn(i)}x.set(m.f32x4_mul,q3);function W3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,jf(i)}x.set(m.f32x4_div,W3);function K3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,_i(i)}x.set(m.f32x4_neg,K3);function H3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ar(i)}x.set(m.f32x4_min,H3);function j3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,lr(i)}x.set(m.f32x4_max,j3);function Q3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Qf(i)}x.set(m.f32x4_pmin,Q3);function X3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Xf(i)}x.set(m.f32x4_pmax,X3);function Z3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,di(i)}x.set(m.f32x4_abs,Z3);function $3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,$f(i)}x.set(m.f32x4_sqrt,$3);function Y3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Yf(i)}x.set(m.f32x4_ceil,Y3);function J3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Jf(i)}x.set(m.f32x4_floor,J3);function e0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,e_(i)}x.set(m.f32x4_trunc,e0);function t0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,t_(i)}x.set(m.f32x4_nearest,t0);function r0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,pi(i)}x.set(m.f32x4_eq,r0);function i0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,fi(i)}x.set(m.f32x4_ne,i0);function n0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Mt(i)}x.set(m.f32x4_lt,n0);function s0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,zt(i)}x.set(m.f32x4_le,s0);function a0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Dt(i)}x.set(m.f32x4_gt,a0);function l0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Gt(i)}x.set(m.f32x4_ge,l0);function o0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,r_(i)}x.set(m.f32x4_convert_i32x4_s,o0);function u0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,r_(i)}x.set(m.f32x4_convert_i32x4_u,u0);function c0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,_x(i)}x.set(m.f32x4_demote_f64x2_zero,c0);function p0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,li(i)}x.set(m.f32x4_shuffle,p0);function f0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,si(i)}x.set(m.f64x2_splat,f0);function _0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,sr(i)}x.set(m.f64x2_extract_lane,_0);function d0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ai(i)}x.set(m.f64x2_replace_lane,d0);function h0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ui(i)}x.set(m.f64x2_add,h0);function m0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ci(i)}x.set(m.f64x2_sub,m0);function y0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,cn(i)}x.set(m.f64x2_mul,y0);function g0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,jf(i)}x.set(m.f64x2_div,g0);function b0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,_i(i)}x.set(m.f64x2_neg,b0);function x0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ar(i)}x.set(m.f64x2_min,x0);function E0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,lr(i)}x.set(m.f64x2_max,E0);function A0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Qf(i)}x.set(m.f64x2_pmin,A0);function T0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Xf(i)}x.set(m.f64x2_pmax,T0);function S0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,di(i)}x.set(m.f64x2_abs,S0);function v0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,$f(i)}x.set(m.f64x2_sqrt,v0);function I0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Yf(i)}x.set(m.f64x2_ceil,I0);function k0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Jf(i)}x.set(m.f64x2_floor,k0);function F0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,e_(i)}x.set(m.f64x2_trunc,F0);function w0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,t_(i)}x.set(m.f64x2_nearest,w0);function R0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,pi(i)}x.set(m.f64x2_eq,R0);function C0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,fi(i)}x.set(m.f64x2_ne,C0);function P0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Mt(i)}x.set(m.f64x2_lt,P0);function B0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,zt(i)}x.set(m.f64x2_le,B0);function N0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Dt(i)}x.set(m.f64x2_gt,N0);function L0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Gt(i)}x.set(m.f64x2_ge,L0);function M0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,i_(i)}x.set(m.f64x2_convert_low_i32x4_s,M0);function z0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,i_(i)}x.set(m.f64x2_convert_low_i32x4_u,z0);function D0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,dx(i)}x.set(m.f64x2_promote_low_f32x4,D0);function G0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,li(i)}x.set(m.f64x2_shuffle,G0);function U0(i){return I(i),i.typeArguments=null,i.contextualType=p.v128,mx(i)}x.set(m.i8x16_relaxed_swizzle,U0);function V0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,a_(i)}x.set(m.i32x4_relaxed_trunc_f32x4_s,V0);function O0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,a_(i)}x.set(m.i32x4_relaxed_trunc_f32x4_u,O0);function q0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,l_(i)}x.set(m.i32x4_relaxed_trunc_f64x2_s_zero,q0);function W0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,l_(i)}x.set(m.i32x4_relaxed_trunc_f64x2_u_zero,W0);function K0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,o_(i)}x.set(m.f32x4_relaxed_madd,K0);function H0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,u_(i)}x.set(m.f32x4_relaxed_nmadd,H0);function j0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,o_(i)}x.set(m.f64x2_relaxed_madd,j0);function Q0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,u_(i)}x.set(m.f64x2_relaxed_nmadd,Q0);function X0(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,la(i)}x.set(m.i8x16_relaxed_laneselect,X0);function Z0(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,la(i)}x.set(m.i16x8_relaxed_laneselect,Z0);function $0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,la(i)}x.set(m.i32x4_relaxed_laneselect,$0);function Y0(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,la(i)}x.set(m.i64x2_relaxed_laneselect,Y0);function J0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,c_(i)}x.set(m.f32x4_relaxed_min,J0);function ek(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,p_(i)}x.set(m.f32x4_relaxed_max,ek);function tk(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,c_(i)}x.set(m.f64x2_relaxed_min,tk);function rk(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,p_(i)}x.set(m.f64x2_relaxed_max,rk);function ik(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,yx(i)}x.set(m.i16x8_relaxed_q15mulr_s,ik);function nk(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,gx(i)}x.set(m.i16x8_relaxed_dot_i8x16_i7x16_s,nk);function sk(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,bx(i)}x.set(m.i32x4_relaxed_dot_i8x16_i7x16_add_s,sk);function xx(i){let r=i.module,e=new Array,t=i.options.sizeTypeRef,n=assert(i.program.visitInstance);i.compileFunction(n,!0);for(let s=Map_values(i.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,f=u.type.getClass();if(f&&!f.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let _=u.constantIntegerValue;(i64_low(_)||i64_high(_))&&e.push(r.call(n.internalName,[i.options.isWasm64?r.i64(i64_low(_),i64_high(_)):r.i32(i64_low(_)),r.local_get(0,B.I32)],B.None))}else e.push(r.if(r.local_tee(1,r.global_get(u.internalName,t),!1),r.call(n.internalName,[r.local_get(1,t),r.local_get(0,B.I32)],B.None)))}r.addFunction(m.visit_globals,B.I32,B.None,[t],e.length?r.block(null,e):r.nop())}function Ex(i,r){if(assert(r.type.isManaged),r.visitRef)return;let e=i.program,t=i.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=r.base;u&&o.push(t.call(`${u.internalName}~visit`,[t.local_get(0,s),t.local_get(1,B.I32)],B.None));let c=!1;if(r.isDeclaredInLibrary){let _=r.getMember("__visit");if(_){assert(_.kind==4);let d=e.resolver.resolveFunction(_,null);if(!d||!i.compileFunction(d))o.push(t.unreachable());else{let g=d.signature,y=assert(g.thisType);assert(g.parameterTypes.length==1&&g.parameterTypes[0]==p.u32&&g.returnType==p.void&&r.type.isStrictlyAssignableTo(y)),o.push(t.call(d.internalName,[t.local_get(0,s),t.local_get(1,B.I32)],B.None))}c=!0}}let f=!1;if(!c){let _=r.members;if(_)for(let d=Map_values(_),g=0,y=d.length;g<y;++g){let E=unchecked(d[g]);if(E.kind!=10)continue;let T=E.instance;if(!T)continue;let k=T.type;if(!T.isField||T.getBoundClassOrInterface()!=r||!k.isManaged)continue;let F=T.memoryOffset;assert(F>=0),f=!0,o.push(t.call(l.internalName,[t.load(a,!1,t.local_get(0,s),s,F),t.local_get(1,B.I32)],B.None))}}r.visitRef=t.addFunction(`${r.internalName}~visit`,ft([s,B.I32]),B.None,f?[s]:null,t.flatten(o,B.None)),u&&u.type.isManaged&&Ex(i,u)}function Ax(i){let r=i.program,e=i.module,n=r.options.usizeType.toRef(),s=r.managedClasses,a=assert(r.visitInstance);i.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let f=Map_keys(s),_=0,d=f.length;_<d;++_){let g=f[_];assert(g==u++);let y=assert(s.get(g));l[_]=y.internalName,y.isPointerfree?o[_]=e.return():(o[_]=e.block(null,[e.call(`${y.internalName}~visit`,[e.local_get(0,n),e.local_get(1,B.I32)],B.None),e.return()],B.None),Ex(i,y))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==B.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),B.I32,0))],B.None);for(let f=0,_=l.length-1;f<_;++f)c=e.block(l[f+1],[c,o[f]],B.None);c=e.block("invalid",[c,o[l.length-1]],B.None),e.addFunction(m.visit_members,ft([n,B.I32]),B.None,null,e.flatten([c,e.unreachable()]))}function ln(i){let r=64*(1<<i.alignLog2);return i.is(1)&&(r|=2048),i.is(8)&&(r|=4096),i.is(512)&&(r|=8192),i.isManaged&&(r|=16384),r/64}function Tx(i){let r=i.program,e=i.module,t=r.managedClasses,n=t.size,s=4+4*n,a=new Uint8Array(s);Se(n,a,0);let l=4,o=r.arrayBufferViewInstance,u=o.prototype,c=r.arrayPrototype,f=r.setPrototype,_=r.mapPrototype,d=r.staticArrayPrototype,g=0;for(let T=Map_keys(t),k=0,F=T.length;k<F;++k){let w=unchecked(T[k]),R=assert(t.get(w));assert(w==g++);let C=0;if(R.isPointerfree&&(C|=32),R!=o&&R.extendsPrototype(u)){let M=R.getArrayValueType();C|=1,C|=64*ln(M)}else if(R.extendsPrototype(c)){let M=R.getArrayValueType();C|=2,C|=64*ln(M)}else if(R.extendsPrototype(f)){let M=assert(R.getTypeArgumentsTo(f));assert(M.length==1),C|=8,C|=64*ln(M[0])}else if(R.extendsPrototype(_)){let M=assert(R.getTypeArgumentsTo(_));assert(M.length==2),C|=16,C|=32768*ln(M[0]),C|=64*ln(M[1])}else if(R.extendsPrototype(d)){let M=R.getArrayValueType();C|=4,C|=64*ln(M)}Se(C,a,l),l+=4,R.rttiFlags=C}assert(l==s);let y=r.options.usizeType,E=i.addAlignedMemorySegment(a);if(y.size==8){let T=E.offset;e.addGlobal(m.rtti_base,B.I64,!1,e.i64(i64_low(T),i64_high(T)))}else e.addGlobal(m.rtti_base,B.I32,!1,e.i32(i64_low(E.offset)))}function Ve(i){let r=i.compiler,e=i.operands,t=i.typeArguments;if(on=0,e.length==0)return!t||t.length!=1?(r.error(2558,i.reportNode.typeArgumentsRange,"1",t?t.length.toString():"0"),null):t[0];if(e.length==1){if(t&&t.length>0){if(t.length>1)return r.error(2558,i.reportNode.typeArgumentsRange,"1",t.length.toString()),null;on=r.compileExpression(e[0],t[0],1)}else on=r.compileExpression(e[0],p.auto);return r.currentType}return t&&t.length>1&&r.error(2558,i.reportNode.typeArgumentsRange,"1",t.length.toString()),r.error(2554,i.reportNode.argumentsRange,"1",e.length.toString()),null}function ke(i,r){let e=i.compiler.module;return on&&Uo(on,e.ref)&&(r=e.block(null,[e.maybeDrop(on),r],ce(r))),r}function _t(i,r){let e=r.module,t;if(r.options.isWasm64){let n=r.compileExpression(i,p.usize64,1),s=e.runExpression(n,1);s?(assert(Ge(s)==0),t=Be(s)):(r.error(220,i.range),t=-1)}else{let n=r.compileExpression(i,p.usize32,1),s=e.runExpression(n,1);s?t=ae(s):(r.error(220,i.range),t=-1)}return t}function ir(i,r,e){let t=_t(i,e);return t<0?t:t<1||r>16?(e.error(222,i.range,"Alignment","1",r.toString()),-1):Kr(t)?t:(e.error(223,i.range,"Alignment"),-1)}function X(i,r){let e=i.compiler;return e.options.hasFeature(r)?0:(e.error(103,i.reportNode.range,Di(r)),1)}function Z(i,r=!1){let e=i.compiler,t=i.typeArguments;if(t){let n=t.length;if(n==1)return 0;assert(n),r&&(e.currentType=t[0]),e.error(2558,i.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,i.reportNode.range,"1","0");return 1}function fe(i,r=!1){let e=i.typeArguments;if(e){let t=i.compiler,n=e.length;return n==1?0:(assert(n),r&&(t.currentType=e[0]),t.error(2558,i.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function I(i){if(i.typeArguments){let e=i.prototype;return e.program.error(2315,i.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(i,r){let e=i.operands;return e.length!=r?(i.compiler.error(2554,i.reportNode.range,r.toString(),e.length.toString()),1):0}function Ne(i,r,e){let n=i.operands.length;return n<r?(i.compiler.error(2555,i.reportNode.range,r.toString(),n.toString()),1):n>e?(i.compiler.error(2554,i.reportNode.range,e.toString(),n.toString()),1):0}function ii(i,r,e){let t=i.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(r))return i.currentType=p.i32,t.i32(i64_low(r));break}case 8:{if(i64_is_u32(r))return i.currentType=p.u32,t.i32(i64_low(r));break}case 4:case 9:return i.currentType=e,t.i64(i64_low(r),i64_high(r))}return i.options.isWasm64?(i.currentType=p.usize64,t.i64(i64_low(r),i64_high(r))):(i.currentType=p.usize32,assert(!i64_high(r)),t.i32(i64_low(r)))}var iu=class{constructor(r,e){this.discriminator=r;this.recordExpression=e}},Sx=null;function nu(){let i=Sx;return i==null&&(Sx=i=new Map),i}var d_=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let r=this._currentExpression;if(!r)throw new Error("not walking expressions");return r}get parentExpressionOrNull(){let r=this.stack,e=r.length;return e?r[e-1]:0}visitBlock(r){}visitIf(r){}visitLoop(r){}visitBreak(r){}visitSwitch(r){}visitCallPre(r){}visitCall(r){}visitCallIndirectPre(r){}visitCallIndirect(r){}visitLocalGet(r){}visitLocalSet(r){}visitGlobalGet(r){}visitGlobalSet(r){}visitLoad(r){}visitStore(r){}visitConst(r){}visitUnary(r){}visitBinary(r){}visitSelect(r){}visitDrop(r){}visitReturn(r){}visitMemorySize(r){}visitMemoryGrow(r){}visitNop(r){}visitUnreachable(r){}visitAtomicRMW(r){}visitAtomicCmpxchg(r){}visitAtomicWait(r){}visitAtomicNotify(r){}visitAtomicFence(r){}visitSIMDExtract(r){}visitSIMDReplace(r){}visitSIMDShuffle(r){}visitSIMDTernary(r){}visitSIMDShift(r){}visitSIMDLoad(r){}visitSIMDLoadStoreLane(r){}visitMemoryInit(r){}visitDataDrop(r){}visitMemoryCopy(r){}visitMemoryFill(r){}visitPop(r){}visitRefNull(r){}visitRefIsNull(r){}visitRefFunc(r){}visitRefEq(r){}visitTry(r){}visitThrow(r){}visitRethrow(r){}visitTupleMake(r){}visitTupleExtract(r){}visitRefI31(r){}visitI31Get(r){}visitCallRef(r){}visitRefTest(r){}visitRefCast(r){}visitBrOn(r){}visitStructNew(r){}visitStructGet(r){}visitStructSet(r){}visitArrayNew(r){}visitArrayNewFixed(r){}visitArrayGet(r){}visitArraySet(r){}visitArrayLen(r){}visitArrayCopy(r){}visitRefAs(r){}visitStringNew(r){}visitStringConst(r){}visitStringMeasure(r){}visitStringEncode(r){}visitStringConcat(r){}visitStringEq(r){}visitStringAs(r){}visitStringWTF8Advance(r){}visitStringWTF16Get(r){}visitStringIterNext(r){}visitStringIterMove(r){}visitStringSliceWTF(r){}visitStringSliceIter(r){}visitName(r){}visitLabel(r){}visitIndex(r){}visitTag(r){}visit(r){let e=this._currentExpression;switch(this._currentExpression=assert(r),Wt(r)){case 1:{this.stack.push(r);let t=Ca(r);t&&this.visitLabel(t);for(let n=0,s=Pn(r);n<s;++n)this.visit(Bn(r,n));assert(this.stack.pop()==r),this.visitBlock(r);break}case 2:{this.stack.push(r),this.visit(Nn(r)),this.visit(Ln(r));let t=Mn(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitIf(r);break}case 3:{this.stack.push(r);let t=Pa(r);t&&this.visitLabel(t),this.visit(zn(r)),assert(this.stack.pop()==r),this.visitLoop(r);break}case 4:{this.stack.push(r),this.visitLabel(Ba(r));let t=Dn(r);t&&this.visit(t);let n=zu(r);n&&this.visit(n),assert(this.stack.pop()==r),this.visitBreak(r);break}case 5:{this.stack.push(r);let t=Bd(r);t&&this.visitLabel(t);let n=Cd(r);for(let a=0;a<n;++a)this.visitLabel(Pd(r,a));this.visit(Du(r));let s=Gu(r);s&&this.visit(s),assert(this.stack.pop()==r),this.visitSwitch(r);break}case 6:{this.visitCallPre(r),this.stack.push(r),this.visitName(Ri(r));let t=dr(r);for(let n=0;n<t;++n)this.visit(hr(r,n));assert(this.stack.pop()==r),this.visitCall(r);break}case 7:{this.visitCallIndirectPre(r),this.stack.push(r),this.visit(Uu(r));for(let t=0,n=Gn(r);t<n;++t)this.visit(Un(r,t));assert(this.stack.pop()==r),this.visitCallIndirect(r);break}case 8:{this.stack.push(r),this.visitIndex(Ma(r)),assert(this.stack.pop()==r),this.visitLocalGet(r);break}case 9:{this.stack.push(r),this.visitIndex(Ci(r)),this.visit(Dr(r)),assert(this.stack.pop()==r),this.visitLocalSet(r);break}case 10:{this.stack.push(r),this.visitName(Ga(r)),assert(this.stack.pop()==r),this.visitGlobalGet(r);break}case 11:{this.stack.push(r),this.visitName(Hd(r)),this.visit(Vu(r)),assert(this.stack.pop()==r),this.visitGlobalSet(r);break}case 12:{this.stack.push(r),this.visit(On(r)),assert(this.stack.pop()==r),this.visitLoad(r);break}case 13:{this.stack.push(r),this.visit(Gr(r)),this.visit(qn(r)),assert(this.stack.pop()==r),this.visitStore(r);break}case 14:{this.visitConst(r);break}case 15:{this.stack.push(r),this.visit(Wn(r)),assert(this.stack.pop()==r),this.visitUnary(r);break}case 16:{this.stack.push(r),this.visit(Kn(r)),this.visit(Hn(r)),assert(this.stack.pop()==r),this.visitBinary(r);break}case 17:{this.stack.push(r),this.visit(jn(r)),this.visit(Qn(r)),this.visit(Xn(r)),assert(this.stack.pop()==r),this.visitSelect(r);break}case 18:{this.stack.push(r),this.visit(Zn(r)),assert(this.stack.pop()==r),this.visitDrop(r);break}case 19:{let t=Ur(r);t&&(this.stack.push(r),this.visit(t),assert(this.stack.pop()==r)),this.visitReturn(r);break}case 20:{this.visitMemorySize(r);break}case 21:{this.stack.push(r),this.visit(Vn(r)),assert(this.stack.pop()==r),this.visitMemoryGrow(r);break}case 22:{this.visitNop(r);break}case 23:{this.visitUnreachable(r);break}case 24:{this.stack.push(r),this.visit(qu(r)),this.visit(Wu(r)),assert(this.stack.pop()==r),this.visitAtomicRMW(r);break}case 25:{this.stack.push(r),this.visit(Ku(r)),this.visit(Hu(r)),this.visit(ju(r)),assert(this.stack.pop()==r),this.visitAtomicCmpxchg(r);break}case 26:{this.stack.push(r),this.visit(Qu(r)),this.visit(Xu(r)),this.visit(Zu(r)),assert(this.stack.pop()==r),this.visitAtomicWait(r);break}case 27:{this.stack.push(r),this.visit($u(r)),this.visit(Yu(r)),assert(this.stack.pop()==r),this.visitAtomicNotify(r);break}case 28:{this.visitAtomicFence(r);break}case 30:{this.stack.push(r),this.visit(Ju(r)),assert(this.stack.pop()==r),this.visitSIMDExtract(r);break}case 31:{this.stack.push(r),this.visit(ec(r)),this.visit(tc(r)),assert(this.stack.pop()==r),this.visitSIMDReplace(r);break}case 32:{this.stack.push(r),this.visit(rc(r)),this.visit(ic(r)),assert(this.stack.pop()==r),this.visitSIMDShuffle(r);break}case 33:{this.stack.push(r),this.visit(nc(r)),this.visit(sc(r)),this.visit(ac(r)),assert(this.stack.pop()==r),this.visitSIMDTernary(r);break}case 34:{this.stack.push(r),this.visit(lc(r)),this.visit(oc(r)),assert(this.stack.pop()==r),this.visitSIMDShift(r);break}case 35:{this.stack.push(r),this.visit(uc(r)),assert(this.stack.pop()==r),this.visitSIMDLoad(r);break}case 36:{this.stack.push(r),this.visit(cc(r)),this.visit(pc(r)),assert(this.stack.pop()==r),this.visitSIMDLoadStoreLane(r);break}case 37:{this.stack.push(r),this.visit(fc(r)),this.visit(_c(r)),this.visit(dc(r)),assert(this.stack.pop()==r),this.visitMemoryInit(r);break}case 38:{this.visitDataDrop(r);break}case 39:{this.stack.push(r),this.visit(hc(r)),this.visit(mc(r)),this.visit(yc(r)),assert(this.stack.pop()==r),this.visitMemoryCopy(r);break}case 40:{this.stack.push(r),this.visit(gc(r)),this.visit(bc(r)),this.visit(xc(r)),assert(this.stack.pop()==r),this.visitMemoryFill(r);break}case 41:{this.visitPop(r);break}case 42:{this.visitRefNull(r);break}case 43:{this.stack.push(r),this.visit(Ec(r)),assert(this.stack.pop()==r),this.visitRefIsNull(r);break}case 44:{this.stack.push(r),this.visitName(Sm(r)),assert(this.stack.pop()==r),this.visitRefFunc(r);break}case 45:{this.stack.push(r),this.visit(Sc(r)),this.visit(vc(r)),assert(this.stack.pop()==r),this.visitRefEq(r);break}case 54:{this.stack.push(r),this.visit(Ic(r));let t=kc(r);for(let n=0;n<t;++n)this.visit(Fc(r,n));assert(this.stack.pop()==r),this.visitTry(r);break}case 56:{this.stack.push(r),this.visitTag(Mm(r));let t=wc(r);for(let n=0;n<t;++n)this.visit(Rc(r,n));assert(this.stack.pop()==r),this.visitThrow(r);break}case 57:{this.visitRethrow(r);break}case 59:{let t=Cc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Pc(r,n));assert(this.stack.pop()==r)}this.visitTupleMake(r);break}case 60:{this.stack.push(r),this.visit(Bc(r)),assert(this.stack.pop()==r),this.visitTupleExtract(r);break}case 61:{this.stack.push(r),this.visit(Nc(r)),assert(this.stack.pop()==r),this.visitRefI31(r);break}case 62:{this.stack.push(r),this.visit(Lc(r)),assert(this.stack.pop()==r),this.visitI31Get(r);break}case 63:{this.stack.push(r);let t=Mc(r);if(t)for(let n=0;n<t;++n)this.visit(zc(r,n));this.visit(Dc(r)),assert(this.stack.pop()==r),this.visitCallRef(r);break}case 64:{this.stack.push(r),this.visit(Gc(r)),assert(this.stack.pop()==r),this.visitRefTest(r);break}case 65:{this.stack.push(r),this.visit(Uc(r)),assert(this.stack.pop()==r),this.visitRefCast(r);break}case 67:{this.stack.push(r),this.visitLabel(Ym(r)),this.visit(Vc(r)),assert(this.stack.pop()==r),this.visitBrOn(r);break}case 68:{let t=Oc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(qc(r,n));assert(this.stack.pop()==r)}this.visitStructNew(r);break}case 69:{this.stack.push(r),this.visit(Wc(r)),this.visitIndex(ty(r)),assert(this.stack.pop()==r),this.visitStructGet(r);break}case 70:{this.stack.push(r),this.visit(Kc(r)),this.visitIndex(iy(r)),this.visit(Hc(r)),assert(this.stack.pop()==r),this.visitStructSet(r);break}case 73:{this.stack.push(r),this.visit(Qc(r));let t=jc(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitArrayNew(r);break}case 76:{let t=Xc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Zc(r,n));assert(this.stack.pop()==r)}this.visitArrayNewFixed(r);break}case 77:{this.stack.push(r),this.visit($c(r)),this.visit(Yc(r)),assert(this.stack.pop()==r),this.visitArrayGet(r);break}case 78:{this.stack.push(r),this.visit(Jc(r)),this.visit(ep(r)),this.visit(tp(r)),assert(this.stack.pop()==r),this.visitArraySet(r);break}case 81:{this.stack.push(r),this.visit(rp(r)),assert(this.stack.pop()==r),this.visitArrayLen(r);break}case 82:{this.stack.push(r),this.visit(ip(r)),this.visit(np(r)),this.visit(sp(r)),this.visit(ap(r)),this.visit(lp(r)),assert(this.stack.pop()==r),this.visitArrayCopy(r);break}case 88:{this.stack.push(r),this.visit(Tc(r)),assert(this.stack.pop()==r),this.visitRefAs(r);break}case 89:{this.stack.push(r),this.visit(op(r));let t=up(r);t&&this.visit(t);let n=cp(r);n&&this.visit(n),assert(this.stack.pop()==r),this.visitStringNew(r);break}case 90:{this.stack.push(r),assert(this.stack.pop()==r),this.visitStringConst(r);break}case 91:{this.stack.push(r),this.visit(pp(r)),assert(this.stack.pop()==r),this.visitStringMeasure(r);break}case 92:{this.stack.push(r),this.visit(fp(r)),this.visit(_p(r));let t=dp(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitStringEncode(r);break}case 93:{this.stack.push(r),this.visit(hp(r)),this.visit(mp(r)),assert(this.stack.pop()==r),this.visitStringConcat(r);break}case 94:{this.stack.push(r),this.visit(gp(r)),this.visit(bp(r)),assert(this.stack.pop()==r),this.visitStringEq(r);break}case 96:{this.stack.push(r),this.visit(xp(r)),this.visit(Ep(r)),assert(this.stack.pop()==r),this.visitStringWTF16Get(r);break}case 97:{this.stack.push(r),this.visit(Ap(r)),this.visit(Tp(r)),this.visit(Sp(r)),assert(this.stack.pop()==r),this.visitStringSliceWTF(r);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},bi=class extends d_{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let t=0,n=My(e);t<n;++t)this.walkFunction(zy(e,t))}walkFunction(e){let t=mr(e);t&&(this._currentFunction=e,this.visit(t),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let t=0,n=tg(e);t<n;++t)this.walkGlobal(rg(e,t))}walkGlobal(e){this._currentGlobal=e;let t=Za(e);t&&this.visit(t),this._currentGlobal=0}replaceCurrent(e){let t=this.currentExpression,n=this.currentFunction;if(mr(n)==t)Ha(n,e);else{let a=assert(this.parentExpressionOrNull);if(!ak(a,t,e))throw Error("failed to replace expression");gd(a)}}};function ak(i,r,e){switch(Wt(i)){case 1:{let t=Pn(i);for(let n=0;n<t;++n){let s=Bn(i,n);if(s==r)return xd(i,n,e),s}break}case 2:{let t=Nn(i);if(t==r)return Ad(i,e),t;let n=Ln(i);if(n==r)return Td(i,e),n;let s=Mn(i);if(s==r)return Sd(i,e),s;break}case 3:{let t=zn(i);if(t==r)return Id(i,e),t;break}case 4:{let t=Dn(i);if(t==r)return Fd(i,e),t;let n=zu(i);if(n==r)return wd(i,e),n;break}case 5:{let t=Du(i);if(t==r)return Nd(i,e),t;let n=Gu(i);if(n==r)return Ld(i,e),n;break}case 6:{let t=dr(i);for(let n=0;n<t;++n){let s=hr(i,n);if(s==r)return Na(i,n,e),s}break}case 7:{let t=Uu(i);if(t==r)return Gd(i,e),t;let n=Gn(i);for(let s=0;s<n;++s){let a=Un(i,s);if(a==r)return La(i,s,e),a}break}case 8:break;case 9:{let t=Dr(i);if(t==r)return Da(i,e),t;break}case 10:break;case 11:{let t=Vu(i);if(t==r)return jd(i,e),t;break}case 12:{let t=On(i);if(t==r)return th(i,e),t;break}case 13:{let t=Gr(i);if(t==r)return Oa(i,e),t;let n=qn(i);if(n==r)return nh(i,e),n;break}case 14:break;case 15:{let t=Wn(i);if(t==r)return fh(i,e),t;break}case 16:{let t=Kn(i);if(t==r)return yh(i,e),t;let n=Hn(i);if(n==r)return gh(i,e),n;break}case 17:{let t=jn(i);if(t==r)return xh(i,e),t;let n=Qn(i);if(n==r)return Eh(i,e),n;let s=Xn(i);if(s==r)return Ah(i,e),s;break}case 18:{let t=Zn(i);if(t==r)return Th(i,e),t;break}case 19:{let t=Ur(i);if(t==r)return qa(i,e),t;break}case 20:break;case 21:{let t=Vn(i);if(t==r)return Zd(i,e),t;break}case 22:break;case 23:break;case 24:{let t=qu(i);if(t==r)return Fh(i,e),t;let n=Wu(i);if(n==r)return wh(i,e),n;break}case 25:{let t=Ku(i);if(t==r)return Ch(i,e),t;let n=Hu(i);if(n==r)return Ph(i,e),n;let s=ju(i);if(s==r)return Bh(i,e),s;break}case 26:{let t=Qu(i);if(t==r)return Lh(i,e),t;let n=Xu(i);if(n==r)return Mh(i,e),n;let s=Zu(i);if(s==r)return zh(i,e),s;break}case 27:{let t=$u(i);if(t==r)return Gh(i,e),t;let n=Yu(i);if(n==r)return Uh(i,e),n;break}case 28:break;case 30:{let t=Ju(i);if(t==r)return qh(i,e),t;break}case 31:{let t=ec(i);if(t==r)return Kh(i,e),t;let n=tc(i);if(n==r)return Hh(i,e),n;break}case 32:{let t=rc(i);if(t==r)return Qh(i,e),t;let n=ic(i);if(n==r)return Xh(i,e),n;break}case 33:{let t=nc(i);if(t==r)return $h(i,e),t;let n=sc(i);if(n==r)return Yh(i,e),n;let s=ac(i);if(s==r)return Jh(i,e),s;break}case 34:{let t=lc(i);if(t==r)return tm(i,e),t;let n=oc(i);if(n==r)return rm(i,e),n;break}case 35:{let t=uc(i);if(t==r)return nm(i,e),t;break}case 36:{let t=cc(i);if(t==r)return am(i,e),t;if(pc(i)==r)return lm(i,e),t;break}case 37:{let t=fc(i);if(t==r)return om(i,e),t;let n=_c(i);if(n==r)return um(i,e),n;let s=dc(i);if(s==r)return cm(i,e),s;break}case 38:break;case 39:{let t=hc(i);if(t==r)return fm(i,e),t;let n=mc(i);if(n==r)return _m(i,e),n;let s=yc(i);if(s==r)return dm(i,e),s;break}case 40:{let t=gc(i);if(t==r)return mm(i,e),t;let n=bc(i);if(n==r)return ym(i,e),n;let s=xc(i);if(s==r)return gm(i,e),s;break}case 41:break;case 42:break;case 43:{let t=Ec(i);if(t==r)return Em(i,e),t;break}case 44:break;case 45:{let t=Sc(i);if(t==r)return Im(i,e),t;let n=vc(i);if(n==r)return km(i,e),n;break}case 54:{let t=Ic(i);if(t==r)return Bm(i,e),t;let n=kc(i);for(let s=0;s<n;++s){let a=Fc(i,s);if(a==r)return Nm(i,s,e),a}break}case 56:{let t=wc(i);for(let n=0;n<t;++n){let s=Rc(i,n);if(s==r)return zm(i,n,e),s}break}case 57:break;case 59:{let t=Cc(i);for(let n=0;n<t;++n){let s=Pc(i,n);if(s==r)return Um(i,n,e),s}break}case 60:{let t=Bc(i);if(t==r)return Om(i,e),t;break}case 61:{let t=Nc(i);if(t==r)return Km(i,e),t;break}case 62:{let t=Lc(i);if(t==r)return jm(i,e),t;break}case 63:{let t=Mc(i);for(let s=0;s<t;++s){let a=zc(i,s);if(a==r)return Qm(i,s,e),a}let n=Dc(i);if(n==r)return Xm(i,e),n;break}case 64:{let t=Gc(i);if(t==r)return Zm(i,e),t;break}case 65:{let t=Uc(i);if(t==r)return $m(i,e),t;break}case 67:{let t=Vc(i);if(t==r)return Jm(i,e),t;break}case 68:{let t=Oc(i);for(let n=0;n<t;++n){let s=qc(i,n);if(s==r)return ey(i,n,e),s}break}case 69:{let t=Wc(i);if(t==r)return ry(i,e),t;break}case 70:{let t=Kc(i);if(t==r)return ny(i,e),t;let n=Hc(i);if(n==r)return sy(i,e),n;break}case 73:{let t=Qc(i);if(t==r)return ly(i,e),t;let n=jc(i);if(n==r)return ay(i,e),n;break}case 76:{let t=Xc(i);for(let n=0;n<t;++n){let s=Zc(i,n);if(s==r)return oy(i,n,e),s}break}case 77:{let t=$c(i);if(t==r)return uy(i,e),t;let n=Yc(i);if(n==r)return cy(i,e),n;break}case 78:{let t=Jc(i);if(t==r)return py(i,e),t;let n=ep(i);if(n==r)return fy(i,e),n;let s=tp(i);if(s==r)return _y(i,e),s;break}case 81:{let t=rp(i);if(t==r)return dy(i,e),t;break}case 82:{let t=ip(i);if(t==r)return hy(i,e),t;let n=np(i);if(n==r)return my(i,e),n;let s=sp(i);if(s==r)return yy(i,e),s;let a=ap(i);if(a==r)return gy(i,e),a;let l=lp(i);if(l==r)return by(i,e),l;break}case 88:{let t=Tc(i);if(t==r)return Am(i,e),t;break}case 89:{let t=op(i);if(t==r)return xy(i,e),t;let n=up(i);if(n==r)return Ey(i,e),n;let s=cp(i);if(s==r)return Ay(i,e),s;break}case 90:break;case 91:{let t=pp(i);if(t==r)return Ty(i,e),t;break}case 92:{let t=fp(i);if(t==r)return Sy(i,e),t;let n=_p(i);if(n==r)return vy(i,e),n;let s=dp(i);if(s==r)return Iy(i,e),s;break}case 93:{let t=hp(i);if(t==r)return ky(i,e),t;let n=mp(i);if(n==r)return Fy(i,e),n;break}case 94:{let t=gp(i);if(t==r)return wy(i,e),t;let n=bp(i);if(n==r)return Ry(i,e),n;break}case 96:{let t=xp(i);if(t==r)return Cy(i,e),t;let n=Ep(i);if(n==r)return Py(i,e),n;break}case 97:{let t=Ap(i);if(t==r)return By(i,e),t;let n=Tp(i);if(n==r)return Ny(i,e),n;let s=Sp(i);if(s==r)return Ly(i,e),s;break}default:throw new Error("unexpected expression id")}return 0}var su=class extends bi{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(Li(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let t=this.module,n=Gr(e),s=Va(e),a=Ua(e);Oa(e,t.call("~onstore",[n,t.i32(s),t.i32(a),t.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",ft([this.ptrType,B.I32,B.I32,B.I32]),this.ptrType)}};function vx(i,r){let e=!1;for(;Wt(r)==6&&i.readStringCached(Ri(r))==m.tostack;)assert(dr(r)==1),r=hr(r,0),e=!0;return e?r:0}function Ix(i){return Wt(i)===14?!nt(i):!0}var au=class extends bi{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==B.I64?8:4}get ptrBinaryAdd(){return this.ptrType==B.I64?25:0}get ptrBinarySub(){return this.ptrType==B.I64?26:1}ptrConst(e){return this.ptrType==B.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,t){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(t,s),s}noteExport(e,t){t.length&&this.exportMap.set(e,t)}getSharedTemp(e,t){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.tempMaps.set(e,n);let a=vp(e)+n.size;return n.set(t,a),a}makeStackOffset(e){assert(e!=0);let t=this.module,n=t.global_set(m.stack_pointer,t.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,t.global_get(m.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:t.block(null,[n,this.makeStackCheck()],B.None)}makeStackFill(e,t){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)t.push(n.memory_fill(n.global_get(m.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)t.push(n.store(8,n.global_get(m.stack_pointer,this.ptrType),n.i64(0),B.I64,e-s)),s-=8;s&&(assert(s==4),t.push(n.store(4,n.global_get(m.stack_pointer,this.ptrType),n.i32(0),B.I32,e-s)))}}makeStackCheck(){let e=this.module;return this.hasStackCheckFunction||(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",B.None,B.None,null,e.if(e.binary(17,e.global_get(m.stack_pointer,this.ptrType),e.global_get(m.data_end,this.ptrType)),this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),Te.native)))),e.call("~stack_check",null,B.None)}updateCallOperands(e){let t=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=vx(t,l);if(!o)continue;if(!Ix(o)){e[s]=o;continue}let u=this.currentFunction,c=vp(u),f=this.noteSlot(u,c+this.callSlotOffset+n),_=this.getSharedTemp(u,this.ptrType),d=new Array;d.push(t.local_set(_,o,!1)),d.push(t.store(this.ptrSize,t.global_get(m.stack_pointer,this.ptrType),t.local_get(_,this.ptrType),this.ptrType,f*this.ptrSize)),d.push(t.local_get(_,this.ptrType)),e[s]=t.block(null,d,this.ptrType),++n}return n}visitCallPre(e){let t=dr(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=hr(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Na(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitCallIndirectPre(e){let t=Gn(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=Un(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)La(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitLocalSet(e){let t=this.module,n=Dr(e),s=vx(t,n);if(!s)return;if(!Ix(s)){Da(e,s);return}let a=Ci(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(t.store(this.ptrSize,t.global_get(m.stack_pointer,this.ptrType),t.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),za(e)?(o.push(t.local_get(a,this.ptrType)),this.replaceCurrent(t.flatten(o,this.ptrType))):this.replaceCurrent(t.flatten(o,B.None))}updateFunction(e){let t=Li(e),n=Yn(e),s=Jn(e),a=assert(mr(e)),l=Wa(e),o=new Array;for(let d=0;d<l;++d)o[d]=Ka(e,d);let u=this.tempMaps;if(u.has(e)){let d=changetype(u.get(e));for(let g=Map_keys(d),y=0,E=g.length;y<E;++y)o.push(g[y])}let c=this.module.ref;$n(c,t);let f=Ee(o),_=Bi(c,t,n,s,f,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let d=this.compiler.program.searchFunctionByRef(_);d&&d.addDebugInfo(this.module,_)}ne(f)}updateExport(e,t){let n=this.module,s=n.ref;assert(Zy(e)==0);let a=Yy(e),l=n.readStringCached(a),o=$y(e),u=Ni(s,a),c=Yn(u),f=cf(c),_=f.length,d=Jn(u),g=_,y=new Array,E=assert(t.length),T=E*this.ptrSize,k="export:"+l,F=n.allocStringCached(k);if(Ni(s,F)==0){let w=new Array;w.push(this.makeStackOffset(-T));for(let M=0;M<E;++M)w.push(n.store(this.ptrSize,n.global_get(m.stack_pointer,this.ptrType),n.local_get(t[M],this.ptrType),this.ptrType,M*this.ptrSize));let R=new Array(_);for(let M=0;M<_;++M)R[M]=n.local_get(M,f[M]);if(d!=B.None){let M=g++;y.push(d),w.push(n.local_set(M,n.call(l,R,d),!1)),w.push(this.makeStackOffset(+T)),w.push(n.local_get(M,d))}else w.push(n.call(l,R,d)),w.push(this.makeStackOffset(+T));let C=Ee(y);Bi(s,F,c,d,C,y.length,n.block(null,w,d)),ne(C)}Xa(s,o),ja(s,F,o)}walkModule(){super.walkModule();let e=this.module,t=new h_(this);for(let s=Map_keys(this.slotMaps),a=0,l=s.length;a<l;++a){let o=s[a],c=changetype(this.slotMaps.get(o)).size*this.ptrSize;t.frameSize=c,t.walkFunction(o);let f=new Array;f.push(this.makeStackOffset(-c)),this.makeStackFill(c,f);let _=mr(o),d=_r(_);if(d==B.Unreachable)f.push(_);else if(d==B.None)f.push(_),f.push(this.makeStackOffset(+c));else{let g=this.getSharedTemp(o,d);f.push(e.local_set(g,_,!1)),f.push(this.makeStackOffset(+c)),f.push(e.local_get(g,d))}Ha(o,e.flatten(f,d))}for(let s=Map_keys(this.tempMaps),a=0,l=s.length;a<l;++a)this.updateFunction(s[a]);let n=this.exportMap;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=Qa(e.ref,e.allocStringCached(o)),c=changetype(n.get(o));this.updateExport(u,c)}}},h_=class extends bi{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let t=this.module,n=Ur(e),s=new Array;if(n){let a=_r(n);if(a==B.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(t.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),qa(e,t.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(t.flatten(s,B.Unreachable))}};var pn=class{constructor(r,e=!1){this.seen=new Map;this.program=r,this.includePrivate=e}walk(){for(let r=Map_values(this.program.filesByName),e=0,t=r.length;e<t;++e){let n=unchecked(r[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(r){let e=r.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let t=r.exportsStar;if(t)for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);this.visitFile(a)}}visitElement(r,e){if(e.is(512)&&!this.includePrivate)return;let t=this.seen;if(!e.is(262144)&&t.has(e)){this.visitAlias(r,e,assert(t.get(e)));return}switch(t.set(e,r),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(r,e);break}case 2:{e.is(8388608)&&this.visitEnum(r,e);break}case 3:break;case 4:{this.visitFunctionInstances(r,e);break}case 6:{this.visitClassInstances(r,e);break}case 8:{this.visitInterfaceInstances(r,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(r,s);let a=n.setterInstance;a&&this.visitFunction(r,a);break}case 12:{kx(e)&&this.visitNamespace(r,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(r,l)}}visitClassInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(r,l)}}visitInterfaceInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(r,l)}}};function kx(i){let r=i.members;if(r)for(let e=Map_values(r),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||kx(s))return!0;break}}}return!1}function lk(i){return i=="rtrace"?"#rtrace":i}function ok(i){return i!="rtrace"}var _n=class i extends pn{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=t}static build(e,t=!0){return new i(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type;this.exports.push(e),xi(s,1)||(q(n,this.indentLevel),n.push(e),n.push(`: {
18
+ `),q(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(": "),n.push(s.toString()),n.push(`
19
+ `),q(n,this.indentLevel),n.push(`valueOf() { return this.value; },
20
+ `),q(n,this.indentLevel),n.push(`get value() {
21
+ `),q(n,++this.indentLevel),n.push("return "),this.makeLiftFromValue("exports."+e+".value",s,n),n.push(`;
22
+ `),q(n,--this.indentLevel),n.push("}"),t.is(8)||(n.push(`,
23
+ `),q(n,this.indentLevel),n.push(`set value(value) {
24
+ `),q(n,++this.indentLevel),n.push("exports."),n.push(e),n.push(".value = "),this.makeLowerToValue("value",s,n),n.push(`;
25
+ `),q(n,--this.indentLevel),n.push("}")),n.push(`
26
+ `),q(n,--this.indentLevel),n.push(`},
27
+ `)),this.visitNamespace(e,t)}visitEnum(e,t){let n=this.sb;this.exports.push(e),q(n,this.indentLevel),n.push(e),n.push(`: (values => (
28
+ `),q(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(`
29
+ `);let s=t.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];u.kind==3&&(q(n,this.indentLevel),n.push("values[values."),n.push(u.name),u.is(33554432)?(n.push(" = "),n.push(i64_low(u.constantIntegerValue).toString())):(n.push(' = exports["'),n.push(Re(e+"."+u.name,34)),n.push('"].valueOf()')),n.push('] = "'),n.push(Re(u.name,34)),n.push(`",
30
+ `))}q(n,this.indentLevel),n.push(`values
31
+ `),q(n,--this.indentLevel),n.push(`))({}),
32
+ `),this.visitNamespace(e,t)}makeGlobalImport(e,t,n){let s=this.sb,a=n.type;q(s,this.indentLevel),Ze(t)?s.push(t):(s.push('"'),s.push(Re(t,34)),s.push('": '));let l=this.ensureModuleId(e);xi(a,0)?(s.push(`(
33
+ `),q(s,this.indentLevel+1),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
34
+ `),q(s,this.indentLevel+1),e!="env"&&(s.push("__module"),s.push(l.toString()),s.push(".")),s.push(t),s.push(`
35
+ `),q(s,this.indentLevel),s.push(")")):(s.push(`{
36
+ `),q(s,++this.indentLevel),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
37
+ `),q(s,this.indentLevel),s.push(`// not supported: cannot lower before instantiate completes
38
+ `),q(s,--this.indentLevel),s.push("}")),s.push(`,
39
+ `)}makeFunctionImport(e,t,n,s=null){let a=this.sb,l=n.signature;if(q(a,this.indentLevel),Ze(t)?a.push(t):(a.push('"'),a.push(Re(t,34)),a.push('"')),m_(l,0)&&!s&&Ze(t))a.push(`: (
40
+ `),q(a,this.indentLevel+1),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
41
+ `),q(a,this.indentLevel+1),e!="env"&&(a.push(e),a.push(".")),a.push(t),a.push(`
42
+ `),q(a,this.indentLevel),a.push(")");else{a.push("(");let o=l.parameterTypes,u=new Array;for(let _=0,d=o.length;_<d;++_)u.push(n.getParameterName(_));a.push(u.join(", ")),a.push(`) {
43
+ `),q(a,++this.indentLevel),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
44
+ `);for(let _=0,d=o.length;_<d;++_){let g=o[_];if(!xi(g,1)){let y=n.getParameterName(_);q(a,this.indentLevel),a.push(y),a.push(" = "),this.makeLiftFromValue(y,g,a),a.push(`;
45
45
  `)}}let c=new Array,f=this.ensureModuleId(e);s?(c.push(`(() => {
46
- `),W(c,1),c.push(`// @external.js
46
+ `),q(c,1),c.push(`// @external.js
47
47
  `),Fx(s,1,c),c.push(`
48
- })()`)):(e!="env"&&(c.push("__module"),c.push(f.toString()),c.push(".")),c.push(t),c.push("("),c.push(u.join(", ")),c.push(")")),s=c.join(""),c.length=0,Fx(s,this.indentLevel,c,!0),s=c.join(""),W(a,this.indentLevel),l.returnType!=p.void?(a.push("return "),this.makeLowerToValue(s,l.returnType,a),a.push(`;
48
+ })()`)):(e!="env"&&(c.push("__module"),c.push(f.toString()),c.push(".")),c.push(t),c.push("("),c.push(u.join(", ")),c.push(")")),s=c.join(""),c.length=0,Fx(s,this.indentLevel,c,!0),s=c.join(""),q(a,this.indentLevel),l.returnType!=p.void?(a.push("return "),this.makeLowerToValue(s,l.returnType,a),a.push(`;
49
49
  `)):(a.push(s),a.push(`;
50
- `)),W(a,--this.indentLevel),a.push("}")}a.push(`,
51
- `)}visitFunction(e,t){if(t.is(512))return;let n=this.sb,s=t.signature;if(this.exports.push(e),!m_(s,1)){W(n,this.indentLevel),n.push(e),n.push("(");let a=s.parameterTypes,l=0;for(let c=0,f=a.length;c<f;++c)a[c].isInternalReference&&l++,c>0&&n.push(", "),n.push(t.getParameterName(c));n.push(`) {
52
- `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(s.toString()),n.push(`
53
- `);let o=new Array;for(let c=0,f=a.length;c<f;++c){let _=a[c];if(!xi(_,0)){let d=t.getParameterName(c);W(n,this.indentLevel),n.push(d),n.push(" = ");let g=_.isInternalReference&&--l>0;g&&(this.needsRetain=!0,this.needsRelease=!0,n.push("__retain("),o.push(d)),this.makeLowerToValue(d,_,n),g&&n.push(")"),n.push(`;
54
- `)}}o.length&&(W(n,this.indentLevel++),n.push(`try {
55
- `)),s.requiredParameters<a.length&&(W(n,this.indentLevel),n.push(`exports.__setArgumentsLength(arguments.length);
56
- `));let u=new Array;u.push("exports."),u.push(e),u.push("(");for(let c=0,f=a.length;c<f;++c)c>0&&u.push(", "),u.push(t.getParameterName(c));if(u.push(")"),s.returnType!=p.void?(W(n,this.indentLevel),n.push("return "),this.makeLiftFromValue(u.join(""),s.returnType,n)):(W(n,this.indentLevel),n.push(u.join(""))),n.push(`;
57
- `),o.length){W(n,this.indentLevel-1),n.push(`} finally {
58
- `);for(let c=0,f=o.length;c<f;++c)W(n,this.indentLevel),n.push("__release("),n.push(o[c]),n.push(`);
59
- `);W(n,--this.indentLevel),n.push(`}
60
- `)}W(n,--this.indentLevel),n.push(`},
61
- `)}this.visitNamespace(e,t)}visitClass(e,t){}visitInterface(e,t){this.visitClass(e,t)}visitNamespace(e,t){}visitAlias(e,t,n){}getExternalCode(e){let t=Zt(11,e.decoratorNodes);if(t){let n=t.args;if(n&&n.length==1){let s=n[0];if(s.kind==18){let a=s;if(a.literalKind==2)return a.value;if(a.literalKind==3){let l=a.parts;if(l.length==1)return l[0]}}}}return null}build(){let e=this.exports,t=this.program.moduleImports,n=this.program,s=n.options,a=this.sb;a.push(""),W(a,this.indentLevel++),this.esm||a.push("export "),a.push(`async function instantiate(module, imports = {}) {
62
- `);let l=a.push("")-1;W(a,this.indentLevel++),a.push(`const adaptedImports = {
63
- `);let o=a.length;for(let y=Map_keys(t),E=0,T=y.length;E<T;++E){let k=y[E],F=this.ensureModuleId(k),w=t.get(k);if(W(a,this.indentLevel),Ze(k)?a.push(k):(a.push('"'),a.push(Re(k,34)),a.push('"')),!ok(k)){a.push(": __module"),a.push(F.toString()),a.push(`,
50
+ `)),q(a,--this.indentLevel),a.push("}")}a.push(`,
51
+ `)}visitFunction(e,t){if(t.is(512))return;let n=this.sb,s=t.signature;if(this.exports.push(e),!m_(s,1)){q(n,this.indentLevel),n.push(e),n.push("(");let a=s.parameterTypes,l=0;for(let c=0,f=a.length;c<f;++c)a[c].isInternalReference&&l++,c>0&&n.push(", "),n.push(t.getParameterName(c));n.push(`) {
52
+ `),q(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(s.toString()),n.push(`
53
+ `);let o=new Array;for(let c=0,f=a.length;c<f;++c){let _=a[c];if(!xi(_,0)){let d=t.getParameterName(c);q(n,this.indentLevel),n.push(d),n.push(" = ");let g=_.isInternalReference&&--l>0;g&&(this.needsRetain=!0,this.needsRelease=!0,n.push("__retain("),o.push(d)),this.makeLowerToValue(d,_,n),g&&n.push(")"),n.push(`;
54
+ `)}}o.length&&(q(n,this.indentLevel++),n.push(`try {
55
+ `)),s.requiredParameters<a.length&&(q(n,this.indentLevel),n.push(`exports.__setArgumentsLength(arguments.length);
56
+ `));let u=new Array;u.push("exports."),u.push(e),u.push("(");for(let c=0,f=a.length;c<f;++c)c>0&&u.push(", "),u.push(t.getParameterName(c));if(u.push(")"),s.returnType!=p.void?(q(n,this.indentLevel),n.push("return "),this.makeLiftFromValue(u.join(""),s.returnType,n)):(q(n,this.indentLevel),n.push(u.join(""))),n.push(`;
57
+ `),o.length){q(n,this.indentLevel-1),n.push(`} finally {
58
+ `);for(let c=0,f=o.length;c<f;++c)q(n,this.indentLevel),n.push("__release("),n.push(o[c]),n.push(`);
59
+ `);q(n,--this.indentLevel),n.push(`}
60
+ `)}q(n,--this.indentLevel),n.push(`},
61
+ `)}this.visitNamespace(e,t)}visitClass(e,t){}visitInterface(e,t){this.visitClass(e,t)}visitNamespace(e,t){}visitAlias(e,t,n){}getExternalCode(e){let t=Zt(11,e.decoratorNodes);if(t){let n=t.args;if(n&&n.length==1){let s=n[0];if(s.kind==18){let a=s;if(a.literalKind==2)return a.value;if(a.literalKind==3){let l=a.parts;if(l.length==1)return l[0]}}}}return null}build(){let e=this.exports,t=this.program.moduleImports,n=this.program,s=n.options,a=this.sb;a.push(""),q(a,this.indentLevel++),this.esm||a.push("export "),a.push(`async function instantiate(module, imports = {}) {
62
+ `);let l=a.push("")-1;q(a,this.indentLevel++),a.push(`const adaptedImports = {
63
+ `);let o=a.length;for(let y=Map_keys(t),E=0,T=y.length;E<T;++E){let k=y[E],F=this.ensureModuleId(k),w=t.get(k);if(q(a,this.indentLevel),Ze(k)?a.push(k):(a.push('"'),a.push(Re(k,34)),a.push('"')),!ok(k)){a.push(": __module"),a.push(F.toString()),a.push(`,
64
64
  `);continue}let R=a.length;a.push(`: Object.setPrototypeOf({
65
- `),++this.indentLevel;let B=0;for(let M=Map_keys(w),q=0,G=M.length;q<G;++q){let X=M[q],z=assert(w.get(X));if(z.kind==5){let U=z,j=this.getExternalCode(U);(!m_(U.signature,0)||!Ze(X)||j)&&(this.makeFunctionImport(k,X,z,j),++B)}else if(z.kind==0){let U=z;(!xi(U.type,0)||!Ze(X))&&(this.makeGlobalImport(k,X,U),++B)}}--this.indentLevel,B?(W(a,this.indentLevel),a.push("}, "),k=="env"?a.push("Object.assign(Object.create(globalThis), imports.env || {})"):(a.push("__module"),a.push(F.toString())),a.push(`),
65
+ `),++this.indentLevel;let C=0;for(let M=Map_keys(w),W=0,G=M.length;W<G;++W){let j=M[W],z=assert(w.get(j));if(z.kind==5){let U=z,Q=this.getExternalCode(U);(!m_(U.signature,0)||!Ze(j)||Q)&&(this.makeFunctionImport(k,j,z,Q),++C)}else if(z.kind==0){let U=z;(!xi(U.type,0)||!Ze(j))&&(this.makeGlobalImport(k,j,U),++C)}}--this.indentLevel,C?(q(a,this.indentLevel),a.push("}, "),k=="env"?a.push("Object.assign(Object.create(globalThis), imports.env || {})"):(a.push("__module"),a.push(F.toString())),a.push(`),
66
66
  `)):(a.length=R,k=="env"?a.push(": Object.assign(Object.create(globalThis), imports.env || {})"):(a.push(": __module"),a.push(F.toString())),a.push(`,
67
- `))}--this.indentLevel;let u=a.length>o;u?(W(a,this.indentLevel),a.push(`};
67
+ `))}--this.indentLevel;let u=a.length>o;u?(q(a,this.indentLevel),a.push(`};
68
68
  `)):a.length=o-2;let c=this.importMappings,f=new Array;for(let y=Map_keys(c),E=0,T=y.length;E<T;++E){let k=y[E];if(k=="env")f.push(` const env = imports.env;
69
69
  `);else{let F=c.get(k);k=="rtrace"&&(f.push(` ((rtrace) => {
70
70
  `),f.push(` delete imports.rtrace;
71
71
  `),f.push(" new rtrace.Rtrace({ getMemory() { return memory; }, onerror(err) { console.log(`RTRACE: ${err.stack}`); } }).install(imports);\n"),f.push(` })(imports.rtrace);
72
72
  `)),f.push(" const __module"),f.push(F.toString()),f.push(" = imports"),Ze(k)?(f.push("."),f.push(k)):(f.push('["'),f.push(Re(k,34)),f.push('"]')),f.push(`;
73
- `)}}a[l]=f.join(""),W(a,this.indentLevel),a.push("const { exports } = await WebAssembly.instantiate(module"),u?a.push(`, adaptedImports);
73
+ `)}}a[l]=f.join(""),q(a,this.indentLevel),a.push("const { exports } = await WebAssembly.instantiate(module"),u?a.push(`, adaptedImports);
74
74
  `):a.push(`, imports);
75
- `),W(a,this.indentLevel),a.push(`const memory = exports.memory || imports.env.memory;
76
- `),W(a,this.indentLevel++),a.push(`const adaptedExports = Object.setPrototypeOf({
77
- `),o=a.length,this.walk(),--this.indentLevel;let _=a.length>o;_?(W(a,this.indentLevel),a.push(`}, exports);
75
+ `),q(a,this.indentLevel),a.push(`const memory = exports.memory || imports.env.memory;
76
+ `),q(a,this.indentLevel++),a.push(`const adaptedExports = Object.setPrototypeOf({
77
+ `),o=a.length,this.walk(),--this.indentLevel;let _=a.length>o;_?(q(a,this.indentLevel),a.push(`}, exports);
78
78
  `)):this.needsLiftBuffer||this.needsLowerBuffer||this.needsLiftString||this.needsLowerString||this.needsLiftArray||this.needsLowerArray||this.needsLiftTypedArray||this.needsLowerTypedArray||this.needsLiftStaticArray?a.length=o-2:a.length=o-4;let d=this.deferredCode;if(d.length)for(let y=0,E=d.length;y<E;++y)a.push(d[y]);if(this.needsLiftBuffer){let y=n.OBJECTInstance,E=y.offsetof("rtSize")-y.nextMemoryOffset;a.push(` function __liftBuffer(pointer) {
79
79
  if (!pointer) return null;
80
80
  return memory.buffer.slice(pointer, pointer + new Uint32Array(memory.buffer)[pointer - ${-E} >>> 2]);
@@ -222,8 +222,8 @@ var Bu=Object.defineProperty;var W_=Object.getOwnPropertyDescriptor;var v1=Objec
222
222
  if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
223
223
  else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
224
224
  })(), {
225
- `);let y=!1,E=new Array;for(let T=Map_keys(c),k=0,F=T.length;k<F;++k){let w=T[k];if(w=="env")W(a,2),a.push(`env: globalThis,
226
- `);else{let R=this.ensureModuleId(w);W(a,2),Ze(w)?a.push(w):(a.push('"'),a.push(Re(w,34)),a.push('"')),a.push(": __maybeDefault(__import"),a.push(R.toString()),a.push(`),
225
+ `);let y=!1,E=new Array;for(let T=Map_keys(c),k=0,F=T.length;k<F;++k){let w=T[k];if(w=="env")q(a,2),a.push(`env: globalThis,
226
+ `);else{let R=this.ensureModuleId(w);q(a,2),Ze(w)?a.push(w):(a.push('"'),a.push(Re(w,34)),a.push('"')),a.push(": __maybeDefault(__import"),a.push(R.toString()),a.push(`),
227
227
  `),E.push("import * as __import"),E.push(R.toString()),E.push(' from "'),E.push(Re(lk(w),34)),E.push(`";
228
228
  `),y=!0}}a[0]=E.join(""),a.push(` }
229
229
  ))(new URL("${Re(s.basenameHint,34)}.wasm", import.meta.url));
@@ -232,24 +232,24 @@ var Bu=Object.defineProperty;var W_=Object.getOwnPropertyDescriptor;var v1=Objec
232
232
  ? module.default
233
233
  : module;
234
234
  }
235
- `)}return a.join("")}ensureModuleId(e){if(e=="env")return-1;let t=this.importMappings,n=t.has(e)?i32(t.get(e)):t.size;return t.set(e,n),n}makeLiftFromValue(e,t,n=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__liftBuffer("),this.needsLiftBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__liftString("),this.needsLiftString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__liftArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__liftStaticArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype))n.push("__liftTypedArray("),s.name=="Uint64Array"?n.push("BigUint64Array"):s.name=="Int64Array"?n.push("BigInt64Array"):n.push(s.name),n.push(", "),this.needsLiftTypedArray=!0;else if(oa(s)){if(n.push("__liftRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLifts.has(s)){this.deferredLifts.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLiftRecord(s)),this.indentLevel=a}}else n.push("__liftInternref("),this.needsLiftInternref=!0;n.push(e),e.startsWith("__get")||n.push(" >>> 0"),n.push(")")}else t==p.bool?n.push(`${e} != 0`):t.isUnsignedIntegerValue&&t.size>=32?t.size==64?n.push(`BigInt.asUintN(64, ${e})`):n.push(`${e} >>> 0`):n.push(e)}makeLowerToValue(e,t,n=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__lowerBuffer("),this.needsLowerBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__lowerString("),this.needsLowerString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__lowerArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__lowerStaticArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLowerStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let a=s.getArrayValueType();n.push("__lowerTypedArray("),a==p.u64?n.push("BigUint64Array"):a==p.i64?n.push("BigInt64Array"):n.push(s.name),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerTypedArray=!0}else if(oa(s)){if(n.push("__lowerRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLowers.has(s)){this.deferredLowers.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLowerRecord(s)),this.indentLevel=a}}else n.push("__lowerInternref("),this.needsLowerInternref=!0;if(n.push(e),s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();a.isNumericValue&&(n.push(", "),a==p.u8||a==p.bool?n.push("Uint8Array"):a==p.i8?n.push("Int8Array"):a==p.u16?n.push("Uint16Array"):a==p.i16?n.push("Int16Array"):a==p.u32||a==p.usize32?n.push("Uint32Array"):a==p.i32||a==p.isize32?n.push("Int32Array"):a==p.u64||a==p.usize64?n.push("BigUint64Array"):a==p.i64||a==p.isize64?n.push("BigInt64Array"):a==p.f32?n.push("Float32Array"):a==p.f64?n.push("Float64Array"):assert(!1))}n.push(")"),t.is(512)||(this.needsNotNull=!0,n.push(" || __notnull()"))}else n.push(e),t.isIntegerValue&&t.size==64?n.push(" || 0n"):t==p.bool&&n.push(" ? 1 : 0")}ensureLiftFromMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsGetU64=!0,"__getU64"):(this.needsGetU32=!0,"__getU32"):e==p.i8?(this.needsGetI8=!0,"__getI8"):e==p.u8||e==p.bool?(this.needsGetU8=!0,"__getU8"):e==p.i16?(this.needsGetI16=!0,"__getI16"):e==p.u16?(this.needsGetU16=!0,"__getU16"):e==p.i32||e==p.isize32?(this.needsGetI32=!0,"__getI32"):e==p.u32||e==p.usize32?(this.needsGetU32=!0,"__getU32"):e==p.i64||e==p.isize64?(this.needsGetI64=!0,"__getI64"):e==p.u64||e==p.usize64?(this.needsGetU64=!0,"__getU64"):e==p.f32?(this.needsGetF32=!0,"__getF32"):e==p.f64?(this.needsGetF64=!0,"__getF64"):'(() => { throw Error("unsupported type"); })'}makeLiftFromMemoryFunc(e,t=this.sb){let n=this.ensureLiftFromMemoryFn(e);e.isInternalReference||e==p.bool||e.isUnsignedIntegerValue&&e.size>=32?(t.push("pointer => "),this.makeLiftFromValue(`${n}(pointer)`,e,t)):t.push(n)}makeLiftFromMemoryCall(e,t=this.sb,n="pointer"){let s=this.ensureLiftFromMemoryFn(e);e.isInternalReference?this.makeLiftFromValue(`${s}(${n})`,e,t):(t.push(s),t.push("("),t.push(n),t.push(")"),e==p.bool&&t.push(" != 0"))}ensureLowerToMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsSetU64=!0,"__setU64"):(this.needsSetU32=!0,"__setU32"):e==p.i8||e==p.u8||e==p.bool?(this.needsSetU8=!0,"__setU8"):e==p.i16||e==p.u16?(this.needsSetU16=!0,"__setU16"):e==p.i32||e==p.u32||e==p.isize32||e==p.usize32?(this.needsSetU32=!0,"__setU32"):e==p.i64||e==p.u64||e==p.isize64||e==p.usize64?(this.needsSetU64=!0,"__setU64"):e==p.f32?(this.needsSetF32=!0,"__setF32"):e==p.f64?(this.needsSetF64=!0,"__setF64"):'(() => { throw Error("unsupported type") })'}makeLowerToMemoryFunc(e,t=this.sb){let n=this.ensureLowerToMemoryFn(e);e.isInternalReference?(t.push("(pointer, value) => { "),t.push(n),t.push("(pointer, "),this.makeLowerToValue("value",e,t),t.push("); }")):t.push(n)}makeLowerToMemoryCall(e,t=this.sb,n="pointer",s="value"){let a=this.ensureLowerToMemoryFn(e);t.push(a),t.push("("),t.push(n),t.push(", "),this.makeLowerToValue(s,e,t),t.push(")")}makeLiftRecord(e){assert(oa(e));let t=new Array;W(t,this.indentLevel),t.push("function __liftRecord"),t.push(e.id.toString()),t.push(`(pointer) {
236
- `),W(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
237
- `),W(t,this.indentLevel),t.push(`// Hint: Opt-out from lifting as a record by providing an empty constructor
238
- `),W(t,this.indentLevel),t.push(`if (!pointer) return null;
239
- `),W(t,this.indentLevel++),t.push(`return {
240
- `);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),W(t,this.indentLevel),t.push(c.name),t.push(": "),this.makeLiftFromMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`),t.push(`,
241
- `))}return W(t,--this.indentLevel),t.push(`};
242
- `),W(t,--this.indentLevel),t.push(`}
243
- `),t.join("")}makeLowerRecord(e){assert(oa(e));let t=new Array;W(t,this.indentLevel),t.push("function __lowerRecord"),t.push(e.id.toString()),t.push(`(value) {
244
- `),W(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
245
- `),W(t,this.indentLevel),t.push(`// Hint: Opt-out from lowering as a record by providing an empty constructor
246
- `),W(t,this.indentLevel),t.push(`if (value == null) return 0;
247
- `),W(t,this.indentLevel),t.push("const pointer = exports.__pin(exports.__new("),t.push(e.nextMemoryOffset.toString()),t.push(", "),t.push(e.id.toString()),t.push(`));
248
- `);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),W(t,this.indentLevel),this.makeLowerToMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`,`value.${o}`),t.push(`;
249
- `))}return W(t,this.indentLevel),t.push(`exports.__unpin(pointer);
250
- `),W(t,this.indentLevel),t.push(`return pointer;
251
- `),W(t,--this.indentLevel),t.push(`}
252
- `),t.join("")}};function xi(i,r){if(r==0){if(i==p.bool||i.isIntegerValue&&i.size==64)return!1}else if(i==p.bool||i.isUnsignedIntegerValue&&i.size>=32)return!1;return!i.isInternalReference}function m_(i,r){let e=i.parameterTypes,t=r==0?1:0;if(!xi(i.returnType,r))return!1;for(let n=0,s=e.length;n<s;++n)if(!xi(e[n],t))return!1;return!0}function oa(i){if(i.base&&!i.prototype.implicitlyExtendsObject)return!1;let r=i.members;if(r)for(let e=Map_values(r),t=0,n=e.length;t<n;++t){let s=e[t];if(s.isAny(1536)||s.is(524288)&&s.declaration.range!=Te.native.range)return!1}return!0}function Fx(i,r,e,t=!1){let n=0,s=i.length,a=0;for(;a<s;)i.charCodeAt(a)==10&&(t?t=!1:W(e,r),e.push(i.substring(n,n=a+1))),++a;n<s&&(t||W(e,r),e.push(i.substring(n)))}function mn(i){if(!i.isInternalReference)return!1;let r=i.classReference;if(!r)return assert(i.signatureReference),!0;let e=r.program;return r.extendsPrototype(e.arrayBufferInstance.prototype)||r.extendsPrototype(e.stringInstance.prototype)||r.extendsPrototype(e.arrayBufferViewInstance.prototype)?!1:r.extendsPrototype(e.arrayPrototype)||r.extendsPrototype(e.staticArrayPrototype)?mn(r.getArrayValueType()):!0}function yn(i){if(!i.isInternalReference)return!1;let r=i.classReference;if(!r)return assert(i.signatureReference),!1;let e=r.program;return r.extendsPrototype(e.arrayBufferInstance.prototype)||r.extendsPrototype(e.stringInstance.prototype)||r.extendsPrototype(e.arrayBufferViewInstance.prototype)||r.extendsPrototype(e.arrayPrototype)||r.extendsPrototype(e.staticArrayPrototype)?!0:oa(r)}function fn(i,r){return` function __set${i}(pointer, value) {
235
+ `)}return a.join("")}ensureModuleId(e){if(e=="env")return-1;let t=this.importMappings,n=t.has(e)?i32(t.get(e)):t.size;return t.set(e,n),n}makeLiftFromValue(e,t,n=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__liftBuffer("),this.needsLiftBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__liftString("),this.needsLiftString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__liftArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__liftStaticArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype))n.push("__liftTypedArray("),s.name=="Uint64Array"?n.push("BigUint64Array"):s.name=="Int64Array"?n.push("BigInt64Array"):n.push(s.name),n.push(", "),this.needsLiftTypedArray=!0;else if(oa(s)){if(n.push("__liftRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLifts.has(s)){this.deferredLifts.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLiftRecord(s)),this.indentLevel=a}}else n.push("__liftInternref("),this.needsLiftInternref=!0;n.push(e),e.startsWith("__get")||n.push(" >>> 0"),n.push(")")}else t==p.bool?n.push(`${e} != 0`):t.isUnsignedIntegerValue&&t.size>=32?t.size==64?n.push(`BigInt.asUintN(64, ${e})`):n.push(`${e} >>> 0`):n.push(e)}makeLowerToValue(e,t,n=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__lowerBuffer("),this.needsLowerBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__lowerString("),this.needsLowerString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__lowerArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__lowerStaticArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLowerStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let a=s.getArrayValueType();n.push("__lowerTypedArray("),a==p.u64?n.push("BigUint64Array"):a==p.i64?n.push("BigInt64Array"):n.push(s.name),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerTypedArray=!0}else if(oa(s)){if(n.push("__lowerRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLowers.has(s)){this.deferredLowers.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLowerRecord(s)),this.indentLevel=a}}else n.push("__lowerInternref("),this.needsLowerInternref=!0;if(n.push(e),s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();a.isNumericValue&&(n.push(", "),a==p.u8||a==p.bool?n.push("Uint8Array"):a==p.i8?n.push("Int8Array"):a==p.u16?n.push("Uint16Array"):a==p.i16?n.push("Int16Array"):a==p.u32||a==p.usize32?n.push("Uint32Array"):a==p.i32||a==p.isize32?n.push("Int32Array"):a==p.u64||a==p.usize64?n.push("BigUint64Array"):a==p.i64||a==p.isize64?n.push("BigInt64Array"):a==p.f32?n.push("Float32Array"):a==p.f64?n.push("Float64Array"):assert(!1))}n.push(")"),t.is(512)||(this.needsNotNull=!0,n.push(" || __notnull()"))}else n.push(e),t.isIntegerValue&&t.size==64?n.push(" || 0n"):t==p.bool&&n.push(" ? 1 : 0")}ensureLiftFromMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsGetU64=!0,"__getU64"):(this.needsGetU32=!0,"__getU32"):e==p.i8?(this.needsGetI8=!0,"__getI8"):e==p.u8||e==p.bool?(this.needsGetU8=!0,"__getU8"):e==p.i16?(this.needsGetI16=!0,"__getI16"):e==p.u16?(this.needsGetU16=!0,"__getU16"):e==p.i32||e==p.isize32?(this.needsGetI32=!0,"__getI32"):e==p.u32||e==p.usize32?(this.needsGetU32=!0,"__getU32"):e==p.i64||e==p.isize64?(this.needsGetI64=!0,"__getI64"):e==p.u64||e==p.usize64?(this.needsGetU64=!0,"__getU64"):e==p.f32?(this.needsGetF32=!0,"__getF32"):e==p.f64?(this.needsGetF64=!0,"__getF64"):'(() => { throw Error("unsupported type"); })'}makeLiftFromMemoryFunc(e,t=this.sb){let n=this.ensureLiftFromMemoryFn(e);e.isInternalReference||e==p.bool||e.isUnsignedIntegerValue&&e.size>=32?(t.push("pointer => "),this.makeLiftFromValue(`${n}(pointer)`,e,t)):t.push(n)}makeLiftFromMemoryCall(e,t=this.sb,n="pointer"){let s=this.ensureLiftFromMemoryFn(e);e.isInternalReference?this.makeLiftFromValue(`${s}(${n})`,e,t):(t.push(s),t.push("("),t.push(n),t.push(")"),e==p.bool&&t.push(" != 0"))}ensureLowerToMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsSetU64=!0,"__setU64"):(this.needsSetU32=!0,"__setU32"):e==p.i8||e==p.u8||e==p.bool?(this.needsSetU8=!0,"__setU8"):e==p.i16||e==p.u16?(this.needsSetU16=!0,"__setU16"):e==p.i32||e==p.u32||e==p.isize32||e==p.usize32?(this.needsSetU32=!0,"__setU32"):e==p.i64||e==p.u64||e==p.isize64||e==p.usize64?(this.needsSetU64=!0,"__setU64"):e==p.f32?(this.needsSetF32=!0,"__setF32"):e==p.f64?(this.needsSetF64=!0,"__setF64"):'(() => { throw Error("unsupported type") })'}makeLowerToMemoryFunc(e,t=this.sb){let n=this.ensureLowerToMemoryFn(e);e.isInternalReference?(t.push("(pointer, value) => { "),t.push(n),t.push("(pointer, "),this.makeLowerToValue("value",e,t),t.push("); }")):t.push(n)}makeLowerToMemoryCall(e,t=this.sb,n="pointer",s="value"){let a=this.ensureLowerToMemoryFn(e);t.push(a),t.push("("),t.push(n),t.push(", "),this.makeLowerToValue(s,e,t),t.push(")")}makeLiftRecord(e){assert(oa(e));let t=new Array;q(t,this.indentLevel),t.push("function __liftRecord"),t.push(e.id.toString()),t.push(`(pointer) {
236
+ `),q(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
237
+ `),q(t,this.indentLevel),t.push(`// Hint: Opt-out from lifting as a record by providing an empty constructor
238
+ `),q(t,this.indentLevel),t.push(`if (!pointer) return null;
239
+ `),q(t,this.indentLevel++),t.push(`return {
240
+ `);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),q(t,this.indentLevel),t.push(c.name),t.push(": "),this.makeLiftFromMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`),t.push(`,
241
+ `))}return q(t,--this.indentLevel),t.push(`};
242
+ `),q(t,--this.indentLevel),t.push(`}
243
+ `),t.join("")}makeLowerRecord(e){assert(oa(e));let t=new Array;q(t,this.indentLevel),t.push("function __lowerRecord"),t.push(e.id.toString()),t.push(`(value) {
244
+ `),q(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
245
+ `),q(t,this.indentLevel),t.push(`// Hint: Opt-out from lowering as a record by providing an empty constructor
246
+ `),q(t,this.indentLevel),t.push(`if (value == null) return 0;
247
+ `),q(t,this.indentLevel),t.push("const pointer = exports.__pin(exports.__new("),t.push(e.nextMemoryOffset.toString()),t.push(", "),t.push(e.id.toString()),t.push(`));
248
+ `);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),q(t,this.indentLevel),this.makeLowerToMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`,`value.${o}`),t.push(`;
249
+ `))}return q(t,this.indentLevel),t.push(`exports.__unpin(pointer);
250
+ `),q(t,this.indentLevel),t.push(`return pointer;
251
+ `),q(t,--this.indentLevel),t.push(`}
252
+ `),t.join("")}};function xi(i,r){if(r==0){if(i==p.bool||i.isIntegerValue&&i.size==64)return!1}else if(i==p.bool||i.isUnsignedIntegerValue&&i.size>=32)return!1;return!i.isInternalReference}function m_(i,r){let e=i.parameterTypes,t=r==0?1:0;if(!xi(i.returnType,r))return!1;for(let n=0,s=e.length;n<s;++n)if(!xi(e[n],t))return!1;return!0}function oa(i){if(i.base&&!i.prototype.implicitlyExtendsObject)return!1;let r=i.members;if(r)for(let e=Map_values(r),t=0,n=e.length;t<n;++t){let s=e[t];if(s.isAny(1536)||s.is(524288)&&s.declaration.range!=Te.native.range)return!1}return!0}function Fx(i,r,e,t=!1){let n=0,s=i.length,a=0;for(;a<s;)i.charCodeAt(a)==10&&(t?t=!1:q(e,r),e.push(i.substring(n,n=a+1))),++a;n<s&&(t||q(e,r),e.push(i.substring(n)))}function mn(i){if(!i.isInternalReference)return!1;let r=i.classReference;if(!r)return assert(i.signatureReference),!0;let e=r.program;return r.extendsPrototype(e.arrayBufferInstance.prototype)||r.extendsPrototype(e.stringInstance.prototype)||r.extendsPrototype(e.arrayBufferViewInstance.prototype)?!1:r.extendsPrototype(e.arrayPrototype)||r.extendsPrototype(e.staticArrayPrototype)?mn(r.getArrayValueType()):!0}function yn(i){if(!i.isInternalReference)return!1;let r=i.classReference;if(!r)return assert(i.signatureReference),!1;let e=r.program;return r.extendsPrototype(e.arrayBufferInstance.prototype)||r.extendsPrototype(e.stringInstance.prototype)||r.extendsPrototype(e.arrayBufferViewInstance.prototype)||r.extendsPrototype(e.arrayPrototype)||r.extendsPrototype(e.staticArrayPrototype)?!0:oa(r)}function fn(i,r){return` function __set${i}(pointer, value) {
253
253
  try {
254
254
  __dataview.${r}(pointer, value, true);
255
255
  } catch {
@@ -265,31 +265,31 @@ var Bu=Object.defineProperty;var W_=Object.getOwnPropertyDescriptor;var v1=Objec
265
265
  return __dataview.${r}(pointer, true);
266
266
  }
267
267
  }
268
- `}var Ei="",Pr="",ou=15,ca=class{constructor(){this.target=1;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=ou;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?p.usize64:p.usize32}get isizeType(){return this.target==2?p.isize64:p.isize32}get sizeTypeRef(){return this.target==2?P.I64:P.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(r,e=!0){e?(r&32768&&(r|=1056),r&16384&&(r|=1024),r&1024&&(r|=256),r&4096&&(r|=16),this.features|=r):(r&256&&(r|=1024),r&1024&&(r|=16384),r&16&&(r|=4096),r&1056&&(r|=32768),this.features&=~r)}hasFeature(r){return(this.features&r)!=0}},qo=(t=>(t[t.Default=0]="Default",t[t.Never=1]="Never",t[t.Always=2]="Always",t))(qo||{}),f_=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(f_||{}),__=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(__||{}),gn;(t=>(t.DefaultNamespace="env",t.Memory="memory",t.Table="table"))(gn||={});var ua;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(ua||={});var dn=["__new","__pin","__unpin","__collect"],hn=["__rtti_base"],lu=0,wx="$closureEnvIn",y_=class{constructor(r,e,t){this.valueIndex=r;this.doneIndex=e;this.expression=t}},pa=class i extends tt{constructor(e){super(e.diagnostics);this.lazyLocals=null;this.currentParent=null;this.currentType=p.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.builtinEnv=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.sretStackBase=0;this.sretStackLimit=0;this.sretStackGlobal=null;this.sretDestSlot=0;this.sretDiscardMark=null;this.externalTempMark=null;this.externalTempSize=0;this.rootNextOperand=!1;this.program=e;let t=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),t.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),t.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),t.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),t.setFeatures(s);let a=e.makeNativeFunction(m.start,de.create(e,[],p.void));a.internalName=m.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new au(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new i(e).compile()}compile(){let e=this.options,t=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),t.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==m.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let T=Map_values(u),k=0,F=T.length;k<F;++k){let w=unchecked(T[k]);w.source.sourceKind==1&&(this.compileFile(w),this.compileModuleExports(w))}if(this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime){for(let T=0,k=dn.length;T<k;++T){let F=dn[T],w=n.requireFunction(F);this.compileFunction(w)&&!t.hasExport(F)&&t.addFunctionExport(w.internalName,F)}for(let T=0,k=hn.length;T<k;++T){let F=hn[T],w=n.requireGlobal(F);this.compileGlobal(w)&&!t.hasExport(F)&&t.addGlobalExport(w.internalName,F)}}let c=this.lazyFunctions;do{let T=new Array;for(let k=Set_values(c),F=0,w=k.length;F<w;++F){let R=unchecked(k[F]);T.push(R)}c.clear();for(let k=0,F=T.length;k<F;++k)this.compileFunction(unchecked(T[k]),!0)}while(c.size);let f=this.functionTable,_=this.overrideStubs;for(let T=0,k=f.length;T<k;++T){let F=f[T];F.is(268435456)?(assert(F.is(262144)),f[T]=this.ensureOverrideStub(F)):F.signature.requiredParameters<F.signature.parameterTypes.length&&(f[T]=this.ensureVarargsStub(F))}let d=new Set;do{s.discoveredOverride=!1;for(let T=Set_values(_),k=0,F=T.length;k<F;++k){let w=unchecked(T[k]),R=s.resolveOverrides(w);if(R)for(let B=0,M=R.length;B<M;++B)this.compileFunction(R[B]);d.add(w)}}while(_.size>d.size||s.discoveredOverride);d.clear();for(let T=Set_values(_),k=0,F=T.length;k<F;++k)this.finalizeOverrideStub(T[k]);for(let T=Map_keys(this.pendingInstanceOf),k=0,F=T.length;k<F;++k){let w=T[k],R=assert(this.pendingInstanceOf.get(w));switch(w.kind){case 7:case 9:{this.finalizeInstanceOf(w,R);break}case 6:case 8:{this.finalizeAnyInstanceOf(w,R);break}default:assert(!1)}}t.removeGlobal(m.rtti_base),this.runtimeFeatures&8&&Tx(this),this.runtimeFeatures&16&&xx(this),this.runtimeFeatures&32&&Ax(this);let g=i64_align(this.memoryOffset,e.usizeType.byteSize);t.removeGlobal(m.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?t.addGlobal(m.data_end,P.I64,!1,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.data_end,P.I32,!1,t.i32(i64_low(g)))),t.removeGlobal(m.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(g=i64_align(i64_add(g,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?t.addGlobal(m.stack_pointer,P.I64,!0,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.stack_pointer,P.I32,!0,t.i32(i64_low(g)))),t.removeGlobal(m.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?t.addGlobal(m.heap_base,P.I64,!1,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.heap_base,P.I32,!1,t.i32(i64_low(g)))),this.initDefaultMemory(g),this.initDefaultTable(),this.runtimeFeatures&64&&(t.addFunction(m.setArgumentsLength,P.I32,P.None,null,t.global_set(this.ensureArgumentsLength(),t.local_get(0,P.I32))),t.addFunctionExport(m.setArgumentsLength,ua.setArgumentsLength));let y=!o.length,E=e.exportStart;if(!y||E!=null){let T=l.signature;!y&&E!=null&&(t.addGlobal(m.started,P.I32,!0,t.i32(0)),o.unshift(t.global_set(m.started,t.i32(1))),o.unshift(t.if(t.global_get(m.started,P.I32),t.return())));let k=t.addFunction(l.internalName,T.paramRefs,T.resultRefs,an(l.getNonParameterLocalTypes()),t.flatten(o));l.finalize(t,k),E==null?t.setStart(k):!Ze(E)||t.hasExport(E)?this.error(110,Te.native.range,E):t.addFunctionExport(l.internalName,E)}return a&&this.shadowStack.walkModule(),n.lookup("ASC_RTRACE")!=null&&new su(this).walkModule(),t}initDummyMemory(){let e=this.options;this.module.setMemory(0,Yt.UNLIMITED_MEMORY,[],e.target,null,N.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let t=this.options,n=this.module,s=this.memorySegments,a=0,l=Yt.UNLIMITED_MEMORY,o=!1;(t.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),t.initialMemory&&(t.initialMemory<a?this.error(105,null,a.toString()):a=t.initialMemory),t.maximumMemory&&(t.maximumMemory<a?this.error(106,null,a.toString()):l=t.maximumMemory),t.sharedMemory&&(o=!0,t.maximumMemory||(this.error(107,null),o=!1),t.hasFeature(32)||(this.error(108,null),o=!1));let u=t.lowMemoryLimit;if(u){let c=i64_new(u&-16);i64_gt(e,c)&&this.error(104,null,i64_to_string(e),i64_to_string(c))}n.setMemory(a,l,s,t.target,t.exportMemory?ua.Memory:null,N.DefaultMemory,o),t.importMemory&&n.addMemoryImport(N.DefaultMemory,gn.DefaultNamespace,gn.Memory,o)}initDefaultTable(){let e=this.options,t=this.module;e.importTable&&(t.addTableImport(N.DefaultTable,gn.DefaultNamespace,gn.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(t.addTableExport(N.DefaultTable,ua.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,c=s.length;u<c;++u)a[u]=s[u].internalName;let l=n+s.length,o=Yt.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&t.setPassArgument("directize-initial-contents-immutable","true")),t.addFunctionTable(N.DefaultTable,l,o,a,t.i32(n))}compileModuleExports(e){let t=e.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,t,n=""){let s=this.module;switch(t.kind){case 4:{let a=t;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=t;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let c=l.thisType;if(c&&yn(c)||mn(l.returnType))this.desiresExportRuntime=!0;else{let f=l.parameterTypes;for(let _=0,d=f.length;_<d;++_)if(yn(f[_])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==16&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=t;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(t.internalName,o),!this.desiresExportRuntime){let u=a.type;(mn(u)||!a.is(8)&&yn(u))&&(this.desiresExportRuntime=!0)}a.type.kind==16&&this.module.setClosedWorld(!1)}a.type==p.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(t);let a=t.members;if(a){let l=n+e+es;for(let o=Map_keys(a),u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=assert(a.get(f));_.is(512)||this.compileModuleExport(f,_,l)}}return}case 3:{let a=t;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(t.internalName,l);return}break}}this.warning(235,t.identifierNode.range)}compileFileByPath(e,t){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+Qe))n=assert(s.get(a));else{this.error(6054,t.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let t=e.startFunction,n=t.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=t.flow;this.currentFlow=o;for(let u=e.source.statements,c=0,f=u.length;c<f;++c)this.compileTopLevelStatement(u[c],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,c=t.localsByIndex,f=c.length,_=new Array(f);for(let g=0;g<f;++g)_[g]=c[g].type.toRef();let d=u.addFunction(t.internalName,n.paramRefs,n.resultRefs,_,u.flatten(a));t.finalize(u,d),s.push(u.call(t.internalName,null,P.None))}}compileGlobalLazy(e,t){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)||this.hasConstantInitializer(e)?this.compileGlobal(e):(this.errorRelated(2448,t.range,e.identifierNode.range,e.internalName),!1)}hasConstantInitializer(e){let t=e.initializerNode;return t!=null&&t.evaluatesToConst}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let g=this.resolver.resolveType(a,null,e.parent);if(!g)return e.set(16777216),t.delete(e),!1;if(g==p.void)return this.error(1110,a.range),e.set(16777216),t.delete(e),!1;e.setType(g),this.program.checkTypeSupported(g,a),this.program.checkInlineStructValue(g,a,"a global")}else if(l){let g=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,p.auto,20),this.currentFlow=g,this.currentType==p.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),t.delete(e),!1;e.setType(this.currentType),this.program.checkInlineStructValue(this.currentType,l,"a global")}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),t.delete(e),!1;if(e.hasDecorator(512)){let g=e.internalName;return nr.has(g)&&assert(nr.get(g))(new qs(this,e)),t.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),c=e.is(8)||e.is(96),f=e.hasDecorator(64);if(e.is(32768))return c||this.options.hasFeature(2)?(Rx(e,e.declaration),this.program.markModuleImport(Ei,Pr,e),n.addGlobalImport(e.internalName,Ei,Pr,u,!c),t.delete(e),!this.desiresExportRuntime&&yn(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),t.delete(e),!1);let _=!1;if(l){if(!s){let g=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=g}if(!n.isConstExpression(s))if(c){let g=n.runExpression(s,1);g?s=g:_=!0}else _=!0;if(_&&re(s)==10){let g=assert(xs(s));if(!gf(n.getGlobal(g))){let y=this.program.elementsByName;y.has(g)&&assert(y.get(g)).is(32768)&&(_=!1)}}if(f)if(_)this.warning(206,l.range);else{switch(assert(re(s)==14),ce(s)){case P.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ae(s),0);break}case P.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(Be(s),Ge(s));break}case P.F32:{e.constantValueKind=2,e.constantFloatValue=Ce(s);break}case P.F64:{e.constantValueKind=2,e.constantFloatValue=Pe(s);break}default:return assert(!1),e.set(16777216),t.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let d=e.internalName;if(_){f&&this.error(212,Zt(9,e.decoratorNodes).range,"inline");let g=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),g=o.asNullable()),n.addGlobal(d,g.toRef(),!0,this.makeZero(g)),this.currentBody.push(n.global_set(d,s))}else f||n.addGlobal(d,u,!c,s);return t.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.resolver.resolveEnumType(e),n=this.pendingElements;n.add(e);let s=this.module,a=this.currentParent;this.currentParent=e;let l=null,o=!1,u=e.is(8)||e.hasDecorator(64),c=e.members;if(c)for(let f=Map_values(c),_=0,d=f.length;_<d;++_){let g=unchecked(f[_]);if(g.kind!=3)continue;let y=!1,E=g,T=E.valueNode;E.set(8388608);let k=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let F;if(T){if(F=this.compileExpression(T,t,1),re(F)!=14){let w=s.runExpression(F,1);w?F=w:(e.is(8)&&this.error(2474,T.range),y=!0)}}else if(l==null)F=s.i32(0);else if(o&&this.error(1061,E.identifierNode.range.atEnd),u){let w=i64_add(l.constantIntegerValue,i64_new(1));assert(!i64_high(w)),F=s.i32(i64_low(w))}else{F=s.binary(0,s.global_get(l.internalName,P.I32),s.i32(1));let w=s.runExpression(F,1);w?F=w:(e.is(8)&&this.error(2474,g.declaration.range),y=!0)}if(this.currentFlow=k,y)s.addGlobal(E.internalName,P.I32,!0,s.i32(0)),this.currentBody.push(this.makeGlobalAssignment(E,F,p.i32,!1)),o=!0;else{let w=ae(F);this.enumMemberValueFits(w,t)||this.error(6404,T?T.range:E.identifierNode.range,E.name,t.toString()),u?(E.setConstantIntegerValue(i64_new(w),t),E.is(1048576)&&s.addGlobal(E.internalName,P.I32,!1,F)):s.addGlobal(E.internalName,P.I32,!1,F),E.isImmutable=!0,o=!1}l=E}return this.currentParent=a,n.delete(e),!0}enumMemberValueFits(e,t){switch(t.kind){case 1:return e>=i8.MIN_VALUE&&e<=i8.MAX_VALUE;case 6:return e>=0&&e<=u8.MAX_VALUE;case 2:return e>=i16.MIN_VALUE&&e<=i16.MAX_VALUE;case 7:return e>=0&&e<=u16.MAX_VALUE;default:return!0}}ensureEnumToString(e,t){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,t.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${N.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),c=Map_values(n),f=1,_=u.length;f<=_;++f){let d=unchecked(u[_-f]),g=unchecked(c[_-f]);if(g.kind!=3)continue;let y=g,E=a?s.i32(i64_low(y.constantIntegerValue)):s.global_get(y.internalName,P.I32),T=s.if(s.binary(15,E,s.local_get(0,P.I32)),s.return(this.ensureStaticString(d)));o.push(T)}return o.push(s.unreachable()),s.addFunction(l,P.I32,P.I32,null,s.block(null,o,P.I32)),l}compileFunction(e,t=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!t){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let d=new Set;d.add(n[0].name.text);for(let g=1;g<s;g++){let y=n[g].name,E=y.text;d.has(E)?this.error(2300,y.range,E):d.add(E)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,c=e.prototype.bodyNode,f=e.declaration;if(assert(f.kind==59||f.kind==62),this.checkSignatureSupported(e.signature,f.signature),u.hasHiddenDestParam&&e.is(268435456)&&this.error(100,f.name.range,"an @inline struct return on a virtual method (the override stub has no destination parameter; deferred)"),u.hasHiddenDestParam&&(e.is(1048576)||e.hasAnyDecorator(384))&&this.error(100,f.name.range,"an @inline struct return across the module boundary (the host would have to pass the destination pointer; that is an ABI version, not this phase)"),e.is(1048576)||e.hasAnyDecorator(384)){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g){let E=unchecked(d[g]);if(!u.crossesByValueParam(g))continue;if(de.fieldCountOf(E)==1){let k=e.prototype.functionTypeNode.parameters[g];this.error(100,k.type.range,"an @inline struct with a single field at a host boundary (the C/WASM tool convention passes a one-scalar struct as the scalar itself, while this compiler passes records as pointers; both are `(param i32)`, so the disagreement is silent. Pass the scalar directly, or use a struct with two or more fields)");break}}}if(e.hasAnyDecorator(384)&&!u.externalBoundary){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g)if(this.isInlineStructType(unchecked(d[g]))){let E=e.prototype.functionTypeNode.parameters[g];this.error(100,E.type.range,"an @inline struct as an @external parameter (flattening the record into one WASM parameter per field would make its field list part of the host ABI; the by-value temp is the implemented path, so this declaration did not take it)");break}}if(e.is(1048576)&&!e.hasAnyDecorator(384)&&!u.exportByValParams){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g)if(this.isInlineStructType(unchecked(d[g]))){let E=e.prototype.functionTypeNode.parameters[g];this.error(100,E.type.range,"an @inline struct as an export parameter (flattening the record into one WASM parameter per field would make its field list part of the host ABI; the by-value pointer parameter is the implemented path, so this declaration did not take it)");break}}let _=0;if(c){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let E=e.decoratorNodes,T;(T=Zt(10,E))&&this.error(212,T.range,"external"),(T=Zt(11,E))&&this.error(212,T.range,"external.js")}let d=this.currentFlow,g=e.flow;this.currentFlow=g;let y=new Array;u.exportByValParams&&this.emitExportByValPrologue(e,y),this.compileFunctionBody(e,y)||y.push(o.unreachable()),this.currentFlow=d,_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,an(e.getNonParameterLocalTypes()),o.flatten(y,u.resultRefs))}else if(e.is(32768)){if(Rx(e,f),this.program.markModuleImport(Ei,Pr,e),o.addFunctionImport(e.internalName,Ei,Pr,u.paramRefs,u.resultRefs),_=o.getFunction(e.internalName),!this.desiresExportRuntime){let d=u.thisType;if(d&&mn(d)||yn(u.returnType))this.desiresExportRuntime=!0;else{let g=u.parameterTypes;for(let y=0,E=g.length;y<E;++y)if(mn(g[y])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let d=e.declaration.name.text,g=assert(e.parent.getMember(d));assert(g.kind==10);let y=g.instance;y&&y.isField&&(_=e.is(2048)?this.makeBuiltinFieldGetter(y):this.makeBuiltinFieldSetter(y),assert(e.is(8388608)))}_||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let g,y=e.prototype.functionTypeNode;if(u.returnType==p.v128)g=y.returnType.range;else{let E=u.getVectorValueOperandIndices()[0];g=y.parameters[E].range}this.warning(112,g,"v128")}return e.finalize(o,_),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,t){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(N.this_)):null,u=t.length;if(e.prototype.envKind==2){let c=assert(e.prototype.envClass),f=e.declaration.range.source,_=assert(this.program.filesByName.get(f.internalPath)),d=assert(_.getMember(c)),g=d.typeParameterNodes,y=null;if(g!=null&&g.length>0){let k=l.contextualTypeArguments,F=new Array(g.length);for(let w=0,R=g.length;w<R;++w){let B=g[w].name.text,M=k!=null?ee(k,B):null;if(M==null)return this.error(1140,e.declaration.range),!1;F[w]=M}y=F}let E=assert(this.resolver.resolveClass(d,y,new Map,1)),T=l.addScopedLocal(wx,E.type);l.setLocalFlag(T.index,8)}if(s.kind==34)t=this.compileStatements(s.statements,t);else{assert(s.kind==42),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let c=this.compileExpression(s.expression,a,1);l.canOverflow(c,a)||l.set(2),l.isNonnull(c,a)&&l.set(4),t?t.push(c):t=[c],l.is(256)||(l.canOverflow(c,a)||l.set(2),l.isNonnull(c,a)&&l.set(4),l.set(257))}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let c=assert(e.parent);assert(c.kind==7);let f=c;if(l.isAny(8256)||!l.is(256)){let _=new Array;_.push(this.makeConditionalAllocation(f,o.index)),this.makeFieldInitializationInConstructor(f,_);for(let d=t.length-1;d>=u;--d)t[d+1]=t[d];t[u]=n.flatten(_,P.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!f.hasDecorator(32)&&this.error(231,f.identifierNode.range),l.is(256)||(t.push(n.local_get(o.index,o.type.toRef())),l.set(261)),f.base&&!f.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=p.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;if(e.prototype.capturesThis){assert(!l.isInline);let c=assert(l.lookupLocal(N.this_));assert(!e.signature.thisType);let f=n.local_set(c.index,n.global_get(this.ensureEnvGlobal(),this.options.sizeTypeRef),c.type.isManaged);for(let _=t.length-1;_>=u;--_)t[_+1]=t[_];t[u]=f,l.setLocalFlag(c.index,8)}if(e.prototype.envKind==2){let c=assert(l.lookupLocal(wx)),f=n.local_set(c.index,n.global_get(this.ensureEnvGlobal(),this.options.sizeTypeRef),c.type.isManaged);for(let _=t.length-1;_>=u;--_)t[_+1]=t[_];t[u]=f}return!0}makeBuiltinFieldGetter(e){let t=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;t.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow,c=t.flow;return this.currentFlow=c,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,t.identifierNode)),this.currentFlow=u,n.addFunction(t.internalName,l,a,an(t.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let t=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged){let u=t.parent;if(assert(u.kind==7),u.type.isManaged){let c=this.program.linkInstance;this.compileFunction(c),o=n.block(null,[o,n.call(c.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],P.None)],P.None)}}return t.set(8388608),n.addFunction(t.internalName,ft([a,l]),P.None,null,o)}addAlignedMemorySegment(e,t=16){assert(Kr(t));let n=i64_align(this.memoryOffset,t),s=new Ji(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let t=this.program.computeBlockStart64(this.memoryOffset),n=new Ji(e,t);return this.memorySegments.push(n),this.memoryOffset=i64_add(t,i64_new(e.length)),n}ensureStaticString(e){let t=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(t)}ensureStaticStringPtr(e){let t=this.program,n=t.totalOverhead,s=assert(t.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let c=e.length,f=s.createBuffer(c<<1);for(let _=0;_<c;++_)gr(e.charCodeAt(_),f,n+(_<<1));a=this.addRuntimeMemorySegment(f),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let c=new Set;c.add(i64_low(o)),u.set(i64_high(o),c)}return o}writeStaticBuffer(e,t,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case P.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),be(ae(c),e,t),t+=1}break}case 2:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),gr(ae(c),e,t),t+=2}break}case 4:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Se(ae(c),e,t),t+=4}break}default:assert(!1)}break}case P.I64:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),qi(i64_new(Be(c),Ge(c)),e,t),t+=8}break}case P.F32:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),qr(Ce(c),e,t),t+=4}break}case P.F64:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Wr(Pe(c),e,t),t+=8}break}case P.V128:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),zp(ff(c),e,t),t+=16}break}case P.None:break;default:assert(!1)}return t}addStaticBuffer(e,t,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(t.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,t),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,t,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=Oi(t.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(t.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let t=this.program,n=e.memorySegment;if(!n){let s=this.ensureFunctionTableIndex(e),a=assert(this.resolver.resolveClass(t.functionPrototype,[e.type]));this.assertFunctionLayout(a);let l=a.createBuffer();assert(a.writeField("_index",s,l)),assert(a.writeField("_env",0,l)),e.memorySegment=n=this.addRuntimeMemorySegment(l)}return i64_add(n.offset,i64_new(t.totalOverhead))}ensureFunctionTableIndex(e){let t=e.tableIndex;if(t)return t;this.options.importTable||this.module.ensureFunctionTable(N.DefaultTable);let n=this.functionTable,s=this.options.tableBase;s||(s=1);let a=s+n.length;return n.push(e),e.tableIndex=a,a}compileTopLevelStatement(e,t){switch(e.kind){case 55:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],t);break}case 56:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 63:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],t);this.currentParent=a}break}case 51:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 58:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 39:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 40:{this.compileTopLevelStatement(e.declaration,t);break}case 46:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 59:case 62:case 61:case 69:case 64:break;default:{let n=this.compileStatement(e);re(n)!=22&&t.push(n);break}}}compileStatement(e){let t=this.module,n;switch(e.kind){case 34:{n=this.compileBlockStatement(e);break}case 35:{n=this.compileBreakStatement(e);break}case 36:{n=this.compileContinueStatement(e);break}case 37:{n=this.compileDoStatement(e);break}case 38:{n=this.compileEmptyStatement(e);break}case 42:{n=this.compileExpressionStatement(e);break}case 43:{n=this.compileForStatement(e);break}case 44:{n=this.compileForOfStatement(e);break}case 45:{n=this.compileIfStatement(e);break}case 47:{n=this.compileReturnStatement(e);break}case 48:{n=this.compileSwitchStatement(e);break}case 49:{n=this.compileThrowStatement(e);break}case 50:{n=this.compileTryStatement(e);break}case 51:{n=this.compileVariableStatement(e),n||(n=t.nop());break}case 52:{n=this.compileVoidStatement(e);break}case 53:{n=this.compileWhileStatement(e);break}case 64:{n=this.compileTypeDeclaration(e);break}case 54:{n=t.nop();break}default:assert(!1),n=t.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,t=null){let n=e.length;t||(t=new Array(n),t.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch(re(l)){case 1:if(!As(l)){for(let o=0,u=Ts(l);o<u;++o)t.push(Ss(l,o));break}default:t.push(l);case 22:}if(s.isAny(272))break}return t}compileBlockStatement(e){let t=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(t);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let t=this.currentFlow,n=e.name.text,s=t.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new at(n,t.sourceFunction,e,0);return t.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),t.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),t.unreachable()):(s.set(16),t.br(a))}compileContinueStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),t.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),t.unreachable()):(s.set(288),t.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let c=`do-loop|${l}`;this.currentFlow=a;let f=new Array,_=e.body;_.kind==34?this.compileStatements(_.statements,f):f.push(this.compileStatement(_)),a.popControlFlowLabel(l);let d=a.isAny(4128),g=a.isAny(2064),y=!a.isAny(272);if(!y&&!d)f.push(t.unreachable()),n.inherit(a),g||n.set(256);else{let T=this.compileExpression(e.condition,p.bool),k=this.makeIsTrueish(T,this.currentType,e.condition),F=this.evaluateCondition(k);if(F!=2&&(d||y)&&n.resetIfNeedsRecompile(a.forkThen(T),s))return this.currentFlow=n,this.doCompileDoStatement(e);d&&(f[0]=t.block(u,f),f.length=1,a.unset(256)),f.push(t.br(c,k)),n.inherit(a),F==1&&!g&&n.set(256)}this.currentFlow=n;let E=t.loop(c,t.flatten(f));return g&&(E=t.block(o,[E])),n.is(256)&&(E=t.block(null,[E,t.unreachable()])),E}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,p.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==42||o.kind==51),l.push(this.compileStatement(o)));let u,c,f,_=e.condition;if(_){if(u=this.compileExpression(_,p.bool),c=this.makeIsTrueish(u,this.currentType,_),f=this.evaluateCondition(c),f==2)return l.push(t.drop(c)),n.inherit(a),this.currentFlow=n,t.flatten(l)}else u=t.i32(1),c=u,f=1;let d=a.forkThen(u,!0),g=d.pushControlFlowLabel(),y=`for-break${g}`;d.breakLabel=y;let E=`for-continue|${g}`;d.continueLabel=E;let T=`for-loop|${g}`;this.currentFlow=d;let k=new Array,F=e.body;F.kind==34?this.compileStatements(F.statements,k):k.push(this.compileStatement(F)),d.popControlFlowLabel(g),d.breakLabel=null,d.continueLabel=null;let w=!d.isAny(272),R=d.isAny(4128),B=d.isAny(2064);R&&(k[0]=t.block(E,k),k.length=1),f==1?a.inherit(d):a.mergeBranch(d);let M=R||w;if(M){let G=e.incrementor;if(G&&(this.currentFlow=a,k.push(this.compileExpression(G,p.void,9))),k.push(t.br(T)),n.resetIfNeedsRecompile(d.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let q=t.if(c,t.flatten(k));return M&&(q=t.loop(T,q)),B&&(q=t.block(y,[q])),l.push(q),n.is(256)&&l.push(t.unreachable()),t.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let t=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return t.block(null,[t.drop(l),this.compileStatement(n)]);case 2:return s?t.block(null,[t.drop(l),this.compileStatement(s)]):t.drop(l)}let u=this.currentFlow,c=new Array,f=u.forkThen(a);this.currentFlow=f,n.kind==34?this.compileStatements(n.statements,c):c.push(this.compileStatement(n)),this.currentFlow=u;let _=u.forkElse(a);if(s){this.currentFlow=_;let d=new Array;return s.kind==34?this.compileStatements(s.statements,d):d.push(this.compileStatement(s)),u.inheritAlternatives(f,_),this.currentFlow=u,t.if(l,t.flatten(c),t.flatten(d))}else return f.isAny(272)?(u.inherit(_),u.mergeSideEffects(f)):u.inheritAlternatives(f,_),this.currentFlow=u,t.if(l,t.flatten(c))}compileReturnStatement(e){let t=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){if(this.isInlineStructType(a))return this.compileSretReturnStatement(e,a);let o=1;s.sourceFunction.is(1048576)&&(o|=4),n=this.compileExpression(l,a,o),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=26&&s.set(16384)}else if(a!=p.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,t.unreachable();if(s.set(257),s.isInline){let o=assert(s.inlineReturnLabel);return n?this.currentType==p.void?t.block(null,[n,t.br(o)]):t.br(o,0,n):t.br(o)}return n?this.currentType==p.void?t.block(null,[n,t.return()]):t.return(n):t.return()}compileSwitchStatement(e){let t=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,p.auto),l=this.currentType;if(!s)return t.drop(a);let o=this.currentFlow,c=o.getTempLocal(l).index,f=new Array(1+s);f[0]=t.local_set(c,a,l.isManaged);let _=1,d=-1,g=o.pushControlFlowLabel();for(let k=0;k<s;++k){let F=n[k];if(F.isDefault){d=k;continue}let w=e.condition,R=t.local_get(c,l.toRef()),B=l,M=F.label,q=this.compileExpression(assert(F.label),l,1),G=this.currentType,X=this.compileCommutativeCompareBinaryExpressionFromParts(77,w,R,B,M,q,G,l,e);f[_++]=t.br(`case${k}|${g}`,X)}f[_]=t.br(d>=0?`case${d}|${g}`:`break|${g}`);let y=t.block(`case0|${g}`,f,P.None),E=null,T=null;for(let k=0;k<s;++k){let w=n[k].statements,R=w.length,B=o.fork(!0,!1);E&&B.mergeBranch(E),this.currentFlow=B;let M=`break|${g}`;B.breakLabel=M;let q=k==s-1,G=q?M:`case${k+1}|${g}`,X=new Array(1+R);X[0]=y;let z=1,U=!0;for(let Y=0;Y<R;++Y){let O=this.compileStatement(w[Y]);if(re(O)!=22&&(X[z++]=O),B.isAny(272)){U=!1;break}}X.length=z,E=U?B:null;let j=B.isAny(2064);B.unset(2064),j||q&&U?T?T.inheritAlternatives(T,B):T=B:U||o.mergeSideEffects(B),this.currentFlow=o,y=t.block(G,X,P.None)}return o.popControlFlowLabel(g),d>=0?T?o.inherit(T):o.set(256):T&&o.mergeBranch(T),this.currentFlow=o,y}compileThrowStatement(e){this.currentFlow.set(264);let n=new Array,s=e.value,a=null;if(s.kind==19){let l=s.args;l.length&&(a=l[0])}return n.push(this.makeAbort(a,e)),this.module.flatten(n)}compileTryStatement(e){return this.error(100,e.range,"Exceptions"),this.module.unreachable()}compileLazyLocal(e,t,n,s){let a=this.module,l=this.resolver,o=e.name.text,u=n.expression,c=null;if(t){if(c=l.resolveType(t,s,s.sourceFunction,he(s.contextualTypeArguments)),!c)return 0;this.program.checkTypeSupported(c,t)}else{if(c=l.resolveExpression(u,s,p.auto,0),!c)return 0;if(c==p.void)return this.error(2322,e.range,c.toString(),"<auto>"),0}if(this.inlineStructFieldsOf(c)!=null)return this.error(100,e.range,"a '@lazy' binding of an @inline struct value"),0;if(s.getScopedLocal(o)!=null)return this.error(2300,e.name.range,o),0;let f=s.addScopedLocal(o,c),_=s.targetFunction.addLocal(p.bool,o+"$lazyDone",null);s.unsetLocalFlag(_.index,-1),s.setLocalFlag(f.index,8),c.isShortIntegerValue&&(s.unsetLocalFlag(f.index,-1),s.setLocalFlag(f.index,10));let d=this.lazyLocals;return d==null&&(d=new Map,this.lazyLocals=d),d.set(f,new y_(f.index,_.index,u)),a.local_set(_.index,a.i32(0),!1)}compileVariableStatement(e){let t=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let c=n[u],f=c.name.text,_=null,d=0,g=null;c.is(16384)&&this.warning(239,c.name.range);let y=c.type,E=c.initializer;if(E!=null&&E.kind==32){let F=this.compileLazyLocal(c,y,E,a);F!=0&&l.push(F);continue}if(y){if(_=o.resolveType(y,a,a.sourceFunction,he(a.contextualTypeArguments)),!_)continue;this.program.checkTypeSupported(_,y);let F=this.inlineStructFieldsOf(_);if(F!=null){this.compileSroaLocal(c,_,F,E,a,l);continue}if(E){let w=this.pendingElements,R=a.addScopedDummyLocal(f,_,e);w.add(R),d=this.compileExpression(E,_,1),g=this.currentType,w.delete(R),a.freeScopedDummyLocal(f)}}else if(E){if(E.kind==8){let R=a.lookupLocal(E.text);if(R!=null&&R.fieldLocals!=null){let B=assert(this.inlineStructFieldsOf(R.type));this.compileSroaLocal(c,R.type,B,E,a,l);continue}}let F=this.pendingElements,w=a.addScopedDummyLocal(f,p.auto,e);if(F.add(w),d=this.compileExpression(E,p.auto),g=this.currentType,F.delete(w),a.freeScopedDummyLocal(f),this.currentType==p.void){this.error(2322,c.range,this.currentType.toString(),"<auto>");continue}_=g}else{this.error(1110,c.name.range.atEnd);continue}let T=c.is(8),k=!1;if(T)if(d){let F=t.runExpression(d,1);if(F){d=F;let w=null;switch(ce(d)){case P.I32:{w=new ye(f,-1,_,a.targetFunction),w.setConstantIntegerValue(i64_new(ae(d),0),_);break}case P.I64:{w=new ye(f,-1,_,a.targetFunction),w.setConstantIntegerValue(i64_new(Be(d),Ge(d)),_);break}case P.F32:{w=new ye(f,-1,_,a.targetFunction),w.setConstantFloatValue(Ce(d),_);break}case P.F64:{w=new ye(f,-1,_,a.targetFunction),w.setConstantFloatValue(Pe(d),_);break}}if(w){let R=a.scopedLocals;if(!R)a.scopedLocals=R=new Map;else if(R.has(f)){let B=assert(R.get(f));return this.errorRelated(2300,c.name.range,B.declaration.name.range,f),this.module.unreachable()}R.set(f,w),k=!0}}}else this.error(1155,c.range);if(!k){let F=this.inlineStructFieldsOf(_);if(F!=null){this.compileSroaLocal(c,_,F,E,a,l);continue}let w;if(c.isAny(24)||a.isInline){let R=a.getScopedLocal(f);R?(R.declaration.range.source.isNative?this.error(2300,c.name.range,f):this.errorRelated(2300,c.name.range,R.declaration.name.range,f),w=R):w=a.addScopedLocal(f,_),T&&a.setLocalFlag(w.index,1)}else{let R=a.lookupLocal(f);if(R){this.errorRelated(2300,c.name.range,R.declaration.name.range,f);continue}w=a.targetFunction.addLocal(_,f,c),a.unsetLocalFlag(w.index,-1),T&&a.setLocalFlag(w.index,1)}d?l.push(this.makeLocalAssignment(w,d,g||_,!1)):w.type.isShortIntegerValue&&a.setLocalFlag(w.index,2)}}return this.currentType=p.void,l.length==0?0:t.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,p.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return t.drop(l);let u=n.forkThen(a,!0),c=u.pushControlFlowLabel(),f=`while-break|${c}`;u.breakLabel=f;let _=`while-continue|${c}`;u.continueLabel=_,this.currentFlow=u;let d=new Array,g=e.body;g.kind==34?this.compileStatements(g.statements,d):d.push(this.compileStatement(g)),d.push(t.br(_)),u.popControlFlowLabel(c);let y=u.isAny(4128),E=u.isAny(2064),T=!u.isAny(272);if((y||T)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let F=!1;if(o==1)n.inherit(u),E||(F=!0,n.set(256));else{let R=n.forkElse(a);!T&&!E?(n.inherit(R),n.mergeSideEffects(u)):n.inheritAlternatives(u,R)}this.currentFlow=n;let w=[t.loop(_,t.if(l,t.flatten(d)))];return F&&w.push(t.unreachable()),t.block(f,w)}compileInlineConstant(e,t,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&t==p.f32))return this.module.f64(e.constantFloatValue);this.currentType=p.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,t,n=0){for(;e.kind==22;)e=e.expression;this.currentType=t,t==p.void&&(n|=8);let s;switch(e.kind){case 9:{s=this.compileAssertionExpression(e,t,n);break}case 10:{s=this.compileBinaryExpression(e,t,n);break}case 11:{s=this.compileCallExpression(e,t,n);break}case 13:{s=this.compileCommaExpression(e,t,n);break}case 14:{s=this.compileElementAccessExpression(e,t,n);break}case 16:{s=this.compileFunctionExpression(e,t,n);break}case 8:case 15:case 20:case 26:case 25:case 27:{s=this.compileIdentifierExpression(e,t,n);break}case 17:{s=this.compileInstanceOfExpression(e,t,n);break}case 18:{s=this.compileLiteralExpression(e,t,n);break}case 19:{s=this.compileNewExpression(e,t,n);break}case 23:{s=this.compilePropertyAccessExpression(e,t,n);break}case 24:{s=this.compileTernaryExpression(e,t,n);break}case 29:{s=this.compileUnaryPostfixExpression(e,t,n);break}case 30:{s=this.compileUnaryPrefixExpression(e,t,n);break}case 31:{s=this.compileLoweredAwaitExpression(e);break}case 32:{let o=e;this.warning(6398,o.range),s=this.compileExpression(o.expression,t,n);break}case 33:{let o=e;s=o.expr,this.currentType=o.type;break}case 12:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=t.nonNullableType&&(n&2?(s=this.convertExpression(s,a,t,!0,e),this.currentType=a=t):n&1&&(s=this.convertExpression(s,a,t,!1,e),this.currentType=a=t)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,t,n,s,a){let l=this.module;if(t.kind==26)return n.kind==26?e:(this.error(2322,a.range,t.toString(),n.toString()),l.unreachable());if(n.kind==26)return l.drop(e);if(t.isReference||n.isReference)return this.currentFlow.isNonnull(e,t)?t=t.nonNullableType:s&&t.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,t,a)),t=t.nonNullableType),t.isAssignableTo(n)?(assert(n.isExternalReference||t.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(t)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(t.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,t,n,a)),this.currentType=n,e):(this.error(2322,a.range,t.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!t.isReference&&!n.isReference),n.kind==t.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||t.isVectorValue))return this.error(2322,a.range,t.toString(),n.toString()),l.unreachable();if(t.isAssignableTo(n)||s||this.error(200,a.range,t.toString(),n.toString()),t.isFloatValue)if(n.isFloatValue)t.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(t.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(t.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,t);let o;n.kind==11?t.isLongIntegerValue?t.isSignedIntegerValue?o=39:o=41:t.isSignedIntegerValue?o=35:o=37:t.isLongIntegerValue?t.isSignedIntegerValue?o=40:o=42:t.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else t==p.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,p.v128,a):t.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(t.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,t)):t.isShortIntegerValue?t.size<n.size&&(e=this.ensureSmallIntegerWrap(e,t)):!s&&!this.options.isWasm64&&t.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,t.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,t,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,he(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,t.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,t){let n=e.left,s=this.compileExpression(n,t),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,t,e)}compileCommutativeCompareBinaryExpressionFromParts(e,t,n,s,a,l,o,u,c){let f=this.module,_=Le(e),d=Me.fromBinaryToken(e),g=s.lookupOverload(d,this.program),y=o.lookupOverload(d,this.program);if(g&&y&&g!=y)return this.error(240,c.range,_,g.internalName,y.internalName),this.currentType=u,f.unreachable();if(g)return this.compileCommutativeBinaryOverload(g,t,n,s,a,l,o,c);if(y)return this.compileCommutativeBinaryOverload(y,a,l,o,t,n,s,c);let T=p.commonType(s,o,u,!1);if(!T)return this.error(2365,c.range,_,s.toString(),o.toString()),this.currentType=u,f.unreachable();switch(T.isFloatValue&&((Lo(f,l)||Lo(f,n))&&this.warning(907,c.range),(No(l)||No(n))&&this.warning(908,c.range)),n=this.convertExpression(n,s,T,!1,t),s=T,l=this.convertExpression(l,o,T,!1,a),o=T,this.currentType=p.bool,e){case 79:case 77:return this.makeEq(n,l,T,c);case 80:case 78:return this.makeNe(n,l,T,c);default:return assert(!1),f.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,t){let n=this.module,s=e.left,a=e.right,l,o,u,c,f,_=e.operator,d=Le(_);l=this.compileExpression(s,t),o=this.currentType;let g=Me.fromBinaryToken(_),y=o.lookupOverload(g,this.program);if(y)return this.compileBinaryOverload(y,s,l,o,a,e);if(u=this.compileExpression(a,o),c=this.currentType,f=p.commonType(o,c,t,!0),!f||!f.isNumericValue)return this.error(2365,e.range,d,o.toString(),c.toString()),this.currentType=t,n.unreachable();switch(l=this.convertExpression(l,o,f,!1,s),o=f,u=this.convertExpression(u,c,f,!1,a),c=f,this.currentType=p.bool,_){case 73:return this.makeLt(l,u,f);case 74:return this.makeGt(l,u,f);case 75:return this.makeLe(l,u,f);case 76:return this.makeGe(l,u,f);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,t,n){let s=this.module,a=e.left,l=e.right,o,u,c,f,_,d,g=!1;switch(e.operator){case 73:case 74:case 75:case 76:return this.compileNonCommutativeCompareBinaryExpression(e,t);case 79:case 77:case 80:case 78:return this.compileCommutativeCompareBinaryExpression(e,t);case 102:return this.compileAssignment(a,l,t);case 103:g=!0;case 82:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(5);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"+",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeAdd(o,c,_);break}case 104:g=!0;case 83:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(6);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"-",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeSub(o,c,_);break}case 105:g=!0;case 85:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(7);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"*",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeMul(o,c,_);break}case 106:g=!0;case 84:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(10);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"**",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makePow(o,c,_,e);break}case 107:g=!0;case 86:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(8);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"/",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeDiv(o,c,_);break}case 108:g=!0;case 87:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(9);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"%",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeRem(o,c,_,e);break}case 109:g=!0;case 90:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(14);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShl(o,c,f);break}case 110:g=!0;case 91:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(15);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShr(o,c,f);break}case 111:g=!0;case 92:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(16);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShru(o,c,f);break}case 112:g=!0;case 93:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(11);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeAnd(o,c,_);break}case 113:g=!0;case 94:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(12);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeOr(o,c,_);break}case 114:g=!0;case 95:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(13);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeXor(o,c,_);break}case 98:{let F=this.currentFlow,w=n&4;o=this.compileExpression(a,t.exceptVoid,w),u=this.currentType;let R=F.forkThen(o);if(this.currentFlow=R,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,a);let B=this.evaluateCondition(o);B==2?d=o:(c=this.compileExpression(l,u,w),f=this.currentType,c=this.makeIsTrueish(c,f,l),B==1?(d=c,F.inherit(R)):(d=s.if(o,c,s.i32(0)),F.mergeBranch(R),F.noteThen(d,R))),this.currentFlow=F,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,w),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"&&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_;let B=s.runExpression(o,1);B&&(o=B),c=this.convertExpression(c,f,_,!1,l),f=_;let M=this.makeIsTrueish(o,this.currentType,a),q=this.evaluateCondition(M);if(q!=0)d=q==1?c:o;else if(d=s.tryCopyTrivialExpression(o))d=s.if(M,c,d);else{let G=F.getTempLocal(u);F.canOverflow(o,u)||F.setLocalFlag(G.index,2),F.isNonnull(o,u)&&F.setLocalFlag(G.index,4),d=s.if(this.makeIsTrueish(s.local_tee(G.index,o,u.isManaged),u,a),c,s.local_get(G.index,u.toRef()))}F.mergeBranch(R),F.noteThen(d,R),this.currentFlow=F,this.currentType=_}break}case 99:{let F=this.currentFlow,w=n&4;o=this.compileExpression(a,t.exceptVoid,w),u=this.currentType;let R=F.forkElse(o);if(this.currentFlow=R,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,a);let B=this.evaluateCondition(o);B==1?d=o:(c=this.compileExpression(l,u,w),f=this.currentType,c=this.makeIsTrueish(c,f,l),B==2?(d=c,F.inherit(R)):(d=s.if(o,s.i32(1),c),F.mergeBranch(R),F.noteElse(d,R))),this.currentFlow=F,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,w),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"||",u.toString(),f.toString()),this.currentType=t,s.unreachable();let B=u.is(512)&&f.is(512);o=this.convertExpression(o,u,_,!1,a),u=_;let M=s.runExpression(o,1);M&&(o=M),c=this.convertExpression(c,f,_,!1,l),f=_;let q=this.makeIsTrueish(o,this.currentType,a),G=this.evaluateCondition(q);if(G!=0)d=G==1?o:c;else if(d=s.tryCopyTrivialExpression(o))d=s.if(q,d,c);else{let z=F.getTempLocal(u).index;F.canOverflow(o,u)||F.setLocalFlag(z,2),F.isNonnull(o,u)&&F.setLocalFlag(z,4),d=s.if(this.makeIsTrueish(s.local_tee(z,o,u.isManaged),u,a),s.local_get(z,u.toRef()),c)}F.mergeBranch(R),F.noteElse(d,R),this.currentFlow=F,this.currentType=B?_:_.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=p.bool,s.unreachable();default:{assert(!1),d=this.module.unreachable();break}}if(!g)return d;let E=this.resolver;if(a.kind==14){let F=a,w=E.resolveExpression(F.expression,this.currentFlow);if(w&&w.kind==14)return this.compileFixedArrayElementAccess(F,w,!0,t,0,null,d)}let T=E.lookupExpression(a,this.currentFlow);if(!T)return s.unreachable();let k=E.getTypeOfElement(T);return k||(k=p.void),this.currentType.isStrictlyAssignableTo(k)?this.makeAssignment(T,d,this.currentType,l,E.currentThisExpression,E.currentElementExpression,t!=p.void):(this.error(2322,e.range,this.currentType.toString(),k.toString()),s.unreachable())}makeLt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(17,e,t);case 4:return s.binary(42,e,t);case 5:return s.binary(234,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(18,e,t);case 9:return s.binary(43,e,t);case 10:return s.binary(235,e,t);case 11:return s.binary(59,e,t);case 12:return s.binary(72,e,t)}return assert(!1),s.unreachable()}makeGt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(21,e,t);case 4:return s.binary(46,e,t);case 5:return s.binary(238,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(22,e,t);case 9:return s.binary(47,e,t);case 10:return s.binary(239,e,t);case 11:return s.binary(61,e,t);case 12:return s.binary(74,e,t)}return assert(!1),s.unreachable()}makeLe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(19,e,t);case 4:return s.binary(44,e,t);case 5:return s.binary(236,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(20,e,t);case 9:return s.binary(45,e,t);case 10:return s.binary(237,e,t);case 11:return s.binary(60,e,t);case 12:return s.binary(73,e,t)}return assert(!1),s.unreachable()}makeGe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(23,e,t);case 4:return s.binary(48,e,t);case 5:return s.binary(240,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(24,e,t);case 9:return s.binary(49,e,t);case 10:return s.binary(241,e,t);case 11:return s.binary(62,e,t);case 12:return s.binary(75,e,t)}return assert(!1),s.unreachable()}makeEq(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(15,e,t);case 4:case 9:return a.binary(40,e,t);case 5:case 10:return a.binary(232,e,t);case 11:return a.binary(57,e,t);case 12:return a.binary(70,e,t);case 13:return a.unary(70,a.binary(76,e,t));case 18:case 19:case 20:case 21:return a.ref_eq(e,t);case 22:return a.string_eq(e,t);case 23:case 24:case 25:case 16:case 15:case 17:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(16,e,t);case 4:case 9:return a.binary(41,e,t);case 5:case 10:return a.binary(233,e,t);case 11:return a.binary(58,e,t);case 12:return a.binary(71,e,t);case 13:return a.unary(67,a.binary(77,e,t));case 18:case 19:case 20:case 21:return a.unary(20,a.ref_eq(e,t));case 22:return a.unary(20,a.string_eq(e,t));case 23:case 24:case 25:case 16:case 15:case 17:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,t);case 4:case 9:return s.binary(25,e,t);case 5:case 10:return s.binary(217,e,t);case 11:return s.binary(50,e,t);case 12:return s.binary(63,e,t)}return assert(!1),s.unreachable()}makeSub(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,t);case 4:case 9:return s.binary(26,e,t);case 5:case 10:return s.binary(218,e,t);case 11:return s.binary(51,e,t);case 12:return s.binary(64,e,t)}return assert(!1),s.unreachable()}makeMul(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,t);case 4:case 9:return s.binary(27,e,t);case 5:case 10:return s.binary(219,e,t);case 11:return s.binary(52,e,t);case 12:return s.binary(65,e,t)}return assert(!1),s.unreachable()}makePow(e,t,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,t,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let u=ae(e),c=ae(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(N.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,t],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=i64_new(Be(e),Ge(e)),u=i64_new(Be(t),Ge(t)),c=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(c),i64_high(c))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(N.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&re(e)==14&&re(t)==14)if(l){let u=i64_new(Be(e),Ge(e)),c=i64_new(Be(t),Ge(t)),f=i64_pow(u,c);return this.currentType=n,a.i64(i64_low(f),i64_high(f))}else{let u=ae(e),c=ae(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?N.ipow64:N.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,t],s)}case 11:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Ce(e),u=Ce(t);return this.currentType=n,a.f32(f32(ll(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(N.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(N.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Pe(e),u=Pe(t);return this.currentType=n,a.f64(ll(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(N.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(N.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeDiv(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(3,e,t);case 4:return s.binary(28,e,t);case 5:return s.binary(220,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(4,e,t);case 9:return s.binary(29,e,t);case 10:return s.binary(221,e,t);case 11:return s.binary(53,e,t);case 12:return s.binary(66,e,t)}return assert(!1),s.unreachable()}makeRem(e,t,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return a.binary(5,e,t);case 4:return a.binary(30,e,t);case 5:return a.binary(222,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return a.binary(6,e,t);case 9:return a.binary(31,e,t);case 10:return a.binary(223,e,t);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(N.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(N.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(N.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(N.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeShl(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,t);case 4:case 9:return s.binary(35,e,t);case 5:case 10:return s.binary(227,e,t)}return assert(!1),s.unreachable()}makeShr(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:return s.binary(11,e,t);case 4:return s.binary(36,e,t);case 5:return s.binary(228,e,t);case 8:return s.binary(12,e,t);case 9:return s.binary(37,e,t);case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeShru(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,t);case 4:case 9:return s.binary(37,e,t);case 5:case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeAnd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,t);case 4:case 9:return s.binary(32,e,t);case 5:case 10:return s.binary(224,e,t)}return assert(!1),s.unreachable()}makeOr(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,t);case 3:case 8:return s.binary(8,e,t);case 4:case 9:return s.binary(33,e,t);case 5:case 10:return s.binary(225,e,t)}return assert(!1),s.unreachable()}makeXor(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,t);case 3:case 8:return s.binary(9,e,t);case 4:case 9:return s.binary(34,e,t);case 5:case 10:return s.binary(226,e,t)}return assert(!1),s.unreachable()}compileUnaryOverload(e,t,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,t,n,s,a,l){let o,u=e.signature,c=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,t),o=c[0]):(n=this.convertExpression(n,s,c[0],!1,t),o=c[1]);let f=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,f],l)}compileCommutativeBinaryOverload(e,t,n,s,a,l,o,u){let c=e.signature,f=c.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(c.thisType),!1,t),l=this.convertExpression(l,o,f[0],!1,a)):(n=this.convertExpression(n,s,f[0],!1,t),l=this.convertExpression(l,o,f[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,t,n){let a=this.program.resolver,l=this.currentFlow;if(e.kind==14){let g=e,y=a.resolveExpression(g.expression,l);if(y&&y.kind==14)return this.compileFixedArrayElementAccess(g,y,!0,n,0,t)}{let g=this.resolveSroaReceiver(e),y=this.resolveSroaReceiver(t);if(g!=null&&y!=null){if(!assert(g.type).equals(assert(y.type)))return this.error(2322,t.range,y.type.toString(),g.type.toString()),this.module.unreachable();let E=new Array;return this.copySroaValue(assert(y.fieldLocals),assert(g.fieldLocals),E),this.currentType=p.void,this.module.flatten(E)}}let o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,c=a.currentElementExpression,f;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();f=o.type,o.hasDecorator(8192)&&this.checkUnsafe(e);break}case 10:{let g=o,y=a.resolveProperty(g);if(!y)return this.module.unreachable();o=y}case 11:{let g=o;if(g.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let y=g.setterInstance;if(!y)return this.error(2540,e.range,g.internalName),this.module.unreachable();assert(y.signature.parameterTypes.length==1),f=y.signature.parameterTypes[0],y.hasDecorator(8192)&&this.checkUnsafe(e);break}case 15:{let g=o.parent;assert(g.kind==7);let y=g,E=l.is(32768),T=y.lookupOverload(2,E);if(!T)return y.lookupOverload(1,E)?this.error(2542,e.range,y.internalName):this.error(2329,e.range,y.internalName),this.module.unreachable();let k=T.signature.parameterTypes;assert(k.length==2),f=k[1],T.hasDecorator(8192)&&this.checkUnsafe(e),!E&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(f!=p.void);let _=this.compileExpression(t,f),d=this.currentType;return f.isNullableReference&&this.currentFlow.isNonnull(_,d)&&(f=f.nonNullableType),this.makeAssignment(o,this.convertExpression(_,d,f,!1,t),f,t,u,c,n!=p.void)}makeAssignment(e,t,n,s,a,l,o){let u=this.module,c=this.currentFlow;switch(e.kind){case 1:{let f=e;return c.isLocalFlag(f.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeLocalAssignment(f,t,n,o)}case 0:{let f=e;return this.compileGlobalLazy(f,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeGlobalAssignment(f,t,n,o):u.unreachable()}case 10:{let f=this.resolver.resolveProperty(e);if(!f)return u.unreachable();e=f}case 11:{let f=e;if(a!=null){let d=this.resolveSroaReceiver(a);if(d!=null){let g=assert(d.fieldLocals);if(!g.has(f.name))return this.error(100,s.range,"assigning to a refused field of an @inline struct (the field was refused at declaration)"),u.unreachable();let y=assert(g.get(f.name));if(y.index<0)return this.error(100,s.range,"assigning a nested @inline struct value as a whole (the field is several leaves, not one value; assign one of its fields)"),u.unreachable();let E=u.local_set(y.index,t,!1);return this.currentType=o?y.type:p.void,E}}if(f.isField&&this.isInlineStructType(f.type))return this.error(100,s.range,"assigning a whole value to an @inline struct field (the value has no address, so there is nothing to store; assign the field's own fields, e.g. `w.inner.a = ...`)"),this.currentType=o?f.type:p.void,u.unreachable();if(f.isField){let d=c.sourceFunction.is(524288);if(f.is(64)){let g=f.initializerNode;if(!d||g)return this.error(2540,s.range,f.internalName),u.unreachable()}a=assert(a),d&&a.kind==26&&c.setThisFieldFlag(f,1)}let _=f.setterInstance;if(!_)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(_.signature.parameterTypes.length==1),assert(_.signature.returnType==p.void),f.is(262144)){let d=assert(_.signature.thisType),g=this.compileExpression(assert(a),d,33);if(!o)return this.makeCallDirect(_,[g,t],s);let y=c.getTempLocal(n),E=n.toRef(),T=u.block(null,[this.makeCallDirect(_,[g,u.local_tee(y.index,t,n.isManaged,E)],s),u.local_get(y.index,E)],E);return this.currentType=n,T}else{if(!o)return this.makeCallDirect(_,[t],s);let d=c.getTempLocal(n),g=n.toRef(),y=u.block(null,[this.makeCallDirect(_,[u.local_tee(d.index,t,n.isManaged,g)],s),u.local_get(d.index,g)],g);return this.currentType=n,y}}case 15:{let _=e.parent;assert(_.kind==7);let d=_;assert(d.kind==7);let g=c.is(32768),y=d.lookupOverload(1,g);if(!y)return this.error(2329,s.range,d.internalName),u.unreachable();let E=d.lookupOverload(2,g);if(!E)return this.error(2542,s.range,d.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();assert(E.signature.parameterTypes.length==2);let T=d.type,k=this.compileExpression(assert(a),T,33),F=E.signature.parameterTypes[0],w=y.signature.parameterTypes[0];if(!F.equals(w))return this.errorRelated(237,y.identifierAndSignatureRange,E.identifierAndSignatureRange,d.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();let R=this.compileExpression(assert(l),F,1),B=this.currentType;if(o){let M=c.getTempLocal(T),q=c.getTempLocal(B),G=y.signature.returnType;return u.block(null,[this.makeCallDirect(E,[u.local_tee(M.index,k,T.isManaged),u.local_tee(q.index,R,B.isManaged),t],s),this.makeCallDirect(y,[u.local_get(M.index,M.type.toRef()),u.local_get(q.index,q.type.toRef())],s)],G.toRef())}else return this.makeCallDirect(E,[k,R,t],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,t,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=p.void);let u=e.index;return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),s?(this.currentType=o,a.local_tee(u,t,o.isManaged)):(this.currentType=p.void,a.local_set(u,t,o.isManaged))}makeGlobalAssignment(e,t,n,s){let a=this.module,l=e.type;assert(l!=p.void);let o=l.toRef();return t=this.ensureSmallIntegerWrap(t,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,t),a.global_get(e.internalName,o)],o)):(this.currentType=p.void,a.global_set(e.internalName,t))}checkNoManagedStructCopy(e,t){if(!e.prototype.internalName.startsWith(N.COPY_STRUCT))return!0;let n=e.typeArguments;if(!n)return!0;for(let s=0,a=n.length;s<a;++s){let l=unchecked(n[s]).classReference;if(l!=null&&l.hasDecorator(2048)){let o=t.typeArguments;return this.error(100,o&&o.length>s?unchecked(o[s]).range:t.range,"COPY_STRUCT on an @managed struct (a raw byte copy bypasses the GC write barrier)"),!1}}return!0}compileCallExpression(e,t,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==25){let f=this.currentFlow,_=f.sourceFunction;if(!_.is(524288))return this.error(2337,e.range),s.unreachable();let d=assert(_.parent);assert(d.kind==7);let g=d,y=g.base;if(!y||g.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let E=assert(f.lookupLocal(N.this_)),T=this.options.sizeTypeRef,k=this.ensureConstructor(y,e);this.checkFieldInitialization(y,e);let F=this.compileCallDirect(k,e.args,e,s.local_get(E.index,T));return f.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(f.set(192),this.currentType=p.void,s.local_set(E.index,F,g.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let f=l;if(f.hasDecorator(512))return this.compileCallExpressionBuiltin(f,e,t);let _=this.resolver.maybeInferCall(e,f,a);if(!_)return this.module.unreachable();if(!this.checkNoManagedStructCopy(_,e))return this.module.unreachable();l=_}case 5:{let f=l;if(!this.checkNoManagedStructCopy(f,e))return this.module.unreachable();let _=0;return f.is(262144)&&(_=this.compileExpression(assert(o),assert(f.signature.thisType),33)),this.compileCallDirect(f,e.args,e,_,n)}}let u=this.compileExpression(e.expression,p.auto),c=this.currentType.getSignature();if(c)return this.compileCallIndirect(c,u,e.args,e,0,t==p.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let f=l.getterPrototype;f&&this.infoRelated(6234,e.range,f.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,t,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=t,o.args=n,o.range=s):this._reusableCallExpression=o=h.createCallExpression(e,t,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,t,n){e.hasDecorator(8192)&&this.checkUnsafe(t);let s=null,a=e.typeParameterNodes,l=t.typeArguments;if(t.typeArguments){e.is(65536)||this.error(2315,t.range,e.internalName);let _=e.internalName==m.changetype;_&&(this.resolver.allowInlineView=!0),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,he(this.currentFlow.contextualTypeArguments),t),_&&(this.resolver.allowInlineView=!1,s!=null&&s.length==1&&l!=null&&l.length==1&&l[0].memoryModel==3&&this.resolver.markViewCall(t))}let o=t.expression,u=new tu(this,e,s,t.args,o.kind==23?o.expression:null,n,t,!1),c;return e.is(262144)?c=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:c=e.internalName,assert(x.has(c)),assert(x.get(c))(u)}checkCallSignature(e,t,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return t<o?(this.error(o<u?2555:2554,s.range,o.toString(),t.toString()),!1):t>u&&!l?(this.error(2554,s.range,u.toString(),t.toString()),!1):!0}checkUnsafe(e,t=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(t?this.errorRelated(101,e.range,t.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,t,n){if(!t.hasRest)return e;let s=e.length,a=t.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new ue(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Yr(l,o),c=e.slice(0,a-1);return c.push(u),c}compileCallDirect(e,t,n,s=0,a=0){let l=t.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(8192)&&this.checkUnsafe(n);let u=0;o.hasHiddenDestParam&&(u=this.sretDestSlot,this.sretDestSlot=0),t=this.adjustArgumentsForRestParams(t,o,n),l=t.length;let c=this.currentFlow.sourceFunction;if(c.is(524288)&&n.isAccessOnThis){let M=c.parent;assert(M.kind==7),this.checkFieldInitialization(M,n)}let f=e.hasDecorator(64)||this.currentFlow.is(131072);if(!o.hasHiddenDestParam&&f&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let M=this.inlineStack;if(M.includes(e))this.warning(217,n.range,e.internalName);else{let q=o.parameterTypes;assert(l<=q.length);let G=new Array(l);for(let z=0;z<l;++z)G[z]=this.compileExpression(t[z],q[z],1);M.push(e);let X=this.makeCallInline(e,G,s,(a&8)!=0);return M.pop(),X}}let _=o.parameterTypes,d=0;for(let M=0;M<l;++M)d+=o.wasmParamSlotCountOf(M);let g=s?d+1:d,y=o.hasHiddenDestParam;if(this.sretDiscardMark=null,y&&u==0){let M=this.ensureSretStack(),q=this.currentFlow.getTempLocal(p.u32);this.sretDiscardMark=q,u=this.module.binary(0,this.module.i32(M),this.module.local_get(q.index,P.I32))}let E=g+(y?1:0),T=new Array(E),k=0;s&&(T[0]=s,k=1),y&&(T[k++]=u),this.externalTempMark=null,this.externalTempSize=0;let F=0,w=null,R=0,B=0;if(o.byValPointerParams){let M=0;for(let q=0;q<l;++q)o.isByValPointerParam(q)&&(M+=this.sretSizeOf(unchecked(_[q])));M>0&&(F=this.ensureSretStack(),w=this.currentFlow.getTempLocal(p.u32),B=M)}for(let M=0;M<l;++M){let q=unchecked(_[M]);this.rootNextOperand=!1,w!=null&&o.isByValPointerParam(M)?(T[k++]=this.makeExternalTempArgument(unchecked(t[M]),q,F,assert(w),R),R+=this.sretSizeOf(q)):o.isViewParam(M)?unchecked(T[k++]=this.compileExpression(unchecked(t[M]),q,1)):k+=this.expandSroaArgument(unchecked(t[M]),q,T,k),this.rootNextOperand&&(this.rootNextOperand=!1,o.isByValPointerParam(M)||unchecked(T[k-1]=this.module.tostack(unchecked(T[k-1]))))}return assert(k==E),this.externalTempMark=w,this.externalTempSize=B,this.makeCallDirect(e,T,n,(a&8)!=0)}makeCallInline(e,t,n=0,s=!1){let a=this.module,l=t?t.length:0,u=e.signature.parameterTypes,c=u.length,f=this.currentFlow,_=Jt.createInline(f.targetFunction,e),d=[];if(n){let E=assert(e.parent);assert(E.kind==7);let T=E,k=assert(e.signature.thisType),F=_.addScopedLocal(N.this_,k);d.push(a.local_set(F.index,n,k.isManaged)),_.setLocalFlag(F.index,8);let w=T.base;w&&_.addScopedAlias(N.super_,w.type,F.index)}else assert(!e.signature.thisType);for(let E=0;E<l;++E){let T=t[E],k=u[E],F=_.addScopedLocal(e.getParameterName(E),k);f.canOverflow(T,k)||_.setLocalFlag(F.index,2),_.isNonnull(T,k)&&_.setLocalFlag(F.index,4),d.push(a.local_set(F.index,T,k.isManaged)),_.setLocalFlag(F.index,8)}this.currentFlow=_;let g=e.is(524288);g&&_.set(65536);for(let E=l;E<c;++E){let T=u[E],k=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[E].initializer),T,1),F=_.addScopedLocal(e.getParameterName(E),T);d.push(this.makeLocalAssignment(F,k,T,!1))}if(_.unset(65536),this.compileFunctionBody(e,d),g){let E=e.parent;assert(E.kind==7),this.checkFieldInitializationInFlow(E,_)}let y=_.returnType;return this.currentFlow=f,this.currentType=y,a.block(_.inlineReturnLabel,d,this.resultRefOf(y))}ensureArgumentsLength(){let e=m.argumentsLength;if(!this.builtinArgumentsLength){let t=this.module;this.builtinArgumentsLength=t.addGlobal(e,P.I32,!0,t.i32(0))}return e}ensureEnvGlobal(){let e=m.env;if(!this.builtinEnv){let t=this.module,n=this.options.sizeTypeRef;this.builtinEnv=t.addGlobal(e,n,!0,n==P.I64?t.i64(0):t.i32(0))}return e}ensureVarargsStub(e){let t=e.varargsStub;if(t)return t;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,c=u,f=s.length,_=f;o&&(++c,++_);let d=assert(_-c),g=new Array(c),y=0,E=new Array,T=this.module,k=n.thisType;k&&(g[0]=T.local_get(0,k.toRef()),y=1);for(let z=0;z<u;++z,++y){let U=s[z];g[y]=T.local_get(y,U.toRef())}assert(y==c),t=e.newStub("varargs",f),e.varargsStub=t;let F=this.currentFlow,w=t.flow;e.is(524288)&&w.set(65536),this.currentFlow=w;let R=d+1,B=new Array(R),M=`of${d}`;for(let z=0;z<R;++z)B[z]=`${z}${M}`;let q=this.ensureArgumentsLength(),G=T.block(B[0],[T.block("outOfRange",[T.switch(B,"outOfRange",u?T.binary(1,T.global_get(q,P.I32),T.i32(u)):T.global_get(q,P.I32))]),T.unreachable()]);for(let z=0;z<d;++z,++y){let U=s[u+z],j=a[u+z],Y=j.initializer,O;if(j.parameterKind===2){let ie=new Yr([],j.range.atEnd);O=this.compileArrayLiteral(ie,U,2),O=T.local_set(y,O,U.isManaged)}else Y?(O=this.compileExpression(Y,U,1),O=T.local_set(y,O,U.isManaged)):(this.error(215,j.range),O=T.unreachable());G=T.block(B[z+1],[G,O]),g[y]=T.local_get(y,U.toRef())}assert(y==_),E.push(G),E.push(this.makeCallDirect(e,g,e.declaration.name)),this.currentFlow=F;let X=T.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,an(t.getNonParameterLocalTypes()),T.flatten(E,l.toRef()));return t.set(8388608),t.finalize(T,X),t}ensureOverrideStub(e){let t=e.overrideStub;if(t)return t;t=e.newStub("override"),e.overrideStub=t;let n=this.module;return t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),t}finalizeOverrideStub(e){let t=this.ensureOverrideStub(e);if(t.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,c=1+assert(e.signature).wasmParamCount(),f=new ys(this.module,n.load(4,!1,n.binary(a==P.I64?26:1,n.local_get(0,a),a==P.I64?n.i64(8):n.i32(8)),P.I32)),_=this.resolver.resolveOverrides(e);if(_){let E=new Map;for(let T=0,k=_.length;T<k;++T){let F=_[T];if(!F.is(8388608))continue;let w=F.signature,R=e.signature;if(!w.isAssignableTo(R,!0)){this.error(2322,F.identifierNode.range,w.toString(),R.toString());continue}let B=w.parameterTypes,M=B.length,q=new Array(1+M);q[0]=n.local_get(0,a);for(let O=1;O<=u;++O)q[O]=n.local_get(O,l[O-1].toRef());let G=!1;for(let O=u;O<M;++O)q[1+O]=this.makeZero(B[O]),G=!0;let X=G?this.ensureVarargsStub(F).internalName:F.internalName,z=w.returnType.toRef(),U=new Array;G&&U.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==p.void?(U.push(n.call(X,q,z)),U.push(n.return())):U.push(n.return(n.call(X,q,z)));let j=assert(F.getBoundClassOrInterface());f.addCase(j.id,U);let Y=j.extenders;if(Y)for(let O=Set_values(Y),ie=0,H=O.length;ie<H;++ie){let ge=O[ie],oe=ge.prototype.instanceMembers;oe&&oe.has(e.declaration.name.text)||(!E.has(ge)||!assert(E.get(ge)).extends(j))&&(E.set(ge,j),f.addOrReplaceCase(ge.id,U))}}}let d,g=e.getBoundClassOrInterface();if(!e.is(128)&&!(g&&g.kind==9)){let E=new Array(u);E[0]=n.local_get(0,a);for(let T=0,k=l.length;T<k;++T)E[1+T]=n.local_get(1+T,l[T].toRef());d=n.call(e.internalName,E,o.toRef())}else d=n.unreachable();t.ref&&n.removeFunction(t.internalName),t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,[P.I32],n.block(null,[f.render(c),d],o.toRef())),t.set(8388608)}needToStack(e){let t=this.module.runExpression(e,0);if(t==0)return!0;let n=pf(t,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,t){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let c=t[0];this.needToStack(c)&&(t[s]=n.tostack(c))}++s}let l=e.parameterTypes,o=e.wasmParamCount(),u=0;for(;s<t.length&&!(u>=o);){let c=e.sourceIndexOf(u);if(c<0){++s,++u;continue}if(unchecked(l[c]).isManaged&&!e.isByValPointerParam(c)){let _=t[s];this.needToStack(_)&&(t[s]=n.tostack(_))}++s,++u}}checkCallArity(e,t,n){let s=e.signature,a=s.wasmParamCount()+(s.thisType?1:0),l=t?t.length:0;if(l==a)return!0;let o=this.diagnostics;for(let u=0,c=o.length;u<c;++u)if(o[u].category==3)return!0;return this.error(6412,n.range,e.internalName,l.toString(),a.toString()),!1}makeCallDirect(e,t,n,s=!1){let a=this.sretDiscardMark;this.sretDiscardMark=null;let l=this.externalTempMark,o=this.externalTempSize;if(this.externalTempMark=null,this.externalTempSize=0,e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let F=this.inlineStack;if(F.includes(e))this.warning(217,n.range,e.internalName);else{F.push(e);let w;if(e.is(262144)){let R=assert(t);assert(R.length),w=this.makeCallInline(e,R.slice(1),R[0],s)}else w=this.makeCallInline(e,t,0,s);return F.pop(),w}}let u=this.module,c=t?t.length:0,f=c,d=e.signature.requiredParameters,g=e.signature.parameterTypes,y=g.length,E=y;if(e.is(262144)&&(++d,++E,--f),e.signature.hasHiddenDestParam&&(++d,++E,--f),assert(c>=d),!this.compileFunction(e))return u.unreachable();let T=e.signature.returnType;if(c<E){t||(t=new Array(E),t.length=0);let F=e.prototype.functionTypeNode.parameters;assert(F.length==g.length);let w=!0;for(let R=f;R<y;++R){let B=F[R].initializer;if(B){if(B.compilesToConst){t.push(this.compileExpression(B,g[R],1));continue}let M=this.resolver.lookupExpression(B,e.flow,g[R],1);if(M&&M.kind==0){let q=M;if(this.compileGlobalLazy(q,B)&&q.is(33554432)){t.push(this.compileInlineConstant(q,g[R],1));continue}}}t.push(this.makeZero(g[R])),w=!1}if(!w&&!e.is(2097152)){let R=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return u.unreachable();e.flow.flags=R.flow.flags;let B=e.signature.resultRefs,M=t[E-1];assert(!(ks(M,u.ref)&32));let q=g[y-1];if(t[E-1]=u.block(null,[u.global_set(this.ensureArgumentsLength(),u.i32(f)),M],q.toRef()),!this.checkCallArity(e,t,n))return u.unreachable();this.operandsTostack(e.signature,t);let G=u.call(e.internalName,t,B);return B!=P.None&&s?(G=u.drop(G),this.currentType=p.void):this.currentType=T,a!=null&&(G=this.wrapSretCall(assert(a),G,T,n),this.currentType=s?p.void:T),G}}if(e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),!this.checkCallArity(e,t,n))return u.unreachable();t&&this.operandsTostack(e.signature,t);let k=u.call(e.internalName,t,e.signature.resultRefs);return this.currentType=T,a!=null&&(k=this.wrapSretCall(assert(a),k,T,n),this.currentType=s?p.void:T),l!=null&&(k=this.wrapExternalTempCall(assert(l),o,k,T,n),this.currentType=s?p.void:T),k}compileCallIndirect(e,t,n,s,a=0,l=!1){let o=n.length;if(e.hasHiddenDestParam)return this.error(100,s.range,"calling an @inline struct-returning function through a function value (the hidden destination parameter needs a direct call)"),this.currentType=e.returnType,this.module.unreachable();if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,c=new Array(u),f=0;a&&(c[0]=a,f=1);let _=e.parameterTypes;for(let d=0;d<o;++d,++f)c[f]=this.compileExpression(n[d],_[d],1);return assert(f==u),this.makeCallIndirect(e,t,s,c,l)}makeCallIndirect(e,t,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,f=e.requiredParameters,_=e.parameterTypes,d=e.returnType,g=_.length,y=g;if(e.thisType&&(++f,++y,--u),assert(o>=f),o<y){s||(s=new Array(y),s.length=0);let U=e.parameterTypes;for(let j=u;j<g;++j)s.push(this.makeZero(U[j]))}let E=new Array,T=this.options.sizeTypeRef,k=this.currentFlow.getTempLocal(this.options.usizeType),F=this.ensureEnvGlobal(),w=this.options.usizeType.byteSize,R=this.options.usizeType.byteSize,B=this.currentFlow.getTempLocal(this.options.usizeType);E.push(l.local_set(B.index,l.global_get(F,T),!1)),E.push(l.global_set(F,l.load(R,!1,l.local_tee(k.index,t,!0),T,w))),t=l.local_get(k.index,T);let M=this.ensureArgumentsLength(),q=l.block(null,[l.global_set(M,l.i32(u)),l.load(4,!1,t,P.I32,lu)],T);s&&this.operandsTostack(e,s);let G=l.call_indirect(null,q,s,e.paramRefs,e.resultRefs);this.currentType=d;let X=l.global_set(F,l.local_get(B.index,T));if(d==p.void)return E.push(G),E.push(X),l.flatten(E,P.None);let z=this.currentFlow.getTempLocal(d);return E.push(l.local_set(z.index,G,d.isManaged)),E.push(X),E.push(l.local_get(z.index,d.toRef())),l.flatten(E,d.toRef())}compileCommaExpression(e,t,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],p.void,9);return l[a]=this.compileExpression(s[a],t,n),this.module.flatten(l,this.currentType.toRef())}compileFixedArrayElementAccess(e,t,n,s,a,l=null,o=0){let u=this.module,c=t.fixedArrayElementType,f=c.byteSize,_=this.compileFixedArrayElementAddress(e,t);if(n){let d=o||this.compileExpression(assert(l),c,1);if(s==p.void)return this.currentType=p.void,u.store(f,_,d,c.toRef(),0,f);let g=this.currentFlow.getTempLocal(c);return this.currentType=c,c.isManaged&&this.currentFlow.setLocalFlag(g.index,8),u.block(null,[u.local_set(g.index,d,c.isManaged),u.store(f,_,u.local_get(g.index,c.toRef()),c.toRef(),0,f),u.local_get(g.index,c.toRef())],c.toRef())}return this.currentType=c,u.load(f,c.isSignedIntegerValue,_,c.toRef(),0,f)}compileFixedArrayElementAddress(e,t){let n=this.module,s=t.fixedArrayElementType,a=this.resolver.resolveExpression(e.expression,this.currentFlow);if(!a)return this.module.unreachable();let l=this.compileExpression(e.expression,a,1),o=this.compileExpression(e.elementExpression,p.i32,1),u=n.binary(227,this.options.isWasm64?n.unary(23,o):o,this.options.isWasm64?n.i64(s.alignLog2):n.i32(s.alignLog2));return n.binary(217,l,u)}compileElementAccessExpression(e,t,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,p.auto,1);if(o&&o.kind==2){let c=this.compileExpression(e.elementExpression,p.i32,1),f=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,f==null?s.unreachable():s.call(f,[c],P.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){if(u.kind==14)return this.compileFixedArrayElementAccess(e,u,!1,t,n);let c=u.getClassOrWrapper(this.program);if(c){let f=this.currentFlow.is(32768),_=c.lookupOverload(1,f);if(_){let d=assert(_.signature.thisType),g=this.compileExpression(a,d,1);return!f&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(_,[e.elementExpression],e,g,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,t,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||t!=p.void,c=new lt(u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,l,s,0),f=ee(Vi(),e);f&&(c.envKind=f.kind,c.envClass=f.envClass);let _,d=he(a.contextualTypeArguments),g=this.module,y=t.signatureReference;if(y){let k=c.functionTypeNode,F=k.parameters,w=F.length,R=y.parameterTypes,B=R.length;if(w>B)return this.error(2554,e.range,B.toString(),w.toString()),g.unreachable();for(let U=0;U<w;++U){let j=F[U];if(!De(j.type)){let Y=this.resolver.resolveType(j.type,a,l.parent,d);if(!Y)return g.unreachable();if(!R[U].isStrictlyAssignableTo(Y))return this.error(2322,j.range,R[U].toString(),Y.toString()),g.unreachable()}}let M=y.returnType;if(!De(k.returnType)){let U=this.resolver.resolveType(k.returnType,a,l.parent,d);if(!U)return g.unreachable();if(M==p.void?U!=p.void:!U.isStrictlyAssignableTo(M))return this.error(2322,k.returnType.range,U.toString(),M.toString()),g.unreachable()}let q=y.thisType,G=k.explicitThisType;if(G){if(!q)return this.error(2332,G.range),g.unreachable();let U=this.resolver.resolveType(G,a,l.parent,d);if(!U)return g.unreachable();if(!q.isStrictlyAssignableTo(U))return this.error(2322,G.range,q.toString(),U.toString()),g.unreachable()}let X=de.create(this.program,R,M,q,B);_=new Lt(c.name,c,null,X,d),_.flow.outer=a;let z=this.compileFunction(_);if(this.currentType=y.type,!z)return g.unreachable()}else{if(_=this.resolver.resolveFunction(c,null,d),!_)return this.module.unreachable();_.flow.outer=a;let k=this.compileFunction(_);if(this.currentType=_.signature.type,!k)return g.unreachable()}let E=this.currentType,T;if(_.prototype.envKind==2)T=this.makeEnvFunctionValue(_,assert(Or().get(e)));else if(_.prototype.capturesThis)T=this.makeCapturingFunctionValue(_);else{let k=this.ensureRuntimeFunction(_);T=this.options.isWasm64?g.i64(i64_low(k),i64_high(k)):g.i32(i64_low(k))}if(this.currentType=E,!u){let k=_.name,F=a.getScopedLocal(k);if(F)F.declaration.range.source.isNative?this.error(2300,s.name.range,k):this.errorRelated(2300,s.name.range,F.declaration.name.range,k);else{let w=_.type,R=a.addScopedLocal(_.name,w);a.setLocalFlag(R.index,9),T=g.local_tee(R.index,T,w.isManaged)}}return T}assertFunctionLayout(e){assert(e.offsetof("_index")==lu),assert(e.offsetof("_env")==this.options.usizeType.byteSize)}makeCapturingFunctionValue(e){let t=this.module,n=this.currentFlow,s=this.resolver,a=assert(s.resolveClass(this.program.functionPrototype,[e.type]));this.assertFunctionLayout(a);let l=assert(n.lookupLocal(N.this_)),o=new Array,u=n.getTempLocal(a.type);o.push(t.local_set(u.index,this.makeAllocation(a),a.type.isManaged));let c=t.local_get(u.index,a.type.toRef());return o.push(t.store(4,c,t.i32(this.ensureFunctionTableIndex(e)),P.I32,lu)),o.push(t.store(this.options.usizeType.byteSize,c,t.local_get(l.index,l.type.toRef()),this.options.sizeTypeRef,this.options.usizeType.byteSize)),o.push(t.local_get(u.index,a.type.toRef())),t.flatten(o,a.type.toRef())}makeEnvFunctionValue(e,t){let n=this.module,s=this.currentFlow,a=this.resolver,l=assert(a.resolveClass(this.program.functionPrototype,[e.type]));this.assertFunctionLayout(l);let o=assert(s.lookupLocal(t)),u=new Array,c=s.getTempLocal(l.type);u.push(n.local_set(c.index,this.makeAllocation(l),l.type.isManaged));let f=n.local_get(c.index,l.type.toRef());return u.push(n.store(4,f,n.i32(this.ensureFunctionTableIndex(e)),P.I32,lu)),u.push(n.store(this.options.usizeType.byteSize,f,n.local_get(o.index,o.type.toRef()),this.options.sizeTypeRef,this.options.usizeType.byteSize)),u.push(n.local_get(c.index,l.type.toRef())),n.flatten(u,l.type.toRef())}maybeCompileEnclosingSource(e){let t=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(t)),assert(n.get(t)).is(8388608)||this.compileFileByPath(t,e)}compileIdentifierExpression(e,t,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 20:{let c=this.options;if(t.isReference){let f=t.getClass();if(f)return this.currentType=f.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0);let _=t.getSignature();return _?(this.currentType=_.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0)):this.makeZero(t)}return this.currentType=c.usizeType,this.warning(226,e.range,this.currentType.toString()),c.isWasm64?s.i64(0):s.i32(0)}case 27:return this.currentType=p.bool,s.i32(1);case 15:return this.currentType=p.bool,s.i32(0);case 26:{let c=l.signature.thisType;if(!c){if(l.prototype.capturesThis){let _=assert(a.lookupLocal(N.this_));return a.set(64),this.currentType=_.type,s.local_get(_.index,_.type.toRef())}return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable()}if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let _=l.parent;assert(_.kind==7),this.checkFieldInitialization(_,e)}let f=assert(a.lookupLocal(N.this_));return a.set(64),this.currentType=c,s.local_get(f.index,c.toRef())}case 25:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let c=a.lookupLocal(N.this_);if(c){let _=assert(c.type.getClass()).base;if(_)return this.currentType=_.type,s.local_get(c.index,_.type.toRef())}}if(l.is(262144)){let c=assert(l.parent);assert(c.kind==7);let _=c.base;if(_){let d=_.type;return this.currentType=d,s.local_get(0,d.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==p.void&&(this.currentType=p.i32),s.unreachable();switch(u.kind){case 1:{let c=u,f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=this.lazyLocals;if(_!=null){let E=ee(_,c);if(E!=null)return this.compileLazyLocalRead(c,E,e)}let d=c.index;if(a.isLocalFlag(d,8)||this.error(2454,e.range,c.name),c.isViewLocal)return this.currentType=f,s.local_get(d,P.I32);if(c.fieldLocals!=null||c.isViewParam||d<0)return this.error(100,e.range,"reading an @inline struct value as a whole (a value has no address; read a field, or copy it with `let q: P = p`)"),this.currentType=f,s.unreachable();assert(d>=0);let g=a.isLocalFlag(d,4,!1);if(f.isNullableReference&&g&&(!f.isExternalReference||this.options.hasFeature(1024))?this.currentType=f.nonNullableType:this.currentType=f,!c.declaredByFlow(a))return this.error(100,e.range,"Closures"),s.unreachable();let y=s.local_get(d,f.toRef());return g&&f.isNullableExternalReference&&this.options.hasFeature(1024)&&(y=s.ref_as_nonnull(y)),y}case 0:{let c=u;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(assert(f!=p.void),c.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(c,e,t);if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=u;return u.is(8388608)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),s.i32(i64_low(c.constantIntegerValue))):s.global_get(c.internalName,P.I32)):(this.error(2651,e.range),this.currentType=p.i32,s.unreachable())}case 4:{let c=u,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null,he(a.contextualTypeArguments));if(!_||!this.compileFunction(_))return s.unreachable();if(_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=_.type,s.unreachable();if(t.isExternalReference)return this.currentType=p.func,s.ref_func(_.internalName,Fs(_.type));let d=this.ensureRuntimeFunction(_);return this.currentType=_.signature.type,this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),s.unreachable()}compileLazyLocalRead(e,t,n){let s=this.module,a=this.currentFlow,l=e.type,o=t.valueIndex,u=t.doneIndex,c=this.compileExpression(t.expression,l,1);if(!c)return s.unreachable();l.isShortIntegerValue&&(c=this.ensureSmallIntegerWrap(c,l));let f=this.currentType;c=this.convertExpression(c,f,l,!1,t.expression);let _=s.local_set(o,c,l.isManaged),d=s.local_set(u,s.i32(1),!1),g=s.if(s.unary(20,s.local_get(u,P.I32)),s.block(null,[_,d],P.None)),y=o,E=a.isLocalFlag(y,4,!1);return l.isNullableReference&&E&&(!l.isExternalReference||this.options.hasFeature(1024))?this.currentType=l.nonNullableType:this.currentType=l,this.options.sourceMap&&this.addDebugLocation(g,n.range),s.block(null,[g,s.local_get(y,this.currentType.toRef())],this.currentType.toRef())}compileIdentifierExpressionBuiltin(e,t,n){e.hasDecorator(8192)&&this.checkUnsafe(t,e.identifierNode);let s=e.internalName;return assert(At.has(s)),assert(At.get(s))(new qs(this,e,n,t))}compileLoweredAwaitExpression(e){let t=ee(nu(),e);if(!t)return this.error(100,e.range,"the async lowering transform did not run"),this.module.unreachable();let n=this.resolver.resolveExpression(e,this.currentFlow,p.auto,0);if(!n)return this.module.unreachable();if(n==p.void)return this.currentType=p.void,this.module.nop();if(n.isReference)return this.error(100,e.range,"a reference-typed await result"),this.module.unreachable();if(!n.isMemory)return this.error(203,e.range,"await",n.toString()),this.module.unreachable();let s;n==p.f32||n==p.f64||n==p.i64||n==p.u64?s=16:s=8;let a=this.compileExpression(t.recordExpression,p.auto,0);return this.currentType=n,this.module.load(n.byteSize,n.isSignedIntegerValue,a,n.toRef(),s,n.byteSize)}compileInstanceOfExpression(e,t,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let c=u;if(c.is(65536))return this.makeInstanceofClass(e,c)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,he(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=p.bool,this.module.unreachable())}makeInstanceofType(e,t){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,t),l=this.currentType;if(this.currentType=p.bool,t.isValue)return n.maybeDropCondition(a,n.i32(l==t?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!t.isNullableReference){if(l.nonNullableType.isAssignableTo(t))return n.binary(o==P.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let c=s.getTempLocal(l).index;return n.if(n.unary(o==P.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(c,o)],P.I32))}}else{if(l.isAssignableTo(t))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{let c=s.getTempLocal(l).index;return n.if(n.unary(o==P.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(c,o)],P.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let t=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,P.I32,null,s.unreachable()),t}finalizeInstanceOf(e,t){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==P.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),P.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let d=c[f];o.add(d)}}if(o)for(let u=Set_values(o),c=0,f=u.length;c<f;++c){let _=u[c];l.push(s.br("is_instance",s.binary(15,s.local_get(1,P.I32),s.i32(_.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,P.None),l.length=1,l.push(s.i32(1)),s.removeFunction(t),s.addFunction(t,a,P.I32,[P.I32],s.block(null,l,P.I32))}makeInstanceofClass(e,t){let n=this.module,s=this.compileExpression(e.expression,p.auto),a=this.currentType,l=a.toRef();this.currentType=p.bool;let o=a.getClass();if(o){if(o.extendsPrototype(t))return a.isNullableReference?n.binary(l==P.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(t.extends(o.prototype)){let f=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==P.I64?21:20,n.local_tee(f,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(t),[n.local_get(f,l)],P.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let t=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,P.I32,null,s.unreachable()),t}finalizeAnyInstanceOf(e,t){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==P.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),P.I32),!1));let u=new Set;for(let c=Map_values(l),f=0,_=c.length;f<_;++f){let d=c[f];if(d.isInterface){let g=d.implementers;if(g)for(let y=Set_values(g),E=0,T=y.length;E<T;++E){let k=y[E];u.add(k)}}else{u.add(d);let g=d.extenders;if(g)for(let y=Set_values(g),E=0,T=y.length;E<T;++E){let k=y[E];u.add(k)}}}for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let d=c[f];a.push(n.br("is_instance",n.binary(15,n.local_get(1,P.I32),n.i32(d.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,P.None),a.length=1,a.push(n.i32(1)),n.removeFunction(t),n.addFunction(t,s,P.I32,[P.I32],n.block(null,a,P.I32))}compileLiteralExpression(e,t,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,t,n);case 0:{let l=e.value;return s&&(l=-l),t==p.f32?a.f32(l):(this.currentType=p.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,t);this.currentType=o;let u=l.value,c=1;switch(s&&(o.isFloatValue?c=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(c*i64_to_f32(u));case 12:return a.f64(c*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,t);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=t,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,t){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,t){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,c=this.program.stringInstance,f=c.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let j=l[0],Y=s[0].length,O=s[1].length;if(!Y&&!O)return this.makeToString(this.compileExpression(j,f),this.currentType,j);let ie=Y!=0;if(ie^O!=0){let H,ge,oe=this.makeToString(this.compileExpression(j,f),this.currentType,j);ie?(H=this.ensureStaticString(s[0]),ge=oe):(H=oe,ge=this.ensureStaticString(s[1]));let pe=assert(c.getMethod("concat"));return this.makeCallDirect(pe,[H,ge],j)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let j=l[0],Y=l[1],O=this.makeToString(this.compileExpression(j,f),this.currentType,j),ie=this.makeToString(this.compileExpression(Y,f),this.currentType,Y),H=assert(c.getMethod("concat"));return this.makeCallDirect(H,[O,ie],e)}let F=new Array(o),w=new Array;s[0].length>0&&w.push(this.ensureStaticString(s[0]));for(let j=1;j<a;++j)F[j-1]=w.length,w.push(u.usize(0)),s[j].length>0&&w.push(this.ensureStaticString(s[j]));let R=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[f])),B=this.addStaticBuffer(f,w,R.id);this.program.OBJECTInstance.writeField("gcInfo",3,B.buffer,0);let M=i64_add(B.offset,i64_new(this.program.totalOverhead)),q=assert(R.getMethod("join")),G=assert(R.lookupOverload(2,!0)),X=new Array(2*o+1),z=new Array(o),U=this.currentFlow;for(let j=0;j<o;++j){let Y=l[j],O=U.getTempLocal(f);z[j]=O,X[j]=u.local_set(O.index,this.makeToString(this.compileExpression(Y,f),this.currentType,Y),!0)}for(let j=0;j<o;++j)X[o+j]=this.makeCallDirect(G,[u.usize(M),u.i32(F[j]),u.local_get(z[j].index,f.toRef())],e);return X[2*o]=this.makeCallDirect(q,[u.usize(M),this.ensureStaticString("")],e),u.flatten(X,f.toRef())}let _=this.program.templateStringsArrayInstance,d=_,g=this.resolver.lookupExpression(n,this.currentFlow,p.auto,1);if(g)switch(g.kind){case 4:{let F=this.resolver.resolveFunction(g,null,new Map,1);if(!F)break;g=F}case 5:{let w=g.signature.parameterTypes;if(w.length){let R=w[0].getClass();R&&!R.extendsPrototype(_.prototype)&&(d=assert(this.resolver.resolveClass(this.program.arrayPrototype,[f])))}break}}let y=e.rawParts;assert(y.length==a);let E=new Array(a);for(let F=0;F<a;++F)E[F]=this.ensureStaticString(s[F]);let T;if(d==_){let F=new Array(a);for(let R=0;R<a;++R)F[R]=this.ensureStaticString(y[R]);T=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E),d);let w=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,F));d.writeField("raw",i64_add(w.offset,i64_new(this.program.totalOverhead)),T.buffer)}else T=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E),d);let k=l.slice();return k.unshift(h.createCompiledExpression(u.usize(i64_add(T.offset,i64_new(this.program.totalOverhead))),d.type,Te.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,k,e.range,f)}compileArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=t.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,t,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let c=u,f=c.type,_=c.getTypeArgumentsTo(l.arrayPrototype)[0],d=a.getTempLocal(this.options.usizeType),g=e.elementExpressions,y=g.length,E=new Array(y),T=!_.isExternalReference;for(let M=0;M<y;++M){let q=g[M];if(q.kind!=21){let G=this.compileExpression(q,_,1);if(ce(G)!=_.toRef())T=!1;else{let X=s.runExpression(G,1);X?G=X:T=!1}E[M]=G}else E[M]=this.makeZero(_)}if(T){let M=l.totalOverhead,q=this.addStaticBuffer(_,E),G=i64_add(q.offset,i64_new(M));if(n&16){let X=this.addStaticArrayHeader(_,q),z=i64_add(X.offset,i64_new(M));return this.currentType=f,l.options.isWasm64?this.module.i64(i64_low(z),i64_high(z)):this.module.i32(i64_low(z))}else return this.makeNewArray(c,y,G,e)}let k=c.lookupOverload(2,!0);if(!k)return this.error(2542,e.range,c.internalName),this.currentType=f,s.unreachable();let F=f.toRef(),w=new Array;w.push(s.local_set(d.index,this.makeNewArray(c,y,i64_new(0),e),f.isManaged));let R=assert(c.getMember("dataStart"));assert(R.kind==10);let B=R.instance;if(!B)return s.unreachable();assert(B.isField&&B.memoryOffset>=0);for(let M=0;M<y;++M)w.push(s.call(k.internalName,[s.local_get(d.index,F),s.i32(M),E[M]],P.None));return w.push(s.local_get(d.index,F)),y&&this.compileFunction(k),this.currentType=f,s.flatten(w,F)}makeNewArray(e,t,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(t),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(t.getClass()),u=o.type,f=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],_=a.getTempLocal(this.options.usizeType),d=e.elementExpressions,g=d.length,y=new Array(g),E=!f.isExternalReference;for(let B=0;B<g;++B){let M=d[B];if(M.kind!=21){let q=this.compileExpression(M,f,1),G=s.runExpression(q,1);G?q=G:E=!1,y[B]=q}else y[B]=this.makeZero(f)}let T=this.options.isWasm64,k=y.length<<f.alignLog2;if(E){let B=this.addStaticBuffer(f,y,o.id),M=i64_add(B.offset,i64_new(l.totalOverhead));if(n&16){let q=this.options.isWasm64?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M));return this.currentType=u,q}else{let q=this.makeCallDirect(l.newBufferInstance,[T?s.i64(k):s.i32(k),s.i32(o.id),T?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M))],e);return this.currentType=u,q}}let F=o.lookupOverload(2,!0);if(!F)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let w=u.toRef(),R=new Array;R.push(s.local_set(_.index,this.makeCallDirect(l.newBufferInstance,[T?s.i64(k):s.i32(k),s.i32(o.id)],e),u.isManaged));for(let B=0;B<g;++B)R.push(s.call(F.internalName,[s.local_get(_.index,w),s.i32(B),y[B]],P.None));return R.push(s.local_get(_.index,w)),g&&this.compileFunction(F),this.currentType=u,s.flatten(R,w)}compileObjectLiteral(e,t){let n=this.module,s=t.getClass();if(!s)return this.error(2322,e.range,"<object>",t.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,Zt(6,s.decoratorNodes));let u=e.names,c=u.length,f=e.values,_=s.members,d=!1,g=new Array,E=this.currentFlow.getTempLocal(a),T=a.toRef();assert(c==f.length);let k=new Set;if(_)for(let R=Map_keys(_),B=0,M=R.length;B<M;++B){let q=R[B],G=assert(_.get(q));if(G&&G.kind==10){let X=G.instance;X&&X.isField&&k.add(X)}}let F=new Array;for(let R=0;R<c;++R){let B=u[R].text,M=s.getMember(B);if(!M||M.kind!=10){this.error(2339,u[R].range,B,a.toString()),d=!0;continue}if(M.is(512)){this.error(2341,u[R].range,B,a.toString()),d=!0;continue}if(M.is(1024)){this.error(2445,u[R].range,B,a.toString()),d=!0;continue}let q=this.resolver.resolveProperty(M);if(!q)continue;let G=q.setterInstance;if(!G){this.error(2540,u[R].range,B,a.toString()),d=!0;continue}if(k.delete(q),!q.isField){F.push(q);continue}let X=q.type,z=this.makeCallDirect(G,[n.local_get(E.index,T),this.compileExpression(f[R],X,1)],G.identifierNode,!0);this.currentType!=p.void&&(z=n.drop(z)),g.push(z)}for(let R=0,B=F.length;R<B;++R){let M=F[R],q=assert(M.setterInstance);g.push(this.makeCallDirect(q,[n.local_get(E.index,T),this.compileExpression(f[R],M.type,1)],q.identifierNode))}if(this.currentType=a.nonNullableType,d)return n.unreachable();for(let R=Set_values(k),B=0,M=R.length;B<M;++B){let q=R[B];assert(q.isField);let G=q.type;if(!q.initializerNode){if(G.isReference&&!G.isNullableReference){this.error(2741,e.range,q.name,"<object>",a.toString()),d=!0;continue}switch(G.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{g.push(n.store(G.byteSize,n.local_get(E.index,T),this.makeZero(G),G.toRef(),q.memoryOffset));continue}}this.error(2741,e.range,q.name,"<object>",a.toString()),d=!0}}if(d)return n.unreachable();let w=this.ensureConstructor(s,e);return g.unshift(n.local_set(E.index,this.compileInstantiate(w,[],0,e),a.isManaged)),g.push(n.local_get(E.index,T)),this.currentType=a.nonNullableType,n.flatten(g,T)}compileNewExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,c=e.typeArguments,f;if(!c&&(f=t.classReference)&&f.prototype==o&&f.is(65536)?u=this.resolver.resolveClass(o,f.typeArguments,he(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,c,a,a.sourceFunction.parent,he(a.contextualTypeArguments),e),!u)return s.unreachable();t==p.void&&(n|=8);let _=this.ensureConstructor(u,e);return _.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(_,e.args,n,e)}ensureConstructor(e,t){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=he(e.contextualTypeArguments);if(s){let F=this.ensureConstructor(s,t);this.checkFieldInitialization(s,t),n=new Lt(N.constructor,new lt(N.constructor,e,F.declaration.clone()),null,de.create(this.program,F.signature.parameterTypes,e.type,e.type,F.signature.requiredParameters,F.signature.hasRest,e.hasDecorator(4096)),a)}else n=new Lt(N.constructor,new lt(N.constructor,e,this.program.makeNativeFunctionDeclaration(N.constructor,786432)),null,de.create(this.program,[],e.type,e.type,0,!1,e.hasDecorator(4096)),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(N.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let c=n.signature,f=this.module,_=this.options.sizeTypeRef,d=new Array;if(d.push(this.makeConditionalAllocation(e,0)),s){let F=c.parameterTypes,w=F.length,R=new Array(1+w);R[0]=f.local_get(0,_);for(let B=1;B<=w;++B)R[B]=f.local_get(B,F[B-1].toRef());d.push(f.local_set(0,this.makeCallDirect(assert(s.constructorInstance),R,t,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,d),d.push(f.local_get(0,_)),this.currentFlow=o;let g=n.localsByIndex,y=new Array,E=1+c.parameterTypes.length,T=g.length;if(T>E)for(let F=E;F<T;++F)y.push(g[F].type.toRef());let k=f.addFunction(n.internalName,c.paramRefs,c.resultRefs,y,f.flatten(d,_));n.finalize(f,k)}return n}checkFieldInitialization(e,t=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,t)}checkFieldInitializationInFlow(e,t,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let c=u.instance;!c||!c.isField||(!c.initializerNode&&!t.isThisFieldFlag(c,1)?c.is(16384)||(n?this.errorRelated(2564,c.declaration.name.range,n.range,c.internalName):this.error(2564,c.declaration.name.range,c.internalName)):c.is(16384)&&(c.type.isReference?this.warning(233,c.identifierNode.range,c.internalName):this.pedantic(906,c.identifierNode.range)))}}compileInstantiate(e,t,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(8192))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,t,s,this.makeZero(this.options.usizeType),n);return ce(o)!=P.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,t,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,t);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(8192)&&this.checkUnsafe(e),o.kind){case 0:{let c=o;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=o,f=assert(c.parent);assert(f.kind==2);let _=f;return this.compileEnum(_)?(this.currentType=c.type,c.is(33554432)?(assert(c.constantValueKind==1),this.compileInlineConstant(c,t,n)):s.global_get(c.internalName,P.I32)):(this.currentType=_.type,this.module.unreachable())}case 10:{let c=o,f=this.resolver.resolveProperty(c);if(!f)return s.unreachable();o=f}case 11:{let c=o;c.isField&&a.sourceFunction.is(524288)&&assert(u).kind==26&&!a.isThisFieldFlag(c,1)&&!c.is(16384)&&this.errorRelated(2565,e.range,c.identifierNode.range,c.internalName);let f=u!=null?this.resolveSroaReceiver(u):null;if(f!=null){let g=assert(f.fieldLocals);if(!c.isField||!g.has(c.name))return this.error(100,e.range,"reading this member of an @inline struct (only supported fields are readable; a refused or computed member has no local)"),s.unreachable();let y=assert(g.get(c.name));return y.index<0?(this.error(100,e.range,"reading a nested @inline struct value as a whole (the field is several leaves, not one value; read one of its fields)"),s.unreachable()):(this.currentType=c.type,s.local_get(y.index,y.type.toRef()))}if(u!=null&&c.isField&&this.resolver.isViewCall(u)){let g=c.type,y=this.compileExpression(u,p.auto);return this.currentType=g,this.viewFieldAccess(y,c,g)}if(u!=null&&u.kind==8&&c.isField){let g=a.lookupLocal(u.text);if(g!=null&&(g.isViewParam||g.isViewLocal)){let y=c.type;return this.currentType=y,this.viewFieldAccess(s.local_get(g.index,P.I32),c,y)}}if(u!=null&&u.kind==11&&c.isField){let g=this.resolver.resolveExpression(u,this.currentFlow);if(g!=null&&this.isInlineStructType(g))return this.makeSretCallBlock(u,g,c.type,c,null)}if(c.type.kind==14||c.isField&&this.isInlineStructType(c.type)){let g=this.resolver.resolveExpression(assert(u),this.currentFlow);if(!g)return s.unreachable();let y=this.compileExpression(assert(u),g,33);this.currentType=c.type;let E=c.memoryOffset;return E?s.binary(217,y,this.options.isWasm64?s.i64(E):s.i32(E)):y}let _=c.getterInstance;if(!_)return s.unreachable();let d=0;return _.is(262144)&&(d=this.compileExpression(assert(u),assert(_.signature.thisType),33)),this.compileCallDirect(_,[],e,d)}case 4:{let c=o,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null);if(!_||!this.compileFunction(_))return s.unreachable();if(this.currentType=_.type,_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let d=this.ensureRuntimeFunction(_);return this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,t,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,p.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),c=this.evaluateCondition(u);if(c==1)return s.maybeDropCondition(u,this.compileExpression(a,t));if(c==2)return s.maybeDropCondition(u,this.compileExpression(l,t));let f=this.currentFlow,_=f.forkThen(o);this.currentFlow=_;let d=this.compileExpression(a,t),g=this.currentType,y=f.forkElse(o);this.currentFlow=y;let E=this.compileExpression(l,t==p.auto?g:t),T=this.currentType;if(t==p.void)g!=p.void&&(d=s.drop(d),g=p.void),T!=p.void&&(E=s.drop(E),T=p.void),this.currentType=p.void;else{let k=p.commonType(g,T,t);if(!k)return this.error(2322,l.range,T.toString(),g.toString()),this.currentType=t,s.unreachable();d=this.convertExpression(d,g,k,!1,a),g=k,E=this.convertExpression(E,T,k,!1,l),T=k,this.currentType=k}return f.inheritAlternatives(_,y),this.currentFlow=f,s.if(u,d,E)}compileUnaryPostfixExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,t.exceptVoid,0),o,u=null;t!=p.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let c;switch(e.operator){case 88:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let E=y.lookupOverload(29);if(E){let T=E.is(262144);if(u&&!T&&(o=l,u=null),c=this.compileUnaryOverload(E,e.operand,o,e),T)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(0,o,s.i32(1));break}case 4:case 9:{c=s.binary(25,o,s.i64(1));break}case 5:case 10:{c=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(50,o,s.f32(1));break}case 12:{c=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 89:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let E=y.lookupOverload(30);if(E){let T=E.is(262144);if(u&&!T&&(o=l,u=null),c=this.compileUnaryOverload(E,e.operand,o,e),T)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(1,o,s.i32(1));break}case 4:case 9:{c=s.binary(26,o,s.i64(1));break}case 5:case 10:{c=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(51,o,s.f32(1));break}case 12:{c=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let f=this.resolver;if(e.operand.kind==14){let y=e.operand,E=f.resolveExpression(y.expression,a);if(E&&E.kind==14){let T=this.compileFixedArrayElementAccess(y,E,!0,t,0,null,c);return u?s.block(null,[T,s.local_get(u.index,this.currentType.toRef())],this.currentType.toRef()):T}}let _=f.lookupExpression(e.operand,a);if(!_)return s.unreachable();if(!u)return this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);let d=this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);this.currentType=u.type;let g=u.type.toRef();return s.block(null,[d,s.local_get(u.index,g)],g)}compileUnaryPrefixExpression(e,t,n){let s=this.module,a=!1,l;switch(e.operator){case 82:{l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(23);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 83:{let c=e.operand;if(c.isNumericLiteral){l=this.compileLiteralExpression(c,t,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,t.exceptVoid,0);let f=this.currentType.getClassOrWrapper(this.program);if(f){let _=f.lookupOverload(24);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(27);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 89:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(28);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 96:{l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(25);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=p.bool;break}case 97:{l=this.compileExpression(e.operand,t==p.void?p.i32:t.isFloatValue?p.i64:t,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(26);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 57:return this.compileTypeof(e,t,n);case 70:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,t!=p.void):s.unreachable()}compileTypeof(e,t,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==20)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,p.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,p.auto);let c=this.currentType;if(a=this.convertExpression(a,c,p.void,!0,s),c.isReference)if(c.getSignature())o="function";else{let _=c.getClass();_?_.prototype==l.prototype?o="string":o="object":o="externref"}else c==p.bool?o="boolean":c.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 8:break;case 23:case 14:if(s=(s.kind==23,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,p.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,p.auto),a=this.convertExpression(a,this.currentType,p.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,t){let n=this.module,s=this.currentFlow;switch(t.kind){case 0:{s.canOverflow(e,t)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,t){let n=this.currentFlow.targetFunction,s=t.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,t)}checkSignatureSupported(e,t){let n=!0,s=t.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=t.parameters;for(let o=0,u=a.length;o<u;++o){let c;l.length>o?c=l[o]:c=t,this.program.checkTypeSupported(a[o],c)||(n=!1)}return this.program.checkTypeSupported(e.returnType,t.returnType)||(n=!1),n}isUnmanagedChangetype(e){if(e.kind!=11)return!1;let t=e,n=t.expression;if(n.kind!=8||n.text!="changetype")return!1;let s=t.typeArguments;return s==null||s.length!=1?!1:unchecked(s[0]).memoryModel==3}isInlineStructType(e){let t=e.classReference;return t!=null&&t.hasDecorator(4096)}viewFieldAccess(e,t,n){let s=this.module,a=t.memoryOffset;return n.kind==14||this.isInlineStructType(n)?a?s.binary(217,e,this.options.isWasm64?s.i64(a):s.i32(a)):e:s.load(n.byteSize,n.isSignedIntegerValue,e,n.toRef(),a)}resultRefOf(e){return this.isInlineStructType(e)?P.None:e.toRef()}evaluateCondition(e){let t=ce(e);if(t==P.Unreachable)return 0;assert(t==P.I32);let s=this.module.runExpression(e,0);return s?ae(s)?1:2:0}expandSroaArgument(e,t,n,s){if(!de.isInlineStructRef(t))return unchecked(n[s]=this.compileExpression(e,t,1)),1;let a=de.fieldCountOf(t),l=e.kind==8?this.currentFlow.lookupLocal(e.text):null;if(l==null||l.fieldLocals==null){this.error(100,e.range,"passing this expression as an @inline struct argument (only a local value can be passed: a value has no address, so there is nothing to hand over)");for(let u=0;u<a;++u)unchecked(n[s+u]=this.module.unreachable());return a}return this.pushSroaLeafOperands(assert(l.fieldLocals),n,s)}pushSroaLeafOperands(e,t,n){let s=0;for(let a=Map_keys(e),l=0,o=a.length;l<o;++l){let u=assert(ee(e,unchecked(a[l])));if(u.index<0){let c=u.fieldLocals;c!=null&&(s+=this.pushSroaLeafOperands(c,t,n+s));continue}unchecked(t[n+s]=this.module.local_get(u.index,u.type.toRef())),++s}return s}resolveSroaReceiver(e){let t=new Array,n=e;for(;n.kind==23;){let l=n;t.push(l),n=l.expression}if(n.kind!=8)return null;let s=this.currentFlow.lookupLocal(n.text);if(s==null||s.fieldLocals==null)return null;let a=s;for(let l=t.length-1;l>=0;--l){let o=a.fieldLocals;if(o==null)return null;let u=t[l].property.text,c=ee(o,u);if(c==null)return null;a=c}return a.fieldLocals!=null?a:null}static{this.SRET_STACK_SIZE=4096}markOperandForRooting(){this.rootNextOperand=!0}ensureSretStack(){if(this.sretStackGlobal!=null)return this.sretStackBase;let e=this.module,t=this.addAlignedMemorySegment(new Uint8Array(i.SRET_STACK_SIZE),16),n=i64_low(t.offset);this.sretStackBase=n,this.sretStackLimit=n+i.SRET_STACK_SIZE;let s="~sretStackPointer";return this.sretStackGlobal=s,e.addGlobal(s,P.I32,!0,e.i32(n)),n}sretSizeOf(e){return assert(e.classReference).nextMemoryOffset+15&-16}makeSretAddress(e,t){return this.module.binary(0,this.module.i32(e),this.module.local_get(t.index,P.I32))}makeSretFieldLoad(e,t){return this.module.load(t.type.byteSize,!1,e,t.type.toRef(),t.memoryOffset)}makeSretGuard(e,t,n){let s=this.module,a=s.binary(0,s.local_get(e.index,P.I32),s.i32(t));return s.if(s.binary(21,a,s.i32(this.sretStackLimit)),this.makeStaticAbort(this.ensureStaticString("sret stack overflow: the static call-temp region is 4 KB; see --sretStackSize"),n))}emitExportByValPrologue(e,t){let n=this.module,s=e.signature,a=e.flow,l=s.parameterTypes;for(let o=0,u=l.length;o<u;++o){if(!s.isExportByValParam(o))continue;let c=e.getParameterName(o),f=a.lookupLocal(c+"$byval"),_=a.lookupLocal(c);if(f==null||_==null||_.fieldLocals==null)continue;let d=assert(_.fieldLocals),g=assert(this.recordFieldsOf(unchecked(l[o])));for(let y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=ee(d,T.name);k&&t.push(n.local_set(k.index,n.load(T.type.byteSize,!1,n.local_get(f.index,P.I32),T.type.toRef(),T.memoryOffset),!1))}}}makeSretAddressPlus(e,t,n){let s=this.module;return s.binary(0,this.makeSretAddress(e,t),s.i32(n))}emitTempArgumentLeaves(e,t,n,s,a,l){let o=this.module,u=this.recordFieldsOf(e);if(u!=null)for(let c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),d=ee(t,_.name);if(d!=null){if(d.index<0){let g=d.fieldLocals;g!=null&&this.emitTempArgumentLeaves(_.type,g,n,s,a+_.memoryOffset,l);continue}l.push(o.store(_.type.byteSize,this.makeSretAddressPlus(n,s,a),o.local_get(d.index,d.type.toRef()),_.type.toRef(),_.memoryOffset))}}}makeExternalTempArgument(e,t,n,s,a){let l=this.module,o=e.kind==8?this.currentFlow.lookupLocal(e.text):null,u=o!=null?o.fieldLocals:null,c=this.recordFieldsOf(t);if(c==null)return this.error(100,e.range,"passing this expression to a by-value parameter (the temp is filled field by field, which needs a record type)"),l.unreachable();let f=new Array;if(u!=null)this.emitTempArgumentLeaves(t,u,n,s,a,f);else{if(de.isInlineStructRef(t))return this.error(100,e.range,"passing this expression as an @inline struct to a by-value parameter (the temp is filled by copying a local's fields; a value has no address, so only a local can be passed)"),l.unreachable();{let _=this.options.usizeType,d=this.compileExpression(e,t,1),g=this.currentFlow.getTempLocal(_),y=_.toRef();f.push(l.local_set(g.index,d,!1));for(let E=0,T=c.length;E<T;++E){let k=unchecked(c[E]);f.push(l.store(k.type.byteSize,this.makeSretAddressPlus(n,s,a),l.load(k.type.byteSize,!1,l.local_get(g.index,y),k.type.toRef(),k.memoryOffset),k.type.toRef(),k.memoryOffset))}}}return f.push(this.makeSretAddressPlus(n,s,a)),l.block(null,f,P.I32)}wrapExternalTempCall(e,t,n,s,a){let l=this.module,o=assert(this.sretStackGlobal),u=l.global_set(o,l.local_get(e.index,P.I32)),c=[l.local_set(e.index,l.global_get(o,P.I32),!1),l.global_set(o,l.binary(0,l.local_get(e.index,P.I32),l.i32(t))),this.makeSretGuard(e,t,a)];if(s==p.void)return c.push(n),c.push(u),l.block(null,c);let f=this.currentFlow.getTempLocal(s);return c.push(l.local_set(f.index,n,!1)),c.push(u),c.push(l.local_get(f.index,s.toRef())),l.block(null,c,s.toRef())}wrapSretCall(e,t,n,s){let a=this.module,l=assert(this.sretStackGlobal),o=this.sretSizeOf(n);return a.block(null,[a.local_set(e.index,a.global_get(l,P.I32),!1),a.global_set(l,a.binary(0,a.local_get(e.index,P.I32),a.i32(o))),this.makeSretGuard(e,o,s),t,a.global_set(l,a.local_get(e.index,P.I32))])}makeSretCallBlock(e,t,n,s,a){let l=this.module,o=this.ensureSretStack(),u=assert(this.sretStackGlobal),c=this.sretSizeOf(t),f=this.currentFlow,_=f.getTempLocal(p.u32),d=new Array;d.push(l.local_set(_.index,l.global_get(u,P.I32),!1)),d.push(l.global_set(u,l.binary(0,l.local_get(_.index,P.I32),l.i32(c)))),d.push(this.makeSretGuard(_,c,e)),this.sretDestSlot=l.binary(0,l.i32(o),l.local_get(_.index,P.I32));let g=this.compileCallExpression(e,p.auto,0);if(this.sretDestSlot!=0)return this.sretDestSlot=0,this.currentType=n,l.unreachable();d.push(g);let y=n!=p.void?f.getTempLocal(n):null;return s!=null?d.push(l.local_set(assert(y).index,this.makeSretFieldLoad(this.makeSretAddress(o,_),s),!1)):a!=null&&this.emitSretLoadsInto(t,a,o,_,0,d),d.push(l.global_set(u,l.local_get(_.index,P.I32))),y!=null?(d.push(l.local_get(y.index,y.type.toRef())),this.currentType=n,l.block(null,d,n.toRef())):(this.currentType=p.void,l.block(null,d))}compileSretReturnStatement(e,t){let n=this.module,s=this.currentFlow,a=assert(e.value);if(a.kind==19&&a.args.length==0){let d=this.module,g=s.sourceFunction.signature.thisType?1:0,y=new Array;return this.emitSroaZerosToLocal(t,g,0,y),y.push(d.return()),s.set(257),this.currentType=t,d.block(null,y)}let o=a.kind==8?s.lookupLocal(a.text):null;if(o==null||o.fieldLocals==null)return this.error(100,a.range,"returning this expression from an @inline struct function (only a local value can be returned: a value has no address, so there is nowhere to write it)"),s.set(257),this.currentType=t,n.unreachable();let u=s.sourceFunction.signature;assert(u.hasHiddenDestParam);let c=u.thisType?1:0,f=assert(o.fieldLocals),_=new Array;return this.emitSroaStoresToLocal(t,f,c,0,_),_.push(n.return()),s.set(257),this.currentType=t,n.block(null,_)}fillSroaFieldLocals(e,t,n,s,a){let l=!1;for(let o=0,u=e.length;o<u;++o){let c=unchecked(e[o]),f=t+"$"+c.name,_=c.type;if(!this.isSroaFieldType(_)){if(de.isInlineStructRef(_)){let y=new Map;if(!this.fillSroaFieldLocals(this.inlineStructFieldsOf(_),f,n,s,y)){l=!0;continue}let E=new ye(f,-1,_,s.targetFunction,n);E.fieldLocals=y,a.set(c.name,E);continue}let d=assert(c.prototype.fieldDeclaration),g=d.type;this.error(100,g?g.range:d.name.range,_.kind==14?"a T[N] field in an @inline struct (SROA keeps one WASM local per field; array fields are the deep-SROA phase)":"a GC-reference field in an @inline struct (a bare local.set skips the write barrier; deferred)"),l=!0;continue}a.set(c.name,s.targetFunction.addLocal(_,f,n))}return!l}copySroaValue(e,t,n){let s=this.module;for(let a=Map_keys(t),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]),c=ee(e,u);if(c==null)continue;let f=assert(ee(t,u));if(f.index<0||c.index<0){let _=f.fieldLocals,d=c.fieldLocals;_!=null&&d!=null&&this.copySroaValue(d,_,n);continue}n.push(s.local_set(f.index,s.local_get(c.index,c.type.toRef()),!1))}}emitSroaStoresToLocal(e,t,n,s,a){let l=this.module,o=this.inlineStructFieldsOf(e);if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=ee(t,f.name);if(_!=null){if(_.index<0){let d=_.fieldLocals;d!=null&&this.emitSroaStoresToLocal(f.type,d,n,s+f.memoryOffset,a);continue}a.push(l.store(f.type.byteSize,l.local_get(n,P.I32),l.local_get(_.index,_.type.toRef()),f.type.toRef(),s+f.memoryOffset))}}}emitSroaZerosToLocal(e,t,n,s){let a=this.module,l=this.inlineStructFieldsOf(e);if(l!=null)for(let o=0,u=l.length;o<u;++o){let c=unchecked(l[o]);if(de.isInlineStructRef(c.type)){this.emitSroaZerosToLocal(c.type,t,n+c.memoryOffset,s);continue}this.isSroaFieldType(c.type)&&s.push(a.store(c.type.byteSize,a.local_get(t,P.I32),this.makeZero(c.type),c.type.toRef(),n+c.memoryOffset))}}emitSretLoadsInto(e,t,n,s,a,l){let o=this.inlineStructFieldsOf(e);if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=ee(t,f.name);if(_!=null){if(_.index<0){let d=_.fieldLocals;d!=null&&this.emitSretLoadsInto(f.type,d,n,s,a+f.memoryOffset,l);continue}l.push(this.module.local_set(_.index,this.module.load(f.type.byteSize,!1,this.makeSretAddress(n,s),f.type.toRef(),a+f.memoryOffset),!1))}}}sroaTreeOf(e){let t=this.resolveSroaReceiver(e);return t!=null?t.fieldLocals:null}emitSroaStores(e,t,n,s,a){let l=this.module,o=this.inlineStructFieldsOf(e);if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=ee(t,f.name);if(_!=null){if(_.index<0){let d=_.fieldLocals;d!=null&&this.emitSroaStores(f.type,d,n,s+f.memoryOffset,a);continue}a.push(l.store(f.type.byteSize,n,l.local_get(_.index,_.type.toRef()),f.type.toRef(),s+f.memoryOffset))}}}compileSroaLocal(e,t,n,s,a,l){let o=this.module,u=e.name.text;if(s!=null&&this.isUnmanagedChangetype(s)){let d=a.scopedLocals;d||(a.scopedLocals=d=new Map);let g=d.has(u)?assert(d.get(u)):null,y;if(g!=null&&g.index>=0)y=g,y.type=t;else{let E=a.targetFunction;y=new ye(u,E.localsByIndex.length,t,E,e),E.localsByIndex[y.index]=y,d.set(u,y)}return y.isViewLocal=!0,a.setLocalFlag(y.index,8),e.is(8)&&a.setLocalFlag(y.index,1),l.push(o.local_set(y.index,this.compileExpression(s,p.auto),!1)),!0}let c=new Map;if(!this.fillSroaFieldLocals(n,u,e,a,c))return!0;let f=new ye(u,-1,t,a.targetFunction,e);f.fieldLocals=c;let _=a.scopedLocals;if(_||(a.scopedLocals=_=new Map),_.has(u))return this.error(2300,e.name.range,u),!0;if(_.set(u,f),e.is(8)&&a.setLocalFlag(f.index,1),!s)return!0;if(s.kind==19){let d=s.args;if(d.length>n.length)return this.error(2322,s.range,"too many arguments",t.toString()),!0;for(let g=0,y=d.length;g<y;++g){let E=unchecked(n[g]),T=assert(c.get(E.name));if(T.index<0)return this.error(100,s.range,"constructing an @inline struct with an argument for a nested @inline field (the field is several leaves, not one value; assign its own fields instead)"),!0;let k=this.compileExpression(d[g],E.type,1);l.push(o.local_set(T.index,k,!1))}return!0}if(s!=null&&s.kind==11){let d=this.resolver.resolveExpression(s,this.currentFlow);if(d!=null&&this.isInlineStructType(d))return l.push(this.makeSretCallBlock(s,d,p.void,null,c)),!0}if(s.kind==8){let d=a.lookupLocal(s.text);if(d&&d.fieldLocals)return this.copySroaValue(assert(d.fieldLocals),c,l),!0}return this.error(100,s.range,"initialising an @inline struct local from this expression (only `new P(\u2026)`, another @inline struct value, or no initialiser)"),!0}inlineStructFieldsOf(e){let t=e.classReference;return t==null||!t.hasDecorator(4096)?null:this.recordFieldsOf(e)}recordFieldsOf(e){let t=e.classReference;if(t==null)return null;let n=new Array,s=t.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||n.push(c)}return n}isSroaFieldType(e){return e.kind==14||de.isInlineStructRef(e)?!1:!e.isManaged}makeZero(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(0);case 5:case 10:if(e.size!=64)return t.i32(0);case 4:case 9:return t.i64(0);case 11:return t.f32(0);case 12:return t.f64(0);case 13:return t.v128(Wp);case 16:case 15:case 17:case 18:case 19:case 20:case 22:case 23:case 24:case 25:return e.is(512)?t.ref_null(e.toRef()):(assert(!1),t.unreachable());case 21:return e.is(512)?t.ref_null(e.toRef()):t.i31_new(t.i32(0))}}makeOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(1);case 5:case 10:if(e.size!=64)return t.i32(1);case 4:case 9:return t.i64(1);case 11:return t.f32(1);case 12:return t.f64(1);case 21:return t.i31_new(t.i32(1))}}makeNegOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(-1);case 5:case 10:if(e.size!=64)return t.i32(-1);case 4:case 9:return t.i64(-1,-1);case 11:return t.f32(-1);case 12:return t.f64(-1);case 13:return t.v128(Kp);case 21:return t.i31_new(t.i32(-1))}}makeIsTrueish(e,t,n){let s=this.module;switch(t.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,t);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return t.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:return s.unary(20,s.ref_is_null(e));case 26:default:return this.error(1345,n.range,t.toString()),s.i32(0)}}makeToString(e,t,n){let s=this.module,a=this.program.stringInstance.type;if(t==a)return e;let l=t.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!t.isStrictlyAssignableTo(assert(u.thisType))){if(!t.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let f=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(f.index,e,t.isManaged),this.makeToString(s.local_get(f.index,t.toRef()),t.nonNullableType,n),this.ensureStaticString("null"))}let c=u.returnType;return c.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,c.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,t.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let t=this.program;assert(e.program==t);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=t.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=t.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,t){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==P.I64?21:20,n.local_get(t,a)),n.local_set(t,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,t=[]){let n=e.members;if(!n)return t;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(N.this_).index:0,u=this.options.sizeTypeRef,c=null;for(let f=Map_values(n),_=0,d=f.length;_<d;++_){let g=unchecked(f[_]);if(g.kind!=10)continue;let y=g.instance;if(!y||!y.isField||y.getBoundClassOrInterface()!=e)continue;if(this.isInlineStructType(y.type)){let B=y.initializerNode,M=e.hasDecorator(16)||e.hasDecorator(2048);if(B!=null&&M){if(B.kind==18&&B.isLiteralKind(6)&&B.names.length==0)continue;this.error(100,B.range,"an initializer on an @inline struct field (the value is stored inline and has no address to copy into; the allocation is already zero, so `= {}` is allowed -- assign the field's own fields after construction)")}continue}assert(!y.isAny(8));let E=y.prototype,T=E.parameterIndex;if(T<0){c||(c=new Array),c.push(y);continue}let F=y.type.toRef();assert(!E.initializerNode);let w=assert(y.setterInstance),R=this.makeCallDirect(w,[s.local_get(o,u),s.local_get(l?a.lookupLocal(y.name).index:1+T,F)],w.identifierNode,!0);this.currentType!=p.void&&(R=s.drop(R)),t.push(R)}if(c)for(let f=0,_=c.length;f<_;++f){let d=unchecked(c[f]),g=d.type,y=d.prototype,E=y.initializerNode;assert(y.parameterIndex<0);let T=assert(d.setterInstance),k=this.makeCallDirect(T,[s.local_get(o,u),E?this.compileExpression(E,g,1):this.makeZero(g)],d.identifierNode,!0);this.currentType!=p.void&&(k=s.drop(k)),t.push(k)}return this.currentType=p.void,t}makeAbort(e,t){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,t)}makeStaticAbort(e,t){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(t.range.source.normalizedPath),o=t.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],P.None),s.unreachable()])}makeRuntimeNonNullCheck(e,t,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(t).index;a.canOverflow(e,t)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(t.isExternalReference){let c=s.local_get(o,t.toRef());this.options.hasFeature(1024)&&(c=s.ref_as_nonnull(c)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,c)}else e=s.if(s.local_tee(o,e,t.isManaged),s.local_get(o,t.toRef()),u);return this.currentType=t.nonNullableType,e}makeRuntimeDowncastCheck(e,t,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(t));let a=this.module,l=this.currentFlow,u=l.getTempLocal(t).index,c=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,t)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,t.isManaged)],P.I32),a.local_get(u,t.toRef()),c):e=a.if(a.unary(20,a.local_tee(u,e,t.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,t.toRef())],P.I32),a.local_get(u,t.toRef()),c)),this.currentType=n,e}};function Rx(i,r){Ei=r.range.source.simplePath,Pr=Ke(i.name,i.parent,i.is(262144),!0);let e=r.overriddenModuleName;if(e&&(Ei=e),!i.hasDecorator(128))return;let t=i.program,n=assert(Zt(10,r.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(Pr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(Ei=Pr,Pr=a.value,s.length>2&&t.error(2554,n.range,"2",s.length.toString())):t.error(1141,a.range))):t.error(1141,a.range)}else t.error(2555,n.range,"1","0")}var bn=class i extends pn{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=t}static build(e,t=!0){return new i(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type,a=this.toTypeScriptType(s,1);W(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
269
- `),W(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("const "),n.push(e),n.push(`: {
270
- `),W(n,++this.indentLevel),n.push("/** @type `"),n.push(s.toString()),n.push("` */\n"),W(n,this.indentLevel),n.push("get value(): "),n.push(a),t.is(8)?n.push(`
268
+ `}var Ei="",Pr="",ou=15,ca=class{constructor(){this.target=1;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=ou;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?p.usize64:p.usize32}get isizeType(){return this.target==2?p.isize64:p.isize32}get sizeTypeRef(){return this.target==2?B.I64:B.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(r,e=!0){e?(r&32768&&(r|=1056),r&16384&&(r|=1024),r&1024&&(r|=256),r&4096&&(r|=16),this.features|=r):(r&256&&(r|=1024),r&1024&&(r|=16384),r&16&&(r|=4096),r&1056&&(r|=32768),this.features&=~r)}hasFeature(r){return(this.features&r)!=0}},qo=(t=>(t[t.Default=0]="Default",t[t.Never=1]="Never",t[t.Always=2]="Always",t))(qo||{}),f_=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(f_||{}),__=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(__||{}),gn;(t=>(t.DefaultNamespace="env",t.Memory="memory",t.Table="table"))(gn||={});var ua;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(ua||={});var dn=["__new","__pin","__unpin","__collect"],hn=["__rtti_base"],lu=0,wx="$closureEnvIn",y_=class{constructor(r,e,t){this.valueIndex=r;this.doneIndex=e;this.expression=t}},pa=class i extends tt{constructor(e){super(e.diagnostics);this.lazyLocals=null;this.currentParent=null;this.currentType=p.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.builtinEnv=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.sretStackBase=0;this.sretStackLimit=0;this.sretStackGlobal=null;this.sretDestSlot=0;this.sretDiscardMark=null;this.externalTempMark=null;this.externalTempSize=0;this.rootNextOperand=!1;this.program=e;let t=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),t.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),t.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),t.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),t.setFeatures(s);let a=e.makeNativeFunction(m.start,de.create(e,[],p.void));a.internalName=m.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new au(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new i(e).compile()}compile(){let e=this.options,t=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),t.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==m.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let T=Map_values(u),k=0,F=T.length;k<F;++k){let w=unchecked(T[k]);w.source.sourceKind==1&&(this.compileFile(w),this.compileModuleExports(w))}if(this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime){for(let T=0,k=dn.length;T<k;++T){let F=dn[T],w=n.requireFunction(F);this.compileFunction(w)&&!t.hasExport(F)&&t.addFunctionExport(w.internalName,F)}for(let T=0,k=hn.length;T<k;++T){let F=hn[T],w=n.requireGlobal(F);this.compileGlobal(w)&&!t.hasExport(F)&&t.addGlobalExport(w.internalName,F)}}let c=this.lazyFunctions;do{let T=new Array;for(let k=Set_values(c),F=0,w=k.length;F<w;++F){let R=unchecked(k[F]);T.push(R)}c.clear();for(let k=0,F=T.length;k<F;++k)this.compileFunction(unchecked(T[k]),!0)}while(c.size);let f=this.functionTable,_=this.overrideStubs;for(let T=0,k=f.length;T<k;++T){let F=f[T];F.is(268435456)?(assert(F.is(262144)),f[T]=this.ensureOverrideStub(F)):F.signature.requiredParameters<F.signature.parameterTypes.length&&(f[T]=this.ensureVarargsStub(F))}let d=new Set;do{s.discoveredOverride=!1;for(let T=Set_values(_),k=0,F=T.length;k<F;++k){let w=unchecked(T[k]),R=s.resolveOverrides(w);if(R)for(let C=0,M=R.length;C<M;++C)this.compileFunction(R[C]);d.add(w)}}while(_.size>d.size||s.discoveredOverride);d.clear();for(let T=Set_values(_),k=0,F=T.length;k<F;++k)this.finalizeOverrideStub(T[k]);for(let T=Map_keys(this.pendingInstanceOf),k=0,F=T.length;k<F;++k){let w=T[k],R=assert(this.pendingInstanceOf.get(w));switch(w.kind){case 7:case 9:{this.finalizeInstanceOf(w,R);break}case 6:case 8:{this.finalizeAnyInstanceOf(w,R);break}default:assert(!1)}}t.removeGlobal(m.rtti_base),this.runtimeFeatures&8&&Tx(this),this.runtimeFeatures&16&&xx(this),this.runtimeFeatures&32&&Ax(this);let g=i64_align(this.memoryOffset,e.usizeType.byteSize);t.removeGlobal(m.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?t.addGlobal(m.data_end,B.I64,!1,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.data_end,B.I32,!1,t.i32(i64_low(g)))),t.removeGlobal(m.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(g=i64_align(i64_add(g,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?t.addGlobal(m.stack_pointer,B.I64,!0,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.stack_pointer,B.I32,!0,t.i32(i64_low(g)))),t.removeGlobal(m.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?t.addGlobal(m.heap_base,B.I64,!1,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.heap_base,B.I32,!1,t.i32(i64_low(g)))),this.initDefaultMemory(g),this.initDefaultTable(),this.runtimeFeatures&64&&(t.addFunction(m.setArgumentsLength,B.I32,B.None,null,t.global_set(this.ensureArgumentsLength(),t.local_get(0,B.I32))),t.addFunctionExport(m.setArgumentsLength,ua.setArgumentsLength));let y=!o.length,E=e.exportStart;if(!y||E!=null){let T=l.signature;!y&&E!=null&&(t.addGlobal(m.started,B.I32,!0,t.i32(0)),o.unshift(t.global_set(m.started,t.i32(1))),o.unshift(t.if(t.global_get(m.started,B.I32),t.return())));let k=t.addFunction(l.internalName,T.paramRefs,T.resultRefs,an(l.getNonParameterLocalTypes()),t.flatten(o));l.finalize(t,k),E==null?t.setStart(k):!Ze(E)||t.hasExport(E)?this.error(110,Te.native.range,E):t.addFunctionExport(l.internalName,E)}return a&&this.shadowStack.walkModule(),n.lookup("ASC_RTRACE")!=null&&new su(this).walkModule(),t}initDummyMemory(){let e=this.options;this.module.setMemory(0,Yt.UNLIMITED_MEMORY,[],e.target,null,N.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let t=this.options,n=this.module,s=this.memorySegments,a=0,l=Yt.UNLIMITED_MEMORY,o=!1;(t.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),t.initialMemory&&(t.initialMemory<a?this.error(105,null,a.toString()):a=t.initialMemory),t.maximumMemory&&(t.maximumMemory<a?this.error(106,null,a.toString()):l=t.maximumMemory),t.sharedMemory&&(o=!0,t.maximumMemory||(this.error(107,null),o=!1),t.hasFeature(32)||(this.error(108,null),o=!1));let u=t.lowMemoryLimit;if(u){let c=i64_new(u&-16);i64_gt(e,c)&&this.error(104,null,i64_to_string(e),i64_to_string(c))}n.setMemory(a,l,s,t.target,t.exportMemory?ua.Memory:null,N.DefaultMemory,o),t.importMemory&&n.addMemoryImport(N.DefaultMemory,gn.DefaultNamespace,gn.Memory,o)}initDefaultTable(){let e=this.options,t=this.module;e.importTable&&(t.addTableImport(N.DefaultTable,gn.DefaultNamespace,gn.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(t.addTableExport(N.DefaultTable,ua.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,c=s.length;u<c;++u)a[u]=s[u].internalName;let l=n+s.length,o=Yt.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&t.setPassArgument("directize-initial-contents-immutable","true")),t.addFunctionTable(N.DefaultTable,l,o,a,t.i32(n))}compileModuleExports(e){let t=e.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,t,n=""){let s=this.module;switch(t.kind){case 4:{let a=t;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=t;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let c=l.thisType;if(c&&yn(c)||mn(l.returnType))this.desiresExportRuntime=!0;else{let f=l.parameterTypes;for(let _=0,d=f.length;_<d;++_)if(yn(f[_])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==16&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=t;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(t.internalName,o),!this.desiresExportRuntime){let u=a.type;(mn(u)||!a.is(8)&&yn(u))&&(this.desiresExportRuntime=!0)}a.type.kind==16&&this.module.setClosedWorld(!1)}a.type==p.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(t);let a=t.members;if(a){let l=n+e+es;for(let o=Map_keys(a),u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=assert(a.get(f));_.is(512)||this.compileModuleExport(f,_,l)}}return}case 3:{let a=t;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(t.internalName,l);return}break}}this.warning(235,t.identifierNode.range)}compileFileByPath(e,t){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+Qe))n=assert(s.get(a));else{this.error(6054,t.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let t=e.startFunction,n=t.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=t.flow;this.currentFlow=o;for(let u=e.source.statements,c=0,f=u.length;c<f;++c)this.compileTopLevelStatement(u[c],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,c=t.localsByIndex,f=c.length,_=new Array(f);for(let g=0;g<f;++g)_[g]=c[g].type.toRef();let d=u.addFunction(t.internalName,n.paramRefs,n.resultRefs,_,u.flatten(a));t.finalize(u,d),s.push(u.call(t.internalName,null,B.None))}}compileGlobalLazy(e,t){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)||this.hasConstantInitializer(e)?this.compileGlobal(e):(this.errorRelated(2448,t.range,e.identifierNode.range,e.internalName),!1)}hasConstantInitializer(e){let t=e.initializerNode;return t!=null&&t.evaluatesToConst}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let g=this.resolver.resolveType(a,null,e.parent);if(!g)return e.set(16777216),t.delete(e),!1;if(g==p.void)return this.error(1110,a.range),e.set(16777216),t.delete(e),!1;e.setType(g),this.program.checkTypeSupported(g,a),this.program.checkInlineStructValue(g,a,"a global")}else if(l){let g=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,p.auto,20),this.currentFlow=g,this.currentType==p.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),t.delete(e),!1;e.setType(this.currentType),this.program.checkInlineStructValue(this.currentType,l,"a global")}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),t.delete(e),!1;if(e.hasDecorator(512)){let g=e.internalName;return nr.has(g)&&assert(nr.get(g))(new qs(this,e)),t.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),c=e.is(8)||e.is(96),f=e.hasDecorator(64);if(e.is(32768))return c||this.options.hasFeature(2)?(Rx(e,e.declaration),this.program.markModuleImport(Ei,Pr,e),n.addGlobalImport(e.internalName,Ei,Pr,u,!c),t.delete(e),!this.desiresExportRuntime&&yn(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),t.delete(e),!1);let _=!1;if(l){if(!s){let g=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=g}if(!n.isConstExpression(s))if(c){let g=n.runExpression(s,1);g?s=g:_=!0}else _=!0;if(_&&re(s)==10){let g=assert(xs(s));if(!gf(n.getGlobal(g))){let y=this.program.elementsByName;y.has(g)&&assert(y.get(g)).is(32768)&&(_=!1)}}if(f)if(_)this.warning(206,l.range);else{switch(assert(re(s)==14),ce(s)){case B.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ae(s),0);break}case B.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(Be(s),Ge(s));break}case B.F32:{e.constantValueKind=2,e.constantFloatValue=Ce(s);break}case B.F64:{e.constantValueKind=2,e.constantFloatValue=Pe(s);break}default:return assert(!1),e.set(16777216),t.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let d=e.internalName;if(_){f&&this.error(212,Zt(9,e.decoratorNodes).range,"inline");let g=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),g=o.asNullable()),n.addGlobal(d,g.toRef(),!0,this.makeZero(g)),this.currentBody.push(n.global_set(d,s))}else f||n.addGlobal(d,u,!c,s);return t.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.resolver.resolveEnumType(e),n=this.pendingElements;n.add(e);let s=this.module,a=this.currentParent;this.currentParent=e;let l=null,o=!1,u=e.is(8)||e.hasDecorator(64),c=e.members;if(c)for(let f=Map_values(c),_=0,d=f.length;_<d;++_){let g=unchecked(f[_]);if(g.kind!=3)continue;let y=!1,E=g,T=E.valueNode;E.set(8388608);let k=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let F;if(T){if(F=this.compileExpression(T,t,1),re(F)!=14){let w=s.runExpression(F,1);w?F=w:(e.is(8)&&this.error(2474,T.range),y=!0)}}else if(l==null)F=s.i32(0);else if(o&&this.error(1061,E.identifierNode.range.atEnd),u){let w=i64_add(l.constantIntegerValue,i64_new(1));assert(!i64_high(w)),F=s.i32(i64_low(w))}else{F=s.binary(0,s.global_get(l.internalName,B.I32),s.i32(1));let w=s.runExpression(F,1);w?F=w:(e.is(8)&&this.error(2474,g.declaration.range),y=!0)}if(this.currentFlow=k,y)s.addGlobal(E.internalName,B.I32,!0,s.i32(0)),this.currentBody.push(this.makeGlobalAssignment(E,F,p.i32,!1)),o=!0;else{let w=ae(F);this.enumMemberValueFits(w,t)||this.error(6404,T?T.range:E.identifierNode.range,E.name,t.toString()),u?(E.setConstantIntegerValue(i64_new(w),t),E.is(1048576)&&s.addGlobal(E.internalName,B.I32,!1,F)):s.addGlobal(E.internalName,B.I32,!1,F),E.isImmutable=!0,o=!1}l=E}return this.currentParent=a,n.delete(e),!0}enumMemberValueFits(e,t){switch(t.kind){case 1:return e>=i8.MIN_VALUE&&e<=i8.MAX_VALUE;case 6:return e>=0&&e<=u8.MAX_VALUE;case 2:return e>=i16.MIN_VALUE&&e<=i16.MAX_VALUE;case 7:return e>=0&&e<=u16.MAX_VALUE;default:return!0}}ensureEnumToString(e,t){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,t.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${N.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),c=Map_values(n),f=1,_=u.length;f<=_;++f){let d=unchecked(u[_-f]),g=unchecked(c[_-f]);if(g.kind!=3)continue;let y=g,E=a?s.i32(i64_low(y.constantIntegerValue)):s.global_get(y.internalName,B.I32),T=s.if(s.binary(15,E,s.local_get(0,B.I32)),s.return(this.ensureStaticString(d)));o.push(T)}return o.push(s.unreachable()),s.addFunction(l,B.I32,B.I32,null,s.block(null,o,B.I32)),l}compileFunction(e,t=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!t){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let d=new Set;d.add(n[0].name.text);for(let g=1;g<s;g++){let y=n[g].name,E=y.text;d.has(E)?this.error(2300,y.range,E):d.add(E)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,c=e.prototype.bodyNode,f=e.declaration;if(assert(f.kind==59||f.kind==62),this.checkSignatureSupported(e.signature,f.signature),u.hasHiddenDestParam&&e.is(268435456)&&this.error(100,f.name.range,"an @inline struct return on a virtual method (the override stub has no destination parameter; deferred)"),u.hasHiddenDestParam&&(e.is(1048576)||e.hasAnyDecorator(384))&&this.error(100,f.name.range,"an @inline struct return across the module boundary (the host would have to pass the destination pointer; that is an ABI version, not this phase)"),e.is(1048576)||e.hasAnyDecorator(384)){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g){let E=unchecked(d[g]);if(!u.crossesByValueParam(g))continue;if(de.fieldCountOf(E)==1){let k=e.prototype.functionTypeNode.parameters[g];this.error(100,k.type.range,"an @inline struct with a single field at a host boundary (the C/WASM tool convention passes a one-scalar struct as the scalar itself, while this compiler passes records as pointers; both are `(param i32)`, so the disagreement is silent. Pass the scalar directly, or use a struct with two or more fields)");break}}}if(e.hasAnyDecorator(384)&&!u.externalBoundary){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g)if(this.isInlineStructType(unchecked(d[g]))){let E=e.prototype.functionTypeNode.parameters[g];this.error(100,E.type.range,"an @inline struct as an @external parameter (flattening the record into one WASM parameter per field would make its field list part of the host ABI; the by-value temp is the implemented path, so this declaration did not take it)");break}}if(e.is(1048576)&&!e.hasAnyDecorator(384)&&!u.exportByValParams){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g)if(this.isInlineStructType(unchecked(d[g]))){let E=e.prototype.functionTypeNode.parameters[g];this.error(100,E.type.range,"an @inline struct as an export parameter (flattening the record into one WASM parameter per field would make its field list part of the host ABI; the by-value pointer parameter is the implemented path, so this declaration did not take it)");break}}let _=0;if(c){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let E=e.decoratorNodes,T;(T=Zt(10,E))&&this.error(212,T.range,"external"),(T=Zt(11,E))&&this.error(212,T.range,"external.js")}let d=this.currentFlow,g=e.flow;this.currentFlow=g;let y=new Array;u.exportByValParams&&this.emitExportByValPrologue(e,y),this.compileFunctionBody(e,y)||y.push(o.unreachable()),this.currentFlow=d,_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,an(e.getNonParameterLocalTypes()),o.flatten(y,u.resultRefs))}else if(e.is(32768)){if(Rx(e,f),this.program.markModuleImport(Ei,Pr,e),o.addFunctionImport(e.internalName,Ei,Pr,u.paramRefs,u.resultRefs),_=o.getFunction(e.internalName),!this.desiresExportRuntime){let d=u.thisType;if(d&&mn(d)||yn(u.returnType))this.desiresExportRuntime=!0;else{let g=u.parameterTypes;for(let y=0,E=g.length;y<E;++y)if(mn(g[y])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let d=e.declaration.name.text,g=assert(e.parent.getMember(d));assert(g.kind==10);let y=g.instance;y&&y.isField&&(_=e.is(2048)?this.makeBuiltinFieldGetter(y):this.makeBuiltinFieldSetter(y),assert(e.is(8388608)))}_||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let g,y=e.prototype.functionTypeNode;if(u.returnType==p.v128)g=y.returnType.range;else{let E=u.getVectorValueOperandIndices()[0];g=y.parameters[E].range}this.warning(112,g,"v128")}return e.finalize(o,_),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,t){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(N.this_)):null,u=t.length;if(e.prototype.envKind==2){let c=assert(e.prototype.envClass),f=e.declaration.range.source,_=assert(this.program.filesByName.get(f.internalPath)),d=assert(_.getMember(c)),g=d.typeParameterNodes,y=null;if(g!=null&&g.length>0){let k=l.contextualTypeArguments,F=new Array(g.length);for(let w=0,R=g.length;w<R;++w){let C=g[w].name.text,M=k!=null?ee(k,C):null;if(M==null)return this.error(1140,e.declaration.range),!1;F[w]=M}y=F}let E=assert(this.resolver.resolveClass(d,y,new Map,1)),T=l.addScopedLocal(wx,E.type);l.setLocalFlag(T.index,8)}if(s.kind==34)t=this.compileStatements(s.statements,t);else{assert(s.kind==42),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let c=this.compileExpression(s.expression,a,1);l.canOverflow(c,a)||l.set(2),l.isNonnull(c,a)&&l.set(4),t?t.push(c):t=[c],l.is(256)||(l.canOverflow(c,a)||l.set(2),l.isNonnull(c,a)&&l.set(4),l.set(257))}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let c=assert(e.parent);assert(c.kind==7);let f=c;if(l.isAny(8256)||!l.is(256)){let _=new Array;_.push(this.makeConditionalAllocation(f,o.index)),this.makeFieldInitializationInConstructor(f,_);for(let d=t.length-1;d>=u;--d)t[d+1]=t[d];t[u]=n.flatten(_,B.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!f.hasDecorator(32)&&this.error(231,f.identifierNode.range),l.is(256)||(t.push(n.local_get(o.index,o.type.toRef())),l.set(261)),f.base&&!f.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=p.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;if(e.prototype.capturesThis){assert(!l.isInline);let c=assert(l.lookupLocal(N.this_));assert(!e.signature.thisType);let f=n.local_set(c.index,n.global_get(this.ensureEnvGlobal(),this.options.sizeTypeRef),c.type.isManaged);for(let _=t.length-1;_>=u;--_)t[_+1]=t[_];t[u]=f,l.setLocalFlag(c.index,8)}if(e.prototype.envKind==2){let c=assert(l.lookupLocal(wx)),f=n.local_set(c.index,n.global_get(this.ensureEnvGlobal(),this.options.sizeTypeRef),c.type.isManaged);for(let _=t.length-1;_>=u;--_)t[_+1]=t[_];t[u]=f}return!0}makeBuiltinFieldGetter(e){let t=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;t.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow,c=t.flow;return this.currentFlow=c,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,t.identifierNode)),this.currentFlow=u,n.addFunction(t.internalName,l,a,an(t.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let t=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged){let u=t.parent;if(assert(u.kind==7),u.type.isManaged){let c=this.program.linkInstance;this.compileFunction(c),o=n.block(null,[o,n.call(c.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],B.None)],B.None)}}return t.set(8388608),n.addFunction(t.internalName,ft([a,l]),B.None,null,o)}addAlignedMemorySegment(e,t=16){assert(Kr(t));let n=i64_align(this.memoryOffset,t),s=new Ji(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let t=this.program.computeBlockStart64(this.memoryOffset),n=new Ji(e,t);return this.memorySegments.push(n),this.memoryOffset=i64_add(t,i64_new(e.length)),n}ensureStaticString(e){let t=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(t)}ensureStaticStringPtr(e){let t=this.program,n=t.totalOverhead,s=assert(t.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let c=e.length,f=s.createBuffer(c<<1);for(let _=0;_<c;++_)gr(e.charCodeAt(_),f,n+(_<<1));a=this.addRuntimeMemorySegment(f),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let c=new Set;c.add(i64_low(o)),u.set(i64_high(o),c)}return o}writeStaticBuffer(e,t,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case B.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),be(ae(c),e,t),t+=1}break}case 2:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),gr(ae(c),e,t),t+=2}break}case 4:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Se(ae(c),e,t),t+=4}break}default:assert(!1)}break}case B.I64:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),qi(i64_new(Be(c),Ge(c)),e,t),t+=8}break}case B.F32:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),qr(Ce(c),e,t),t+=4}break}case B.F64:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Wr(Pe(c),e,t),t+=8}break}case B.V128:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),zp(ff(c),e,t),t+=16}break}case B.None:break;default:assert(!1)}return t}addStaticBuffer(e,t,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(t.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,t),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,t,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=Oi(t.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(t.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let t=this.program,n=e.memorySegment;if(!n){let s=this.ensureFunctionTableIndex(e),a=assert(this.resolver.resolveClass(t.functionPrototype,[e.type]));this.assertFunctionLayout(a);let l=a.createBuffer();assert(a.writeField("_index",s,l)),assert(a.writeField("_env",0,l)),e.memorySegment=n=this.addRuntimeMemorySegment(l)}return i64_add(n.offset,i64_new(t.totalOverhead))}ensureFunctionTableIndex(e){let t=e.tableIndex;if(t)return t;this.options.importTable||this.module.ensureFunctionTable(N.DefaultTable);let n=this.functionTable,s=this.options.tableBase;s||(s=1);let a=s+n.length;return n.push(e),e.tableIndex=a,a}compileTopLevelStatement(e,t){switch(e.kind){case 55:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],t);break}case 56:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 63:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],t);this.currentParent=a}break}case 51:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 58:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 39:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 40:{this.compileTopLevelStatement(e.declaration,t);break}case 46:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 59:case 62:case 61:case 69:case 64:break;default:{let n=this.compileStatement(e);re(n)!=22&&t.push(n);break}}}compileStatement(e){let t=this.module,n;switch(e.kind){case 34:{n=this.compileBlockStatement(e);break}case 35:{n=this.compileBreakStatement(e);break}case 36:{n=this.compileContinueStatement(e);break}case 37:{n=this.compileDoStatement(e);break}case 38:{n=this.compileEmptyStatement(e);break}case 42:{n=this.compileExpressionStatement(e);break}case 43:{n=this.compileForStatement(e);break}case 44:{n=this.compileForOfStatement(e);break}case 45:{n=this.compileIfStatement(e);break}case 47:{n=this.compileReturnStatement(e);break}case 48:{n=this.compileSwitchStatement(e);break}case 49:{n=this.compileThrowStatement(e);break}case 50:{n=this.compileTryStatement(e);break}case 51:{n=this.compileVariableStatement(e),n||(n=t.nop());break}case 52:{n=this.compileVoidStatement(e);break}case 53:{n=this.compileWhileStatement(e);break}case 64:{n=this.compileTypeDeclaration(e);break}case 54:{n=t.nop();break}default:assert(!1),n=t.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,t=null){let n=e.length;t||(t=new Array(n),t.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch(re(l)){case 1:if(!As(l)){for(let o=0,u=Ts(l);o<u;++o)t.push(Ss(l,o));break}default:t.push(l);case 22:}if(s.isAny(272))break}return t}compileBlockStatement(e){let t=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(t);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let t=this.currentFlow,n=e.name.text,s=t.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new at(n,t.sourceFunction,e,0);return t.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),t.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),t.unreachable()):(s.set(16),t.br(a))}compileContinueStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),t.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),t.unreachable()):(s.set(288),t.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let c=`do-loop|${l}`;this.currentFlow=a;let f=new Array,_=e.body;_.kind==34?this.compileStatements(_.statements,f):f.push(this.compileStatement(_)),a.popControlFlowLabel(l);let d=a.isAny(4128),g=a.isAny(2064),y=!a.isAny(272);if(!y&&!d)f.push(t.unreachable()),n.inherit(a),g||n.set(256);else{let T=this.compileExpression(e.condition,p.bool),k=this.makeIsTrueish(T,this.currentType,e.condition),F=this.evaluateCondition(k);if(F!=2&&(d||y)&&n.resetIfNeedsRecompile(a.forkThen(T),s))return this.currentFlow=n,this.doCompileDoStatement(e);d&&(f[0]=t.block(u,f),f.length=1,a.unset(256)),f.push(t.br(c,k)),n.inherit(a),F==1&&!g&&n.set(256)}this.currentFlow=n;let E=t.loop(c,t.flatten(f));return g&&(E=t.block(o,[E])),n.is(256)&&(E=t.block(null,[E,t.unreachable()])),E}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,p.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==42||o.kind==51),l.push(this.compileStatement(o)));let u,c,f,_=e.condition;if(_){if(u=this.compileExpression(_,p.bool),c=this.makeIsTrueish(u,this.currentType,_),f=this.evaluateCondition(c),f==2)return l.push(t.drop(c)),n.inherit(a),this.currentFlow=n,t.flatten(l)}else u=t.i32(1),c=u,f=1;let d=a.forkThen(u,!0),g=d.pushControlFlowLabel(),y=`for-break${g}`;d.breakLabel=y;let E=`for-continue|${g}`;d.continueLabel=E;let T=`for-loop|${g}`;this.currentFlow=d;let k=new Array,F=e.body;F.kind==34?this.compileStatements(F.statements,k):k.push(this.compileStatement(F)),d.popControlFlowLabel(g),d.breakLabel=null,d.continueLabel=null;let w=!d.isAny(272),R=d.isAny(4128),C=d.isAny(2064);R&&(k[0]=t.block(E,k),k.length=1),f==1?a.inherit(d):a.mergeBranch(d);let M=R||w;if(M){let G=e.incrementor;if(G&&(this.currentFlow=a,k.push(this.compileExpression(G,p.void,9))),k.push(t.br(T)),n.resetIfNeedsRecompile(d.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let W=t.if(c,t.flatten(k));return M&&(W=t.loop(T,W)),C&&(W=t.block(y,[W])),l.push(W),n.is(256)&&l.push(t.unreachable()),t.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let t=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return t.block(null,[t.drop(l),this.compileStatement(n)]);case 2:return s?t.block(null,[t.drop(l),this.compileStatement(s)]):t.drop(l)}let u=this.currentFlow,c=new Array,f=u.forkThen(a);this.currentFlow=f,n.kind==34?this.compileStatements(n.statements,c):c.push(this.compileStatement(n)),this.currentFlow=u;let _=u.forkElse(a);if(s){this.currentFlow=_;let d=new Array;return s.kind==34?this.compileStatements(s.statements,d):d.push(this.compileStatement(s)),u.inheritAlternatives(f,_),this.currentFlow=u,t.if(l,t.flatten(c),t.flatten(d))}else return f.isAny(272)?(u.inherit(_),u.mergeSideEffects(f)):u.inheritAlternatives(f,_),this.currentFlow=u,t.if(l,t.flatten(c))}compileReturnStatement(e){let t=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){if(this.isInlineStructType(a))return this.compileSretReturnStatement(e,a);let o=1;s.sourceFunction.is(1048576)&&(o|=4),n=this.compileExpression(l,a,o),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=26&&s.set(16384)}else if(a!=p.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,t.unreachable();if(s.set(257),s.isInline){let o=assert(s.inlineReturnLabel);return n?this.currentType==p.void?t.block(null,[n,t.br(o)]):t.br(o,0,n):t.br(o)}return n?this.currentType==p.void?t.block(null,[n,t.return()]):t.return(n):t.return()}compileSwitchStatement(e){let t=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,p.auto),l=this.currentType;if(!s)return t.drop(a);let o=this.currentFlow,c=o.getTempLocal(l).index,f=new Array(1+s);f[0]=t.local_set(c,a,l.isManaged);let _=1,d=-1,g=o.pushControlFlowLabel();for(let k=0;k<s;++k){let F=n[k];if(F.isDefault){d=k;continue}let w=e.condition,R=t.local_get(c,l.toRef()),C=l,M=F.label,W=this.compileExpression(assert(F.label),l,1),G=this.currentType,j=this.compileCommutativeCompareBinaryExpressionFromParts(77,w,R,C,M,W,G,l,e);f[_++]=t.br(`case${k}|${g}`,j)}f[_]=t.br(d>=0?`case${d}|${g}`:`break|${g}`);let y=t.block(`case0|${g}`,f,B.None),E=null,T=null;for(let k=0;k<s;++k){let w=n[k].statements,R=w.length,C=o.fork(!0,!1);E&&C.mergeBranch(E),this.currentFlow=C;let M=`break|${g}`;C.breakLabel=M;let W=k==s-1,G=W?M:`case${k+1}|${g}`,j=new Array(1+R);j[0]=y;let z=1,U=!0;for(let Y=0;Y<R;++Y){let O=this.compileStatement(w[Y]);if(re(O)!=22&&(j[z++]=O),C.isAny(272)){U=!1;break}}j.length=z,E=U?C:null;let Q=C.isAny(2064);C.unset(2064),Q||W&&U?T?T.inheritAlternatives(T,C):T=C:U||o.mergeSideEffects(C),this.currentFlow=o,y=t.block(G,j,B.None)}return o.popControlFlowLabel(g),d>=0?T?o.inherit(T):o.set(256):T&&o.mergeBranch(T),this.currentFlow=o,y}compileThrowStatement(e){this.currentFlow.set(264);let n=new Array,s=e.value,a=null;if(s.kind==19){let l=s.args;l.length&&(a=l[0])}return n.push(this.makeAbort(a,e)),this.module.flatten(n)}compileTryStatement(e){return this.error(100,e.range,"Exceptions"),this.module.unreachable()}compileLazyLocal(e,t,n,s){let a=this.module,l=this.resolver,o=e.name.text,u=n.expression,c=null;if(t){if(c=l.resolveType(t,s,s.sourceFunction,he(s.contextualTypeArguments)),!c)return 0;this.program.checkTypeSupported(c,t)}else{if(c=l.resolveExpression(u,s,p.auto,0),!c)return 0;if(c==p.void)return this.error(2322,e.range,c.toString(),"<auto>"),0}if(this.inlineStructFieldsOf(c)!=null)return this.error(100,e.range,"a '@lazy' binding of an @inline struct value"),0;if(s.getScopedLocal(o)!=null)return this.error(2300,e.name.range,o),0;let f=s.addScopedLocal(o,c),_=s.targetFunction.addLocal(p.bool,o+"$lazyDone",null);s.unsetLocalFlag(_.index,-1),s.setLocalFlag(f.index,8),c.isShortIntegerValue&&(s.unsetLocalFlag(f.index,-1),s.setLocalFlag(f.index,10));let d=this.lazyLocals;return d==null&&(d=new Map,this.lazyLocals=d),d.set(f,new y_(f.index,_.index,u)),a.local_set(_.index,a.i32(0),!1)}compileVariableStatement(e){let t=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let c=n[u],f=c.name.text,_=null,d=0,g=null;c.is(16384)&&this.warning(239,c.name.range);let y=c.type,E=c.initializer;if(E!=null&&E.kind==32){let F=this.compileLazyLocal(c,y,E,a);F!=0&&l.push(F);continue}if(y){if(_=o.resolveType(y,a,a.sourceFunction,he(a.contextualTypeArguments)),!_)continue;this.program.checkTypeSupported(_,y);let F=this.inlineStructFieldsOf(_);if(F!=null){this.compileSroaLocal(c,_,F,E,a,l);continue}if(E){let w=this.pendingElements,R=a.addScopedDummyLocal(f,_,e);w.add(R),d=this.compileExpression(E,_,1),g=this.currentType,w.delete(R),a.freeScopedDummyLocal(f)}}else if(E){if(E.kind==8){let R=a.lookupLocal(E.text);if(R!=null&&R.fieldLocals!=null){let C=assert(this.inlineStructFieldsOf(R.type));this.compileSroaLocal(c,R.type,C,E,a,l);continue}}let F=this.pendingElements,w=a.addScopedDummyLocal(f,p.auto,e);if(F.add(w),d=this.compileExpression(E,p.auto),g=this.currentType,F.delete(w),a.freeScopedDummyLocal(f),this.currentType==p.void){this.error(2322,c.range,this.currentType.toString(),"<auto>");continue}_=g}else{this.error(1110,c.name.range.atEnd);continue}let T=c.is(8),k=!1;if(T)if(d){let F=t.runExpression(d,1);if(F){d=F;let w=null;switch(ce(d)){case B.I32:{w=new ye(f,-1,_,a.targetFunction),w.setConstantIntegerValue(i64_new(ae(d),0),_);break}case B.I64:{w=new ye(f,-1,_,a.targetFunction),w.setConstantIntegerValue(i64_new(Be(d),Ge(d)),_);break}case B.F32:{w=new ye(f,-1,_,a.targetFunction),w.setConstantFloatValue(Ce(d),_);break}case B.F64:{w=new ye(f,-1,_,a.targetFunction),w.setConstantFloatValue(Pe(d),_);break}}if(w){let R=a.scopedLocals;if(!R)a.scopedLocals=R=new Map;else if(R.has(f)){let C=assert(R.get(f));return this.errorRelated(2300,c.name.range,C.declaration.name.range,f),this.module.unreachable()}R.set(f,w),k=!0}}}else this.error(1155,c.range);if(!k){let F=this.inlineStructFieldsOf(_);if(F!=null){this.compileSroaLocal(c,_,F,E,a,l);continue}let w;if(c.isAny(24)||a.isInline){let R=a.getScopedLocal(f);R?(R.declaration.range.source.isNative?this.error(2300,c.name.range,f):this.errorRelated(2300,c.name.range,R.declaration.name.range,f),w=R):w=a.addScopedLocal(f,_),T&&a.setLocalFlag(w.index,1)}else{let R=a.lookupLocal(f);if(R){this.errorRelated(2300,c.name.range,R.declaration.name.range,f);continue}w=a.targetFunction.addLocal(_,f,c),a.unsetLocalFlag(w.index,-1),T&&a.setLocalFlag(w.index,1)}d?l.push(this.makeLocalAssignment(w,d,g||_,!1)):w.type.isShortIntegerValue&&a.setLocalFlag(w.index,2)}}return this.currentType=p.void,l.length==0?0:t.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,p.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return t.drop(l);let u=n.forkThen(a,!0),c=u.pushControlFlowLabel(),f=`while-break|${c}`;u.breakLabel=f;let _=`while-continue|${c}`;u.continueLabel=_,this.currentFlow=u;let d=new Array,g=e.body;g.kind==34?this.compileStatements(g.statements,d):d.push(this.compileStatement(g)),d.push(t.br(_)),u.popControlFlowLabel(c);let y=u.isAny(4128),E=u.isAny(2064),T=!u.isAny(272);if((y||T)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let F=!1;if(o==1)n.inherit(u),E||(F=!0,n.set(256));else{let R=n.forkElse(a);!T&&!E?(n.inherit(R),n.mergeSideEffects(u)):n.inheritAlternatives(u,R)}this.currentFlow=n;let w=[t.loop(_,t.if(l,t.flatten(d)))];return F&&w.push(t.unreachable()),t.block(f,w)}compileInlineConstant(e,t,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&t==p.f32))return this.module.f64(e.constantFloatValue);this.currentType=p.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,t,n=0){for(;e.kind==22;)e=e.expression;this.currentType=t,t==p.void&&(n|=8);let s;switch(e.kind){case 9:{s=this.compileAssertionExpression(e,t,n);break}case 10:{s=this.compileBinaryExpression(e,t,n);break}case 11:{s=this.compileCallExpression(e,t,n);break}case 13:{s=this.compileCommaExpression(e,t,n);break}case 14:{s=this.compileElementAccessExpression(e,t,n);break}case 16:{s=this.compileFunctionExpression(e,t,n);break}case 8:case 15:case 20:case 26:case 25:case 27:{s=this.compileIdentifierExpression(e,t,n);break}case 17:{s=this.compileInstanceOfExpression(e,t,n);break}case 18:{s=this.compileLiteralExpression(e,t,n);break}case 19:{s=this.compileNewExpression(e,t,n);break}case 23:{s=this.compilePropertyAccessExpression(e,t,n);break}case 24:{s=this.compileTernaryExpression(e,t,n);break}case 29:{s=this.compileUnaryPostfixExpression(e,t,n);break}case 30:{s=this.compileUnaryPrefixExpression(e,t,n);break}case 31:{s=this.compileLoweredAwaitExpression(e);break}case 32:{let o=e;this.warning(6398,o.range),s=this.compileExpression(o.expression,t,n);break}case 33:{let o=e;s=o.expr,this.currentType=o.type;break}case 12:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=t.nonNullableType&&(n&2?(s=this.convertExpression(s,a,t,!0,e),this.currentType=a=t):n&1&&(s=this.convertExpression(s,a,t,!1,e),this.currentType=a=t)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,t,n,s,a){let l=this.module;if(t.kind==26)return n.kind==26?e:(this.error(2322,a.range,t.toString(),n.toString()),l.unreachable());if(n.kind==26)return l.drop(e);if(t.isReference||n.isReference)return this.currentFlow.isNonnull(e,t)?t=t.nonNullableType:s&&t.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,t,a)),t=t.nonNullableType),t.isAssignableTo(n)?(assert(n.isExternalReference||t.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(t)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(t.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,t,n,a)),this.currentType=n,e):(this.error(2322,a.range,t.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!t.isReference&&!n.isReference),n.kind==t.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||t.isVectorValue))return this.error(2322,a.range,t.toString(),n.toString()),l.unreachable();if(t.isAssignableTo(n)||s||this.error(200,a.range,t.toString(),n.toString()),t.isFloatValue)if(n.isFloatValue)t.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(t.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(t.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,t);let o;n.kind==11?t.isLongIntegerValue?t.isSignedIntegerValue?o=39:o=41:t.isSignedIntegerValue?o=35:o=37:t.isLongIntegerValue?t.isSignedIntegerValue?o=40:o=42:t.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else t==p.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,p.v128,a):t.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(t.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,t)):t.isShortIntegerValue?t.size<n.size&&(e=this.ensureSmallIntegerWrap(e,t)):!s&&!this.options.isWasm64&&t.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,t.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,t,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,he(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,t.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,t){let n=e.left,s=this.compileExpression(n,t),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,t,e)}compileCommutativeCompareBinaryExpressionFromParts(e,t,n,s,a,l,o,u,c){let f=this.module,_=Le(e),d=Me.fromBinaryToken(e),g=s.lookupOverload(d,this.program),y=o.lookupOverload(d,this.program);if(g&&y&&g!=y)return this.error(240,c.range,_,g.internalName,y.internalName),this.currentType=u,f.unreachable();if(g)return this.compileCommutativeBinaryOverload(g,t,n,s,a,l,o,c);if(y)return this.compileCommutativeBinaryOverload(y,a,l,o,t,n,s,c);let T=p.commonType(s,o,u,!1);if(!T)return this.error(2365,c.range,_,s.toString(),o.toString()),this.currentType=u,f.unreachable();switch(T.isFloatValue&&((Lo(f,l)||Lo(f,n))&&this.warning(907,c.range),(No(l)||No(n))&&this.warning(908,c.range)),n=this.convertExpression(n,s,T,!1,t),s=T,l=this.convertExpression(l,o,T,!1,a),o=T,this.currentType=p.bool,e){case 79:case 77:return this.makeEq(n,l,T,c);case 80:case 78:return this.makeNe(n,l,T,c);default:return assert(!1),f.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,t){let n=this.module,s=e.left,a=e.right,l,o,u,c,f,_=e.operator,d=Le(_);l=this.compileExpression(s,t),o=this.currentType;let g=Me.fromBinaryToken(_),y=o.lookupOverload(g,this.program);if(y)return this.compileBinaryOverload(y,s,l,o,a,e);if(u=this.compileExpression(a,o),c=this.currentType,f=p.commonType(o,c,t,!0),!f||!f.isNumericValue)return this.error(2365,e.range,d,o.toString(),c.toString()),this.currentType=t,n.unreachable();switch(l=this.convertExpression(l,o,f,!1,s),o=f,u=this.convertExpression(u,c,f,!1,a),c=f,this.currentType=p.bool,_){case 73:return this.makeLt(l,u,f);case 74:return this.makeGt(l,u,f);case 75:return this.makeLe(l,u,f);case 76:return this.makeGe(l,u,f);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,t,n){let s=this.module,a=e.left,l=e.right,o,u,c,f,_,d,g=!1;switch(e.operator){case 73:case 74:case 75:case 76:return this.compileNonCommutativeCompareBinaryExpression(e,t);case 79:case 77:case 80:case 78:return this.compileCommutativeCompareBinaryExpression(e,t);case 102:return this.compileAssignment(a,l,t);case 103:g=!0;case 82:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(5);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"+",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeAdd(o,c,_);break}case 104:g=!0;case 83:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(6);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"-",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeSub(o,c,_);break}case 105:g=!0;case 85:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(7);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"*",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeMul(o,c,_);break}case 106:g=!0;case 84:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(10);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"**",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makePow(o,c,_,e);break}case 107:g=!0;case 86:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(8);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"/",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeDiv(o,c,_);break}case 108:g=!0;case 87:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(9);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"%",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeRem(o,c,_,e);break}case 109:g=!0;case 90:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(14);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShl(o,c,f);break}case 110:g=!0;case 91:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(15);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShr(o,c,f);break}case 111:g=!0;case 92:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(16);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShru(o,c,f);break}case 112:g=!0;case 93:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(11);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeAnd(o,c,_);break}case 113:g=!0;case 94:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(12);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeOr(o,c,_);break}case 114:g=!0;case 95:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(13);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeXor(o,c,_);break}case 98:{let F=this.currentFlow,w=n&4;o=this.compileExpression(a,t.exceptVoid,w),u=this.currentType;let R=F.forkThen(o);if(this.currentFlow=R,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,a);let C=this.evaluateCondition(o);C==2?d=o:(c=this.compileExpression(l,u,w),f=this.currentType,c=this.makeIsTrueish(c,f,l),C==1?(d=c,F.inherit(R)):(d=s.if(o,c,s.i32(0)),F.mergeBranch(R),F.noteThen(d,R))),this.currentFlow=F,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,w),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"&&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_;let C=s.runExpression(o,1);C&&(o=C),c=this.convertExpression(c,f,_,!1,l),f=_;let M=this.makeIsTrueish(o,this.currentType,a),W=this.evaluateCondition(M);if(W!=0)d=W==1?c:o;else if(d=s.tryCopyTrivialExpression(o))d=s.if(M,c,d);else{let G=F.getTempLocal(u);F.canOverflow(o,u)||F.setLocalFlag(G.index,2),F.isNonnull(o,u)&&F.setLocalFlag(G.index,4),d=s.if(this.makeIsTrueish(s.local_tee(G.index,o,u.isManaged),u,a),c,s.local_get(G.index,u.toRef()))}F.mergeBranch(R),F.noteThen(d,R),this.currentFlow=F,this.currentType=_}break}case 99:{let F=this.currentFlow,w=n&4;o=this.compileExpression(a,t.exceptVoid,w),u=this.currentType;let R=F.forkElse(o);if(this.currentFlow=R,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,a);let C=this.evaluateCondition(o);C==1?d=o:(c=this.compileExpression(l,u,w),f=this.currentType,c=this.makeIsTrueish(c,f,l),C==2?(d=c,F.inherit(R)):(d=s.if(o,s.i32(1),c),F.mergeBranch(R),F.noteElse(d,R))),this.currentFlow=F,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,w),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"||",u.toString(),f.toString()),this.currentType=t,s.unreachable();let C=u.is(512)&&f.is(512);o=this.convertExpression(o,u,_,!1,a),u=_;let M=s.runExpression(o,1);M&&(o=M),c=this.convertExpression(c,f,_,!1,l),f=_;let W=this.makeIsTrueish(o,this.currentType,a),G=this.evaluateCondition(W);if(G!=0)d=G==1?o:c;else if(d=s.tryCopyTrivialExpression(o))d=s.if(W,d,c);else{let z=F.getTempLocal(u).index;F.canOverflow(o,u)||F.setLocalFlag(z,2),F.isNonnull(o,u)&&F.setLocalFlag(z,4),d=s.if(this.makeIsTrueish(s.local_tee(z,o,u.isManaged),u,a),s.local_get(z,u.toRef()),c)}F.mergeBranch(R),F.noteElse(d,R),this.currentFlow=F,this.currentType=C?_:_.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=p.bool,s.unreachable();default:{assert(!1),d=this.module.unreachable();break}}if(!g)return d;let E=this.resolver;if(a.kind==14){let F=a,w=E.resolveExpression(F.expression,this.currentFlow);if(w&&w.kind==14)return this.compileFixedArrayElementAccess(F,w,!0,t,0,null,d)}let T=E.lookupExpression(a,this.currentFlow);if(!T)return s.unreachable();let k=E.getTypeOfElement(T);return k||(k=p.void),this.currentType.isStrictlyAssignableTo(k)?this.makeAssignment(T,d,this.currentType,l,E.currentThisExpression,E.currentElementExpression,t!=p.void):(this.error(2322,e.range,this.currentType.toString(),k.toString()),s.unreachable())}makeLt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(17,e,t);case 4:return s.binary(42,e,t);case 5:return s.binary(234,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(18,e,t);case 9:return s.binary(43,e,t);case 10:return s.binary(235,e,t);case 11:return s.binary(59,e,t);case 12:return s.binary(72,e,t)}return assert(!1),s.unreachable()}makeGt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(21,e,t);case 4:return s.binary(46,e,t);case 5:return s.binary(238,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(22,e,t);case 9:return s.binary(47,e,t);case 10:return s.binary(239,e,t);case 11:return s.binary(61,e,t);case 12:return s.binary(74,e,t)}return assert(!1),s.unreachable()}makeLe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(19,e,t);case 4:return s.binary(44,e,t);case 5:return s.binary(236,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(20,e,t);case 9:return s.binary(45,e,t);case 10:return s.binary(237,e,t);case 11:return s.binary(60,e,t);case 12:return s.binary(73,e,t)}return assert(!1),s.unreachable()}makeGe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(23,e,t);case 4:return s.binary(48,e,t);case 5:return s.binary(240,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(24,e,t);case 9:return s.binary(49,e,t);case 10:return s.binary(241,e,t);case 11:return s.binary(62,e,t);case 12:return s.binary(75,e,t)}return assert(!1),s.unreachable()}makeEq(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(15,e,t);case 4:case 9:return a.binary(40,e,t);case 5:case 10:return a.binary(232,e,t);case 11:return a.binary(57,e,t);case 12:return a.binary(70,e,t);case 13:return a.unary(70,a.binary(76,e,t));case 18:case 19:case 20:case 21:return a.ref_eq(e,t);case 22:return a.string_eq(e,t);case 23:case 24:case 25:case 16:case 15:case 17:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(16,e,t);case 4:case 9:return a.binary(41,e,t);case 5:case 10:return a.binary(233,e,t);case 11:return a.binary(58,e,t);case 12:return a.binary(71,e,t);case 13:return a.unary(67,a.binary(77,e,t));case 18:case 19:case 20:case 21:return a.unary(20,a.ref_eq(e,t));case 22:return a.unary(20,a.string_eq(e,t));case 23:case 24:case 25:case 16:case 15:case 17:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,t);case 4:case 9:return s.binary(25,e,t);case 5:case 10:return s.binary(217,e,t);case 11:return s.binary(50,e,t);case 12:return s.binary(63,e,t)}return assert(!1),s.unreachable()}makeSub(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,t);case 4:case 9:return s.binary(26,e,t);case 5:case 10:return s.binary(218,e,t);case 11:return s.binary(51,e,t);case 12:return s.binary(64,e,t)}return assert(!1),s.unreachable()}makeMul(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,t);case 4:case 9:return s.binary(27,e,t);case 5:case 10:return s.binary(219,e,t);case 11:return s.binary(52,e,t);case 12:return s.binary(65,e,t)}return assert(!1),s.unreachable()}makePow(e,t,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,t,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let u=ae(e),c=ae(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(N.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,t],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=i64_new(Be(e),Ge(e)),u=i64_new(Be(t),Ge(t)),c=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(c),i64_high(c))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(N.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&re(e)==14&&re(t)==14)if(l){let u=i64_new(Be(e),Ge(e)),c=i64_new(Be(t),Ge(t)),f=i64_pow(u,c);return this.currentType=n,a.i64(i64_low(f),i64_high(f))}else{let u=ae(e),c=ae(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?N.ipow64:N.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,t],s)}case 11:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Ce(e),u=Ce(t);return this.currentType=n,a.f32(f32(ll(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(N.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(N.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Pe(e),u=Pe(t);return this.currentType=n,a.f64(ll(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(N.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(N.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeDiv(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(3,e,t);case 4:return s.binary(28,e,t);case 5:return s.binary(220,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(4,e,t);case 9:return s.binary(29,e,t);case 10:return s.binary(221,e,t);case 11:return s.binary(53,e,t);case 12:return s.binary(66,e,t)}return assert(!1),s.unreachable()}makeRem(e,t,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return a.binary(5,e,t);case 4:return a.binary(30,e,t);case 5:return a.binary(222,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return a.binary(6,e,t);case 9:return a.binary(31,e,t);case 10:return a.binary(223,e,t);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(N.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(N.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(N.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(N.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeShl(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,t);case 4:case 9:return s.binary(35,e,t);case 5:case 10:return s.binary(227,e,t)}return assert(!1),s.unreachable()}makeShr(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:return s.binary(11,e,t);case 4:return s.binary(36,e,t);case 5:return s.binary(228,e,t);case 8:return s.binary(12,e,t);case 9:return s.binary(37,e,t);case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeShru(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,t);case 4:case 9:return s.binary(37,e,t);case 5:case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeAnd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,t);case 4:case 9:return s.binary(32,e,t);case 5:case 10:return s.binary(224,e,t)}return assert(!1),s.unreachable()}makeOr(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,t);case 3:case 8:return s.binary(8,e,t);case 4:case 9:return s.binary(33,e,t);case 5:case 10:return s.binary(225,e,t)}return assert(!1),s.unreachable()}makeXor(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,t);case 3:case 8:return s.binary(9,e,t);case 4:case 9:return s.binary(34,e,t);case 5:case 10:return s.binary(226,e,t)}return assert(!1),s.unreachable()}compileUnaryOverload(e,t,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,t,n,s,a,l){let o,u=e.signature,c=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,t),o=c[0]):(n=this.convertExpression(n,s,c[0],!1,t),o=c[1]);let f=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,f],l)}compileCommutativeBinaryOverload(e,t,n,s,a,l,o,u){let c=e.signature,f=c.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(c.thisType),!1,t),l=this.convertExpression(l,o,f[0],!1,a)):(n=this.convertExpression(n,s,f[0],!1,t),l=this.convertExpression(l,o,f[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,t,n){let a=this.program.resolver,l=this.currentFlow;if(e.kind==14){let g=e,y=a.resolveExpression(g.expression,l);if(y&&y.kind==14)return this.compileFixedArrayElementAccess(g,y,!0,n,0,t)}{let g=this.resolveSroaReceiver(e),y=this.resolveSroaReceiver(t);if(g!=null&&y!=null){if(!assert(g.type).equals(assert(y.type)))return this.error(2322,t.range,y.type.toString(),g.type.toString()),this.module.unreachable();let E=new Array;return this.copySroaValue(assert(y.fieldLocals),assert(g.fieldLocals),E),this.currentType=p.void,this.module.flatten(E)}}let o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,c=a.currentElementExpression,f;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();f=o.type,o.hasDecorator(8192)&&this.checkUnsafe(e);break}case 10:{let g=o,y=a.resolveProperty(g);if(!y)return this.module.unreachable();o=y}case 11:{let g=o;if(g.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let y=g.setterInstance;if(!y)return this.error(2540,e.range,g.internalName),this.module.unreachable();assert(y.signature.parameterTypes.length==1),f=y.signature.parameterTypes[0],y.hasDecorator(8192)&&this.checkUnsafe(e);break}case 15:{let g=o.parent;assert(g.kind==7);let y=g,E=l.is(32768),T=y.lookupOverload(2,E);if(!T)return y.lookupOverload(1,E)?this.error(2542,e.range,y.internalName):this.error(2329,e.range,y.internalName),this.module.unreachable();let k=T.signature.parameterTypes;assert(k.length==2),f=k[1],T.hasDecorator(8192)&&this.checkUnsafe(e),!E&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(f!=p.void);let _=this.compileExpression(t,f),d=this.currentType;return f.isNullableReference&&this.currentFlow.isNonnull(_,d)&&(f=f.nonNullableType),this.makeAssignment(o,this.convertExpression(_,d,f,!1,t),f,t,u,c,n!=p.void)}makeAssignment(e,t,n,s,a,l,o){let u=this.module,c=this.currentFlow;switch(e.kind){case 1:{let f=e;return c.isLocalFlag(f.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeLocalAssignment(f,t,n,o)}case 0:{let f=e;return this.compileGlobalLazy(f,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeGlobalAssignment(f,t,n,o):u.unreachable()}case 10:{let f=this.resolver.resolveProperty(e);if(!f)return u.unreachable();e=f}case 11:{let f=e;if(a!=null){let d=this.resolveSroaReceiver(a);if(d!=null){let g=assert(d.fieldLocals);if(!g.has(f.name))return this.error(100,s.range,"assigning to a refused field of an @inline struct (the field was refused at declaration)"),u.unreachable();let y=assert(g.get(f.name));if(y.index<0)return this.error(100,s.range,"assigning a nested @inline struct value as a whole (the field is several leaves, not one value; assign one of its fields)"),u.unreachable();let E=u.local_set(y.index,t,!1);return this.currentType=o?y.type:p.void,E}}if(f.isField&&this.isInlineStructType(f.type))return this.error(100,s.range,"assigning a whole value to an @inline struct field (the value has no address, so there is nothing to store; assign the field's own fields, e.g. `w.inner.a = ...`)"),this.currentType=o?f.type:p.void,u.unreachable();if(f.isField){let d=c.sourceFunction.is(524288);if(f.is(64)){let g=f.initializerNode;if(!d||g)return this.error(2540,s.range,f.internalName),u.unreachable()}a=assert(a),d&&a.kind==26&&c.setThisFieldFlag(f,1)}let _=f.setterInstance;if(!_)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(_.signature.parameterTypes.length==1),assert(_.signature.returnType==p.void),f.is(262144)){let d=assert(_.signature.thisType),g=this.compileExpression(assert(a),d,33);if(!o)return this.makeCallDirect(_,[g,t],s);let y=c.getTempLocal(n),E=n.toRef(),T=u.block(null,[this.makeCallDirect(_,[g,u.local_tee(y.index,t,n.isManaged,E)],s),u.local_get(y.index,E)],E);return this.currentType=n,T}else{if(!o)return this.makeCallDirect(_,[t],s);let d=c.getTempLocal(n),g=n.toRef(),y=u.block(null,[this.makeCallDirect(_,[u.local_tee(d.index,t,n.isManaged,g)],s),u.local_get(d.index,g)],g);return this.currentType=n,y}}case 15:{let _=e.parent;assert(_.kind==7);let d=_;assert(d.kind==7);let g=c.is(32768),y=d.lookupOverload(1,g);if(!y)return this.error(2329,s.range,d.internalName),u.unreachable();let E=d.lookupOverload(2,g);if(!E)return this.error(2542,s.range,d.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();assert(E.signature.parameterTypes.length==2);let T=d.type,k=this.compileExpression(assert(a),T,33),F=E.signature.parameterTypes[0],w=y.signature.parameterTypes[0];if(!F.equals(w))return this.errorRelated(237,y.identifierAndSignatureRange,E.identifierAndSignatureRange,d.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();let R=this.compileExpression(assert(l),F,1),C=this.currentType;if(o){let M=c.getTempLocal(T),W=c.getTempLocal(C),G=y.signature.returnType;return u.block(null,[this.makeCallDirect(E,[u.local_tee(M.index,k,T.isManaged),u.local_tee(W.index,R,C.isManaged),t],s),this.makeCallDirect(y,[u.local_get(M.index,M.type.toRef()),u.local_get(W.index,W.type.toRef())],s)],G.toRef())}else return this.makeCallDirect(E,[k,R,t],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,t,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=p.void);let u=e.index;return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),s?(this.currentType=o,a.local_tee(u,t,o.isManaged)):(this.currentType=p.void,a.local_set(u,t,o.isManaged))}makeGlobalAssignment(e,t,n,s){let a=this.module,l=e.type;assert(l!=p.void);let o=l.toRef();return t=this.ensureSmallIntegerWrap(t,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,t),a.global_get(e.internalName,o)],o)):(this.currentType=p.void,a.global_set(e.internalName,t))}checkNoManagedStructCopy(e,t){if(!e.prototype.internalName.startsWith(N.COPY_STRUCT))return!0;let n=e.typeArguments;if(!n)return!0;for(let s=0,a=n.length;s<a;++s){let l=unchecked(n[s]).classReference;if(l!=null&&l.hasDecorator(2048)){let o=t.typeArguments;return this.error(100,o&&o.length>s?unchecked(o[s]).range:t.range,"COPY_STRUCT on an @managed struct (a raw byte copy bypasses the GC write barrier)"),!1}}return!0}compileCallExpression(e,t,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==25){let f=this.currentFlow,_=f.sourceFunction;if(!_.is(524288))return this.error(2337,e.range),s.unreachable();let d=assert(_.parent);assert(d.kind==7);let g=d,y=g.base;if(!y||g.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let E=assert(f.lookupLocal(N.this_)),T=this.options.sizeTypeRef,k=this.ensureConstructor(y,e);this.checkFieldInitialization(y,e);let F=this.compileCallDirect(k,e.args,e,s.local_get(E.index,T));return f.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(f.set(192),this.currentType=p.void,s.local_set(E.index,F,g.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let f=l;if(f.hasDecorator(512))return this.compileCallExpressionBuiltin(f,e,t);let _=this.resolver.maybeInferCall(e,f,a);if(!_)return this.module.unreachable();if(!this.checkNoManagedStructCopy(_,e))return this.module.unreachable();l=_}case 5:{let f=l;if(!this.checkNoManagedStructCopy(f,e))return this.module.unreachable();let _=0;return f.is(262144)&&(_=this.compileExpression(assert(o),assert(f.signature.thisType),33)),this.compileCallDirect(f,e.args,e,_,n)}}let u=this.compileExpression(e.expression,p.auto),c=this.currentType.getSignature();if(c)return this.compileCallIndirect(c,u,e.args,e,0,t==p.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let f=l.getterPrototype;f&&this.infoRelated(6234,e.range,f.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,t,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=t,o.args=n,o.range=s):this._reusableCallExpression=o=h.createCallExpression(e,t,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,t,n){e.hasDecorator(8192)&&this.checkUnsafe(t);let s=null,a=e.typeParameterNodes,l=t.typeArguments;if(t.typeArguments){e.is(65536)||this.error(2315,t.range,e.internalName);let _=e.internalName==m.changetype;_&&(this.resolver.allowInlineView=!0),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,he(this.currentFlow.contextualTypeArguments),t),_&&(this.resolver.allowInlineView=!1,s!=null&&s.length==1&&l!=null&&l.length==1&&l[0].memoryModel==3&&this.resolver.markViewCall(t))}let o=t.expression,u=new tu(this,e,s,t.args,o.kind==23?o.expression:null,n,t,!1),c;return e.is(262144)?c=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:c=e.internalName,assert(x.has(c)),assert(x.get(c))(u)}checkCallSignature(e,t,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return t<o?(this.error(o<u?2555:2554,s.range,o.toString(),t.toString()),!1):t>u&&!l?(this.error(2554,s.range,u.toString(),t.toString()),!1):!0}checkUnsafe(e,t=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(t?this.errorRelated(101,e.range,t.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,t,n){if(!t.hasRest)return e;let s=e.length,a=t.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new ue(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Yr(l,o),c=e.slice(0,a-1);return c.push(u),c}compileCallDirect(e,t,n,s=0,a=0){let l=t.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(8192)&&this.checkUnsafe(n);let u=0;o.hasHiddenDestParam&&(u=this.sretDestSlot,this.sretDestSlot=0),t=this.adjustArgumentsForRestParams(t,o,n),l=t.length;let c=this.currentFlow.sourceFunction;if(c.is(524288)&&n.isAccessOnThis){let C=c.parent;assert(C.kind==7),this.checkFieldInitialization(C,n)}let f=e.hasDecorator(64)||this.currentFlow.is(131072);if(!o.hasHiddenDestParam&&f&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let C=this.inlineStack;if(C.includes(e))this.warning(217,n.range,e.internalName);else{let M=o.parameterTypes;assert(l<=M.length);let W=new Array(l);for(let j=0;j<l;++j)W[j]=this.compileExpression(t[j],M[j],1);C.push(e);let G=this.makeCallInline(e,W,s,(a&8)!=0);return C.pop(),G}}let _=o.parameterTypes,d=0;for(let C=0;C<l;++C)d+=o.wasmParamSlotCountOf(C);let g=s?d+1:d,y=o.hasHiddenDestParam;if(this.sretDiscardMark=null,y&&u==0){this.ensureSretStack();let C=this.currentFlow.getTempLocal(p.u32);this.sretDiscardMark=C,u=this.makeSretAddress(C)}let E=g+(y?1:0),T=new Array(E),k=0;s&&(T[0]=s,k=1),y&&(T[k++]=u),this.externalTempMark=null,this.externalTempSize=0;let F=null,w=0,R=0;if(o.byValPointerParams){let C=0;for(let M=0;M<l;++M)o.isByValPointerParam(M)&&(C+=this.sretSizeOf(unchecked(_[M])));C>0&&(this.ensureSretStack(),F=this.currentFlow.getTempLocal(p.u32),R=C)}for(let C=0;C<l;++C){let M=unchecked(_[C]);this.rootNextOperand=!1,F!=null&&o.isByValPointerParam(C)?(T[k++]=this.makeExternalTempArgument(unchecked(t[C]),M,assert(F),w),w+=this.sretSizeOf(M)):o.isViewParam(C)?unchecked(T[k++]=this.compileExpression(unchecked(t[C]),M,1)):k+=this.expandSroaArgument(unchecked(t[C]),M,T,k),this.rootNextOperand&&(this.rootNextOperand=!1,o.isByValPointerParam(C)||unchecked(T[k-1]=this.module.tostack(unchecked(T[k-1]))))}return assert(k==E),this.externalTempMark=F,this.externalTempSize=R,this.makeCallDirect(e,T,n,(a&8)!=0)}makeCallInline(e,t,n=0,s=!1){let a=this.module,l=t?t.length:0,u=e.signature.parameterTypes,c=u.length,f=this.currentFlow,_=Jt.createInline(f.targetFunction,e),d=[];if(n){let E=assert(e.parent);assert(E.kind==7);let T=E,k=assert(e.signature.thisType),F=_.addScopedLocal(N.this_,k);d.push(a.local_set(F.index,n,k.isManaged)),_.setLocalFlag(F.index,8);let w=T.base;w&&_.addScopedAlias(N.super_,w.type,F.index)}else assert(!e.signature.thisType);for(let E=0;E<l;++E){let T=t[E],k=u[E],F=_.addScopedLocal(e.getParameterName(E),k);f.canOverflow(T,k)||_.setLocalFlag(F.index,2),_.isNonnull(T,k)&&_.setLocalFlag(F.index,4),d.push(a.local_set(F.index,T,k.isManaged)),_.setLocalFlag(F.index,8)}this.currentFlow=_;let g=e.is(524288);g&&_.set(65536);for(let E=l;E<c;++E){let T=u[E],k=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[E].initializer),T,1),F=_.addScopedLocal(e.getParameterName(E),T);d.push(this.makeLocalAssignment(F,k,T,!1))}if(_.unset(65536),this.compileFunctionBody(e,d),g){let E=e.parent;assert(E.kind==7),this.checkFieldInitializationInFlow(E,_)}let y=_.returnType;return this.currentFlow=f,this.currentType=y,a.block(_.inlineReturnLabel,d,this.resultRefOf(y))}ensureArgumentsLength(){let e=m.argumentsLength;if(!this.builtinArgumentsLength){let t=this.module;this.builtinArgumentsLength=t.addGlobal(e,B.I32,!0,t.i32(0))}return e}ensureEnvGlobal(){let e=m.env;if(!this.builtinEnv){let t=this.module,n=this.options.sizeTypeRef;this.builtinEnv=t.addGlobal(e,n,!0,n==B.I64?t.i64(0):t.i32(0))}return e}ensureVarargsStub(e){let t=e.varargsStub;if(t)return t;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,c=u,f=s.length,_=f;o&&(++c,++_);let d=assert(_-c),g=new Array(c),y=0,E=new Array,T=this.module,k=n.thisType;k&&(g[0]=T.local_get(0,k.toRef()),y=1);for(let z=0;z<u;++z,++y){let U=s[z];g[y]=T.local_get(y,U.toRef())}assert(y==c),t=e.newStub("varargs",f),e.varargsStub=t;let F=this.currentFlow,w=t.flow;e.is(524288)&&w.set(65536),this.currentFlow=w;let R=d+1,C=new Array(R),M=`of${d}`;for(let z=0;z<R;++z)C[z]=`${z}${M}`;let W=this.ensureArgumentsLength(),G=T.block(C[0],[T.block("outOfRange",[T.switch(C,"outOfRange",u?T.binary(1,T.global_get(W,B.I32),T.i32(u)):T.global_get(W,B.I32))]),T.unreachable()]);for(let z=0;z<d;++z,++y){let U=s[u+z],Q=a[u+z],Y=Q.initializer,O;if(Q.parameterKind===2){let ie=new Yr([],Q.range.atEnd);O=this.compileArrayLiteral(ie,U,2),O=T.local_set(y,O,U.isManaged)}else Y?(O=this.compileExpression(Y,U,1),O=T.local_set(y,O,U.isManaged)):(this.error(215,Q.range),O=T.unreachable());G=T.block(C[z+1],[G,O]),g[y]=T.local_get(y,U.toRef())}assert(y==_),E.push(G),E.push(this.makeCallDirect(e,g,e.declaration.name)),this.currentFlow=F;let j=T.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,an(t.getNonParameterLocalTypes()),T.flatten(E,l.toRef()));return t.set(8388608),t.finalize(T,j),t}ensureOverrideStub(e){let t=e.overrideStub;if(t)return t;t=e.newStub("override"),e.overrideStub=t;let n=this.module;return t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),t}finalizeOverrideStub(e){let t=this.ensureOverrideStub(e);if(t.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,c=1+assert(e.signature).wasmParamCount(),f=new ys(this.module,n.load(4,!1,n.binary(a==B.I64?26:1,n.local_get(0,a),a==B.I64?n.i64(8):n.i32(8)),B.I32)),_=this.resolver.resolveOverrides(e);if(_){let E=new Map;for(let T=0,k=_.length;T<k;++T){let F=_[T];if(!F.is(8388608))continue;let w=F.signature,R=e.signature;if(!w.isAssignableTo(R,!0)){this.error(2322,F.identifierNode.range,w.toString(),R.toString());continue}let C=w.parameterTypes,M=C.length,W=new Array(1+M);W[0]=n.local_get(0,a);for(let O=1;O<=u;++O)W[O]=n.local_get(O,l[O-1].toRef());let G=!1;for(let O=u;O<M;++O)W[1+O]=this.makeZero(C[O]),G=!0;let j=G?this.ensureVarargsStub(F).internalName:F.internalName,z=w.returnType.toRef(),U=new Array;G&&U.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==p.void?(U.push(n.call(j,W,z)),U.push(n.return())):U.push(n.return(n.call(j,W,z)));let Q=assert(F.getBoundClassOrInterface());f.addCase(Q.id,U);let Y=Q.extenders;if(Y)for(let O=Set_values(Y),ie=0,H=O.length;ie<H;++ie){let ge=O[ie],oe=ge.prototype.instanceMembers;oe&&oe.has(e.declaration.name.text)||(!E.has(ge)||!assert(E.get(ge)).extends(Q))&&(E.set(ge,Q),f.addOrReplaceCase(ge.id,U))}}}let d,g=e.getBoundClassOrInterface();if(!e.is(128)&&!(g&&g.kind==9)){let E=new Array(u);E[0]=n.local_get(0,a);for(let T=0,k=l.length;T<k;++T)E[1+T]=n.local_get(1+T,l[T].toRef());d=n.call(e.internalName,E,o.toRef())}else d=n.unreachable();t.ref&&n.removeFunction(t.internalName),t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,[B.I32],n.block(null,[f.render(c),d],o.toRef())),t.set(8388608)}needToStack(e){let t=this.module.runExpression(e,0);if(t==0)return!0;let n=pf(t,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,t){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let c=t[0];this.needToStack(c)&&(t[s]=n.tostack(c))}++s}let l=e.parameterTypes,o=e.wasmParamCount(),u=0;for(;s<t.length&&!(u>=o);){let c=e.sourceIndexOf(u);if(c<0){++s,++u;continue}if(unchecked(l[c]).isManaged&&!e.isByValPointerParam(c)){let _=t[s];this.needToStack(_)&&(t[s]=n.tostack(_))}++s,++u}}checkCallArity(e,t,n){let s=e.signature,a=s.wasmParamCount()+(s.thisType?1:0),l=t?t.length:0;if(l==a)return!0;let o=this.diagnostics;for(let u=0,c=o.length;u<c;++u)if(o[u].category==3)return!0;return this.error(6412,n.range,e.internalName,l.toString(),a.toString()),!1}makeCallDirect(e,t,n,s=!1){let a=this.sretDiscardMark;this.sretDiscardMark=null;let l=this.externalTempMark,o=this.externalTempSize;if(this.externalTempMark=null,this.externalTempSize=0,e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let F=this.inlineStack;if(F.includes(e))this.warning(217,n.range,e.internalName);else{F.push(e);let w;if(e.is(262144)){let R=assert(t);assert(R.length),w=this.makeCallInline(e,R.slice(1),R[0],s)}else w=this.makeCallInline(e,t,0,s);return F.pop(),w}}let u=this.module,c=t?t.length:0,f=c,d=e.signature.requiredParameters,g=e.signature.parameterTypes,y=g.length,E=y;if(e.is(262144)&&(++d,++E,--f),e.signature.hasHiddenDestParam&&(++d,++E,--f),assert(c>=d),!this.compileFunction(e))return u.unreachable();let T=e.signature.returnType;if(c<E){t||(t=new Array(E),t.length=0);let F=e.prototype.functionTypeNode.parameters;assert(F.length==g.length);let w=!0;for(let R=f;R<y;++R){let C=F[R].initializer;if(C){if(C.compilesToConst){t.push(this.compileExpression(C,g[R],1));continue}let M=this.resolver.lookupExpression(C,e.flow,g[R],1);if(M&&M.kind==0){let W=M;if(this.compileGlobalLazy(W,C)&&W.is(33554432)){t.push(this.compileInlineConstant(W,g[R],1));continue}}}t.push(this.makeZero(g[R])),w=!1}if(!w&&!e.is(2097152)){let R=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return u.unreachable();e.flow.flags=R.flow.flags;let C=e.signature.resultRefs,M=t[E-1];assert(!(ks(M,u.ref)&32));let W=g[y-1];if(t[E-1]=u.block(null,[u.global_set(this.ensureArgumentsLength(),u.i32(f)),M],W.toRef()),!this.checkCallArity(e,t,n))return u.unreachable();this.operandsTostack(e.signature,t);let G=u.call(e.internalName,t,C);return C!=B.None&&s?(G=u.drop(G),this.currentType=p.void):this.currentType=T,a!=null&&(G=this.wrapSretCall(assert(a),G,T,n),this.currentType=s?p.void:T),G}}if(e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),!this.checkCallArity(e,t,n))return u.unreachable();t&&this.operandsTostack(e.signature,t);let k=u.call(e.internalName,t,e.signature.resultRefs);return this.currentType=T,a!=null&&(k=this.wrapSretCall(assert(a),k,T,n),this.currentType=s?p.void:T),l!=null&&(k=this.wrapExternalTempCall(assert(l),o,k,T,n),this.currentType=s?p.void:T),k}compileCallIndirect(e,t,n,s,a=0,l=!1){let o=n.length;if(e.hasHiddenDestParam)return this.error(100,s.range,"calling an @inline struct-returning function through a function value (the hidden destination parameter needs a direct call)"),this.currentType=e.returnType,this.module.unreachable();if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,c=new Array(u),f=0;a&&(c[0]=a,f=1);let _=e.parameterTypes;for(let d=0;d<o;++d,++f)c[f]=this.compileExpression(n[d],_[d],1);return assert(f==u),this.makeCallIndirect(e,t,s,c,l)}makeCallIndirect(e,t,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,f=e.requiredParameters,_=e.parameterTypes,d=e.returnType,g=_.length,y=g;if(e.thisType&&(++f,++y,--u),assert(o>=f),o<y){s||(s=new Array(y),s.length=0);let U=e.parameterTypes;for(let Q=u;Q<g;++Q)s.push(this.makeZero(U[Q]))}let E=new Array,T=this.options.sizeTypeRef,k=this.currentFlow.getTempLocal(this.options.usizeType),F=this.ensureEnvGlobal(),w=this.options.usizeType.byteSize,R=this.options.usizeType.byteSize,C=this.currentFlow.getTempLocal(this.options.usizeType);E.push(l.local_set(C.index,l.global_get(F,T),!1)),E.push(l.global_set(F,l.load(R,!1,l.local_tee(k.index,t,!0),T,w))),t=l.local_get(k.index,T);let M=this.ensureArgumentsLength(),W=l.block(null,[l.global_set(M,l.i32(u)),l.load(4,!1,t,B.I32,lu)],T);s&&this.operandsTostack(e,s);let G=l.call_indirect(null,W,s,e.paramRefs,e.resultRefs);this.currentType=d;let j=l.global_set(F,l.local_get(C.index,T));if(d==p.void)return E.push(G),E.push(j),l.flatten(E,B.None);let z=this.currentFlow.getTempLocal(d);return E.push(l.local_set(z.index,G,d.isManaged)),E.push(j),E.push(l.local_get(z.index,d.toRef())),l.flatten(E,d.toRef())}compileCommaExpression(e,t,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],p.void,9);return l[a]=this.compileExpression(s[a],t,n),this.module.flatten(l,this.currentType.toRef())}compileFixedArrayElementAccess(e,t,n,s,a,l=null,o=0){let u=this.module,c=t.fixedArrayElementType,f=c.byteSize,_=this.compileFixedArrayElementAddress(e,t);if(n){let d=o||this.compileExpression(assert(l),c,1);if(s==p.void)return this.currentType=p.void,u.store(f,_,d,c.toRef(),0,f);let g=this.currentFlow.getTempLocal(c);return this.currentType=c,c.isManaged&&this.currentFlow.setLocalFlag(g.index,8),u.block(null,[u.local_set(g.index,d,c.isManaged),u.store(f,_,u.local_get(g.index,c.toRef()),c.toRef(),0,f),u.local_get(g.index,c.toRef())],c.toRef())}return this.currentType=c,u.load(f,c.isSignedIntegerValue,_,c.toRef(),0,f)}compileFixedArrayElementAddress(e,t){let n=this.module,s=t.fixedArrayElementType,a=this.resolver.resolveExpression(e.expression,this.currentFlow);if(!a)return this.module.unreachable();let l=this.compileExpression(e.expression,a,1),o=this.compileExpression(e.elementExpression,p.i32,1),u=n.binary(227,this.options.isWasm64?n.unary(23,o):o,this.options.isWasm64?n.i64(s.alignLog2):n.i32(s.alignLog2));return n.binary(217,l,u)}compileElementAccessExpression(e,t,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,p.auto,1);if(o&&o.kind==2){let c=this.compileExpression(e.elementExpression,p.i32,1),f=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,f==null?s.unreachable():s.call(f,[c],B.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){if(u.kind==14)return this.compileFixedArrayElementAccess(e,u,!1,t,n);let c=u.getClassOrWrapper(this.program);if(c){let f=this.currentFlow.is(32768),_=c.lookupOverload(1,f);if(_){let d=assert(_.signature.thisType),g=this.compileExpression(a,d,1);return!f&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(_,[e.elementExpression],e,g,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,t,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||t!=p.void,c=new lt(u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,l,s,0),f=ee(Vi(),e);f&&(c.envKind=f.kind,c.envClass=f.envClass);let _,d=he(a.contextualTypeArguments),g=this.module,y=t.signatureReference;if(y){let k=c.functionTypeNode,F=k.parameters,w=F.length,R=y.parameterTypes,C=R.length;if(w>C)return this.error(2554,e.range,C.toString(),w.toString()),g.unreachable();for(let U=0;U<w;++U){let Q=F[U];if(!De(Q.type)){let Y=this.resolver.resolveType(Q.type,a,l.parent,d);if(!Y)return g.unreachable();if(!R[U].isStrictlyAssignableTo(Y))return this.error(2322,Q.range,R[U].toString(),Y.toString()),g.unreachable()}}let M=y.returnType;if(!De(k.returnType)){let U=this.resolver.resolveType(k.returnType,a,l.parent,d);if(!U)return g.unreachable();if(M==p.void?U!=p.void:!U.isStrictlyAssignableTo(M))return this.error(2322,k.returnType.range,U.toString(),M.toString()),g.unreachable()}let W=y.thisType,G=k.explicitThisType;if(G){if(!W)return this.error(2332,G.range),g.unreachable();let U=this.resolver.resolveType(G,a,l.parent,d);if(!U)return g.unreachable();if(!W.isStrictlyAssignableTo(U))return this.error(2322,G.range,W.toString(),U.toString()),g.unreachable()}let j=de.create(this.program,R,M,W,C);_=new Lt(c.name,c,null,j,d),_.flow.outer=a;let z=this.compileFunction(_);if(this.currentType=y.type,!z)return g.unreachable()}else{if(_=this.resolver.resolveFunction(c,null,d),!_)return this.module.unreachable();_.flow.outer=a;let k=this.compileFunction(_);if(this.currentType=_.signature.type,!k)return g.unreachable()}let E=this.currentType,T;if(_.prototype.envKind==2)T=this.makeEnvFunctionValue(_,assert(Or().get(e)));else if(_.prototype.capturesThis)T=this.makeCapturingFunctionValue(_);else{let k=this.ensureRuntimeFunction(_);T=this.options.isWasm64?g.i64(i64_low(k),i64_high(k)):g.i32(i64_low(k))}if(this.currentType=E,!u){let k=_.name,F=a.getScopedLocal(k);if(F)F.declaration.range.source.isNative?this.error(2300,s.name.range,k):this.errorRelated(2300,s.name.range,F.declaration.name.range,k);else{let w=_.type,R=a.addScopedLocal(_.name,w);a.setLocalFlag(R.index,9),T=g.local_tee(R.index,T,w.isManaged)}}return T}assertFunctionLayout(e){assert(e.offsetof("_index")==lu),assert(e.offsetof("_env")==this.options.usizeType.byteSize)}makeCapturingFunctionValue(e){let t=this.module,n=this.currentFlow,s=this.resolver,a=assert(s.resolveClass(this.program.functionPrototype,[e.type]));this.assertFunctionLayout(a);let l=assert(n.lookupLocal(N.this_)),o=new Array,u=n.getTempLocal(a.type);o.push(t.local_set(u.index,this.makeAllocation(a),a.type.isManaged));let c=t.local_get(u.index,a.type.toRef());return o.push(t.store(4,c,t.i32(this.ensureFunctionTableIndex(e)),B.I32,lu)),o.push(t.store(this.options.usizeType.byteSize,c,t.local_get(l.index,l.type.toRef()),this.options.sizeTypeRef,this.options.usizeType.byteSize)),o.push(t.local_get(u.index,a.type.toRef())),t.flatten(o,a.type.toRef())}makeEnvFunctionValue(e,t){let n=this.module,s=this.currentFlow,a=this.resolver,l=assert(a.resolveClass(this.program.functionPrototype,[e.type]));this.assertFunctionLayout(l);let o=assert(s.lookupLocal(t)),u=new Array,c=s.getTempLocal(l.type);u.push(n.local_set(c.index,this.makeAllocation(l),l.type.isManaged));let f=n.local_get(c.index,l.type.toRef());return u.push(n.store(4,f,n.i32(this.ensureFunctionTableIndex(e)),B.I32,lu)),u.push(n.store(this.options.usizeType.byteSize,f,n.local_get(o.index,o.type.toRef()),this.options.sizeTypeRef,this.options.usizeType.byteSize)),u.push(n.local_get(c.index,l.type.toRef())),n.flatten(u,l.type.toRef())}maybeCompileEnclosingSource(e){let t=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(t)),assert(n.get(t)).is(8388608)||this.compileFileByPath(t,e)}compileIdentifierExpression(e,t,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 20:{let c=this.options;if(t.isReference){let f=t.getClass();if(f)return this.currentType=f.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0);let _=t.getSignature();return _?(this.currentType=_.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0)):this.makeZero(t)}return this.currentType=c.usizeType,this.warning(226,e.range,this.currentType.toString()),c.isWasm64?s.i64(0):s.i32(0)}case 27:return this.currentType=p.bool,s.i32(1);case 15:return this.currentType=p.bool,s.i32(0);case 26:{let c=l.signature.thisType;if(!c){if(l.prototype.capturesThis){let _=assert(a.lookupLocal(N.this_));return a.set(64),this.currentType=_.type,s.local_get(_.index,_.type.toRef())}return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable()}if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let _=l.parent;assert(_.kind==7),this.checkFieldInitialization(_,e)}let f=assert(a.lookupLocal(N.this_));return a.set(64),this.currentType=c,s.local_get(f.index,c.toRef())}case 25:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let c=a.lookupLocal(N.this_);if(c){let _=assert(c.type.getClass()).base;if(_)return this.currentType=_.type,s.local_get(c.index,_.type.toRef())}}if(l.is(262144)){let c=assert(l.parent);assert(c.kind==7);let _=c.base;if(_){let d=_.type;return this.currentType=d,s.local_get(0,d.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==p.void&&(this.currentType=p.i32),s.unreachable();switch(u.kind){case 1:{let c=u,f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=this.lazyLocals;if(_!=null){let E=ee(_,c);if(E!=null)return this.compileLazyLocalRead(c,E,e)}let d=c.index;if(a.isLocalFlag(d,8)||this.error(2454,e.range,c.name),c.isViewLocal)return this.currentType=f,s.local_get(d,B.I32);if(c.fieldLocals!=null||c.isViewParam||d<0)return this.error(100,e.range,"reading an @inline struct value as a whole (a value has no address; read a field, or copy it with `let q: P = p`)"),this.currentType=f,s.unreachable();assert(d>=0);let g=a.isLocalFlag(d,4,!1);if(f.isNullableReference&&g&&(!f.isExternalReference||this.options.hasFeature(1024))?this.currentType=f.nonNullableType:this.currentType=f,!c.declaredByFlow(a))return this.error(100,e.range,"Closures"),s.unreachable();let y=s.local_get(d,f.toRef());return g&&f.isNullableExternalReference&&this.options.hasFeature(1024)&&(y=s.ref_as_nonnull(y)),y}case 0:{let c=u;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(assert(f!=p.void),c.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(c,e,t);if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=u;return u.is(8388608)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),s.i32(i64_low(c.constantIntegerValue))):s.global_get(c.internalName,B.I32)):(this.error(2651,e.range),this.currentType=p.i32,s.unreachable())}case 4:{let c=u,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null,he(a.contextualTypeArguments));if(!_||!this.compileFunction(_))return s.unreachable();if(_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=_.type,s.unreachable();if(t.isExternalReference)return this.currentType=p.func,s.ref_func(_.internalName,Fs(_.type));let d=this.ensureRuntimeFunction(_);return this.currentType=_.signature.type,this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),s.unreachable()}compileLazyLocalRead(e,t,n){let s=this.module,a=this.currentFlow,l=e.type,o=t.valueIndex,u=t.doneIndex,c=this.compileExpression(t.expression,l,1);if(!c)return s.unreachable();l.isShortIntegerValue&&(c=this.ensureSmallIntegerWrap(c,l));let f=this.currentType;c=this.convertExpression(c,f,l,!1,t.expression);let _=s.local_set(o,c,l.isManaged),d=s.local_set(u,s.i32(1),!1),g=s.if(s.unary(20,s.local_get(u,B.I32)),s.block(null,[_,d],B.None)),y=o,E=a.isLocalFlag(y,4,!1);return l.isNullableReference&&E&&(!l.isExternalReference||this.options.hasFeature(1024))?this.currentType=l.nonNullableType:this.currentType=l,this.options.sourceMap&&this.addDebugLocation(g,n.range),s.block(null,[g,s.local_get(y,this.currentType.toRef())],this.currentType.toRef())}compileIdentifierExpressionBuiltin(e,t,n){e.hasDecorator(8192)&&this.checkUnsafe(t,e.identifierNode);let s=e.internalName;return assert(At.has(s)),assert(At.get(s))(new qs(this,e,n,t))}compileLoweredAwaitExpression(e){let t=ee(nu(),e);if(!t)return this.error(100,e.range,"the async lowering transform did not run"),this.module.unreachable();let n=this.resolver.resolveExpression(e,this.currentFlow,p.auto,0);if(!n)return this.module.unreachable();if(n==p.void)return this.currentType=p.void,this.module.nop();if(n.isReference)return this.error(100,e.range,"a reference-typed await result"),this.module.unreachable();if(!n.isMemory)return this.error(203,e.range,"await",n.toString()),this.module.unreachable();let s;n==p.f32||n==p.f64||n==p.i64||n==p.u64?s=16:s=8;let a=this.compileExpression(t.recordExpression,p.auto,0);return this.currentType=n,this.module.load(n.byteSize,n.isSignedIntegerValue,a,n.toRef(),s,n.byteSize)}compileInstanceOfExpression(e,t,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let c=u;if(c.is(65536))return this.makeInstanceofClass(e,c)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,he(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=p.bool,this.module.unreachable())}makeInstanceofType(e,t){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,t),l=this.currentType;if(this.currentType=p.bool,t.isValue)return n.maybeDropCondition(a,n.i32(l==t?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!t.isNullableReference){if(l.nonNullableType.isAssignableTo(t))return n.binary(o==B.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let c=s.getTempLocal(l).index;return n.if(n.unary(o==B.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(c,o)],B.I32))}}else{if(l.isAssignableTo(t))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{let c=s.getTempLocal(l).index;return n.if(n.unary(o==B.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(c,o)],B.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let t=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,B.I32,null,s.unreachable()),t}finalizeInstanceOf(e,t){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==B.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),B.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let d=c[f];o.add(d)}}if(o)for(let u=Set_values(o),c=0,f=u.length;c<f;++c){let _=u[c];l.push(s.br("is_instance",s.binary(15,s.local_get(1,B.I32),s.i32(_.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,B.None),l.length=1,l.push(s.i32(1)),s.removeFunction(t),s.addFunction(t,a,B.I32,[B.I32],s.block(null,l,B.I32))}makeInstanceofClass(e,t){let n=this.module,s=this.compileExpression(e.expression,p.auto),a=this.currentType,l=a.toRef();this.currentType=p.bool;let o=a.getClass();if(o){if(o.extendsPrototype(t))return a.isNullableReference?n.binary(l==B.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(t.extends(o.prototype)){let f=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==B.I64?21:20,n.local_tee(f,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(t),[n.local_get(f,l)],B.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let t=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,B.I32,null,s.unreachable()),t}finalizeAnyInstanceOf(e,t){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==B.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),B.I32),!1));let u=new Set;for(let c=Map_values(l),f=0,_=c.length;f<_;++f){let d=c[f];if(d.isInterface){let g=d.implementers;if(g)for(let y=Set_values(g),E=0,T=y.length;E<T;++E){let k=y[E];u.add(k)}}else{u.add(d);let g=d.extenders;if(g)for(let y=Set_values(g),E=0,T=y.length;E<T;++E){let k=y[E];u.add(k)}}}for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let d=c[f];a.push(n.br("is_instance",n.binary(15,n.local_get(1,B.I32),n.i32(d.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,B.None),a.length=1,a.push(n.i32(1)),n.removeFunction(t),n.addFunction(t,s,B.I32,[B.I32],n.block(null,a,B.I32))}compileLiteralExpression(e,t,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,t,n);case 0:{let l=e.value;return s&&(l=-l),t==p.f32?a.f32(l):(this.currentType=p.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,t);this.currentType=o;let u=l.value,c=1;switch(s&&(o.isFloatValue?c=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(c*i64_to_f32(u));case 12:return a.f64(c*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,t);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=t,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,t){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,t){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,c=this.program.stringInstance,f=c.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let Q=l[0],Y=s[0].length,O=s[1].length;if(!Y&&!O)return this.makeToString(this.compileExpression(Q,f),this.currentType,Q);let ie=Y!=0;if(ie^O!=0){let H,ge,oe=this.makeToString(this.compileExpression(Q,f),this.currentType,Q);ie?(H=this.ensureStaticString(s[0]),ge=oe):(H=oe,ge=this.ensureStaticString(s[1]));let pe=assert(c.getMethod("concat"));return this.makeCallDirect(pe,[H,ge],Q)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let Q=l[0],Y=l[1],O=this.makeToString(this.compileExpression(Q,f),this.currentType,Q),ie=this.makeToString(this.compileExpression(Y,f),this.currentType,Y),H=assert(c.getMethod("concat"));return this.makeCallDirect(H,[O,ie],e)}let F=new Array(o),w=new Array;s[0].length>0&&w.push(this.ensureStaticString(s[0]));for(let Q=1;Q<a;++Q)F[Q-1]=w.length,w.push(u.usize(0)),s[Q].length>0&&w.push(this.ensureStaticString(s[Q]));let R=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[f])),C=this.addStaticBuffer(f,w,R.id);this.program.OBJECTInstance.writeField("gcInfo",3,C.buffer,0);let M=i64_add(C.offset,i64_new(this.program.totalOverhead)),W=assert(R.getMethod("join")),G=assert(R.lookupOverload(2,!0)),j=new Array(2*o+1),z=new Array(o),U=this.currentFlow;for(let Q=0;Q<o;++Q){let Y=l[Q],O=U.getTempLocal(f);z[Q]=O,j[Q]=u.local_set(O.index,this.makeToString(this.compileExpression(Y,f),this.currentType,Y),!0)}for(let Q=0;Q<o;++Q)j[o+Q]=this.makeCallDirect(G,[u.usize(M),u.i32(F[Q]),u.local_get(z[Q].index,f.toRef())],e);return j[2*o]=this.makeCallDirect(W,[u.usize(M),this.ensureStaticString("")],e),u.flatten(j,f.toRef())}let _=this.program.templateStringsArrayInstance,d=_,g=this.resolver.lookupExpression(n,this.currentFlow,p.auto,1);if(g)switch(g.kind){case 4:{let F=this.resolver.resolveFunction(g,null,new Map,1);if(!F)break;g=F}case 5:{let w=g.signature.parameterTypes;if(w.length){let R=w[0].getClass();R&&!R.extendsPrototype(_.prototype)&&(d=assert(this.resolver.resolveClass(this.program.arrayPrototype,[f])))}break}}let y=e.rawParts;assert(y.length==a);let E=new Array(a);for(let F=0;F<a;++F)E[F]=this.ensureStaticString(s[F]);let T;if(d==_){let F=new Array(a);for(let R=0;R<a;++R)F[R]=this.ensureStaticString(y[R]);T=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E),d);let w=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,F));d.writeField("raw",i64_add(w.offset,i64_new(this.program.totalOverhead)),T.buffer)}else T=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E),d);let k=l.slice();return k.unshift(h.createCompiledExpression(u.usize(i64_add(T.offset,i64_new(this.program.totalOverhead))),d.type,Te.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,k,e.range,f)}compileArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=t.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,t,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let c=u,f=c.type,_=c.getTypeArgumentsTo(l.arrayPrototype)[0],d=a.getTempLocal(this.options.usizeType),g=e.elementExpressions,y=g.length,E=new Array(y),T=!_.isExternalReference;for(let M=0;M<y;++M){let W=g[M];if(W.kind!=21){let G=this.compileExpression(W,_,1);if(ce(G)!=_.toRef())T=!1;else{let j=s.runExpression(G,1);j?G=j:T=!1}E[M]=G}else E[M]=this.makeZero(_)}if(T){let M=l.totalOverhead,W=this.addStaticBuffer(_,E),G=i64_add(W.offset,i64_new(M));if(n&16){let j=this.addStaticArrayHeader(_,W),z=i64_add(j.offset,i64_new(M));return this.currentType=f,l.options.isWasm64?this.module.i64(i64_low(z),i64_high(z)):this.module.i32(i64_low(z))}else return this.makeNewArray(c,y,G,e)}let k=c.lookupOverload(2,!0);if(!k)return this.error(2542,e.range,c.internalName),this.currentType=f,s.unreachable();let F=f.toRef(),w=new Array;w.push(s.local_set(d.index,this.makeNewArray(c,y,i64_new(0),e),f.isManaged));let R=assert(c.getMember("dataStart"));assert(R.kind==10);let C=R.instance;if(!C)return s.unreachable();assert(C.isField&&C.memoryOffset>=0);for(let M=0;M<y;++M)w.push(s.call(k.internalName,[s.local_get(d.index,F),s.i32(M),E[M]],B.None));return w.push(s.local_get(d.index,F)),y&&this.compileFunction(k),this.currentType=f,s.flatten(w,F)}makeNewArray(e,t,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(t),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(t.getClass()),u=o.type,f=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],_=a.getTempLocal(this.options.usizeType),d=e.elementExpressions,g=d.length,y=new Array(g),E=!f.isExternalReference;for(let C=0;C<g;++C){let M=d[C];if(M.kind!=21){let W=this.compileExpression(M,f,1),G=s.runExpression(W,1);G?W=G:E=!1,y[C]=W}else y[C]=this.makeZero(f)}let T=this.options.isWasm64,k=y.length<<f.alignLog2;if(E){let C=this.addStaticBuffer(f,y,o.id),M=i64_add(C.offset,i64_new(l.totalOverhead));if(n&16){let W=this.options.isWasm64?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M));return this.currentType=u,W}else{let W=this.makeCallDirect(l.newBufferInstance,[T?s.i64(k):s.i32(k),s.i32(o.id),T?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M))],e);return this.currentType=u,W}}let F=o.lookupOverload(2,!0);if(!F)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let w=u.toRef(),R=new Array;R.push(s.local_set(_.index,this.makeCallDirect(l.newBufferInstance,[T?s.i64(k):s.i32(k),s.i32(o.id)],e),u.isManaged));for(let C=0;C<g;++C)R.push(s.call(F.internalName,[s.local_get(_.index,w),s.i32(C),y[C]],B.None));return R.push(s.local_get(_.index,w)),g&&this.compileFunction(F),this.currentType=u,s.flatten(R,w)}compileObjectLiteral(e,t){let n=this.module,s=t.getClass();if(!s)return this.error(2322,e.range,"<object>",t.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,Zt(6,s.decoratorNodes));let u=e.names,c=u.length,f=e.values,_=s.members,d=!1,g=new Array,E=this.currentFlow.getTempLocal(a),T=a.toRef();assert(c==f.length);let k=new Set;if(_)for(let R=Map_keys(_),C=0,M=R.length;C<M;++C){let W=R[C],G=assert(_.get(W));if(G&&G.kind==10){let j=G.instance;j&&j.isField&&k.add(j)}}let F=new Array;for(let R=0;R<c;++R){let C=u[R].text,M=s.getMember(C);if(!M||M.kind!=10){this.error(2339,u[R].range,C,a.toString()),d=!0;continue}if(M.is(512)){this.error(2341,u[R].range,C,a.toString()),d=!0;continue}if(M.is(1024)){this.error(2445,u[R].range,C,a.toString()),d=!0;continue}let W=this.resolver.resolveProperty(M);if(!W)continue;let G=W.setterInstance;if(!G){this.error(2540,u[R].range,C,a.toString()),d=!0;continue}if(k.delete(W),!W.isField){F.push(W);continue}let j=W.type,z=this.makeCallDirect(G,[n.local_get(E.index,T),this.compileExpression(f[R],j,1)],G.identifierNode,!0);this.currentType!=p.void&&(z=n.drop(z)),g.push(z)}for(let R=0,C=F.length;R<C;++R){let M=F[R],W=assert(M.setterInstance);g.push(this.makeCallDirect(W,[n.local_get(E.index,T),this.compileExpression(f[R],M.type,1)],W.identifierNode))}if(this.currentType=a.nonNullableType,d)return n.unreachable();for(let R=Set_values(k),C=0,M=R.length;C<M;++C){let W=R[C];assert(W.isField);let G=W.type;if(!W.initializerNode){if(G.isReference&&!G.isNullableReference){this.error(2741,e.range,W.name,"<object>",a.toString()),d=!0;continue}switch(G.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{g.push(n.store(G.byteSize,n.local_get(E.index,T),this.makeZero(G),G.toRef(),W.memoryOffset));continue}}this.error(2741,e.range,W.name,"<object>",a.toString()),d=!0}}if(d)return n.unreachable();let w=this.ensureConstructor(s,e);return g.unshift(n.local_set(E.index,this.compileInstantiate(w,[],0,e),a.isManaged)),g.push(n.local_get(E.index,T)),this.currentType=a.nonNullableType,n.flatten(g,T)}compileNewExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,c=e.typeArguments,f;if(!c&&(f=t.classReference)&&f.prototype==o&&f.is(65536)?u=this.resolver.resolveClass(o,f.typeArguments,he(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,c,a,a.sourceFunction.parent,he(a.contextualTypeArguments),e),!u)return s.unreachable();t==p.void&&(n|=8);let _=this.ensureConstructor(u,e);return _.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(_,e.args,n,e)}ensureConstructor(e,t){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=he(e.contextualTypeArguments);if(s){let F=this.ensureConstructor(s,t);this.checkFieldInitialization(s,t),n=new Lt(N.constructor,new lt(N.constructor,e,F.declaration.clone()),null,de.create(this.program,F.signature.parameterTypes,e.type,e.type,F.signature.requiredParameters,F.signature.hasRest,e.hasDecorator(4096)),a)}else n=new Lt(N.constructor,new lt(N.constructor,e,this.program.makeNativeFunctionDeclaration(N.constructor,786432)),null,de.create(this.program,[],e.type,e.type,0,!1,e.hasDecorator(4096)),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(N.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let c=n.signature,f=this.module,_=this.options.sizeTypeRef,d=new Array;if(d.push(this.makeConditionalAllocation(e,0)),s){let F=c.parameterTypes,w=F.length,R=new Array(1+w);R[0]=f.local_get(0,_);for(let C=1;C<=w;++C)R[C]=f.local_get(C,F[C-1].toRef());d.push(f.local_set(0,this.makeCallDirect(assert(s.constructorInstance),R,t,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,d),d.push(f.local_get(0,_)),this.currentFlow=o;let g=n.localsByIndex,y=new Array,E=1+c.parameterTypes.length,T=g.length;if(T>E)for(let F=E;F<T;++F)y.push(g[F].type.toRef());let k=f.addFunction(n.internalName,c.paramRefs,c.resultRefs,y,f.flatten(d,_));n.finalize(f,k)}return n}checkFieldInitialization(e,t=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,t)}checkFieldInitializationInFlow(e,t,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let c=u.instance;!c||!c.isField||(!c.initializerNode&&!t.isThisFieldFlag(c,1)?c.is(16384)||(n?this.errorRelated(2564,c.declaration.name.range,n.range,c.internalName):this.error(2564,c.declaration.name.range,c.internalName)):c.is(16384)&&(c.type.isReference?this.warning(233,c.identifierNode.range,c.internalName):this.pedantic(906,c.identifierNode.range)))}}compileInstantiate(e,t,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(8192))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,t,s,this.makeZero(this.options.usizeType),n);return ce(o)!=B.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,t,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,t);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(8192)&&this.checkUnsafe(e),o.kind){case 0:{let c=o;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=o,f=assert(c.parent);assert(f.kind==2);let _=f;return this.compileEnum(_)?(this.currentType=c.type,c.is(33554432)?(assert(c.constantValueKind==1),this.compileInlineConstant(c,t,n)):s.global_get(c.internalName,B.I32)):(this.currentType=_.type,this.module.unreachable())}case 10:{let c=o,f=this.resolver.resolveProperty(c);if(!f)return s.unreachable();o=f}case 11:{let c=o;c.isField&&a.sourceFunction.is(524288)&&assert(u).kind==26&&!a.isThisFieldFlag(c,1)&&!c.is(16384)&&this.errorRelated(2565,e.range,c.identifierNode.range,c.internalName);let f=u!=null?this.resolveSroaReceiver(u):null;if(f!=null){let g=assert(f.fieldLocals);if(!c.isField||!g.has(c.name))return this.error(100,e.range,"reading this member of an @inline struct (only supported fields are readable; a refused or computed member has no local)"),s.unreachable();let y=assert(g.get(c.name));return y.index<0?(this.error(100,e.range,"reading a nested @inline struct value as a whole (the field is several leaves, not one value; read one of its fields)"),s.unreachable()):(this.currentType=c.type,s.local_get(y.index,y.type.toRef()))}if(u!=null&&c.isField&&this.resolver.isViewCall(u)){let g=c.type,y=this.compileExpression(u,p.auto);return this.currentType=g,this.viewFieldAccess(y,c,g)}if(u!=null&&u.kind==8&&c.isField){let g=a.lookupLocal(u.text);if(g!=null&&(g.isViewParam||g.isViewLocal)){let y=c.type;return this.currentType=y,this.viewFieldAccess(s.local_get(g.index,B.I32),c,y)}}if(u!=null&&u.kind==11&&c.isField){let g=this.resolver.resolveExpression(u,this.currentFlow);if(g!=null&&this.isInlineStructType(g))return this.makeSretCallBlock(u,g,c.type,c,null)}if(c.type.kind==14||c.isField&&this.isInlineStructType(c.type)){let g=this.resolver.resolveExpression(assert(u),this.currentFlow);if(!g)return s.unreachable();let y=this.compileExpression(assert(u),g,33);this.currentType=c.type;let E=c.memoryOffset;return E?s.binary(217,y,this.options.isWasm64?s.i64(E):s.i32(E)):y}let _=c.getterInstance;if(!_)return s.unreachable();let d=0;return _.is(262144)&&(d=this.compileExpression(assert(u),assert(_.signature.thisType),33)),this.compileCallDirect(_,[],e,d)}case 4:{let c=o,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null);if(!_||!this.compileFunction(_))return s.unreachable();if(this.currentType=_.type,_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let d=this.ensureRuntimeFunction(_);return this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,t,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,p.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),c=this.evaluateCondition(u);if(c==1)return s.maybeDropCondition(u,this.compileExpression(a,t));if(c==2)return s.maybeDropCondition(u,this.compileExpression(l,t));let f=this.currentFlow,_=f.forkThen(o);this.currentFlow=_;let d=this.compileExpression(a,t),g=this.currentType,y=f.forkElse(o);this.currentFlow=y;let E=this.compileExpression(l,t==p.auto?g:t),T=this.currentType;if(t==p.void)g!=p.void&&(d=s.drop(d),g=p.void),T!=p.void&&(E=s.drop(E),T=p.void),this.currentType=p.void;else{let k=p.commonType(g,T,t);if(!k)return this.error(2322,l.range,T.toString(),g.toString()),this.currentType=t,s.unreachable();d=this.convertExpression(d,g,k,!1,a),g=k,E=this.convertExpression(E,T,k,!1,l),T=k,this.currentType=k}return f.inheritAlternatives(_,y),this.currentFlow=f,s.if(u,d,E)}compileUnaryPostfixExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,t.exceptVoid,0),o,u=null;t!=p.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let c;switch(e.operator){case 88:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let E=y.lookupOverload(29);if(E){let T=E.is(262144);if(u&&!T&&(o=l,u=null),c=this.compileUnaryOverload(E,e.operand,o,e),T)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(0,o,s.i32(1));break}case 4:case 9:{c=s.binary(25,o,s.i64(1));break}case 5:case 10:{c=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(50,o,s.f32(1));break}case 12:{c=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 89:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let E=y.lookupOverload(30);if(E){let T=E.is(262144);if(u&&!T&&(o=l,u=null),c=this.compileUnaryOverload(E,e.operand,o,e),T)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(1,o,s.i32(1));break}case 4:case 9:{c=s.binary(26,o,s.i64(1));break}case 5:case 10:{c=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(51,o,s.f32(1));break}case 12:{c=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let f=this.resolver;if(e.operand.kind==14){let y=e.operand,E=f.resolveExpression(y.expression,a);if(E&&E.kind==14){let T=this.compileFixedArrayElementAccess(y,E,!0,t,0,null,c);return u?s.block(null,[T,s.local_get(u.index,this.currentType.toRef())],this.currentType.toRef()):T}}let _=f.lookupExpression(e.operand,a);if(!_)return s.unreachable();if(!u)return this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);let d=this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);this.currentType=u.type;let g=u.type.toRef();return s.block(null,[d,s.local_get(u.index,g)],g)}compileUnaryPrefixExpression(e,t,n){let s=this.module,a=!1,l;switch(e.operator){case 82:{l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(23);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 83:{let c=e.operand;if(c.isNumericLiteral){l=this.compileLiteralExpression(c,t,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,t.exceptVoid,0);let f=this.currentType.getClassOrWrapper(this.program);if(f){let _=f.lookupOverload(24);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(27);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 89:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(28);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 96:{l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(25);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=p.bool;break}case 97:{l=this.compileExpression(e.operand,t==p.void?p.i32:t.isFloatValue?p.i64:t,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(26);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 57:return this.compileTypeof(e,t,n);case 70:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,t!=p.void):s.unreachable()}compileTypeof(e,t,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==20)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,p.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,p.auto);let c=this.currentType;if(a=this.convertExpression(a,c,p.void,!0,s),c.isReference)if(c.getSignature())o="function";else{let _=c.getClass();_?_.prototype==l.prototype?o="string":o="object":o="externref"}else c==p.bool?o="boolean":c.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 8:break;case 23:case 14:if(s=(s.kind==23,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,p.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,p.auto),a=this.convertExpression(a,this.currentType,p.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,t){let n=this.module,s=this.currentFlow;switch(t.kind){case 0:{s.canOverflow(e,t)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,t){let n=this.currentFlow.targetFunction,s=t.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,t)}checkSignatureSupported(e,t){let n=!0,s=t.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=t.parameters;for(let o=0,u=a.length;o<u;++o){let c;l.length>o?c=l[o]:c=t,this.program.checkTypeSupported(a[o],c)||(n=!1)}return this.program.checkTypeSupported(e.returnType,t.returnType)||(n=!1),n}isUnmanagedChangetype(e){if(e.kind!=11)return!1;let t=e,n=t.expression;if(n.kind!=8||n.text!="changetype")return!1;let s=t.typeArguments;return s==null||s.length!=1?!1:unchecked(s[0]).memoryModel==3}isInlineStructType(e){let t=e.classReference;return t!=null&&t.hasDecorator(4096)}viewFieldAccess(e,t,n){let s=this.module,a=t.memoryOffset;return n.kind==14||this.isInlineStructType(n)?a?s.binary(217,e,this.options.isWasm64?s.i64(a):s.i32(a)):e:s.load(n.byteSize,n.isSignedIntegerValue,e,n.toRef(),a)}resultRefOf(e){return this.isInlineStructType(e)?B.None:e.toRef()}evaluateCondition(e){let t=ce(e);if(t==B.Unreachable)return 0;assert(t==B.I32);let s=this.module.runExpression(e,0);return s?ae(s)?1:2:0}expandSroaArgument(e,t,n,s){if(!de.isInlineStructRef(t))return unchecked(n[s]=this.compileExpression(e,t,1)),1;let a=de.fieldCountOf(t),l=e.kind==8?this.currentFlow.lookupLocal(e.text):null;if(l==null||l.fieldLocals==null){this.error(100,e.range,"passing this expression as an @inline struct argument (only a local value can be passed: a value has no address, so there is nothing to hand over)");for(let u=0;u<a;++u)unchecked(n[s+u]=this.module.unreachable());return a}return this.pushSroaLeafOperands(assert(l.fieldLocals),n,s)}pushSroaLeafOperands(e,t,n){let s=0;for(let a=Map_keys(e),l=0,o=a.length;l<o;++l){let u=assert(ee(e,unchecked(a[l])));if(u.index<0){let c=u.fieldLocals;c!=null&&(s+=this.pushSroaLeafOperands(c,t,n+s));continue}unchecked(t[n+s]=this.module.local_get(u.index,u.type.toRef())),++s}return s}resolveSroaReceiver(e){let t=new Array,n=e;for(;n.kind==23;){let l=n;t.push(l),n=l.expression}if(n.kind!=8)return null;let s=this.currentFlow.lookupLocal(n.text);if(s==null||s.fieldLocals==null)return null;let a=s;for(let l=t.length-1;l>=0;--l){let o=a.fieldLocals;if(o==null)return null;let u=t[l].property.text,c=ee(o,u);if(c==null)return null;a=c}return a.fieldLocals!=null?a:null}static{this.SRET_STACK_SIZE=4096}markOperandForRooting(){this.rootNextOperand=!0}ensureSretStack(){if(this.sretStackGlobal!=null)return this.sretStackBase;let e=this.module,t=this.addAlignedMemorySegment(new Uint8Array(i.SRET_STACK_SIZE),16),n=i64_low(t.offset);this.sretStackBase=n,this.sretStackLimit=n+i.SRET_STACK_SIZE;let s="~sretStackPointer";return this.sretStackGlobal=s,e.addGlobal(s,B.I32,!0,e.i32(n)),n}sretSizeOf(e){return assert(e.classReference).nextMemoryOffset+15&-16}makeSretAddress(e){return this.module.local_get(e.index,B.I32)}makeSretFieldLoad(e,t){return this.module.load(t.type.byteSize,!1,e,t.type.toRef(),t.memoryOffset)}makeSretGuard(e,t,n){let s=this.module,a=s.binary(0,s.local_get(e.index,B.I32),s.i32(t));return s.if(s.binary(21,a,s.i32(this.sretStackLimit)),this.makeStaticAbort(this.ensureStaticString("sret stack overflow: the static call-temp region is 4 KB; see --sretStackSize"),n))}emitExportByValPrologue(e,t){let n=this.module,s=e.signature,a=e.flow,l=s.parameterTypes;for(let o=0,u=l.length;o<u;++o){if(!s.isExportByValParam(o))continue;let c=e.getParameterName(o),f=a.lookupLocal(c+"$byval"),_=a.lookupLocal(c);if(f==null||_==null||_.fieldLocals==null)continue;let d=assert(_.fieldLocals),g=assert(this.recordFieldsOf(unchecked(l[o])));for(let y=0,E=g.length;y<E;++y){let T=unchecked(g[y]),k=ee(d,T.name);k&&t.push(n.local_set(k.index,n.load(T.type.byteSize,!1,n.local_get(f.index,B.I32),T.type.toRef(),T.memoryOffset),!1))}}}makeSretAddressPlus(e,t){let n=this.module;return n.binary(0,this.makeSretAddress(e),n.i32(t))}emitTempArgumentLeaves(e,t,n,s,a){let l=this.module,o=this.recordFieldsOf(e);if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=ee(t,f.name);if(_!=null){if(_.index<0){let d=_.fieldLocals;d!=null&&this.emitTempArgumentLeaves(f.type,d,n,s+f.memoryOffset,a);continue}a.push(l.store(f.type.byteSize,this.makeSretAddressPlus(n,s),l.local_get(_.index,_.type.toRef()),f.type.toRef(),f.memoryOffset))}}}makeExternalTempArgument(e,t,n,s){let a=this.module,l=e.kind==8?this.currentFlow.lookupLocal(e.text):null,o=l!=null?l.fieldLocals:null,u=this.recordFieldsOf(t);if(u==null)return this.error(100,e.range,"passing this expression to a by-value parameter (the temp is filled field by field, which needs a record type)"),a.unreachable();let c=new Array;if(o!=null)this.emitTempArgumentLeaves(t,o,n,s,c);else{if(de.isInlineStructRef(t))return this.error(100,e.range,"passing this expression as an @inline struct to a by-value parameter (the temp is filled by copying a local's fields; a value has no address, so only a local can be passed)"),a.unreachable();{let f=this.options.usizeType,_=this.compileExpression(e,t,1),d=this.currentFlow.getTempLocal(f),g=f.toRef();c.push(a.local_set(d.index,_,!1));for(let y=0,E=u.length;y<E;++y){let T=unchecked(u[y]);c.push(a.store(T.type.byteSize,this.makeSretAddressPlus(n,s),a.load(T.type.byteSize,!1,a.local_get(d.index,g),T.type.toRef(),T.memoryOffset),T.type.toRef(),T.memoryOffset))}}}return c.push(this.makeSretAddressPlus(n,s)),a.block(null,c,B.I32)}wrapExternalTempCall(e,t,n,s,a){let l=this.module,o=assert(this.sretStackGlobal),u=l.global_set(o,l.local_get(e.index,B.I32)),c=[l.local_set(e.index,l.global_get(o,B.I32),!1),l.global_set(o,l.binary(0,l.local_get(e.index,B.I32),l.i32(t))),this.makeSretGuard(e,t,a)];if(s==p.void)return c.push(n),c.push(u),l.block(null,c);let f=this.currentFlow.getTempLocal(s);return c.push(l.local_set(f.index,n,!1)),c.push(u),c.push(l.local_get(f.index,s.toRef())),l.block(null,c,s.toRef())}wrapSretCall(e,t,n,s){let a=this.module,l=assert(this.sretStackGlobal),o=this.sretSizeOf(n);return a.block(null,[a.local_set(e.index,a.global_get(l,B.I32),!1),a.global_set(l,a.binary(0,a.local_get(e.index,B.I32),a.i32(o))),this.makeSretGuard(e,o,s),t,a.global_set(l,a.local_get(e.index,B.I32))])}makeSretCallBlock(e,t,n,s,a){let l=this.module;this.ensureSretStack();let o=assert(this.sretStackGlobal),u=this.sretSizeOf(t),c=this.currentFlow,f=c.getTempLocal(p.u32),_=new Array;_.push(l.local_set(f.index,l.global_get(o,B.I32),!1)),_.push(l.global_set(o,l.binary(0,l.local_get(f.index,B.I32),l.i32(u)))),_.push(this.makeSretGuard(f,u,e)),this.sretDestSlot=this.makeSretAddress(f);let d=this.compileCallExpression(e,p.auto,0);if(this.sretDestSlot!=0)return this.sretDestSlot=0,this.currentType=n,l.unreachable();_.push(d);let g=n!=p.void?c.getTempLocal(n):null;return s!=null?_.push(l.local_set(assert(g).index,this.makeSretFieldLoad(this.makeSretAddress(f),s),!1)):a!=null&&this.emitSretLoadsInto(t,a,f,0,_),_.push(l.global_set(o,l.local_get(f.index,B.I32))),g!=null?(_.push(l.local_get(g.index,g.type.toRef())),this.currentType=n,l.block(null,_,n.toRef())):(this.currentType=p.void,l.block(null,_))}compileSretReturnStatement(e,t){let n=this.module,s=this.currentFlow,a=assert(e.value);if(a.kind==19&&a.args.length==0){let d=this.module,g=s.sourceFunction.signature.thisType?1:0,y=new Array;return this.emitSroaZerosToLocal(t,g,0,y),y.push(d.return()),s.set(257),this.currentType=t,d.block(null,y)}let o=a.kind==8?s.lookupLocal(a.text):null;if(o==null||o.fieldLocals==null)return this.error(100,a.range,"returning this expression from an @inline struct function (only a local value can be returned: a value has no address, so there is nowhere to write it)"),s.set(257),this.currentType=t,n.unreachable();let u=s.sourceFunction.signature;assert(u.hasHiddenDestParam);let c=u.thisType?1:0,f=assert(o.fieldLocals),_=new Array;return this.emitSroaStoresToLocal(t,f,c,0,_),_.push(n.return()),s.set(257),this.currentType=t,n.block(null,_)}fillSroaFieldLocals(e,t,n,s,a){let l=!1;for(let o=0,u=e.length;o<u;++o){let c=unchecked(e[o]),f=t+"$"+c.name,_=c.type;if(!this.isSroaFieldType(_)){if(de.isInlineStructRef(_)){let y=new Map;if(!this.fillSroaFieldLocals(this.inlineStructFieldsOf(_),f,n,s,y)){l=!0;continue}let E=new ye(f,-1,_,s.targetFunction,n);E.fieldLocals=y,a.set(c.name,E);continue}let d=assert(c.prototype.fieldDeclaration),g=d.type;this.error(100,g?g.range:d.name.range,_.kind==14?"a T[N] field in an @inline struct (SROA keeps one WASM local per field; array fields are the deep-SROA phase)":"a GC-reference field in an @inline struct (a bare local.set skips the write barrier; deferred)"),l=!0;continue}a.set(c.name,s.targetFunction.addLocal(_,f,n))}return!l}copySroaValue(e,t,n){let s=this.module;for(let a=Map_keys(t),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]),c=ee(e,u);if(c==null)continue;let f=assert(ee(t,u));if(f.index<0||c.index<0){let _=f.fieldLocals,d=c.fieldLocals;_!=null&&d!=null&&this.copySroaValue(d,_,n);continue}n.push(s.local_set(f.index,s.local_get(c.index,c.type.toRef()),!1))}}emitSroaStoresToLocal(e,t,n,s,a){let l=this.module,o=this.inlineStructFieldsOf(e);if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=ee(t,f.name);if(_!=null){if(_.index<0){let d=_.fieldLocals;d!=null&&this.emitSroaStoresToLocal(f.type,d,n,s+f.memoryOffset,a);continue}a.push(l.store(f.type.byteSize,l.local_get(n,B.I32),l.local_get(_.index,_.type.toRef()),f.type.toRef(),s+f.memoryOffset))}}}emitSroaZerosToLocal(e,t,n,s){let a=this.module,l=this.inlineStructFieldsOf(e);if(l!=null)for(let o=0,u=l.length;o<u;++o){let c=unchecked(l[o]);if(de.isInlineStructRef(c.type)){this.emitSroaZerosToLocal(c.type,t,n+c.memoryOffset,s);continue}this.isSroaFieldType(c.type)&&s.push(a.store(c.type.byteSize,a.local_get(t,B.I32),this.makeZero(c.type),c.type.toRef(),n+c.memoryOffset))}}emitSretLoadsInto(e,t,n,s,a){let l=this.inlineStructFieldsOf(e);if(l!=null)for(let o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),f=ee(t,c.name);if(f!=null){if(f.index<0){let _=f.fieldLocals;_!=null&&this.emitSretLoadsInto(c.type,_,n,s+c.memoryOffset,a);continue}a.push(this.module.local_set(f.index,this.module.load(c.type.byteSize,!1,this.makeSretAddress(n),c.type.toRef(),s+c.memoryOffset),!1))}}}sroaTreeOf(e){let t=this.resolveSroaReceiver(e);return t!=null?t.fieldLocals:null}emitSroaStores(e,t,n,s,a){let l=this.module,o=this.inlineStructFieldsOf(e);if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=ee(t,f.name);if(_!=null){if(_.index<0){let d=_.fieldLocals;d!=null&&this.emitSroaStores(f.type,d,n,s+f.memoryOffset,a);continue}a.push(l.store(f.type.byteSize,n,l.local_get(_.index,_.type.toRef()),f.type.toRef(),s+f.memoryOffset))}}}compileSroaLocal(e,t,n,s,a,l){let o=this.module,u=e.name.text;if(s!=null&&this.isUnmanagedChangetype(s)){let d=a.scopedLocals;d||(a.scopedLocals=d=new Map);let g=d.has(u)?assert(d.get(u)):null,y;if(g!=null&&g.index>=0)y=g,y.type=t;else{let E=a.targetFunction;y=new ye(u,E.localsByIndex.length,t,E,e),E.localsByIndex[y.index]=y,d.set(u,y)}return y.isViewLocal=!0,a.setLocalFlag(y.index,8),e.is(8)&&a.setLocalFlag(y.index,1),l.push(o.local_set(y.index,this.compileExpression(s,p.auto),!1)),!0}let c=new Map;if(!this.fillSroaFieldLocals(n,u,e,a,c))return!0;let f=new ye(u,-1,t,a.targetFunction,e);f.fieldLocals=c;let _=a.scopedLocals;if(_||(a.scopedLocals=_=new Map),_.has(u))return this.error(2300,e.name.range,u),!0;if(_.set(u,f),e.is(8)&&a.setLocalFlag(f.index,1),!s)return!0;if(s.kind==19){let d=s.args;if(d.length>n.length)return this.error(2322,s.range,"too many arguments",t.toString()),!0;for(let g=0,y=d.length;g<y;++g){let E=unchecked(n[g]),T=assert(c.get(E.name));if(T.index<0)return this.error(100,s.range,"constructing an @inline struct with an argument for a nested @inline field (the field is several leaves, not one value; assign its own fields instead)"),!0;let k=this.compileExpression(d[g],E.type,1);l.push(o.local_set(T.index,k,!1))}return!0}if(s!=null&&s.kind==11){let d=this.resolver.resolveExpression(s,this.currentFlow);if(d!=null&&this.isInlineStructType(d))return l.push(this.makeSretCallBlock(s,d,p.void,null,c)),!0}if(s.kind==8){let d=a.lookupLocal(s.text);if(d&&d.fieldLocals)return this.copySroaValue(assert(d.fieldLocals),c,l),!0}return this.error(100,s.range,"initialising an @inline struct local from this expression (only `new P(\u2026)`, another @inline struct value, or no initialiser)"),!0}inlineStructFieldsOf(e){let t=e.classReference;return t==null||!t.hasDecorator(4096)?null:this.recordFieldsOf(e)}recordFieldsOf(e){let t=e.classReference;if(t==null)return null;let n=new Array,s=t.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||n.push(c)}return n}isSroaFieldType(e){return e.kind==14||de.isInlineStructRef(e)?!1:!e.isManaged}makeZero(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(0);case 5:case 10:if(e.size!=64)return t.i32(0);case 4:case 9:return t.i64(0);case 11:return t.f32(0);case 12:return t.f64(0);case 13:return t.v128(Wp);case 16:case 15:case 17:case 18:case 19:case 20:case 22:case 23:case 24:case 25:return e.is(512)?t.ref_null(e.toRef()):(assert(!1),t.unreachable());case 21:return e.is(512)?t.ref_null(e.toRef()):t.i31_new(t.i32(0))}}makeOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(1);case 5:case 10:if(e.size!=64)return t.i32(1);case 4:case 9:return t.i64(1);case 11:return t.f32(1);case 12:return t.f64(1);case 21:return t.i31_new(t.i32(1))}}makeNegOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(-1);case 5:case 10:if(e.size!=64)return t.i32(-1);case 4:case 9:return t.i64(-1,-1);case 11:return t.f32(-1);case 12:return t.f64(-1);case 13:return t.v128(Kp);case 21:return t.i31_new(t.i32(-1))}}makeIsTrueish(e,t,n){let s=this.module;switch(t.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,t);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return t.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:return s.unary(20,s.ref_is_null(e));case 26:default:return this.error(1345,n.range,t.toString()),s.i32(0)}}makeToString(e,t,n){let s=this.module,a=this.program.stringInstance.type;if(t==a)return e;let l=t.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!t.isStrictlyAssignableTo(assert(u.thisType))){if(!t.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let f=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(f.index,e,t.isManaged),this.makeToString(s.local_get(f.index,t.toRef()),t.nonNullableType,n),this.ensureStaticString("null"))}let c=u.returnType;return c.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,c.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,t.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let t=this.program;assert(e.program==t);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=t.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=t.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,t){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==B.I64?21:20,n.local_get(t,a)),n.local_set(t,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,t=[]){let n=e.members;if(!n)return t;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(N.this_).index:0,u=this.options.sizeTypeRef,c=null;for(let f=Map_values(n),_=0,d=f.length;_<d;++_){let g=unchecked(f[_]);if(g.kind!=10)continue;let y=g.instance;if(!y||!y.isField||y.getBoundClassOrInterface()!=e)continue;if(this.isInlineStructType(y.type)){let C=y.initializerNode,M=e.hasDecorator(16)||e.hasDecorator(2048);if(C!=null&&M){if(C.kind==18&&C.isLiteralKind(6)&&C.names.length==0)continue;this.error(100,C.range,"an initializer on an @inline struct field (the value is stored inline and has no address to copy into; the allocation is already zero, so `= {}` is allowed -- assign the field's own fields after construction)")}continue}assert(!y.isAny(8));let E=y.prototype,T=E.parameterIndex;if(T<0){c||(c=new Array),c.push(y);continue}let F=y.type.toRef();assert(!E.initializerNode);let w=assert(y.setterInstance),R=this.makeCallDirect(w,[s.local_get(o,u),s.local_get(l?a.lookupLocal(y.name).index:1+T,F)],w.identifierNode,!0);this.currentType!=p.void&&(R=s.drop(R)),t.push(R)}if(c)for(let f=0,_=c.length;f<_;++f){let d=unchecked(c[f]),g=d.type,y=d.prototype,E=y.initializerNode;assert(y.parameterIndex<0);let T=assert(d.setterInstance),k=this.makeCallDirect(T,[s.local_get(o,u),E?this.compileExpression(E,g,1):this.makeZero(g)],d.identifierNode,!0);this.currentType!=p.void&&(k=s.drop(k)),t.push(k)}return this.currentType=p.void,t}makeAbort(e,t){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,t)}makeStaticAbort(e,t){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(t.range.source.normalizedPath),o=t.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],B.None),s.unreachable()])}makeRuntimeNonNullCheck(e,t,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(t).index;a.canOverflow(e,t)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(t.isExternalReference){let c=s.local_get(o,t.toRef());this.options.hasFeature(1024)&&(c=s.ref_as_nonnull(c)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,c)}else e=s.if(s.local_tee(o,e,t.isManaged),s.local_get(o,t.toRef()),u);return this.currentType=t.nonNullableType,e}makeRuntimeDowncastCheck(e,t,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(t));let a=this.module,l=this.currentFlow,u=l.getTempLocal(t).index,c=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,t)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,t.isManaged)],B.I32),a.local_get(u,t.toRef()),c):e=a.if(a.unary(20,a.local_tee(u,e,t.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,t.toRef())],B.I32),a.local_get(u,t.toRef()),c)),this.currentType=n,e}};function Rx(i,r){Ei=r.range.source.simplePath,Pr=Ke(i.name,i.parent,i.is(262144),!0);let e=r.overriddenModuleName;if(e&&(Ei=e),!i.hasDecorator(128))return;let t=i.program,n=assert(Zt(10,r.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(Pr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(Ei=Pr,Pr=a.value,s.length>2&&t.error(2554,n.range,"2",s.length.toString())):t.error(1141,a.range))):t.error(1141,a.range)}else t.error(2555,n.range,"1","0")}var bn=class i extends pn{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=t}static build(e,t=!0){return new i(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type,a=this.toTypeScriptType(s,1);q(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
269
+ `),q(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("const "),n.push(e),n.push(`: {
270
+ `),q(n,++this.indentLevel),n.push("/** @type `"),n.push(s.toString()),n.push("` */\n"),q(n,this.indentLevel),n.push("get value(): "),n.push(a),t.is(8)?n.push(`
271
271
  `):(n.push(`;
272
- `),W(n,this.indentLevel),n.push("set value(value: "),n.push(a),n.push(`);
273
- `)),W(n,--this.indentLevel),n.push(`};
274
- `)}visitEnum(e,t){let n=this.sb;W(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
275
- `),W(n,this.indentLevel++),n.push("export "),this.esm&&n.push("declare "),n.push("enum "),n.push(e),n.push(` {
276
- `);let s=t.members;if(s)for(let a=Map_keys(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);assert(s.get(u)).kind==3&&(W(n,this.indentLevel),n.push("/** @type `i32` */\n"),W(n,this.indentLevel),n.push(u),n.push(`,
277
- `))}W(n,--this.indentLevel),n.push(`}
278
- `)}visitFunction(e,t){let n=this.sb,s=t.signature;W(n,this.indentLevel),n.push(`/**
279
- `),W(n,this.indentLevel),n.push(" * "),n.push(t.internalName),n.push(`
280
- `);let a=s.parameterTypes,l=a.length;for(let c=0;c<l;++c)W(n,this.indentLevel),n.push(" * @param "),n.push(t.getParameterName(c)),n.push(" `"),n.push(a[c].toString()),n.push("`\n");let o=s.returnType;o!=p.void&&(W(n,this.indentLevel),n.push(" * @returns `"),n.push(o.toString()),n.push("`\n")),W(n,this.indentLevel),n.push(` */
281
- `),W(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("function "),n.push(e),n.push("(");let u=s.requiredParameters;for(let c=0;c<l;++c)c&&n.push(", "),n.push(t.getParameterName(c)),c>=u&&n.push("?"),n.push(": "),n.push(this.toTypeScriptType(a[c],0));n.push("): "),n.push(this.toTypeScriptType(o,1)),n.push(`;
272
+ `),q(n,this.indentLevel),n.push("set value(value: "),n.push(a),n.push(`);
273
+ `)),q(n,--this.indentLevel),n.push(`};
274
+ `)}visitEnum(e,t){let n=this.sb;q(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
275
+ `),q(n,this.indentLevel++),n.push("export "),this.esm&&n.push("declare "),n.push("enum "),n.push(e),n.push(` {
276
+ `);let s=t.members;if(s)for(let a=Map_keys(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);assert(s.get(u)).kind==3&&(q(n,this.indentLevel),n.push("/** @type `i32` */\n"),q(n,this.indentLevel),n.push(u),n.push(`,
277
+ `))}q(n,--this.indentLevel),n.push(`}
278
+ `)}visitFunction(e,t){let n=this.sb,s=t.signature;q(n,this.indentLevel),n.push(`/**
279
+ `),q(n,this.indentLevel),n.push(" * "),n.push(t.internalName),n.push(`
280
+ `);let a=s.parameterTypes,l=a.length;for(let c=0;c<l;++c)q(n,this.indentLevel),n.push(" * @param "),n.push(t.getParameterName(c)),n.push(" `"),n.push(a[c].toString()),n.push("`\n");let o=s.returnType;o!=p.void&&(q(n,this.indentLevel),n.push(" * @returns `"),n.push(o.toString()),n.push("`\n")),q(n,this.indentLevel),n.push(` */
281
+ `),q(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("function "),n.push(e),n.push("(");let u=s.requiredParameters;for(let c=0;c<l;++c)c&&n.push(", "),n.push(t.getParameterName(c)),c>=u&&n.push("?"),n.push(": "),n.push(this.toTypeScriptType(a[c],0));n.push("): "),n.push(this.toTypeScriptType(o,1)),n.push(`;
282
282
  `)}visitClass(e,t){}visitInterface(e,t){}visitNamespace(e,t){}visitAlias(e,t,n){}build(){let e=this.sb;this.esm||(e.push(`declare namespace __AdaptedExports {
283
- `),++this.indentLevel),this.program.options.exportMemory&&(W(e,this.indentLevel),e.push(`/** Exported memory */
284
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const memory: WebAssembly.Memory;
285
- `)),this.program.options.exportTable&&(W(e,this.indentLevel),e.push(`/** Exported table */
286
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const table: WebAssembly.Table;
287
- `)),this.program.options.exportRuntime&&(W(e,this.indentLevel),e.push(`// Exported runtime interface
288
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __new(size: number, id: number): number;
289
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __pin(ptr: number): number;
290
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __unpin(ptr: number): void;
291
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __collect(): void;
292
- `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const __rtti_base: number;
283
+ `),++this.indentLevel),this.program.options.exportMemory&&(q(e,this.indentLevel),e.push(`/** Exported memory */
284
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const memory: WebAssembly.Memory;
285
+ `)),this.program.options.exportTable&&(q(e,this.indentLevel),e.push(`/** Exported table */
286
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const table: WebAssembly.Table;
287
+ `)),this.program.options.exportRuntime&&(q(e,this.indentLevel),e.push(`// Exported runtime interface
288
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __new(size: number, id: number): number;
289
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __pin(ptr: number): number;
290
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __unpin(ptr: number): void;
291
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __collect(): void;
292
+ `),q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const __rtti_base: number;
293
293
  `)),this.walk(),this.esm||(--this.indentLevel,e.push(`}
294
294
  `));let t=this.deferredTypings;for(let n=0,s=t.length;n<s;++n)e.push(t[n]);if(!this.esm){e.push(`/** Instantiates the compiled WebAssembly module with the given imports. */
295
295
  `),e.push(`export declare function instantiate(module: WebAssembly.Module, imports: {
@@ -303,35 +303,35 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
303
303
  `),t.push("declare class __Internref"),t.push(e.id.toString()),t.push(` extends Number {
304
304
  `);let n=e;do t.push(" private __nominal"),t.push(n.id.toString()),t.push(`: symbol;
305
305
  `),n=n.base;while(n);return t.push(`}
306
- `),t.join("")}};function ut(i,r,e=0){if(i==null)return null;switch(i.kind){case 18:{switch(i.literalKind){case 1:return Br("i32",i);case 0:return Br("f64",i);case 2:case 3:return Br("string",i)}return null}case 27:case 15:return Br("bool",i);case 22:return ut(i.expression,r,e);case 19:{let t=i;return h.createNamedType(t.typeName,t.typeArguments,!1,t.range)}case 9:{let t=i;return t.assertionKind!=2&&t.toType!=null?t.toType:ut(t.expression,r,e)}case 11:{let t=i,n=t.expression;if(n.kind==8&&n.text=="changetype"){let s=t.typeArguments;if(s!=null&&s.length==1)return s[0]}return null}case 8:{if(r==null||e>8)return null;let t=i.text,n=ee(r,t);return n??null}case 30:{let t=i;switch(t.operator){case 96:return Br("bool",i);case 83:case 82:case 97:{let n=ut(t.operand,r,e+1);return fa(n)?n:null}}return null}case 29:{let t=ut(i.operand,r,e+1);return fa(t)?t:null}case 10:{let t=i;switch(t.operator){case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:return Br("bool",i);case 90:case 91:case 92:{let n=ut(t.left,r,e+1);return fa(n)?n:null}case 98:case 99:{let n=ut(t.left,r,e+1),s=ut(t.right,r,e+1);return xn(n,"bool")&&xn(s,"bool")?Br("bool",i):null}case 82:case 83:case 85:case 86:case 87:case 93:case 94:case 95:case 84:{let n=ut(t.left,r,e+1),s=ut(t.right,r,e+1);return!fa(n)||!fa(s)?null:xn(n,"f64")||xn(s,"f64")?!xn(n,"f32")&&!xn(s,"f32")?Br("f64",i):null:uk(n,s)?n:null}}return null}}return null}function Br(i,r){let e=h.createSimpleTypeName(i,r.range);return h.createNamedType(e,null,!1,r.range)}function fa(i){if(i==null||i.kind!=1)return!1;let e=i.name.identifier.text;return e=="i8"||e=="i16"||e=="i32"||e=="i64"||e=="u8"||e=="u16"||e=="u32"||e=="u64"||e=="isize"||e=="usize"||e=="f32"||e=="f64"}function g_(i){let r=i.typeArguments;return r!=null&&r.length>0}function xn(i,r){if(i==null||i.kind!=1)return!1;let e=i;return e.name.identifier.text==r&&!g_(e)}function uk(i,r){if(i==null||r==null||i.kind!=1||r.kind!=1)return!1;let e=i,t=r;return g_(e)||g_(t)?!1:e.name.identifier.text==t.name.identifier.text}var da="$closureEnv",pu="$closureEnvIn",fu="$init$",Cx="$Env",ck="__closureInit",En="$this",_a="$parent",pk="$env",Px="$awaited";function fk(i){let r=i.length;if(r==0)return!1;if(uu(i,da)&&(r==da.length||i.charCodeAt(da.length)==36)||uu(i,pu)||i==En||i==_a||i==pk||uu(i,fu))return!0;if(uu(i,Px)){let e=Px.length;if(e>=r)return!1;for(let t=e;t<r;++t){let n=i.charCodeAt(t);if(n<48||n>57)return!1}return!0}return!1}function uu(i,r){let e=r.length;if(i.length<e)return!1;for(let t=0;t<e;++t)if(i.charCodeAt(t)!=r.charCodeAt(t))return!1;return!0}var hu=class{constructor(r,e,t,n,s,a,l){this.name=r;this.kind=e;this.envClass=t;this.ownEnv=n;this.receivesEnv=s;this.parentClass=a;this.needed=l}},ya=class{constructor(){this.analyses=null}afterParse(r){let e=this.program.sources;this.analyses=null;let t=!1,n=new x_;for(let s=0,a=e.length;s<a;++s){let l=e[s];l.isLibrary||(this.collectStatementList(l.statements,r)&&(t=!0),n.visitStatements(l.statements))}if(n.sawAsync&&(t=!0),!(t&&n.refuse(r)))for(let s=0,a=e.length;s<a;++s){let l=e[s];l.isLibrary||this.lowerStatementList(l,l.statements,r)}}dumpEnvAnalysis(){let r=new Array,e=this.analyses;if(e==null)return r;for(let t of e.values()){let n=t.allInfos;for(let s=0,a=n.length;s<a;++s)r.push(t.describe(n[s],s))}return r}recordAnalysis(r,e){let t=this.analyses;t==null&&(t=new Map,this.analyses=t),t.set(r,e)}collectStatementList(r,e){let t=!1;for(let n=0,s=r.length;n<s;++n){let a=r[n];switch(a.kind){case 59:{let l=a;if(l.body==null)break;let o=new ma(this,e,l);o.run(),this.recordAnalysis(l,o),o.hasCaptures()&&!o.refused&&(t=!0);break}case 63:{this.collectStatementList(a.members,e)&&(t=!0);break}case 55:{let l=a.name.text,o=a.members;for(let u=0,c=o.length;u<c;++u){if(o[u].kind!=62)continue;let f=o[u];if(f.body==null||f.is(32))continue;let _=new ma(this,e,f,du(l,f.range),a);_.run(),this.recordAnalysis(f,_),_.hasCaptures()&&!_.refused&&(t=!0)}break}case 51:{let l=a.declarations;for(let o=0,u=l.length;o<u;++o){let c=l[o].initializer;if(c==null||c.kind!=16)continue;let f=c;if(f.declaration.body==null)continue;let _=new ma(this,e,f.declaration);_.run(),this.recordAnalysis(f.declaration,_),_.hasCaptures()&&!_.refused&&_.refuse(f.declaration.range,"a capture from a top-level function expression (closures lowering)")}break}default:break}}return t}lowerStatementList(r,e,t){let n=new Array,s=!1;for(let a=0,l=e.length;a<l;++a){let o=e[a];switch(o.kind){case 59:{let u=o;if(u.body==null){n.push(o);break}let c=assert(assert(this.analyses).get(u));if(!c.hasCaptures()){n.push(o);break}if(c.refused){n.push(o);break}let f=c.makeEnvClasses();for(let _=0,d=f.length;_<d;++_)n.push(f[_]);c.rewrite(),n.push(o),s=!0;break}case 63:{this.lowerStatementList(r,o.members,t),n.push(o);break}case 55:{let u=o,c=this.lowerMethods(u,t);for(let f=0,_=c.length;f<_;++f)n.push(c[f]);c.length>0&&(s=!0),n.push(o);break}case 51:{n.push(o);break}default:{n.push(o);break}}}if(s){e.length=0;for(let a=0,l=n.length;a<l;++a)e.push(n[a])}}lowerMethods(r,e){let t=new Array,n=r.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=62)continue;let o=l;if(o.body==null||o.is(32))continue;let u=assert(assert(this.analyses).get(o));if(!u.hasCaptures()||u.refused)continue;let c=u.makeEnvClasses();for(let f=0,_=c.length;f<_;++f)t.push(c[f]);u.rewrite()}return t}},b_=class{constructor(r,e){this.name=r;this.range=e}},x_=class{constructor(){this.hits=null;this.sawAsync=!1}check(r,e){if(!fk(r))return;let t=this.hits;if(t==null)t=new Array,this.hits=t;else for(let n=0,s=t.length;n<s;++n)if(t[n].name==r)return;t.push(new b_(r,e))}refuse(r){let e=this.hits;if(e==null)return!1;for(let t=0,n=e.length;t<n;++t)r.error(100,e[t].range,"a user identifier named '"+e[t].name+"' (closures lowering)");return!0}visitStatements(r){for(let e=0,t=r.length;e<t;++e)this.visitStatement(r[e])}visitStatement(r){switch(r.kind){case 34:{this.visitStatements(r.statements);break}case 37:{let e=r;this.visitStatement(e.body),this.visitExpression(e.condition);break}case 42:{this.visitExpression(r.expression);break}case 43:{let e=r,t=e.initializer;t!=null&&this.visitStatement(t);let n=e.condition;n!=null&&this.visitExpression(n);let s=e.incrementor;s!=null&&this.visitExpression(s),this.visitStatement(e.body);break}case 44:{let e=r;this.visitStatement(e.variable),this.visitExpression(e.iterable),this.visitStatement(e.body);break}case 45:{let e=r;this.visitExpression(e.condition),this.visitStatement(e.ifTrue),e.ifFalse!=null&&this.visitStatement(assert(e.ifFalse));break}case 47:{let e=r.value;e!=null&&this.visitExpression(e);break}case 48:{let e=r;this.visitExpression(e.condition);let t=e.cases;for(let n=0,s=t.length;n<s;++n){let a=t[n].label;a!=null&&this.visitExpression(a),this.visitStatements(t[n].statements)}break}case 49:{this.visitExpression(r.value);break}case 50:{let e=r;this.visitStatements(e.bodyStatements);let t=e.catchVariable;t!=null&&this.check(t.text,t.range),e.catchStatements!=null&&this.visitStatements(assert(e.catchStatements)),e.finallyStatements!=null&&this.visitStatements(assert(e.finallyStatements));break}case 51:{let e=r.declarations;for(let t=0,n=e.length;t<n;++t){let s=e[t];this.check(s.name.text,s.name.range),s.initializer!=null&&this.visitExpression(assert(s.initializer))}break}case 53:{let e=r;this.visitExpression(e.condition),this.visitStatement(e.body);break}case 59:case 62:{this.visitFunction(r);break}case 55:{this.visitClass(r);break}case 56:{let e=r;this.check(e.name.text,e.name.range);let t=e.values;for(let n=0,s=t.length;n<s;++n){this.check(t[n].name.text,t[n].name.range);let a=t[n].initializer;a!=null&&this.visitExpression(a)}break}case 63:{let e=r;this.check(e.name.text,e.name.range),this.visitStatements(e.members);break}case 64:{let e=r;this.check(e.name.text,e.name.range);break}default:break}}visitFunction(r){let e=r.name;e.text.length!=0&&this.check(e.text,e.range),r.isAsync&&(this.sawAsync=!0);let t=r.signature.parameters;for(let s=0,a=t.length;s<a;++s){let l=t[s];this.check(l.name.text,l.name.range),l.initializer!=null&&this.visitExpression(assert(l.initializer))}let n=r.body;n!=null&&this.visitStatement(n)}visitClass(r){let e=r.name;e.text.length!=0&&this.check(e.text,e.range);let t=r.members;for(let n=0,s=t.length;n<s;++n){let a=t[n];switch(a.kind){case 58:{let l=a;this.check(l.name.text,l.name.range),l.initializer!=null&&this.visitExpression(assert(l.initializer));break}case 62:{this.visitFunction(a);break}default:break}}}visitExpression(r){switch(r.kind){case 9:{this.visitExpression(r.expression);break}case 10:{let e=r;this.visitExpression(e.left),this.visitExpression(e.right);break}case 11:{let e=r;this.visitExpression(e.expression);let t=e.args;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 12:{this.visitClass(r.declaration);break}case 13:{let e=r.expressions;for(let t=0,n=e.length;t<n;++t)this.visitExpression(e[t]);break}case 14:{let e=r;this.visitExpression(e.expression),this.visitExpression(e.elementExpression);break}case 16:{this.visitFunction(r.declaration);break}case 17:{this.visitExpression(r.expression);break}case 18:{let e=r;switch(e.literalKind){case 3:{let t=e.expressions;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 5:{let t=e.elementExpressions;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 6:{let t=e.values;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}default:break}break}case 19:{let e=r.args;for(let t=0,n=e.length;t<n;++t)this.visitExpression(e[t]);break}case 22:{this.visitExpression(r.expression);break}case 23:{this.visitExpression(r.expression);break}case 24:{let e=r;this.visitExpression(e.condition),this.visitExpression(e.ifThen),this.visitExpression(e.ifElse);break}case 30:{this.visitExpression(r.operand);break}case 29:{this.visitExpression(r.operand);break}case 31:{this.visitExpression(r.operand);break}case 32:{this.visitExpression(r.expression);break}default:break}}};var ha=class{constructor(r,e,t,n,s){this.name=r;this.type=e;this.scope=t;this.declaration=n;this.hasInitializer=s;this.captured=!1;this.hasInitFlag=!1;this.isParam=!1;this.isLoopHeader=!1;this.isLoopHeaderOf=null;this.closureValue=null;this.isConst=!1}},Vt=class{constructor(r,e,t,n){this.kind=r;this.parent=e;this.ownerFunction=t;this.range=n;this.bindings=new Map;this.functionValues=new Map;this.captured=new Array;this.localName=null;this.className=null;this.needsThis=!1;this.isLoopHeader=!1}resolveFunctionValue(r){let e=this;for(;e!=null;){let t=ee(e.functionValues,r);if(t)return t;e=e.parent}return null}knownTypes(){let r=new Map,e=this;for(;e!=null;){let t=e.bindings,n=Map_keys(t);for(let s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(r.has(l))continue;let u=assert(t.get(l)).type;u!=null&&r.set(l,u)}e=e.parent}return r}resolve(r){let e=this;for(;e!=null;){let t=ee(e.bindings,r);if(t)return t;e=e.parent}return null}},E_=class{constructor(r,e,t){this.expression=r;this.arrows=e;this.receiver=t}},A_=class{constructor(r,e){this.declaration=r;this.range=e}},T_=class{constructor(r,e,t){this.identifier=r;this.binding=e;this.write=t}},S_=class{constructor(r,e,t,n,s){this.node=r;this.expression=e;this.isArrow=t;this.isAsync=n;this.parent=s;this.children=new Array;this.directCaptures=null;this.neededScopes=null;this.needed=null;this.displayName="";this.ownEnv=!1;this.bodyParent=null;this.usesThis=!1;this.capturesLocal=!1;this.ownsScope=null}recordCapture(r){let e=this.directCaptures;if(e==null)e=new Array,this.directCaptures=e;else if(e.includes(r))return;e.push(r)}recordNeed(r){let e=this.neededScopes;if(e==null)e=new Array,this.neededScopes=e;else if(e.includes(r))return;e.push(r);let t=this.needed;(t==null||ga(r)>ga(t))&&(this.needed=r)}resetNeeds(){this.neededScopes=null,this.needed=null}};function _u(i){return i.captured.length>0||i.needsThis}function cu(i){let r=i.parent;for(;r!=null;){if(_u(r))return r;r=r.parent}return null}function _k(i){let r=i.ownerFunction.name.text,e=i.kind==0?"$body":"$block";return r+e+":"+ga(i).toString()}function ga(i){let r=0,e=i;for(;e!=null;)++r,e=e.parent;return r}var ma=class{constructor(r,e,t,n=null,s=null){this.transform=r;this.parser=e;this.owner=t;this.refs=new Map;this.writes=new Set;this.allRefs=new Array;this.infos=new Map;this.scopes=new Array;this.scopeOfBlock=new Map;this.scopeOfCase=new Map;this.scopeOfLoop=new Map;this.plainBlocks=new Set;this.allInfos=new Array;this.bindingOf=new Map;this.captures=!1;this.refused=!1;this.typeParameters=new Set;this.classTypeParameters=new Set;this.envTypeParameters=new Array;this.thisUses=new Array;this.ownerBodyUsesThis=!1;this.hostCallbackCandidates=new Array;this.ownerNames=new Map;this.classNames=new Set;this.anonymousOwners=0;this.structFunctions=new Set;this.thisRefs=new Map;this.ownerThisType=n??t.signature.explicitThisType;let a=t.typeParameters;if(a)for(let o=0,u=a.length;o<u;++o)this.typeParameters.add(a[o].name.text);if(s!=null){let o=s.typeParameters;if(o)for(let u=0,c=o.length;u<c;++u){let f=o[u].name.text;this.classTypeParameters.add(f),this.envTypeParameters.push(f)}}let l=t.typeParameters;if(l)for(let o=0,u=l.length;o<u;++o){let c=l[o].name.text;this.typeParameters.add(c),this.classTypeParameters.has(c)||this.envTypeParameters.push(c)}}hasCaptures(){return this.captures||this.thisRefs.size>0}refuse(r,e){this.refused||(this.refused=!0,this.parser.error(100,r,e))}isPlainBlock(r){return this.plainBlocks.has(r)}describe(r,e){let t=new Array,n=r.neededScopes;if(n!=null){let l=new Array;for(let o=0,u=n.length;o<u;++o)l.push(n[o]);for(let o=1,u=l.length;o<u;++o){let c=l[o],f=ga(c),_=o-1;for(;_>=0&&ga(l[_])<f;)l[_+1]=l[_],--_;l[_+1]=c}for(let o=0,u=l.length;o<u;++o)t.push(_k(l[o]))}let s=r.needed!=null?"struct":r.usesThis?"receiver":"none",a=r.node.name.text;return a.length==0&&(a=r.displayName),a.length==0&&(a="$anonymous"+e.toString()),new hu(a,s,r.needed!=null?r.needed.className:null,r.ownEnv,r.needed!=null,r.bodyParent!=null?r.bodyParent.className:null,t)}attributeThis(){let r=this.thisUses;for(let e=0,t=r.length;e<t;++e){let n=r[e],s=n.arrows[0],a=n.receiver.ownsScope;if(a==null)continue;let l=s.needed;if(l==null){if(!n.receiver.isAsync)continue;s.recordCapture(a),s.recordNeed(a),a.needsThis=!0,this.thisRefs.set(n.expression,a);continue}if(this.ownerThisType==null){this.refuse(n.expression.range,"this in a capturing arrow (closures lowering)");continue}let o;l.ownerFunction===a.ownerFunction?(l.needsThis=!0,o=l):(a.needsThis=!0,o=a),this.thisRefs.set(n.expression,o)}if(this.ownerBodyUsesThis&&this.owner.isAsync&&this.ownerThisType!=null){let e=ee(this.infos,this.owner),t=e!=null?e.ownsScope:null;t!=null&&_u(t)&&(t.needsThis=!0)}}ownerPrefix(r){let e=ee(this.infos,r);if(e==null)return r.name.text;let t=new Array,n=e;for(;n!=null;)t.push(this.ownerNameOf(n)),n=n.parent;let s="";for(let a=t.length-1;a>=0;--a)s.length!=0&&(s+="$"),s+=t[a];return s}ownerNameOf(r){let e=ee(this.ownerNames,r.node);if(e!=null)return e;let t=r.node.name.text;return t.length==0&&(t=r.displayName),t.length==0&&(++this.anonymousOwners,t="$anon"+this.anonymousOwners.toString()),this.ownerNames.set(r.node,t),t}uniqueClassName(r,e){let t=r,n=0;for(;this.classNames.has(t);)++n,t=r+"$"+n.toString();return this.classNames.add(t),t}finalizeNeeds(){let r=this.scopes,e=this.allInfos;for(let t=0,n=e.length;t<n;++t)e[t].ownEnv=!1,e[t].bodyParent=null;for(let t=0,n=r.length;t<n;++t){let s=r[t];if(!_u(s))continue;let a=ee(this.infos,s.ownerFunction);a!=null&&(a.ownEnv=!0)}for(let t=e.length-1;t>=0;--t){let n=e[t];n.resetNeeds();let s=n.directCaptures;if(s!=null)for(let o=0,u=s.length;o<u;++o)n.recordNeed(s[o]);let a=n.children;for(let o=0,u=a.length;o<u;++o){let c=a[o].needed;c!=null&&this.isDeliverable(n,c)&&n.recordNeed(c)}let l=n.ownsScope;if(l!=null&&l.captured.length>0){let o=cu(l);o!=null&&(n.bodyParent=o,n.recordNeed(o))}}}run(){let r=this.analyzeFunction(this.owner,null,!1,null,null),e=this.allRefs;for(let s=0,a=e.length;s<a;++s){let l=e[s];l.binding.captured&&(this.refs.set(l.identifier,l.binding),l.write&&this.writes.add(l.identifier))}this.finalizeNeeds(),this.attributeThis(),this.finalizeNeeds();let t=this.hostCallbackCandidates;for(let s=0,a=t.length;s<a;++s){let l=t[s],o=ee(this.infos,l.declaration);if(o!=null&&o.needed!=null){this.refuse(l.range,"a closure captured by a host callback (closures lowering)");break}}let n=0;for(let s=0,a=this.scopes.length;s<a;++s){let l=this.scopes[s];if(!_u(l))continue;if(l.kind==1&&!this.isPlainBlock(l)&&!l.isLoopHeader){this.refuse(l.range,"a capture from a switch or try scope (closures lowering)");continue}let o=this.ownerPrefix(l.ownerFunction);l.kind==0?(l.localName=da,l.className=this.uniqueClassName(o+Cx,l.range)):(++n,l.localName=da+"$"+n.toString(),l.className=this.uniqueClassName(o+Cx+"$"+n.toString(),l.range))}for(let s=0,a=this.allInfos.length;s<a;++s){let l=this.allInfos[s],o=l.ownsScope;o==null||o.className==null||nl.set(l.node,new ts(0,o.className,!0,!1,l.bodyParent!=null?assert(l.bodyParent).className:null,o.needsThis))}r.needed!=null&&this.refuse(this.owner.range,"a top-level function that captures (closures lowering)")}analyzeFunction(r,e,t,n,s){let a=new S_(r,e,t,r.isAsync,s);this.infos.set(r,a),this.allInfos.push(a),s&&s.children.push(a);let l=new Vt(0,n,r,r.range);a.ownsScope=l,this.scopes.push(l);let o=r.signature.parameters;for(let c=0,f=o.length;c<f;++c){let _=o[c],d=new ha(_.name.text,_.type,l,_,!0);d.isParam=!0,l.bindings.set(d.name,d)}let u=r.body;u!=null&&(u.kind==34?this.walkStatements(u.statements,l,a):this.walkStatement(u,l,a)),a.needed!=null&&e!=null&&this.structFunctions.add(e);for(let c=0,f=a.children.length;c<f;++c){let d=a.children[c].needed;d!=null&&this.isDeliverable(a,d)&&a.recordNeed(d)}return a}isDeliverable(r,e){if(e.ownerFunction===r.node)return!1;let t=r.ownsScope,n=e;for(;n!=null;){if(n===t)return!1;n=n.parent}return!0}walkStatements(r,e,t){for(let n=0,s=r.length;n<s;++n)this.walkStatement(r[n],e,t)}walkStatement(r,e,t){switch(r.kind){case 34:{let n=r,s=new Vt(1,e,t.node,n.range);this.scopeOfBlock.set(n,s),this.plainBlocks.add(s),this.scopes.push(s),this.walkStatements(n.statements,s,t);break}case 51:{let n=r.declarations;for(let s=0,a=n.length;s<a;++s)this.declare(n[s],e,!1,t);break}case 42:{let n=r.expression;if(this.walkExpression(n,e,t,!1),n.kind==16){let s=n,a=s.declaration.name;a.text.length>0&&e.functionValues.set(a.text,s)}break}case 47:{let n=r.value;n!=null&&this.walkExpression(n,e,t,!1);break}case 45:{let n=r;this.walkExpression(n.condition,e,t,!1),this.walkStatement(n.ifTrue,e,t),n.ifFalse!=null&&this.walkStatement(assert(n.ifFalse),e,t);break}case 53:{let n=r;this.walkExpression(n.condition,e,t,!1),this.walkStatement(n.body,e,t);break}case 37:{let n=r;this.walkStatement(n.body,e,t),this.walkExpression(n.condition,e,t,!1);break}case 43:{let n=r,s=new Vt(1,e,t.node,n.range);this.scopeOfLoop.set(n,s),this.scopes.push(s);let a=n.initializer;if(a!=null)if(a.kind==51){let u=a.declarations;for(let c=0,f=u.length;c<f;++c)this.declare(u[c],s,!0,t,n)}else this.walkStatement(a,s,t);let l=n.condition;l!=null&&this.walkExpression(l,s,t,!1);let o=n.incrementor;o!=null&&this.walkExpression(o,s,t,!1),this.walkStatement(n.body,s,t);break}case 44:{let n=r;this.walkExpression(n.iterable,e,t,!1);let s=new Vt(1,e,t.node,n.range);if(this.scopes.push(s),n.variable.kind==51){let a=n.variable.declarations;for(let l=0,o=a.length;l<o;++l)this.declare(a[l],s,!0,t)}else this.walkStatement(n.variable,s,t);this.walkStatement(n.body,s,t);break}case 48:{let n=r;this.walkExpression(n.condition,e,t,!1);let s=n.cases;for(let a=0,l=s.length;a<l;++a){let o=s[a],u=o.label;u!=null&&this.walkExpression(u,e,t,!1);let c=new Vt(1,e,t.node,o.range);this.scopeOfCase.set(o,c),this.scopes.push(c),this.walkStatements(o.statements,c,t)}break}case 50:{let n=r,s=new Vt(1,e,t.node,n.range);if(this.scopes.push(s),this.walkStatements(n.bodyStatements,s,t),n.catchStatements!=null){let a=new Vt(1,e,t.node,n.range);this.scopes.push(a);let l=n.catchVariable;if(l!=null){let o=new ha(l.text,null,a,l,!0);a.bindings.set(o.name,o)}this.walkStatements(assert(n.catchStatements),a,t)}if(n.finallyStatements!=null){let a=new Vt(1,e,t.node,n.range);this.scopes.push(a),this.walkStatements(assert(n.finallyStatements),a,t)}break}case 49:{this.walkExpression(r.value,e,t,!1);break}case 35:case 36:case 38:case 64:break;default:break}}declare(r,e,t,n,s=null){let a=r.initializer;a!=null&&this.walkExpression(a,e,n,!1);let l=new ha(r.name.text,r.type,e,r,a!=null);if(l.isLoopHeader=t,l.isLoopHeaderOf=s,a!=null&&a.kind==16){let o=a;this.structFunctions.has(o)&&(l.closureValue=o);let u=ee(this.infos,o.declaration);u!=null&&(u.displayName=r.name.text)}l.isConst=(r.flags&8)!=0,e.bindings.set(l.name,l),this.bindingOf.set(r,l)}walkExpression(r,e,t,n){switch(r.kind){case 8:{let s=r,a=e.resolve(s.text);if(a==null)return;this.allRefs.push(new T_(s,a,n)),a.scope.ownerFunction!==t.node&&this.capture(a,s,t,n);return}case 26:{t.node===this.owner?this.ownerBodyUsesThis=!0:this.markThis(r,t);return}case 25:{t.isArrow&&this.refuse(r.range,"super in a capturing arrow (closures lowering)");return}case 27:case 15:case 20:return;case 16:{let s=r,a=s.declaration;this.analyzeFunction(a,s,a.arrowKind!=0,e,t);return}case 18:{let s=r;switch(s.literalKind){case 3:{let a=s.expressions;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}case 5:{let a=s.elementExpressions;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}case 6:{let a=s.values;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}default:break}return}case 10:{let s=r,a=Bx(s.operator);this.walkExpression(s.left,e,t,a),this.walkExpression(s.right,e,t,!1);return}case 30:{let s=r,a=s.operator==88||s.operator==89;this.walkExpression(s.operand,e,t,a);return}case 29:{let s=r,a=s.operator==88||s.operator==89;this.walkExpression(s.operand,e,t,a);return}case 11:{let s=r;this.walkExpression(s.expression,e,t,!1);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);if(dk(s))for(let l=0,o=a.length;l<o;++l){let u=this.closureValueIn(a[l],e);if(u!=null){let c=ee(this.infos,u.declaration);c!=null&&c.needed!=null?this.refuse(u.range,"a closure captured by a host callback (closures lowering)"):this.hostCallbackCandidates.push(new A_(u.declaration,u.range))}}return}case 13:{let s=r.expressions;for(let a=0,l=s.length;a<l;++a)this.walkExpression(s[a],e,t,a==l-1?n:!1);return}case 14:{let s=r;this.walkExpression(s.expression,e,t,!1),this.walkExpression(s.elementExpression,e,t,!1);return}case 17:{this.walkExpression(r.expression,e,t,!1);return}case 19:{let s=r.args;for(let a=0,l=s.length;a<l;++a)this.walkExpression(s[a],e,t,!1);return}case 22:{this.walkExpression(r.expression,e,t,n);return}case 23:{this.walkExpression(r.expression,e,t,!1);return}case 24:{let s=r;this.walkExpression(s.condition,e,t,!1),this.walkExpression(s.ifThen,e,t,n),this.walkExpression(s.ifElse,e,t,n);return}case 9:{this.walkExpression(r.expression,e,t,n);return}case 31:{this.walkExpression(r.operand,e,t,!1);return}case 32:{this.walkExpression(r.expression,e,t,!1);return}default:return}}capture(r,e,t,n){if(this.captures=!0,r.captured=!0,r.hasInitializer||(r.hasInitFlag=!0),r.isLoopHeader&&(r.isLoopHeaderOf==null?this.refuse(e.range,"a captured for-of or for-in binding (closures lowering)"):r.scope.isLoopHeader=!0),r.type==null){let s=null,a=r.declaration;a.kind==65&&(s=a.initializer);let l=ut(s,r.scope.knownTypes(),0);l!=null?(r.type=l,a.kind==65&&(a.type=l)):this.refuse(e.range,"a captured local without a declared type (closures lowering)")}r.type!=null&&(v_(assert(r.type),this.typeParameters)||v_(assert(r.type),this.classTypeParameters))&&mk(r.scope)&&this.refuse(e.range,"a captured local typed by a type parameter in an async body (closures lowering)"),n&&r.isConst&&this.refuse(e.range,"an assignment to a captured constant (closures lowering)"),t.capturesLocal=!0,t.recordCapture(r.scope),t.recordNeed(r.scope),r.scope.captured.includes(r)||r.scope.captured.push(r)}closureValueIn(r,e){if(r.kind==16)return r;if(r.kind==8){let t=r.text,n=e.resolveFunctionValue(t);if(n!=null)return n;let s=e.resolve(t);if(s!=null&&s.closureValue!=null)return s.closureValue}return null}structClosureIn(r,e){if(r.kind==16){let t=r;return this.structFunctions.has(t)?t:null}if(r.kind==8){let t=r.text,n=e.resolveFunctionValue(t);if(n!=null)return this.structFunctions.has(n)?n:null;let s=e.resolve(t);if(s!=null&&s.closureValue!=null)return s.closureValue}return null}markThis(r,e){let t=new Array,n=e;for(;n!=null&&n.isArrow;)n.usesThis=!0,t.push(n),n=n.parent;t.length>0&&n!=null&&this.thisUses.push(new E_(r,t,n))}makeEnvClasses(){let r=new Array;for(let e=0,t=this.scopes.length;e<t;++e){let n=this.scopes[e];n.className!=null&&r.push(this.makeEnvClass(n))}return r}envTypeArgs(r){let e=this.envTypeParameters,t=e.length;if(t==0)return null;let n=new Array(t);for(let s=0;s<t;++s)n[s]=h.createNamedType(h.createSimpleTypeName(e[s],r),null,!1,r);return n}makeEnvClass(r){let e=new Array,t=r.range,n=r.captured;if(r.needsThis){let o=assert(this.ownerThisType);e.push(h.createFieldDeclaration(h.createIdentifierExpression(En,t),null,262144,o,h.createCallExpression(h.createIdentifierExpression("changetype",t),[o],[h.createIntegerLiteralExpression(i64_new(0),t)],t),t))}for(let o=0,u=n.length;o<u;++o){let c=n[o].type,f=null;c!=null&&hk(c)&&(f=h.createCallExpression(h.createIdentifierExpression("changetype",t),[c],[h.createIntegerLiteralExpression(i64_new(0),t)],t)),e.push(h.createFieldDeclaration(h.createIdentifierExpression(n[o].name,t),null,262144,c,f,t))}for(let o=0,u=n.length;o<u;++o)n[o].hasInitFlag&&e.push(h.createFieldDeclaration(h.createIdentifierExpression(fu+n[o].name,t),null,262144,du("bool",t),null,t));let s=cu(r);if(s!=null&&e.push(h.createFieldDeclaration(h.createIdentifierExpression(_a,t),null,262144,h.createNamedType(h.createSimpleTypeName(assert(s.className),t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t)),r.isLoopHeader||s!=null){let o=assert(r.className),u="source",c="parent",f=new Array;r.isLoopHeader&&f.push(h.createParameter(1,h.createIdentifierExpression(u,t),h.createNamedType(h.createSimpleTypeName(o,t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t)),s!=null&&f.push(h.createParameter(1,h.createIdentifierExpression(c,t),h.createNamedType(h.createSimpleTypeName(assert(s.className),t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t));let _=new Array;if(_.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(t),null,[],t))),s!=null){let y;r.isLoopHeader?y=h.createTernaryExpression(h.createBinaryExpression(78,h.createIdentifierExpression(u,t),h.createNullExpression(t),t),this.fieldOn(u,_a,t),h.createIdentifierExpression(c,t),t):y=h.createIdentifierExpression(c,t),_.push(h.createExpressionStatement(this.assign(this.fieldOn("this",_a,t),y,t)))}let d=new Array,g=new Array;r.needsThis&&g.push(En);for(let y=0,E=n.length;y<E;++y)g.push(n[y].name),n[y].hasInitFlag&&g.push(fu+n[y].name);if(r.isLoopHeader)for(let y=0,E=g.length;y<E;++y)d.push(h.createExpressionStatement(this.assign(this.fieldOn("this",g[y],t),this.fieldOn(u,g[y],t),t)));d.length>0&&_.push(h.createIfStatement(h.createBinaryExpression(78,h.createIdentifierExpression(u,t),h.createNullExpression(t),t),h.createBlockStatement(d,t),null,t)),e.push(h.createMethodDeclaration(h.createConstructorExpression(t),null,786432,null,h.createFunctionType(f,du("void",t),null,!1,t),h.createBlockStatement(_,t),t))}let a=null,l=this.envTypeParameters;if(l.length>0){a=new Array(l.length);for(let o=0,u=l.length;o<u;++o)a[o]=h.createTypeParameter(h.createIdentifierExpression(l[o],t),null,null,t)}return h.createClassDeclaration(h.createIdentifierExpression(assert(r.className),t),null,a!=null?65536:0,a,du("TaskEnv",t),null,e,t)}rewrite(){let r=assert(this.infos.get(this.owner));this.rewriteFunctionBody(r)}rewriteFunctionBody(r){let e=r.node.body;if(e==null)return;let t=assert(r.ownsScope),n,s=null;e.kind==34?n=e.statements:(s=e,n=[s]);let a=this.rewriteStatements(n,t,r.node);if(s!=null)if(a.length==1&&a[0].kind==42)r.node.body=a[0];else{let l=new Array,o=null;if(a.length!=0){let u=a.length-1;o=a[u];for(let c=0;c<u;++c)l.push(a[c])}o!=null&&o.kind==42?l.push(h.createReturnStatement(o.expression,o.range)):o!=null&&l.push(o),r.node.body=h.createBlockStatement(l,s.range)}else{let l=e;l.statements.length=0;for(let o=0,u=a.length;o<u;++o)l.statements.push(a[o])}}rewriteStatements(r,e,t,n=null){let s=new Array;if(e.localName!=null){s.push(this.makeEnvAllocation(e)),e.needsThis&&s.push(h.createExpressionStatement(this.assign(this.fieldOn(assert(e.localName),En,e.range),h.createThisExpression(e.range),e.range)));let a=e.captured;for(let l=0,o=a.length;l<o;++l){let u=a[l];u.isParam&&s.push(h.createExpressionStatement(this.assign(this.fieldOf(e,u,e.range),h.createIdentifierExpression(u.name,e.range),e.range)))}}for(let a=0,l=r.length;a<l;++a){let o=this.rewriteStatement(r[a],e,t,n);o!=null&&s.push(o)}return s}makeEnvAllocation(r){let e=assert(r.className),t=new Array;r.isLoopHeader&&t.push(h.createNullExpression(r.range));let n=cu(r);return n!=null&&t.push(n.ownerFunction===r.ownerFunction?h.createIdentifierExpression(assert(n.localName),r.range):h.createIdentifierExpression(pu,r.range)),h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(assert(r.localName),r.range),null,16,h.createNamedType(h.createSimpleTypeName(e,r.range),this.envTypeArgs(r.range),!1,r.range),h.createNewExpression(h.createSimpleTypeName(e,r.range),this.envTypeArgs(r.range),t,r.range),r.range)],r.range)}rewriteStatement(r,e,t,n=null){switch(r.kind){case 34:{let s=r,a=ee(this.scopeOfBlock,s),l=a??e,o=this.rewriteStatements(s.statements,l,t,n);return h.createBlockStatement(o,s.range)}case 51:{let s=r,a=new Array,l=new Array,o=s.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u],_=ee(this.bindingOf,f);if(_!=null&&_.captured){let g=f.initializer;g!=null&&l.push(h.createExpressionStatement(this.assign(this.fieldOf(_.scope,_,f.name.range),this.rewriteExpression(g,e,t),f.range)));continue}let d=f.initializer;d!=null&&(f.initializer=this.rewriteExpression(d,e,t)),a.push(f)}return a.length>0&&l.unshift(h.createVariableStatement(s.decorators,a,s.range)),l.length==0?null:l.length==1?l[0]:h.createBlockStatement(l,s.range)}case 42:{let s=r;return h.createExpressionStatement(this.rewriteExpression(s.expression,e,t))}case 47:{let s=r,a=s.value;return h.createReturnStatement(a!=null?this.rewriteExpression(a,e,t):null,s.range)}case 45:{let s=r;return h.createIfStatement(this.rewriteExpression(s.condition,e,t),assert(this.rewriteStatement(s.ifTrue,e,t,n)),s.ifFalse!=null?this.rewriteStatement(assert(s.ifFalse),e,t,n):null,s.range)}case 53:{let s=r;return h.createWhileStatement(this.rewriteExpression(s.condition,e,t),assert(this.rewriteStatement(s.body,e,t,null)),s.range)}case 37:{let s=r;return h.createDoStatement(assert(this.rewriteStatement(s.body,e,t,null)),this.rewriteExpression(s.condition,e,t),s.range)}case 43:{let s=r,a=ee(this.scopeOfLoop,s),l=a??e;if(!(a!=null&&a.localName!=null&&a.isLoopHeader)){let u=s.initializer;return h.createForStatement(u!=null?this.rewriteStatement(u,l,t):null,s.condition!=null?this.rewriteExpression(assert(s.condition),l,t):null,s.incrementor!=null?this.rewriteExpression(assert(s.incrementor),l,t):null,assert(this.rewriteStatement(s.body,l,t,null)),s.range)}return this.rewriteHeaderLoop(s,assert(a),t)}case 44:{let s=r,a=this.rewriteStatement(s.variable,e,t);return h.createForOfStatement(assert(a),this.rewriteExpression(s.iterable,e,t),assert(this.rewriteStatement(s.body,e,t)),s.range)}case 48:{let s=r,a=new Array,l=s.cases;for(let o=0,u=l.length;o<u;++o){let c=l[o],f=e,_=new Array;for(let d=0,g=c.statements.length;d<g;++d){let y=this.rewriteStatement(c.statements[d],f,t);y!=null&&_.push(y)}a.push(h.createSwitchCase(c.label!=null?this.rewriteExpression(assert(c.label),e,t):null,_,c.range))}return h.createSwitchStatement(this.rewriteExpression(s.condition,e,t),a,s.range)}case 50:{let s=r,a=new Array;for(let f=0,_=s.bodyStatements.length;f<_;++f){let d=this.rewriteStatement(s.bodyStatements[f],e,t);d!=null&&a.push(d)}let l=null,o=s.catchStatements;if(o!=null){l=new Array;for(let f=0,_=o.length;f<_;++f){let d=this.rewriteStatement(o[f],e,t);d!=null&&l.push(d)}}let u=null,c=s.finallyStatements;if(c!=null){u=new Array;for(let f=0,_=c.length;f<_;++f){let d=this.rewriteStatement(c[f],e,t);d!=null&&u.push(d)}}return h.createTryStatement(a,s.catchVariable,l,u,s.range)}case 36:return n==null?r:h.createBlockStatement([n,h.createContinueStatement(r.label,r.range)],r.range);case 49:{let s=r;return h.createThrowStatement(this.rewriteExpression(s.value,e,t),s.range)}default:return r}}rewriteHeaderLoop(r,e,t){let n=new Array;n.push(this.makeEnvAllocation(e)),e.needsThis&&n.push(h.createExpressionStatement(this.assign(this.fieldOn(assert(e.localName),En,r.range),h.createThisExpression(r.range),r.range)));let s=null,a=r.initializer;if(a!=null)if(a.kind==51){let f=a,_=new Array,d=f.declarations;for(let g=0,y=d.length;g<y;++g){let E=d[g],T=ee(this.bindingOf,E);if(T!=null&&T.captured){let k=E.initializer;k!=null&&n.push(h.createExpressionStatement(this.assign(this.fieldOf(e,T,E.name.range),this.rewriteExpression(k,e,t),E.range)))}else{let k=E.initializer;k!=null&&(E.initializer=this.rewriteExpression(k,e,t)),_.push(E)}}_.length>0&&(s=h.createVariableStatement(f.decorators,_,f.range))}else s=this.rewriteStatement(a,e,t,null);let l=this.rewriteStatement(r.body,e,t,this.makeCloneStatement(e)),o=assert(l),u=o.kind==34?o.statements:[o];u.push(this.makeCloneStatement(e));let c=h.createForStatement(s,r.condition!=null?this.rewriteExpression(assert(r.condition),e,t):null,r.incrementor!=null?this.rewriteExpression(assert(r.incrementor),e,t):null,h.createBlockStatement(u,r.body.range),r.range);return n.push(c),h.createBlockStatement(n,r.range)}makeCloneStatement(r){let e=assert(r.localName),t=assert(r.className);return h.createExpressionStatement(this.assign(h.createIdentifierExpression(e,r.range),h.createNewExpression(h.createSimpleTypeName(t,r.range),this.envTypeArgs(r.range),[h.createIdentifierExpression(e,r.range)],r.range),r.range))}rewriteExpression(r,e,t){switch(r.kind){case 26:{let n=ee(this.thisRefs,r);return n==null?r:this.fieldFrom(this.envExprForScope(n,t,r.range),En,r.range)}case 8:{let n=r,s=ee(this.refs,n);if(s==null)return r;let a=this.fieldOfFor(s,t,n.range);return s.hasInitFlag?h.createCommaExpression([this.guard(s,a,t,n.range),a],n.range):a}case 10:{let n=r;if(Bx(n.operator)&&n.left.kind==8){let s=n.left,a=ee(this.refs,s);if(a!=null){let l=this.fieldOfFor(a,t,n.left.range),o=this.rewriteExpression(n.right,e,t);if(n.operator==102)return a.hasInitFlag?h.createCommaExpression([this.assign(this.flagField(a,t,n.range),h.createTrueExpression(n.range),n.range),this.assign(l,o,n.range)],n.range):this.assign(l,o,n.range);let u=new Array;return a.hasInitFlag&&(u.push(this.guard(a,l,t,n.range)),u.push(this.assign(this.flagField(a,t,n.range),h.createTrueExpression(n.range),n.range))),u.push(h.createBinaryExpression(n.operator,l,o,n.range)),u.length==1?u[0]:h.createCommaExpression(u,n.range)}}return h.createBinaryExpression(n.operator,this.rewriteExpression(n.left,e,t),this.rewriteExpression(n.right,e,t),n.range)}case 30:{let n=r,s=n.operand.kind==8?ee(this.refs,n.operand):null;if(s!=null){let a=this.fieldOfFor(s,t,n.range),l=new Array;return s.hasInitFlag&&(l.push(this.guard(s,a,t,n.range)),l.push(this.assign(this.flagField(s,t,n.range),h.createTrueExpression(n.range),n.range))),l.push(h.createUnaryPrefixExpression(n.operator,a,n.range)),l.length==1?l[0]:h.createCommaExpression(l,n.range)}return h.createUnaryPrefixExpression(n.operator,this.rewriteExpression(n.operand,e,t),n.range)}case 29:{let n=r,s=n.operand.kind==8?ee(this.refs,n.operand):null;if(s!=null){let a=this.fieldOfFor(s,t,n.range),l=new Array;return s.hasInitFlag&&(l.push(this.guard(s,a,t,n.range)),l.push(this.assign(this.flagField(s,t,n.range),h.createTrueExpression(n.range),n.range))),l.push(h.createUnaryPostfixExpression(n.operator,a,n.range)),l.length==1?l[0]:h.createCommaExpression(l,n.range)}return h.createUnaryPostfixExpression(n.operator,this.rewriteExpression(n.operand,e,t),n.range)}case 11:{let n=r,s=new Array;for(let a=0,l=n.args.length;a<l;++a)s.push(this.rewriteExpression(n.args[a],e,t));return h.createCallExpression(this.rewriteExpression(n.expression,e,t),n.typeArguments,s,n.range)}case 16:{let n=r,s=ee(this.infos,n.declaration);if(s!=null){this.rewriteFunctionBody(s);let a=s.needed;if(a!=null){let l=assert(a.className),o=s.bodyParent!=null?assert(s.bodyParent).className:null;Vi().set(n,new ts(2,l,s.ownEnv,!0,o,a.needsThis));let u=a.ownerFunction===t?a:null;Or().set(n,u!=null?assert(u.localName):pu)}}return r}case 18:{let n=r;switch(n.literalKind){case 3:{let s=n.expressions;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}case 5:{let s=n.elementExpressions;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}case 6:{let s=n.values;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}default:break}return n}case 13:{let n=r,s=new Array;for(let a=0,l=n.expressions.length;a<l;++a)s.push(this.rewriteExpression(n.expressions[a],e,t));return h.createCommaExpression(s,n.range)}case 14:{let n=r;return h.createElementAccessExpression(this.rewriteExpression(n.expression,e,t),this.rewriteExpression(n.elementExpression,e,t),n.range)}case 17:{let n=r;return h.createInstanceOfExpression(this.rewriteExpression(n.expression,e,t),n.isType,n.range)}case 19:{let n=r,s=new Array;for(let a=0,l=n.args.length;a<l;++a)s.push(this.rewriteExpression(n.args[a],e,t));return h.createNewExpression(n.typeName,n.typeArguments,s,n.range)}case 22:{let n=r;return h.createParenthesizedExpression(this.rewriteExpression(n.expression,e,t),n.range)}case 23:{let n=r;return h.createPropertyAccessExpression(this.rewriteExpression(n.expression,e,t),n.property,n.range)}case 24:{let n=r;return h.createTernaryExpression(this.rewriteExpression(n.condition,e,t),this.rewriteExpression(n.ifThen,e,t),this.rewriteExpression(n.ifElse,e,t),n.range)}case 9:{let n=r;return n.expression=this.rewriteExpression(n.expression,e,t),n}case 31:{let n=r;return n.operand=this.rewriteExpression(n.operand,e,t),n}case 32:{let n=r;return n.expression=this.rewriteExpression(n.expression,e,t),n}default:return r}}fieldOfFor(r,e,t){return this.fieldFrom(this.envExprFor(r,e,t),r.name,t)}envExprFor(r,e,t){return this.envExprForScope(r.scope,e,t)}envExprForScope(r,e,t){if(r.ownerFunction===e)return h.createIdentifierExpression(assert(r.localName),t);let n=assert(this.infos.get(e)),s=assert(n.needed),a=h.createIdentifierExpression(pu,t),l=s;for(;l!==r;)a=h.createAssertionExpression(2,this.fieldFrom(a,_a,t),null,t),l=assert(cu(l));return a}fieldFrom(r,e,t){return h.createPropertyAccessExpression(r,h.createIdentifierExpression(e,t),t)}fieldOf(r,e,t){return this.fieldOn(assert(r.localName),e.name,t)}fieldOn(r,e,t){return h.createPropertyAccessExpression(h.createIdentifierExpression(r,t),h.createIdentifierExpression(e,t),t)}flagField(r,e,t){return this.fieldFrom(this.envExprFor(r,e,t),fu+r.name,t)}guard(r,e,t,n){return h.createCallExpression(h.createIdentifierExpression(ck,n),[assert(r.type)],[e,this.flagField(r,t,n),h.createStringLiteralExpression(r.name,n)],n)}assign(r,e,t){return h.createBinaryExpression(102,r,e,t)}};function du(i,r){return h.createNamedType(h.createSimpleTypeName(i,r),null,!1,r)}function dk(i){let r=i.expression;return(r.kind==8?r.text:r.kind==23?r.property.text:"")=="makeCallbacks"}function Bx(i){switch(i){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:return!0;default:return!1}}function hk(i){if(i.kind!=1)return!0;let r=i,e=r.typeArguments;if(e!=null&&e.length>0)return!0;let t=r.name.identifier.text;return!(t=="i8"||t=="i16"||t=="i32"||t=="i64"||t=="u8"||t=="u16"||t=="u32"||t=="u64"||t=="isize"||t=="usize"||t=="bool"||t=="f32"||t=="f64"||t=="v128")}function mk(i){let r=i;for(;r!=null;){if(r.ownerFunction.isAsync)return!0;r=r.parent}return!1}function v_(i,r){if(r.size==0)return!1;if(i.kind==1){let e=i;if(r.has(e.name.identifier.text))return!0;let t=e.typeArguments;if(t!=null){for(let n=0,s=t.length;n<s;++n)if(v_(t[n],r))return!0}}return!1}var yk="$lazyDone",gk="$lazyTask",bk="spawn",k_=class{constructor(r,e,t,n,s){this.name=r;this.doneName=e;this.awaitOperand=t;this.declaration=n;this.range=s;this.taskName=null;this.taskCall=null}},yu=class{afterParse(r){this.parser=r;let e=this.program.sources;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.isLibrary||this.walkFunctions(s.statements)}}walkFunctions(r){for(let e=0,t=r.length;e<t;++e){let n=r[e];switch(n.kind){case 59:{this.rewriteBodyStatement(n.body);break}case 55:{let s=n.members;if(s!=null)for(let a=0,l=s.length;a<l;++a){let o=s[a];(o.kind==62||o.kind==59)&&this.rewriteBodyStatement(o.body)}break}case 63:{this.walkFunctions(n.members);break}case 40:{let s=n.declaration;s!=null&&this.walkFunctions([s]);break}default:break}}}rewriteBodyStatement(r){r==null||r.kind!=34||this.rewriteBody(r)}rewriteBody(r){if(r==null)return;let e=r.statements;r.statements=this.rewriteList(e,new Map),this.walkFunctions(r.statements),this.rewriteNestedFunctionExpressions(r.statements)}rewriteList(r,e){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind==42){let o=a,u=o.expression;if(I_(u)){this.parser.warning(6401,u.range);let c=mu(u);c!=null&&(o.expression=c)}}else if(a.kind==51){let o=a.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u].initializer;if(f!=null&&I_(f)){let _=mu(f);_!=null&&(o[u].initializer=_)}}}if(a.kind==51){let o=this.rewriteDeclaration(a,e);if(o!=null){for(let u=0,c=o.length;u<c;++u)t.push(o[u]);continue}}this.recurseInto(a,e);let l=this.collectOwnReads(a,e,new Array);for(let o=0,u=l.length;o<u;++o)t.push(this.makeGuard(assert(ee(e,l[o])),a.range));t.push(a)}return t}rewriteDeclaration(r,e){let t=r.declarations,n=null,s=null;for(let o=0,u=t.length;o<u;++o){let c=t[o],f=c.initializer;if(f==null||f.kind!=32)continue;let _=f;if(_.expression.kind!=31)continue;if(t.length!=1)return this.parser.error(100,c.range,"a '@lazy await' binding in a multi-declarator statement"),this.degrade(c,_),null;let d=c.type;if(d==null)return this.parser.error(6399,c.name.range,c.name.text),this.degrade(c,_),null;let g=c.name.text;if(ee(e,g)!=null)return this.parser.error(100,c.name.range,"a redeclared '@lazy await' binding in one block"),null;let y=g+yk,E=_.expression.operand,T=null;if(I_(E)){if(mu(E)==null)return this.parser.error(100,E.range,"a 'spawn' whose argument is not a call or a function name"),this.degrade(c,_),null;T=g+gk,E=h.createIdentifierExpression(T,E.range)}s=new k_(g,y,E,c,c.range),s.taskName=T,T!=null&&(s.taskCall=mu(_.expression.operand)),n=h.createVariableDeclaration(c.name,c.decorators,c.flags,d,null,c.range);break}if(s==null||n==null)return null;e.set(s.name,s);let a=new Array,l=s.taskName;if(l!=null){let o=h.createNamedType(h.createSimpleTypeName("Task",s.range),[assert(s.declaration.type)],!1,s.range);a.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(l,s.range),null,16,o,s.taskCall,s.range)],s.range))}return a.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(s.doneName,s.range),null,16,null,h.createFalseExpression(s.range),s.range)],s.range)),a.push(h.createVariableStatement(null,[n],r.range)),a}degrade(r,e){let t=e.expression;r.initializer=t.kind==31?t.operand:t}makeGuard(r,e){let t=h.createIdentifierExpression(r.doneName,e);return h.createIfStatement(h.createUnaryPrefixExpression(96,t,e),h.createBlockStatement([h.createExpressionStatement(h.createBinaryExpression(102,h.createIdentifierExpression(r.name,e),h.createAwaitExpression(r.awaitOperand,e),e)),h.createExpressionStatement(h.createBinaryExpression(102,h.createIdentifierExpression(r.doneName,e),h.createTrueExpression(e),e))],e),null,e)}recurseInto(r,e){switch(r.kind){case 34:{let t=r;t.statements=this.rewriteList(t.statements,e);break}case 45:{let t=r;t.ifTrue=this.rewriteSingleBody(t.ifTrue,e),t.ifFalse!=null&&(t.ifFalse=this.rewriteSingleBody(assert(t.ifFalse),e));break}case 53:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 37:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 43:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 44:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 48:{let n=r.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s];l.statements=this.rewriteList(l.statements,e)}break}case 50:{let t=r;t.bodyStatements=this.rewriteList(t.bodyStatements,e);let n=t.catchStatements;n!=null&&(t.catchStatements=this.rewriteList(n,e));let s=t.finallyStatements;s!=null&&(t.finallyStatements=this.rewriteList(s,e));break}default:break}}rewriteSingleBody(r,e){if(r.kind==34)return this.recurseInto(r,e),r;let t=this.rewriteList([r],e);return t.length==1?t[0]:h.createBlockStatement(t,r.range)}collectOwnReads(r,e,t){switch(r.kind){case 42:{this.collectReads(r.expression,e,t);break}case 51:{let n=r.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s].initializer;l!=null&&this.collectReads(l,e,t)}break}case 47:{let n=r.value;n!=null&&this.collectReads(n,e,t);break}case 45:{this.collectReads(r.condition,e,t);break}case 53:{this.collectReads(r.condition,e,t);break}case 37:{this.collectReads(r.condition,e,t);break}case 43:{let n=r,s=n.initializer;s!=null&&s.kind!=51&&this.collectOwnReads(s,e,t);let a=n.condition;a!=null&&this.collectReads(a,e,t);let l=n.incrementor;l!=null&&this.collectReads(l,e,t);break}case 48:{this.collectReads(r.condition,e,t);break}case 49:{this.collectReads(r.value,e,t);break}case 52:{this.collectReads(r.expression,e,t);break}default:break}return t}collectReads(r,e,t){switch(r.kind){case 8:{let n=r.text;ee(e,n)!=null&&!t.includes(n)&&t.push(n);break}case 11:{let n=r;this.collectReads(n.expression,e,t);let s=n.args;for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 10:{let n=r;this.collectReads(n.left,e,t),this.collectReads(n.right,e,t);break}case 30:{this.collectReads(r.operand,e,t);break}case 29:{this.collectReads(r.operand,e,t);break}case 13:{let s=r.expressions;for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 24:{let n=r;this.collectReads(n.condition,e,t),this.collectReads(n.ifThen,e,t),this.collectReads(n.ifElse,e,t);break}case 23:{this.collectReads(r.expression,e,t);break}case 14:{let n=r;this.collectReads(n.expression,e,t),this.collectReads(n.elementExpression,e,t);break}case 9:{this.collectReads(r.expression,e,t);break}case 22:{this.collectReads(r.expression,e,t);break}case 31:{this.collectReads(r.operand,e,t);break}case 32:{this.collectReads(r.expression,e,t);break}case 19:{let s=r.args;if(s!=null)for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 17:{this.collectReads(r.expression,e,t);break}case 16:{let n=new Array;this.collectReadsInFunctionBody(r,e,n);for(let s=0,a=n.length;s<a;++s)this.parser.error(6400,r.range,n[s]);break}default:break}}collectReadsInFunctionBody(r,e,t){let n=r.declaration.body;if(n==null||n.kind!=34)return;let s=n.statements;for(let a=0,l=s.length;a<l;++a)this.collectOwnReads(s[a],e,t),this.recurseCollect(s[a],e,t)}recurseCollect(r,e,t){switch(r.kind){case 34:{let n=r.statements;for(let s=0,a=n.length;s<a;++s)this.collectOwnReads(n[s],e,t),this.recurseCollect(n[s],e,t);break}case 45:{let n=r;this.recurseCollect(n.ifTrue,e,t),n.ifFalse!=null&&this.recurseCollect(assert(n.ifFalse),e,t);break}case 53:{this.recurseCollect(r.body,e,t);break}case 37:{this.recurseCollect(r.body,e,t);break}case 43:{this.recurseCollect(r.body,e,t);break}case 44:{this.recurseCollect(r.body,e,t);break}case 48:{let n=r.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s].statements;for(let o=0,u=l.length;o<u;++o)this.recurseCollect(l[o],e,t)}break}default:break}}rewriteNestedFunctionExpressions(r){for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;if(o!=null&&o.kind==16){let u=o.declaration.body;u!=null&&u.kind==34&&this.rewriteBody(u)}}}}}};function I_(i){if(i.kind!=11)return!1;let r=i.expression;return r.kind==8&&r.text==bk}function mu(i){let r=i.args;if(r.length!=1)return null;let e=r[0];return e.kind==11?e:e.kind==8?h.createCallExpression(e,null,[],i.range):null}var ba="async arrow functions (async lowering)",xa="async function expressions (async lowering)",Nx="an async function nested in a non-async body (async lowering)",xk="an async export default function (async lowering)";function Lx(i,r,e){Ai(i.statements,r,e)}function Ai(i,r,e){for(let t=0,n=i.length;t<n;++t)ct(i[t],r,e)}function ct(i,r,e){switch(i.kind){case 59:case 62:{Mx(i,r,e);return}case 55:{zx(i,r,e);return}case 63:{Ai(i.members,r,e);return}case 34:{Ai(i.statements,r,e);return}case 37:{let t=i;ct(t.body,r,e),se(t.condition,r,e);return}case 42:{let t=i.expression;if(t.kind==16){let n=t.declaration;if(n.isAsync&&n.arrowKind==0){gu(r,t,Nx,e);return}}se(t,r,e);return}case 43:{let t=i,n=t.initializer;n!=null&&ct(n,r,e);let s=t.condition;s!=null&&se(s,r,e);let a=t.incrementor;a!=null&&se(a,r,e),ct(t.body,r,e);return}case 44:{let t=i;ct(t.variable,r,e),se(t.iterable,r,e),ct(t.body,r,e);return}case 45:{let t=i;se(t.condition,r,e),ct(t.ifTrue,r,e);let n=t.ifFalse;n!=null&&ct(n,r,e);return}case 47:{let t=i.value;t!=null&&se(t,r,e);return}case 48:{let t=i;se(t.condition,r,e);let n=t.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s].label;l!=null&&se(l,r,e),Ai(n[s].statements,r,e)}return}case 49:{se(i.value,r,e);return}case 50:{let t=i;Ai(t.bodyStatements,r,e);let n=t.catchStatements;n!=null&&Ai(n,r,e);let s=t.finallyStatements;s!=null&&Ai(s,r,e);return}case 51:{let t=i.declarations;for(let n=0,s=t.length;n<s;++n){let a=t[n];An(a.decorators,r,e);let l=a.initializer;l!=null&&se(l,r,e)}return}case 52:{se(i.expression,r,e);return}case 53:{let t=i;se(t.condition,r,e),ct(t.body,r,e);return}case 56:{let t=i.values;for(let n=0,s=t.length;n<s;++n)ct(t[n],r,e);return}case 57:{let t=i.initializer;t!=null&&se(t,r,e);return}case 58:{let t=i;An(t.decorators,r,e);let n=t.initializer;n!=null&&se(n,r,e);return}case 40:{let t=i.declaration;if(t.kind==59&&t.isAsync){gu(r,t,xk,e);return}ct(t,r,e);return}default:return}}function Mx(i,r,e){if(i.isAsync){gu(r,i,Nx,e);return}An(i.decorators,r,e);let t=i.signature.parameters;for(let s=0,a=t.length;s<a;++s){let l=t[s].initializer;l!=null&&se(l,r,e)}let n=i.body;n!=null&&ct(n,r,e)}function zx(i,r,e){An(i.decorators,r,e);let t=i.members;for(let n=0,s=t.length;n<s;++n){let a=t[n];switch(a.kind){case 59:case 62:{Mx(a,r,e);break}case 58:{let l=a;An(l.decorators,r,e);let o=l.initializer;o!=null&&se(o,r,e);break}default:break}}}function An(i,r,e){if(i!=null)for(let t=0,n=i.length;t<n;++t){let s=i[t];se(s.name,r,e);let a=s.args;if(a!=null)for(let l=0,o=a.length;l<o;++l)se(a[l],r,e)}}function se(i,r,e){switch(i.kind){case 16:{let t=i,n=t.declaration;if(n.isAsync){gu(r,t,n.arrowKind!=0?ba:xa,e);return}An(n.decorators,r,e);let s=n.signature.parameters;for(let l=0,o=s.length;l<o;++l){let u=s[l].initializer;u!=null&&se(u,r,e)}let a=n.body;a!=null&&ct(a,r,e);return}case 12:{zx(i.declaration,r,e);return}case 9:{se(i.expression,r,e);return}case 31:{se(i.operand,r,e);return}case 10:{let t=i;se(t.left,r,e),se(t.right,r,e);return}case 11:{let t=i;se(t.expression,r,e);let n=t.args;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}case 13:{let t=i.expressions;for(let n=0,s=t.length;n<s;++n)se(t[n],r,e);return}case 14:{let t=i;se(t.expression,r,e),se(t.elementExpression,r,e);return}case 17:{se(i.expression,r,e);return}case 19:{let t=i.args;for(let n=0,s=t.length;n<s;++n)se(t[n],r,e);return}case 22:{se(i.expression,r,e);return}case 23:{se(i.expression,r,e);return}case 24:{let t=i;se(t.condition,r,e),se(t.ifThen,r,e),se(t.ifElse,r,e);return}case 29:{se(i.operand,r,e);return}case 30:{se(i.operand,r,e);return}case 18:{let t=i;switch(t.literalKind){case 3:{let n=t.expressions;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}case 5:{let n=t.elementExpressions;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}case 6:{let n=t.values;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}default:return}}default:return}}function gu(i,r,e,t){t!=null&&t.has(r.range.start)||i.error(100,r.range,e)}var Ek="$State",Ak="$resume",Dx="TaskState",Gx="TaskEnv",Tk="__taskPark",Sk="__taskSettled",vk="__taskRegister",Ik="__asyncZero",Hx="__taskComplete",kk="__taskCompleteResult",Ux="_record",jx="$awaited",Fk="__taskRegistered",Iu="resumePoint",Au="handle",wk="resume",vi="$env",Sn="$closureEnv",bu="$closureEnvIn",ka="$this",F_="$parent",Vx="$cond",Fa=class{constructor(){this.refusals=null;this.currentConstruct=null}afterParse(r){let e=this.program.sources;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(this.program.stdSources.has(s))continue;this.lowerStatementList(s,s.statements,r);let a=this.refusals,l=a!=null?ee(a,s):null;Lx(s,r,l??null)}}lowerStatementList(r,e,t){if(!Bk(e))return;let n=new Array;for(let a=0,l=e.length;a<l;++a){let o=Nk(e[a]);o!=null&&n.push(o)}let s=new Array;for(let a=0,l=e.length;a<l;++a){let o=e[a];switch(o.kind){case 59:{let u=o;if(u.isAsync){let c=new Array,f=this.lowerAsyncFunction(r,u,n,t,c);if(f){for(let _=0,d=f.length;_<d;++_)s.push(f[_]);for(let _=0,d=c.length;_<d;++_)s.push(c[_])}else s.push(o)}else s.push(o);break}case 63:{let u=o;this.lowerStatementList(r,u.members,t),s.push(o);break}case 55:{let u=o,c=this.lowerAsyncMethods(r,u,n,t);for(let f=0,_=c.length;f<_;++f)s.push(c[f]);s.push(o);break}case 51:{let u=o.declarations;for(let c=0,f=u.length;c<f;++c){let _=u[c].initializer;_&&this.refuseAsyncFunctionExpression(_,t)}s.push(o);break}default:{s.push(o);break}}}e.length=0;for(let a=0,l=s.length;a<l;++a)e.push(s[a])}lowerAsyncFunction(r,e,t,n,s,a=null,l=null){let o=this.currentConstruct;this.currentConstruct=e;let u=this.lowerAsyncFunctionInner(r,e,t,n,s,a,l);return this.currentConstruct=o,u==null&&this.recordRefusal(e),u}lowerAsyncFunctionInner(r,e,t,n,s,a,l){let o=e.signature,u=e.name.text,c=e.range;if(e.arrowKind!=0)return this.refuse(n,e.range,ba),null;if(e.typeParameters!=null)return this.refuse(n,e.range,"async generic functions (async lowering)"),null;a==null&&o.explicitThisType!=null&&(a=o.explicitThisType);let f=null;l!=null&&(f=ee(Vi(),l));let _=f??null,d=_!=null&&_.kind==2?_.envClass:null,g=ee(nl,e),y=g??null,E=y!=null&&y.ownEnv?y.envClass:null,T=E!=null&&y!=null&&assert(y).hasThis,k=y!=null?y.parentClass:null,F=E!=null&&T,w=!F&&a!=null,R=!F&&!w&&d!=null,B=o.parameters;for(let $=0,le=B.length;$<le;++$){let te=B[$];if(te.parameterKind!=0)return this.refuse(n,te.range,"optional or rest parameters in an async function (async lowering)"),null;if(Wx(te.name.text))return this.refuse(n,te.name.range,"a parameter whose name is reserved by the state struct (async lowering)"),null}let M=o.returnType;if(M==null||qk(M))return this.refuse(n,e.name.range,"an async function without a declared return type (async lowering)"),null;let q=e.body;if(!q||q.kind!=34)return this.refuse(n,e.range,"an async function without a block body (async lowering)"),null;let G=q,X=w?u+"$ThisEnv":"",z=null;if(w){let $=assert(a),le=h.createFieldDeclaration(h.createIdentifierExpression(ka,c),null,262144,$,h.createCallExpression(h.createIdentifierExpression("changetype",c),[$],[St(0,c)],c),c),te="source",wn=new Array;wn.push(h.createParameter(0,h.createIdentifierExpression(te,c),$,null,c));let Fi=new Array;Fi.push(le);let wi=new Array;if(wi.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(c),null,[],c))),wi.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(h.createThisExpression(c),h.createIdentifierExpression(ka,c),c),h.createIdentifierExpression(te,c),c))),d!=null){let Ra="parent";wn.push(h.createParameter(0,h.createIdentifierExpression(Ra,c),ve(d,c),null,c)),Fi.push(h.createFieldDeclaration(h.createIdentifierExpression(F_,c),null,262144,h.createNamedType(h.createSimpleTypeName(d,c),null,!0,c),h.createNullExpression(c),c)),wi.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(h.createThisExpression(c),h.createIdentifierExpression(F_,c),c),h.createIdentifierExpression(Ra,c),c)))}let Pu=h.createMethodDeclaration(h.createConstructorExpression(c),null,786432,null,h.createFunctionType(wn,ve("void",c),null,!1,c),h.createBlockStatement(wi,c),c);Fi.push(Pu),z=h.createClassDeclaration(h.createIdentifierExpression(X,c),null,0,null,ve(Gx,c),null,Fi,c)}if(F&&Gk(G),F||w){let $=F?assert(E):X;L_(G.statements,$,Dk(G,B))}let U=new G_;Ti(G,U.declaredTypes);let j=new ku,Y=this.planSeq(n,G.statements,j,!1,r,s,t,U);if(!Y)return null;let O=j.next-1;if(O!=0&&this.liftCreationEnvs(G,U),this.collectLifting(n,Y,U),O!=0){let $=new Set;Sa(Y,$);for(let le=0,te=B.length;le<te;++le)$.has(B[le].name.text)&&U.liftParameter(B[le].name.text,B[le].name.range)}let ie=u+Ek,H=u+Ak;for(let $=0,le=t.length;$<le;++$){let te=t[$];if(te==ie||te==H)return this.refuse(n,e.name.range,"an async function whose synthesized name is taken (async lowering)"),null}let ge=new Set;Mr(G,ge);let oe=N_(B,G),pe=h.createIdentifierExpression(oe,c),It=h.createThisExpression(c),Fe=new Array;for(let $=0,le=B.length;$<le;++$){let te=B[$];Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(te.name.text,te.name.range),null,262144,te.type,null,te.name.range))}Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(vi,c),null,262144,h.createNamedType(h.createSimpleTypeName(Gx,c),null,!0,c),h.createNullExpression(c),c));for(let $=0,le=U.locals.length;$<le;++$){let te=U.locals[$];Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(te.name,te.declaration.name.range),null,262144,te.type,null,te.declaration.name.range))}Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Iu,c),null,262144,ve("i32",c),null,c));let vn=!Wk(M),Ot=new Array;Ta(Y,Ot);for(let $=0,le=Ot.length;$<le;++$)Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Ot[$],c),null,278528,ve("TaskRecord",c),null,c));let zr=Kk(M,c);Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Au,c),null,278528,zr,null,c));let Ii=new Array,je=new Array;je.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(c),null,[],c)));for(let $=0,le=B.length;$<le;++$){let te=B[$];Ii.push(h.createParameter(0,h.createIdentifierExpression(te.name.text,te.name.range),te.type,null,te.range)),je.push(h.createExpressionStatement(Nr(It,te.name.text,h.createIdentifierExpression(te.name.text,te.range),te.range)))}je.push(h.createExpressionStatement(Nr(It,Iu,St(0,c),c)));for(let $=0,le=U.locals.length;$<le;++$){let te=U.locals[$];je.push(h.createExpressionStatement(Nr(It,te.name,h.createCallExpression(h.createIdentifierExpression(Ik,te.declaration.name.range),[te.type],[],te.declaration.name.range),te.declaration.name.range)))}Fe.push(h.createMethodDeclaration(h.createConstructorExpression(c),null,786432,null,h.createFunctionType(Ii,ve("void",c),null,!1,c),h.createBlockStatement(je,c),c));let ki=h.createClassDeclaration(h.createIdentifierExpression(ie,e.name.range),null,0,null,ve(Dx,c),null,Fe,c),dt=h.createIdentifierExpression(H,c),pr=new Array;for(let $=0,le=B.length;$<le;++$)pr.push(h.createIdentifierExpression(B[$].name.text,B[$].range));let In=h.createPropertyAccessExpression(pe,h.createIdentifierExpression(Au,c),c),Oe=new Array;if(Oe.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(oe,c),null,8,ve(ie,c),h.createNewExpression(h.createSimpleTypeName(ie,c),null,pr,c),c)],c)),F){let $=assert(E),le=new Array;k!=null&&(le.push(h.createNullExpression(c)),le.push(h.createIdentifierExpression(bu,c))),Oe.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(Sn,c),null,16,ve($,c),h.createNewExpression(h.createSimpleTypeName($,c),null,le,c),c)],c)),T&&Oe.push(h.createExpressionStatement(Nr(h.createIdentifierExpression(Sn,c),ka,h.createThisExpression(c),c))),Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createIdentifierExpression(Sn,c),c)))}else if(w){let $=new Array;$.push(h.createThisExpression(c)),d!=null&&$.push(h.createIdentifierExpression(bu,c)),Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createNewExpression(h.createSimpleTypeName(X,c),null,$,c),c)))}else R&&Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createIdentifierExpression(bu,c),c)));Oe.push(h.createExpressionStatement(Nr(pe,Au,h.createNewExpression(h.createSimpleTypeName("Task",c),[M],[],c),c))),Oe.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(In,h.createIdentifierExpression(Ux,c),c),h.createCallExpression(h.createIdentifierExpression(vk,c),null,[pe],c),c))),Oe.push(h.createIfStatement(h.createUnaryPrefixExpression(96,h.createCallExpression(h.createIdentifierExpression(Fk,c),null,[pe],c),c),h.createBlockStatement([h.createReturnStatement(In,c)],c),null,c)),Oe.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(pe,h.createIdentifierExpression(wk,c),c),h.createCallExpression(h.createIdentifierExpression("changetype",c),[h.createFunctionType([h.createParameter(0,h.createIdentifierExpression("state",c),ve(Dx,c),null,c)],ve("void",c),null,!1,c)],[dt],c),c))),Oe.push(h.createExpressionStatement(h.createCallExpression(dt,null,[pe],c))),Oe.push(h.createReturnStatement(In,c)),e.body=h.createBlockStatement(Oe,c),e.signature.returnType=zr,e.isAsync=!1;let ht=N_(B,G),kn=new Array;va(Y,kn);for(let $=0,le=kn.length;$<le;++$){let te=kn[$];nu().set(te.node,new iu(te.discriminator,Vk(ht,te.fieldName,te.node.range)))}let qt=new Array,Fn=h.createPropertyAccessExpression(h.createIdentifierExpression(ht,c),h.createIdentifierExpression(vi,c),c),Fu=F?assert(E):X,wu=h.createCallExpression(h.createIdentifierExpression("changetype",c),[ve(Fu,c)],[Fn],c),Ru=R?Fn:h.createAssertionExpression(2,h.createPropertyAccessExpression(wu,h.createIdentifierExpression(F_,c),c),null,c);if(d!=null){let $=ve(d,c);qt.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(bu,c),null,8,$,h.createCallExpression(h.createIdentifierExpression("changetype",c),[$],[Ru],c),c)],c))}if(F){let $=assert(E);qt.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(Sn,c),null,8,ve($,c),h.createCallExpression(h.createIdentifierExpression("changetype",c),[ve($,c)],[Fn],c),c)],c))}for(let $=0,le=B.length;$<le;++$){let te=B[$];qt.push(qx(te.name.text,te.name.range,ht))}for(let $=0,le=U.locals.length;$<le;++$){let te=U.locals[$];qt.push(qx(te.name,te.declaration.name.range,ht))}let Cu=new B_(U,ht,O+1,vn,ge,M,O!=0);if(Tn(qt,this.emitSeq(Y,Cu)),!Pk(Y)){let $=new Array;$.push(h.createExpressionStatement(vu(ht,St(O+1,c),c))),$.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Hx,c),null,[h.createIdentifierExpression(ht,c)],c))),qt.push(h.createIfStatement(ur(He(ht,c),c),h.createBlockStatement($,c),null,c))}let wa=h.createFunctionDeclaration(h.createIdentifierExpression(H,e.name.range),null,0,null,h.createFunctionType([h.createParameter(0,h.createIdentifierExpression(ht,c),ve(ie,c),null,c)],ve("void",c),null,!1,c),h.createBlockStatement(qt,c),0,c);return z!=null?[z,ki,e,wa]:[ki,e,wa]}liftCreationEnvs(r,e){let t=new Set;Lr(r.statements,t),t.size!=0&&Tu(r.statements,t,e)}planSeq(r,e,t,n,s,a,l,o){let u=new C_;for(let c=0,f=e.length;c<f;++c){let _=this.planStatement(r,e[c],t,n,s,a,l,o);if(!_)return null;u.add(_)}return u}planStatement(r,e,t,n,s,a,l,o){let u=new R_(e);switch(e.kind){case 38:return u;case 42:{let c=e.expression;if(c.kind==16){let f=c.declaration;if(f.isAsync){let _=this.lowerAsyncFunction(s,f,l,r,a,null,c);if(!_)return null;for(let d=0,g=_.length;d<g;++d)_[d]!==e&&a.push(_[d])}return u.kind=0,u.nestedFunction=!0,u}return this.planLeaf(r,u,t,o)}case 51:case 47:return this.planLeaf(r,u,t,o);case 34:{let c=e,f=this.planSeq(r,c.statements,t,n,s,a,l,o);return f?(u.kind=1,u.statements=f,u.lo=f.lo,u.hi=f.hi,f.lo!=0&&this.liftDeclaredIn(r,f,o),u.all=Aa(f),u):null}case 45:{let c=e;if(!this.walkExpression(r,c.condition,u.all,null,!1))return null;let f=this.planBranch(r,c.ifTrue,t,n,s,a,l,o);if(!f)return null;let _=null;return c.ifFalse!=null&&(_=this.planBranch(r,assert(c.ifFalse),t,n,s,a,l,o),!_)?null:(u.kind=2,u.cond=c.condition,u.thenSeq=f,u.elseSeq=_,u.lo=Rk(f,_),u.hi=Ck(f,_),u.lo!=0&&(this.liftDeclaredIn(r,f,o),_!=null&&this.liftDeclaredIn(r,assert(_),o)),u.all=Ea(u.all,Ea(Aa(f),_?Aa(_):new vt)),u)}case 53:{let c=e;if(!this.walkExpression(r,c.condition,u.all,null,!1))return null;let f=this.planBranch(r,c.body,t,n,s,a,l,o);return f?(u.kind=3,u.cond=c.condition,u.body=f,u.lo=f.lo,u.hi=f.hi,f.lo!=0&&this.liftDeclaredIn(r,f,o),u.all=Ea(u.all,Aa(f)),u):null}case 43:{let c=e,f=this.planBranch(r,c.body,t,n,s,a,l,o);if(!f)return null;f.lo!=0&&this.liftDeclaredIn(r,f,o);let _=c.initializer;if(f.lo!=0&&_!=null&&_.kind==51){let y=_.declarations;for(let E=0,T=y.length;E<T;++E)if(!this.liftDeclarator(r,y[E],o))return null}if(_!=null){let y=this.planStatement(r,_,new ku,!1,s,a,l,o);if(!y)return null;if(y.info!=null)return this.refuse(r,_.range,"await in a for initializer (async lowering)"),null;if(y.lo!=0)return null}let d=c.condition;if(d!=null&&!this.walkExpression(r,d,u.all,null,!1))return null;let g=c.incrementor;return g!=null&&!this.walkExpression(r,g,u.all,null,!1)?null:(u.kind=4,u.init=_,u.cond=c.condition,u.incr=c.incrementor,u.body=f,u.lo=f.lo,u.hi=f.hi,u.all=Ea(u.all,Aa(f)),u)}case 35:case 36:return u.kind=0,u;case 59:{let c=e;if(c.isAsync){let f=this.lowerAsyncFunction(s,c,l,r,a);if(!f)return null;for(let _=0,d=f.length;_<d;++_)f[_]!==e&&a.push(f[_])}return u.kind=0,u}default:return this.refuse(r,e.range,w_(e)),null}}planBranch(r,e,t,n,s,a,l,o){let u;return e.kind==34?u=e.statements:u=[e],this.planSeq(r,u,t,n,s,a,l,o)}planLeaf(r,e,t,n){let s=e.node;if(s.kind==42){let l=s.expression;if(l.kind==31)return this.planAwait(r,e,l,t,n);if(l.kind==10){let o=l;if(o.operator==102&&o.right.kind==31)return this.planAwait(r,e,o.right,t,n,o.left)}}if(s.kind==51){let l=s.declarations;if(l.length==1){let o=l[0],u=o.initializer;if(u!=null&&u.kind==31)return this.liftDeclarator(r,o,n)?this.planAwait(r,e,u,t,n):null}}if(s.kind==47){let l=s.value;if(l!=null&&l.kind==31)return this.planAwait(r,e,l,t,n)}let a=new Array;switch(s.kind){case 42:{if(!this.walkExpression(r,s.expression,e.all,a,!1))return null;break}case 51:{let l=s.declarations;for(let o=0,u=l.length;o<u;++o){let c=l[o];e.declarations.push(c);let f=c.initializer;if(f&&!this.walkExpression(r,f,e.all,a,!1))return null}break}case 47:{let l=s.value;if(l&&!this.walkExpression(r,l,e.all,a,!1))return null;break}}if(a.length){let l=a.length>1?"more than one await in one statement (async lowering)":"await in an unsupported position (async lowering)";return this.refuse(r,a[0].range,l),null}return e}planAwait(r,e,t,n,s,a=null){let l=n.next++,o=t.operand,u=new vt;if(!this.walkExpression(r,o,u,null,!1))return null;let c=new vt;return a!=null&&!this.walkExpression(r,a,c,null,!0)?null:(e.kind=0,e.info=new P_(t,o,l,jx+l.toString(),l),e.lo=l,e.hi=l,e.before=u,e.after=c,e.all=Ea(u,c),e)}liftDeclarator(r,e,t){let n=e.name.text;if(t.hasLocal(n))return!0;if(Wx(n))return this.refuse(r,e.name.range,"a local whose name is reserved by the state struct (async lowering)"),!1;let s=e.type;if(s==null){let a=ut(e.initializer,t.knownTypes(),0);if(a!=null)e.type=a,s=a;else return this.refuse(r,e.name.range,"a local without a declared type that crosses an await (async lowering)"),!1}return t.liftLocal(n,s,e),!0}liftDeclaredIn(r,e,t){let n=e.plans;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.declarations;for(let u=0,c=o.length;u<c;++u)if(!this.liftDeclarator(r,o[u],t))return!1;if(l.kind==1&&l.lo!=0){if(!this.liftDeclaredIn(r,assert(l.statements),t))return!1}else if(l.kind==2&&l.lo!=0){if(!this.liftDeclaredIn(r,assert(l.thenSeq),t)||l.elseSeq!=null&&!this.liftDeclaredIn(r,assert(l.elseSeq),t))return!1}else if((l.kind==3||l.kind==4)&&l.lo!=0&&!this.liftDeclaredIn(r,assert(l.body),t))return!1}return!0}collectLifting(r,e,t){let n=new Array,s=e.plans;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.lo!=0){let c=new vt;et(c.reads,o.after.reads),et(c.writes,o.after.writes),et(c.reads,o.all.reads),et(c.writes,o.all.writes);for(let f=a+1,_=s.length;f<_;++f)et(c.reads,s[f].all.reads),et(c.writes,s[f].all.writes);for(let f=0,_=n.length;f<_;++f){let d=n[f],g=d.name.text;if((c.reads.has(g)||c.writes.has(g))&&!this.liftDeclarator(r,d,t))return}}let u=o.declarations;for(let c=0,f=u.length;c<f;++c){let _=u[c];t.hasLocal(_.name.text)||n.push(_)}switch(o.kind){case 1:{this.collectLifting(r,assert(o.statements),t);break}case 2:{this.collectLifting(r,assert(o.thenSeq),t),o.elseSeq!=null&&this.collectLifting(r,assert(o.elseSeq),t);break}case 3:case 4:{this.collectLifting(r,assert(o.body),t);break}}}}emitSeq(r,e){let t=new Array,n=r.plans,s=new Array;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(e.guarded&&o.kind==0&&o.lo==0&&o.info==null&&!o.nestedFunction&&o.node.kind!=59){Tn(s,Ia(o.node,e));continue}this.flushRun(s,t,e),Tn(t,this.emitPlan(o,e))}return this.flushRun(s,t,e),t}flushRun(r,e,t){r.length!=0&&(e.push(h.createIfStatement(ur(He(t.stateName,r[0].range),r[0].range),h.createBlockStatement(r.slice(0),r[0].range),null,r[0].range)),r.length=0)}emitPlan(r,e){let t=new Array,n=r.node,s=n.range;switch(r.kind){case 0:{if(r.nestedFunction||n.kind==59)return t.push(n),t;if(r.info!=null){let a=assert(r.info),l=new Array;l.push(h.createExpressionStatement(h.createBinaryExpression(102,Su(e.stateName,a.fieldName,s),h.createPropertyAccessExpression(a.operand,h.createIdentifierExpression(Ux,s),s),s))),l.push(h.createExpressionStatement(vu(e.stateName,St(a.discriminator,s),s)));let o=new Array;Tn(o,Mk(e.lifting,e.stateName,s)),o.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Tk,s),null,[h.createIdentifierExpression(e.stateName,s),Su(e.stateName,a.fieldName,s)],s))),o.push(h.createReturnStatement(null,s)),l.push(h.createIfStatement(h.createUnaryPrefixExpression(96,h.createCallExpression(h.createIdentifierExpression(Sk,s),null,[Su(e.stateName,a.fieldName,s)],s),s),h.createBlockStatement(o,s),null,s)),t.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(l,s),null,s));let u=new Array;return u.push(h.createExpressionStatement(vu(e.stateName,St(0,s),s))),Tn(u,Ia(n,e)),t.push(h.createIfStatement(Ok(He(e.stateName,s),St(a.discriminator,s),s),h.createBlockStatement(u,s),null,s)),t}if(r.lo==0){let a=Ia(n,e);e.guarded?t.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(a,s),null,s)):Tn(t,a)}return t}case 1:{let a=this.emitSeq(assert(r.statements),e);return r.lo==0?xu(cr(n,e),e,s):(t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(a,s),null,s)),t)}case 2:{if(r.lo==0)return xu(cr(n,e),e,s);let a=this.emitSeq(assert(r.thenSeq),e),l=r.elseSeq!=null?this.emitSeq(assert(r.elseSeq),e):new Array,o=e.freshTemp(s),u=new Array;return u.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(o,s),null,16,ve("bool",s),h.createFalseExpression(s),s)],s)),u.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement([h.createExpressionStatement(M_(o,assert(r.cond),s))],s),h.createBlockStatement([h.createExpressionStatement(M_(o,Qx(e.stateName,r.thenSeq!=null?assert(r.thenSeq).lo:0,r.thenSeq!=null?assert(r.thenSeq).hi:0,s),s))],s),s)),u.push(h.createIfStatement(h.createIdentifierExpression(o,s),h.createBlockStatement(a,s),l.length?h.createBlockStatement(l,s):null,s)),t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(u,s),null,s)),t}case 3:{if(r.lo==0)return xu(cr(n,e),e,s);let a=this.emitSeq(assert(r.body),e),l=r.cond,o=h.createBinaryExpression(99,Kx(He(e.stateName,s),s),l??h.createTrueExpression(s),s);return t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement([h.createWhileStatement(o,h.createBlockStatement(a,s),s)],s),null,s)),t}case 4:{if(r.lo==0)return xu(cr(n,e),e,s);let a=this.emitSeq(assert(r.body),e),l=new Array;r.init!=null&&l.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(Ia(assert(r.init),e),s),null,s));let o=r.cond;return l.push(h.createForStatement(null,h.createBinaryExpression(99,Kx(He(e.stateName,s),s),o??h.createTrueExpression(s),s),r.incr!=null?assert(r.incr):null,h.createBlockStatement(a,s),s)),t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(l,s),null,s)),t}}return t}walkExpression(r,e,t,n,s){switch(e.kind){case 8:{if(t){let a=e.text;s?t.writes.add(a):t.reads.add(a)}return!0}case 27:case 15:case 20:return!0;case 16:{let a=e.declaration;return a.isAsync?(this.refuse(r,e.range,a.arrowKind!=0?ba:xa),!1):!0}case 26:return this.refuse(r,e.range,"this in an async function body (async lowering)"),!1;case 25:return this.refuse(r,e.range,"super in an async function body (async lowering)"),!1;case 31:{let a=e;return n?(n.push(a),!0):(this.refuse(r,a.range,"await in an unsupported position (async lowering)"),!1)}case 18:{let a=e;switch(a.literalKind){case 0:case 1:case 2:case 4:return!0;case 3:{let l=a.expressions;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 5:{let l=a.elementExpressions;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 6:{let l=a.values;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}default:return this.refuse(r,e.range,w_(e)),!1}}case 9:{let a=e;return this.walkExpression(r,a.expression,t,n,s)?a.toType!=null?(this.refuse(r,a.range,"a type argument in an async body (async lowering)"),!1):!0:!1}case 10:{let a=e,l=Hk(a.operator);return this.walkExpression(r,a.left,t,n,l?!0:s)?this.walkExpression(r,a.right,t,n,!1):!1}case 11:{let a=e;if(!this.walkExpression(r,a.expression,t,n,!1))return!1;let l=a.args;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 13:{let a=e.expressions;for(let l=0,o=a.length;l<o;++l)if(!this.walkExpression(r,a[l],t,n,l==o-1?s:!1))return!1;return!0}case 14:{let a=e;return this.walkExpression(r,a.expression,t,n,!1)?this.walkExpression(r,a.elementExpression,t,n,!1):!1}case 17:return this.walkExpression(r,e.expression,t,n,!1);case 19:{let a=e.args;for(let l=0,o=a.length;l<o;++l)if(!this.walkExpression(r,a[l],t,n,!1))return!1;return!0}case 22:return this.walkExpression(r,e.expression,t,n,s);case 23:return this.walkExpression(r,e.expression,t,n,!1);case 24:{let a=e;return!this.walkExpression(r,a.condition,t,n,!1)||!this.walkExpression(r,a.ifThen,t,n,s)?!1:this.walkExpression(r,a.ifElse,t,n,s)}case 29:{let a=e,l=a.operator==88||a.operator==89;return this.walkExpression(r,a.operand,t,n,l?!0:s)}case 30:{let a=e,l=a.operator==88||a.operator==89;return this.walkExpression(r,a.operand,t,n,l?!0:s)}default:return this.refuse(r,e.range,w_(e)),!1}}lowerAsyncMethods(r,e,t,n){let s=new Array,a=e.members;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind==62){let c=u;if(!c.isAsync)continue;if(c.is(32)){this.refuse(n,c.range,"async static methods (async lowering)",c);continue}if(c.body==null)continue;let f=this.lowerAsyncFunction(r,c,t,n,s,ve(e.name.text,c.range));if(f)for(let _=0,d=f.length;_<d;++_)f[_]!==c&&s.push(f[_])}else if(u.kind==58){let c=u.initializer;c&&this.refuseAsyncFunctionExpression(c,n)}}return s}refuseAsyncFunctionExpression(r,e){if(r.kind!=16)return;let t=r.declaration;t.isAsync&&this.refuse(e,t.range,t.arrowKind!=0?ba:xa,r)}refuse(r,e,t,n=null){let s=n??this.currentConstruct;s!=null?this.recordRefusalStart(s.range.source,s.range.start):this.recordRefusalStart(e.source,e.start),r.error(100,e,t)}recordRefusal(r){this.recordRefusalStart(r.range.source,r.range.start)}recordRefusalStart(r,e){let t=this.refusals;t==null&&(t=new Map,this.refusals=t);let n=ee(t,r);n==null&&(n=new Set,t.set(r,n)),n.add(e)}};var R_=class{constructor(r){this.node=r;this.kind=0;this.lo=0;this.hi=0;this.info=null;this.before=new vt;this.after=new vt;this.all=new vt;this.statements=null;this.cond=null;this.thenSeq=null;this.elseSeq=null;this.body=null;this.init=null;this.incr=null;this.declarations=new Array;this.nestedFunction=!1;this.range=r.range}},C_=class{constructor(){this.plans=new Array;this.lo=0;this.hi=0}add(r){r.lo!=0&&((this.lo==0||r.lo<this.lo)&&(this.lo=r.lo),r.hi>this.hi&&(this.hi=r.hi)),this.plans.push(r)}},ku=class{constructor(){this.next=1}},P_=class{constructor(r,e,t,n,s){this.node=r;this.operand=e;this.discriminator=t;this.fieldName=n;this.ordinal=s}},vt=class{constructor(){this.reads=new Set;this.writes=new Set}},B_=class{constructor(r,e,t,n,s,a=null,l=!0,o=null){this.lifting=r;this.stateName=e;this.terminal=t;this.returnsValue=n;this.localNames=s;this.returnType=a;this.guarded=l;this.hoisted=o;this.tempCount=0}freshTemp(r){let e=Vx;for(;this.localNames.has(e);)e=Vx+(++this.tempCount).toString();return this.localNames.add(e),e}};function et(i,r){for(let e=Set_values(r),t=0,n=e.length;t<n;++t)i.add(unchecked(e[t]))}function Ea(i,r){let e=new vt;return et(e.reads,i.reads),et(e.writes,i.writes),et(e.reads,r.reads),et(e.writes,r.writes),e}function Aa(i){let r=new vt,e=i.plans;for(let t=0,n=e.length;t<n;++t)et(r.reads,e[t].all.reads),et(r.writes,e[t].all.writes);return r}function Rk(i,r){let e=0;return i!=null&&i.lo!=0&&(e=i.lo),r!=null&&r.lo!=0&&(e==0||r.lo<e)&&(e=r.lo),e}function Ck(i,r){let e=0;return i!=null&&i.hi>e&&(e=i.hi),r!=null&&r.hi>e&&(e=r.hi),e}function Ta(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.info!=null&&r.push(assert(s.info).fieldName),s.statements!=null&&Ta(assert(s.statements),r),s.thenSeq!=null&&Ta(assert(s.thenSeq),r),s.elseSeq!=null&&Ta(assert(s.elseSeq),r),s.body!=null&&Ta(assert(s.body),r)}}function Sa(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];et(r,s.all.writes),et(r,s.before.writes),s.statements!=null&&Sa(assert(s.statements),r),s.thenSeq!=null&&Sa(assert(s.thenSeq),r),s.elseSeq!=null&&Sa(assert(s.elseSeq),r),s.body!=null&&Sa(assert(s.body),r)}}function va(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.info!=null&&r.push(assert(s.info)),s.statements!=null&&va(assert(s.statements),r),s.thenSeq!=null&&va(assert(s.thenSeq),r),s.elseSeq!=null&&va(assert(s.elseSeq),r),s.body!=null&&va(assert(s.body),r)}}function Pk(i){let r=i.plans;if(!r.length)return!1;let e=r[r.length-1];return e.kind==0&&e.node.kind==47}function Bk(i){for(let r=0,e=i.length;r<e;++r){let t=i[r].kind;if(t==59){if(i[r].isAsync)return!0}else{if(t==63||t==55)return!0;if(t==51){let n=i[r].declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s].initializer;if(l!=null&&l.kind==16&&l.declaration.isAsync)return!0}}}}return!1}function Lr(i,r){for(let e=0,t=i.length;e<t;++e){let n=i[e];switch(n.kind){case 42:{let s=n.expression;if(s.kind==16){let a=ee(Or(),s);a!=null&&r.add(a)}break}case 51:{let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;if(o!=null&&o.kind==16){let u=ee(Or(),o);u!=null&&r.add(u)}}break}case 34:{Lr(n.statements,r);break}case 45:{let s=n;Lr([s.ifTrue],r),s.ifFalse!=null&&Lr([assert(s.ifFalse)],r);break}case 53:{Lr([n.body],r);break}case 37:{Lr([n.body],r);break}case 43:{let s=n;s.initializer!=null&&Lr([assert(s.initializer)],r),Lr([s.body],r);break}default:break}}}function Tu(i,r,e){for(let t=0,n=i.length;t<n;++t){let s=i[t];switch(s.kind){case 51:{let a=s.declarations;for(let l=0,o=a.length;l<o;++l){let u=a[l],c=u.name.text;if(!r.has(c)||e.hasLocal(c))continue;let f=u.type;f!=null&&e.liftLocal(c,f,u)}break}case 34:{Tu(s.statements,r,e);break}case 45:{let a=s;Tu([a.ifTrue],r,e),a.ifFalse!=null&&Tu([assert(a.ifFalse)],r,e);break}default:break}}}function Mr(i,r){switch(i.kind){case 34:{let e=i.statements;for(let t=0,n=e.length;t<n;++t)Mr(e[t],r);break}case 45:{let e=i;Mr(e.ifTrue,r),e.ifFalse!=null&&Mr(assert(e.ifFalse),r);break}case 53:{Mr(i.body,r);break}case 43:{let e=i;e.initializer!=null&&Mr(assert(e.initializer),r),Mr(e.body,r);break}case 51:{let e=i.declarations;for(let t=0,n=e.length;t<n;++t)r.add(e[t].name.text);break}default:break}}function Ti(i,r){switch(i.kind){case 34:{let e=i.statements;for(let t=0,n=e.length;t<n;++t)Ti(e[t],r);break}case 45:{let e=i;Ti(e.ifTrue,r),e.ifFalse!=null&&Ti(assert(e.ifFalse),r);break}case 53:{Ti(i.body,r);break}case 43:{let e=i;e.initializer!=null&&Ti(assert(e.initializer),r),Ti(e.body,r);break}case 51:{let e=i.declarations;for(let t=0,n=e.length;t<n;++t){let s=e[t],a=s.type;a!=null&&r.set(s.name.text,a)}break}default:break}}function Nk(i){switch(i.kind){case 59:case 62:case 55:case 56:case 61:case 63:case 64:return i.name.text;case 51:{let r=i.declarations;return r.length?r[0].name.text:null}default:return null}}function Ox(i,r){return h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Hx,r),null,[h.createIdentifierExpression(i,r)],r))}function qx(i,r,e){return h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(i,r),null,16,null,h.createPropertyAccessExpression(h.createIdentifierExpression(e,r),h.createIdentifierExpression(i,r),r),r)],r)}function Ia(i,r){let e=r.stateName;if(i.kind==47){let t=i,n=t.value,s=t.range,a=new Array;return n!=null?r.returnsValue?a.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(kk,s),[assert(r.returnType)],[h.createIdentifierExpression(e,s),n],s))):(a.push(h.createExpressionStatement(n)),a.push(Ox(e,s))):a.push(Ox(e,s)),a.push(h.createExpressionStatement(vu(e,St(r.terminal,s),s))),a.push(h.createReturnStatement(null,s)),a}if(i.kind==51){let t=i.declarations,n=!1;for(let a=0,l=t.length;a<l;++a){let o=t[a].name.text;if(r.lifting.hasLocal(o)||r.hoisted!=null&&assert(r.hoisted).has(o)){n=!0;break}}if(!n)return[i];let s=new Array;for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.name.text;if(!r.lifting.hasLocal(u)&&(r.hoisted==null||!assert(r.hoisted).has(u))){s.push(h.createVariableStatement(null,[o],o.range));continue}let c=o.initializer;c!=null&&s.push(h.createExpressionStatement(M_(u,c,o.range)))}return s}return[i]}function cr(i,r){switch(i.kind){case 34:{let e=i,t=new Array,n=e.statements;for(let s=0,a=n.length;s<a;++s){let l=cr(n[s],r);if(l.kind==34&&n[s].kind!=34){let o=l.statements;for(let u=0,c=o.length;u<c;++u)t.push(o[u])}else t.push(l)}return h.createBlockStatement(t,e.range)}case 45:{let e=i;return h.createIfStatement(e.condition,cr(e.ifTrue,r),e.ifFalse!=null?cr(assert(e.ifFalse),r):null,e.range)}case 53:{let e=i;return h.createWhileStatement(e.condition,cr(e.body,r),e.range)}case 43:{let e=i;return h.createForStatement(e.initializer,e.condition,e.incrementor,cr(e.body,r),e.range)}case 47:{let e=Ia(i,r);return e.length==1?e[0]:h.createBlockStatement(e,i.range)}default:return i}}function xu(i,r,e){return r.guarded?Lk(i,r,e):[i]}function Lk(i,r,e){return[h.createIfStatement(ur(He(r.stateName,e),e),h.createBlockStatement([i],e),null,e)]}function Tn(i,r){for(let e=0,t=r.length;e<t;++e)i.push(r[e])}function Mk(i,r,e){let t=new Array,n=i.parameterNames;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=i.parameterRange(l);t.push(h.createExpressionStatement(z_(h.createPropertyAccessExpression(h.createIdentifierExpression(r,o),h.createIdentifierExpression(l,o),o),h.createIdentifierExpression(l,o),o)))}for(let s=0,a=i.locals.length;s<a;++s){let l=i.locals[s],o=l.declaration.name.range;t.push(h.createExpressionStatement(z_(h.createPropertyAccessExpression(h.createIdentifierExpression(r,o),h.createIdentifierExpression(l.name,o),o),h.createIdentifierExpression(l.name,o),o)))}return t}function w_(i){switch(i.kind){case 31:return"await in an unsupported position (async lowering)";case 16:return i.declaration.isAsync?xa:"a nested function in an async function body (async lowering)";case 12:return"a nested class in an async function body (async lowering)";case 26:return"this in an async function body (async lowering)";case 25:return"super in an async function body (async lowering)";case 49:return"throw in an async function body (async lowering)";case 50:return"try/catch in an async function body (async lowering)";case 48:return"switch in an async function body (async lowering)";case 45:return"if in an async function body (async lowering)";case 43:return"for in an async function body (async lowering)";case 44:return"for-of in an async function body (async lowering)";case 53:return"while in an async function body (async lowering)";case 37:return"do in an async function body (async lowering)";case 34:return"a nested block in an async function body (async lowering)";default:return"this async body (async lowering)"}}function N_(i,r){let e="state";for(;zk(i,r,e);)e="$"+e;return e}function zk(i,r,e){for(let n=0,s=i.length;n<s;++n)if(i[n].name.text==e)return!0;let t=new Set;return Mr(r,t),t.has(e)}function Dk(i,r){return N_(r,i)}function Gk(i){let r=i.statements,e=r.length>0?r[0]:null;if(e==null||e.kind!=51)return;let t=e.declarations;if(t.length!=1||t[0].name.text!=Sn)return;r.shift();let n=r.length>0?r[0]:null;if(n==null||n.kind!=42)return;let s=n.expression;if(s.kind!=10)return;let a=s;if(a.operator!=102||a.left.kind!=23)return;let l=a.left;l.expression.kind==8&&l.expression.text==Sn&&l.property.text==ka&&r.shift()}function L_(i,r,e){for(let t=0,n=i.length;t<n;++t)Si(i[t],r,e)}function Si(i,r,e){switch(i.kind){case 42:{let t=i.expression;i.expression=_e(t,r,e);break}case 47:{let t=i.value;t!=null&&(i.value=_e(t,r,e));break}case 51:{let t=i.declarations;for(let n=0,s=t.length;n<s;++n){let a=t[n].initializer;a!=null&&(t[n].initializer=_e(a,r,e))}break}case 34:{L_(i.statements,r,e);break}case 45:{let t=i;t.condition=_e(t.condition,r,e),Si(t.ifTrue,r,e),t.ifFalse!=null&&Si(assert(t.ifFalse),r,e);break}case 53:{let t=i;t.condition=_e(t.condition,r,e),Si(t.body,r,e);break}case 37:{let t=i;Si(t.body,r,e),t.condition=_e(t.condition,r,e);break}case 43:{let t=i,n=t.initializer;n!=null&&Si(n,r,e);let s=t.condition;s!=null&&(t.condition=_e(s,r,e));let a=t.incrementor;a!=null&&(t.incrementor=_e(a,r,e)),Si(t.body,r,e);break}case 48:{let t=i;t.condition=_e(t.condition,r,e);let n=t.cases;for(let s=0,a=n.length;s<a;++s)n[s].label!=null&&(n[s].label=_e(assert(n[s].label),r,e)),L_(n[s].statements,r,e);break}default:break}}function _e(i,r,e){switch(i.kind){case 26:return h.createPropertyAccessExpression(h.createCallExpression(h.createIdentifierExpression("changetype",i.range),[ve(r,i.range)],[h.createPropertyAccessExpression(h.createIdentifierExpression(e,i.range),h.createIdentifierExpression(vi,i.range),i.range)],i.range),h.createIdentifierExpression(ka,i.range),i.range);case 10:{let t=i;return t.left=_e(t.left,r,e),t.right=_e(t.right,r,e),t}case 11:{let t=i;t.expression=_e(t.expression,r,e);let n=t.args;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 23:{let t=i;return t.expression=_e(t.expression,r,e),t}case 22:{let t=i;return t.expression=_e(t.expression,r,e),t}case 30:{let t=i;return t.operand=_e(t.operand,r,e),t}case 29:{let t=i;return t.operand=_e(t.operand,r,e),t}case 14:{let t=i;return t.expression=_e(t.expression,r,e),t.elementExpression=_e(t.elementExpression,r,e),t}case 24:{let t=i;return t.condition=_e(t.condition,r,e),t.ifThen=_e(t.ifThen,r,e),t.ifElse=_e(t.ifElse,r,e),t}case 13:{let t=i,n=t.expressions;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 19:{let t=i,n=t.args;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 17:{let t=i;return t.expression=_e(t.expression,r,e),t}case 9:{let t=i;return t.expression=_e(t.expression,r,e),t}case 31:{let t=i;return t.operand=_e(t.operand,r,e),t}default:return i}}function Wx(i){return i==Iu||i==Au||i==vi||i=="record"?!0:i.startsWith(jx)}function Uk(i,r,e){return h.createPropertyAccessExpression(i,h.createIdentifierExpression(r,e),e)}function Su(i,r,e){return Uk(h.createIdentifierExpression(i,e),r,e)}function Vk(i,r,e){return Su(i,r,e)}function He(i,r){return h.createPropertyAccessExpression(h.createIdentifierExpression(i,r),h.createIdentifierExpression(Iu,r),r)}function vu(i,r,e){return h.createBinaryExpression(102,He(i,e),r,e)}function Eu(i,r,e,t){return r==0?ur(He(i,t),t):h.createBinaryExpression(99,ur(He(i,t),t),Qx(i,r,e,t),t)}function Qx(i,r,e,t){return r==0?h.createFalseExpression(t):h.createBinaryExpression(98,h.createBinaryExpression(76,He(i,t),St(r,t),t),h.createBinaryExpression(75,He(i,t),St(e,t),t),t)}function ur(i,r){return h.createBinaryExpression(77,i,St(0,r),r)}function Kx(i,r){return h.createBinaryExpression(78,i,St(0,r),r)}function Ok(i,r,e){return h.createBinaryExpression(77,i,r,e)}function M_(i,r,e){return z_(h.createIdentifierExpression(i,e),r,e)}function z_(i,r,e){return h.createBinaryExpression(102,i,r,e)}function qk(i){return i.kind==1&&i.name.identifier.text==""}var D_=class{constructor(r,e,t){this.name=r;this.type=e;this.declaration=t}},G_=class{constructor(){this.locals=new Array;this.parameters=new Set;this.parameterNames=new Array;this.parameterRanges=new Map;this.declaredTypes=new Map}liftParameter(r,e){this.parameters.has(r)||(this.parameters.add(r),this.parameterNames.push(r),this.parameterRanges.set(r,e))}parameterRange(r){return assert(this.parameterRanges.get(r))}liftLocal(r,e,t){this.hasLocal(r)||this.locals.push(new D_(r,e,t))}knownTypes(){let r=new Map,e=this.declaredTypes,t=Map_keys(e);for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);r.set(a,assert(e.get(a)))}for(let n=0,s=this.locals.length;n<s;++n){let a=this.locals[n];r.set(a.name,a.type)}return r}hasLocal(r){for(let e=0,t=this.locals.length;e<t;++e)if(this.locals[e].name==r)return!0;return!1}};function Wk(i){return i.kind==1&&i.name.identifier.text=="void"}function Kk(i,r){return h.createNamedType(h.createSimpleTypeName("Task",r),[i],!1,r)}function ve(i,r){return h.createNamedType(h.createSimpleTypeName(i,r),null,!1,r)}function Hk(i){switch(i){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:return!0;default:return!1}}function St(i,r){return h.createIntegerLiteralExpression(i64_new(i),r)}function Nr(i,r,e,t){return h.createBinaryExpression(102,h.createPropertyAccessExpression(i,h.createIdentifierExpression(r,t),t),e,t)}function Xx(i){let r=new yu;r.program=i,r.afterParse(i.parser);let e=new ya;e.program=i,e.afterParse(i.parser);let t=new Fa;t.program=i,t.afterParse(i.parser)}function jk(){return new ca}function Qk(i,r){i.target=r}function Xk(i,r){i.runtime=r}function Zk(i,r){i.noAssert=r}function $k(i,r){i.exportMemory=r}function Yk(i,r){i.importMemory=r}function Jk(i,r){i.initialMemory=r}function eF(i,r){i.maximumMemory=r}function tF(i,r){i.sharedMemory=r}function rF(i,r){i.importTable=r}function iF(i,r){i.exportTable=r}function nF(i,r){i.sourceMap=r}function sF(i,r){i.uncheckedBehavior=r}function aF(i,r){i.memoryBase=r}function lF(i,r){i.tableBase=r}function oF(i,r,e){let t=i.globalAliases;t||(i.globalAliases=t=new Map),t.set(r,e)}function uF(i,r){let e=i.globalAliases;e&&e.delete(r)}function cF(i,r){i.exportStart=r}function pF(i,r){i.noUnsafe=r}function fF(i,r){i.lowMemoryLimit=r}function _F(i,r){i.exportRuntime=r}var dF=32768;function hF(i,r){i.stackSize=r}function mF(i,r,e,t){i.bundleMajorVersion=r,i.bundleMinorVersion=e,i.bundlePatchVersion=t}var yF=1,gF=2,bF=4,xF=8,EF=16,AF=32,TF=64,SF=128,vF=256,IF=512,kF=1024,FF=2048,wF=4096,RF=8192,CF=16384,PF=32768,BF=65535,NF=ou;function LF(i,r,e){i.setFeature(r,e)}function MF(i,r,e){i.optimizeLevelHint=r,i.shrinkLevelHint=e}function zF(i,r){i.basenameHint=r}function DF(i,r){i.bindingsHint=r}function GF(i,r){i.pedantic=r}function UF(i,r){i.debugInfo=r}function VF(i){return new zs(i)}function OF(i){return i.diagnosticsOffset<i.diagnostics.length?i.diagnostics[i.diagnosticsOffset++]:null}function qF(i,r){return i.getSource(r)}function WF(i){return i.code}function KF(i){return i.category}function HF(i){return i.message}function jF(i){return i.range}function QF(i){return i.relatedRange}function XF(i){return i.start}function ZF(i){return i.end}function $F(i){return i.source}function YF(i){return i.normalizedPath}function JF(i){return i.category==1}function ew(i){return i.category==2}function tw(i){return i.category==3}function rw(i,r,e,t=!1){i.parser.parseFile(r,e,t)}function iw(i){return i.parser.nextFile()}function nw(i,r){return i.parser.getDependee(r)}function sw(i){i.initialize()}function aw(i){return i.parser.finish(),new pa(i).compile()}function lw(i,r){return bn.build(i,r)}function ow(i,r){return _n.build(i,r)}function uw(i){return i.ref}function cw(i){return i.validate()}function pw(i,r,e,t=!1,n=!1){i.optimize(r,e,t,n)}var U_=class i{constructor(){this.sb=[];this.indentLevel=0}static build(r){let e=new i;return e.visitNode(r),e.finish()}visitNode(r){switch(r.kind){case 0:{this.visitSource(r);break}case 1:{this.visitNamedTypeNode(r);break}case 2:{this.visitFunctionTypeNode(r);break}case 3:{this.visitTupleTypeNode(r);break}case 6:{this.visitTypeParameter(r);break}case 15:case 20:case 25:case 26:case 27:case 28:case 8:{this.visitIdentifierExpression(r);break}case 9:{this.visitAssertionExpression(r);break}case 10:{this.visitBinaryExpression(r);break}case 11:{this.visitCallExpression(r);break}case 12:{this.visitClassExpression(r);break}case 13:{this.visitCommaExpression(r);break}case 14:{this.visitElementAccessExpression(r);break}case 16:{this.visitFunctionExpression(r);break}case 17:{this.visitInstanceOfExpression(r);break}case 18:{this.visitLiteralExpression(r);break}case 19:{this.visitNewExpression(r);break}case 22:{this.visitParenthesizedExpression(r);break}case 23:{this.visitPropertyAccessExpression(r);break}case 24:{this.visitTernaryExpression(r);break}case 29:{this.visitUnaryPostfixExpression(r);break}case 30:{this.visitUnaryPrefixExpression(r);break}case 31:{this.visitAwaitExpression(r);break}case 34:{this.visitBlockStatement(r);break}case 35:{this.visitBreakStatement(r);break}case 36:{this.visitContinueStatement(r);break}case 37:{this.visitDoStatement(r);break}case 38:{this.visitEmptyStatement(r);break}case 39:{this.visitExportStatement(r);break}case 40:{this.visitExportDefaultStatement(r);break}case 41:{this.visitExportImportStatement(r);break}case 42:{this.visitExpressionStatement(r);break}case 43:{this.visitForStatement(r);break}case 44:{this.visitForOfStatement(r);break}case 45:{this.visitIfStatement(r);break}case 46:{this.visitImportStatement(r);break}case 47:{this.visitReturnStatement(r);break}case 48:{this.visitSwitchStatement(r);break}case 49:{this.visitThrowStatement(r);break}case 50:{this.visitTryStatement(r);break}case 51:{this.visitVariableStatement(r);break}case 53:{this.visitWhileStatement(r);break}case 54:{this.visitModuleDeclaration(r);break}case 55:{this.visitClassDeclaration(r);break}case 56:{this.visitEnumDeclaration(r);break}case 57:{this.visitEnumValueDeclaration(r);break}case 58:{this.visitFieldDeclaration(r);break}case 59:{this.visitFunctionDeclaration(r);break}case 60:{this.visitImportDeclaration(r);break}case 61:{this.visitInterfaceDeclaration(r);break}case 62:{this.visitMethodDeclaration(r);break}case 63:{this.visitNamespaceDeclaration(r);break}case 64:{this.visitTypeDeclaration(r);break}case 65:{this.visitVariableDeclaration(r);break}case 66:{this.serializeDecorator(r);break}case 67:{this.visitExportMember(r);break}case 7:{this.serializeParameter(r);break}case 68:{this.visitSwitchCase(r);break}case 69:{this.visitIndexSignature(r);break}default:assert(!1)}}visitSource(r){let e=r.statements;for(let t=0,n=e.length;t<n;++t)this.visitNodeAndTerminate(e[t])}visitTypeNode(r){switch(r.kind){case 1:{this.visitNamedTypeNode(r);break}case 2:{this.visitFunctionTypeNode(r);break}case 3:{this.visitTupleTypeNode(r);break}default:assert(!1)}}visitTypeName(r){this.visitIdentifierExpression(r.identifier);let e=this.sb,t=r.next;for(;t;)e.push("."),this.visitIdentifierExpression(t.identifier),t=t.next}visitNamedTypeNode(r){this.visitTypeName(r.name);let e=r.typeArguments;if(e){let t=e.length,n=this.sb;if(t){n.push("<"),this.visitTypeNode(e[0]);for(let s=1;s<t;++s)n.push(", "),this.visitTypeNode(e[s]);n.push(">")}r.isNullable&&n.push(" | null")}this.visitTypeAttributes(r)}visitTypeAttributes(r){let e=r.attributes;if(!e)return;let t=this.sb;for(let n=0,s=e.length;n<s;++n){let a=e[n];t.push(" @"),this.visitNode(a.name);let l=a.args;if(l){t.push("(");let o=l.length;if(o){this.visitNode(l[0]);for(let u=1;u<o;++u)t.push(", "),this.visitNode(l[u])}t.push(")")}}}visitFunctionTypeNode(r){let e=r.isNullable,t=this.sb;t.push(e?"((":"(");let n=r.explicitThisType;n&&(t.push("this: "),this.visitTypeNode(n));let s=r.parameters,a=s.length;if(a){n&&t.push(", "),this.serializeParameter(s[0]);for(let o=1;o<a;++o)t.push(", "),this.serializeParameter(s[o])}let l=r.returnType;l?(t.push(") => "),this.visitTypeNode(l)):t.push(") => void"),e&&t.push(") | null"),this.visitTypeAttributes(r)}visitTupleTypeNode(r){let e=this.sb;e.push("[");let t=r.elements,n=r.elementNames,s=t.length;if(s){let a=n?n[0]:null;a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(t[0]);for(let l=1;l<s;++l)e.push(", "),a=n?n[l]:null,a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(t[l])}e.push("]"),r.isNullable&&e.push(" | null"),this.visitTypeAttributes(r)}visitTypeParameter(r){this.visitIdentifierExpression(r.name);let e=r.extendsType;e&&(this.sb.push(" extends "),this.visitTypeNode(e));let t=r.defaultType;t&&(this.sb.push("="),this.visitTypeNode(t))}visitIdentifierExpression(r){r.isQuoted?this.visitStringLiteral(r.text):this.sb.push(r.text)}visitArrayLiteralExpression(r){let e=this.sb;e.push("[");let t=r.elementExpressions,n=t.length;if(n){let s=t[0];s&&this.visitNode(s);for(let a=1;a<n;++a)s=t[a],e.push(", "),s&&this.visitNode(s)}e.push("]")}visitObjectLiteralExpression(r){let e=this.sb,t=r.names,n=r.values,s=t.length;if(assert(s==n.length),s){e.push(`{
307
- `),W(e,++this.indentLevel),this.visitNode(t[0]),e.push(": "),this.visitNode(n[0]);for(let a=1;a<s;++a){e.push(`,
308
- `),W(e,this.indentLevel);let l=t[a],o=n[a];l==o?this.visitNode(l):(this.visitNode(l),e.push(": "),this.visitNode(o))}e.push(`
309
- `),W(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitAssertionExpression(r){let e=this.sb;switch(r.assertionKind){case 0:{e.push("<"),this.visitTypeNode(assert(r.toType)),e.push(">"),this.visitNode(r.expression);break}case 1:{this.visitNode(r.expression),e.push(" as "),this.visitTypeNode(assert(r.toType));break}case 2:{this.visitNode(r.expression),e.push("!");break}case 3:{this.visitNode(r.expression),e.push(" as const");break}default:assert(!1)}}visitBinaryExpression(r){let e=this.sb;this.visitNode(r.left),e.push(" "),e.push(Le(r.operator)),e.push(" "),this.visitNode(r.right)}visitCallExpression(r){this.visitNode(r.expression),this.visitArguments(r.typeArguments,r.args)}visitArguments(r,e){let t=this.sb;if(r){let s=r.length;if(s){t.push("<"),this.visitTypeNode(r[0]);for(let a=1;a<s;++a)t.push(", "),this.visitTypeNode(r[a]);t.push(">(")}}else t.push("(");let n=e.length;if(n){this.visitNode(e[0]);for(let s=1;s<n;++s)t.push(", "),this.visitNode(e[s])}t.push(")")}visitClassExpression(r){let e=r.declaration;this.visitClassDeclaration(e)}visitCommaExpression(r){let e=r.expressions,t=assert(e.length);this.visitNode(e[0]);let n=this.sb;for(let s=1;s<t;++s)n.push(","),this.visitNode(e[s])}visitElementAccessExpression(r){let e=this.sb;this.visitNode(r.expression),e.push("["),this.visitNode(r.elementExpression),e.push("]")}visitFunctionExpression(r){let e=r.declaration;e.isAsync&&this.sb.push("async "),e.arrowKind?assert(e.name.text.length==0):e.name.text.length?this.sb.push("function "):this.sb.push("function"),this.visitFunctionCommon(e)}visitLiteralExpression(r){switch(r.literalKind){case 0:{this.visitFloatLiteralExpression(r);break}case 1:{this.visitIntegerLiteralExpression(r);break}case 2:{this.visitStringLiteralExpression(r);break}case 3:{this.visitTemplateLiteralExpression(r);break}case 4:{this.visitRegexpLiteralExpression(r);break}case 5:{this.visitArrayLiteralExpression(r);break}case 6:{this.visitObjectLiteralExpression(r);break}default:{assert(!1);break}}}visitFloatLiteralExpression(r){this.sb.push(r.value.toString())}visitInstanceOfExpression(r){this.visitNode(r.expression),this.sb.push(" instanceof "),this.visitTypeNode(r.isType)}visitIntegerLiteralExpression(r){let e=r.range,t=e.source.text.startsWith("-",e.start);this.sb.push(i64_to_string(r.value,!t))}visitStringLiteral(r){let e=this.sb;e.push('"'),e.push(Re(r,34)),e.push('"')}visitStringLiteralExpression(r){this.visitStringLiteral(r.value)}visitTemplateLiteralExpression(r){let e=this.sb,t=r.tag,n=r.parts,s=r.expressions;t&&this.visitNode(t),e.push("`"),e.push(Re(n[0],96)),assert(n.length==s.length+1);for(let a=0,l=s.length;a<l;++a)e.push("${"),this.visitNode(s[a]),e.push("}"),e.push(Re(n[a+1],96));e.push("`")}visitRegexpLiteralExpression(r){let e=this.sb;e.push("/"),e.push(r.pattern),e.push("/"),e.push(r.patternFlags)}visitNewExpression(r){this.sb.push("new "),this.visitTypeName(r.typeName),this.visitArguments(r.typeArguments,r.args)}visitParenthesizedExpression(r){let e=this.sb;e.push("("),this.visitNode(r.expression),e.push(")")}visitPropertyAccessExpression(r){this.visitNode(r.expression),this.sb.push("."),this.visitIdentifierExpression(r.property)}visitTernaryExpression(r){let e=this.sb;this.visitNode(r.condition),e.push(" ? "),this.visitNode(r.ifThen),e.push(" : "),this.visitNode(r.ifElse)}visitUnaryExpression(r){switch(r.kind){case 29:{this.visitUnaryPostfixExpression(r);break}case 30:{this.visitUnaryPrefixExpression(r);break}default:assert(!1)}}visitUnaryPostfixExpression(r){this.visitNode(r.operand),this.sb.push(Le(r.operator))}visitUnaryPrefixExpression(r){this.sb.push(Le(r.operator)),this.visitNode(r.operand)}visitAwaitExpression(r){this.sb.push("await "),this.visitNode(r.operand)}visitNodeAndTerminate(r){this.visitNode(r);let e=this.sb;if(!e.length||r.kind==51||r.kind==42)e.push(`;
306
+ `),t.join("")}};function ut(i,r,e=0){if(i==null)return null;switch(i.kind){case 18:{switch(i.literalKind){case 1:return Br("i32",i);case 0:return Br("f64",i);case 2:case 3:return Br("string",i)}return null}case 27:case 15:return Br("bool",i);case 22:return ut(i.expression,r,e);case 19:{let t=i;return h.createNamedType(t.typeName,t.typeArguments,!1,t.range)}case 9:{let t=i;return t.assertionKind!=2&&t.toType!=null?t.toType:ut(t.expression,r,e)}case 11:{let t=i,n=t.expression;if(n.kind==8&&n.text=="changetype"){let s=t.typeArguments;if(s!=null&&s.length==1)return s[0]}return null}case 8:{if(r==null||e>8)return null;let t=i.text,n=ee(r,t);return n??null}case 30:{let t=i;switch(t.operator){case 96:return Br("bool",i);case 83:case 82:case 97:{let n=ut(t.operand,r,e+1);return fa(n)?n:null}}return null}case 29:{let t=ut(i.operand,r,e+1);return fa(t)?t:null}case 10:{let t=i;switch(t.operator){case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:return Br("bool",i);case 90:case 91:case 92:{let n=ut(t.left,r,e+1);return fa(n)?n:null}case 98:case 99:{let n=ut(t.left,r,e+1),s=ut(t.right,r,e+1);return xn(n,"bool")&&xn(s,"bool")?Br("bool",i):null}case 82:case 83:case 85:case 86:case 87:case 93:case 94:case 95:case 84:{let n=ut(t.left,r,e+1),s=ut(t.right,r,e+1);return!fa(n)||!fa(s)?null:xn(n,"f64")||xn(s,"f64")?!xn(n,"f32")&&!xn(s,"f32")?Br("f64",i):null:uk(n,s)?n:null}}return null}}return null}function Br(i,r){let e=h.createSimpleTypeName(i,r.range);return h.createNamedType(e,null,!1,r.range)}function fa(i){if(i==null||i.kind!=1)return!1;let e=i.name.identifier.text;return e=="i8"||e=="i16"||e=="i32"||e=="i64"||e=="u8"||e=="u16"||e=="u32"||e=="u64"||e=="isize"||e=="usize"||e=="f32"||e=="f64"}function g_(i){let r=i.typeArguments;return r!=null&&r.length>0}function xn(i,r){if(i==null||i.kind!=1)return!1;let e=i;return e.name.identifier.text==r&&!g_(e)}function uk(i,r){if(i==null||r==null||i.kind!=1||r.kind!=1)return!1;let e=i,t=r;return g_(e)||g_(t)?!1:e.name.identifier.text==t.name.identifier.text}var da="$closureEnv",pu="$closureEnvIn",fu="$init$",Cx="$Env",ck="__closureInit",En="$this",_a="$parent",pk="$env",Px="$awaited";function fk(i){let r=i.length;if(r==0)return!1;if(uu(i,da)&&(r==da.length||i.charCodeAt(da.length)==36)||uu(i,pu)||i==En||i==_a||i==pk||uu(i,fu))return!0;if(uu(i,Px)){let e=Px.length;if(e>=r)return!1;for(let t=e;t<r;++t){let n=i.charCodeAt(t);if(n<48||n>57)return!1}return!0}return!1}function uu(i,r){let e=r.length;if(i.length<e)return!1;for(let t=0;t<e;++t)if(i.charCodeAt(t)!=r.charCodeAt(t))return!1;return!0}var hu=class{constructor(r,e,t,n,s,a,l){this.name=r;this.kind=e;this.envClass=t;this.ownEnv=n;this.receivesEnv=s;this.parentClass=a;this.needed=l}},ya=class{constructor(){this.analyses=null}afterParse(r){let e=this.program.sources;this.analyses=null;let t=!1,n=new x_;for(let s=0,a=e.length;s<a;++s){let l=e[s];l.isLibrary||(this.collectStatementList(l.statements,r)&&(t=!0),n.visitStatements(l.statements))}if(n.sawAsync&&(t=!0),!(t&&n.refuse(r)))for(let s=0,a=e.length;s<a;++s){let l=e[s];l.isLibrary||this.lowerStatementList(l,l.statements,r)}}dumpEnvAnalysis(){let r=new Array,e=this.analyses;if(e==null)return r;for(let t of e.values()){let n=t.allInfos;for(let s=0,a=n.length;s<a;++s)r.push(t.describe(n[s],s))}return r}recordAnalysis(r,e){let t=this.analyses;t==null&&(t=new Map,this.analyses=t),t.set(r,e)}collectStatementList(r,e){let t=!1;for(let n=0,s=r.length;n<s;++n){let a=r[n];switch(a.kind){case 59:{let l=a;if(l.body==null)break;let o=new ma(this,e,l);o.run(),this.recordAnalysis(l,o),o.hasCaptures()&&!o.refused&&(t=!0);break}case 63:{this.collectStatementList(a.members,e)&&(t=!0);break}case 55:{let l=a.name.text,o=a.members;for(let u=0,c=o.length;u<c;++u){if(o[u].kind!=62)continue;let f=o[u];if(f.body==null||f.is(32))continue;let _=new ma(this,e,f,du(l,f.range),a);_.run(),this.recordAnalysis(f,_),_.hasCaptures()&&!_.refused&&(t=!0)}break}case 51:{let l=a.declarations;for(let o=0,u=l.length;o<u;++o){let c=l[o].initializer;if(c==null||c.kind!=16)continue;let f=c;if(f.declaration.body==null)continue;let _=new ma(this,e,f.declaration);_.run(),this.recordAnalysis(f.declaration,_),_.hasCaptures()&&!_.refused&&_.refuse(f.declaration.range,"a capture from a top-level function expression (closures lowering)")}break}default:break}}return t}lowerStatementList(r,e,t){let n=new Array,s=!1;for(let a=0,l=e.length;a<l;++a){let o=e[a];switch(o.kind){case 59:{let u=o;if(u.body==null){n.push(o);break}let c=assert(assert(this.analyses).get(u));if(!c.hasCaptures()){n.push(o);break}if(c.refused){n.push(o);break}let f=c.makeEnvClasses();for(let _=0,d=f.length;_<d;++_)n.push(f[_]);c.rewrite(),n.push(o),s=!0;break}case 63:{this.lowerStatementList(r,o.members,t),n.push(o);break}case 55:{let u=o,c=this.lowerMethods(u,t);for(let f=0,_=c.length;f<_;++f)n.push(c[f]);c.length>0&&(s=!0),n.push(o);break}case 51:{n.push(o);break}default:{n.push(o);break}}}if(s){e.length=0;for(let a=0,l=n.length;a<l;++a)e.push(n[a])}}lowerMethods(r,e){let t=new Array,n=r.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=62)continue;let o=l;if(o.body==null||o.is(32))continue;let u=assert(assert(this.analyses).get(o));if(!u.hasCaptures()||u.refused)continue;let c=u.makeEnvClasses();for(let f=0,_=c.length;f<_;++f)t.push(c[f]);u.rewrite()}return t}},b_=class{constructor(r,e){this.name=r;this.range=e}},x_=class{constructor(){this.hits=null;this.sawAsync=!1}check(r,e){if(!fk(r))return;let t=this.hits;if(t==null)t=new Array,this.hits=t;else for(let n=0,s=t.length;n<s;++n)if(t[n].name==r)return;t.push(new b_(r,e))}refuse(r){let e=this.hits;if(e==null)return!1;for(let t=0,n=e.length;t<n;++t)r.error(100,e[t].range,"a user identifier named '"+e[t].name+"' (closures lowering)");return!0}visitStatements(r){for(let e=0,t=r.length;e<t;++e)this.visitStatement(r[e])}visitStatement(r){switch(r.kind){case 34:{this.visitStatements(r.statements);break}case 37:{let e=r;this.visitStatement(e.body),this.visitExpression(e.condition);break}case 42:{this.visitExpression(r.expression);break}case 43:{let e=r,t=e.initializer;t!=null&&this.visitStatement(t);let n=e.condition;n!=null&&this.visitExpression(n);let s=e.incrementor;s!=null&&this.visitExpression(s),this.visitStatement(e.body);break}case 44:{let e=r;this.visitStatement(e.variable),this.visitExpression(e.iterable),this.visitStatement(e.body);break}case 45:{let e=r;this.visitExpression(e.condition),this.visitStatement(e.ifTrue),e.ifFalse!=null&&this.visitStatement(assert(e.ifFalse));break}case 47:{let e=r.value;e!=null&&this.visitExpression(e);break}case 48:{let e=r;this.visitExpression(e.condition);let t=e.cases;for(let n=0,s=t.length;n<s;++n){let a=t[n].label;a!=null&&this.visitExpression(a),this.visitStatements(t[n].statements)}break}case 49:{this.visitExpression(r.value);break}case 50:{let e=r;this.visitStatements(e.bodyStatements);let t=e.catchVariable;t!=null&&this.check(t.text,t.range),e.catchStatements!=null&&this.visitStatements(assert(e.catchStatements)),e.finallyStatements!=null&&this.visitStatements(assert(e.finallyStatements));break}case 51:{let e=r.declarations;for(let t=0,n=e.length;t<n;++t){let s=e[t];this.check(s.name.text,s.name.range),s.initializer!=null&&this.visitExpression(assert(s.initializer))}break}case 53:{let e=r;this.visitExpression(e.condition),this.visitStatement(e.body);break}case 59:case 62:{this.visitFunction(r);break}case 55:{this.visitClass(r);break}case 56:{let e=r;this.check(e.name.text,e.name.range);let t=e.values;for(let n=0,s=t.length;n<s;++n){this.check(t[n].name.text,t[n].name.range);let a=t[n].initializer;a!=null&&this.visitExpression(a)}break}case 63:{let e=r;this.check(e.name.text,e.name.range),this.visitStatements(e.members);break}case 64:{let e=r;this.check(e.name.text,e.name.range);break}default:break}}visitFunction(r){let e=r.name;e.text.length!=0&&this.check(e.text,e.range),r.isAsync&&(this.sawAsync=!0);let t=r.signature.parameters;for(let s=0,a=t.length;s<a;++s){let l=t[s];this.check(l.name.text,l.name.range),l.initializer!=null&&this.visitExpression(assert(l.initializer))}let n=r.body;n!=null&&this.visitStatement(n)}visitClass(r){let e=r.name;e.text.length!=0&&this.check(e.text,e.range);let t=r.members;for(let n=0,s=t.length;n<s;++n){let a=t[n];switch(a.kind){case 58:{let l=a;this.check(l.name.text,l.name.range),l.initializer!=null&&this.visitExpression(assert(l.initializer));break}case 62:{this.visitFunction(a);break}default:break}}}visitExpression(r){switch(r.kind){case 9:{this.visitExpression(r.expression);break}case 10:{let e=r;this.visitExpression(e.left),this.visitExpression(e.right);break}case 11:{let e=r;this.visitExpression(e.expression);let t=e.args;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 12:{this.visitClass(r.declaration);break}case 13:{let e=r.expressions;for(let t=0,n=e.length;t<n;++t)this.visitExpression(e[t]);break}case 14:{let e=r;this.visitExpression(e.expression),this.visitExpression(e.elementExpression);break}case 16:{this.visitFunction(r.declaration);break}case 17:{this.visitExpression(r.expression);break}case 18:{let e=r;switch(e.literalKind){case 3:{let t=e.expressions;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 5:{let t=e.elementExpressions;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 6:{let t=e.values;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}default:break}break}case 19:{let e=r.args;for(let t=0,n=e.length;t<n;++t)this.visitExpression(e[t]);break}case 22:{this.visitExpression(r.expression);break}case 23:{this.visitExpression(r.expression);break}case 24:{let e=r;this.visitExpression(e.condition),this.visitExpression(e.ifThen),this.visitExpression(e.ifElse);break}case 30:{this.visitExpression(r.operand);break}case 29:{this.visitExpression(r.operand);break}case 31:{this.visitExpression(r.operand);break}case 32:{this.visitExpression(r.expression);break}default:break}}};var ha=class{constructor(r,e,t,n,s){this.name=r;this.type=e;this.scope=t;this.declaration=n;this.hasInitializer=s;this.captured=!1;this.hasInitFlag=!1;this.isParam=!1;this.isLoopHeader=!1;this.isLoopHeaderOf=null;this.closureValue=null;this.isConst=!1}},Vt=class{constructor(r,e,t,n){this.kind=r;this.parent=e;this.ownerFunction=t;this.range=n;this.bindings=new Map;this.functionValues=new Map;this.captured=new Array;this.localName=null;this.className=null;this.needsThis=!1;this.isLoopHeader=!1}resolveFunctionValue(r){let e=this;for(;e!=null;){let t=ee(e.functionValues,r);if(t)return t;e=e.parent}return null}knownTypes(){let r=new Map,e=this;for(;e!=null;){let t=e.bindings,n=Map_keys(t);for(let s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(r.has(l))continue;let u=assert(t.get(l)).type;u!=null&&r.set(l,u)}e=e.parent}return r}resolve(r){let e=this;for(;e!=null;){let t=ee(e.bindings,r);if(t)return t;e=e.parent}return null}},E_=class{constructor(r,e,t){this.expression=r;this.arrows=e;this.receiver=t}},A_=class{constructor(r,e){this.declaration=r;this.range=e}},T_=class{constructor(r,e,t){this.identifier=r;this.binding=e;this.write=t}},S_=class{constructor(r,e,t,n,s){this.node=r;this.expression=e;this.isArrow=t;this.isAsync=n;this.parent=s;this.children=new Array;this.directCaptures=null;this.neededScopes=null;this.needed=null;this.displayName="";this.ownEnv=!1;this.bodyParent=null;this.usesThis=!1;this.capturesLocal=!1;this.ownsScope=null}recordCapture(r){let e=this.directCaptures;if(e==null)e=new Array,this.directCaptures=e;else if(e.includes(r))return;e.push(r)}recordNeed(r){let e=this.neededScopes;if(e==null)e=new Array,this.neededScopes=e;else if(e.includes(r))return;e.push(r);let t=this.needed;(t==null||ga(r)>ga(t))&&(this.needed=r)}resetNeeds(){this.neededScopes=null,this.needed=null}};function _u(i){return i.captured.length>0||i.needsThis}function cu(i){let r=i.parent;for(;r!=null;){if(_u(r))return r;r=r.parent}return null}function _k(i){let r=i.ownerFunction.name.text,e=i.kind==0?"$body":"$block";return r+e+":"+ga(i).toString()}function ga(i){let r=0,e=i;for(;e!=null;)++r,e=e.parent;return r}var ma=class{constructor(r,e,t,n=null,s=null){this.transform=r;this.parser=e;this.owner=t;this.refs=new Map;this.writes=new Set;this.allRefs=new Array;this.infos=new Map;this.scopes=new Array;this.scopeOfBlock=new Map;this.scopeOfCase=new Map;this.scopeOfLoop=new Map;this.plainBlocks=new Set;this.allInfos=new Array;this.bindingOf=new Map;this.captures=!1;this.refused=!1;this.typeParameters=new Set;this.classTypeParameters=new Set;this.envTypeParameters=new Array;this.thisUses=new Array;this.ownerBodyUsesThis=!1;this.hostCallbackCandidates=new Array;this.ownerNames=new Map;this.classNames=new Set;this.anonymousOwners=0;this.structFunctions=new Set;this.thisRefs=new Map;this.ownerThisType=n??t.signature.explicitThisType;let a=t.typeParameters;if(a)for(let o=0,u=a.length;o<u;++o)this.typeParameters.add(a[o].name.text);if(s!=null){let o=s.typeParameters;if(o)for(let u=0,c=o.length;u<c;++u){let f=o[u].name.text;this.classTypeParameters.add(f),this.envTypeParameters.push(f)}}let l=t.typeParameters;if(l)for(let o=0,u=l.length;o<u;++o){let c=l[o].name.text;this.typeParameters.add(c),this.classTypeParameters.has(c)||this.envTypeParameters.push(c)}}hasCaptures(){return this.captures||this.thisRefs.size>0}refuse(r,e){this.refused||(this.refused=!0,this.parser.error(100,r,e))}isPlainBlock(r){return this.plainBlocks.has(r)}describe(r,e){let t=new Array,n=r.neededScopes;if(n!=null){let l=new Array;for(let o=0,u=n.length;o<u;++o)l.push(n[o]);for(let o=1,u=l.length;o<u;++o){let c=l[o],f=ga(c),_=o-1;for(;_>=0&&ga(l[_])<f;)l[_+1]=l[_],--_;l[_+1]=c}for(let o=0,u=l.length;o<u;++o)t.push(_k(l[o]))}let s=r.needed!=null?"struct":r.usesThis?"receiver":"none",a=r.node.name.text;return a.length==0&&(a=r.displayName),a.length==0&&(a="$anonymous"+e.toString()),new hu(a,s,r.needed!=null?r.needed.className:null,r.ownEnv,r.needed!=null,r.bodyParent!=null?r.bodyParent.className:null,t)}attributeThis(){let r=this.thisUses;for(let e=0,t=r.length;e<t;++e){let n=r[e],s=n.arrows[0],a=n.receiver.ownsScope;if(a==null)continue;let l=s.needed;if(l==null){if(!n.receiver.isAsync)continue;s.recordCapture(a),s.recordNeed(a),a.needsThis=!0,this.thisRefs.set(n.expression,a);continue}if(this.ownerThisType==null){this.refuse(n.expression.range,"this in a capturing arrow (closures lowering)");continue}let o;l.ownerFunction===a.ownerFunction?(l.needsThis=!0,o=l):(a.needsThis=!0,o=a),this.thisRefs.set(n.expression,o)}if(this.ownerBodyUsesThis&&this.owner.isAsync&&this.ownerThisType!=null){let e=ee(this.infos,this.owner),t=e!=null?e.ownsScope:null;t!=null&&_u(t)&&(t.needsThis=!0)}}ownerPrefix(r){let e=ee(this.infos,r);if(e==null)return r.name.text;let t=new Array,n=e;for(;n!=null;)t.push(this.ownerNameOf(n)),n=n.parent;let s="";for(let a=t.length-1;a>=0;--a)s.length!=0&&(s+="$"),s+=t[a];return s}ownerNameOf(r){let e=ee(this.ownerNames,r.node);if(e!=null)return e;let t=r.node.name.text;return t.length==0&&(t=r.displayName),t.length==0&&(++this.anonymousOwners,t="$anon"+this.anonymousOwners.toString()),this.ownerNames.set(r.node,t),t}uniqueClassName(r,e){let t=r,n=0;for(;this.classNames.has(t);)++n,t=r+"$"+n.toString();return this.classNames.add(t),t}finalizeNeeds(){let r=this.scopes,e=this.allInfos;for(let t=0,n=e.length;t<n;++t)e[t].ownEnv=!1,e[t].bodyParent=null;for(let t=0,n=r.length;t<n;++t){let s=r[t];if(!_u(s))continue;let a=ee(this.infos,s.ownerFunction);a!=null&&(a.ownEnv=!0)}for(let t=e.length-1;t>=0;--t){let n=e[t];n.resetNeeds();let s=n.directCaptures;if(s!=null)for(let o=0,u=s.length;o<u;++o)n.recordNeed(s[o]);let a=n.children;for(let o=0,u=a.length;o<u;++o){let c=a[o].needed;c!=null&&this.isDeliverable(n,c)&&n.recordNeed(c)}let l=n.ownsScope;if(l!=null&&l.captured.length>0){let o=cu(l);o!=null&&(n.bodyParent=o,n.recordNeed(o))}}}run(){let r=this.analyzeFunction(this.owner,null,!1,null,null),e=this.allRefs;for(let s=0,a=e.length;s<a;++s){let l=e[s];l.binding.captured&&(this.refs.set(l.identifier,l.binding),l.write&&this.writes.add(l.identifier))}this.finalizeNeeds(),this.attributeThis(),this.finalizeNeeds();let t=this.hostCallbackCandidates;for(let s=0,a=t.length;s<a;++s){let l=t[s],o=ee(this.infos,l.declaration);if(o!=null&&o.needed!=null){this.refuse(l.range,"a closure captured by a host callback (closures lowering)");break}}let n=0;for(let s=0,a=this.scopes.length;s<a;++s){let l=this.scopes[s];if(!_u(l))continue;if(l.kind==1&&!this.isPlainBlock(l)&&!l.isLoopHeader){this.refuse(l.range,"a capture from a switch or try scope (closures lowering)");continue}let o=this.ownerPrefix(l.ownerFunction);l.kind==0?(l.localName=da,l.className=this.uniqueClassName(o+Cx,l.range)):(++n,l.localName=da+"$"+n.toString(),l.className=this.uniqueClassName(o+Cx+"$"+n.toString(),l.range))}for(let s=0,a=this.allInfos.length;s<a;++s){let l=this.allInfos[s],o=l.ownsScope;o==null||o.className==null||nl.set(l.node,new ts(0,o.className,!0,!1,l.bodyParent!=null?assert(l.bodyParent).className:null,o.needsThis))}r.needed!=null&&this.refuse(this.owner.range,"a top-level function that captures (closures lowering)")}analyzeFunction(r,e,t,n,s){let a=new S_(r,e,t,r.isAsync,s);this.infos.set(r,a),this.allInfos.push(a),s&&s.children.push(a);let l=new Vt(0,n,r,r.range);a.ownsScope=l,this.scopes.push(l);let o=r.signature.parameters;for(let c=0,f=o.length;c<f;++c){let _=o[c],d=new ha(_.name.text,_.type,l,_,!0);d.isParam=!0,l.bindings.set(d.name,d)}let u=r.body;u!=null&&(u.kind==34?this.walkStatements(u.statements,l,a):this.walkStatement(u,l,a)),a.needed!=null&&e!=null&&this.structFunctions.add(e);for(let c=0,f=a.children.length;c<f;++c){let d=a.children[c].needed;d!=null&&this.isDeliverable(a,d)&&a.recordNeed(d)}return a}isDeliverable(r,e){if(e.ownerFunction===r.node)return!1;let t=r.ownsScope,n=e;for(;n!=null;){if(n===t)return!1;n=n.parent}return!0}walkStatements(r,e,t){for(let n=0,s=r.length;n<s;++n)this.walkStatement(r[n],e,t)}walkStatement(r,e,t){switch(r.kind){case 34:{let n=r,s=new Vt(1,e,t.node,n.range);this.scopeOfBlock.set(n,s),this.plainBlocks.add(s),this.scopes.push(s),this.walkStatements(n.statements,s,t);break}case 51:{let n=r.declarations;for(let s=0,a=n.length;s<a;++s)this.declare(n[s],e,!1,t);break}case 42:{let n=r.expression;if(this.walkExpression(n,e,t,!1),n.kind==16){let s=n,a=s.declaration.name;a.text.length>0&&e.functionValues.set(a.text,s)}break}case 47:{let n=r.value;n!=null&&this.walkExpression(n,e,t,!1);break}case 45:{let n=r;this.walkExpression(n.condition,e,t,!1),this.walkStatement(n.ifTrue,e,t),n.ifFalse!=null&&this.walkStatement(assert(n.ifFalse),e,t);break}case 53:{let n=r;this.walkExpression(n.condition,e,t,!1),this.walkStatement(n.body,e,t);break}case 37:{let n=r;this.walkStatement(n.body,e,t),this.walkExpression(n.condition,e,t,!1);break}case 43:{let n=r,s=new Vt(1,e,t.node,n.range);this.scopeOfLoop.set(n,s),this.scopes.push(s);let a=n.initializer;if(a!=null)if(a.kind==51){let u=a.declarations;for(let c=0,f=u.length;c<f;++c)this.declare(u[c],s,!0,t,n)}else this.walkStatement(a,s,t);let l=n.condition;l!=null&&this.walkExpression(l,s,t,!1);let o=n.incrementor;o!=null&&this.walkExpression(o,s,t,!1),this.walkStatement(n.body,s,t);break}case 44:{let n=r;this.walkExpression(n.iterable,e,t,!1);let s=new Vt(1,e,t.node,n.range);if(this.scopes.push(s),n.variable.kind==51){let a=n.variable.declarations;for(let l=0,o=a.length;l<o;++l)this.declare(a[l],s,!0,t)}else this.walkStatement(n.variable,s,t);this.walkStatement(n.body,s,t);break}case 48:{let n=r;this.walkExpression(n.condition,e,t,!1);let s=n.cases;for(let a=0,l=s.length;a<l;++a){let o=s[a],u=o.label;u!=null&&this.walkExpression(u,e,t,!1);let c=new Vt(1,e,t.node,o.range);this.scopeOfCase.set(o,c),this.scopes.push(c),this.walkStatements(o.statements,c,t)}break}case 50:{let n=r,s=new Vt(1,e,t.node,n.range);if(this.scopes.push(s),this.walkStatements(n.bodyStatements,s,t),n.catchStatements!=null){let a=new Vt(1,e,t.node,n.range);this.scopes.push(a);let l=n.catchVariable;if(l!=null){let o=new ha(l.text,null,a,l,!0);a.bindings.set(o.name,o)}this.walkStatements(assert(n.catchStatements),a,t)}if(n.finallyStatements!=null){let a=new Vt(1,e,t.node,n.range);this.scopes.push(a),this.walkStatements(assert(n.finallyStatements),a,t)}break}case 49:{this.walkExpression(r.value,e,t,!1);break}case 35:case 36:case 38:case 64:break;default:break}}declare(r,e,t,n,s=null){let a=r.initializer;a!=null&&this.walkExpression(a,e,n,!1);let l=new ha(r.name.text,r.type,e,r,a!=null);if(l.isLoopHeader=t,l.isLoopHeaderOf=s,a!=null&&a.kind==16){let o=a;this.structFunctions.has(o)&&(l.closureValue=o);let u=ee(this.infos,o.declaration);u!=null&&(u.displayName=r.name.text)}l.isConst=(r.flags&8)!=0,e.bindings.set(l.name,l),this.bindingOf.set(r,l)}walkExpression(r,e,t,n){switch(r.kind){case 8:{let s=r,a=e.resolve(s.text);if(a==null)return;this.allRefs.push(new T_(s,a,n)),a.scope.ownerFunction!==t.node&&this.capture(a,s,t,n);return}case 26:{t.node===this.owner?this.ownerBodyUsesThis=!0:this.markThis(r,t);return}case 25:{t.isArrow&&this.refuse(r.range,"super in a capturing arrow (closures lowering)");return}case 27:case 15:case 20:return;case 16:{let s=r,a=s.declaration;this.analyzeFunction(a,s,a.arrowKind!=0,e,t);return}case 18:{let s=r;switch(s.literalKind){case 3:{let a=s.expressions;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}case 5:{let a=s.elementExpressions;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}case 6:{let a=s.values;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}default:break}return}case 10:{let s=r,a=Bx(s.operator);this.walkExpression(s.left,e,t,a),this.walkExpression(s.right,e,t,!1);return}case 30:{let s=r,a=s.operator==88||s.operator==89;this.walkExpression(s.operand,e,t,a);return}case 29:{let s=r,a=s.operator==88||s.operator==89;this.walkExpression(s.operand,e,t,a);return}case 11:{let s=r;this.walkExpression(s.expression,e,t,!1);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);if(dk(s))for(let l=0,o=a.length;l<o;++l){let u=this.closureValueIn(a[l],e);if(u!=null){let c=ee(this.infos,u.declaration);c!=null&&c.needed!=null?this.refuse(u.range,"a closure captured by a host callback (closures lowering)"):this.hostCallbackCandidates.push(new A_(u.declaration,u.range))}}return}case 13:{let s=r.expressions;for(let a=0,l=s.length;a<l;++a)this.walkExpression(s[a],e,t,a==l-1?n:!1);return}case 14:{let s=r;this.walkExpression(s.expression,e,t,!1),this.walkExpression(s.elementExpression,e,t,!1);return}case 17:{this.walkExpression(r.expression,e,t,!1);return}case 19:{let s=r.args;for(let a=0,l=s.length;a<l;++a)this.walkExpression(s[a],e,t,!1);return}case 22:{this.walkExpression(r.expression,e,t,n);return}case 23:{this.walkExpression(r.expression,e,t,!1);return}case 24:{let s=r;this.walkExpression(s.condition,e,t,!1),this.walkExpression(s.ifThen,e,t,n),this.walkExpression(s.ifElse,e,t,n);return}case 9:{this.walkExpression(r.expression,e,t,n);return}case 31:{this.walkExpression(r.operand,e,t,!1);return}case 32:{this.walkExpression(r.expression,e,t,!1);return}default:return}}capture(r,e,t,n){if(this.captures=!0,r.captured=!0,r.hasInitializer||(r.hasInitFlag=!0),r.isLoopHeader&&(r.isLoopHeaderOf==null?this.refuse(e.range,"a captured for-of or for-in binding (closures lowering)"):r.scope.isLoopHeader=!0),r.type==null){let s=null,a=r.declaration;a.kind==65&&(s=a.initializer);let l=ut(s,r.scope.knownTypes(),0);l!=null?(r.type=l,a.kind==65&&(a.type=l)):this.refuse(e.range,"a captured local without a declared type (closures lowering)")}r.type!=null&&(v_(assert(r.type),this.typeParameters)||v_(assert(r.type),this.classTypeParameters))&&mk(r.scope)&&this.refuse(e.range,"a captured local typed by a type parameter in an async body (closures lowering)"),n&&r.isConst&&this.refuse(e.range,"an assignment to a captured constant (closures lowering)"),t.capturesLocal=!0,t.recordCapture(r.scope),t.recordNeed(r.scope),r.scope.captured.includes(r)||r.scope.captured.push(r)}closureValueIn(r,e){if(r.kind==16)return r;if(r.kind==8){let t=r.text,n=e.resolveFunctionValue(t);if(n!=null)return n;let s=e.resolve(t);if(s!=null&&s.closureValue!=null)return s.closureValue}return null}structClosureIn(r,e){if(r.kind==16){let t=r;return this.structFunctions.has(t)?t:null}if(r.kind==8){let t=r.text,n=e.resolveFunctionValue(t);if(n!=null)return this.structFunctions.has(n)?n:null;let s=e.resolve(t);if(s!=null&&s.closureValue!=null)return s.closureValue}return null}markThis(r,e){let t=new Array,n=e;for(;n!=null&&n.isArrow;)n.usesThis=!0,t.push(n),n=n.parent;t.length>0&&n!=null&&this.thisUses.push(new E_(r,t,n))}makeEnvClasses(){let r=new Array;for(let e=0,t=this.scopes.length;e<t;++e){let n=this.scopes[e];n.className!=null&&r.push(this.makeEnvClass(n))}return r}envTypeArgs(r){let e=this.envTypeParameters,t=e.length;if(t==0)return null;let n=new Array(t);for(let s=0;s<t;++s)n[s]=h.createNamedType(h.createSimpleTypeName(e[s],r),null,!1,r);return n}makeEnvClass(r){let e=new Array,t=r.range,n=r.captured;if(r.needsThis){let o=assert(this.ownerThisType);e.push(h.createFieldDeclaration(h.createIdentifierExpression(En,t),null,262144,o,h.createCallExpression(h.createIdentifierExpression("changetype",t),[o],[h.createIntegerLiteralExpression(i64_new(0),t)],t),t))}for(let o=0,u=n.length;o<u;++o){let c=n[o].type,f=null;c!=null&&hk(c)&&(f=h.createCallExpression(h.createIdentifierExpression("changetype",t),[c],[h.createIntegerLiteralExpression(i64_new(0),t)],t)),e.push(h.createFieldDeclaration(h.createIdentifierExpression(n[o].name,t),null,262144,c,f,t))}for(let o=0,u=n.length;o<u;++o)n[o].hasInitFlag&&e.push(h.createFieldDeclaration(h.createIdentifierExpression(fu+n[o].name,t),null,262144,du("bool",t),null,t));let s=cu(r);if(s!=null&&e.push(h.createFieldDeclaration(h.createIdentifierExpression(_a,t),null,262144,h.createNamedType(h.createSimpleTypeName(assert(s.className),t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t)),r.isLoopHeader||s!=null){let o=assert(r.className),u="source",c="parent",f=new Array;r.isLoopHeader&&f.push(h.createParameter(1,h.createIdentifierExpression(u,t),h.createNamedType(h.createSimpleTypeName(o,t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t)),s!=null&&f.push(h.createParameter(1,h.createIdentifierExpression(c,t),h.createNamedType(h.createSimpleTypeName(assert(s.className),t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t));let _=new Array;if(_.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(t),null,[],t))),s!=null){let y;r.isLoopHeader?y=h.createTernaryExpression(h.createBinaryExpression(78,h.createIdentifierExpression(u,t),h.createNullExpression(t),t),this.fieldOn(u,_a,t),h.createIdentifierExpression(c,t),t):y=h.createIdentifierExpression(c,t),_.push(h.createExpressionStatement(this.assign(this.fieldOn("this",_a,t),y,t)))}let d=new Array,g=new Array;r.needsThis&&g.push(En);for(let y=0,E=n.length;y<E;++y)g.push(n[y].name),n[y].hasInitFlag&&g.push(fu+n[y].name);if(r.isLoopHeader)for(let y=0,E=g.length;y<E;++y)d.push(h.createExpressionStatement(this.assign(this.fieldOn("this",g[y],t),this.fieldOn(u,g[y],t),t)));d.length>0&&_.push(h.createIfStatement(h.createBinaryExpression(78,h.createIdentifierExpression(u,t),h.createNullExpression(t),t),h.createBlockStatement(d,t),null,t)),e.push(h.createMethodDeclaration(h.createConstructorExpression(t),null,786432,null,h.createFunctionType(f,du("void",t),null,!1,t),h.createBlockStatement(_,t),t))}let a=null,l=this.envTypeParameters;if(l.length>0){a=new Array(l.length);for(let o=0,u=l.length;o<u;++o)a[o]=h.createTypeParameter(h.createIdentifierExpression(l[o],t),null,null,t)}return h.createClassDeclaration(h.createIdentifierExpression(assert(r.className),t),null,a!=null?65536:0,a,du("TaskEnv",t),null,e,t)}rewrite(){let r=assert(this.infos.get(this.owner));this.rewriteFunctionBody(r)}rewriteFunctionBody(r){let e=r.node.body;if(e==null)return;let t=assert(r.ownsScope),n,s=null;e.kind==34?n=e.statements:(s=e,n=[s]);let a=this.rewriteStatements(n,t,r.node);if(s!=null)if(a.length==1&&a[0].kind==42)r.node.body=a[0];else{let l=new Array,o=null;if(a.length!=0){let u=a.length-1;o=a[u];for(let c=0;c<u;++c)l.push(a[c])}o!=null&&o.kind==42?l.push(h.createReturnStatement(o.expression,o.range)):o!=null&&l.push(o),r.node.body=h.createBlockStatement(l,s.range)}else{let l=e;l.statements.length=0;for(let o=0,u=a.length;o<u;++o)l.statements.push(a[o])}}rewriteStatements(r,e,t,n=null){let s=new Array;if(e.localName!=null){s.push(this.makeEnvAllocation(e)),e.needsThis&&s.push(h.createExpressionStatement(this.assign(this.fieldOn(assert(e.localName),En,e.range),h.createThisExpression(e.range),e.range)));let a=e.captured;for(let l=0,o=a.length;l<o;++l){let u=a[l];u.isParam&&s.push(h.createExpressionStatement(this.assign(this.fieldOf(e,u,e.range),h.createIdentifierExpression(u.name,e.range),e.range)))}}for(let a=0,l=r.length;a<l;++a){let o=this.rewriteStatement(r[a],e,t,n);o!=null&&s.push(o)}return s}makeEnvAllocation(r){let e=assert(r.className),t=new Array;r.isLoopHeader&&t.push(h.createNullExpression(r.range));let n=cu(r);return n!=null&&t.push(n.ownerFunction===r.ownerFunction?h.createIdentifierExpression(assert(n.localName),r.range):h.createIdentifierExpression(pu,r.range)),h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(assert(r.localName),r.range),null,16,h.createNamedType(h.createSimpleTypeName(e,r.range),this.envTypeArgs(r.range),!1,r.range),h.createNewExpression(h.createSimpleTypeName(e,r.range),this.envTypeArgs(r.range),t,r.range),r.range)],r.range)}rewriteStatement(r,e,t,n=null){switch(r.kind){case 34:{let s=r,a=ee(this.scopeOfBlock,s),l=a??e,o=this.rewriteStatements(s.statements,l,t,n);return h.createBlockStatement(o,s.range)}case 51:{let s=r,a=new Array,l=new Array,o=s.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u],_=ee(this.bindingOf,f);if(_!=null&&_.captured){let g=f.initializer;g!=null&&l.push(h.createExpressionStatement(this.assign(this.fieldOf(_.scope,_,f.name.range),this.rewriteExpression(g,e,t),f.range)));continue}let d=f.initializer;d!=null&&(f.initializer=this.rewriteExpression(d,e,t)),a.push(f)}return a.length>0&&l.unshift(h.createVariableStatement(s.decorators,a,s.range)),l.length==0?null:l.length==1?l[0]:h.createBlockStatement(l,s.range)}case 42:{let s=r;return h.createExpressionStatement(this.rewriteExpression(s.expression,e,t))}case 47:{let s=r,a=s.value;return h.createReturnStatement(a!=null?this.rewriteExpression(a,e,t):null,s.range)}case 45:{let s=r;return h.createIfStatement(this.rewriteExpression(s.condition,e,t),assert(this.rewriteStatement(s.ifTrue,e,t,n)),s.ifFalse!=null?this.rewriteStatement(assert(s.ifFalse),e,t,n):null,s.range)}case 53:{let s=r;return h.createWhileStatement(this.rewriteExpression(s.condition,e,t),assert(this.rewriteStatement(s.body,e,t,null)),s.range)}case 37:{let s=r;return h.createDoStatement(assert(this.rewriteStatement(s.body,e,t,null)),this.rewriteExpression(s.condition,e,t),s.range)}case 43:{let s=r,a=ee(this.scopeOfLoop,s),l=a??e;if(!(a!=null&&a.localName!=null&&a.isLoopHeader)){let u=s.initializer;return h.createForStatement(u!=null?this.rewriteStatement(u,l,t):null,s.condition!=null?this.rewriteExpression(assert(s.condition),l,t):null,s.incrementor!=null?this.rewriteExpression(assert(s.incrementor),l,t):null,assert(this.rewriteStatement(s.body,l,t,null)),s.range)}return this.rewriteHeaderLoop(s,assert(a),t)}case 44:{let s=r,a=this.rewriteStatement(s.variable,e,t);return h.createForOfStatement(assert(a),this.rewriteExpression(s.iterable,e,t),assert(this.rewriteStatement(s.body,e,t)),s.range)}case 48:{let s=r,a=new Array,l=s.cases;for(let o=0,u=l.length;o<u;++o){let c=l[o],f=e,_=new Array;for(let d=0,g=c.statements.length;d<g;++d){let y=this.rewriteStatement(c.statements[d],f,t);y!=null&&_.push(y)}a.push(h.createSwitchCase(c.label!=null?this.rewriteExpression(assert(c.label),e,t):null,_,c.range))}return h.createSwitchStatement(this.rewriteExpression(s.condition,e,t),a,s.range)}case 50:{let s=r,a=new Array;for(let f=0,_=s.bodyStatements.length;f<_;++f){let d=this.rewriteStatement(s.bodyStatements[f],e,t);d!=null&&a.push(d)}let l=null,o=s.catchStatements;if(o!=null){l=new Array;for(let f=0,_=o.length;f<_;++f){let d=this.rewriteStatement(o[f],e,t);d!=null&&l.push(d)}}let u=null,c=s.finallyStatements;if(c!=null){u=new Array;for(let f=0,_=c.length;f<_;++f){let d=this.rewriteStatement(c[f],e,t);d!=null&&u.push(d)}}return h.createTryStatement(a,s.catchVariable,l,u,s.range)}case 36:return n==null?r:h.createBlockStatement([n,h.createContinueStatement(r.label,r.range)],r.range);case 49:{let s=r;return h.createThrowStatement(this.rewriteExpression(s.value,e,t),s.range)}default:return r}}rewriteHeaderLoop(r,e,t){let n=new Array;n.push(this.makeEnvAllocation(e)),e.needsThis&&n.push(h.createExpressionStatement(this.assign(this.fieldOn(assert(e.localName),En,r.range),h.createThisExpression(r.range),r.range)));let s=null,a=r.initializer;if(a!=null)if(a.kind==51){let f=a,_=new Array,d=f.declarations;for(let g=0,y=d.length;g<y;++g){let E=d[g],T=ee(this.bindingOf,E);if(T!=null&&T.captured){let k=E.initializer;k!=null&&n.push(h.createExpressionStatement(this.assign(this.fieldOf(e,T,E.name.range),this.rewriteExpression(k,e,t),E.range)))}else{let k=E.initializer;k!=null&&(E.initializer=this.rewriteExpression(k,e,t)),_.push(E)}}_.length>0&&(s=h.createVariableStatement(f.decorators,_,f.range))}else s=this.rewriteStatement(a,e,t,null);let l=this.rewriteStatement(r.body,e,t,this.makeCloneStatement(e)),o=assert(l),u=o.kind==34?o.statements:[o];u.push(this.makeCloneStatement(e));let c=h.createForStatement(s,r.condition!=null?this.rewriteExpression(assert(r.condition),e,t):null,r.incrementor!=null?this.rewriteExpression(assert(r.incrementor),e,t):null,h.createBlockStatement(u,r.body.range),r.range);return n.push(c),h.createBlockStatement(n,r.range)}makeCloneStatement(r){let e=assert(r.localName),t=assert(r.className);return h.createExpressionStatement(this.assign(h.createIdentifierExpression(e,r.range),h.createNewExpression(h.createSimpleTypeName(t,r.range),this.envTypeArgs(r.range),[h.createIdentifierExpression(e,r.range)],r.range),r.range))}rewriteExpression(r,e,t){switch(r.kind){case 26:{let n=ee(this.thisRefs,r);return n==null?r:this.fieldFrom(this.envExprForScope(n,t,r.range),En,r.range)}case 8:{let n=r,s=ee(this.refs,n);if(s==null)return r;let a=this.fieldOfFor(s,t,n.range);return s.hasInitFlag?h.createCommaExpression([this.guard(s,a,t,n.range),a],n.range):a}case 10:{let n=r;if(Bx(n.operator)&&n.left.kind==8){let s=n.left,a=ee(this.refs,s);if(a!=null){let l=this.fieldOfFor(a,t,n.left.range),o=this.rewriteExpression(n.right,e,t);if(n.operator==102)return a.hasInitFlag?h.createCommaExpression([this.assign(this.flagField(a,t,n.range),h.createTrueExpression(n.range),n.range),this.assign(l,o,n.range)],n.range):this.assign(l,o,n.range);let u=new Array;return a.hasInitFlag&&(u.push(this.guard(a,l,t,n.range)),u.push(this.assign(this.flagField(a,t,n.range),h.createTrueExpression(n.range),n.range))),u.push(h.createBinaryExpression(n.operator,l,o,n.range)),u.length==1?u[0]:h.createCommaExpression(u,n.range)}}return h.createBinaryExpression(n.operator,this.rewriteExpression(n.left,e,t),this.rewriteExpression(n.right,e,t),n.range)}case 30:{let n=r,s=n.operand.kind==8?ee(this.refs,n.operand):null;if(s!=null){let a=this.fieldOfFor(s,t,n.range),l=new Array;return s.hasInitFlag&&(l.push(this.guard(s,a,t,n.range)),l.push(this.assign(this.flagField(s,t,n.range),h.createTrueExpression(n.range),n.range))),l.push(h.createUnaryPrefixExpression(n.operator,a,n.range)),l.length==1?l[0]:h.createCommaExpression(l,n.range)}return h.createUnaryPrefixExpression(n.operator,this.rewriteExpression(n.operand,e,t),n.range)}case 29:{let n=r,s=n.operand.kind==8?ee(this.refs,n.operand):null;if(s!=null){let a=this.fieldOfFor(s,t,n.range),l=new Array;return s.hasInitFlag&&(l.push(this.guard(s,a,t,n.range)),l.push(this.assign(this.flagField(s,t,n.range),h.createTrueExpression(n.range),n.range))),l.push(h.createUnaryPostfixExpression(n.operator,a,n.range)),l.length==1?l[0]:h.createCommaExpression(l,n.range)}return h.createUnaryPostfixExpression(n.operator,this.rewriteExpression(n.operand,e,t),n.range)}case 11:{let n=r,s=new Array;for(let a=0,l=n.args.length;a<l;++a)s.push(this.rewriteExpression(n.args[a],e,t));return h.createCallExpression(this.rewriteExpression(n.expression,e,t),n.typeArguments,s,n.range)}case 16:{let n=r,s=ee(this.infos,n.declaration);if(s!=null){this.rewriteFunctionBody(s);let a=s.needed;if(a!=null){let l=assert(a.className),o=s.bodyParent!=null?assert(s.bodyParent).className:null;Vi().set(n,new ts(2,l,s.ownEnv,!0,o,a.needsThis));let u=a.ownerFunction===t?a:null;Or().set(n,u!=null?assert(u.localName):pu)}}return r}case 18:{let n=r;switch(n.literalKind){case 3:{let s=n.expressions;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}case 5:{let s=n.elementExpressions;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}case 6:{let s=n.values;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}default:break}return n}case 13:{let n=r,s=new Array;for(let a=0,l=n.expressions.length;a<l;++a)s.push(this.rewriteExpression(n.expressions[a],e,t));return h.createCommaExpression(s,n.range)}case 14:{let n=r;return h.createElementAccessExpression(this.rewriteExpression(n.expression,e,t),this.rewriteExpression(n.elementExpression,e,t),n.range)}case 17:{let n=r;return h.createInstanceOfExpression(this.rewriteExpression(n.expression,e,t),n.isType,n.range)}case 19:{let n=r,s=new Array;for(let a=0,l=n.args.length;a<l;++a)s.push(this.rewriteExpression(n.args[a],e,t));return h.createNewExpression(n.typeName,n.typeArguments,s,n.range)}case 22:{let n=r;return h.createParenthesizedExpression(this.rewriteExpression(n.expression,e,t),n.range)}case 23:{let n=r;return h.createPropertyAccessExpression(this.rewriteExpression(n.expression,e,t),n.property,n.range)}case 24:{let n=r;return h.createTernaryExpression(this.rewriteExpression(n.condition,e,t),this.rewriteExpression(n.ifThen,e,t),this.rewriteExpression(n.ifElse,e,t),n.range)}case 9:{let n=r;return n.expression=this.rewriteExpression(n.expression,e,t),n}case 31:{let n=r;return n.operand=this.rewriteExpression(n.operand,e,t),n}case 32:{let n=r;return n.expression=this.rewriteExpression(n.expression,e,t),n}default:return r}}fieldOfFor(r,e,t){return this.fieldFrom(this.envExprFor(r,e,t),r.name,t)}envExprFor(r,e,t){return this.envExprForScope(r.scope,e,t)}envExprForScope(r,e,t){if(r.ownerFunction===e)return h.createIdentifierExpression(assert(r.localName),t);let n=assert(this.infos.get(e)),s=assert(n.needed),a=h.createIdentifierExpression(pu,t),l=s;for(;l!==r;)a=h.createAssertionExpression(2,this.fieldFrom(a,_a,t),null,t),l=assert(cu(l));return a}fieldFrom(r,e,t){return h.createPropertyAccessExpression(r,h.createIdentifierExpression(e,t),t)}fieldOf(r,e,t){return this.fieldOn(assert(r.localName),e.name,t)}fieldOn(r,e,t){return h.createPropertyAccessExpression(h.createIdentifierExpression(r,t),h.createIdentifierExpression(e,t),t)}flagField(r,e,t){return this.fieldFrom(this.envExprFor(r,e,t),fu+r.name,t)}guard(r,e,t,n){return h.createCallExpression(h.createIdentifierExpression(ck,n),[assert(r.type)],[e,this.flagField(r,t,n),h.createStringLiteralExpression(r.name,n)],n)}assign(r,e,t){return h.createBinaryExpression(102,r,e,t)}};function du(i,r){return h.createNamedType(h.createSimpleTypeName(i,r),null,!1,r)}function dk(i){let r=i.expression;return(r.kind==8?r.text:r.kind==23?r.property.text:"")=="makeCallbacks"}function Bx(i){switch(i){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:return!0;default:return!1}}function hk(i){if(i.kind!=1)return!0;let r=i,e=r.typeArguments;if(e!=null&&e.length>0)return!0;let t=r.name.identifier.text;return!(t=="i8"||t=="i16"||t=="i32"||t=="i64"||t=="u8"||t=="u16"||t=="u32"||t=="u64"||t=="isize"||t=="usize"||t=="bool"||t=="f32"||t=="f64"||t=="v128")}function mk(i){let r=i;for(;r!=null;){if(r.ownerFunction.isAsync)return!0;r=r.parent}return!1}function v_(i,r){if(r.size==0)return!1;if(i.kind==1){let e=i;if(r.has(e.name.identifier.text))return!0;let t=e.typeArguments;if(t!=null){for(let n=0,s=t.length;n<s;++n)if(v_(t[n],r))return!0}}return!1}var yk="$lazyDone",gk="$lazyTask",bk="spawn",k_=class{constructor(r,e,t,n,s){this.name=r;this.doneName=e;this.awaitOperand=t;this.declaration=n;this.range=s;this.taskName=null;this.taskCall=null}},yu=class{afterParse(r){this.parser=r;let e=this.program.sources;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.isLibrary||this.walkFunctions(s.statements)}}walkFunctions(r){for(let e=0,t=r.length;e<t;++e){let n=r[e];switch(n.kind){case 59:{this.rewriteBodyStatement(n.body);break}case 55:{let s=n.members;if(s!=null)for(let a=0,l=s.length;a<l;++a){let o=s[a];(o.kind==62||o.kind==59)&&this.rewriteBodyStatement(o.body)}break}case 63:{this.walkFunctions(n.members);break}case 40:{let s=n.declaration;s!=null&&this.walkFunctions([s]);break}default:break}}}rewriteBodyStatement(r){r==null||r.kind!=34||this.rewriteBody(r)}rewriteBody(r){if(r==null)return;let e=r.statements;r.statements=this.rewriteList(e,new Map),this.walkFunctions(r.statements),this.rewriteNestedFunctionExpressions(r.statements)}rewriteList(r,e){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind==42){let o=a,u=o.expression;if(I_(u)){this.parser.warning(6401,u.range);let c=mu(u);c!=null&&(o.expression=c)}}else if(a.kind==51){let o=a.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u].initializer;if(f!=null&&I_(f)){let _=mu(f);_!=null&&(o[u].initializer=_)}}}if(a.kind==51){let o=this.rewriteDeclaration(a,e);if(o!=null){for(let u=0,c=o.length;u<c;++u)t.push(o[u]);continue}}this.recurseInto(a,e);let l=this.collectOwnReads(a,e,new Array);for(let o=0,u=l.length;o<u;++o)t.push(this.makeGuard(assert(ee(e,l[o])),a.range));t.push(a)}return t}rewriteDeclaration(r,e){let t=r.declarations,n=null,s=null;for(let o=0,u=t.length;o<u;++o){let c=t[o],f=c.initializer;if(f==null||f.kind!=32)continue;let _=f;if(_.expression.kind!=31)continue;if(t.length!=1)return this.parser.error(100,c.range,"a '@lazy await' binding in a multi-declarator statement"),this.degrade(c,_),null;let d=c.type;if(d==null)return this.parser.error(6399,c.name.range,c.name.text),this.degrade(c,_),null;let g=c.name.text;if(ee(e,g)!=null)return this.parser.error(100,c.name.range,"a redeclared '@lazy await' binding in one block"),null;let y=g+yk,E=_.expression.operand,T=null;if(I_(E)){if(mu(E)==null)return this.parser.error(100,E.range,"a 'spawn' whose argument is not a call or a function name"),this.degrade(c,_),null;T=g+gk,E=h.createIdentifierExpression(T,E.range)}s=new k_(g,y,E,c,c.range),s.taskName=T,T!=null&&(s.taskCall=mu(_.expression.operand)),n=h.createVariableDeclaration(c.name,c.decorators,c.flags,d,null,c.range);break}if(s==null||n==null)return null;e.set(s.name,s);let a=new Array,l=s.taskName;if(l!=null){let o=h.createNamedType(h.createSimpleTypeName("Task",s.range),[assert(s.declaration.type)],!1,s.range);a.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(l,s.range),null,16,o,s.taskCall,s.range)],s.range))}return a.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(s.doneName,s.range),null,16,null,h.createFalseExpression(s.range),s.range)],s.range)),a.push(h.createVariableStatement(null,[n],r.range)),a}degrade(r,e){let t=e.expression;r.initializer=t.kind==31?t.operand:t}makeGuard(r,e){let t=h.createIdentifierExpression(r.doneName,e);return h.createIfStatement(h.createUnaryPrefixExpression(96,t,e),h.createBlockStatement([h.createExpressionStatement(h.createBinaryExpression(102,h.createIdentifierExpression(r.name,e),h.createAwaitExpression(r.awaitOperand,e),e)),h.createExpressionStatement(h.createBinaryExpression(102,h.createIdentifierExpression(r.doneName,e),h.createTrueExpression(e),e))],e),null,e)}recurseInto(r,e){switch(r.kind){case 34:{let t=r;t.statements=this.rewriteList(t.statements,e);break}case 45:{let t=r;t.ifTrue=this.rewriteSingleBody(t.ifTrue,e),t.ifFalse!=null&&(t.ifFalse=this.rewriteSingleBody(assert(t.ifFalse),e));break}case 53:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 37:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 43:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 44:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 48:{let n=r.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s];l.statements=this.rewriteList(l.statements,e)}break}case 50:{let t=r;t.bodyStatements=this.rewriteList(t.bodyStatements,e);let n=t.catchStatements;n!=null&&(t.catchStatements=this.rewriteList(n,e));let s=t.finallyStatements;s!=null&&(t.finallyStatements=this.rewriteList(s,e));break}default:break}}rewriteSingleBody(r,e){if(r.kind==34)return this.recurseInto(r,e),r;let t=this.rewriteList([r],e);return t.length==1?t[0]:h.createBlockStatement(t,r.range)}collectOwnReads(r,e,t){switch(r.kind){case 42:{this.collectReads(r.expression,e,t);break}case 51:{let n=r.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s].initializer;l!=null&&this.collectReads(l,e,t)}break}case 47:{let n=r.value;n!=null&&this.collectReads(n,e,t);break}case 45:{this.collectReads(r.condition,e,t);break}case 53:{this.collectReads(r.condition,e,t);break}case 37:{this.collectReads(r.condition,e,t);break}case 43:{let n=r,s=n.initializer;s!=null&&s.kind!=51&&this.collectOwnReads(s,e,t);let a=n.condition;a!=null&&this.collectReads(a,e,t);let l=n.incrementor;l!=null&&this.collectReads(l,e,t);break}case 48:{this.collectReads(r.condition,e,t);break}case 49:{this.collectReads(r.value,e,t);break}case 52:{this.collectReads(r.expression,e,t);break}default:break}return t}collectReads(r,e,t){switch(r.kind){case 8:{let n=r.text;ee(e,n)!=null&&!t.includes(n)&&t.push(n);break}case 11:{let n=r;this.collectReads(n.expression,e,t);let s=n.args;for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 10:{let n=r;this.collectReads(n.left,e,t),this.collectReads(n.right,e,t);break}case 30:{this.collectReads(r.operand,e,t);break}case 29:{this.collectReads(r.operand,e,t);break}case 13:{let s=r.expressions;for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 24:{let n=r;this.collectReads(n.condition,e,t),this.collectReads(n.ifThen,e,t),this.collectReads(n.ifElse,e,t);break}case 23:{this.collectReads(r.expression,e,t);break}case 14:{let n=r;this.collectReads(n.expression,e,t),this.collectReads(n.elementExpression,e,t);break}case 9:{this.collectReads(r.expression,e,t);break}case 22:{this.collectReads(r.expression,e,t);break}case 31:{this.collectReads(r.operand,e,t);break}case 32:{this.collectReads(r.expression,e,t);break}case 19:{let s=r.args;if(s!=null)for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 17:{this.collectReads(r.expression,e,t);break}case 16:{let n=new Array;this.collectReadsInFunctionBody(r,e,n);for(let s=0,a=n.length;s<a;++s)this.parser.error(6400,r.range,n[s]);break}default:break}}collectReadsInFunctionBody(r,e,t){let n=r.declaration.body;if(n==null||n.kind!=34)return;let s=n.statements;for(let a=0,l=s.length;a<l;++a)this.collectOwnReads(s[a],e,t),this.recurseCollect(s[a],e,t)}recurseCollect(r,e,t){switch(r.kind){case 34:{let n=r.statements;for(let s=0,a=n.length;s<a;++s)this.collectOwnReads(n[s],e,t),this.recurseCollect(n[s],e,t);break}case 45:{let n=r;this.recurseCollect(n.ifTrue,e,t),n.ifFalse!=null&&this.recurseCollect(assert(n.ifFalse),e,t);break}case 53:{this.recurseCollect(r.body,e,t);break}case 37:{this.recurseCollect(r.body,e,t);break}case 43:{this.recurseCollect(r.body,e,t);break}case 44:{this.recurseCollect(r.body,e,t);break}case 48:{let n=r.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s].statements;for(let o=0,u=l.length;o<u;++o)this.recurseCollect(l[o],e,t)}break}default:break}}rewriteNestedFunctionExpressions(r){for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;if(o!=null&&o.kind==16){let u=o.declaration.body;u!=null&&u.kind==34&&this.rewriteBody(u)}}}}}};function I_(i){if(i.kind!=11)return!1;let r=i.expression;return r.kind==8&&r.text==bk}function mu(i){let r=i.args;if(r.length!=1)return null;let e=r[0];return e.kind==11?e:e.kind==8?h.createCallExpression(e,null,[],i.range):null}var ba="async arrow functions (async lowering)",xa="async function expressions (async lowering)",Nx="an async function nested in a non-async body (async lowering)",xk="an async export default function (async lowering)";function Lx(i,r,e){Ai(i.statements,r,e)}function Ai(i,r,e){for(let t=0,n=i.length;t<n;++t)ct(i[t],r,e)}function ct(i,r,e){switch(i.kind){case 59:case 62:{Mx(i,r,e);return}case 55:{zx(i,r,e);return}case 63:{Ai(i.members,r,e);return}case 34:{Ai(i.statements,r,e);return}case 37:{let t=i;ct(t.body,r,e),se(t.condition,r,e);return}case 42:{let t=i.expression;if(t.kind==16){let n=t.declaration;if(n.isAsync&&n.arrowKind==0){gu(r,t,Nx,e);return}}se(t,r,e);return}case 43:{let t=i,n=t.initializer;n!=null&&ct(n,r,e);let s=t.condition;s!=null&&se(s,r,e);let a=t.incrementor;a!=null&&se(a,r,e),ct(t.body,r,e);return}case 44:{let t=i;ct(t.variable,r,e),se(t.iterable,r,e),ct(t.body,r,e);return}case 45:{let t=i;se(t.condition,r,e),ct(t.ifTrue,r,e);let n=t.ifFalse;n!=null&&ct(n,r,e);return}case 47:{let t=i.value;t!=null&&se(t,r,e);return}case 48:{let t=i;se(t.condition,r,e);let n=t.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s].label;l!=null&&se(l,r,e),Ai(n[s].statements,r,e)}return}case 49:{se(i.value,r,e);return}case 50:{let t=i;Ai(t.bodyStatements,r,e);let n=t.catchStatements;n!=null&&Ai(n,r,e);let s=t.finallyStatements;s!=null&&Ai(s,r,e);return}case 51:{let t=i.declarations;for(let n=0,s=t.length;n<s;++n){let a=t[n];An(a.decorators,r,e);let l=a.initializer;l!=null&&se(l,r,e)}return}case 52:{se(i.expression,r,e);return}case 53:{let t=i;se(t.condition,r,e),ct(t.body,r,e);return}case 56:{let t=i.values;for(let n=0,s=t.length;n<s;++n)ct(t[n],r,e);return}case 57:{let t=i.initializer;t!=null&&se(t,r,e);return}case 58:{let t=i;An(t.decorators,r,e);let n=t.initializer;n!=null&&se(n,r,e);return}case 40:{let t=i.declaration;if(t.kind==59&&t.isAsync){gu(r,t,xk,e);return}ct(t,r,e);return}default:return}}function Mx(i,r,e){if(i.isAsync){gu(r,i,Nx,e);return}An(i.decorators,r,e);let t=i.signature.parameters;for(let s=0,a=t.length;s<a;++s){let l=t[s].initializer;l!=null&&se(l,r,e)}let n=i.body;n!=null&&ct(n,r,e)}function zx(i,r,e){An(i.decorators,r,e);let t=i.members;for(let n=0,s=t.length;n<s;++n){let a=t[n];switch(a.kind){case 59:case 62:{Mx(a,r,e);break}case 58:{let l=a;An(l.decorators,r,e);let o=l.initializer;o!=null&&se(o,r,e);break}default:break}}}function An(i,r,e){if(i!=null)for(let t=0,n=i.length;t<n;++t){let s=i[t];se(s.name,r,e);let a=s.args;if(a!=null)for(let l=0,o=a.length;l<o;++l)se(a[l],r,e)}}function se(i,r,e){switch(i.kind){case 16:{let t=i,n=t.declaration;if(n.isAsync){gu(r,t,n.arrowKind!=0?ba:xa,e);return}An(n.decorators,r,e);let s=n.signature.parameters;for(let l=0,o=s.length;l<o;++l){let u=s[l].initializer;u!=null&&se(u,r,e)}let a=n.body;a!=null&&ct(a,r,e);return}case 12:{zx(i.declaration,r,e);return}case 9:{se(i.expression,r,e);return}case 31:{se(i.operand,r,e);return}case 10:{let t=i;se(t.left,r,e),se(t.right,r,e);return}case 11:{let t=i;se(t.expression,r,e);let n=t.args;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}case 13:{let t=i.expressions;for(let n=0,s=t.length;n<s;++n)se(t[n],r,e);return}case 14:{let t=i;se(t.expression,r,e),se(t.elementExpression,r,e);return}case 17:{se(i.expression,r,e);return}case 19:{let t=i.args;for(let n=0,s=t.length;n<s;++n)se(t[n],r,e);return}case 22:{se(i.expression,r,e);return}case 23:{se(i.expression,r,e);return}case 24:{let t=i;se(t.condition,r,e),se(t.ifThen,r,e),se(t.ifElse,r,e);return}case 29:{se(i.operand,r,e);return}case 30:{se(i.operand,r,e);return}case 18:{let t=i;switch(t.literalKind){case 3:{let n=t.expressions;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}case 5:{let n=t.elementExpressions;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}case 6:{let n=t.values;for(let s=0,a=n.length;s<a;++s)se(n[s],r,e);return}default:return}}default:return}}function gu(i,r,e,t){t!=null&&t.has(r.range.start)||i.error(100,r.range,e)}var Ek="$State",Ak="$resume",Dx="TaskState",Gx="TaskEnv",Tk="__taskPark",Sk="__taskSettled",vk="__taskRegister",Ik="__asyncZero",Hx="__taskComplete",kk="__taskCompleteResult",Ux="_record",jx="$awaited",Fk="__taskRegistered",Iu="resumePoint",Au="handle",wk="resume",vi="$env",Sn="$closureEnv",bu="$closureEnvIn",ka="$this",F_="$parent",Vx="$cond",Fa=class{constructor(){this.refusals=null;this.currentConstruct=null}afterParse(r){let e=this.program.sources;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(this.program.stdSources.has(s))continue;this.lowerStatementList(s,s.statements,r);let a=this.refusals,l=a!=null?ee(a,s):null;Lx(s,r,l??null)}}lowerStatementList(r,e,t){if(!Bk(e))return;let n=new Array;for(let a=0,l=e.length;a<l;++a){let o=Nk(e[a]);o!=null&&n.push(o)}let s=new Array;for(let a=0,l=e.length;a<l;++a){let o=e[a];switch(o.kind){case 59:{let u=o;if(u.isAsync){let c=new Array,f=this.lowerAsyncFunction(r,u,n,t,c);if(f){for(let _=0,d=f.length;_<d;++_)s.push(f[_]);for(let _=0,d=c.length;_<d;++_)s.push(c[_])}else s.push(o)}else s.push(o);break}case 63:{let u=o;this.lowerStatementList(r,u.members,t),s.push(o);break}case 55:{let u=o,c=this.lowerAsyncMethods(r,u,n,t);for(let f=0,_=c.length;f<_;++f)s.push(c[f]);s.push(o);break}case 51:{let u=o.declarations;for(let c=0,f=u.length;c<f;++c){let _=u[c].initializer;_&&this.refuseAsyncFunctionExpression(_,t)}s.push(o);break}default:{s.push(o);break}}}e.length=0;for(let a=0,l=s.length;a<l;++a)e.push(s[a])}lowerAsyncFunction(r,e,t,n,s,a=null,l=null){let o=this.currentConstruct;this.currentConstruct=e;let u=this.lowerAsyncFunctionInner(r,e,t,n,s,a,l);return this.currentConstruct=o,u==null&&this.recordRefusal(e),u}lowerAsyncFunctionInner(r,e,t,n,s,a,l){let o=e.signature,u=e.name.text,c=e.range;if(e.arrowKind!=0)return this.refuse(n,e.range,ba),null;if(e.typeParameters!=null)return this.refuse(n,e.range,"async generic functions (async lowering)"),null;a==null&&o.explicitThisType!=null&&(a=o.explicitThisType);let f=null;l!=null&&(f=ee(Vi(),l));let _=f??null,d=_!=null&&_.kind==2?_.envClass:null,g=ee(nl,e),y=g??null,E=y!=null&&y.ownEnv?y.envClass:null,T=E!=null&&y!=null&&assert(y).hasThis,k=y!=null?y.parentClass:null,F=E!=null&&T,w=!F&&a!=null,R=!F&&!w&&d!=null,C=o.parameters;for(let $=0,le=C.length;$<le;++$){let te=C[$];if(te.parameterKind!=0)return this.refuse(n,te.range,"optional or rest parameters in an async function (async lowering)"),null;if(Wx(te.name.text))return this.refuse(n,te.name.range,"a parameter whose name is reserved by the state struct (async lowering)"),null}let M=o.returnType;if(M==null||qk(M))return this.refuse(n,e.name.range,"an async function without a declared return type (async lowering)"),null;let W=e.body;if(!W||W.kind!=34)return this.refuse(n,e.range,"an async function without a block body (async lowering)"),null;let G=W,j=w?u+"$ThisEnv":"",z=null;if(w){let $=assert(a),le=h.createFieldDeclaration(h.createIdentifierExpression(ka,c),null,262144,$,h.createCallExpression(h.createIdentifierExpression("changetype",c),[$],[St(0,c)],c),c),te="source",wn=new Array;wn.push(h.createParameter(0,h.createIdentifierExpression(te,c),$,null,c));let Fi=new Array;Fi.push(le);let wi=new Array;if(wi.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(c),null,[],c))),wi.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(h.createThisExpression(c),h.createIdentifierExpression(ka,c),c),h.createIdentifierExpression(te,c),c))),d!=null){let Ra="parent";wn.push(h.createParameter(0,h.createIdentifierExpression(Ra,c),ve(d,c),null,c)),Fi.push(h.createFieldDeclaration(h.createIdentifierExpression(F_,c),null,262144,h.createNamedType(h.createSimpleTypeName(d,c),null,!0,c),h.createNullExpression(c),c)),wi.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(h.createThisExpression(c),h.createIdentifierExpression(F_,c),c),h.createIdentifierExpression(Ra,c),c)))}let Pu=h.createMethodDeclaration(h.createConstructorExpression(c),null,786432,null,h.createFunctionType(wn,ve("void",c),null,!1,c),h.createBlockStatement(wi,c),c);Fi.push(Pu),z=h.createClassDeclaration(h.createIdentifierExpression(j,c),null,0,null,ve(Gx,c),null,Fi,c)}if(F&&Gk(G),F||w){let $=F?assert(E):j;L_(G.statements,$,Dk(G,C))}let U=new G_;Ti(G,U.declaredTypes);let Q=new ku,Y=this.planSeq(n,G.statements,Q,!1,r,s,t,U);if(!Y)return null;let O=Q.next-1;if(O!=0&&this.liftCreationEnvs(G,U),this.collectLifting(n,Y,U),O!=0){let $=new Set;Sa(Y,$);for(let le=0,te=C.length;le<te;++le)$.has(C[le].name.text)&&U.liftParameter(C[le].name.text,C[le].name.range)}let ie=u+Ek,H=u+Ak;for(let $=0,le=t.length;$<le;++$){let te=t[$];if(te==ie||te==H)return this.refuse(n,e.name.range,"an async function whose synthesized name is taken (async lowering)"),null}let ge=new Set;Mr(G,ge);let oe=N_(C,G),pe=h.createIdentifierExpression(oe,c),It=h.createThisExpression(c),Fe=new Array;for(let $=0,le=C.length;$<le;++$){let te=C[$];Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(te.name.text,te.name.range),null,262144,te.type,null,te.name.range))}Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(vi,c),null,262144,h.createNamedType(h.createSimpleTypeName(Gx,c),null,!0,c),h.createNullExpression(c),c));for(let $=0,le=U.locals.length;$<le;++$){let te=U.locals[$];Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(te.name,te.declaration.name.range),null,262144,te.type,null,te.declaration.name.range))}Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Iu,c),null,262144,ve("i32",c),null,c));let vn=!Wk(M),Ot=new Array;Ta(Y,Ot);for(let $=0,le=Ot.length;$<le;++$)Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Ot[$],c),null,278528,ve("TaskRecord",c),null,c));let zr=Kk(M,c);Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Au,c),null,278528,zr,null,c));let Ii=new Array,je=new Array;je.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(c),null,[],c)));for(let $=0,le=C.length;$<le;++$){let te=C[$];Ii.push(h.createParameter(0,h.createIdentifierExpression(te.name.text,te.name.range),te.type,null,te.range)),je.push(h.createExpressionStatement(Nr(It,te.name.text,h.createIdentifierExpression(te.name.text,te.range),te.range)))}je.push(h.createExpressionStatement(Nr(It,Iu,St(0,c),c)));for(let $=0,le=U.locals.length;$<le;++$){let te=U.locals[$];je.push(h.createExpressionStatement(Nr(It,te.name,h.createCallExpression(h.createIdentifierExpression(Ik,te.declaration.name.range),[te.type],[],te.declaration.name.range),te.declaration.name.range)))}Fe.push(h.createMethodDeclaration(h.createConstructorExpression(c),null,786432,null,h.createFunctionType(Ii,ve("void",c),null,!1,c),h.createBlockStatement(je,c),c));let ki=h.createClassDeclaration(h.createIdentifierExpression(ie,e.name.range),null,0,null,ve(Dx,c),null,Fe,c),dt=h.createIdentifierExpression(H,c),pr=new Array;for(let $=0,le=C.length;$<le;++$)pr.push(h.createIdentifierExpression(C[$].name.text,C[$].range));let In=h.createPropertyAccessExpression(pe,h.createIdentifierExpression(Au,c),c),Oe=new Array;if(Oe.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(oe,c),null,8,ve(ie,c),h.createNewExpression(h.createSimpleTypeName(ie,c),null,pr,c),c)],c)),F){let $=assert(E),le=new Array;k!=null&&(le.push(h.createNullExpression(c)),le.push(h.createIdentifierExpression(bu,c))),Oe.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(Sn,c),null,16,ve($,c),h.createNewExpression(h.createSimpleTypeName($,c),null,le,c),c)],c)),T&&Oe.push(h.createExpressionStatement(Nr(h.createIdentifierExpression(Sn,c),ka,h.createThisExpression(c),c))),Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createIdentifierExpression(Sn,c),c)))}else if(w){let $=new Array;$.push(h.createThisExpression(c)),d!=null&&$.push(h.createIdentifierExpression(bu,c)),Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createNewExpression(h.createSimpleTypeName(j,c),null,$,c),c)))}else R&&Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createIdentifierExpression(bu,c),c)));Oe.push(h.createExpressionStatement(Nr(pe,Au,h.createNewExpression(h.createSimpleTypeName("Task",c),[M],[],c),c))),Oe.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(In,h.createIdentifierExpression(Ux,c),c),h.createCallExpression(h.createIdentifierExpression(vk,c),null,[pe],c),c))),Oe.push(h.createIfStatement(h.createUnaryPrefixExpression(96,h.createCallExpression(h.createIdentifierExpression(Fk,c),null,[pe],c),c),h.createBlockStatement([h.createReturnStatement(In,c)],c),null,c)),Oe.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(pe,h.createIdentifierExpression(wk,c),c),h.createCallExpression(h.createIdentifierExpression("changetype",c),[h.createFunctionType([h.createParameter(0,h.createIdentifierExpression("state",c),ve(Dx,c),null,c)],ve("void",c),null,!1,c)],[dt],c),c))),Oe.push(h.createExpressionStatement(h.createCallExpression(dt,null,[pe],c))),Oe.push(h.createReturnStatement(In,c)),e.body=h.createBlockStatement(Oe,c),e.signature.returnType=zr,e.isAsync=!1;let ht=N_(C,G),kn=new Array;va(Y,kn);for(let $=0,le=kn.length;$<le;++$){let te=kn[$];nu().set(te.node,new iu(te.discriminator,Vk(ht,te.fieldName,te.node.range)))}let qt=new Array,Fn=h.createPropertyAccessExpression(h.createIdentifierExpression(ht,c),h.createIdentifierExpression(vi,c),c),Fu=F?assert(E):j,wu=h.createCallExpression(h.createIdentifierExpression("changetype",c),[ve(Fu,c)],[Fn],c),Ru=R?Fn:h.createAssertionExpression(2,h.createPropertyAccessExpression(wu,h.createIdentifierExpression(F_,c),c),null,c);if(d!=null){let $=ve(d,c);qt.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(bu,c),null,8,$,h.createCallExpression(h.createIdentifierExpression("changetype",c),[$],[Ru],c),c)],c))}if(F){let $=assert(E);qt.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(Sn,c),null,8,ve($,c),h.createCallExpression(h.createIdentifierExpression("changetype",c),[ve($,c)],[Fn],c),c)],c))}for(let $=0,le=C.length;$<le;++$){let te=C[$];qt.push(qx(te.name.text,te.name.range,ht))}for(let $=0,le=U.locals.length;$<le;++$){let te=U.locals[$];qt.push(qx(te.name,te.declaration.name.range,ht))}let Cu=new B_(U,ht,O+1,vn,ge,M,O!=0);if(Tn(qt,this.emitSeq(Y,Cu)),!Pk(Y)){let $=new Array;$.push(h.createExpressionStatement(vu(ht,St(O+1,c),c))),$.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Hx,c),null,[h.createIdentifierExpression(ht,c)],c))),qt.push(h.createIfStatement(ur(He(ht,c),c),h.createBlockStatement($,c),null,c))}let wa=h.createFunctionDeclaration(h.createIdentifierExpression(H,e.name.range),null,0,null,h.createFunctionType([h.createParameter(0,h.createIdentifierExpression(ht,c),ve(ie,c),null,c)],ve("void",c),null,!1,c),h.createBlockStatement(qt,c),0,c);return z!=null?[z,ki,e,wa]:[ki,e,wa]}liftCreationEnvs(r,e){let t=new Set;Lr(r.statements,t),t.size!=0&&Tu(r.statements,t,e)}planSeq(r,e,t,n,s,a,l,o){let u=new C_;for(let c=0,f=e.length;c<f;++c){let _=this.planStatement(r,e[c],t,n,s,a,l,o);if(!_)return null;u.add(_)}return u}planStatement(r,e,t,n,s,a,l,o){let u=new R_(e);switch(e.kind){case 38:return u;case 42:{let c=e.expression;if(c.kind==16){let f=c.declaration;if(f.isAsync){let _=this.lowerAsyncFunction(s,f,l,r,a,null,c);if(!_)return null;for(let d=0,g=_.length;d<g;++d)_[d]!==e&&a.push(_[d])}return u.kind=0,u.nestedFunction=!0,u}return this.planLeaf(r,u,t,o)}case 51:case 47:return this.planLeaf(r,u,t,o);case 34:{let c=e,f=this.planSeq(r,c.statements,t,n,s,a,l,o);return f?(u.kind=1,u.statements=f,u.lo=f.lo,u.hi=f.hi,f.lo!=0&&this.liftDeclaredIn(r,f,o),u.all=Aa(f),u):null}case 45:{let c=e;if(!this.walkExpression(r,c.condition,u.all,null,!1))return null;let f=this.planBranch(r,c.ifTrue,t,n,s,a,l,o);if(!f)return null;let _=null;return c.ifFalse!=null&&(_=this.planBranch(r,assert(c.ifFalse),t,n,s,a,l,o),!_)?null:(u.kind=2,u.cond=c.condition,u.thenSeq=f,u.elseSeq=_,u.lo=Rk(f,_),u.hi=Ck(f,_),u.lo!=0&&(this.liftDeclaredIn(r,f,o),_!=null&&this.liftDeclaredIn(r,assert(_),o)),u.all=Ea(u.all,Ea(Aa(f),_?Aa(_):new vt)),u)}case 53:{let c=e;if(!this.walkExpression(r,c.condition,u.all,null,!1))return null;let f=this.planBranch(r,c.body,t,n,s,a,l,o);return f?(u.kind=3,u.cond=c.condition,u.body=f,u.lo=f.lo,u.hi=f.hi,f.lo!=0&&this.liftDeclaredIn(r,f,o),u.all=Ea(u.all,Aa(f)),u):null}case 43:{let c=e,f=this.planBranch(r,c.body,t,n,s,a,l,o);if(!f)return null;f.lo!=0&&this.liftDeclaredIn(r,f,o);let _=c.initializer;if(f.lo!=0&&_!=null&&_.kind==51){let y=_.declarations;for(let E=0,T=y.length;E<T;++E)if(!this.liftDeclarator(r,y[E],o))return null}if(_!=null){let y=this.planStatement(r,_,new ku,!1,s,a,l,o);if(!y)return null;if(y.info!=null)return this.refuse(r,_.range,"await in a for initializer (async lowering)"),null;if(y.lo!=0)return null}let d=c.condition;if(d!=null&&!this.walkExpression(r,d,u.all,null,!1))return null;let g=c.incrementor;return g!=null&&!this.walkExpression(r,g,u.all,null,!1)?null:(u.kind=4,u.init=_,u.cond=c.condition,u.incr=c.incrementor,u.body=f,u.lo=f.lo,u.hi=f.hi,u.all=Ea(u.all,Aa(f)),u)}case 35:case 36:return u.kind=0,u;case 59:{let c=e;if(c.isAsync){let f=this.lowerAsyncFunction(s,c,l,r,a);if(!f)return null;for(let _=0,d=f.length;_<d;++_)f[_]!==e&&a.push(f[_])}return u.kind=0,u}default:return this.refuse(r,e.range,w_(e)),null}}planBranch(r,e,t,n,s,a,l,o){let u;return e.kind==34?u=e.statements:u=[e],this.planSeq(r,u,t,n,s,a,l,o)}planLeaf(r,e,t,n){let s=e.node;if(s.kind==42){let l=s.expression;if(l.kind==31)return this.planAwait(r,e,l,t,n);if(l.kind==10){let o=l;if(o.operator==102&&o.right.kind==31)return this.planAwait(r,e,o.right,t,n,o.left)}}if(s.kind==51){let l=s.declarations;if(l.length==1){let o=l[0],u=o.initializer;if(u!=null&&u.kind==31)return this.liftDeclarator(r,o,n)?this.planAwait(r,e,u,t,n):null}}if(s.kind==47){let l=s.value;if(l!=null&&l.kind==31)return this.planAwait(r,e,l,t,n)}let a=new Array;switch(s.kind){case 42:{if(!this.walkExpression(r,s.expression,e.all,a,!1))return null;break}case 51:{let l=s.declarations;for(let o=0,u=l.length;o<u;++o){let c=l[o];e.declarations.push(c);let f=c.initializer;if(f&&!this.walkExpression(r,f,e.all,a,!1))return null}break}case 47:{let l=s.value;if(l&&!this.walkExpression(r,l,e.all,a,!1))return null;break}}if(a.length){let l=a.length>1?"more than one await in one statement (async lowering)":"await in an unsupported position (async lowering)";return this.refuse(r,a[0].range,l),null}return e}planAwait(r,e,t,n,s,a=null){let l=n.next++,o=t.operand,u=new vt;if(!this.walkExpression(r,o,u,null,!1))return null;let c=new vt;return a!=null&&!this.walkExpression(r,a,c,null,!0)?null:(e.kind=0,e.info=new P_(t,o,l,jx+l.toString(),l),e.lo=l,e.hi=l,e.before=u,e.after=c,e.all=Ea(u,c),e)}liftDeclarator(r,e,t){let n=e.name.text;if(t.hasLocal(n))return!0;if(Wx(n))return this.refuse(r,e.name.range,"a local whose name is reserved by the state struct (async lowering)"),!1;let s=e.type;if(s==null){let a=ut(e.initializer,t.knownTypes(),0);if(a!=null)e.type=a,s=a;else return this.refuse(r,e.name.range,"a local without a declared type that crosses an await (async lowering)"),!1}return t.liftLocal(n,s,e),!0}liftDeclaredIn(r,e,t){let n=e.plans;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.declarations;for(let u=0,c=o.length;u<c;++u)if(!this.liftDeclarator(r,o[u],t))return!1;if(l.kind==1&&l.lo!=0){if(!this.liftDeclaredIn(r,assert(l.statements),t))return!1}else if(l.kind==2&&l.lo!=0){if(!this.liftDeclaredIn(r,assert(l.thenSeq),t)||l.elseSeq!=null&&!this.liftDeclaredIn(r,assert(l.elseSeq),t))return!1}else if((l.kind==3||l.kind==4)&&l.lo!=0&&!this.liftDeclaredIn(r,assert(l.body),t))return!1}return!0}collectLifting(r,e,t){let n=new Array,s=e.plans;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.lo!=0){let c=new vt;et(c.reads,o.after.reads),et(c.writes,o.after.writes),et(c.reads,o.all.reads),et(c.writes,o.all.writes);for(let f=a+1,_=s.length;f<_;++f)et(c.reads,s[f].all.reads),et(c.writes,s[f].all.writes);for(let f=0,_=n.length;f<_;++f){let d=n[f],g=d.name.text;if((c.reads.has(g)||c.writes.has(g))&&!this.liftDeclarator(r,d,t))return}}let u=o.declarations;for(let c=0,f=u.length;c<f;++c){let _=u[c];t.hasLocal(_.name.text)||n.push(_)}switch(o.kind){case 1:{this.collectLifting(r,assert(o.statements),t);break}case 2:{this.collectLifting(r,assert(o.thenSeq),t),o.elseSeq!=null&&this.collectLifting(r,assert(o.elseSeq),t);break}case 3:case 4:{this.collectLifting(r,assert(o.body),t);break}}}}emitSeq(r,e){let t=new Array,n=r.plans,s=new Array;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(e.guarded&&o.kind==0&&o.lo==0&&o.info==null&&!o.nestedFunction&&o.node.kind!=59){Tn(s,Ia(o.node,e));continue}this.flushRun(s,t,e),Tn(t,this.emitPlan(o,e))}return this.flushRun(s,t,e),t}flushRun(r,e,t){r.length!=0&&(e.push(h.createIfStatement(ur(He(t.stateName,r[0].range),r[0].range),h.createBlockStatement(r.slice(0),r[0].range),null,r[0].range)),r.length=0)}emitPlan(r,e){let t=new Array,n=r.node,s=n.range;switch(r.kind){case 0:{if(r.nestedFunction||n.kind==59)return t.push(n),t;if(r.info!=null){let a=assert(r.info),l=new Array;l.push(h.createExpressionStatement(h.createBinaryExpression(102,Su(e.stateName,a.fieldName,s),h.createPropertyAccessExpression(a.operand,h.createIdentifierExpression(Ux,s),s),s))),l.push(h.createExpressionStatement(vu(e.stateName,St(a.discriminator,s),s)));let o=new Array;Tn(o,Mk(e.lifting,e.stateName,s)),o.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Tk,s),null,[h.createIdentifierExpression(e.stateName,s),Su(e.stateName,a.fieldName,s)],s))),o.push(h.createReturnStatement(null,s)),l.push(h.createIfStatement(h.createUnaryPrefixExpression(96,h.createCallExpression(h.createIdentifierExpression(Sk,s),null,[Su(e.stateName,a.fieldName,s)],s),s),h.createBlockStatement(o,s),null,s)),t.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(l,s),null,s));let u=new Array;return u.push(h.createExpressionStatement(vu(e.stateName,St(0,s),s))),Tn(u,Ia(n,e)),t.push(h.createIfStatement(Ok(He(e.stateName,s),St(a.discriminator,s),s),h.createBlockStatement(u,s),null,s)),t}if(r.lo==0){let a=Ia(n,e);e.guarded?t.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(a,s),null,s)):Tn(t,a)}return t}case 1:{let a=this.emitSeq(assert(r.statements),e);return r.lo==0?xu(cr(n,e),e,s):(t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(a,s),null,s)),t)}case 2:{if(r.lo==0)return xu(cr(n,e),e,s);let a=this.emitSeq(assert(r.thenSeq),e),l=r.elseSeq!=null?this.emitSeq(assert(r.elseSeq),e):new Array,o=e.freshTemp(s),u=new Array;return u.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(o,s),null,16,ve("bool",s),h.createFalseExpression(s),s)],s)),u.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement([h.createExpressionStatement(M_(o,assert(r.cond),s))],s),h.createBlockStatement([h.createExpressionStatement(M_(o,Qx(e.stateName,r.thenSeq!=null?assert(r.thenSeq).lo:0,r.thenSeq!=null?assert(r.thenSeq).hi:0,s),s))],s),s)),u.push(h.createIfStatement(h.createIdentifierExpression(o,s),h.createBlockStatement(a,s),l.length?h.createBlockStatement(l,s):null,s)),t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(u,s),null,s)),t}case 3:{if(r.lo==0)return xu(cr(n,e),e,s);let a=this.emitSeq(assert(r.body),e),l=r.cond,o=h.createBinaryExpression(99,Kx(He(e.stateName,s),s),l??h.createTrueExpression(s),s);return t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement([h.createWhileStatement(o,h.createBlockStatement(a,s),s)],s),null,s)),t}case 4:{if(r.lo==0)return xu(cr(n,e),e,s);let a=this.emitSeq(assert(r.body),e),l=new Array;r.init!=null&&l.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(Ia(assert(r.init),e),s),null,s));let o=r.cond;return l.push(h.createForStatement(null,h.createBinaryExpression(99,Kx(He(e.stateName,s),s),o??h.createTrueExpression(s),s),r.incr!=null?assert(r.incr):null,h.createBlockStatement(a,s),s)),t.push(h.createIfStatement(Eu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(l,s),null,s)),t}}return t}walkExpression(r,e,t,n,s){switch(e.kind){case 8:{if(t){let a=e.text;s?t.writes.add(a):t.reads.add(a)}return!0}case 27:case 15:case 20:return!0;case 16:{let a=e.declaration;return a.isAsync?(this.refuse(r,e.range,a.arrowKind!=0?ba:xa),!1):!0}case 26:return this.refuse(r,e.range,"this in an async function body (async lowering)"),!1;case 25:return this.refuse(r,e.range,"super in an async function body (async lowering)"),!1;case 31:{let a=e;return n?(n.push(a),!0):(this.refuse(r,a.range,"await in an unsupported position (async lowering)"),!1)}case 18:{let a=e;switch(a.literalKind){case 0:case 1:case 2:case 4:return!0;case 3:{let l=a.expressions;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 5:{let l=a.elementExpressions;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 6:{let l=a.values;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}default:return this.refuse(r,e.range,w_(e)),!1}}case 9:{let a=e;return this.walkExpression(r,a.expression,t,n,s)?a.toType!=null?(this.refuse(r,a.range,"a type argument in an async body (async lowering)"),!1):!0:!1}case 10:{let a=e,l=Hk(a.operator);return this.walkExpression(r,a.left,t,n,l?!0:s)?this.walkExpression(r,a.right,t,n,!1):!1}case 11:{let a=e;if(!this.walkExpression(r,a.expression,t,n,!1))return!1;let l=a.args;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 13:{let a=e.expressions;for(let l=0,o=a.length;l<o;++l)if(!this.walkExpression(r,a[l],t,n,l==o-1?s:!1))return!1;return!0}case 14:{let a=e;return this.walkExpression(r,a.expression,t,n,!1)?this.walkExpression(r,a.elementExpression,t,n,!1):!1}case 17:return this.walkExpression(r,e.expression,t,n,!1);case 19:{let a=e.args;for(let l=0,o=a.length;l<o;++l)if(!this.walkExpression(r,a[l],t,n,!1))return!1;return!0}case 22:return this.walkExpression(r,e.expression,t,n,s);case 23:return this.walkExpression(r,e.expression,t,n,!1);case 24:{let a=e;return!this.walkExpression(r,a.condition,t,n,!1)||!this.walkExpression(r,a.ifThen,t,n,s)?!1:this.walkExpression(r,a.ifElse,t,n,s)}case 29:{let a=e,l=a.operator==88||a.operator==89;return this.walkExpression(r,a.operand,t,n,l?!0:s)}case 30:{let a=e,l=a.operator==88||a.operator==89;return this.walkExpression(r,a.operand,t,n,l?!0:s)}default:return this.refuse(r,e.range,w_(e)),!1}}lowerAsyncMethods(r,e,t,n){let s=new Array,a=e.members;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind==62){let c=u;if(!c.isAsync)continue;if(c.is(32)){this.refuse(n,c.range,"async static methods (async lowering)",c);continue}if(c.body==null)continue;let f=this.lowerAsyncFunction(r,c,t,n,s,ve(e.name.text,c.range));if(f)for(let _=0,d=f.length;_<d;++_)f[_]!==c&&s.push(f[_])}else if(u.kind==58){let c=u.initializer;c&&this.refuseAsyncFunctionExpression(c,n)}}return s}refuseAsyncFunctionExpression(r,e){if(r.kind!=16)return;let t=r.declaration;t.isAsync&&this.refuse(e,t.range,t.arrowKind!=0?ba:xa,r)}refuse(r,e,t,n=null){let s=n??this.currentConstruct;s!=null?this.recordRefusalStart(s.range.source,s.range.start):this.recordRefusalStart(e.source,e.start),r.error(100,e,t)}recordRefusal(r){this.recordRefusalStart(r.range.source,r.range.start)}recordRefusalStart(r,e){let t=this.refusals;t==null&&(t=new Map,this.refusals=t);let n=ee(t,r);n==null&&(n=new Set,t.set(r,n)),n.add(e)}};var R_=class{constructor(r){this.node=r;this.kind=0;this.lo=0;this.hi=0;this.info=null;this.before=new vt;this.after=new vt;this.all=new vt;this.statements=null;this.cond=null;this.thenSeq=null;this.elseSeq=null;this.body=null;this.init=null;this.incr=null;this.declarations=new Array;this.nestedFunction=!1;this.range=r.range}},C_=class{constructor(){this.plans=new Array;this.lo=0;this.hi=0}add(r){r.lo!=0&&((this.lo==0||r.lo<this.lo)&&(this.lo=r.lo),r.hi>this.hi&&(this.hi=r.hi)),this.plans.push(r)}},ku=class{constructor(){this.next=1}},P_=class{constructor(r,e,t,n,s){this.node=r;this.operand=e;this.discriminator=t;this.fieldName=n;this.ordinal=s}},vt=class{constructor(){this.reads=new Set;this.writes=new Set}},B_=class{constructor(r,e,t,n,s,a=null,l=!0,o=null){this.lifting=r;this.stateName=e;this.terminal=t;this.returnsValue=n;this.localNames=s;this.returnType=a;this.guarded=l;this.hoisted=o;this.tempCount=0}freshTemp(r){let e=Vx;for(;this.localNames.has(e);)e=Vx+(++this.tempCount).toString();return this.localNames.add(e),e}};function et(i,r){for(let e=Set_values(r),t=0,n=e.length;t<n;++t)i.add(unchecked(e[t]))}function Ea(i,r){let e=new vt;return et(e.reads,i.reads),et(e.writes,i.writes),et(e.reads,r.reads),et(e.writes,r.writes),e}function Aa(i){let r=new vt,e=i.plans;for(let t=0,n=e.length;t<n;++t)et(r.reads,e[t].all.reads),et(r.writes,e[t].all.writes);return r}function Rk(i,r){let e=0;return i!=null&&i.lo!=0&&(e=i.lo),r!=null&&r.lo!=0&&(e==0||r.lo<e)&&(e=r.lo),e}function Ck(i,r){let e=0;return i!=null&&i.hi>e&&(e=i.hi),r!=null&&r.hi>e&&(e=r.hi),e}function Ta(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.info!=null&&r.push(assert(s.info).fieldName),s.statements!=null&&Ta(assert(s.statements),r),s.thenSeq!=null&&Ta(assert(s.thenSeq),r),s.elseSeq!=null&&Ta(assert(s.elseSeq),r),s.body!=null&&Ta(assert(s.body),r)}}function Sa(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];et(r,s.all.writes),et(r,s.before.writes),s.statements!=null&&Sa(assert(s.statements),r),s.thenSeq!=null&&Sa(assert(s.thenSeq),r),s.elseSeq!=null&&Sa(assert(s.elseSeq),r),s.body!=null&&Sa(assert(s.body),r)}}function va(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.info!=null&&r.push(assert(s.info)),s.statements!=null&&va(assert(s.statements),r),s.thenSeq!=null&&va(assert(s.thenSeq),r),s.elseSeq!=null&&va(assert(s.elseSeq),r),s.body!=null&&va(assert(s.body),r)}}function Pk(i){let r=i.plans;if(!r.length)return!1;let e=r[r.length-1];return e.kind==0&&e.node.kind==47}function Bk(i){for(let r=0,e=i.length;r<e;++r){let t=i[r].kind;if(t==59){if(i[r].isAsync)return!0}else{if(t==63||t==55)return!0;if(t==51){let n=i[r].declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s].initializer;if(l!=null&&l.kind==16&&l.declaration.isAsync)return!0}}}}return!1}function Lr(i,r){for(let e=0,t=i.length;e<t;++e){let n=i[e];switch(n.kind){case 42:{let s=n.expression;if(s.kind==16){let a=ee(Or(),s);a!=null&&r.add(a)}break}case 51:{let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;if(o!=null&&o.kind==16){let u=ee(Or(),o);u!=null&&r.add(u)}}break}case 34:{Lr(n.statements,r);break}case 45:{let s=n;Lr([s.ifTrue],r),s.ifFalse!=null&&Lr([assert(s.ifFalse)],r);break}case 53:{Lr([n.body],r);break}case 37:{Lr([n.body],r);break}case 43:{let s=n;s.initializer!=null&&Lr([assert(s.initializer)],r),Lr([s.body],r);break}default:break}}}function Tu(i,r,e){for(let t=0,n=i.length;t<n;++t){let s=i[t];switch(s.kind){case 51:{let a=s.declarations;for(let l=0,o=a.length;l<o;++l){let u=a[l],c=u.name.text;if(!r.has(c)||e.hasLocal(c))continue;let f=u.type;f!=null&&e.liftLocal(c,f,u)}break}case 34:{Tu(s.statements,r,e);break}case 45:{let a=s;Tu([a.ifTrue],r,e),a.ifFalse!=null&&Tu([assert(a.ifFalse)],r,e);break}default:break}}}function Mr(i,r){switch(i.kind){case 34:{let e=i.statements;for(let t=0,n=e.length;t<n;++t)Mr(e[t],r);break}case 45:{let e=i;Mr(e.ifTrue,r),e.ifFalse!=null&&Mr(assert(e.ifFalse),r);break}case 53:{Mr(i.body,r);break}case 43:{let e=i;e.initializer!=null&&Mr(assert(e.initializer),r),Mr(e.body,r);break}case 51:{let e=i.declarations;for(let t=0,n=e.length;t<n;++t)r.add(e[t].name.text);break}default:break}}function Ti(i,r){switch(i.kind){case 34:{let e=i.statements;for(let t=0,n=e.length;t<n;++t)Ti(e[t],r);break}case 45:{let e=i;Ti(e.ifTrue,r),e.ifFalse!=null&&Ti(assert(e.ifFalse),r);break}case 53:{Ti(i.body,r);break}case 43:{let e=i;e.initializer!=null&&Ti(assert(e.initializer),r),Ti(e.body,r);break}case 51:{let e=i.declarations;for(let t=0,n=e.length;t<n;++t){let s=e[t],a=s.type;a!=null&&r.set(s.name.text,a)}break}default:break}}function Nk(i){switch(i.kind){case 59:case 62:case 55:case 56:case 61:case 63:case 64:return i.name.text;case 51:{let r=i.declarations;return r.length?r[0].name.text:null}default:return null}}function Ox(i,r){return h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Hx,r),null,[h.createIdentifierExpression(i,r)],r))}function qx(i,r,e){return h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(i,r),null,16,null,h.createPropertyAccessExpression(h.createIdentifierExpression(e,r),h.createIdentifierExpression(i,r),r),r)],r)}function Ia(i,r){let e=r.stateName;if(i.kind==47){let t=i,n=t.value,s=t.range,a=new Array;return n!=null?r.returnsValue?a.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(kk,s),[assert(r.returnType)],[h.createIdentifierExpression(e,s),n],s))):(a.push(h.createExpressionStatement(n)),a.push(Ox(e,s))):a.push(Ox(e,s)),a.push(h.createExpressionStatement(vu(e,St(r.terminal,s),s))),a.push(h.createReturnStatement(null,s)),a}if(i.kind==51){let t=i.declarations,n=!1;for(let a=0,l=t.length;a<l;++a){let o=t[a].name.text;if(r.lifting.hasLocal(o)||r.hoisted!=null&&assert(r.hoisted).has(o)){n=!0;break}}if(!n)return[i];let s=new Array;for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.name.text;if(!r.lifting.hasLocal(u)&&(r.hoisted==null||!assert(r.hoisted).has(u))){s.push(h.createVariableStatement(null,[o],o.range));continue}let c=o.initializer;c!=null&&s.push(h.createExpressionStatement(M_(u,c,o.range)))}return s}return[i]}function cr(i,r){switch(i.kind){case 34:{let e=i,t=new Array,n=e.statements;for(let s=0,a=n.length;s<a;++s){let l=cr(n[s],r);if(l.kind==34&&n[s].kind!=34){let o=l.statements;for(let u=0,c=o.length;u<c;++u)t.push(o[u])}else t.push(l)}return h.createBlockStatement(t,e.range)}case 45:{let e=i;return h.createIfStatement(e.condition,cr(e.ifTrue,r),e.ifFalse!=null?cr(assert(e.ifFalse),r):null,e.range)}case 53:{let e=i;return h.createWhileStatement(e.condition,cr(e.body,r),e.range)}case 43:{let e=i;return h.createForStatement(e.initializer,e.condition,e.incrementor,cr(e.body,r),e.range)}case 47:{let e=Ia(i,r);return e.length==1?e[0]:h.createBlockStatement(e,i.range)}default:return i}}function xu(i,r,e){return r.guarded?Lk(i,r,e):[i]}function Lk(i,r,e){return[h.createIfStatement(ur(He(r.stateName,e),e),h.createBlockStatement([i],e),null,e)]}function Tn(i,r){for(let e=0,t=r.length;e<t;++e)i.push(r[e])}function Mk(i,r,e){let t=new Array,n=i.parameterNames;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=i.parameterRange(l);t.push(h.createExpressionStatement(z_(h.createPropertyAccessExpression(h.createIdentifierExpression(r,o),h.createIdentifierExpression(l,o),o),h.createIdentifierExpression(l,o),o)))}for(let s=0,a=i.locals.length;s<a;++s){let l=i.locals[s],o=l.declaration.name.range;t.push(h.createExpressionStatement(z_(h.createPropertyAccessExpression(h.createIdentifierExpression(r,o),h.createIdentifierExpression(l.name,o),o),h.createIdentifierExpression(l.name,o),o)))}return t}function w_(i){switch(i.kind){case 31:return"await in an unsupported position (async lowering)";case 16:return i.declaration.isAsync?xa:"a nested function in an async function body (async lowering)";case 12:return"a nested class in an async function body (async lowering)";case 26:return"this in an async function body (async lowering)";case 25:return"super in an async function body (async lowering)";case 49:return"throw in an async function body (async lowering)";case 50:return"try/catch in an async function body (async lowering)";case 48:return"switch in an async function body (async lowering)";case 45:return"if in an async function body (async lowering)";case 43:return"for in an async function body (async lowering)";case 44:return"for-of in an async function body (async lowering)";case 53:return"while in an async function body (async lowering)";case 37:return"do in an async function body (async lowering)";case 34:return"a nested block in an async function body (async lowering)";default:return"this async body (async lowering)"}}function N_(i,r){let e="state";for(;zk(i,r,e);)e="$"+e;return e}function zk(i,r,e){for(let n=0,s=i.length;n<s;++n)if(i[n].name.text==e)return!0;let t=new Set;return Mr(r,t),t.has(e)}function Dk(i,r){return N_(r,i)}function Gk(i){let r=i.statements,e=r.length>0?r[0]:null;if(e==null||e.kind!=51)return;let t=e.declarations;if(t.length!=1||t[0].name.text!=Sn)return;r.shift();let n=r.length>0?r[0]:null;if(n==null||n.kind!=42)return;let s=n.expression;if(s.kind!=10)return;let a=s;if(a.operator!=102||a.left.kind!=23)return;let l=a.left;l.expression.kind==8&&l.expression.text==Sn&&l.property.text==ka&&r.shift()}function L_(i,r,e){for(let t=0,n=i.length;t<n;++t)Si(i[t],r,e)}function Si(i,r,e){switch(i.kind){case 42:{let t=i.expression;i.expression=_e(t,r,e);break}case 47:{let t=i.value;t!=null&&(i.value=_e(t,r,e));break}case 51:{let t=i.declarations;for(let n=0,s=t.length;n<s;++n){let a=t[n].initializer;a!=null&&(t[n].initializer=_e(a,r,e))}break}case 34:{L_(i.statements,r,e);break}case 45:{let t=i;t.condition=_e(t.condition,r,e),Si(t.ifTrue,r,e),t.ifFalse!=null&&Si(assert(t.ifFalse),r,e);break}case 53:{let t=i;t.condition=_e(t.condition,r,e),Si(t.body,r,e);break}case 37:{let t=i;Si(t.body,r,e),t.condition=_e(t.condition,r,e);break}case 43:{let t=i,n=t.initializer;n!=null&&Si(n,r,e);let s=t.condition;s!=null&&(t.condition=_e(s,r,e));let a=t.incrementor;a!=null&&(t.incrementor=_e(a,r,e)),Si(t.body,r,e);break}case 48:{let t=i;t.condition=_e(t.condition,r,e);let n=t.cases;for(let s=0,a=n.length;s<a;++s)n[s].label!=null&&(n[s].label=_e(assert(n[s].label),r,e)),L_(n[s].statements,r,e);break}default:break}}function _e(i,r,e){switch(i.kind){case 26:return h.createPropertyAccessExpression(h.createCallExpression(h.createIdentifierExpression("changetype",i.range),[ve(r,i.range)],[h.createPropertyAccessExpression(h.createIdentifierExpression(e,i.range),h.createIdentifierExpression(vi,i.range),i.range)],i.range),h.createIdentifierExpression(ka,i.range),i.range);case 10:{let t=i;return t.left=_e(t.left,r,e),t.right=_e(t.right,r,e),t}case 11:{let t=i;t.expression=_e(t.expression,r,e);let n=t.args;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 23:{let t=i;return t.expression=_e(t.expression,r,e),t}case 22:{let t=i;return t.expression=_e(t.expression,r,e),t}case 30:{let t=i;return t.operand=_e(t.operand,r,e),t}case 29:{let t=i;return t.operand=_e(t.operand,r,e),t}case 14:{let t=i;return t.expression=_e(t.expression,r,e),t.elementExpression=_e(t.elementExpression,r,e),t}case 24:{let t=i;return t.condition=_e(t.condition,r,e),t.ifThen=_e(t.ifThen,r,e),t.ifElse=_e(t.ifElse,r,e),t}case 13:{let t=i,n=t.expressions;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 19:{let t=i,n=t.args;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 17:{let t=i;return t.expression=_e(t.expression,r,e),t}case 9:{let t=i;return t.expression=_e(t.expression,r,e),t}case 31:{let t=i;return t.operand=_e(t.operand,r,e),t}default:return i}}function Wx(i){return i==Iu||i==Au||i==vi||i=="record"?!0:i.startsWith(jx)}function Uk(i,r,e){return h.createPropertyAccessExpression(i,h.createIdentifierExpression(r,e),e)}function Su(i,r,e){return Uk(h.createIdentifierExpression(i,e),r,e)}function Vk(i,r,e){return Su(i,r,e)}function He(i,r){return h.createPropertyAccessExpression(h.createIdentifierExpression(i,r),h.createIdentifierExpression(Iu,r),r)}function vu(i,r,e){return h.createBinaryExpression(102,He(i,e),r,e)}function Eu(i,r,e,t){return r==0?ur(He(i,t),t):h.createBinaryExpression(99,ur(He(i,t),t),Qx(i,r,e,t),t)}function Qx(i,r,e,t){return r==0?h.createFalseExpression(t):h.createBinaryExpression(98,h.createBinaryExpression(76,He(i,t),St(r,t),t),h.createBinaryExpression(75,He(i,t),St(e,t),t),t)}function ur(i,r){return h.createBinaryExpression(77,i,St(0,r),r)}function Kx(i,r){return h.createBinaryExpression(78,i,St(0,r),r)}function Ok(i,r,e){return h.createBinaryExpression(77,i,r,e)}function M_(i,r,e){return z_(h.createIdentifierExpression(i,e),r,e)}function z_(i,r,e){return h.createBinaryExpression(102,i,r,e)}function qk(i){return i.kind==1&&i.name.identifier.text==""}var D_=class{constructor(r,e,t){this.name=r;this.type=e;this.declaration=t}},G_=class{constructor(){this.locals=new Array;this.parameters=new Set;this.parameterNames=new Array;this.parameterRanges=new Map;this.declaredTypes=new Map}liftParameter(r,e){this.parameters.has(r)||(this.parameters.add(r),this.parameterNames.push(r),this.parameterRanges.set(r,e))}parameterRange(r){return assert(this.parameterRanges.get(r))}liftLocal(r,e,t){this.hasLocal(r)||this.locals.push(new D_(r,e,t))}knownTypes(){let r=new Map,e=this.declaredTypes,t=Map_keys(e);for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);r.set(a,assert(e.get(a)))}for(let n=0,s=this.locals.length;n<s;++n){let a=this.locals[n];r.set(a.name,a.type)}return r}hasLocal(r){for(let e=0,t=this.locals.length;e<t;++e)if(this.locals[e].name==r)return!0;return!1}};function Wk(i){return i.kind==1&&i.name.identifier.text=="void"}function Kk(i,r){return h.createNamedType(h.createSimpleTypeName("Task",r),[i],!1,r)}function ve(i,r){return h.createNamedType(h.createSimpleTypeName(i,r),null,!1,r)}function Hk(i){switch(i){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:return!0;default:return!1}}function St(i,r){return h.createIntegerLiteralExpression(i64_new(i),r)}function Nr(i,r,e,t){return h.createBinaryExpression(102,h.createPropertyAccessExpression(i,h.createIdentifierExpression(r,t),t),e,t)}function Xx(i){let r=new yu;r.program=i,r.afterParse(i.parser);let e=new ya;e.program=i,e.afterParse(i.parser);let t=new Fa;t.program=i,t.afterParse(i.parser)}function jk(){return new ca}function Qk(i,r){i.target=r}function Xk(i,r){i.runtime=r}function Zk(i,r){i.noAssert=r}function $k(i,r){i.exportMemory=r}function Yk(i,r){i.importMemory=r}function Jk(i,r){i.initialMemory=r}function eF(i,r){i.maximumMemory=r}function tF(i,r){i.sharedMemory=r}function rF(i,r){i.importTable=r}function iF(i,r){i.exportTable=r}function nF(i,r){i.sourceMap=r}function sF(i,r){i.uncheckedBehavior=r}function aF(i,r){i.memoryBase=r}function lF(i,r){i.tableBase=r}function oF(i,r,e){let t=i.globalAliases;t||(i.globalAliases=t=new Map),t.set(r,e)}function uF(i,r){let e=i.globalAliases;e&&e.delete(r)}function cF(i,r){i.exportStart=r}function pF(i,r){i.noUnsafe=r}function fF(i,r){i.lowMemoryLimit=r}function _F(i,r){i.exportRuntime=r}var dF=32768;function hF(i,r){i.stackSize=r}function mF(i,r,e,t){i.bundleMajorVersion=r,i.bundleMinorVersion=e,i.bundlePatchVersion=t}var yF=1,gF=2,bF=4,xF=8,EF=16,AF=32,TF=64,SF=128,vF=256,IF=512,kF=1024,FF=2048,wF=4096,RF=8192,CF=16384,PF=32768,BF=65535,NF=ou;function LF(i,r,e){i.setFeature(r,e)}function MF(i,r,e){i.optimizeLevelHint=r,i.shrinkLevelHint=e}function zF(i,r){i.basenameHint=r}function DF(i,r){i.bindingsHint=r}function GF(i,r){i.pedantic=r}function UF(i,r){i.debugInfo=r}function VF(i){return new zs(i)}function OF(i){return i.diagnosticsOffset<i.diagnostics.length?i.diagnostics[i.diagnosticsOffset++]:null}function qF(i,r){return i.getSource(r)}function WF(i){return i.code}function KF(i){return i.category}function HF(i){return i.message}function jF(i){return i.range}function QF(i){return i.relatedRange}function XF(i){return i.start}function ZF(i){return i.end}function $F(i){return i.source}function YF(i){return i.normalizedPath}function JF(i){return i.category==1}function ew(i){return i.category==2}function tw(i){return i.category==3}function rw(i,r,e,t=!1){i.parser.parseFile(r,e,t)}function iw(i){return i.parser.nextFile()}function nw(i,r){return i.parser.getDependee(r)}function sw(i){i.initialize()}function aw(i){return i.parser.finish(),new pa(i).compile()}function lw(i,r){return bn.build(i,r)}function ow(i,r){return _n.build(i,r)}function uw(i){return i.ref}function cw(i){return i.validate()}function pw(i,r,e,t=!1,n=!1){i.optimize(r,e,t,n)}var U_=class i{constructor(){this.sb=[];this.indentLevel=0}static build(r){let e=new i;return e.visitNode(r),e.finish()}visitNode(r){switch(r.kind){case 0:{this.visitSource(r);break}case 1:{this.visitNamedTypeNode(r);break}case 2:{this.visitFunctionTypeNode(r);break}case 3:{this.visitTupleTypeNode(r);break}case 6:{this.visitTypeParameter(r);break}case 15:case 20:case 25:case 26:case 27:case 28:case 8:{this.visitIdentifierExpression(r);break}case 9:{this.visitAssertionExpression(r);break}case 10:{this.visitBinaryExpression(r);break}case 11:{this.visitCallExpression(r);break}case 12:{this.visitClassExpression(r);break}case 13:{this.visitCommaExpression(r);break}case 14:{this.visitElementAccessExpression(r);break}case 16:{this.visitFunctionExpression(r);break}case 17:{this.visitInstanceOfExpression(r);break}case 18:{this.visitLiteralExpression(r);break}case 19:{this.visitNewExpression(r);break}case 22:{this.visitParenthesizedExpression(r);break}case 23:{this.visitPropertyAccessExpression(r);break}case 24:{this.visitTernaryExpression(r);break}case 29:{this.visitUnaryPostfixExpression(r);break}case 30:{this.visitUnaryPrefixExpression(r);break}case 31:{this.visitAwaitExpression(r);break}case 34:{this.visitBlockStatement(r);break}case 35:{this.visitBreakStatement(r);break}case 36:{this.visitContinueStatement(r);break}case 37:{this.visitDoStatement(r);break}case 38:{this.visitEmptyStatement(r);break}case 39:{this.visitExportStatement(r);break}case 40:{this.visitExportDefaultStatement(r);break}case 41:{this.visitExportImportStatement(r);break}case 42:{this.visitExpressionStatement(r);break}case 43:{this.visitForStatement(r);break}case 44:{this.visitForOfStatement(r);break}case 45:{this.visitIfStatement(r);break}case 46:{this.visitImportStatement(r);break}case 47:{this.visitReturnStatement(r);break}case 48:{this.visitSwitchStatement(r);break}case 49:{this.visitThrowStatement(r);break}case 50:{this.visitTryStatement(r);break}case 51:{this.visitVariableStatement(r);break}case 53:{this.visitWhileStatement(r);break}case 54:{this.visitModuleDeclaration(r);break}case 55:{this.visitClassDeclaration(r);break}case 56:{this.visitEnumDeclaration(r);break}case 57:{this.visitEnumValueDeclaration(r);break}case 58:{this.visitFieldDeclaration(r);break}case 59:{this.visitFunctionDeclaration(r);break}case 60:{this.visitImportDeclaration(r);break}case 61:{this.visitInterfaceDeclaration(r);break}case 62:{this.visitMethodDeclaration(r);break}case 63:{this.visitNamespaceDeclaration(r);break}case 64:{this.visitTypeDeclaration(r);break}case 65:{this.visitVariableDeclaration(r);break}case 66:{this.serializeDecorator(r);break}case 67:{this.visitExportMember(r);break}case 7:{this.serializeParameter(r);break}case 68:{this.visitSwitchCase(r);break}case 69:{this.visitIndexSignature(r);break}default:assert(!1)}}visitSource(r){let e=r.statements;for(let t=0,n=e.length;t<n;++t)this.visitNodeAndTerminate(e[t])}visitTypeNode(r){switch(r.kind){case 1:{this.visitNamedTypeNode(r);break}case 2:{this.visitFunctionTypeNode(r);break}case 3:{this.visitTupleTypeNode(r);break}default:assert(!1)}}visitTypeName(r){this.visitIdentifierExpression(r.identifier);let e=this.sb,t=r.next;for(;t;)e.push("."),this.visitIdentifierExpression(t.identifier),t=t.next}visitNamedTypeNode(r){this.visitTypeName(r.name);let e=r.typeArguments;if(e){let t=e.length,n=this.sb;if(t){n.push("<"),this.visitTypeNode(e[0]);for(let s=1;s<t;++s)n.push(", "),this.visitTypeNode(e[s]);n.push(">")}r.isNullable&&n.push(" | null")}this.visitTypeAttributes(r)}visitTypeAttributes(r){let e=r.attributes;if(!e)return;let t=this.sb;for(let n=0,s=e.length;n<s;++n){let a=e[n];t.push(" @"),this.visitNode(a.name);let l=a.args;if(l){t.push("(");let o=l.length;if(o){this.visitNode(l[0]);for(let u=1;u<o;++u)t.push(", "),this.visitNode(l[u])}t.push(")")}}}visitFunctionTypeNode(r){let e=r.isNullable,t=this.sb;t.push(e?"((":"(");let n=r.explicitThisType;n&&(t.push("this: "),this.visitTypeNode(n));let s=r.parameters,a=s.length;if(a){n&&t.push(", "),this.serializeParameter(s[0]);for(let o=1;o<a;++o)t.push(", "),this.serializeParameter(s[o])}let l=r.returnType;l?(t.push(") => "),this.visitTypeNode(l)):t.push(") => void"),e&&t.push(") | null"),this.visitTypeAttributes(r)}visitTupleTypeNode(r){let e=this.sb;e.push("[");let t=r.elements,n=r.elementNames,s=t.length;if(s){let a=n?n[0]:null;a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(t[0]);for(let l=1;l<s;++l)e.push(", "),a=n?n[l]:null,a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(t[l])}e.push("]"),r.isNullable&&e.push(" | null"),this.visitTypeAttributes(r)}visitTypeParameter(r){this.visitIdentifierExpression(r.name);let e=r.extendsType;e&&(this.sb.push(" extends "),this.visitTypeNode(e));let t=r.defaultType;t&&(this.sb.push("="),this.visitTypeNode(t))}visitIdentifierExpression(r){r.isQuoted?this.visitStringLiteral(r.text):this.sb.push(r.text)}visitArrayLiteralExpression(r){let e=this.sb;e.push("[");let t=r.elementExpressions,n=t.length;if(n){let s=t[0];s&&this.visitNode(s);for(let a=1;a<n;++a)s=t[a],e.push(", "),s&&this.visitNode(s)}e.push("]")}visitObjectLiteralExpression(r){let e=this.sb,t=r.names,n=r.values,s=t.length;if(assert(s==n.length),s){e.push(`{
307
+ `),q(e,++this.indentLevel),this.visitNode(t[0]),e.push(": "),this.visitNode(n[0]);for(let a=1;a<s;++a){e.push(`,
308
+ `),q(e,this.indentLevel);let l=t[a],o=n[a];l==o?this.visitNode(l):(this.visitNode(l),e.push(": "),this.visitNode(o))}e.push(`
309
+ `),q(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitAssertionExpression(r){let e=this.sb;switch(r.assertionKind){case 0:{e.push("<"),this.visitTypeNode(assert(r.toType)),e.push(">"),this.visitNode(r.expression);break}case 1:{this.visitNode(r.expression),e.push(" as "),this.visitTypeNode(assert(r.toType));break}case 2:{this.visitNode(r.expression),e.push("!");break}case 3:{this.visitNode(r.expression),e.push(" as const");break}default:assert(!1)}}visitBinaryExpression(r){let e=this.sb;this.visitNode(r.left),e.push(" "),e.push(Le(r.operator)),e.push(" "),this.visitNode(r.right)}visitCallExpression(r){this.visitNode(r.expression),this.visitArguments(r.typeArguments,r.args)}visitArguments(r,e){let t=this.sb;if(r){let s=r.length;if(s){t.push("<"),this.visitTypeNode(r[0]);for(let a=1;a<s;++a)t.push(", "),this.visitTypeNode(r[a]);t.push(">(")}}else t.push("(");let n=e.length;if(n){this.visitNode(e[0]);for(let s=1;s<n;++s)t.push(", "),this.visitNode(e[s])}t.push(")")}visitClassExpression(r){let e=r.declaration;this.visitClassDeclaration(e)}visitCommaExpression(r){let e=r.expressions,t=assert(e.length);this.visitNode(e[0]);let n=this.sb;for(let s=1;s<t;++s)n.push(","),this.visitNode(e[s])}visitElementAccessExpression(r){let e=this.sb;this.visitNode(r.expression),e.push("["),this.visitNode(r.elementExpression),e.push("]")}visitFunctionExpression(r){let e=r.declaration;e.isAsync&&this.sb.push("async "),e.arrowKind?assert(e.name.text.length==0):e.name.text.length?this.sb.push("function "):this.sb.push("function"),this.visitFunctionCommon(e)}visitLiteralExpression(r){switch(r.literalKind){case 0:{this.visitFloatLiteralExpression(r);break}case 1:{this.visitIntegerLiteralExpression(r);break}case 2:{this.visitStringLiteralExpression(r);break}case 3:{this.visitTemplateLiteralExpression(r);break}case 4:{this.visitRegexpLiteralExpression(r);break}case 5:{this.visitArrayLiteralExpression(r);break}case 6:{this.visitObjectLiteralExpression(r);break}default:{assert(!1);break}}}visitFloatLiteralExpression(r){this.sb.push(r.value.toString())}visitInstanceOfExpression(r){this.visitNode(r.expression),this.sb.push(" instanceof "),this.visitTypeNode(r.isType)}visitIntegerLiteralExpression(r){let e=r.range,t=e.source.text.startsWith("-",e.start);this.sb.push(i64_to_string(r.value,!t))}visitStringLiteral(r){let e=this.sb;e.push('"'),e.push(Re(r,34)),e.push('"')}visitStringLiteralExpression(r){this.visitStringLiteral(r.value)}visitTemplateLiteralExpression(r){let e=this.sb,t=r.tag,n=r.parts,s=r.expressions;t&&this.visitNode(t),e.push("`"),e.push(Re(n[0],96)),assert(n.length==s.length+1);for(let a=0,l=s.length;a<l;++a)e.push("${"),this.visitNode(s[a]),e.push("}"),e.push(Re(n[a+1],96));e.push("`")}visitRegexpLiteralExpression(r){let e=this.sb;e.push("/"),e.push(r.pattern),e.push("/"),e.push(r.patternFlags)}visitNewExpression(r){this.sb.push("new "),this.visitTypeName(r.typeName),this.visitArguments(r.typeArguments,r.args)}visitParenthesizedExpression(r){let e=this.sb;e.push("("),this.visitNode(r.expression),e.push(")")}visitPropertyAccessExpression(r){this.visitNode(r.expression),this.sb.push("."),this.visitIdentifierExpression(r.property)}visitTernaryExpression(r){let e=this.sb;this.visitNode(r.condition),e.push(" ? "),this.visitNode(r.ifThen),e.push(" : "),this.visitNode(r.ifElse)}visitUnaryExpression(r){switch(r.kind){case 29:{this.visitUnaryPostfixExpression(r);break}case 30:{this.visitUnaryPrefixExpression(r);break}default:assert(!1)}}visitUnaryPostfixExpression(r){this.visitNode(r.operand),this.sb.push(Le(r.operator))}visitUnaryPrefixExpression(r){this.sb.push(Le(r.operator)),this.visitNode(r.operand)}visitAwaitExpression(r){this.sb.push("await "),this.visitNode(r.operand)}visitNodeAndTerminate(r){this.visitNode(r);let e=this.sb;if(!e.length||r.kind==51||r.kind==42)e.push(`;
310
310
  `);else{let t=e[e.length-1],n=t.length-1;n>=0&&(t.charCodeAt(n)==125||t.charCodeAt(n)==59)?e.push(`
311
311
  `):e.push(`;
312
312
  `)}}visitBlockStatement(r){let e=this.sb,t=r.statements,n=t.length;if(n){e.push(`{
313
- `);let s=++this.indentLevel;for(let a=0;a<n;++a)W(e,s),this.visitNodeAndTerminate(t[a]);W(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitBreakStatement(r){let e=r.label;e?(this.sb.push("break "),this.visitIdentifierExpression(e)):this.sb.push("break")}visitContinueStatement(r){let e=r.label;e?(this.sb.push("continue "),this.visitIdentifierExpression(e)):this.sb.push("continue")}visitClassDeclaration(r,e=!1){let t=r.decorators;if(t)for(let f=0,_=t.length;f<_;++f)this.serializeDecorator(t[f]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),r.is(128)&&n.push("abstract "),r.name.text.length?(n.push("class "),this.visitIdentifierExpression(r.name)):n.push("class");let s=r.typeParameters;if(s!=null&&s.length>0){n.push("<"),this.visitTypeParameter(s[0]);for(let f=1,_=s.length;f<_;++f)n.push(", "),this.visitTypeParameter(s[f]);n.push(">")}let a=r.extendsType;a&&(n.push(" extends "),this.visitTypeNode(a));let l=r.implementsTypes;if(l){let f=l.length;if(f){n.push(" implements "),this.visitTypeNode(l[0]);for(let _=1;_<f;++_)n.push(", "),this.visitTypeNode(l[_])}}let o=r.indexSignature,u=r.members,c=u.length;if(o||c){n.push(` {
314
- `);let f=++this.indentLevel;o&&(W(n,f),this.visitNodeAndTerminate(o));for(let _=0,d=u.length;_<d;++_){let g=u[_];(g.kind!=58||g.parameterIndex<0)&&(W(n,f),this.visitNodeAndTerminate(g))}W(n,--this.indentLevel),n.push("}")}else n.push(" {}")}visitDoStatement(r){let e=this.sb;e.push("do "),this.visitNode(r.body),r.body.kind==34?e.push(" while ("):(e.push(`;
315
- `),W(e,this.indentLevel),e.push("while (")),this.visitNode(r.condition),e.push(")")}visitEmptyStatement(r){}visitEnumDeclaration(r,e=!1){let t=this.sb;e?t.push("export default "):this.serializeExternalModifiers(r),r.is(8)&&t.push("const "),t.push("enum "),this.visitIdentifierExpression(r.name);let n=r.underlyingTypeNode;n&&(t.push(": "),this.visitTypeNode(n));let a=r.values.length;if(a){t.push(` {
316
- `);let l=++this.indentLevel;W(t,l),this.visitEnumValueDeclaration(r.values[0]);for(let o=1;o<a;++o)t.push(`,
317
- `),W(t,l),this.visitEnumValueDeclaration(r.values[o]);t.push(`
318
- `),W(t,--this.indentLevel),t.push("}")}else t.push(" {}")}visitEnumValueDeclaration(r){this.visitIdentifierExpression(r.name);let e=r.initializer;e&&(this.sb.push(" = "),this.visitNode(e))}visitExportImportStatement(r){let e=this.sb;e.push("export import "),this.visitIdentifierExpression(r.externalName),e.push(" = "),this.visitIdentifierExpression(r.name)}visitExportMember(r){this.visitIdentifierExpression(r.localName),r.exportedName.text!=r.localName.text&&(this.sb.push(" as "),this.visitIdentifierExpression(r.exportedName))}visitExportStatement(r){let e=this.sb;r.isDeclare&&e.push("declare ");let t=r.members;if(t==null)e.push("export *");else if(t.length>0){let s=t.length;e.push(`export {
319
- `);let a=++this.indentLevel;W(e,a),this.visitExportMember(t[0]);for(let l=1;l<s;++l)e.push(`,
320
- `),W(e,a),this.visitExportMember(t[l]);--this.indentLevel,e.push(`
313
+ `);let s=++this.indentLevel;for(let a=0;a<n;++a)q(e,s),this.visitNodeAndTerminate(t[a]);q(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitBreakStatement(r){let e=r.label;e?(this.sb.push("break "),this.visitIdentifierExpression(e)):this.sb.push("break")}visitContinueStatement(r){let e=r.label;e?(this.sb.push("continue "),this.visitIdentifierExpression(e)):this.sb.push("continue")}visitClassDeclaration(r,e=!1){let t=r.decorators;if(t)for(let f=0,_=t.length;f<_;++f)this.serializeDecorator(t[f]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),r.is(128)&&n.push("abstract "),r.name.text.length?(n.push("class "),this.visitIdentifierExpression(r.name)):n.push("class");let s=r.typeParameters;if(s!=null&&s.length>0){n.push("<"),this.visitTypeParameter(s[0]);for(let f=1,_=s.length;f<_;++f)n.push(", "),this.visitTypeParameter(s[f]);n.push(">")}let a=r.extendsType;a&&(n.push(" extends "),this.visitTypeNode(a));let l=r.implementsTypes;if(l){let f=l.length;if(f){n.push(" implements "),this.visitTypeNode(l[0]);for(let _=1;_<f;++_)n.push(", "),this.visitTypeNode(l[_])}}let o=r.indexSignature,u=r.members,c=u.length;if(o||c){n.push(` {
314
+ `);let f=++this.indentLevel;o&&(q(n,f),this.visitNodeAndTerminate(o));for(let _=0,d=u.length;_<d;++_){let g=u[_];(g.kind!=58||g.parameterIndex<0)&&(q(n,f),this.visitNodeAndTerminate(g))}q(n,--this.indentLevel),n.push("}")}else n.push(" {}")}visitDoStatement(r){let e=this.sb;e.push("do "),this.visitNode(r.body),r.body.kind==34?e.push(" while ("):(e.push(`;
315
+ `),q(e,this.indentLevel),e.push("while (")),this.visitNode(r.condition),e.push(")")}visitEmptyStatement(r){}visitEnumDeclaration(r,e=!1){let t=this.sb;e?t.push("export default "):this.serializeExternalModifiers(r),r.is(8)&&t.push("const "),t.push("enum "),this.visitIdentifierExpression(r.name);let n=r.underlyingTypeNode;n&&(t.push(": "),this.visitTypeNode(n));let a=r.values.length;if(a){t.push(` {
316
+ `);let l=++this.indentLevel;q(t,l),this.visitEnumValueDeclaration(r.values[0]);for(let o=1;o<a;++o)t.push(`,
317
+ `),q(t,l),this.visitEnumValueDeclaration(r.values[o]);t.push(`
318
+ `),q(t,--this.indentLevel),t.push("}")}else t.push(" {}")}visitEnumValueDeclaration(r){this.visitIdentifierExpression(r.name);let e=r.initializer;e&&(this.sb.push(" = "),this.visitNode(e))}visitExportImportStatement(r){let e=this.sb;e.push("export import "),this.visitIdentifierExpression(r.externalName),e.push(" = "),this.visitIdentifierExpression(r.name)}visitExportMember(r){this.visitIdentifierExpression(r.localName),r.exportedName.text!=r.localName.text&&(this.sb.push(" as "),this.visitIdentifierExpression(r.exportedName))}visitExportStatement(r){let e=this.sb;r.isDeclare&&e.push("declare ");let t=r.members;if(t==null)e.push("export *");else if(t.length>0){let s=t.length;e.push(`export {
319
+ `);let a=++this.indentLevel;q(e,a),this.visitExportMember(t[0]);for(let l=1;l<s;++l)e.push(`,
320
+ `),q(e,a),this.visitExportMember(t[l]);--this.indentLevel,e.push(`
321
321
  }`)}else e.push("export {}");let n=r.path;n&&(e.push(" from "),this.visitStringLiteralExpression(n)),e.push(";")}visitExportDefaultStatement(r){let e=r.declaration;switch(e.kind){case 56:{this.visitEnumDeclaration(e,!0);break}case 59:{this.visitFunctionDeclaration(e,!0);break}case 55:{this.visitClassDeclaration(e,!0);break}case 61:{this.visitInterfaceDeclaration(e,!0);break}case 63:{this.visitNamespaceDeclaration(e,!0);break}default:assert(!1)}}visitExpressionStatement(r){this.visitNode(r.expression)}visitFieldDeclaration(r){let e=r.decorators;if(e)for(let a=0,l=e.length;a<l;++a)this.serializeDecorator(e[a]);this.serializeAccessModifiers(r),this.visitIdentifierExpression(r.name);let t=this.sb;r.flags&16384&&t.push("!");let n=r.type;n&&(t.push(": "),this.visitTypeNode(n));let s=r.initializer;s&&(t.push(" = "),this.visitNode(s))}visitForStatement(r){let e=this.sb;e.push("for (");let t=r.initializer;t&&this.visitNode(t);let n=r.condition;n?(e.push("; "),this.visitNode(n)):e.push(";");let s=r.incrementor;s?(e.push("; "),this.visitNode(s)):e.push(";"),e.push(") "),this.visitNode(r.body)}visitForOfStatement(r){let e=this.sb;e.push("for ("),this.visitNode(r.variable),e.push(" of "),this.visitNode(r.iterable),e.push(") "),this.visitNode(r.body)}visitFunctionDeclaration(r,e=!1){let t=this.sb,n=r.decorators;if(n)for(let s=0,a=n.length;s<a;++s)this.serializeDecorator(n[s]);e?t.push("export default "):(this.serializeExternalModifiers(r),this.serializeAccessModifiers(r)),r.isAsync&&t.push("async "),r.name.text.length?t.push("function "):t.push("function"),this.visitFunctionCommon(r)}visitFunctionCommon(r){let e=this.sb;this.visitIdentifierExpression(r.name);let t=r.signature,n=r.typeParameters;if(n){let l=n.length;if(l){e.push("<"),this.visitTypeParameter(n[0]);for(let o=1;o<l;++o)e.push(", "),this.visitTypeParameter(n[o]);e.push(">")}}if(r.arrowKind==2){let l=t.parameters;assert(l.length==1),assert(!t.explicitThisType),this.serializeParameter(l[0])}else{e.push("(");let l=t.parameters,o=l.length,u=t.explicitThisType;if(u&&(e.push("this: "),this.visitTypeNode(u)),o){u&&e.push(", "),this.serializeParameter(l[0]);for(let c=1;c<o;++c)e.push(", "),this.serializeParameter(l[c])}}let s=r.body,a=t.returnType;r.arrowKind?s?(r.arrowKind==2?assert(De(a)):De(a)?e.push(")"):(e.push("): "),this.visitTypeNode(a)),e.push(" => "),this.visitNode(s)):(assert(!De(a)),e.push(" => "),this.visitTypeNode(a)):(!De(a)&&!r.isAny(528384)?(e.push("): "),this.visitTypeNode(a)):e.push(")"),s&&(e.push(" "),this.visitNode(s)))}visitIfStatement(r){let e=this.sb;e.push("if ("),this.visitNode(r.condition),e.push(") ");let t=r.ifTrue;this.visitNode(t),t.kind!=34&&e.push(`;
322
322
  `);let n=r.ifFalse;n&&(t.kind==34?e.push(" else "):e.push("else "),this.visitNode(n))}visitImportDeclaration(r){let e=r.foreignName,t=r.name;this.visitIdentifierExpression(e),e.text!=t.text&&(this.sb.push(" as "),this.visitIdentifierExpression(t))}visitImportStatement(r){let e=this.sb;e.push("import ");let t=r.declarations,n=r.namespaceName;if(t){let s=t.length;if(s){e.push(`{
323
- `);let a=++this.indentLevel;W(e,a),this.visitImportDeclaration(t[0]);for(let l=1;l<s;++l)e.push(`,
324
- `),W(e,a),this.visitImportDeclaration(t[l]);--this.indentLevel,e.push(`
323
+ `);let a=++this.indentLevel;q(e,a),this.visitImportDeclaration(t[0]);for(let l=1;l<s;++l)e.push(`,
324
+ `),q(e,a),this.visitImportDeclaration(t[l]);--this.indentLevel,e.push(`
325
325
  } from `)}else e.push("{} from ")}else n&&(e.push("* as "),this.visitIdentifierExpression(n),e.push(" from "));this.visitStringLiteralExpression(r.path)}visitIndexSignature(r){let e=this.sb;e.push("[key: "),this.visitTypeNode(r.keyType),e.push("]: "),this.visitTypeNode(r.valueType)}visitInterfaceDeclaration(r,e=!1){let t=r.decorators;if(t)for(let u=0,c=t.length;u<c;++u)this.serializeDecorator(t[u]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),n.push("interface "),this.visitIdentifierExpression(r.name);let s=r.typeParameters;if(s!=null&&s.length>0){n.push("<"),this.visitTypeParameter(s[0]);for(let u=1,c=s.length;u<c;++u)n.push(", "),this.visitTypeParameter(s[u]);n.push(">")}let a=r.extendsType;a&&(n.push(" extends "),this.visitTypeNode(a)),n.push(` {
326
- `);let l=++this.indentLevel,o=r.members;for(let u=0,c=o.length;u<c;++u)W(n,l),this.visitNodeAndTerminate(o[u]);--this.indentLevel,n.push("}")}visitMethodDeclaration(r){let e=r.decorators;if(e)for(let t=0,n=e.length;t<n;++t)this.serializeDecorator(e[t]);this.serializeAccessModifiers(r),r.isAsync&&this.sb.push("async "),r.is(2048)?this.sb.push("get "):r.is(4096)&&this.sb.push("set "),this.visitFunctionCommon(r)}visitNamespaceDeclaration(r,e=!1){let t=r.decorators;if(t)for(let l=0,o=t.length;l<o;++l)this.serializeDecorator(t[l]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),n.push("namespace "),this.visitIdentifierExpression(r.name);let s=r.members;if(s.length){n.push(` {
327
- `);let l=++this.indentLevel;for(let o=0,u=s.length;o<u;++o)W(n,l),this.visitNodeAndTerminate(s[o]);W(n,--this.indentLevel),n.push("}")}else n.push(" {}")}visitReturnStatement(r){let e=r.value;e?(this.sb.push("return "),this.visitNode(e)):this.sb.push("return")}visitSwitchCase(r){let e=this.sb,t=r.label;t?(e.push("case "),this.visitNode(t),e.push(`:
326
+ `);let l=++this.indentLevel,o=r.members;for(let u=0,c=o.length;u<c;++u)q(n,l),this.visitNodeAndTerminate(o[u]);--this.indentLevel,n.push("}")}visitMethodDeclaration(r){let e=r.decorators;if(e)for(let t=0,n=e.length;t<n;++t)this.serializeDecorator(e[t]);this.serializeAccessModifiers(r),r.isAsync&&this.sb.push("async "),r.is(2048)?this.sb.push("get "):r.is(4096)&&this.sb.push("set "),this.visitFunctionCommon(r)}visitNamespaceDeclaration(r,e=!1){let t=r.decorators;if(t)for(let l=0,o=t.length;l<o;++l)this.serializeDecorator(t[l]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),n.push("namespace "),this.visitIdentifierExpression(r.name);let s=r.members;if(s.length){n.push(` {
327
+ `);let l=++this.indentLevel;for(let o=0,u=s.length;o<u;++o)q(n,l),this.visitNodeAndTerminate(s[o]);q(n,--this.indentLevel),n.push("}")}else n.push(" {}")}visitReturnStatement(r){let e=r.value;e?(this.sb.push("return "),this.visitNode(e)):this.sb.push("return")}visitSwitchCase(r){let e=this.sb,t=r.label;t?(e.push("case "),this.visitNode(t),e.push(`:
328
328
  `)):e.push(`default:
329
- `);let n=r.statements,s=n.length;if(s){let a=++this.indentLevel;W(e,a),this.visitNodeAndTerminate(n[0]);for(let l=1;l<s;++l)W(e,a),this.visitNodeAndTerminate(n[l]);--this.indentLevel}}visitSwitchStatement(r){let e=this.sb;e.push("switch ("),this.visitNode(r.condition),e.push(`) {
330
- `);let t=++this.indentLevel,n=r.cases;for(let s=0,a=n.length;s<a;++s)W(e,t),this.visitSwitchCase(n[s]),e.push(`
329
+ `);let n=r.statements,s=n.length;if(s){let a=++this.indentLevel;q(e,a),this.visitNodeAndTerminate(n[0]);for(let l=1;l<s;++l)q(e,a),this.visitNodeAndTerminate(n[l]);--this.indentLevel}}visitSwitchStatement(r){let e=this.sb;e.push("switch ("),this.visitNode(r.condition),e.push(`) {
330
+ `);let t=++this.indentLevel,n=r.cases;for(let s=0,a=n.length;s<a;++s)q(e,t),this.visitSwitchCase(n[s]),e.push(`
331
331
  `);--this.indentLevel,e.push("}")}visitThrowStatement(r){this.sb.push("throw "),this.visitNode(r.value)}visitTryStatement(r){let e=this.sb;e.push(`try {
332
- `);let t=++this.indentLevel,n=r.bodyStatements;for(let l=0,o=n.length;l<o;++l)W(e,t),this.visitNodeAndTerminate(n[l]);let s=r.catchVariable;if(s){W(e,t-1),e.push("} catch ("),this.visitIdentifierExpression(s),e.push(`) {
333
- `);let l=r.catchStatements;if(l)for(let o=0,u=l.length;o<u;++o)W(e,t),this.visitNodeAndTerminate(l[o])}let a=r.finallyStatements;if(a){W(e,t-1),e.push(`} finally {
334
- `);for(let l=0,o=a.length;l<o;++l)W(e,t),this.visitNodeAndTerminate(a[l])}W(e,t-1),e.push("}")}visitTypeDeclaration(r){let e=r.decorators;if(e)for(let s=0,a=e.length;s<a;++s)this.serializeDecorator(e[s]);let t=this.sb;this.serializeExternalModifiers(r),t.push("type "),this.visitIdentifierExpression(r.name);let n=r.typeParameters;if(n){let s=n.length;if(s){t.push("<");for(let a=0;a<s;++a)this.visitTypeParameter(n[a]);t.push(">")}}t.push(" = "),this.visitTypeNode(r.type)}visitModuleDeclaration(r){let e=this.sb;r.flags&4&&e.push("declare "),e.push('module "'),e.push(Re(r.moduleName,34)),e.push('"')}visitVariableDeclaration(r){this.visitIdentifierExpression(r.name);let e=r.type,t=this.sb;r.flags&16384&&t.push("!"),e&&(t.push(": "),this.visitTypeNode(e));let n=r.initializer;n&&(t.push(" = "),this.visitNode(n))}visitVariableStatement(r){let e=r.decorators;if(e)for(let l=0,o=e.length;l<o;++l)this.serializeDecorator(e[l]);let t=this.sb,n=r.declarations,s=assert(n.length),a=n[0];this.serializeExternalModifiers(a),t.push(a.is(8)?"const ":a.is(16)?"let ":"var "),this.visitVariableDeclaration(r.declarations[0]);for(let l=1;l<s;++l)t.push(", "),this.visitVariableDeclaration(r.declarations[l])}visitWhileStatement(r){let e=this.sb;e.push("while ("),this.visitNode(r.condition);let t=r.body;t.isEmpty?e.push(")"):(e.push(") "),this.visitNode(t))}serializeDecorator(r){let e=this.sb;e.push("@"),this.visitNode(r.name);let t=r.args;if(t){e.push("(");let n=t.length;if(n){this.visitNode(t[0]);for(let s=1;s<n;++s)e.push(", "),this.visitNode(t[s])}e.push(`)
332
+ `);let t=++this.indentLevel,n=r.bodyStatements;for(let l=0,o=n.length;l<o;++l)q(e,t),this.visitNodeAndTerminate(n[l]);let s=r.catchVariable;if(s){q(e,t-1),e.push("} catch ("),this.visitIdentifierExpression(s),e.push(`) {
333
+ `);let l=r.catchStatements;if(l)for(let o=0,u=l.length;o<u;++o)q(e,t),this.visitNodeAndTerminate(l[o])}let a=r.finallyStatements;if(a){q(e,t-1),e.push(`} finally {
334
+ `);for(let l=0,o=a.length;l<o;++l)q(e,t),this.visitNodeAndTerminate(a[l])}q(e,t-1),e.push("}")}visitTypeDeclaration(r){let e=r.decorators;if(e)for(let s=0,a=e.length;s<a;++s)this.serializeDecorator(e[s]);let t=this.sb;this.serializeExternalModifiers(r),t.push("type "),this.visitIdentifierExpression(r.name);let n=r.typeParameters;if(n){let s=n.length;if(s){t.push("<");for(let a=0;a<s;++a)this.visitTypeParameter(n[a]);t.push(">")}}t.push(" = "),this.visitTypeNode(r.type)}visitModuleDeclaration(r){let e=this.sb;r.flags&4&&e.push("declare "),e.push('module "'),e.push(Re(r.moduleName,34)),e.push('"')}visitVariableDeclaration(r){this.visitIdentifierExpression(r.name);let e=r.type,t=this.sb;r.flags&16384&&t.push("!"),e&&(t.push(": "),this.visitTypeNode(e));let n=r.initializer;n&&(t.push(" = "),this.visitNode(n))}visitVariableStatement(r){let e=r.decorators;if(e)for(let l=0,o=e.length;l<o;++l)this.serializeDecorator(e[l]);let t=this.sb,n=r.declarations,s=assert(n.length),a=n[0];this.serializeExternalModifiers(a),t.push(a.is(8)?"const ":a.is(16)?"let ":"var "),this.visitVariableDeclaration(r.declarations[0]);for(let l=1;l<s;++l)t.push(", "),this.visitVariableDeclaration(r.declarations[l])}visitWhileStatement(r){let e=this.sb;e.push("while ("),this.visitNode(r.condition);let t=r.body;t.isEmpty?e.push(")"):(e.push(") "),this.visitNode(t))}serializeDecorator(r){let e=this.sb;e.push("@"),this.visitNode(r.name);let t=r.args;if(t){e.push("(");let n=t.length;if(n){this.visitNode(t[0]);for(let s=1;s<n;++s)e.push(", "),this.visitNode(t[s])}e.push(`)
335
335
  `)}else e.push(`
336
- `);W(e,this.indentLevel)}serializeParameter(r){let e=this.sb,t=r.parameterKind,n=r.implicitFieldDeclaration;n&&this.serializeAccessModifiers(n),t==2&&e.push("..."),this.visitIdentifierExpression(r.name);let s=r.type,a=r.initializer;s&&(t==1&&!a&&e.push("?"),De(s)||(e.push(": "),this.visitTypeNode(s))),a&&(e.push(" = "),this.visitNode(a))}serializeExternalModifiers(r){let e=this.sb;r.is(2)?e.push("export "):r.is(1)?e.push("import "):r.is(4)&&e.push("declare ")}serializeAccessModifiers(r){let e=this.sb;r.is(4)&&e.push("declare "),r.is(256)?e.push("public "):r.is(512)?e.push("private "):r.is(1024)&&e.push("protected "),r.is(32)?e.push("static "):r.is(128)&&e.push("abstract "),r.is(64)&&e.push("readonly ")}finish(){let r=this.sb.join("");return this.sb=[],r}};var nee=V_;export{U_ as ASTBuilder,Yr as ArrayLiteralExpression,Xt as ArrowKind,Al as AssertionExpression,Qt as AssertionKind,Fa as AsyncLowerTransform,rf as AtomicRMWOp,Xl as AwaitExpression,Tl as BinaryExpression,Po as BinaryModule,en as BinaryOp,$o as BindResult,Jl as BlockStatement,Wb as BrOnOp,eo as BreakStatement,Sl as CallExpression,Er as Class,cs as ClassDeclaration,vl as ClassExpression,Os as ClassPrototype,ya as ClosureLowerTransform,Il as CommaExpression,$p as CommentKind,El as CommentNode,ze as CommonFlags,N as CommonNames,$l as CompiledExpression,pa as Compiler,Ef as ConditionKind,kf as ConstantValueKind,f_ as Constraints,kl as ConstructorExpression,to as ContinueStatement,dF as DEFAULT_STACK_SIZE,it as DeclarationStatement,Ar as DeclaredElement,Nt as DecoratorFlags,Rt as DecoratorKind,xl as DecoratorNode,ls as DiagnosticCategory,Xe as DiagnosticCode,tt as DiagnosticEmitter,hl as DiagnosticMessage,ro as DoStatement,Ds as Element,Fl as ElementAccessExpression,Et as ElementKind,io as EmptyStatement,Yo as Enum,no as EnumDeclaration,Jo as EnumValue,so as EnumValueDeclaration,hu as EnvAnalysisRecord,uo as ExportDefaultStatement,ao as ExportImportStatement,lo as ExportMember,ua as ExportNames,oo as ExportStatement,xe as Expression,ei as ExpressionId,Bo as ExpressionRunnerFlags,co as ExpressionStatement,tf as ExternalKind,BF as FEATURES_ALL,NF as FEATURES_DEFAULT,xF as FEATURE_BULK_MEMORY,TF as FEATURE_EXCEPTION_HANDLING,RF as FEATURE_EXTENDED_CONST,kF as FEATURE_GC,FF as FEATURE_MEMORY64,IF as FEATURE_MULTI_VALUE,gF as FEATURE_MUTABLE_GLOBALS,bF as FEATURE_NONTRAPPING_F2I,vF as FEATURE_REFERENCE_TYPES,wF as FEATURE_RELAXED_SIMD,PF as FEATURE_SHARED_EVERYTHING,yF as FEATURE_SIGN_EXTENSION,EF as FEATURE_SIMD,CF as FEATURE_STRINGREF,SF as FEATURE_TAIL_CALLS,AF as FEATURE_THREADS,Hl as FalseExpression,Kt as Feature,ef as FeatureFlags,po as FieldDeclaration,xf as FieldFlags,Us as File,gl as FixedArrayTypeNode,wl as FloatLiteralExpression,Jt as Flow,Oo as FlowFlags,_o as ForOfStatement,fo as ForStatement,Lt as Function,ps as FunctionDeclaration,Rl as FunctionExpression,lt as FunctionPrototype,$r as FunctionTypeNode,rl as GETTER_PREFIX,ti as Global,Ie as HeapTypeRef,Qe as INDEX_SUFFIX,Np as INNER_DELIMITER,Bp as INSTANCE_DELIMITER,rt as IdentifierExpression,Xp as IdentifierHandling,ho as IfStatement,mo as ImportDeclaration,gn as ImportNames,fs as ImportStatement,Ps as IndexSignature,Yl as IndexSignatureNode,Cl as InstanceOfExpression,Pl as IntegerLiteralExpression,Bs as Interface,yo as InterfaceDeclaration,eu as InterfacePrototype,_n as JSBuilder,Ft as LIBRARY_PREFIX,Fb as LIBRARY_SUBST,Zl as LazyExpression,wt as LiteralExpression,pt as LiteralKind,ye as Local,ws as LocalFlags,_s as MemoryModel,ax as MemoryModelCode,Ub as MemoryOrder,Ji as MemorySegment,Jr as MethodDeclaration,Yt as Module,So as ModuleDeclaration,Zr as NamedTypeNode,Vs as Namespace,go as NamespaceDeclaration,Bl as NewExpression,h as Node,$e as NodeKind,Nl as NullExpression,Ll as ObjectLiteralExpression,Ml as OmittedExpression,Me as OperatorKind,ca as Options,z1 as PARENT_SUBST,mt as PATH_DELIMITER,ms as PackedType,Sf as Parameter,jt as ParameterKind,Zi as ParameterNode,zl as ParenthesizedExpression,Ms as Parser,tx as Precedence,zs as Program,Cs as Property,Dl as PropertyAccessExpression,sn as PropertyPrototype,ue as Range,Vb as RefAsOp,Gl as RegexpLiteralExpression,Co as Relooper,jo as ReportMode,Rs as Resolver,bo as ReturnStatement,el as Runtime,__ as RuntimeFeatures,il as SETTER_PREFIX,nf as SIMDExtractOp,lf as SIMDLoadOp,of as SIMDLoadStoreLaneOp,sf as SIMDReplaceOp,af as SIMDShiftOp,uf as SIMDTernaryOp,es as STATIC_DELIMITER,Lp as STUB_DELIMITER,bf as SideEffects,de as Signature,Te as Source,Yi as SourceKind,ml as State,me as Statement,jb as StringEncodeOp,Qb as StringEqOp,Vl as StringLiteralExpression,Hb as StringMeasureOp,Kb as StringNewOp,Ol as SuperExpression,ys as SwitchBuilder,xo as SwitchCase,Eo as SwitchStatement,bn as TSDBuilder,Gi as Target,ql as TemplateLiteralExpression,Ul as TernaryExpression,Wl as ThisExpression,Ao as ThrowStatement,bt as Token,os as Tokenizer,Kl as TrueExpression,To as TryStatement,yl as TupleTypeNode,p as Type,Jp as TypeBuilderErrorReason,vo as TypeDeclaration,at as TypeDefinition,Bt as TypeFlags,xr as TypeKind,Xi as TypeName,Xr as TypeNode,bl as TypeParameterNode,P as TypeRef,rr as TypedElement,Ui as Typeinfo,tl as TypeinfoFlags,us as UnaryExpression,gs as UnaryOp,jl as UnaryPostfixExpression,Ql as UnaryPrefixExpression,qo as UncheckedBehavior,Io as VariableDeclaration,$i as VariableLikeDeclarationStatement,ri as VariableLikeElement,ko as VariableStatement,Fo as VoidStatement,wo as WhileStatement,Ob as WideIntAddSubOp,qb as WideIntMulOp,oF as addGlobalAlias,Ee as allocPtrArray,Xx as applyInTreeTransforms,ow as buildJS,lw as buildTSD,aw as compile,ft as createType,nee as default,ou as defaultFeatures,Mb as diagnosticCategoryToColor,jp as diagnosticCategoryToString,sl as diagnosticCodeToString,Fs as ensureType,cf as expandType,Di as featureToString,Zt as findDecorator,zb as formatDiagnostic,zb as formatDiagnosticMessage,st as getBinaryLeft,tn as getBinaryOp,We as getBinaryRight,uw as getBinaryenModuleRef,Ss as getBlockChildAt,Ts as getBlockChildCount,As as getBlockName,gE as getBreakCondition,yE as getBreakName,Je as getCallOperandAt,Pt as getCallOperandCount,Is as getCallTarget,Ce as getConstValueF32,Pe as getConstValueF64,ae as getConstValueI32,Ge as getConstValueI64High,Be as getConstValueI64Low,pf as getConstValueInteger,ff as getConstValueV128,sx as getDefaultParameterName,nw as getDependee,KF as getDiagnosticCategory,WF as getDiagnosticCode,HF as getDiagnosticMessage,jF as getDiagnosticRange,QF as getDiagnosticRelatedRange,xE as getDropValue,re as getExpressionId,ce as getExpressionType,TE as getFunctionBody,yf as getFunctionName,SE as getFunctionParams,vE as getFunctionResults,IE as getFunctionVars,xs as getGlobalGetName,wE as getGlobalInit,kE as getGlobalName,FE as getGlobalType,Go as getIfCondition,rn as getIfFalse,vs as getIfTrue,_f as getLoadBytes,uE as getLoadOffset,cE as getLoadPtr,Ct as getLocalGetIndex,Mo as getLocalSetIndex,zo as getLocalSetValue,mE as getLoopBody,hE as getLoopName,AE as getMemoryGrowDelta,ZF as getRangeEnd,$F as getRangeSource,XF as getRangeStart,EE as getReturnValue,bE as getSelectCondition,mf as getSelectElse,hf as getSelectThen,ks as getSideEffects,qF as getSource,YF as getSourceNormalizedPath,pE as getStoreBytes,fE as getStoreOffset,_E as getStorePtr,dE as getStoreValue,RE as getTagName,CE as getTagParams,PE as getTagResults,Es as getUnaryOp,Do as getUnaryValue,sw as initializeProgram,Lo as isConstExpressionNaN,oE as isConstNaN,No as isConstNegZero,xt as isConstNonZero,nt as isConstZero,Gs as isDeclaredElement,tw as isError,gf as isGlobalMutable,Zp as isIllegalVariableIdentifier,JF as isInfo,df as isLoadSigned,bs as isLocalTee,Xb as isNullableType,De as isTypeOmitted,Ko as isTypedElement,ew as isWarning,Ke as mangleInternalName,ds as mangleInternalPath,Uo as mustPreserveSideEffects,jk as newOptions,VF as newProgram,OF as nextDiagnostic,iw as nextFile,Le as operatorTokenToString,pw as optimize,rw as parse,Ye as readString,uF as removeGlobalAlias,dn as runtimeFunctions,hn as runtimeGlobals,zF as setBasenameHint,DF as setBindingsHint,mF as setBundleVersion,UF as setDebugInfo,$k as setExportMemory,_F as setExportRuntime,cF as setExportStart,iF as setExportTable,LF as setFeature,Yk as setImportMemory,rF as setImportTable,Jk as setInitialMemory,fF as setLowMemoryLimit,eF as setMaximumMemory,aF as setMemoryBase,Zk as setNoAssert,pF as setNoUnsafe,MF as setOptimizeLevelHints,GF as setPedantic,Xk as setRuntime,tF as setSharedMemory,nF as setSourceMap,hF as setStackSize,lF as setTableBase,Qk as setTarget,sF as setUncheckedBehavior,Db as tokenFromKeyword,Gb as tokenIsAlsoIdentifier,an as typesToRefs,Ho as typesToString,Hp as util,cw as validate};
336
+ `);q(e,this.indentLevel)}serializeParameter(r){let e=this.sb,t=r.parameterKind,n=r.implicitFieldDeclaration;n&&this.serializeAccessModifiers(n),t==2&&e.push("..."),this.visitIdentifierExpression(r.name);let s=r.type,a=r.initializer;s&&(t==1&&!a&&e.push("?"),De(s)||(e.push(": "),this.visitTypeNode(s))),a&&(e.push(" = "),this.visitNode(a))}serializeExternalModifiers(r){let e=this.sb;r.is(2)?e.push("export "):r.is(1)?e.push("import "):r.is(4)&&e.push("declare ")}serializeAccessModifiers(r){let e=this.sb;r.is(4)&&e.push("declare "),r.is(256)?e.push("public "):r.is(512)?e.push("private "):r.is(1024)&&e.push("protected "),r.is(32)?e.push("static "):r.is(128)&&e.push("abstract "),r.is(64)&&e.push("readonly ")}finish(){let r=this.sb.join("");return this.sb=[],r}};var nee=V_;export{U_ as ASTBuilder,Yr as ArrayLiteralExpression,Xt as ArrowKind,Al as AssertionExpression,Qt as AssertionKind,Fa as AsyncLowerTransform,rf as AtomicRMWOp,Xl as AwaitExpression,Tl as BinaryExpression,Po as BinaryModule,en as BinaryOp,$o as BindResult,Jl as BlockStatement,Wb as BrOnOp,eo as BreakStatement,Sl as CallExpression,Er as Class,cs as ClassDeclaration,vl as ClassExpression,Os as ClassPrototype,ya as ClosureLowerTransform,Il as CommaExpression,$p as CommentKind,El as CommentNode,ze as CommonFlags,N as CommonNames,$l as CompiledExpression,pa as Compiler,Ef as ConditionKind,kf as ConstantValueKind,f_ as Constraints,kl as ConstructorExpression,to as ContinueStatement,dF as DEFAULT_STACK_SIZE,it as DeclarationStatement,Ar as DeclaredElement,Nt as DecoratorFlags,Rt as DecoratorKind,xl as DecoratorNode,ls as DiagnosticCategory,Xe as DiagnosticCode,tt as DiagnosticEmitter,hl as DiagnosticMessage,ro as DoStatement,Ds as Element,Fl as ElementAccessExpression,Et as ElementKind,io as EmptyStatement,Yo as Enum,no as EnumDeclaration,Jo as EnumValue,so as EnumValueDeclaration,hu as EnvAnalysisRecord,uo as ExportDefaultStatement,ao as ExportImportStatement,lo as ExportMember,ua as ExportNames,oo as ExportStatement,xe as Expression,ei as ExpressionId,Bo as ExpressionRunnerFlags,co as ExpressionStatement,tf as ExternalKind,BF as FEATURES_ALL,NF as FEATURES_DEFAULT,xF as FEATURE_BULK_MEMORY,TF as FEATURE_EXCEPTION_HANDLING,RF as FEATURE_EXTENDED_CONST,kF as FEATURE_GC,FF as FEATURE_MEMORY64,IF as FEATURE_MULTI_VALUE,gF as FEATURE_MUTABLE_GLOBALS,bF as FEATURE_NONTRAPPING_F2I,vF as FEATURE_REFERENCE_TYPES,wF as FEATURE_RELAXED_SIMD,PF as FEATURE_SHARED_EVERYTHING,yF as FEATURE_SIGN_EXTENSION,EF as FEATURE_SIMD,CF as FEATURE_STRINGREF,SF as FEATURE_TAIL_CALLS,AF as FEATURE_THREADS,Hl as FalseExpression,Kt as Feature,ef as FeatureFlags,po as FieldDeclaration,xf as FieldFlags,Us as File,gl as FixedArrayTypeNode,wl as FloatLiteralExpression,Jt as Flow,Oo as FlowFlags,_o as ForOfStatement,fo as ForStatement,Lt as Function,ps as FunctionDeclaration,Rl as FunctionExpression,lt as FunctionPrototype,$r as FunctionTypeNode,rl as GETTER_PREFIX,ti as Global,Ie as HeapTypeRef,Qe as INDEX_SUFFIX,Np as INNER_DELIMITER,Bp as INSTANCE_DELIMITER,rt as IdentifierExpression,Xp as IdentifierHandling,ho as IfStatement,mo as ImportDeclaration,gn as ImportNames,fs as ImportStatement,Ps as IndexSignature,Yl as IndexSignatureNode,Cl as InstanceOfExpression,Pl as IntegerLiteralExpression,Bs as Interface,yo as InterfaceDeclaration,eu as InterfacePrototype,_n as JSBuilder,Ft as LIBRARY_PREFIX,Fb as LIBRARY_SUBST,Zl as LazyExpression,wt as LiteralExpression,pt as LiteralKind,ye as Local,ws as LocalFlags,_s as MemoryModel,ax as MemoryModelCode,Ub as MemoryOrder,Ji as MemorySegment,Jr as MethodDeclaration,Yt as Module,So as ModuleDeclaration,Zr as NamedTypeNode,Vs as Namespace,go as NamespaceDeclaration,Bl as NewExpression,h as Node,$e as NodeKind,Nl as NullExpression,Ll as ObjectLiteralExpression,Ml as OmittedExpression,Me as OperatorKind,ca as Options,z1 as PARENT_SUBST,mt as PATH_DELIMITER,ms as PackedType,Sf as Parameter,jt as ParameterKind,Zi as ParameterNode,zl as ParenthesizedExpression,Ms as Parser,tx as Precedence,zs as Program,Cs as Property,Dl as PropertyAccessExpression,sn as PropertyPrototype,ue as Range,Vb as RefAsOp,Gl as RegexpLiteralExpression,Co as Relooper,jo as ReportMode,Rs as Resolver,bo as ReturnStatement,el as Runtime,__ as RuntimeFeatures,il as SETTER_PREFIX,nf as SIMDExtractOp,lf as SIMDLoadOp,of as SIMDLoadStoreLaneOp,sf as SIMDReplaceOp,af as SIMDShiftOp,uf as SIMDTernaryOp,es as STATIC_DELIMITER,Lp as STUB_DELIMITER,bf as SideEffects,de as Signature,Te as Source,Yi as SourceKind,ml as State,me as Statement,jb as StringEncodeOp,Qb as StringEqOp,Vl as StringLiteralExpression,Hb as StringMeasureOp,Kb as StringNewOp,Ol as SuperExpression,ys as SwitchBuilder,xo as SwitchCase,Eo as SwitchStatement,bn as TSDBuilder,Gi as Target,ql as TemplateLiteralExpression,Ul as TernaryExpression,Wl as ThisExpression,Ao as ThrowStatement,bt as Token,os as Tokenizer,Kl as TrueExpression,To as TryStatement,yl as TupleTypeNode,p as Type,Jp as TypeBuilderErrorReason,vo as TypeDeclaration,at as TypeDefinition,Bt as TypeFlags,xr as TypeKind,Xi as TypeName,Xr as TypeNode,bl as TypeParameterNode,B as TypeRef,rr as TypedElement,Ui as Typeinfo,tl as TypeinfoFlags,us as UnaryExpression,gs as UnaryOp,jl as UnaryPostfixExpression,Ql as UnaryPrefixExpression,qo as UncheckedBehavior,Io as VariableDeclaration,$i as VariableLikeDeclarationStatement,ri as VariableLikeElement,ko as VariableStatement,Fo as VoidStatement,wo as WhileStatement,Ob as WideIntAddSubOp,qb as WideIntMulOp,oF as addGlobalAlias,Ee as allocPtrArray,Xx as applyInTreeTransforms,ow as buildJS,lw as buildTSD,aw as compile,ft as createType,nee as default,ou as defaultFeatures,Mb as diagnosticCategoryToColor,jp as diagnosticCategoryToString,sl as diagnosticCodeToString,Fs as ensureType,cf as expandType,Di as featureToString,Zt as findDecorator,zb as formatDiagnostic,zb as formatDiagnosticMessage,st as getBinaryLeft,tn as getBinaryOp,We as getBinaryRight,uw as getBinaryenModuleRef,Ss as getBlockChildAt,Ts as getBlockChildCount,As as getBlockName,gE as getBreakCondition,yE as getBreakName,Je as getCallOperandAt,Pt as getCallOperandCount,Is as getCallTarget,Ce as getConstValueF32,Pe as getConstValueF64,ae as getConstValueI32,Ge as getConstValueI64High,Be as getConstValueI64Low,pf as getConstValueInteger,ff as getConstValueV128,sx as getDefaultParameterName,nw as getDependee,KF as getDiagnosticCategory,WF as getDiagnosticCode,HF as getDiagnosticMessage,jF as getDiagnosticRange,QF as getDiagnosticRelatedRange,xE as getDropValue,re as getExpressionId,ce as getExpressionType,TE as getFunctionBody,yf as getFunctionName,SE as getFunctionParams,vE as getFunctionResults,IE as getFunctionVars,xs as getGlobalGetName,wE as getGlobalInit,kE as getGlobalName,FE as getGlobalType,Go as getIfCondition,rn as getIfFalse,vs as getIfTrue,_f as getLoadBytes,uE as getLoadOffset,cE as getLoadPtr,Ct as getLocalGetIndex,Mo as getLocalSetIndex,zo as getLocalSetValue,mE as getLoopBody,hE as getLoopName,AE as getMemoryGrowDelta,ZF as getRangeEnd,$F as getRangeSource,XF as getRangeStart,EE as getReturnValue,bE as getSelectCondition,mf as getSelectElse,hf as getSelectThen,ks as getSideEffects,qF as getSource,YF as getSourceNormalizedPath,pE as getStoreBytes,fE as getStoreOffset,_E as getStorePtr,dE as getStoreValue,RE as getTagName,CE as getTagParams,PE as getTagResults,Es as getUnaryOp,Do as getUnaryValue,sw as initializeProgram,Lo as isConstExpressionNaN,oE as isConstNaN,No as isConstNegZero,xt as isConstNonZero,nt as isConstZero,Gs as isDeclaredElement,tw as isError,gf as isGlobalMutable,Zp as isIllegalVariableIdentifier,JF as isInfo,df as isLoadSigned,bs as isLocalTee,Xb as isNullableType,De as isTypeOmitted,Ko as isTypedElement,ew as isWarning,Ke as mangleInternalName,ds as mangleInternalPath,Uo as mustPreserveSideEffects,jk as newOptions,VF as newProgram,OF as nextDiagnostic,iw as nextFile,Le as operatorTokenToString,pw as optimize,rw as parse,Ye as readString,uF as removeGlobalAlias,dn as runtimeFunctions,hn as runtimeGlobals,zF as setBasenameHint,DF as setBindingsHint,mF as setBundleVersion,UF as setDebugInfo,$k as setExportMemory,_F as setExportRuntime,cF as setExportStart,iF as setExportTable,LF as setFeature,Yk as setImportMemory,rF as setImportTable,Jk as setInitialMemory,fF as setLowMemoryLimit,eF as setMaximumMemory,aF as setMemoryBase,Zk as setNoAssert,pF as setNoUnsafe,MF as setOptimizeLevelHints,GF as setPedantic,Xk as setRuntime,tF as setSharedMemory,nF as setSourceMap,hF as setStackSize,lF as setTableBase,Qk as setTarget,sF as setUncheckedBehavior,Db as tokenFromKeyword,Gb as tokenIsAlsoIdentifier,an as typesToRefs,Ho as typesToString,Hp as util,cw as validate};
337
337
  //# sourceMappingURL=assemblyscript.js.map