@arcgis/core 5.2.0-next.43 → 5.2.0-next.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0115681a3de6df0aebdf.js +1 -0
- package/assets/esri/core/workers/chunks/025caafc70ac26f0a4ed.js +1 -0
- package/assets/esri/core/workers/chunks/{9de18cea5780319302cb.js → 04a167c110fb7811169d.js} +1 -1
- package/assets/esri/core/workers/chunks/{72fe7fb03c156f26a589.js → 08e18fb12533fc76e49c.js} +1 -1
- package/assets/esri/core/workers/chunks/{60e8524d324fd14444d7.js → 0a0732ba8271d7dc985c.js} +1 -1
- package/assets/esri/core/workers/chunks/{e6b5c015205d38abe037.js → 127b111ee53e4b9184f8.js} +1 -1
- package/assets/esri/core/workers/chunks/{2d7cfc68a38dabd8898a.js → 176c5eaaa23a479c88e0.js} +1 -1
- package/assets/esri/core/workers/chunks/1d1f5578c7d8619f7a46.js +1 -0
- package/assets/esri/core/workers/chunks/268637fd6c50264acfc3.js +1 -0
- package/assets/esri/core/workers/chunks/296fa9fb80e521c30cb1.js +1 -0
- package/assets/esri/core/workers/chunks/{d7775ed1402946e414ef.js → 2974cddb0b0f67df7d2d.js} +1 -1
- package/assets/esri/core/workers/chunks/{e9511627418c6864148a.js → 305ee2dd597c48a38e64.js} +1 -1
- package/assets/esri/core/workers/chunks/{ce2320e7b9c4ca96ff27.js → 3252da57b800356116af.js} +1 -1
- package/assets/esri/core/workers/chunks/{fd47ee8598e37fea03fe.js → 384b619854ef8a3f6e94.js} +1 -1
- package/assets/esri/core/workers/chunks/3af923abeb6e65c4468f.js +1 -0
- package/assets/esri/core/workers/chunks/{20fefb9278501781de14.js → 3f4f1595c8a77d072b04.js} +1 -1
- package/assets/esri/core/workers/chunks/4f09f208ece2ec1db727.js +1 -0
- package/assets/esri/core/workers/chunks/{57a1e2b716b74f0124f7.js → 549295a5db9bf1536491.js} +1 -1
- package/assets/esri/core/workers/chunks/{284e88805184334396fe.js → 57374213084bef59b776.js} +1 -1
- package/assets/esri/core/workers/chunks/{2a8d791aef3123e6a3c4.js → 57970d43cdcc5cf57a30.js} +1 -1
- package/assets/esri/core/workers/chunks/{dedf678490572c500a19.js → 5b937c405788fd14be8b.js} +2 -2
- package/assets/esri/core/workers/chunks/5f9c4dad6952c4c58ebf.js +1 -0
- package/assets/esri/core/workers/chunks/706230b70a36d2e038f7.js +1 -0
- package/assets/esri/core/workers/chunks/{e2f45990d8459d14cb90.js → 76713b700e053f8bad29.js} +1 -1
- package/assets/esri/core/workers/chunks/8a01fe8d78ca85ea4784.js +1 -0
- package/assets/esri/core/workers/chunks/93e705c1147cc8ceca02.js +1 -0
- package/assets/esri/core/workers/chunks/{d082de5dd83bd73d209b.js → 94cebc34e49da1e295ed.js} +1 -1
- package/assets/esri/core/workers/chunks/{34fcb776e4de1d870bbd.js → a38a7e3a5aa9294ab918.js} +2 -2
- package/assets/esri/core/workers/chunks/a8033e606b2db1ee332d.js +1 -0
- package/assets/esri/core/workers/chunks/{6f408397e2c8a2ea9805.js → aea247138617e12b699b.js} +1 -1
- package/assets/esri/core/workers/chunks/{26e7884d8639df4d994b.js → b03dcf3d55266745f3d1.js} +1 -1
- package/assets/esri/core/workers/chunks/{c0637d1c9337a6ba46b0.js → b3cefc1895bfd62fc440.js} +1 -1
- package/assets/esri/core/workers/chunks/{ec1a2e68957fae48e60b.js → b75db3b1becf8265ec59.js} +3 -3
- package/assets/esri/core/workers/chunks/{89682d9d4f606f82056b.js → bac4d4a9f3a9b7f6864d.js} +2 -2
- package/assets/esri/core/workers/chunks/{2f29f08cddd5add9388e.js → c01a121ebe571a848452.js} +1 -1
- package/assets/esri/core/workers/chunks/{c1845682cc9a5aac8703.js → c316234837b7ca406b1c.js} +3 -3
- package/assets/esri/core/workers/chunks/c3cd38ca8690286d40d7.js +1 -0
- package/assets/esri/core/workers/chunks/c6042825f61cd70d54d8.js +1 -0
- package/assets/esri/core/workers/chunks/{0646524250bb9fe82935.js → d8b67ca02cdc1e8191e3.js} +1 -1
- package/assets/esri/core/workers/chunks/db416ba3132034e20642.js +1 -0
- package/assets/esri/core/workers/chunks/{4063ea53cba3dd897e53.js → e5c19e9b6fa53abdca8c.js} +12 -12
- package/assets/esri/core/workers/chunks/f9b2727b41943d83d4ca.js +1 -0
- package/assets/esri/core/workers/chunks/{d45e30f15142b5861111.js → fc880b275f5eaf42171e.js} +1 -1
- package/assets/esri/libs/basisu/basis_encoder.wasm +0 -0
- package/assets/esri/libs/dxtEncoder/dxt_encoder.wasm +0 -0
- package/chunks/Fog.glsl.js +3 -3
- package/chunks/GlobalIllumination.glsl.js +21 -21
- package/chunks/GlobalIlluminationBlur.glsl.js +1 -1
- package/chunks/GlowComposition.glsl.js +3 -3
- package/chunks/OITAddEmission.glsl.js +1 -1
- package/chunks/basis_encoder.js +1 -1
- package/chunks/dxt_encoder.js +1 -1
- package/config.js +1 -1
- package/geometry/support/aaBoundingBox.js +1 -1
- package/geometry/support/frustum.js +1 -1
- package/kernel.js +1 -1
- package/package.json +2 -2
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
- package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticComponentGeometryBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Transform.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +4 -4
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/fog/FogTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowBlurTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowComposition.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowCompositionTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITAddEmission.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendFragmentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +2 -2
- package/views/3d/webgl-engine/shaders/{oitResolution.glsl.js → floatBlendScale.glsl.js} +1 -1
- package/views/input/BrowserEventSource.js +1 -1
- package/views/input/InputManager.js +1 -1
- package/views/support/TextureCompressionWorker.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/0d6afba80d2f8dcb5cf7.js +0 -1
- package/assets/esri/core/workers/chunks/1276df03201c1b855fee.js +0 -1
- package/assets/esri/core/workers/chunks/23570397304969f724b3.js +0 -1
- package/assets/esri/core/workers/chunks/474ea8c97d101e41b3f5.js +0 -1
- package/assets/esri/core/workers/chunks/7cb0681cc6a5e956cb15.js +0 -1
- package/assets/esri/core/workers/chunks/8b73694d5a97638a3a61.js +0 -1
- package/assets/esri/core/workers/chunks/8dee03779b569f233daf.js +0 -1
- package/assets/esri/core/workers/chunks/9ebc98746b1f085b82b7.js +0 -1
- package/assets/esri/core/workers/chunks/9ee3741eef73f3edb18b.js +0 -1
- package/assets/esri/core/workers/chunks/af97e19516dbbcfb5286.js +0 -1
- package/assets/esri/core/workers/chunks/b4047333265a2665aef9.js +0 -1
- package/assets/esri/core/workers/chunks/cce83896093279c70449.js +0 -1
- package/assets/esri/core/workers/chunks/d5561dff043789494845.js +0 -1
- package/assets/esri/core/workers/chunks/e2c9393bec747f7876bb.js +0 -1
- package/assets/esri/core/workers/chunks/e94f2d6037fba042dc6e.js +0 -1
- package/assets/esri/core/workers/chunks/f5d7f69047e1b1116202.js +0 -1
- package/views/2d/engine/webgl/MaterialManager.js +0 -2
- package/views/2d/engine/webgl/shaders/MaterialPrograms.js +0 -2
- package/views/2d/engine/webgl/shaders/sources/resolver.js +0 -2
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +0 -2
- package/views/webgl/ShaderCompiler.js +0 -2
- /package/assets/esri/core/workers/chunks/{89682d9d4f606f82056b.js.LICENSE.txt → bac4d4a9f3a9b7f6864d.js.LICENSE.txt} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n,If as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as u}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n,If as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as u}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{floatBlendScale as d}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as p}from"../views/webgl/enums.js";import{NoParameters as g}from"../views/webgl/NoParameters.js";import{ShaderBuilder as f}from"../views/webgl/ShaderBuilder.js";const x=.01,v=.008,M=.002,y=.5,b=.02,w=.1,S=.008,W=.012,D=.008,R=40,F=.095,j=.008,I=60,B=2,C=.0039,z=.25,G=.15,P=25,T=.15,E=.5,$=1,L=1,O=16;class V extends g{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=T,this.rayMarchMaxReach=E,this.rayMarchWorldReach=P,this.rayMarchMinReachEmissionWeight=$,this.rayMarchMaxReachEmissionWeight=L,this.rayMarchMaxSteps=O,this.colorBleedWeight=G}}function U(g){const G=new f,P=G.fragment;return G.include(e),G.include(i),r(P),P.include(a),P.include(t),P.include(u),G.include(o,g),P.uniforms.add(new h("normalMap",e=>e.normalTexture),new h("depthMap",e=>e.depthTexture),new m("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new m("lastFrameDepthTexture",e=>e.reprojection.lastFrameDepth?.attachment),new m("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new m("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(p)),new c("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new c("view",e=>e.camera.viewMatrix),new l("accumulatedFrames",e=>e.accumulatedFrames),new l("temporalSampleFrame",e=>e.temporalSampleFrame),new l("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),P.uniforms.add(new l("rayMarchMinReach",e=>e.rayMarchMinReach),new l("rayMarchMaxReach",e=>e.rayMarchMaxReach),new l("rayMarchWorldReach",e=>e.rayMarchWorldReach),new l("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new l("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new l("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new l("colorBleedWeight",e=>e.colorBleedWeight)),g.hasEmission&&(P.include(d,g),P.uniforms.add(new m("lastFrameEmissionTexture",e=>e.reprojection.lastFrameEmission?.attachment))),P.code.add(n`
|
|
3
3
|
float computeIdleColorBlendWeight(float accumulatedFrames) {
|
|
4
4
|
float idleColorBlendProgress = clamp(
|
|
5
|
-
accumulatedFrames / ${n.float(
|
|
5
|
+
accumulatedFrames / ${n.float(R)},
|
|
6
6
|
0.0,
|
|
7
7
|
1.0
|
|
8
8
|
);
|
|
@@ -15,14 +15,14 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
15
15
|
|
|
16
16
|
float computeIdleOcclusionBlendWeight(float accumulatedFrames) {
|
|
17
17
|
float idleOcclusionBlendProgress = clamp(
|
|
18
|
-
accumulatedFrames / ${n.float(
|
|
18
|
+
accumulatedFrames / ${n.float(I)},
|
|
19
19
|
0.0,
|
|
20
20
|
1.0
|
|
21
21
|
);
|
|
22
22
|
return mix(
|
|
23
|
-
${n.float(R)},
|
|
24
23
|
${n.float(F)},
|
|
25
|
-
|
|
24
|
+
${n.float(j)},
|
|
25
|
+
pow(idleOcclusionBlendProgress, ${n.float(B)})
|
|
26
26
|
);
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -77,7 +77,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
77
77
|
|
|
78
78
|
return value * 2.0 - 1.0;
|
|
79
79
|
}
|
|
80
|
-
`),
|
|
80
|
+
`),G.outputs.add("fragGlobalIllumination","vec4",0),G.outputs.add("fragWeight","float",1),P.main.add(n`
|
|
81
81
|
float depth = depthFromTexture(depthMap, uv);
|
|
82
82
|
|
|
83
83
|
// Early out if depth is out of range, such as in the sky
|
|
@@ -117,7 +117,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
117
117
|
float idleColorBlendWeight = computeIdleColorBlendWeight(accumulatedFrames);
|
|
118
118
|
float idleOcclusionBlendWeight = computeIdleOcclusionBlendWeight(accumulatedFrames);
|
|
119
119
|
float reprojectionDepthMismatch = abs((lastFrameDepthViewPos + reprojectedViewPos.z) / max(lastFrameDepthViewPos, reprojectedViewPos.z));
|
|
120
|
-
bool hasReprojectionMismatch = reprojectionDepthMismatch > ${n.float(
|
|
120
|
+
bool hasReprojectionMismatch = reprojectionDepthMismatch > ${n.float(x)};
|
|
121
121
|
bool isScaledGlobalIllumination = scaleGlobalIllumination < 1.0;
|
|
122
122
|
bool isLowQualityEdgePixel = isScaledGlobalIllumination && isEdgeDepth(currentPixelDepth, uv);
|
|
123
123
|
bool resetColorHistory = false;
|
|
@@ -126,7 +126,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
126
126
|
if (hasReprojectionMismatch) {
|
|
127
127
|
if (isLowQualityEdgePixel) {
|
|
128
128
|
steps = 1;
|
|
129
|
-
occlusionBlendWeight = ${n.float(
|
|
129
|
+
occlusionBlendWeight = ${n.float(v)};
|
|
130
130
|
resetColorHistory = true;
|
|
131
131
|
} else {
|
|
132
132
|
steps = 6;
|
|
@@ -135,15 +135,15 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
135
135
|
}
|
|
136
136
|
} else {
|
|
137
137
|
steps = 1;
|
|
138
|
-
if (historyOcclusionBlendWeight > ${n.float(
|
|
139
|
-
occlusionBlendWeight = ${n.float(
|
|
140
|
-
colorBlendWeight = ${n.float(
|
|
141
|
-
} else if (historyOcclusionBlendWeight > ${n.float(
|
|
138
|
+
if (historyOcclusionBlendWeight > ${n.float(y)}) {
|
|
139
|
+
occlusionBlendWeight = ${n.float(w)};
|
|
140
|
+
colorBlendWeight = ${n.float(S)};
|
|
141
|
+
} else if (historyOcclusionBlendWeight > ${n.float(b)}) {
|
|
142
142
|
occlusionBlendWeight = historyOcclusionBlendWeight - 0.05;
|
|
143
|
-
colorBlendWeight = ${n.float(
|
|
143
|
+
colorBlendWeight = ${n.float(S)};
|
|
144
144
|
} else {
|
|
145
|
-
occlusionBlendWeight = isScaledGlobalIllumination ? ${n.float(
|
|
146
|
-
colorBlendWeight = isScaledGlobalIllumination ? ${n.float(
|
|
145
|
+
occlusionBlendWeight = isScaledGlobalIllumination ? ${n.float(v)} : idleOcclusionBlendWeight;
|
|
146
|
+
colorBlendWeight = isScaledGlobalIllumination ? ${n.float(M)} : idleColorBlendWeight;
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
|
|
@@ -173,14 +173,14 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
173
173
|
);
|
|
174
174
|
|
|
175
175
|
if (hit.z > 0.0) {
|
|
176
|
-
${s(
|
|
176
|
+
${s(g.hasColor,n`
|
|
177
177
|
// Emission and color bleed - Reproject the current receiver and sampled hit to estimate bounced color
|
|
178
178
|
vec3 receiverColor = texture(lastFrameColorTexture, reprojectedCoordinate.xy).rgb;
|
|
179
179
|
|
|
180
180
|
vec2 hitReprojectedCoordinate = reprojectionCoordinate(hit);
|
|
181
181
|
vec3 sourceColor = texture(lastFrameColorTexture, hitReprojectedCoordinate).rgb;
|
|
182
182
|
vec3 sourceColorLinear = linearizeGamma(sourceColor);
|
|
183
|
-
vec3 sourceEmission = ${s(
|
|
183
|
+
vec3 sourceEmission = ${s(g.hasEmission,"texture(lastFrameEmissionTexture, hitReprojectedCoordinate).xyz * floatBlendInputScale","vec3(0.0)")};
|
|
184
184
|
|
|
185
185
|
float emissionWeight = mix(
|
|
186
186
|
rayMarchMinReachEmissionWeight,
|
|
@@ -201,13 +201,13 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
201
201
|
|
|
202
202
|
// Rendering trick add noise to reduce accumulation artifacts
|
|
203
203
|
float accumulationDither = occlusionBlendWeight < 1.0
|
|
204
|
-
? randomDirectionSample.b * ${n.float(
|
|
204
|
+
? randomDirectionSample.b * ${n.float(C)}
|
|
205
205
|
: 0.0;
|
|
206
206
|
|
|
207
|
-
${s(
|
|
207
|
+
${s(g.hasColor,n`
|
|
208
208
|
// Accumulate color
|
|
209
209
|
vec3 lastFrameColor = lastFrameGlobalIllumination.rgb;
|
|
210
|
-
float colorDitherScale = isScaledGlobalIllumination ? ${n.float(
|
|
210
|
+
float colorDitherScale = isScaledGlobalIllumination ? ${n.float(z)} : 1.0;
|
|
211
211
|
fragGlobalIllumination.rgb = resetColorHistory
|
|
212
212
|
? vec3(0.0)
|
|
213
213
|
: mix(lastFrameColor + accumulationDither * colorDitherScale, fragGlobalIllumination.rgb, colorBlendWeight);
|
|
@@ -220,4 +220,4 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
220
220
|
fragGlobalIllumination.a = mix(lastFrameGlobalIllumination.a + accumulationDither, fragGlobalIllumination.a, occlusionBlendWeight);
|
|
221
221
|
|
|
222
222
|
fragWeight = occlusionBlendWeight;
|
|
223
|
-
`),
|
|
223
|
+
`),G}const N=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationPassParameters:V,build:U,defaultColorBleedWeight:G,defaultRayMarchMaxReach:E,defaultRayMarchMaxReachEmissionWeight:L,defaultRayMarchMaxSteps:O,defaultRayMarchMinReach:T,defaultRayMarchMinReachEmissionWeight:$,defaultRayMarchWorldReach:P},Symbol.toStringTag,{value:"Module"}));export{V as G,N as a,O as b,U as c,E as d,G as e,L as f,T as g,$ as h,P as i};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{GlobalIlluminationWeights as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import{CameraSpace as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{BooleanBindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js";import{Float2DrawUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as
|
|
2
|
+
import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{GlobalIlluminationWeights as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import{CameraSpace as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{BooleanBindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js";import{Float2DrawUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as c}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{ditherNoise as p}from"../views/3d/webgl-engine/shaders/ditherNoise.glsl.js";import{FloatBlendScaleConfiguration as d}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{NoParameters as h}from"../views/webgl/NoParameters.js";import{ShaderBuilder as f}from"../views/webgl/ShaderBuilder.js";const g=4;class b extends h{constructor(){super(...arguments),this.blurSize=e()}}function S(){const e=new f,d=e.fragment;e.include(l),e.include(t),e.include(i);const h=(g+3)/2,b=1/(2*h*h);d.include(o),d.include(p,w),d.include(c);const S=5e4;d.uniforms.add(new a("hasEmission",e=>e.hasEmission),new u("depthMap",e=>e.depthTexture),new u("normalMap",e=>e.normalTexture),new m("globalIlluminationTexture",e=>e.texture),new m("globalIlluminationWeightTexture",e=>e.weightTexture),new n("blurSize",e=>e.blurSize),new s("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new s("projScale",(e,l)=>{const o=l.camera.distance;return o>S?Math.max(0,e.projScale-(o-S)):e.projScale}));const v=.1,W=400,I=.03,O=.08,x=1.5,D=1/32768,j=.85;return d.code.add(r`
|
|
3
3
|
void accumulateBlurSample(
|
|
4
4
|
vec2 sampleUv,
|
|
5
5
|
float sampleOffset,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{normalize as e}from"../core/arrayUtils.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DBindUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as
|
|
2
|
+
import{normalize as e}from"../core/arrayUtils.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DBindUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{DistanceFalloffPassParameters as n,getDistanceFalloff as m}from"../views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js";import{ditherNoise as c}from"../views/3d/webgl-engine/shaders/ditherNoise.glsl.js";import{floatBlendScale as p}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ScreenSpacePassAtmosphere as u}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{ToneMapping as g}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as f}from"../views/webgl/ShaderBuilder.js";class x extends n{constructor(){super(...arguments),this.glowLod=-1,this.minDisperse=new v([32,16,8,4,2,1],1),this.maxDisperse=new v([0,.27,.6,1.05,1.58,2.1],6),this.fogOpacity=1e-4}}function w(e){const n=new f,x=n.fragment;return n.include(u,{needUVs:!0,needEyeDirection:!0}),x.include(r),x.include(m),x.include(o),n.outputs.add("fragColor","vec4",0),n.outputs.add("fragEmission","vec3",1),x.include(g),x.include(p,e),x.include(c,e),x.uniforms.add(new d("colorTexture",({color:e})=>e),new d("emissionTexture",({emission:e})=>e)),e.blurEnabled?(x.uniforms.add(new t("depthTexture",e=>e.mainDepth),new i("fogOpacity",e=>e.fogOpacity),new d("lodTexture",e=>e.lodTexture?.getTexture()),new a("glowLod",e=>e.glowLod),new s("minDisperse",6,e=>e.minDisperse.preset),new s("maxDisperse",6,e=>e.maxDisperse.preset)).main.add(l`vec4 color = texture(colorTexture, uv);
|
|
3
3
|
color = vec4(linearizeGamma(color.rgb), color.a);
|
|
4
4
|
vec3 lod0 = texture(emissionTexture, uv).rgb * floatBlendInputScale;
|
|
5
5
|
vec3 lod1 = textureLod(lodTexture, uv, 0.0).rgb;
|
|
@@ -32,8 +32,8 @@ emission += lodFactor5 * lod5;
|
|
|
32
32
|
emission = glowLod == 0 ? lodFactor0 * lod0 : glowLod == 1 ? lodFactor1 * lod1 : glowLod == 2 ? lodFactor2 * lod2 : glowLod == 3 ? lodFactor3 * lod3 : glowLod == 4 ? lodFactor4 * lod4 : glowLod == 5 ? lodFactor5 * lod5 : emission;
|
|
33
33
|
fragEmission.rgb = emission.rgb * floatBlendOutputScale + ditherNoise(vec4(emission, color.a));
|
|
34
34
|
emission = tonemapKhronosNeutral(emission);
|
|
35
|
-
fragColor = delinearizeGamma(vec4(color.rgb + emission, color.w));`),
|
|
35
|
+
fragColor = delinearizeGamma(vec4(color.rgb + emission, color.w));`),n):(x.main.add(l`vec4 color = texture(colorTexture, uv);
|
|
36
36
|
color = vec4(linearizeGamma(color.rgb), color.a);
|
|
37
37
|
vec3 emission = texture(emissionTexture, uv).rgb * floatBlendInputScale;
|
|
38
38
|
emission = tonemapKhronosNeutral(emission);
|
|
39
|
-
fragColor = delinearizeGamma(vec4(color.rgb + emission, color.w));`),
|
|
39
|
+
fragColor = delinearizeGamma(vec4(color.rgb + emission, color.w));`),n)}class v{constructor(o,r){this.preset=o,e(o,r)}}function h(e,o,r=1){return[e[0]*(1-r)+o[0]*r,e[1]*(1-r)+o[1]*r,e[2]*(1-r)+o[2]*r,e[3]*(1-r)+o[3]*r,e[4]*(1-r)+o[4]*r,e[5]*(1-r)+o[5]*r]}const b=Object.freeze(Object.defineProperty({__proto__:null,GlowCompositionPassParameters:x,GlowLodFactors:v,build:w,mixPreset:h},Symbol.toStringTag,{value:"Module"}));export{v as G,x as a,b,w as c,h as m};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ColorConversion as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ColorConversion as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/emissionFilter.glsl.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{OITBlendFragmentPassParameters as o,oitBlendFragment as t}from"../views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js";import{floatBlendScale as l}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ToneMapping as a}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as d}from"../views/webgl/ShaderBuilder.js";class m extends o{}function g(o){const m=new d;m.include(e);const{fragment:g,outputs:c}=m;return c.add("fragEmission","vec4",1),g.include(l,o),g.include(t,o),g.include(r,o),g.include(a),g.include(s),g.uniforms.add(new n("emissionTexture",e=>e.emissionTexture),new n("frontFaceEmissionTexture",e=>e.frontFaceEmissionTexture)),g.main.add(i`vec4 emission = oitBlendFragment(emissionTexture, frontFaceEmissionTexture, floatBlendInputScale);
|
|
3
3
|
vec4 transparentColor = oitBlendFragment();
|
|
4
4
|
vec3 dim = emissionFilter(transparentColor.rgb, transparentColor.a);
|
|
5
5
|
fragEmission.rgb = emission.rgb * dim * pow(emission.a, 0.5) * floatBlendOutputScale;
|
package/chunks/basis_encoder.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
var r,e=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){var t,n,o=e;o.ready=new Promise((r,e)=>{t=r,n=e});var a,i,s,u=Object.assign({},o),l="./this.program",c=!0,d="";function h(r){return o.locateFile?o.locateFile(r,d):d+r}d=self.location.href,r&&(d=r),d=0!==d.indexOf("blob:")?d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.send(null),e.responseText},s=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},i=(r,e,t)=>{var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?e(n.response):t()},n.onerror=t,n.send(null)};var p,f,m=o.print||console.log.bind(console),v=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(l=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary),"object"!=typeof WebAssembly&&L("no native wasm support detected");var y,g,w,E,_,b,k,$,P=!1;function T(r,e){r||L(e)}function C(){var r=f.buffer;o.HEAP8=y=new Int8Array(r),o.HEAP16=w=new Int16Array(r),o.HEAPU8=g=new Uint8Array(r),o.HEAPU16=E=new Uint16Array(r),o.HEAP32=_=new Int32Array(r),o.HEAPU32=b=new Uint32Array(r),o.HEAPF32=k=new Float32Array(r),o.HEAPF64=$=new Float64Array(r)}var F=[],D=[],S=[];function A(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)O(o.preRun.shift());Q(F)}function M(){o.noFSInit||Tr.init.initialized||Tr.init(),Tr.ignorePermissions=!1,Q(D)}function j(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)x(o.postRun.shift());Q(S)}function O(r){F.unshift(r)}function R(r){D.unshift(r)}function x(r){S.unshift(r)}var W=0,z=null;function N(r){return r}function H(r){W++,o.monitorRunDependencies&&o.monitorRunDependencies(W)}function B(r){if(W--,o.monitorRunDependencies&&o.monitorRunDependencies(W),0==W&&z){var e=z;z=null,e()}}function L(r){o.onAbort&&o.onAbort(r),v(r="Aborted("+r+")"),P=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw n(e),e}var U,I,V,q="data:application/octet-stream;base64,",Y=r=>r.startsWith(q);function X(r){if(r==U&&p)return new Uint8Array(p);if(s)return s(r);throw"both async and sync fetching of the wasm failed"}function G(r){return!p&&c&&"function"==typeof fetch?fetch(r,{credentials:"same-origin"}).then(e=>{if(!e.ok)throw"failed to load wasm binary file at '"+r+"'";return e.arrayBuffer()}).catch(()=>X(r)):Promise.resolve().then(()=>X(r))}function K(r,e,t){return G(r).then(r=>WebAssembly.instantiate(r,e)).then(r=>r).then(t,r=>{v(`failed to asynchronously prepare wasm: ${r}`),L(r)})}function J(r,e,t,n){return r||"function"!=typeof WebAssembly.instantiateStreaming||Y(e)||"function"!=typeof fetch?K(e,t,n):fetch(e,{credentials:"same-origin"}).then(r=>WebAssembly.instantiateStreaming(r,t).then(n,function(r){return v(`wasm streaming compile failed: ${r}`),v("falling back to ArrayBuffer instantiation"),K(e,t,n)}))}function Z(){var r={a:Rn};function e(r,e){return xn=r.exports,f=xn.ca,C(),ze=xn.ga,R(xn.da),B(),xn}function t(r){e(r.instance)}if(H(),o.instantiateWasm)try{return o.instantiateWasm(r,e)}catch(a){v(`Module.instantiateWasm callback failed with error: ${a}`),n(a)}return J(p,U,r,t).catch(n),{}}Y(U="basis_encoder.wasm")||(U=h(U));var Q=r=>{for(;r.length>0;)r.shift()(o)};function rr(r){this.excPtr=r,this.ptr=r-24,this.set_type=function(r){b[this.ptr+4>>2]=r},this.get_type=function(){return b[this.ptr+4>>2]},this.set_destructor=function(r){b[this.ptr+8>>2]=r},this.get_destructor=function(){return b[this.ptr+8>>2]},this.set_caught=function(r){r=r?1:0,y[this.ptr+12|0]=r},this.get_caught=function(){return 0!=y[this.ptr+12|0]},this.set_rethrown=function(r){r=r?1:0,y[this.ptr+13|0]=r},this.get_rethrown=function(){return 0!=y[this.ptr+13|0]},this.init=function(r,e){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(e)},this.set_adjusted_ptr=function(r){b[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return b[this.ptr+16>>2]},this.get_exception_ptr=function(){if(qn(this.get_type()))return b[this.excPtr>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.excPtr}}o.noExitRuntime;var er=(r,e,t)=>{throw new rr(r).init(e,t),r},tr=r=>(_[Bn()>>2]=r,r),nr={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,e)=>{for(var t=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),t++):t&&(r.splice(n,1),t--)}if(e)for(;t;t--)r.unshift("..");return r},normalize:r=>{var e=nr.isAbs(r),t="/"===r.substr(-1);return(r=nr.normalizeArray(r.split("/").filter(r=>!!r),!e).join("/"))||e||(r="."),r&&t&&(r+="/"),(e?"/":"")+r},dirname:r=>{var e=nr.splitPath(r),t=e[0],n=e[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:r=>{if("/"===r)return"/";var e=(r=(r=nr.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===e?r:r.substr(e+1)},join:function(){var r=Array.prototype.slice.call(arguments);return nr.normalize(r.join("/"))},join2:(r,e)=>nr.normalize(r+"/"+e)},or=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return r=>crypto.getRandomValues(r);L("initRandomDevice")},ar=r=>(ar=or())(r),ir={resolve:function(){for(var r="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var n=t>=0?arguments[t]:Tr.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";r=n+"/"+r,e=nr.isAbs(n)}return(e?"/":"")+(r=nr.normalizeArray(r.split("/").filter(r=>!!r),!e).join("/"))||"."},relative:(r,e)=>{function t(r){for(var e=0;e<r.length&&""===r[e];e++);for(var t=r.length-1;t>=0&&""===r[t];t--);return e>t?[]:r.slice(e,t-e+1)}r=ir.resolve(r).substr(1),e=ir.resolve(e).substr(1);for(var n=t(r.split("/")),o=t(e.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}var u=[];for(s=i;s<n.length;s++)u.push("..");return(u=u.concat(o.slice(i))).join("/")}},sr="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,ur=(r,e,t)=>{for(var n=e+t,o=e;r[o]&&!(o>=n);)++o;if(o-e>16&&r.buffer&&sr)return sr.decode(r.subarray(e,o));for(var a="";e<o;){var i=r[e++];if(128&i){var s=63&r[e++];if(192!=(224&i)){var u=63&r[e++];if((i=224==(240&i)?(15&i)<<12|s<<6|u:(7&i)<<18|s<<12|u<<6|63&r[e++])<65536)a+=String.fromCharCode(i);else{var l=i-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},lr=[],cr=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++t):e+=3}return e},dr=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i<r.length;++i){var s=r.charCodeAt(i);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&r.charCodeAt(++i)),s<=127){if(t>=a)break;e[t++]=s}else if(s<=2047){if(t+1>=a)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=a)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}return e[t]=0,t-o};function hr(r,e,t){var n=cr(r)+1,o=new Array(n),a=dr(r,o,0,o.length);return e&&(o.length=a),o}var pr=()=>{if(!lr.length){var r=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n"),!r)return null;lr=hr(r,!0)}return lr.shift()},fr={ttys:[],init(){},shutdown(){},register(r,e){fr.ttys[r]={input:[],output:[],ops:e},Tr.registerDevice(r,fr.stream_ops)},stream_ops:{open(r){var e=fr.ttys[r.node.rdev];if(!e)throw new Tr.ErrnoError(43);r.tty=e,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,e,t,n,o){if(!r.tty||!r.tty.ops.get_char)throw new Tr.ErrnoError(60);for(var a=0,i=0;i<n;i++){var s;try{s=r.tty.ops.get_char(r.tty)}catch(u){throw new Tr.ErrnoError(29)}if(void 0===s&&0===a)throw new Tr.ErrnoError(6);if(null==s)break;a++,e[t+i]=s}return a&&(r.node.timestamp=Date.now()),a},write(r,e,t,n,o){if(!r.tty||!r.tty.ops.put_char)throw new Tr.ErrnoError(60);try{for(var a=0;a<n;a++)r.tty.ops.put_char(r.tty,e[t+a])}catch(i){throw new Tr.ErrnoError(29)}return n&&(r.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:r=>pr(),put_char(r,e){null===e||10===e?(m(ur(r.output,0)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(m(ur(r.output,0)),r.output=[])},ioctl_tcgets:r=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(r,e,t)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,e){null===e||10===e?(v(ur(r.output,0)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(v(ur(r.output,0)),r.output=[])}}},mr=(r,e)=>(g.fill(0,r,r+e),r),vr=(r,e)=>Math.ceil(r/e)*e,yr=r=>{r=vr(r,65536);var e=Ln(65536,r);return e?mr(e,r):0},gr={ops_table:null,mount:r=>gr.createNode(null,"/",16895,0),createNode(r,e,t,n){if(Tr.isBlkdev(t)||Tr.isFIFO(t))throw new Tr.ErrnoError(63);gr.ops_table||(gr.ops_table={dir:{node:{getattr:gr.node_ops.getattr,setattr:gr.node_ops.setattr,lookup:gr.node_ops.lookup,mknod:gr.node_ops.mknod,rename:gr.node_ops.rename,unlink:gr.node_ops.unlink,rmdir:gr.node_ops.rmdir,readdir:gr.node_ops.readdir,symlink:gr.node_ops.symlink},stream:{llseek:gr.stream_ops.llseek}},file:{node:{getattr:gr.node_ops.getattr,setattr:gr.node_ops.setattr},stream:{llseek:gr.stream_ops.llseek,read:gr.stream_ops.read,write:gr.stream_ops.write,allocate:gr.stream_ops.allocate,mmap:gr.stream_ops.mmap,msync:gr.stream_ops.msync}},link:{node:{getattr:gr.node_ops.getattr,setattr:gr.node_ops.setattr,readlink:gr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:gr.node_ops.getattr,setattr:gr.node_ops.setattr},stream:Tr.chrdev_stream_ops}});var o=Tr.createNode(r,e,t,n);return Tr.isDir(o.mode)?(o.node_ops=gr.ops_table.dir.node,o.stream_ops=gr.ops_table.dir.stream,o.contents={}):Tr.isFile(o.mode)?(o.node_ops=gr.ops_table.file.node,o.stream_ops=gr.ops_table.file.stream,o.usedBytes=0,o.contents=null):Tr.isLink(o.mode)?(o.node_ops=gr.ops_table.link.node,o.stream_ops=gr.ops_table.link.stream):Tr.isChrdev(o.mode)&&(o.node_ops=gr.ops_table.chrdev.node,o.stream_ops=gr.ops_table.chrdev.stream),o.timestamp=Date.now(),r&&(r.contents[e]=o,r.timestamp=o.timestamp),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,e){var t=r.contents?r.contents.length:0;if(!(t>=e)){var n=1048576;e=Math.max(e,t*(t<n?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var o=r.contents;r.contents=new Uint8Array(e),r.usedBytes>0&&r.contents.set(o.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,e){if(r.usedBytes!=e)if(0==e)r.contents=null,r.usedBytes=0;else{var t=r.contents;r.contents=new Uint8Array(e),t&&r.contents.set(t.subarray(0,Math.min(e,r.usedBytes))),r.usedBytes=e}},node_ops:{getattr(r){var e={};return e.dev=Tr.isChrdev(r.mode)?r.id:1,e.ino=r.id,e.mode=r.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=r.rdev,Tr.isDir(r.mode)?e.size=4096:Tr.isFile(r.mode)?e.size=r.usedBytes:Tr.isLink(r.mode)?e.size=r.link.length:e.size=0,e.atime=new Date(r.timestamp),e.mtime=new Date(r.timestamp),e.ctime=new Date(r.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(r,e){void 0!==e.mode&&(r.mode=e.mode),void 0!==e.timestamp&&(r.timestamp=e.timestamp),void 0!==e.size&&gr.resizeFileStorage(r,e.size)},lookup(r,e){throw Tr.genericErrors[44]},mknod:(r,e,t,n)=>gr.createNode(r,e,t,n),rename(r,e,t){if(Tr.isDir(r.mode)){var n;try{n=Tr.lookupNode(e,t)}catch(a){}if(n)for(var o in n.contents)throw new Tr.ErrnoError(55)}delete r.parent.contents[r.name],r.parent.timestamp=Date.now(),r.name=t,e.contents[t]=r,e.timestamp=r.parent.timestamp,r.parent=e},unlink(r,e){delete r.contents[e],r.timestamp=Date.now()},rmdir(r,e){var t=Tr.lookupNode(r,e);for(var n in t.contents)throw new Tr.ErrnoError(55);delete r.contents[e],r.timestamp=Date.now()},readdir(r){var e=[".",".."];for(var t in r.contents)r.contents.hasOwnProperty(t)&&e.push(t);return e},symlink(r,e,t){var n=gr.createNode(r,e,41471,0);return n.link=t,n},readlink(r){if(!Tr.isLink(r.mode))throw new Tr.ErrnoError(28);return r.link}},stream_ops:{read(r,e,t,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var i=Math.min(r.node.usedBytes-o,n);if(i>8&&a.subarray)e.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)e[t+s]=a[o+s];return i},write(r,e,t,n,o,a){if(e.buffer===y.buffer&&(a=!1),!n)return 0;var i=r.node;if(i.timestamp=Date.now(),e.subarray&&(!i.contents||i.contents.subarray)){if(a)return i.contents=e.subarray(t,t+n),i.usedBytes=n,n;if(0===i.usedBytes&&0===o)return i.contents=e.slice(t,t+n),i.usedBytes=n,n;if(o+n<=i.usedBytes)return i.contents.set(e.subarray(t,t+n),o),n}if(gr.expandFileStorage(i,o+n),i.contents.subarray&&e.subarray)i.contents.set(e.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=e[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(r,e,t){var n=e;if(1===t?n+=r.position:2===t&&Tr.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new Tr.ErrnoError(28);return n},allocate(r,e,t){gr.expandFileStorage(r.node,e+t),r.node.usedBytes=Math.max(r.node.usedBytes,e+t)},mmap(r,e,t,n,o){if(!Tr.isFile(r.node.mode))throw new Tr.ErrnoError(43);var a,i,s=r.node.contents;if(2&o||s.buffer!==y.buffer){if((t>0||t+e<s.length)&&(s=s.subarray?s.subarray(t,t+e):Array.prototype.slice.call(s,t,t+e)),i=!0,!(a=yr(e)))throw new Tr.ErrnoError(48);y.set(s,a)}else i=!1,a=s.byteOffset;return{ptr:a,allocated:i}},msync:(r,e,t,n,o)=>(gr.stream_ops.write(r,e,0,n,t,!1),0)}},wr=(r,e,t,n)=>{var o=N(`al ${r}`);i(r,t=>{T(t,`Loading data file "${r}" failed (no arrayBuffer).`),e(new Uint8Array(t)),o&&B()},e=>{if(!t)throw`Loading data file "${r}" failed.`;t()}),o&&H()},Er=(r,e,t,n,o,a)=>Tr.createDataFile(r,e,t,n,o,a),_r=o.preloadPlugins||[],br=(r,e,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return _r.forEach(a=>{o||a.canHandle(e)&&(a.handle(r,e,t,n),o=!0)}),o},kr=(r,e,t,n,o,a,i,s,u,l)=>{var c=e?ir.resolve(nr.join2(r,e)):r;function d(t){function d(t){l&&l(),s||Er(r,e,t,n,o,u),a&&a(),B()}br(t,c,d,()=>{i&&i(),B()})||d(t)}H(),"string"==typeof t?wr(t,r=>d(r),i):d(t)},$r=r=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===e)throw new Error(`Unknown file open mode: ${r}`);return e},Pr=(r,e)=>{var t=0;return r&&(t|=365),e&&(t|=146),t},Tr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(r,e={}){if(!(r=ir.resolve(r)))return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};if((e=Object.assign(t,e)).recurse_count>8)throw new Tr.ErrnoError(32);for(var n=r.split("/").filter(r=>!!r),o=Tr.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&e.parent)break;if(o=Tr.lookupNode(o,n[i]),a=nr.join2(a,n[i]),Tr.isMountpoint(o)&&(!s||s&&e.follow_mount)&&(o=o.mounted.root),!s||e.follow)for(var u=0;Tr.isLink(o.mode);){var l=Tr.readlink(a);if(a=ir.resolve(nr.dirname(a),l),o=Tr.lookupPath(a,{recurse_count:e.recurse_count+1}).node,u++>40)throw new Tr.ErrnoError(32)}}return{path:a,node:o}},getPath(r){for(var e;;){if(Tr.isRoot(r)){var t=r.mount.mountpoint;return e?"/"!==t[t.length-1]?`${t}/${e}`:t+e:t}e=e?`${r.name}/${e}`:r.name,r=r.parent}},hashName(r,e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(r+t>>>0)%Tr.nameTable.length},hashAddNode(r){var e=Tr.hashName(r.parent.id,r.name);r.name_next=Tr.nameTable[e],Tr.nameTable[e]=r},hashRemoveNode(r){var e=Tr.hashName(r.parent.id,r.name);if(Tr.nameTable[e]===r)Tr.nameTable[e]=r.name_next;else for(var t=Tr.nameTable[e];t;){if(t.name_next===r){t.name_next=r.name_next;break}t=t.name_next}},lookupNode(r,e){var t=Tr.mayLookup(r);if(t)throw new Tr.ErrnoError(t,r);for(var n=Tr.hashName(r.id,e),o=Tr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===e)return o}return Tr.lookup(r,e)},createNode(r,e,t,n){var o=new Tr.FSNode(r,e,t,n);return Tr.hashAddNode(o),o},destroyNode(r){Tr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>!(49152&~r),flagsToPermissionString(r){var e=["r","w","rw"][3&r];return 512&r&&(e+="w"),e},nodePermissions:(r,e)=>Tr.ignorePermissions||(!e.includes("r")||292&r.mode)&&(!e.includes("w")||146&r.mode)&&(!e.includes("x")||73&r.mode)?0:2,mayLookup(r){var e=Tr.nodePermissions(r,"x");return e||(r.node_ops.lookup?0:2)},mayCreate(r,e){try{return Tr.lookupNode(r,e),20}catch(t){}return Tr.nodePermissions(r,"wx")},mayDelete(r,e,t){var n;try{n=Tr.lookupNode(r,e)}catch(a){return a.errno}var o=Tr.nodePermissions(r,"wx");if(o)return o;if(t){if(!Tr.isDir(n.mode))return 54;if(Tr.isRoot(n)||Tr.getPath(n)===Tr.cwd())return 10}else if(Tr.isDir(n.mode))return 31;return 0},mayOpen:(r,e)=>r?Tr.isLink(r.mode)?32:Tr.isDir(r.mode)&&("r"!==Tr.flagsToPermissionString(e)||512&e)?31:Tr.nodePermissions(r,Tr.flagsToPermissionString(e)):44,MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=Tr.MAX_OPEN_FDS;r++)if(!Tr.streams[r])return r;throw new Tr.ErrnoError(33)},getStreamChecked(r){var e=Tr.getStream(r);if(!e)throw new Tr.ErrnoError(8);return e},getStream:r=>Tr.streams[r],createStream:(r,e=-1)=>(Tr.FSStream||(Tr.FSStream=function(){this.shared={}},Tr.FSStream.prototype={},Object.defineProperties(Tr.FSStream.prototype,{object:{get(){return this.node},set(r){this.node=r}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(r){this.shared.flags=r}},position:{get(){return this.shared.position},set(r){this.shared.position=r}}})),r=Object.assign(new Tr.FSStream,r),-1==e&&(e=Tr.nextfd()),r.fd=e,Tr.streams[e]=r,r),closeStream(r){Tr.streams[r]=null},chrdev_stream_ops:{open(r){var e=Tr.getDevice(r.node.rdev);r.stream_ops=e.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek(){throw new Tr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,e)=>r<<8|e,registerDevice(r,e){Tr.devices[r]={stream_ops:e}},getDevice:r=>Tr.devices[r],getMounts(r){for(var e=[],t=[r];t.length;){var n=t.pop();e.push(n),t.push.apply(t,n.mounts)}return e},syncfs(r,e){"function"==typeof r&&(e=r,r=!1),Tr.syncFSRequests++,Tr.syncFSRequests>1&&v(`warning: ${Tr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=Tr.getMounts(Tr.root.mount),n=0;function o(r){return Tr.syncFSRequests--,e(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=t.length&&o(null)}t.forEach(e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)})},mount(r,e,t){var n,o="/"===t,a=!t;if(o&&Tr.root)throw new Tr.ErrnoError(10);if(!o&&!a){var i=Tr.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,Tr.isMountpoint(n))throw new Tr.ErrnoError(10);if(!Tr.isDir(n.mode))throw new Tr.ErrnoError(54)}var s={type:r,opts:e,mountpoint:t,mounts:[]},u=r.mount(s);return u.mount=s,s.root=u,o?Tr.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount(r){var e=Tr.lookupPath(r,{follow_mount:!1});if(!Tr.isMountpoint(e.node))throw new Tr.ErrnoError(28);var t=e.node,n=t.mounted,o=Tr.getMounts(n);Object.keys(Tr.nameTable).forEach(r=>{for(var e=Tr.nameTable[r];e;){var t=e.name_next;o.includes(e.mount)&&Tr.destroyNode(e),e=t}}),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(r,e)=>r.node_ops.lookup(r,e),mknod(r,e,t){var n=Tr.lookupPath(r,{parent:!0}).node,o=nr.basename(r);if(!o||"."===o||".."===o)throw new Tr.ErrnoError(28);var a=Tr.mayCreate(n,o);if(a)throw new Tr.ErrnoError(a);if(!n.node_ops.mknod)throw new Tr.ErrnoError(63);return n.node_ops.mknod(n,o,e,t)},create:(r,e)=>(e=void 0!==e?e:438,e&=4095,e|=32768,Tr.mknod(r,e,0)),mkdir:(r,e)=>(e=void 0!==e?e:511,e&=1023,e|=16384,Tr.mknod(r,e,0)),mkdirTree(r,e){for(var t=r.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{Tr.mkdir(n,e)}catch(a){if(20!=a.errno)throw a}}},mkdev:(r,e,t)=>(void 0===t&&(t=e,e=438),e|=8192,Tr.mknod(r,e,t)),symlink(r,e){if(!ir.resolve(r))throw new Tr.ErrnoError(44);var t=Tr.lookupPath(e,{parent:!0}).node;if(!t)throw new Tr.ErrnoError(44);var n=nr.basename(e),o=Tr.mayCreate(t,n);if(o)throw new Tr.ErrnoError(o);if(!t.node_ops.symlink)throw new Tr.ErrnoError(63);return t.node_ops.symlink(t,n,r)},rename(r,e){var t,n,o=nr.dirname(r),a=nr.dirname(e),i=nr.basename(r),s=nr.basename(e);if(t=Tr.lookupPath(r,{parent:!0}).node,n=Tr.lookupPath(e,{parent:!0}).node,!t||!n)throw new Tr.ErrnoError(44);if(t.mount!==n.mount)throw new Tr.ErrnoError(75);var u,l=Tr.lookupNode(t,i),c=ir.relative(r,a);if("."!==c.charAt(0))throw new Tr.ErrnoError(28);if("."!==(c=ir.relative(e,o)).charAt(0))throw new Tr.ErrnoError(55);try{u=Tr.lookupNode(n,s)}catch(p){}if(l!==u){var d=Tr.isDir(l.mode),h=Tr.mayDelete(t,i,d);if(h)throw new Tr.ErrnoError(h);if(h=u?Tr.mayDelete(n,s,d):Tr.mayCreate(n,s))throw new Tr.ErrnoError(h);if(!t.node_ops.rename)throw new Tr.ErrnoError(63);if(Tr.isMountpoint(l)||u&&Tr.isMountpoint(u))throw new Tr.ErrnoError(10);if(n!==t&&(h=Tr.nodePermissions(t,"w")))throw new Tr.ErrnoError(h);Tr.hashRemoveNode(l);try{t.node_ops.rename(l,n,s)}catch(p){throw p}finally{Tr.hashAddNode(l)}}},rmdir(r){var e=Tr.lookupPath(r,{parent:!0}).node,t=nr.basename(r),n=Tr.lookupNode(e,t),o=Tr.mayDelete(e,t,!0);if(o)throw new Tr.ErrnoError(o);if(!e.node_ops.rmdir)throw new Tr.ErrnoError(63);if(Tr.isMountpoint(n))throw new Tr.ErrnoError(10);e.node_ops.rmdir(e,t),Tr.destroyNode(n)},readdir(r){var e=Tr.lookupPath(r,{follow:!0}).node;if(!e.node_ops.readdir)throw new Tr.ErrnoError(54);return e.node_ops.readdir(e)},unlink(r){var e=Tr.lookupPath(r,{parent:!0}).node;if(!e)throw new Tr.ErrnoError(44);var t=nr.basename(r),n=Tr.lookupNode(e,t),o=Tr.mayDelete(e,t,!1);if(o)throw new Tr.ErrnoError(o);if(!e.node_ops.unlink)throw new Tr.ErrnoError(63);if(Tr.isMountpoint(n))throw new Tr.ErrnoError(10);e.node_ops.unlink(e,t),Tr.destroyNode(n)},readlink(r){var e=Tr.lookupPath(r).node;if(!e)throw new Tr.ErrnoError(44);if(!e.node_ops.readlink)throw new Tr.ErrnoError(28);return ir.resolve(Tr.getPath(e.parent),e.node_ops.readlink(e))},stat(r,e){var t=Tr.lookupPath(r,{follow:!e}).node;if(!t)throw new Tr.ErrnoError(44);if(!t.node_ops.getattr)throw new Tr.ErrnoError(63);return t.node_ops.getattr(t)},lstat:r=>Tr.stat(r,!0),chmod(r,e,t){var n;if(!(n="string"==typeof r?Tr.lookupPath(r,{follow:!t}).node:r).node_ops.setattr)throw new Tr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&e|-4096&n.mode,timestamp:Date.now()})},lchmod(r,e){Tr.chmod(r,e,!0)},fchmod(r,e){var t=Tr.getStreamChecked(r);Tr.chmod(t.node,e)},chown(r,e,t,n){var o;if(!(o="string"==typeof r?Tr.lookupPath(r,{follow:!n}).node:r).node_ops.setattr)throw new Tr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(r,e,t){Tr.chown(r,e,t,!0)},fchown(r,e,t){var n=Tr.getStreamChecked(r);Tr.chown(n.node,e,t)},truncate(r,e){if(e<0)throw new Tr.ErrnoError(28);var t;if(!(t="string"==typeof r?Tr.lookupPath(r,{follow:!0}).node:r).node_ops.setattr)throw new Tr.ErrnoError(63);if(Tr.isDir(t.mode))throw new Tr.ErrnoError(31);if(!Tr.isFile(t.mode))throw new Tr.ErrnoError(28);var n=Tr.nodePermissions(t,"w");if(n)throw new Tr.ErrnoError(n);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate(r,e){var t=Tr.getStreamChecked(r);if(!(2097155&t.flags))throw new Tr.ErrnoError(28);Tr.truncate(t.node,e)},utime(r,e,t){var n=Tr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(e,t)})},open(r,e,t){if(""===r)throw new Tr.ErrnoError(44);var n;if(t=void 0===t?438:t,t=64&(e="string"==typeof e?$r(e):e)?4095&t|32768:0,"object"==typeof r)n=r;else{r=nr.normalize(r);try{n=Tr.lookupPath(r,{follow:!(131072&e)}).node}catch(u){}}var a=!1;if(64&e)if(n){if(128&e)throw new Tr.ErrnoError(20)}else n=Tr.mknod(r,t,0),a=!0;if(!n)throw new Tr.ErrnoError(44);if(Tr.isChrdev(n.mode)&&(e&=-513),65536&e&&!Tr.isDir(n.mode))throw new Tr.ErrnoError(54);if(!a){var i=Tr.mayOpen(n,e);if(i)throw new Tr.ErrnoError(i)}512&e&&!a&&Tr.truncate(n,0),e&=-131713;var s=Tr.createStream({node:n,path:Tr.getPath(n),flags:e,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!o.logReadFiles||1&e||(Tr.readFiles||(Tr.readFiles={}),r in Tr.readFiles||(Tr.readFiles[r]=1)),s},close(r){if(Tr.isClosed(r))throw new Tr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(e){throw e}finally{Tr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,e,t){if(Tr.isClosed(r))throw new Tr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new Tr.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new Tr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,e,t),r.ungotten=[],r.position},read(r,e,t,n,o){if(n<0||o<0)throw new Tr.ErrnoError(28);if(Tr.isClosed(r))throw new Tr.ErrnoError(8);if(1==(2097155&r.flags))throw new Tr.ErrnoError(8);if(Tr.isDir(r.node.mode))throw new Tr.ErrnoError(31);if(!r.stream_ops.read)throw new Tr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new Tr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.read(r,e,t,n,o);return a||(r.position+=i),i},write(r,e,t,n,o,a){if(n<0||o<0)throw new Tr.ErrnoError(28);if(Tr.isClosed(r))throw new Tr.ErrnoError(8);if(!(2097155&r.flags))throw new Tr.ErrnoError(8);if(Tr.isDir(r.node.mode))throw new Tr.ErrnoError(31);if(!r.stream_ops.write)throw new Tr.ErrnoError(28);r.seekable&&1024&r.flags&&Tr.llseek(r,0,2);var i=void 0!==o;if(i){if(!r.seekable)throw new Tr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.write(r,e,t,n,o,a);return i||(r.position+=s),s},allocate(r,e,t){if(Tr.isClosed(r))throw new Tr.ErrnoError(8);if(e<0||t<=0)throw new Tr.ErrnoError(28);if(!(2097155&r.flags))throw new Tr.ErrnoError(8);if(!Tr.isFile(r.node.mode)&&!Tr.isDir(r.node.mode))throw new Tr.ErrnoError(43);if(!r.stream_ops.allocate)throw new Tr.ErrnoError(138);r.stream_ops.allocate(r,e,t)},mmap(r,e,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&r.flags))throw new Tr.ErrnoError(2);if(1==(2097155&r.flags))throw new Tr.ErrnoError(2);if(!r.stream_ops.mmap)throw new Tr.ErrnoError(43);return r.stream_ops.mmap(r,e,t,n,o)},msync:(r,e,t,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,e,t,n,o):0,munmap:r=>0,ioctl(r,e,t){if(!r.stream_ops.ioctl)throw new Tr.ErrnoError(59);return r.stream_ops.ioctl(r,e,t)},readFile(r,e={}){if(e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error(`Invalid encoding type "${e.encoding}"`);var t,n=Tr.open(r,e.flags),o=Tr.stat(r).size,a=new Uint8Array(o);return Tr.read(n,a,0,o,0),"utf8"===e.encoding?t=ur(a,0):"binary"===e.encoding&&(t=a),Tr.close(n),t},writeFile(r,e,t={}){t.flags=t.flags||577;var n=Tr.open(r,t.flags,t.mode);if("string"==typeof e){var o=new Uint8Array(cr(e)+1),a=dr(e,o,0,o.length);Tr.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");Tr.write(n,e,0,e.byteLength,void 0,t.canOwn)}Tr.close(n)},cwd:()=>Tr.currentPath,chdir(r){var e=Tr.lookupPath(r,{follow:!0});if(null===e.node)throw new Tr.ErrnoError(44);if(!Tr.isDir(e.node.mode))throw new Tr.ErrnoError(54);var t=Tr.nodePermissions(e.node,"x");if(t)throw new Tr.ErrnoError(t);Tr.currentPath=e.path},createDefaultDirectories(){Tr.mkdir("/tmp"),Tr.mkdir("/home"),Tr.mkdir("/home/web_user")},createDefaultDevices(){Tr.mkdir("/dev"),Tr.registerDevice(Tr.makedev(1,3),{read:()=>0,write:(r,e,t,n,o)=>n}),Tr.mkdev("/dev/null",Tr.makedev(1,3)),fr.register(Tr.makedev(5,0),fr.default_tty_ops),fr.register(Tr.makedev(6,0),fr.default_tty1_ops),Tr.mkdev("/dev/tty",Tr.makedev(5,0)),Tr.mkdev("/dev/tty1",Tr.makedev(6,0));var r=new Uint8Array(1024),e=0,t=()=>(0===e&&(e=ar(r).byteLength),r[--e]);Tr.createDevice("/dev","random",t),Tr.createDevice("/dev","urandom",t),Tr.mkdir("/dev/shm"),Tr.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Tr.mkdir("/proc");var r=Tr.mkdir("/proc/self");Tr.mkdir("/proc/self/fd"),Tr.mount({mount(){var e=Tr.createNode(r,"fd",16895,73);return e.node_ops={lookup(r,e){var t=+e,n=Tr.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},e}},{},"/proc/self/fd")},createStandardStreams(){o.stdin?Tr.createDevice("/dev","stdin",o.stdin):Tr.symlink("/dev/tty","/dev/stdin"),o.stdout?Tr.createDevice("/dev","stdout",null,o.stdout):Tr.symlink("/dev/tty","/dev/stdout"),o.stderr?Tr.createDevice("/dev","stderr",null,o.stderr):Tr.symlink("/dev/tty1","/dev/stderr"),Tr.open("/dev/stdin",0),Tr.open("/dev/stdout",1),Tr.open("/dev/stderr",1)},ensureErrnoError(){Tr.ErrnoError||(Tr.ErrnoError=function(r,e){this.name="ErrnoError",this.node=e,this.setErrno=function(r){this.errno=r},this.setErrno(r),this.message="FS error"},Tr.ErrnoError.prototype=new Error,Tr.ErrnoError.prototype.constructor=Tr.ErrnoError,[44].forEach(r=>{Tr.genericErrors[r]=new Tr.ErrnoError(r),Tr.genericErrors[r].stack="<generic error, no stack>"}))},staticInit(){Tr.ensureErrnoError(),Tr.nameTable=new Array(4096),Tr.mount(gr,{},"/"),Tr.createDefaultDirectories(),Tr.createDefaultDevices(),Tr.createSpecialDirectories(),Tr.filesystems={MEMFS:gr}},init(r,e,t){Tr.init.initialized=!0,Tr.ensureErrnoError(),o.stdin=r||o.stdin,o.stdout=e||o.stdout,o.stderr=t||o.stderr,Tr.createStandardStreams()},quit(){Tr.init.initialized=!1;for(var r=0;r<Tr.streams.length;r++){var e=Tr.streams[r];e&&Tr.close(e)}},findObject(r,e){var t=Tr.analyzePath(r,e);return t.exists?t.object:null},analyzePath(r,e){try{r=(n=Tr.lookupPath(r,{follow:!e})).path}catch(o){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Tr.lookupPath(r,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=nr.basename(r),n=Tr.lookupPath(r,{follow:!e}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(o){t.error=o.errno}return t},createPath(r,e,t,n){r="string"==typeof r?r:Tr.getPath(r);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var i=nr.join2(r,a);try{Tr.mkdir(i)}catch(s){}r=i}}return i},createFile(r,e,t,n,o){var a=nr.join2("string"==typeof r?r:Tr.getPath(r),e),i=Pr(n,o);return Tr.create(a,i)},createDataFile(r,e,t,n,o,a){var i=e;r&&(r="string"==typeof r?r:Tr.getPath(r),i=e?nr.join2(r,e):r);var s=Pr(n,o),u=Tr.create(i,s);if(t){if("string"==typeof t){for(var l=new Array(t.length),c=0,d=t.length;c<d;++c)l[c]=t.charCodeAt(c);t=l}Tr.chmod(u,146|s);var h=Tr.open(u,577);Tr.write(h,t,0,t.length,0,a),Tr.close(h),Tr.chmod(u,s)}return u},createDevice(r,e,t,n){var o=nr.join2("string"==typeof r?r:Tr.getPath(r),e),a=Pr(!!t,!!n);Tr.createDevice.major||(Tr.createDevice.major=64);var i=Tr.makedev(Tr.createDevice.major++,0);return Tr.registerDevice(i,{open(r){r.seekable=!1},close(r){n&&n.buffer&&n.buffer.length&&n(10)},read(r,e,n,o,a){for(var i=0,s=0;s<o;s++){var u;try{u=t()}catch(l){throw new Tr.ErrnoError(29)}if(void 0===u&&0===i)throw new Tr.ErrnoError(6);if(null==u)break;i++,e[n+s]=u}return i&&(r.node.timestamp=Date.now()),i},write(r,e,t,o,a){for(var i=0;i<o;i++)try{n(e[t+i])}catch(s){throw new Tr.ErrnoError(29)}return o&&(r.node.timestamp=Date.now()),i}}),Tr.mkdev(o,a,i)},forceLoadFile(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!a)throw new Error("Cannot load without read() or XMLHttpRequest.");try{r.contents=hr(a(r.url),!0),r.usedBytes=r.contents.length}catch(e){throw new Tr.ErrnoError(29)}},createLazyFile(r,e,t,n,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(r){if(!(r>this.length-1||r<0)){var e=r%this.chunkSize,t=r/this.chunkSize|0;return this.getter(t)[e]}},a.prototype.setDataGetter=function(r){this.getter=r},a.prototype.cacheLength=function(){var r=new XMLHttpRequest;if(r.open("HEAD",t,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+t+". Status: "+r.status);var e,n=Number(r.getResponseHeader("Content-length")),o=(e=r.getResponseHeader("Accept-Ranges"))&&"bytes"===e,a=(e=r.getResponseHeader("Content-Encoding"))&&"gzip"===e,i=1048576;o||(i=n);var s=(r,e)=>{if(r>e)throw new Error("invalid range ("+r+", "+e+") or no bytes requested!");if(e>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==i&&o.setRequestHeader("Range","bytes="+r+"-"+e),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):hr(o.responseText||"",!0)},u=this;u.setDataGetter(r=>{var e=r*i,t=(r+1)*i-1;if(t=Math.min(t,n-1),void 0===u.chunks[r]&&(u.chunks[r]=s(e,t)),void 0===u.chunks[r])throw new Error("doXHR failed!");return u.chunks[r]}),!a&&n||(i=n=1,n=this.getter(0).length,i=n,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){var i=new a;Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:i}}else s={isDevice:!1,url:t};var u=Tr.createFile(r,e,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};function c(r,e,t,n,o){var a=r.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s<i;s++)e[t+s]=a[o+s];else for(s=0;s<i;s++)e[t+s]=a.get(o+s);return i}return Object.keys(u.stream_ops).forEach(r=>{var e=u.stream_ops[r];l[r]=function(){return Tr.forceLoadFile(u),e.apply(null,arguments)}}),l.read=(r,e,t,n,o)=>(Tr.forceLoadFile(u),c(r,e,t,n,o)),l.mmap=(r,e,t,n,o)=>{Tr.forceLoadFile(u);var a=yr(e);if(!a)throw new Tr.ErrnoError(48);return c(r,y,a,e,t),{ptr:a,allocated:!0}},u.stream_ops=l,u}},Cr=(r,e)=>r?ur(g,r,e):"",Fr={DEFAULT_POLLMASK:5,calculateAt(r,e,t){if(nr.isAbs(e))return e;var n;if(n=-100===r?Tr.cwd():Fr.getStreamFromFD(r).path,0==e.length){if(!t)throw new Tr.ErrnoError(44);return n}return nr.join2(n,e)},doStat(r,e,t){try{var n=r(e)}catch(s){if(s&&s.node&&nr.normalize(e)!==nr.normalize(Tr.getPath(s.node)))return-54;throw s}_[t>>2]=n.dev,_[t+4>>2]=n.mode,b[t+8>>2]=n.nlink,_[t+12>>2]=n.uid,_[t+16>>2]=n.gid,_[t+20>>2]=n.rdev,V=[n.size>>>0,(I=n.size,+Math.abs(I)>=1?I>0?+Math.floor(I/4294967296)>>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)],_[t+24>>2]=V[0],_[t+28>>2]=V[1],_[t+32>>2]=4096,_[t+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return V=[Math.floor(o/1e3)>>>0,(I=Math.floor(o/1e3),+Math.abs(I)>=1?I>0?+Math.floor(I/4294967296)>>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)],_[t+40>>2]=V[0],_[t+44>>2]=V[1],b[t+48>>2]=o%1e3*1e3,V=[Math.floor(a/1e3)>>>0,(I=Math.floor(a/1e3),+Math.abs(I)>=1?I>0?+Math.floor(I/4294967296)>>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)],_[t+56>>2]=V[0],_[t+60>>2]=V[1],b[t+64>>2]=a%1e3*1e3,V=[Math.floor(i/1e3)>>>0,(I=Math.floor(i/1e3),+Math.abs(I)>=1?I>0?+Math.floor(I/4294967296)>>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)],_[t+72>>2]=V[0],_[t+76>>2]=V[1],b[t+80>>2]=i%1e3*1e3,V=[n.ino>>>0,(I=n.ino,+Math.abs(I)>=1?I>0?+Math.floor(I/4294967296)>>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)],_[t+88>>2]=V[0],_[t+92>>2]=V[1],0},doMsync(r,e,t,n,o){if(!Tr.isFile(e.node.mode))throw new Tr.ErrnoError(43);if(2&n)return 0;var a=g.slice(r,r+t);Tr.msync(e,a,o,t,n)},varargs:void 0,get(){var r=_[+Fr.varargs>>2];return Fr.varargs+=4,r},getp:()=>Fr.get(),getStr:r=>Cr(r),getStreamFromFD:r=>Tr.getStreamChecked(r)};function Dr(r,e,t){Fr.varargs=t;try{var n=Fr.getStreamFromFD(r);switch(e){case 0:if((o=Fr.get())<0)return-28;for(;Tr.streams[o];)o++;return Tr.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=Fr.get();return n.flags|=o,0;case 5:return o=Fr.getp(),w[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return tr(28),-1}}catch(a){if(void 0===Tr||"ErrnoError"!==a.name)throw a;return-a.errno}}function Sr(r,e){try{var t=Fr.getStreamFromFD(r);return Fr.doStat(Tr.stat,t.path,e)}catch(n){if(void 0===Tr||"ErrnoError"!==n.name)throw n;return-n.errno}}function Ar(r,e,t){Fr.varargs=t;try{var n=Fr.getStreamFromFD(r);switch(e){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=Fr.getp();_[a>>2]=o.c_iflag||0,_[a+4>>2]=o.c_oflag||0,_[a+8>>2]=o.c_cflag||0,_[a+12>>2]=o.c_lflag||0;for(var i=0;i<32;i++)y[a+i+17|0]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=Fr.getp();var s=_[a>>2],u=_[a+4>>2],l=_[a+8>>2],c=_[a+12>>2],d=[];for(i=0;i<32;i++)d.push(y[a+i+17|0]);return n.tty.ops.ioctl_tcsets(n.tty,e,{c_iflag:s,c_oflag:u,c_cflag:l,c_lflag:c,c_cc:d})}return 0;case 21519:return n.tty?(a=Fr.getp(),_[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21531:return a=Fr.getp(),Tr.ioctl(n,e,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var h=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=Fr.getp(),w[a>>1]=h[0],w[a+2>>1]=h[1]}return 0;default:return-28}}catch(p){if(void 0===Tr||"ErrnoError"!==p.name)throw p;return-p.errno}}function Mr(r,e,t,n){try{e=Fr.getStr(e);var o=256&n,a=4096&n;return n&=-6401,e=Fr.calculateAt(r,e,a),Fr.doStat(o?Tr.lstat:Tr.stat,e,t)}catch(i){if(void 0===Tr||"ErrnoError"!==i.name)throw i;return-i.errno}}function jr(r,e,t,n){Fr.varargs=n;try{e=Fr.getStr(e),e=Fr.calculateAt(r,e);var o=n?Fr.get():0;return Tr.open(e,t,o).fd}catch(a){if(void 0===Tr||"ErrnoError"!==a.name)throw a;return-a.errno}}function Or(r,e){try{return r=Fr.getStr(r),Fr.doStat(Tr.stat,r,e)}catch(t){if(void 0===Tr||"ErrnoError"!==t.name)throw t;return-t.errno}}var Rr={},xr=r=>{for(;r.length;){var e=r.pop();r.pop()(e)}};function Wr(r){return this.fromWireType(_[r>>2])}var zr,Nr,Hr,Br={},Lr={},Ur={},Ir=r=>{throw new zr(r)},Vr=(r,e,t)=>{function n(e){var n=t(e);n.length!==r.length&&Ir("Mismatched type converter count");for(var o=0;o<r.length;++o)Zr(r[o],n[o])}r.forEach(function(r){Ur[r]=e});var o=new Array(e.length),a=[],i=0;e.forEach((r,e)=>{Lr.hasOwnProperty(r)?o[e]=Lr[r]:(a.push(r),Br.hasOwnProperty(r)||(Br[r]=[]),Br[r].push(()=>{o[e]=Lr[r],++i===a.length&&n(o)}))}),0===a.length&&n(o)},qr=r=>{var e=Rr[r];delete Rr[r];var t=e.rawConstructor,n=e.rawDestructor,o=e.fields,a=o.map(r=>r.getterReturnType).concat(o.map(r=>r.setterArgumentType));Vr([r],a,r=>{var a={};return o.forEach((e,t)=>{var n=e.fieldName,i=r[t],s=e.getter,u=e.getterContext,l=r[t+o.length],c=e.setter,d=e.setterContext;a[n]={read:r=>i.fromWireType(s(u,r)),write:(r,e)=>{var t=[];c(d,r,l.toWireType(t,e)),xr(t)}}}),[{name:e.name,fromWireType:r=>{var e={};for(var t in a)e[t]=a[t].read(r);return n(r),e},toWireType:(r,e)=>{for(var o in a)if(!(o in e))throw new TypeError(`Missing field: "${o}"`);var i=t();for(o in a)a[o].write(i,e[o]);return null!==r&&r.push(n,i),i},argPackAdvance:re,readValueFromPointer:Wr,destructorFunction:n}]})},Yr=(r,e,t,n,o)=>{},Xr=()=>{for(var r=new Array(256),e=0;e<256;++e)r[e]=String.fromCharCode(e);Nr=r},Gr=r=>{for(var e="",t=r;g[t];)e+=Nr[g[t++]];return e},Kr=r=>{throw new Hr(r)};function Jr(r,e,t={}){var n=e.name;if(r||Kr(`type "${n}" must have a positive integer typeid pointer`),Lr.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;Kr(`Cannot register type '${n}' twice`)}if(Lr[r]=e,delete Ur[r],Br.hasOwnProperty(r)){var o=Br[r];delete Br[r],o.forEach(r=>r())}}function Zr(r,e,t={}){if(!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Jr(r,e,t)}var Qr,re=8,ee=(r,e,t,n)=>{Zr(r,{name:e=Gr(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?t:n},argPackAdvance:re,readValueFromPointer:function(r){return this.fromWireType(g[r])},destructorFunction:null})},te=r=>({count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType}),ne=r=>{function e(r){return r.$$.ptrType.registeredClass.name}Kr(e(r)+" instance already deleted")},oe=!1,ae=r=>{},ie=r=>{r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)},se=r=>{r.count.value-=1,0===r.count.value&&ie(r)},ue=(r,e,t)=>{if(e===t)return r;if(void 0===t.baseClass)return null;var n=ue(r,e,t.baseClass);return null===n?null:t.downcast(n)},le={},ce=()=>Object.keys(ve).length,de=()=>{var r=[];for(var e in ve)ve.hasOwnProperty(e)&&r.push(ve[e]);return r},he=[],pe=()=>{for(;he.length;){var r=he.pop();r.$$.deleteScheduled=!1,r.delete()}},fe=r=>{Qr=r,he.length&&Qr&&Qr(pe)},me=()=>{o.getInheritedInstanceCount=ce,o.getLiveInheritedInstances=de,o.flushPendingDeletes=pe,o.setDelayFunction=fe},ve={},ye=(r,e)=>{for(void 0===e&&Kr("ptr should not be undefined");r.baseClass;)e=r.upcast(e),r=r.baseClass;return e},ge=(r,e)=>(e=ye(r,e),ve[e]),we=(r,e)=>(e.ptrType&&e.ptr||Ir("makeClassHandle requires ptr and ptrType"),!!e.smartPtrType!=!!e.smartPtr&&Ir("Both smartPtrType and smartPtr must be specified"),e.count={value:1},_e(Object.create(r,{$$:{value:e}})));function Ee(r){var e=this.getPointee(r);if(!e)return this.destructor(r),null;var t=ge(this.registeredClass,e);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=e,t.$$.smartPtr=r,t.clone();var n=t.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?we(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:r}):we(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var a,i=this.registeredClass.getActualType(e),s=le[i];if(!s)return o.call(this);a=this.isConst?s.constPointerType:s.pointerType;var u=ue(e,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?we(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:r}):we(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})}var _e=r=>"undefined"==typeof FinalizationRegistry?(_e=r=>r,r):(oe=new FinalizationRegistry(r=>{se(r.$$)}),_e=r=>{var e=r.$$;if(e.smartPtr){var t={$$:e};oe.register(r,t,r)}return r},ae=r=>oe.unregister(r),_e(r)),be=()=>{Object.assign(ke.prototype,{isAliasOf(r){if(!(this instanceof ke))return!1;if(!(r instanceof ke))return!1;var e=this.$$.ptrType.registeredClass,t=this.$$.ptr;r.$$=r.$$;for(var n=r.$$.ptrType.registeredClass,o=r.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return e===n&&t===o},clone(){if(this.$$.ptr||ne(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var r=_e(Object.create(Object.getPrototypeOf(this),{$$:{value:te(this.$$)}}));return r.$$.count.value+=1,r.$$.deleteScheduled=!1,r},delete(){this.$$.ptr||ne(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Kr("Object already scheduled for deletion"),ae(this),se(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||ne(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Kr("Object already scheduled for deletion"),he.push(this),1===he.length&&Qr&&Qr(pe),this.$$.deleteScheduled=!0,this}})};function ke(){}var $e=48,Pe=57,Te=r=>{if(void 0===r)return"_unknown";var e=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=$e&&e<=Pe?`_${r}`:r};function Ce(r,e){return r=Te(r),{[r]:function(){return e.apply(this,arguments)}}[r]}var Fe=(r,e,t)=>{if(void 0===r[e].overloadTable){var n=r[e];r[e]=function(){return r[e].overloadTable.hasOwnProperty(arguments.length)||Kr(`Function '${t}' called with an invalid number of arguments (${arguments.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[arguments.length].apply(this,arguments)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},De=(r,e,t)=>{o.hasOwnProperty(r)?((void 0===t||void 0!==o[r].overloadTable&&void 0!==o[r].overloadTable[t])&&Kr(`Cannot register public name '${r}' twice`),Fe(o,r,r),o.hasOwnProperty(t)&&Kr(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),o[r].overloadTable[t]=e):(o[r]=e,void 0!==t&&(o[r].numArguments=t))};function Se(r,e,t,n,o,a,i,s){this.name=r,this.constructor=e,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=i,this.downcast=s,this.pureVirtualFunctions=[]}var Ae=(r,e,t)=>{for(;e!==t;)e.upcast||Kr(`Expected null or instance of ${t.name}, got an instance of ${e.name}`),r=e.upcast(r),e=e.baseClass;return r};function Me(r,e){if(null===e)return this.isReference&&Kr(`null is not a valid ${this.name}`),0;e.$$||Kr(`Cannot pass "${vt(e)}" as a ${this.name}`),e.$$.ptr||Kr(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=e.$$.ptrType.registeredClass;return Ae(e.$$.ptr,t,this.registeredClass)}function je(r,e){var t;if(null===e)return this.isReference&&Kr(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),null!==r&&r.push(this.rawDestructor,t),t):0;e.$$||Kr(`Cannot pass "${vt(e)}" as a ${this.name}`),e.$$.ptr||Kr(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&Kr(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var n=e.$$.ptrType.registeredClass;if(t=Ae(e.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===e.$$.smartPtr&&Kr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:Kr(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,ct.toHandle(()=>o.delete())),null!==r&&r.push(this.rawDestructor,t)}break;default:Kr("Unsupporting sharing policy")}return t}function Oe(r,e){if(null===e)return this.isReference&&Kr(`null is not a valid ${this.name}`),0;e.$$||Kr(`Cannot pass "${vt(e)}" as a ${this.name}`),e.$$.ptr||Kr(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&Kr(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var t=e.$$.ptrType.registeredClass;return Ae(e.$$.ptr,t,this.registeredClass)}function Re(r){return this.fromWireType(b[r>>2])}var xe=()=>{Object.assign(We.prototype,{getPointee(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},destructor(r){this.rawDestructor&&this.rawDestructor(r)},argPackAdvance:re,readValueFromPointer:Re,deleteObject(r){null!==r&&r.delete()},fromWireType:Ee})};function We(r,e,t,n,o,a,i,s,u,l,c){this.name=r,this.registeredClass=e,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=i,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=l,this.rawDestructor=c,o||void 0!==e.baseClass?this.toWireType=je:n?(this.toWireType=Me,this.destructorFunction=null):(this.toWireType=Oe,this.destructorFunction=null)}var ze,Ne,He=(r,e,t)=>{o.hasOwnProperty(r)||Ir("Replacing nonexistant public symbol"),void 0!==o[r].overloadTable&&void 0!==t?o[r].overloadTable[t]=e:(o[r]=e,o[r].argCount=t)},Be=(r,e,t)=>{var n=o["dynCall_"+r];return t&&t.length?n.apply(null,[e].concat(t)):n.call(null,e)},Le=[],Ue=r=>{var e=Le[r];return e||(r>=Le.length&&(Le.length=r+1),Le[r]=e=ze.get(r)),e},Ie=(r,e,t)=>r.includes("j")?Be(r,e,t):Ue(e).apply(null,t),Ve=(r,e)=>{var t=[];return function(){return t.length=0,Object.assign(t,arguments),Ie(r,e,t)}},qe=(r,e)=>{function t(){return r.includes("j")?Ve(r,e):Ue(e)}r=Gr(r);var n=t();return"function"!=typeof n&&Kr(`unknown function pointer with signature ${r}: ${e}`),n},Ye=(r,e)=>{var t=Ce(e,function(r){this.name=e,this.message=r;var t=new Error(r).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},t},Xe=r=>{var e=Nn(r),t=Gr(e);return Wn(e),t},Ge=(r,e)=>{var t=[],n={};function o(r){n[r]||Lr[r]||(Ur[r]?Ur[r].forEach(o):(t.push(r),n[r]=!0))}throw e.forEach(o),new Ne(`${r}: `+t.map(Xe).join([", "]))},Ke=(r,e,t,n,o,a,i,s,u,l,c,d,h)=>{c=Gr(c),a=qe(o,a),s&&(s=qe(i,s)),l&&(l=qe(u,l)),h=qe(d,h);var p=Te(c);De(p,function(){Ge(`Cannot construct ${c} due to unbound types`,[n])}),Vr([r,e,t],n?[n]:[],function(e){var t,o;e=e[0],o=n?(t=e.registeredClass).instancePrototype:ke.prototype;var i=Ce(p,function(){if(Object.getPrototypeOf(this)!==u)throw new Hr("Use 'new' to construct "+c);if(void 0===d.constructor_body)throw new Hr(c+" has no accessible constructor");var r=d.constructor_body[arguments.length];if(void 0===r)throw new Hr(`Tried to invoke ctor of ${c} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return r.apply(this,arguments)}),u=Object.create(o,{constructor:{value:i}});i.prototype=u;var d=new Se(c,i,u,h,t,a,s,l);d.baseClass&&(void 0===d.baseClass.__derivedClasses&&(d.baseClass.__derivedClasses=[]),d.baseClass.__derivedClasses.push(d));var f=new We(c,d,!0,!1,!1),m=new We(c+"*",d,!1,!1,!1),v=new We(c+" const*",d,!1,!0,!1);return le[r]={pointerType:m,constPointerType:v},He(p,i),[f,m,v]})},Je=(r,e)=>{for(var t=[],n=0;n<r;n++)t.push(b[e+4*n>>2]);return t};function Ze(r,e){if(!(r instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof r} which is not a function`);var t=Ce(r.name||"unknownFunctionName",function(){});t.prototype=r.prototype;var n=new t,o=r.apply(n,e);return o instanceof Object?o:n}function Qe(r,e,t,n,o,a){var i=e.length;i<2&&Kr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=null!==e[1]&&null!==t,u=!1,l=1;l<e.length;++l)if(null!==e[l]&&void 0===e[l].destructorFunction){u=!0;break}var c="void"!==e[0].name,d="",h="";for(l=0;l<i-2;++l)d+=(0!==l?", ":"")+"arg"+l,h+=(0!==l?", ":"")+"arg"+l+"Wired";var p=`\n return function ${Te(r)}(${d}) {\n if (arguments.length !== ${i-2}) {\n throwBindingError('function ${r} called with ' + arguments.length + ' arguments, expected ${i-2}');\n }`;u&&(p+="var destructors = [];\n");var f=u?"destructors":"null",m=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],v=[Kr,n,o,xr,e[0],e[1]];for(s&&(p+="var thisWired = classParam.toWireType("+f+", this);\n"),l=0;l<i-2;++l)p+="var arg"+l+"Wired = argType"+l+".toWireType("+f+", arg"+l+"); // "+e[l+2].name+"\n",m.push("argType"+l),v.push(e[l+2]);if(s&&(h="thisWired"+(h.length>0?", ":"")+h),p+=(c||a?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",u)p+="runDestructors(destructors);\n";else for(l=s?1:2;l<e.length;++l){var y=1===l?"thisWired":"arg"+(l-2)+"Wired";null!==e[l].destructorFunction&&(p+=y+"_dtor("+y+"); // "+e[l].name+"\n",m.push(y+"_dtor"),v.push(e[l].destructorFunction))}return c&&(p+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),p+="}\n",m.push(p),Ze(Function,m).apply(null,v)}var rt=(r,e,t,n,o,a)=>{var i=Je(e,t);o=qe(n,o),Vr([],[r],function(r){var t=`constructor ${(r=r[0]).name}`;if(void 0===r.registeredClass.constructor_body&&(r.registeredClass.constructor_body=[]),void 0!==r.registeredClass.constructor_body[e-1])throw new Hr(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[e-1]=()=>{Ge(`Cannot construct ${r.name} due to unbound types`,i)},Vr([],i,n=>(n.splice(1,0,null),r.registeredClass.constructor_body[e-1]=Qe(t,n,null,o,a),[])),[]})},et=r=>{const e=(r=r.trim()).indexOf("(");return-1!==e?(T(")"==r[r.length-1],"Parentheses for argument names should match."),r.substr(0,e)):r},tt=(r,e,t,n,o,a,i,s,u)=>{var l=Je(t,n);e=Gr(e),e=et(e),a=qe(o,a),Vr([],[r],function(r){var n=`${(r=r[0]).name}.${e}`;function o(){Ge(`Cannot call ${n} due to unbound types`,l)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]),s&&r.registeredClass.pureVirtualFunctions.push(e);var c=r.registeredClass.instancePrototype,d=c[e];return void 0===d||void 0===d.overloadTable&&d.className!==r.name&&d.argCount===t-2?(o.argCount=t-2,o.className=r.name,c[e]=o):(Fe(c,e,n),c[e].overloadTable[t-2]=o),Vr([],l,function(o){var s=Qe(n,o,r,a,i,u);return void 0===c[e].overloadTable?(s.argCount=t-2,c[e]=s):c[e].overloadTable[t-2]=s,[]}),[]})},nt=(r,e,t)=>{r=Gr(r),Vr([],[e],function(e){return e=e[0],o[r]=e.fromWireType(t),[]})};function ot(){Object.assign(at.prototype,{get(r){return this.allocated[r]},has(r){return void 0!==this.allocated[r]},allocate(r){var e=this.freelist.pop()||this.allocated.length;return this.allocated[e]=r,e},free(r){this.allocated[r]=void 0,this.freelist.push(r)}})}function at(){this.allocated=[void 0],this.freelist=[]}var it=new at,st=r=>{r>=it.reserved&&0===--it.get(r).refcount&&it.free(r)},ut=()=>{for(var r=0,e=it.reserved;e<it.allocated.length;++e)void 0!==it.allocated[e]&&++r;return r},lt=()=>{it.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),it.reserved=it.allocated.length,o.count_emval_handles=ut},ct={toValue:r=>(r||Kr("Cannot use deleted val. handle = "+r),it.get(r).value),toHandle:r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return it.allocate({refcount:1,value:r})}}},dt=(r,e)=>{Zr(r,{name:e=Gr(e),fromWireType:r=>{var e=ct.toValue(r);return st(r),e},toWireType:(r,e)=>ct.toHandle(e),argPackAdvance:re,readValueFromPointer:Wr,destructorFunction:null})},ht=(r,e,t)=>{switch(e){case 1:return t?function(r){return this.fromWireType(y[0|r])}:function(r){return this.fromWireType(g[0|r])};case 2:return t?function(r){return this.fromWireType(w[r>>1])}:function(r){return this.fromWireType(E[r>>1])};case 4:return t?function(r){return this.fromWireType(_[r>>2])}:function(r){return this.fromWireType(b[r>>2])};default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},pt=(r,e,t,n)=>{function o(){}e=Gr(e),o.values={},Zr(r,{name:e,constructor:o,fromWireType:function(r){return this.constructor.values[r]},toWireType:(r,e)=>e.value,argPackAdvance:re,readValueFromPointer:ht(e,t,n),destructorFunction:null}),De(e,o)},ft=(r,e)=>{var t=Lr[r];return void 0===t&&Kr(e+" has unknown type "+Xe(r)),t},mt=(r,e,t)=>{var n=ft(r,"enum");e=Gr(e);var o=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:Ce(`${n.name}_${e}`,function(){})}});o.values[t]=a,o[e]=a},vt=r=>{if(null===r)return"null";var e=typeof r;return"object"===e||"array"===e||"function"===e?r.toString():""+r},yt=(r,e)=>{switch(e){case 4:return function(r){return this.fromWireType(k[r>>2])};case 8:return function(r){return this.fromWireType($[r>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},gt=(r,e,t)=>{Zr(r,{name:e=Gr(e),fromWireType:r=>r,toWireType:(r,e)=>e,argPackAdvance:re,readValueFromPointer:yt(e,t),destructorFunction:null})},wt=(r,e,t,n,o,a,i)=>{var s=Je(e,t);r=Gr(r),r=et(r),o=qe(n,o),De(r,function(){Ge(`Cannot call ${r} due to unbound types`,s)},e-1),Vr([],s,function(t){var n=[t[0],null].concat(t.slice(1));return He(r,Qe(r,n,null,o,a,i),e-1),[]})},Et=(r,e,t)=>{switch(e){case 1:return t?r=>y[0|r]:r=>g[0|r];case 2:return t?r=>w[r>>1]:r=>E[r>>1];case 4:return t?r=>_[r>>2]:r=>b[r>>2];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},_t=(r,e,t,n,o)=>{e=Gr(e);var a=r=>r;if(0===n){var i=32-8*t;a=r=>r<<i>>>i}var s=e.includes("unsigned"),u=(r,e)=>{};Zr(r,{name:e,fromWireType:a,toWireType:s?function(r,e){return u(e,this.name),e>>>0}:function(r,e){return u(e,this.name),e},argPackAdvance:re,readValueFromPointer:Et(e,t,0!==n),destructorFunction:null})},bt=(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function o(r){var e=b[r>>2],t=b[r+4>>2];return new n(y.buffer,t,e)}Zr(r,{name:t=Gr(t),fromWireType:o,argPackAdvance:re,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},kt=(r,e,t)=>dr(r,g,e,t),$t=(r,e)=>{var t="std::string"===(e=Gr(e));Zr(r,{name:e,fromWireType(r){var e,n=b[r>>2],o=r+4;if(t)for(var a=o,i=0;i<=n;++i){var s=o+i;if(i==n||0==g[s]){var u=Cr(a,s-a);void 0===e?e=u:(e+=String.fromCharCode(0),e+=u),a=s+1}}else{var l=new Array(n);for(i=0;i<n;++i)l[i]=String.fromCharCode(g[o+i]);e=l.join("")}return Wn(r),e},toWireType(r,e){var n;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var o="string"==typeof e;o||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||Kr("Cannot pass non-string to std::string"),n=t&&o?cr(e):e.length;var a=zn(4+n+1),i=a+4;if(b[a>>2]=n,t&&o)kt(e,i,n+1);else if(o)for(var s=0;s<n;++s){var u=e.charCodeAt(s);u>255&&(Wn(i),Kr("String has UTF-16 code units that do not fit in 8 bits")),g[i+s]=u}else for(s=0;s<n;++s)g[i+s]=e[s];return null!==r&&r.push(Wn,a),a},argPackAdvance:re,readValueFromPointer:Re,destructorFunction(r){Wn(r)}})},Pt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Tt=(r,e)=>{for(var t=r,n=t>>1,o=n+e/2;!(n>=o)&&E[n];)++n;if((t=n<<1)-r>32&&Pt)return Pt.decode(g.subarray(r,t));for(var a="",i=0;!(i>=e/2);++i){var s=w[r+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a},Ct=(r,e,t)=>{if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=e,o=(t-=2)<2*r.length?t/2:r.length,a=0;a<o;++a){var i=r.charCodeAt(a);w[e>>1]=i,e+=2}return w[e>>1]=0,e-n},Ft=r=>2*r.length,Dt=(r,e)=>{for(var t=0,n="";!(t>=e/4);){var o=_[r+4*t>>2];if(0==o)break;if(++t,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n},St=(r,e,t)=>{if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=e,o=n+t-4,a=0;a<r.length;++a){var i=r.charCodeAt(a);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&r.charCodeAt(++a)),_[e>>2]=i,(e+=4)+4>o)break}return _[e>>2]=0,e-n},At=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n>=55296&&n<=57343&&++t,e+=4}return e},Mt=(r,e,t)=>{var n,o,a,i,s;t=Gr(t),2===e?(n=Tt,o=Ct,i=Ft,a=()=>E,s=1):4===e&&(n=Dt,o=St,i=At,a=()=>b,s=2),Zr(r,{name:t,fromWireType:r=>{for(var t,o=b[r>>2],i=a(),u=r+4,l=0;l<=o;++l){var c=r+4+l*e;if(l==o||0==i[c>>s]){var d=n(u,c-u);void 0===t?t=d:(t+=String.fromCharCode(0),t+=d),u=c+e}}return Wn(r),t},toWireType:(r,n)=>{"string"!=typeof n&&Kr(`Cannot pass non-string to C++ string type ${t}`);var a=i(n),u=zn(4+a+e);return b[u>>2]=a>>s,o(n,u+4,a+e),null!==r&&r.push(Wn,u),u},argPackAdvance:re,readValueFromPointer:Wr,destructorFunction(r){Wn(r)}})},jt=(r,e,t,n,o,a)=>{Rr[r]={name:Gr(e),rawConstructor:qe(t,n),rawDestructor:qe(o,a),fields:[]}},Ot=(r,e,t,n,o,a,i,s,u,l)=>{Rr[r].fields.push({fieldName:Gr(e),getterReturnType:t,getter:qe(n,o),getterContext:a,setterArgumentType:i,setter:qe(s,u),setterContext:l})},Rt=(r,e)=>{Zr(r,{isVoid:!0,name:e=Gr(e),argPackAdvance:0,fromWireType:()=>{},toWireType:(r,e)=>{}})},xt=()=>{throw 1/0},Wt=(r,e,t)=>{r=ct.toValue(r),e=ft(e,"emval::as");var n=[],o=ct.toHandle(n);return b[t>>2]=o,e.toWireType(n,r)},zt={},Nt=r=>{var e=zt[r];return void 0===e?Gr(r):e},Ht=[],Bt=(r,e,t,n,o)=>{var a=[],i=(r=Ht[r])(e=ct.toValue(e),t=Nt(t),a,o);return a.length&&(b[n>>2]=ct.toHandle(a)),i},Lt=()=>"object"==typeof globalThis?globalThis:Function("return this")(),Ut=r=>0===r?ct.toHandle(Lt()):(r=Nt(r),ct.toHandle(Lt()[r])),It=r=>{var e=Ht.length;return Ht.push(r),e},Vt=(r,e)=>{for(var t=new Array(r),n=0;n<r;++n)t[n]=ft(b[e+4*n>>2],"parameter "+n);return t},qt=(r,e)=>{var t=Vt(r,e),n=t.shift();r--;for(var o=["retType"],a=[n],i="",s=0;s<r;++s)i+=(0!==s?", ":"")+"arg"+s,o.push("argType"+s),a.push(t[s]);var u=n.name+"_$"+t.map(r=>r.name).join("_")+"$",l="return function "+Te("methodCaller_"+u)+"(handle, name, destructors, args) {\n",c=0;for(s=0;s<r;++s)l+=" var arg"+s+" = argType"+s+".readValueFromPointer(args"+(c?"+"+c:"")+");\n",c+=t[s].argPackAdvance;for(l+=" var rv = handle[name]("+i+");\n",s=0;s<r;++s)t[s].deleteObject&&(l+=" argType"+s+".deleteObject(arg"+s+");\n");n.isVoid||(l+=" return retType.toWireType(destructors, rv);\n"),l+="};\n",o.push(l);var d=Ze(Function,o).apply(null,a);return It(d)},Yt=r=>(r=Nt(r),ct.toHandle(o[r])),Xt=(r,e)=>(r=ct.toValue(r),e=ct.toValue(e),ct.toHandle(r[e])),Gt=r=>{r>4&&(it.get(r).refcount+=1)},Kt=r=>{for(var e="",t=0;t<r;++t)e+=(0!==t?", ":"")+"arg"+t;var n=()=>b,a="return function emval_allocator_"+r+"(constructor, argTypes, args) {\n var HEAPU32 = getMemory();\n";for(t=0;t<r;++t)a+="var argType"+t+" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter "+t+"');\nvar arg"+t+" = argType"+t+".readValueFromPointer(args);\nargs += argType"+t+"['argPackAdvance'];\nargTypes += 4;\n";return a+="var obj = new constructor("+e+");\nreturn valueToHandle(obj);\n}\n",new Function("requireRegisteredType","Module","valueToHandle","getMemory",a)(ft,o,ct.toHandle,n)},Jt={},Zt=(r,e,t,n)=>{r=ct.toValue(r);var o=Jt[e];return o||(o=Kt(e),Jt[e]=o),o(r,t,n)},Qt=r=>ct.toHandle(Nt(r)),rn=r=>{var e=ct.toValue(r);xr(e),st(r)},en=(r,e)=>e+2097152>>>0<4194305-!!r?(r>>>0)+4294967296*e:NaN;function tn(r,e,t,n,o,a,i,s){var u=en(o,a);try{if(isNaN(u))return 61;var l=Fr.getStreamFromFD(n),c=Tr.mmap(l,r,u,e,t),d=c.ptr;return _[i>>2]=c.allocated,b[s>>2]=d,0}catch(h){if(void 0===Tr||"ErrnoError"!==h.name)throw h;return-h.errno}}function nn(r,e,t,n,o,a,i){var s=en(a,i);try{if(isNaN(s))return 61;var u=Fr.getStreamFromFD(o);2&t&&Fr.doMsync(r,u,e,n,s),Tr.munmap(u)}catch(l){if(void 0===Tr||"ErrnoError"!==l.name)throw l;return-l.errno}}var on=()=>{L("")},an=()=>Date.now(),sn=()=>2147483648,un=()=>sn(),ln=(r,e,t)=>g.copyWithin(r,e,e+t),cn=r=>{var e=(r-f.buffer.byteLength+65535)/65536;try{return f.grow(e),C(),1}catch(t){}},dn=r=>{var e=g.length;r>>>=0;var t=sn();if(r>t)return!1;for(var n=(r,e)=>r+(e-r%e)%e,o=1;o<=4;o*=2){var a=e*(1+.2/o);a=Math.min(a,r+100663296);var i=Math.min(t,n(Math.max(r,a),65536));if(cn(i))return!0}return!1},hn={},pn=()=>l||"./this.program",fn=()=>{if(!fn.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:pn()};for(var e in hn)void 0===hn[e]?delete r[e]:r[e]=hn[e];var t=[];for(var e in r)t.push(`${e}=${r[e]}`);fn.strings=t}return fn.strings},mn=(r,e)=>{for(var t=0;t<r.length;++t)y[0|e++]=r.charCodeAt(t);y[0|e]=0},vn=(r,e)=>{var t=0;return fn().forEach((n,o)=>{var a=e+t;b[r+4*o>>2]=a,mn(n,a),t+=n.length+1}),0},yn=(r,e)=>{var t=fn();b[r>>2]=t.length;var n=0;return t.forEach(r=>n+=r.length+1),b[e>>2]=n,0};function gn(r){try{var e=Fr.getStreamFromFD(r);return Tr.close(e),0}catch(t){if(void 0===Tr||"ErrnoError"!==t.name)throw t;return t.errno}}var wn=(r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var i=b[e>>2],s=b[e+4>>2];e+=8;var u=Tr.read(r,y,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function En(r,e,t,n){try{var o=Fr.getStreamFromFD(r),a=wn(o,e,t);return b[n>>2]=a,0}catch(i){if(void 0===Tr||"ErrnoError"!==i.name)throw i;return i.errno}}function _n(r,e,t,n,o){var a=en(e,t);try{if(isNaN(a))return 61;var i=Fr.getStreamFromFD(r);return Tr.llseek(i,a,n),V=[i.position>>>0,(I=i.position,+Math.abs(I)>=1?I>0?+Math.floor(I/4294967296)>>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)],_[o>>2]=V[0],_[o+4>>2]=V[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(s){if(void 0===Tr||"ErrnoError"!==s.name)throw s;return s.errno}}var bn=(r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var i=b[e>>2],s=b[e+4>>2];e+=8;var u=Tr.write(r,y,i,s,n);if(u<0)return-1;o+=u}return o};function kn(r,e,t,n){try{var o=Fr.getStreamFromFD(r),a=bn(o,e,t);return b[n>>2]=a,0}catch(i){if(void 0===Tr||"ErrnoError"!==i.name)throw i;return i.errno}}var $n=r=>r%4==0&&(r%100!=0||r%400==0),Pn=(r,e)=>{for(var t=0,n=0;n<=e;t+=r[n++]);return t},Tn=[31,29,31,30,31,30,31,31,30,31,30,31],Cn=[31,28,31,30,31,30,31,31,30,31,30,31],Fn=(r,e)=>{for(var t=new Date(r.getTime());e>0;){var n=$n(t.getFullYear()),o=t.getMonth(),a=(n?Tn:Cn)[o];if(!(e>a-t.getDate()))return t.setDate(t.getDate()+e),t;e-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t},Dn=(r,e)=>{y.set(r,e)},Sn=(r,e,t,n)=>{var o=b[n+40>>2],a={tm_sec:_[n>>2],tm_min:_[n+4>>2],tm_hour:_[n+8>>2],tm_mday:_[n+12>>2],tm_mon:_[n+16>>2],tm_year:_[n+20>>2],tm_wday:_[n+24>>2],tm_yday:_[n+28>>2],tm_isdst:_[n+32>>2],tm_gmtoff:_[n+36>>2],tm_zone:o?Cr(o):""},i=Cr(t),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in s)i=i.replace(new RegExp(u,"g"),s[u]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(r,e,t){for(var n="number"==typeof r?r.toString():r||"";n.length<e;)n=t[0]+n;return n}function h(r,e){return d(r,e,"0")}function p(r,e){function t(r){return r<0?-1:r>0?1:0}var n;return 0===(n=t(r.getFullYear()-e.getFullYear()))&&0===(n=t(r.getMonth()-e.getMonth()))&&(n=t(r.getDate()-e.getDate())),n}function f(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function m(r){var e=Fn(new Date(r.tm_year+1900,0,1),r.tm_yday),t=new Date(e.getFullYear(),0,4),n=new Date(e.getFullYear()+1,0,4),o=f(t),a=f(n);return p(o,e)<=0?p(a,e)<=0?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}var v={"%a":r=>l[r.tm_wday].substring(0,3),"%A":r=>l[r.tm_wday],"%b":r=>c[r.tm_mon].substring(0,3),"%B":r=>c[r.tm_mon],"%C":r=>h((r.tm_year+1900)/100|0,2),"%d":r=>h(r.tm_mday,2),"%e":r=>d(r.tm_mday,2," "),"%g":r=>m(r).toString().substring(2),"%G":r=>m(r),"%H":r=>h(r.tm_hour,2),"%I":r=>{var e=r.tm_hour;return 0==e?e=12:e>12&&(e-=12),h(e,2)},"%j":r=>h(r.tm_mday+Pn($n(r.tm_year+1900)?Tn:Cn,r.tm_mon-1),3),"%m":r=>h(r.tm_mon+1,2),"%M":r=>h(r.tm_min,2),"%n":()=>"\n","%p":r=>r.tm_hour>=0&&r.tm_hour<12?"AM":"PM","%S":r=>h(r.tm_sec,2),"%t":()=>"\t","%u":r=>r.tm_wday||7,"%U":r=>{var e=r.tm_yday+7-r.tm_wday;return h(Math.floor(e/7),2)},"%V":r=>{var e=Math.floor((r.tm_yday+7-(r.tm_wday+6)%7)/7);if((r.tm_wday+371-r.tm_yday-2)%7<=2&&e++,e){if(53==e){var t=(r.tm_wday+371-r.tm_yday)%7;4==t||3==t&&$n(r.tm_year)||(e=1)}}else{e=52;var n=(r.tm_wday+7-r.tm_yday-1)%7;(4==n||5==n&&$n(r.tm_year%400-1))&&e++}return h(e,2)},"%w":r=>r.tm_wday,"%W":r=>{var e=r.tm_yday+7-(r.tm_wday+6)%7;return h(Math.floor(e/7),2)},"%y":r=>(r.tm_year+1900).toString().substring(2),"%Y":r=>r.tm_year+1900,"%z":r=>{var e=r.tm_gmtoff,t=e>=0;return e=(e=Math.abs(e)/60)/60*100+e%60,(t?"+":"-")+String("0000"+e).slice(-4)},"%Z":r=>r.tm_zone,"%%":()=>"%"};for(var u in i=i.replace(/%%/g,"\0\0"),v)i.includes(u)&&(i=i.replace(new RegExp(u,"g"),v[u](a)));var y=hr(i=i.replace(/\0\0/g,"%"),!1);return y.length>e?0:(Dn(y,r),y.length-1)},An=(r,e,t,n,o)=>Sn(r,e,t,n),Mn=function(r,e,t,n){r||(r=this),this.parent=r,this.mount=r.mount,this.mounted=null,this.id=Tr.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},jn=365,On=146;Object.defineProperties(Mn.prototype,{read:{get:function(){return(this.mode&jn)===jn},set:function(r){r?this.mode|=jn:this.mode&=~jn}},write:{get:function(){return(this.mode&On)===On},set:function(r){r?this.mode|=On:this.mode&=~On}},isFolder:{get:function(){return Tr.isDir(this.mode)}},isDevice:{get:function(){return Tr.isChrdev(this.mode)}}}),Tr.FSNode=Mn,Tr.createPreloadedFile=kr,Tr.staticInit(),zr=o.InternalError=class extends Error{constructor(r){super(r),this.name="InternalError"}},Xr(),Hr=o.BindingError=class extends Error{constructor(r){super(r),this.name="BindingError"}},be(),me(),xe(),Ne=o.UnboundTypeError=Ye(Error,"UnboundTypeError"),ot(),lt();var Rn={w:er,D:Dr,T:Sr,V:Ar,R:Mr,E:jr,S:Or,u:qr,K:Yr,Z:ee,y:Ke,x:rt,a:tt,e:nt,Y:dt,n:pt,b:mt,G:gt,j:wt,m:_t,g:bt,F:$t,A:Mt,v:jt,d:Ot,_:Rt,O:xt,o:Wt,p:Bt,c:st,B:Ut,q:qt,s:Yt,h:Xt,l:Gt,r:Zt,i:Qt,k:rn,H:tn,I:nn,f:on,W:an,P:un,X:ln,Q:dn,M:vn,N:yn,z:gn,U:En,J:_n,C:kn,aa:Gn,t:Yn,$:Kn,ba:Xn,L:An},xn=Z(),Wn=r=>(Wn=xn.ea)(r),zn=r=>(zn=xn.fa)(r),Nn=r=>(Nn=xn.ha)(r);o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=xn.ia)();var Hn,Bn=()=>(Bn=xn.ja)(),Ln=(r,e)=>(Ln=xn.ka)(r,e),Un=(r,e)=>(Un=xn.la)(r,e),In=()=>(In=xn.ma)(),Vn=r=>(Vn=xn.na)(r),qn=r=>(qn=xn.oa)(r);function Yn(r,e){var t=In();try{Ue(r)(e)}catch(n){if(Vn(t),n!==n+0)throw n;Un(1,0)}}function Xn(r,e,t,n){var o=In();try{Ue(r)(e,t,n)}catch(a){if(Vn(o),a!==a+0)throw a;Un(1,0)}}function Gn(r,e){var t=In();try{return Ue(r)(e)}catch(n){if(Vn(t),n!==n+0)throw n;Un(1,0)}}function Kn(r,e,t){var n=In();try{Ue(r)(e,t)}catch(o){if(Vn(n),o!==o+0)throw o;Un(1,0)}}function Jn(){function r(){Hn||(Hn=!0,o.calledRun=!0,P||(M(),t(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),j()))}W>0||(A(),W>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),r()},1)):r()))}if(o.dynCall_ji=(r,e)=>(o.dynCall_ji=xn.pa)(r,e),o.dynCall_iij=(r,e,t,n)=>(o.dynCall_iij=xn.qa)(r,e,t,n),o.dynCall_jiiii=(r,e,t,n,a)=>(o.dynCall_jiiii=xn.ra)(r,e,t,n,a),o.dynCall_jiji=(r,e,t,n,a)=>(o.dynCall_jiji=xn.sa)(r,e,t,n,a),o.dynCall_viijii=(r,e,t,n,a,i,s)=>(o.dynCall_viijii=xn.ta)(r,e,t,n,a,i,s),o.dynCall_iiiiij=(r,e,t,n,a,i,s)=>(o.dynCall_iiiiij=xn.ua)(r,e,t,n,a,i,s),o.dynCall_iiiiijj=(r,e,t,n,a,i,s,u,l)=>(o.dynCall_iiiiijj=xn.va)(r,e,t,n,a,i,s,u,l),o.dynCall_iiiiiijj=(r,e,t,n,a,i,s,u,l,c)=>(o.dynCall_iiiiiijj=xn.wa)(r,e,t,n,a,i,s,u,l,c),z=function r(){Hn||Jn(),Hn||(z=r)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Jn(),e.ready});export{e as default};
|
|
2
|
+
var r,e=(r="undefined"!=typeof document?document.currentScript?.src:void 0,function(e={}){var t,n,o=e,a=new Promise((r,e)=>{t=r,n=e}),i="object"==typeof window,s="undefined"!=typeof WorkerGlobalScope;"object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&process.type;var u,l,d=Object.assign({},o),c="./this.program",h="";function f(r){return o.locateFile?o.locateFile(r,h):h+r}(i||s)&&(s?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),r&&(h=r),h=h.startsWith("blob:")?"":h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1),s&&(l=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),u=async r=>{var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)});var p=o.print||console.log.bind(console),m=o.printErr||console.error.bind(console);Object.assign(o,d),d=null,o.arguments&&o.arguments,o.thisProgram&&(c=o.thisProgram);var v,y,w,g,E,b,_,k,$,P=o.wasmBinary,C=!1;function T(){var r=v.buffer;o.HEAP8=y=new Int8Array(r),o.HEAP16=g=new Int16Array(r),o.HEAPU8=w=new Uint8Array(r),o.HEAPU16=E=new Uint16Array(r),o.HEAP32=b=new Int32Array(r),o.HEAPU32=_=new Uint32Array(r),o.HEAPF32=k=new Float32Array(r),o.HEAPF64=$=new Float64Array(r)}var A=[],S=[],D=[];function F(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)x(o.preRun.shift());rr(A)}function j(){o.noFSInit||Dr.initialized||Dr.init(),Dr.ignorePermissions=!1,rr(S)}function M(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)O(o.postRun.shift());rr(D)}function x(r){A.unshift(r)}function R(r){S.unshift(r)}function O(r){D.unshift(r)}var N=0,W=null;function z(r){N++,o.monitorRunDependencies?.(N)}function U(r){if(N--,o.monitorRunDependencies?.(N),0==N&&W){var e=W;W=null,e()}}function B(r){o.onAbort?.(r),m(r="Aborted("+r+")"),C=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw n(e),e}var L,H,I,V="data:application/octet-stream;base64,",q=r=>r.startsWith(V);function G(){var r="basis_encoder.wasm";return q(r)?r:f(r)}function X(r){if(r==L&&P)return new Uint8Array(P);if(l)return l(r);throw"both async and sync fetching of the wasm failed"}async function K(r){if(!P)try{var e=await u(r);return new Uint8Array(e)}catch{}return X(r)}async function Y(r,e){try{var t=await K(r);return await WebAssembly.instantiate(t,e)}catch(n){m(`failed to asynchronously prepare wasm: ${n}`),B(n)}}async function Z(r,e,t){if(!r&&"function"==typeof WebAssembly.instantiateStreaming&&!q(e)&&"function"==typeof fetch)try{var n=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(o){m(`wasm streaming compile failed: ${o}`),m("falling back to ArrayBuffer instantiation")}return Y(e,t)}function J(){return{a:_n}}async function Q(){function r(r,e){return bn=r.exports,v=bn.ca,T(),Re=bn.ga,R(bn.da),U(),bn}function e(e){r(e.instance)}z();var t=J();if(o.instantiateWasm)try{return o.instantiateWasm(t,r)}catch(i){m(`Module.instantiateWasm callback failed with error: ${i}`),n(i)}L??=G();try{var a=await Z(P,L,t);return e(a),a}catch(i){return void n(i)}}var rr=r=>{for(;r.length>0;)r.shift()(o)};o.noExitRuntime;var er=r=>Sn(r),tr=()=>Dn();class nr{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){_[this.ptr+4>>2]=r}get_type(){return _[this.ptr+4>>2]}set_destructor(r){_[this.ptr+8>>2]=r}get_destructor(){return _[this.ptr+8>>2]}set_caught(r){r=r?1:0,y[this.ptr+12]=r}get_caught(){return 0!=y[this.ptr+12]}set_rethrown(r){r=r?1:0,y[this.ptr+13]=r}get_rethrown(){return 0!=y[this.ptr+13]}init(r,e){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(e)}set_adjusted_ptr(r){_[this.ptr+16>>2]=r}get_adjusted_ptr(){return _[this.ptr+16>>2]}}var or=(r,e,t)=>{throw new nr(r).init(e,t),r},ar=()=>{var r=b[+jr.varargs>>2];return jr.varargs+=4,r},ir=ar,sr={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,e)=>{for(var t=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),t++):t&&(r.splice(n,1),t--)}if(e)for(;t;t--)r.unshift("..");return r},normalize:r=>{var e=sr.isAbs(r),t="/"===r.substr(-1);return(r=sr.normalizeArray(r.split("/").filter(r=>!!r),!e).join("/"))||e||(r="."),r&&t&&(r+="/"),(e?"/":"")+r},dirname:r=>{var e=sr.splitPath(r),t=e[0],n=e[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:r=>{if("/"===r)return"/";var e=(r=(r=sr.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===e?r:r.substr(e+1)},join:(...r)=>sr.normalize(r.join("/")),join2:(r,e)=>sr.normalize(r+"/"+e)},ur=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return r=>crypto.getRandomValues(r);B("initRandomDevice")},lr=r=>(lr=ur())(r),dr={resolve:(...r)=>{for(var e="",t=!1,n=r.length-1;n>=-1&&!t;n--){var o=n>=0?r[n]:Dr.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t=sr.isAbs(o)}return(t?"/":"")+(e=sr.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"))||"."},relative:(r,e)=>{function t(r){for(var e=0;e<r.length&&""===r[e];e++);for(var t=r.length-1;t>=0&&""===r[t];t--);return e>t?[]:r.slice(e,t-e+1)}r=dr.resolve(r).substr(1),e=dr.resolve(e).substr(1);for(var n=t(r.split("/")),o=t(e.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}var u=[];for(s=i;s<n.length;s++)u.push("..");return(u=u.concat(o.slice(i))).join("/")}},cr="undefined"!=typeof TextDecoder?new TextDecoder:void 0,hr=(r,e=0,t=NaN)=>{for(var n=e+t,o=e;r[o]&&!(o>=n);)++o;if(o-e>16&&r.buffer&&cr)return cr.decode(r.subarray(e,o));for(var a="";e<o;){var i=r[e++];if(128&i){var s=63&r[e++];if(192!=(224&i)){var u=63&r[e++];if((i=224==(240&i)?(15&i)<<12|s<<6|u:(7&i)<<18|s<<12|u<<6|63&r[e++])<65536)a+=String.fromCharCode(i);else{var l=i-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},fr=[],pr=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++t):e+=3}return e},mr=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i<r.length;++i){var s=r.charCodeAt(i);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&r.charCodeAt(++i)),s<=127){if(t>=a)break;e[t++]=s}else if(s<=2047){if(t+1>=a)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=a)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}return e[t]=0,t-o};function vr(r,e,t){var n=pr(r)+1,o=new Array(n),a=mr(r,o,0,o.length);return o.length=a,o}var yr=()=>{if(!fr.length){var r=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(r=window.prompt("Input: "))&&(r+="\n"),!r)return null;fr=vr(r)}return fr.shift()},wr={ttys:[],init(){},shutdown(){},register(r,e){wr.ttys[r]={input:[],output:[],ops:e},Dr.registerDevice(r,wr.stream_ops)},stream_ops:{open(r){var e=wr.ttys[r.node.rdev];if(!e)throw new Dr.ErrnoError(43);r.tty=e,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,e,t,n,o){if(!r.tty||!r.tty.ops.get_char)throw new Dr.ErrnoError(60);for(var a=0,i=0;i<n;i++){var s;try{s=r.tty.ops.get_char(r.tty)}catch(u){throw new Dr.ErrnoError(29)}if(void 0===s&&0===a)throw new Dr.ErrnoError(6);if(null==s)break;a++,e[t+i]=s}return a&&(r.node.atime=Date.now()),a},write(r,e,t,n,o){if(!r.tty||!r.tty.ops.put_char)throw new Dr.ErrnoError(60);try{for(var a=0;a<n;a++)r.tty.ops.put_char(r.tty,e[t+a])}catch(i){throw new Dr.ErrnoError(29)}return n&&(r.node.mtime=r.node.ctime=Date.now()),a}},default_tty_ops:{get_char:r=>yr(),put_char(r,e){null===e||10===e?(p(hr(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(p(hr(r.output)),r.output=[])},ioctl_tcgets:r=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(r,e,t)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,e){null===e||10===e?(m(hr(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(m(hr(r.output)),r.output=[])}}},gr=(r,e)=>{w.fill(0,r,r+e)},Er=(r,e)=>Math.ceil(r/e)*e,br=r=>{r=Er(r,65536);var e=Tn(65536,r);return e&&gr(e,r),e},_r={ops_table:null,mount:r=>_r.createNode(null,"/",16895,0),createNode(r,e,t,n){if(Dr.isBlkdev(t)||Dr.isFIFO(t))throw new Dr.ErrnoError(63);_r.ops_table||={dir:{node:{getattr:_r.node_ops.getattr,setattr:_r.node_ops.setattr,lookup:_r.node_ops.lookup,mknod:_r.node_ops.mknod,rename:_r.node_ops.rename,unlink:_r.node_ops.unlink,rmdir:_r.node_ops.rmdir,readdir:_r.node_ops.readdir,symlink:_r.node_ops.symlink},stream:{llseek:_r.stream_ops.llseek}},file:{node:{getattr:_r.node_ops.getattr,setattr:_r.node_ops.setattr},stream:{llseek:_r.stream_ops.llseek,read:_r.stream_ops.read,write:_r.stream_ops.write,allocate:_r.stream_ops.allocate,mmap:_r.stream_ops.mmap,msync:_r.stream_ops.msync}},link:{node:{getattr:_r.node_ops.getattr,setattr:_r.node_ops.setattr,readlink:_r.node_ops.readlink},stream:{}},chrdev:{node:{getattr:_r.node_ops.getattr,setattr:_r.node_ops.setattr},stream:Dr.chrdev_stream_ops}};var o=Dr.createNode(r,e,t,n);return Dr.isDir(o.mode)?(o.node_ops=_r.ops_table.dir.node,o.stream_ops=_r.ops_table.dir.stream,o.contents={}):Dr.isFile(o.mode)?(o.node_ops=_r.ops_table.file.node,o.stream_ops=_r.ops_table.file.stream,o.usedBytes=0,o.contents=null):Dr.isLink(o.mode)?(o.node_ops=_r.ops_table.link.node,o.stream_ops=_r.ops_table.link.stream):Dr.isChrdev(o.mode)&&(o.node_ops=_r.ops_table.chrdev.node,o.stream_ops=_r.ops_table.chrdev.stream),o.atime=o.mtime=o.ctime=Date.now(),r&&(r.contents[e]=o,r.atime=r.mtime=r.ctime=o.atime),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,e){var t=r.contents?r.contents.length:0;if(!(t>=e)){var n=1048576;e=Math.max(e,t*(t<n?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var o=r.contents;r.contents=new Uint8Array(e),r.usedBytes>0&&r.contents.set(o.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,e){if(r.usedBytes!=e)if(0==e)r.contents=null,r.usedBytes=0;else{var t=r.contents;r.contents=new Uint8Array(e),t&&r.contents.set(t.subarray(0,Math.min(e,r.usedBytes))),r.usedBytes=e}},node_ops:{getattr(r){var e={};return e.dev=Dr.isChrdev(r.mode)?r.id:1,e.ino=r.id,e.mode=r.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=r.rdev,Dr.isDir(r.mode)?e.size=4096:Dr.isFile(r.mode)?e.size=r.usedBytes:Dr.isLink(r.mode)?e.size=r.link.length:e.size=0,e.atime=new Date(r.atime),e.mtime=new Date(r.mtime),e.ctime=new Date(r.ctime),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(r,e){for(const t of["mode","atime","mtime","ctime"])e[t]&&(r[t]=e[t]);void 0!==e.size&&_r.resizeFileStorage(r,e.size)},lookup(r,e){throw _r.doesNotExistError},mknod:(r,e,t,n)=>_r.createNode(r,e,t,n),rename(r,e,t){var n;try{n=Dr.lookupNode(e,t)}catch(a){}if(n){if(Dr.isDir(r.mode))for(var o in n.contents)throw new Dr.ErrnoError(55);Dr.hashRemoveNode(n)}delete r.parent.contents[r.name],e.contents[t]=r,r.name=t,e.ctime=e.mtime=r.parent.ctime=r.parent.mtime=Date.now()},unlink(r,e){delete r.contents[e],r.ctime=r.mtime=Date.now()},rmdir(r,e){var t=Dr.lookupNode(r,e);for(var n in t.contents)throw new Dr.ErrnoError(55);delete r.contents[e],r.ctime=r.mtime=Date.now()},readdir:r=>[".","..",...Object.keys(r.contents)],symlink(r,e,t){var n=_r.createNode(r,e,41471,0);return n.link=t,n},readlink(r){if(!Dr.isLink(r.mode))throw new Dr.ErrnoError(28);return r.link}},stream_ops:{read(r,e,t,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var i=Math.min(r.node.usedBytes-o,n);if(i>8&&a.subarray)e.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)e[t+s]=a[o+s];return i},write(r,e,t,n,o,a){if(e.buffer===y.buffer&&(a=!1),!n)return 0;var i=r.node;if(i.mtime=i.ctime=Date.now(),e.subarray&&(!i.contents||i.contents.subarray)){if(a)return i.contents=e.subarray(t,t+n),i.usedBytes=n,n;if(0===i.usedBytes&&0===o)return i.contents=e.slice(t,t+n),i.usedBytes=n,n;if(o+n<=i.usedBytes)return i.contents.set(e.subarray(t,t+n),o),n}if(_r.expandFileStorage(i,o+n),i.contents.subarray&&e.subarray)i.contents.set(e.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=e[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(r,e,t){var n=e;if(1===t?n+=r.position:2===t&&Dr.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new Dr.ErrnoError(28);return n},allocate(r,e,t){_r.expandFileStorage(r.node,e+t),r.node.usedBytes=Math.max(r.node.usedBytes,e+t)},mmap(r,e,t,n,o){if(!Dr.isFile(r.node.mode))throw new Dr.ErrnoError(43);var a,i,s=r.node.contents;if(2&o||!s||s.buffer!==y.buffer){if(i=!0,!(a=br(e)))throw new Dr.ErrnoError(48);s&&((t>0||t+e<s.length)&&(s=s.subarray?s.subarray(t,t+e):Array.prototype.slice.call(s,t,t+e)),y.set(s,a))}else i=!1,a=s.byteOffset;return{ptr:a,allocated:i}},msync:(r,e,t,n,o)=>(_r.stream_ops.write(r,e,0,n,t,!1),0)}},kr=async r=>{var e=await u(r);return new Uint8Array(e)},$r=(r,e,t,n,o,a)=>{Dr.createDataFile(r,e,t,n,o,a)},Pr=o.preloadPlugins||[],Cr=(r,e,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return Pr.forEach(a=>{o||a.canHandle(e)&&(a.handle(r,e,t,n),o=!0)}),o},Tr=(r,e,t,n,o,a,i,s,u,l)=>{var d=e?dr.resolve(sr.join2(r,e)):r;function c(t){function c(t){l?.(),s||$r(r,e,t,n,o,u),a?.(),U()}Cr(t,d,c,()=>{i?.(),U()})||c(t)}z(),"string"==typeof t?kr(t).then(c,i):c(t)},Ar=r=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===e)throw new Error(`Unknown file open mode: ${r}`);return e},Sr=(r,e)=>{var t=0;return r&&(t|=365),e&&(t|=146),t},Dr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{name="ErrnoError";constructor(r){this.errno=r}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(r){this.node=r}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(r){this.shared.flags=r}get position(){return this.shared.position}set position(r){this.shared.position=r}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(r,e,t,n){r||(r=this),this.parent=r,this.mount=r.mount,this.id=Dr.nextInode++,this.name=e,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(r){r?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(r){r?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return Dr.isDir(this.mode)}get isDevice(){return Dr.isChrdev(this.mode)}},lookupPath(r,e={}){if(!r)return{path:"",node:null};e.follow_mount??=!0,sr.isAbs(r)||(r=Dr.cwd()+"/"+r);r:for(var t=0;t<40;t++){for(var n=r.split("/").filter(r=>!!r&&"."!==r),o=Dr.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&e.parent)break;if(".."!==n[i]){a=sr.join2(a,n[i]);try{o=Dr.lookupNode(o,n[i])}catch(l){if(44===l?.errno&&s&&e.noent_okay)return{path:a};throw l}if(!Dr.isMountpoint(o)||s&&!e.follow_mount||(o=o.mounted.root),Dr.isLink(o.mode)&&(!s||e.follow)){if(!o.node_ops.readlink)throw new Dr.ErrnoError(52);var u=o.node_ops.readlink(o);sr.isAbs(u)||(u=sr.dirname(a)+"/"+u),r=u+"/"+n.slice(i+1).join("/");continue r}}else a=sr.dirname(a),o=o.parent}return{path:a,node:o}}throw new Dr.ErrnoError(32)},getPath(r){for(var e;;){if(Dr.isRoot(r)){var t=r.mount.mountpoint;return e?"/"!==t[t.length-1]?`${t}/${e}`:t+e:t}e=e?`${r.name}/${e}`:r.name,r=r.parent}},hashName(r,e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(r+t>>>0)%Dr.nameTable.length},hashAddNode(r){var e=Dr.hashName(r.parent.id,r.name);r.name_next=Dr.nameTable[e],Dr.nameTable[e]=r},hashRemoveNode(r){var e=Dr.hashName(r.parent.id,r.name);if(Dr.nameTable[e]===r)Dr.nameTable[e]=r.name_next;else for(var t=Dr.nameTable[e];t;){if(t.name_next===r){t.name_next=r.name_next;break}t=t.name_next}},lookupNode(r,e){var t=Dr.mayLookup(r);if(t)throw new Dr.ErrnoError(t);for(var n=Dr.hashName(r.id,e),o=Dr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===e)return o}return Dr.lookup(r,e)},createNode(r,e,t,n){var o=new Dr.FSNode(r,e,t,n);return Dr.hashAddNode(o),o},destroyNode(r){Dr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>!(49152&~r),flagsToPermissionString(r){var e=["r","w","rw"][3&r];return 512&r&&(e+="w"),e},nodePermissions:(r,e)=>Dr.ignorePermissions||(!e.includes("r")||292&r.mode)&&(!e.includes("w")||146&r.mode)&&(!e.includes("x")||73&r.mode)?0:2,mayLookup(r){if(!Dr.isDir(r.mode))return 54;var e=Dr.nodePermissions(r,"x");return e||(r.node_ops.lookup?0:2)},mayCreate(r,e){if(!Dr.isDir(r.mode))return 54;try{return Dr.lookupNode(r,e),20}catch(t){}return Dr.nodePermissions(r,"wx")},mayDelete(r,e,t){var n;try{n=Dr.lookupNode(r,e)}catch(a){return a.errno}var o=Dr.nodePermissions(r,"wx");if(o)return o;if(t){if(!Dr.isDir(n.mode))return 54;if(Dr.isRoot(n)||Dr.getPath(n)===Dr.cwd())return 10}else if(Dr.isDir(n.mode))return 31;return 0},mayOpen:(r,e)=>r?Dr.isLink(r.mode)?32:Dr.isDir(r.mode)&&("r"!==Dr.flagsToPermissionString(e)||512&e)?31:Dr.nodePermissions(r,Dr.flagsToPermissionString(e)):44,MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=Dr.MAX_OPEN_FDS;r++)if(!Dr.streams[r])return r;throw new Dr.ErrnoError(33)},getStreamChecked(r){var e=Dr.getStream(r);if(!e)throw new Dr.ErrnoError(8);return e},getStream:r=>Dr.streams[r],createStream:(r,e=-1)=>(r=Object.assign(new Dr.FSStream,r),-1==e&&(e=Dr.nextfd()),r.fd=e,Dr.streams[e]=r,r),closeStream(r){Dr.streams[r]=null},dupStream(r,e=-1){var t=Dr.createStream(r,e);return t.stream_ops?.dup?.(t),t},chrdev_stream_ops:{open(r){var e=Dr.getDevice(r.node.rdev);r.stream_ops=e.stream_ops,r.stream_ops.open?.(r)},llseek(){throw new Dr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,e)=>r<<8|e,registerDevice(r,e){Dr.devices[r]={stream_ops:e}},getDevice:r=>Dr.devices[r],getMounts(r){for(var e=[],t=[r];t.length;){var n=t.pop();e.push(n),t.push(...n.mounts)}return e},syncfs(r,e){"function"==typeof r&&(e=r,r=!1),Dr.syncFSRequests++,Dr.syncFSRequests>1&&m(`warning: ${Dr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=Dr.getMounts(Dr.root.mount),n=0;function o(r){return Dr.syncFSRequests--,e(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=t.length&&o(null)}t.forEach(e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)})},mount(r,e,t){var n,o="/"===t,a=!t;if(o&&Dr.root)throw new Dr.ErrnoError(10);if(!o&&!a){var i=Dr.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,Dr.isMountpoint(n))throw new Dr.ErrnoError(10);if(!Dr.isDir(n.mode))throw new Dr.ErrnoError(54)}var s={type:r,opts:e,mountpoint:t,mounts:[]},u=r.mount(s);return u.mount=s,s.root=u,o?Dr.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount(r){var e=Dr.lookupPath(r,{follow_mount:!1});if(!Dr.isMountpoint(e.node))throw new Dr.ErrnoError(28);var t=e.node,n=t.mounted,o=Dr.getMounts(n);Object.keys(Dr.nameTable).forEach(r=>{for(var e=Dr.nameTable[r];e;){var t=e.name_next;o.includes(e.mount)&&Dr.destroyNode(e),e=t}}),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(r,e)=>r.node_ops.lookup(r,e),mknod(r,e,t){var n=Dr.lookupPath(r,{parent:!0}).node,o=sr.basename(r);if(!o||"."===o||".."===o)throw new Dr.ErrnoError(28);var a=Dr.mayCreate(n,o);if(a)throw new Dr.ErrnoError(a);if(!n.node_ops.mknod)throw new Dr.ErrnoError(63);return n.node_ops.mknod(n,o,e,t)},statfs(r){var e={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:Dr.nextInode,ffree:Dr.nextInode-1,fsid:42,flags:2,namelen:255},t=Dr.lookupPath(r,{follow:!0}).node;return t?.node_ops.statfs&&Object.assign(e,t.node_ops.statfs(t.mount.opts.root)),e},create:(r,e=438)=>(e&=4095,e|=32768,Dr.mknod(r,e,0)),mkdir:(r,e=511)=>(e&=1023,e|=16384,Dr.mknod(r,e,0)),mkdirTree(r,e){for(var t=r.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{Dr.mkdir(n,e)}catch(a){if(20!=a.errno)throw a}}},mkdev:(r,e,t)=>(void 0===t&&(t=e,e=438),e|=8192,Dr.mknod(r,e,t)),symlink(r,e){if(!dr.resolve(r))throw new Dr.ErrnoError(44);var t=Dr.lookupPath(e,{parent:!0}).node;if(!t)throw new Dr.ErrnoError(44);var n=sr.basename(e),o=Dr.mayCreate(t,n);if(o)throw new Dr.ErrnoError(o);if(!t.node_ops.symlink)throw new Dr.ErrnoError(63);return t.node_ops.symlink(t,n,r)},rename(r,e){var t,n,o=sr.dirname(r),a=sr.dirname(e),i=sr.basename(r),s=sr.basename(e);if(t=Dr.lookupPath(r,{parent:!0}).node,n=Dr.lookupPath(e,{parent:!0}).node,!t||!n)throw new Dr.ErrnoError(44);if(t.mount!==n.mount)throw new Dr.ErrnoError(75);var u,l=Dr.lookupNode(t,i),d=dr.relative(r,a);if("."!==d.charAt(0))throw new Dr.ErrnoError(28);if("."!==(d=dr.relative(e,o)).charAt(0))throw new Dr.ErrnoError(55);try{u=Dr.lookupNode(n,s)}catch(f){}if(l!==u){var c=Dr.isDir(l.mode),h=Dr.mayDelete(t,i,c);if(h)throw new Dr.ErrnoError(h);if(h=u?Dr.mayDelete(n,s,c):Dr.mayCreate(n,s))throw new Dr.ErrnoError(h);if(!t.node_ops.rename)throw new Dr.ErrnoError(63);if(Dr.isMountpoint(l)||u&&Dr.isMountpoint(u))throw new Dr.ErrnoError(10);if(n!==t&&(h=Dr.nodePermissions(t,"w")))throw new Dr.ErrnoError(h);Dr.hashRemoveNode(l);try{t.node_ops.rename(l,n,s),l.parent=n}catch(f){throw f}finally{Dr.hashAddNode(l)}}},rmdir(r){var e=Dr.lookupPath(r,{parent:!0}).node,t=sr.basename(r),n=Dr.lookupNode(e,t),o=Dr.mayDelete(e,t,!0);if(o)throw new Dr.ErrnoError(o);if(!e.node_ops.rmdir)throw new Dr.ErrnoError(63);if(Dr.isMountpoint(n))throw new Dr.ErrnoError(10);e.node_ops.rmdir(e,t),Dr.destroyNode(n)},readdir(r){var e=Dr.lookupPath(r,{follow:!0}).node;if(!e.node_ops.readdir)throw new Dr.ErrnoError(54);return e.node_ops.readdir(e)},unlink(r){var e=Dr.lookupPath(r,{parent:!0}).node;if(!e)throw new Dr.ErrnoError(44);var t=sr.basename(r),n=Dr.lookupNode(e,t),o=Dr.mayDelete(e,t,!1);if(o)throw new Dr.ErrnoError(o);if(!e.node_ops.unlink)throw new Dr.ErrnoError(63);if(Dr.isMountpoint(n))throw new Dr.ErrnoError(10);e.node_ops.unlink(e,t),Dr.destroyNode(n)},readlink(r){var e=Dr.lookupPath(r).node;if(!e)throw new Dr.ErrnoError(44);if(!e.node_ops.readlink)throw new Dr.ErrnoError(28);return e.node_ops.readlink(e)},stat(r,e){var t=Dr.lookupPath(r,{follow:!e}).node;if(!t)throw new Dr.ErrnoError(44);if(!t.node_ops.getattr)throw new Dr.ErrnoError(63);return t.node_ops.getattr(t)},lstat:r=>Dr.stat(r,!0),chmod(r,e,t){var n;if(!(n="string"==typeof r?Dr.lookupPath(r,{follow:!t}).node:r).node_ops.setattr)throw new Dr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&e|-4096&n.mode,ctime:Date.now()})},lchmod(r,e){Dr.chmod(r,e,!0)},fchmod(r,e){var t=Dr.getStreamChecked(r);Dr.chmod(t.node,e)},chown(r,e,t,n){var o;if(!(o="string"==typeof r?Dr.lookupPath(r,{follow:!n}).node:r).node_ops.setattr)throw new Dr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(r,e,t){Dr.chown(r,e,t,!0)},fchown(r,e,t){var n=Dr.getStreamChecked(r);Dr.chown(n.node,e,t)},truncate(r,e){if(e<0)throw new Dr.ErrnoError(28);var t;if(!(t="string"==typeof r?Dr.lookupPath(r,{follow:!0}).node:r).node_ops.setattr)throw new Dr.ErrnoError(63);if(Dr.isDir(t.mode))throw new Dr.ErrnoError(31);if(!Dr.isFile(t.mode))throw new Dr.ErrnoError(28);var n=Dr.nodePermissions(t,"w");if(n)throw new Dr.ErrnoError(n);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate(r,e){var t=Dr.getStreamChecked(r);if(!(2097155&t.flags))throw new Dr.ErrnoError(28);Dr.truncate(t.node,e)},utime(r,e,t){var n=Dr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{atime:e,mtime:t})},open(r,e,t=438){if(""===r)throw new Dr.ErrnoError(44);var n;if(t=64&(e="string"==typeof e?Ar(e):e)?4095&t|32768:0,"object"==typeof r)n=r;else{var a=Dr.lookupPath(r,{follow:!(131072&e),noent_okay:!0});n=a.node,r=a.path}var i=!1;if(64&e)if(n){if(128&e)throw new Dr.ErrnoError(20)}else n=Dr.mknod(r,t,0),i=!0;if(!n)throw new Dr.ErrnoError(44);if(Dr.isChrdev(n.mode)&&(e&=-513),65536&e&&!Dr.isDir(n.mode))throw new Dr.ErrnoError(54);if(!i){var s=Dr.mayOpen(n,e);if(s)throw new Dr.ErrnoError(s)}512&e&&!i&&Dr.truncate(n,0),e&=-131713;var u=Dr.createStream({node:n,path:Dr.getPath(n),flags:e,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return u.stream_ops.open&&u.stream_ops.open(u),!o.logReadFiles||1&e||r in Dr.readFiles||(Dr.readFiles[r]=1),u},close(r){if(Dr.isClosed(r))throw new Dr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(e){throw e}finally{Dr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,e,t){if(Dr.isClosed(r))throw new Dr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new Dr.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new Dr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,e,t),r.ungotten=[],r.position},read(r,e,t,n,o){if(n<0||o<0)throw new Dr.ErrnoError(28);if(Dr.isClosed(r))throw new Dr.ErrnoError(8);if(1==(2097155&r.flags))throw new Dr.ErrnoError(8);if(Dr.isDir(r.node.mode))throw new Dr.ErrnoError(31);if(!r.stream_ops.read)throw new Dr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new Dr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.read(r,e,t,n,o);return a||(r.position+=i),i},write(r,e,t,n,o,a){if(n<0||o<0)throw new Dr.ErrnoError(28);if(Dr.isClosed(r))throw new Dr.ErrnoError(8);if(!(2097155&r.flags))throw new Dr.ErrnoError(8);if(Dr.isDir(r.node.mode))throw new Dr.ErrnoError(31);if(!r.stream_ops.write)throw new Dr.ErrnoError(28);r.seekable&&1024&r.flags&&Dr.llseek(r,0,2);var i=void 0!==o;if(i){if(!r.seekable)throw new Dr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.write(r,e,t,n,o,a);return i||(r.position+=s),s},allocate(r,e,t){if(Dr.isClosed(r))throw new Dr.ErrnoError(8);if(e<0||t<=0)throw new Dr.ErrnoError(28);if(!(2097155&r.flags))throw new Dr.ErrnoError(8);if(!Dr.isFile(r.node.mode)&&!Dr.isDir(r.node.mode))throw new Dr.ErrnoError(43);if(!r.stream_ops.allocate)throw new Dr.ErrnoError(138);r.stream_ops.allocate(r,e,t)},mmap(r,e,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&r.flags))throw new Dr.ErrnoError(2);if(1==(2097155&r.flags))throw new Dr.ErrnoError(2);if(!r.stream_ops.mmap)throw new Dr.ErrnoError(43);if(!e)throw new Dr.ErrnoError(28);return r.stream_ops.mmap(r,e,t,n,o)},msync:(r,e,t,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,e,t,n,o):0,ioctl(r,e,t){if(!r.stream_ops.ioctl)throw new Dr.ErrnoError(59);return r.stream_ops.ioctl(r,e,t)},readFile(r,e={}){if(e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error(`Invalid encoding type "${e.encoding}"`);var t,n=Dr.open(r,e.flags),o=Dr.stat(r).size,a=new Uint8Array(o);return Dr.read(n,a,0,o,0),"utf8"===e.encoding?t=hr(a):"binary"===e.encoding&&(t=a),Dr.close(n),t},writeFile(r,e,t={}){t.flags=t.flags||577;var n=Dr.open(r,t.flags,t.mode);if("string"==typeof e){var o=new Uint8Array(pr(e)+1),a=mr(e,o,0,o.length);Dr.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");Dr.write(n,e,0,e.byteLength,void 0,t.canOwn)}Dr.close(n)},cwd:()=>Dr.currentPath,chdir(r){var e=Dr.lookupPath(r,{follow:!0});if(null===e.node)throw new Dr.ErrnoError(44);if(!Dr.isDir(e.node.mode))throw new Dr.ErrnoError(54);var t=Dr.nodePermissions(e.node,"x");if(t)throw new Dr.ErrnoError(t);Dr.currentPath=e.path},createDefaultDirectories(){Dr.mkdir("/tmp"),Dr.mkdir("/home"),Dr.mkdir("/home/web_user")},createDefaultDevices(){Dr.mkdir("/dev"),Dr.registerDevice(Dr.makedev(1,3),{read:()=>0,write:(r,e,t,n,o)=>n,llseek:()=>0}),Dr.mkdev("/dev/null",Dr.makedev(1,3)),wr.register(Dr.makedev(5,0),wr.default_tty_ops),wr.register(Dr.makedev(6,0),wr.default_tty1_ops),Dr.mkdev("/dev/tty",Dr.makedev(5,0)),Dr.mkdev("/dev/tty1",Dr.makedev(6,0));var r=new Uint8Array(1024),e=0,t=()=>(0===e&&(e=lr(r).byteLength),r[--e]);Dr.createDevice("/dev","random",t),Dr.createDevice("/dev","urandom",t),Dr.mkdir("/dev/shm"),Dr.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Dr.mkdir("/proc");var r=Dr.mkdir("/proc/self");Dr.mkdir("/proc/self/fd"),Dr.mount({mount(){var e=Dr.createNode(r,"fd",16895,73);return e.stream_ops={llseek:_r.stream_ops.llseek},e.node_ops={lookup(r,e){var t=+e,n=Dr.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return o.parent=o,o},readdir:()=>Array.from(Dr.streams.entries()).filter(([r,e])=>e).map(([r,e])=>r.toString())},e}},{},"/proc/self/fd")},createStandardStreams(r,e,t){r?Dr.createDevice("/dev","stdin",r):Dr.symlink("/dev/tty","/dev/stdin"),e?Dr.createDevice("/dev","stdout",null,e):Dr.symlink("/dev/tty","/dev/stdout"),t?Dr.createDevice("/dev","stderr",null,t):Dr.symlink("/dev/tty1","/dev/stderr"),Dr.open("/dev/stdin",0),Dr.open("/dev/stdout",1),Dr.open("/dev/stderr",1)},staticInit(){Dr.nameTable=new Array(4096),Dr.mount(_r,{},"/"),Dr.createDefaultDirectories(),Dr.createDefaultDevices(),Dr.createSpecialDirectories(),Dr.filesystems={MEMFS:_r}},init(r,e,t){Dr.initialized=!0,r??=o.stdin,e??=o.stdout,t??=o.stderr,Dr.createStandardStreams(r,e,t)},quit(){Dr.initialized=!1;for(var r=0;r<Dr.streams.length;r++){var e=Dr.streams[r];e&&Dr.close(e)}},findObject(r,e){var t=Dr.analyzePath(r,e);return t.exists?t.object:null},analyzePath(r,e){try{r=(n=Dr.lookupPath(r,{follow:!e})).path}catch(o){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Dr.lookupPath(r,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=sr.basename(r),n=Dr.lookupPath(r,{follow:!e}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(o){t.error=o.errno}return t},createPath(r,e,t,n){r="string"==typeof r?r:Dr.getPath(r);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var i=sr.join2(r,a);try{Dr.mkdir(i)}catch(s){}r=i}}return i},createFile(r,e,t,n,o){var a=sr.join2("string"==typeof r?r:Dr.getPath(r),e),i=Sr(n,o);return Dr.create(a,i)},createDataFile(r,e,t,n,o,a){var i=e;r&&(r="string"==typeof r?r:Dr.getPath(r),i=e?sr.join2(r,e):r);var s=Sr(n,o),u=Dr.create(i,s);if(t){if("string"==typeof t){for(var l=new Array(t.length),d=0,c=t.length;d<c;++d)l[d]=t.charCodeAt(d);t=l}Dr.chmod(u,146|s);var h=Dr.open(u,577);Dr.write(h,t,0,t.length,0,a),Dr.close(h),Dr.chmod(u,s)}},createDevice(r,e,t,n){var o=sr.join2("string"==typeof r?r:Dr.getPath(r),e),a=Sr(!!t,!!n);Dr.createDevice.major??=64;var i=Dr.makedev(Dr.createDevice.major++,0);return Dr.registerDevice(i,{open(r){r.seekable=!1},close(r){n?.buffer?.length&&n(10)},read(r,e,n,o,a){for(var i=0,s=0;s<o;s++){var u;try{u=t()}catch(l){throw new Dr.ErrnoError(29)}if(void 0===u&&0===i)throw new Dr.ErrnoError(6);if(null==u)break;i++,e[n+s]=u}return i&&(r.node.atime=Date.now()),i},write(r,e,t,o,a){for(var i=0;i<o;i++)try{n(e[t+i])}catch(s){throw new Dr.ErrnoError(29)}return o&&(r.node.mtime=r.node.ctime=Date.now()),i}}),Dr.mkdev(o,a,i)},forceLoadFile(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{r.contents=l(r.url),r.usedBytes=r.contents.length}catch(e){throw new Dr.ErrnoError(29)}},createLazyFile(r,e,t,n,o){class a{lengthKnown=!1;chunks=[];get(r){if(!(r>this.length-1||r<0)){var e=r%this.chunkSize,t=r/this.chunkSize|0;return this.getter(t)[e]}}setDataGetter(r){this.getter=r}cacheLength(){var r=new XMLHttpRequest;if(r.open("HEAD",t,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+t+". Status: "+r.status);var e,n=Number(r.getResponseHeader("Content-length")),o=(e=r.getResponseHeader("Accept-Ranges"))&&"bytes"===e,a=(e=r.getResponseHeader("Content-Encoding"))&&"gzip"===e,i=1048576;o||(i=n);var s=(r,e)=>{if(r>e)throw new Error("invalid range ("+r+", "+e+") or no bytes requested!");if(e>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==i&&o.setRequestHeader("Range","bytes="+r+"-"+e),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):vr(o.responseText||"")},u=this;u.setDataGetter(r=>{var e=r*i,t=(r+1)*i-1;if(t=Math.min(t,n-1),void 0===u.chunks[r]&&(u.chunks[r]=s(e,t)),void 0===u.chunks[r])throw new Error("doXHR failed!");return u.chunks[r]}),!a&&n||(i=n=1,n=this.getter(0).length,i=n,p("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if("undefined"!=typeof XMLHttpRequest){if(!s)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i={isDevice:!1,contents:new a}}else i={isDevice:!1,url:t};var u=Dr.createFile(r,e,i,n,o);i.contents?u.contents=i.contents:i.url&&(u.contents=null,u.url=i.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};function d(r,e,t,n,o){var a=r.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s<i;s++)e[t+s]=a[o+s];else for(s=0;s<i;s++)e[t+s]=a.get(o+s);return i}return Object.keys(u.stream_ops).forEach(r=>{var e=u.stream_ops[r];l[r]=(...r)=>(Dr.forceLoadFile(u),e(...r))}),l.read=(r,e,t,n,o)=>(Dr.forceLoadFile(u),d(r,e,t,n,o)),l.mmap=(r,e,t,n,o)=>{Dr.forceLoadFile(u);var a=br(e);if(!a)throw new Dr.ErrnoError(48);return d(r,y,a,e,t),{ptr:a,allocated:!0}},u.stream_ops=l,u}},Fr=(r,e)=>r?hr(w,r,e):"",jr={DEFAULT_POLLMASK:5,calculateAt(r,e,t){if(sr.isAbs(e))return e;var n;if(n=-100===r?Dr.cwd():jr.getStreamFromFD(r).path,0==e.length){if(!t)throw new Dr.ErrnoError(44);return n}return n+"/"+e},doStat(r,e,t){var n=r(e);b[t>>2]=n.dev,b[t+4>>2]=n.mode,_[t+8>>2]=n.nlink,b[t+12>>2]=n.uid,b[t+16>>2]=n.gid,b[t+20>>2]=n.rdev,I=[n.size>>>0,(H=n.size,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[t+24>>2]=I[0],b[t+28>>2]=I[1],b[t+32>>2]=4096,b[t+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return I=[Math.floor(o/1e3)>>>0,(H=Math.floor(o/1e3),+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[t+40>>2]=I[0],b[t+44>>2]=I[1],_[t+48>>2]=o%1e3*1e3*1e3,I=[Math.floor(a/1e3)>>>0,(H=Math.floor(a/1e3),+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[t+56>>2]=I[0],b[t+60>>2]=I[1],_[t+64>>2]=a%1e3*1e3*1e3,I=[Math.floor(i/1e3)>>>0,(H=Math.floor(i/1e3),+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[t+72>>2]=I[0],b[t+76>>2]=I[1],_[t+80>>2]=i%1e3*1e3*1e3,I=[n.ino>>>0,(H=n.ino,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[t+88>>2]=I[0],b[t+92>>2]=I[1],0},doMsync(r,e,t,n,o){if(!Dr.isFile(e.node.mode))throw new Dr.ErrnoError(43);if(2&n)return 0;var a=w.slice(r,r+t);Dr.msync(e,a,o,t,n)},getStreamFromFD:r=>Dr.getStreamChecked(r),varargs:void 0,getStr:r=>Fr(r)};function Mr(r,e,t){jr.varargs=t;try{var n=jr.getStreamFromFD(r);switch(e){case 0:if((o=ar())<0)return-28;for(;Dr.streams[o];)o++;return Dr.dupStream(n,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=ar();return n.flags|=o,0;case 12:return o=ir(),g[o+0>>1]=2,0}return-28}catch(a){if(void 0===Dr||"ErrnoError"!==a.name)throw a;return-a.errno}}function xr(r,e){try{var t=jr.getStreamFromFD(r);return jr.doStat(Dr.stat,t.path,e)}catch(n){if(void 0===Dr||"ErrnoError"!==n.name)throw n;return-n.errno}}function Rr(r,e,t){jr.varargs=t;try{var n=jr.getStreamFromFD(r);switch(e){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=ir();b[a>>2]=o.c_iflag||0,b[a+4>>2]=o.c_oflag||0,b[a+8>>2]=o.c_cflag||0,b[a+12>>2]=o.c_lflag||0;for(var i=0;i<32;i++)y[a+i+17]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=ir();var s=b[a>>2],u=b[a+4>>2],l=b[a+8>>2],d=b[a+12>>2],c=[];for(i=0;i<32;i++)c.push(y[a+i+17]);return n.tty.ops.ioctl_tcsets(n.tty,e,{c_iflag:s,c_oflag:u,c_cflag:l,c_lflag:d,c_cc:c})}return 0;case 21519:return n.tty?(a=ir(),b[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21531:return a=ir(),Dr.ioctl(n,e,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var h=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=ir(),g[a>>1]=h[0],g[a+2>>1]=h[1]}return 0;default:return-28}}catch(f){if(void 0===Dr||"ErrnoError"!==f.name)throw f;return-f.errno}}function Or(r,e,t,n){try{e=jr.getStr(e);var o=256&n,a=4096&n;return n&=-6401,e=jr.calculateAt(r,e,a),jr.doStat(o?Dr.lstat:Dr.stat,e,t)}catch(i){if(void 0===Dr||"ErrnoError"!==i.name)throw i;return-i.errno}}function Nr(r,e,t,n){jr.varargs=n;try{e=jr.getStr(e),e=jr.calculateAt(r,e);var o=n?ar():0;return Dr.open(e,t,o).fd}catch(a){if(void 0===Dr||"ErrnoError"!==a.name)throw a;return-a.errno}}function Wr(r,e){try{return r=jr.getStr(r),jr.doStat(Dr.stat,r,e)}catch(t){if(void 0===Dr||"ErrnoError"!==t.name)throw t;return-t.errno}}var zr=()=>B(""),Ur={},Br=r=>{for(;r.length;){var e=r.pop();r.pop()(e)}};function Lr(r){return this.fromWireType(_[r>>2])}var Hr,Ir,Vr,qr={},Gr={},Xr={},Kr=r=>{throw new Hr(r)},Yr=(r,e,t)=>{function n(e){var n=t(e);n.length!==r.length&&Kr("Mismatched type converter count");for(var o=0;o<r.length;++o)ne(r[o],n[o])}r.forEach(r=>Xr[r]=e);var o=new Array(e.length),a=[],i=0;e.forEach((r,e)=>{Gr.hasOwnProperty(r)?o[e]=Gr[r]:(a.push(r),qr.hasOwnProperty(r)||(qr[r]=[]),qr[r].push(()=>{o[e]=Gr[r],++i===a.length&&n(o)}))}),0===a.length&&n(o)},Zr=r=>{var e=Ur[r];delete Ur[r];var t=e.rawConstructor,n=e.rawDestructor,o=e.fields,a=o.map(r=>r.getterReturnType).concat(o.map(r=>r.setterArgumentType));Yr([r],a,r=>{var a={};return o.forEach((e,t)=>{var n=e.fieldName,i=r[t],s=e.getter,u=e.getterContext,l=r[t+o.length],d=e.setter,c=e.setterContext;a[n]={read:r=>i.fromWireType(s(u,r)),write:(r,e)=>{var t=[];d(c,r,l.toWireType(t,e)),Br(t)}}}),[{name:e.name,fromWireType:r=>{var e={};for(var t in a)e[t]=a[t].read(r);return n(r),e},toWireType:(r,e)=>{for(var o in a)if(!(o in e))throw new TypeError(`Missing field: "${o}"`);var i=t();for(o in a)a[o].write(i,e[o]);return null!==r&&r.push(n,i),i},argPackAdvance:oe,readValueFromPointer:Lr,destructorFunction:n}]})},Jr=(r,e,t,n,o)=>{},Qr=()=>{for(var r=new Array(256),e=0;e<256;++e)r[e]=String.fromCharCode(e);Ir=r},re=r=>{for(var e="",t=r;w[t];)e+=Ir[w[t++]];return e},ee=r=>{throw new Vr(r)};function te(r,e,t={}){var n=e.name;if(r||ee(`type "${n}" must have a positive integer typeid pointer`),Gr.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;ee(`Cannot register type '${n}' twice`)}if(Gr[r]=e,delete Xr[r],qr.hasOwnProperty(r)){var o=qr[r];delete qr[r],o.forEach(r=>r())}}function ne(r,e,t={}){return te(r,e,t)}var oe=8,ae=(r,e,t,n)=>{ne(r,{name:e=re(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?t:n},argPackAdvance:oe,readValueFromPointer:function(r){return this.fromWireType(w[r])},destructorFunction:null})},ie=r=>({count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType}),se=r=>{function e(r){return r.$$.ptrType.registeredClass.name}ee(e(r)+" instance already deleted")},ue=!1,le=r=>{},de=r=>{r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)},ce=r=>{r.count.value-=1,0===r.count.value&&de(r)},he=(r,e,t)=>{if(e===t)return r;if(void 0===t.baseClass)return null;var n=he(r,e,t.baseClass);return null===n?null:t.downcast(n)},fe={},pe={},me=(r,e)=>{for(void 0===e&&ee("ptr should not be undefined");r.baseClass;)e=r.upcast(e),r=r.baseClass;return e},ve=(r,e)=>(e=me(r,e),pe[e]),ye=(r,e)=>(e.ptrType&&e.ptr||Kr("makeClassHandle requires ptr and ptrType"),!!e.smartPtrType!=!!e.smartPtr&&Kr("Both smartPtrType and smartPtr must be specified"),e.count={value:1},ge(Object.create(r,{$$:{value:e,writable:!0}})));function we(r){var e=this.getPointee(r);if(!e)return this.destructor(r),null;var t=ve(this.registeredClass,e);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=e,t.$$.smartPtr=r,t.clone();var n=t.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?ye(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:r}):ye(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var a,i=this.registeredClass.getActualType(e),s=fe[i];if(!s)return o.call(this);a=this.isConst?s.constPointerType:s.pointerType;var u=he(e,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?ye(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:r}):ye(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})}var ge=r=>"undefined"==typeof FinalizationRegistry?(ge=r=>r,r):(ue=new FinalizationRegistry(r=>{ce(r.$$)}),ge=r=>{var e=r.$$;if(e.smartPtr){var t={$$:e};ue.register(r,t,r)}return r},le=r=>ue.unregister(r),ge(r)),Ee=()=>{Object.assign(be.prototype,{isAliasOf(r){if(!(this instanceof be))return!1;if(!(r instanceof be))return!1;var e=this.$$.ptrType.registeredClass,t=this.$$.ptr;r.$$=r.$$;for(var n=r.$$.ptrType.registeredClass,o=r.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return e===n&&t===o},clone(){if(this.$$.ptr||se(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var r=ge(Object.create(Object.getPrototypeOf(this),{$$:{value:ie(this.$$)}}));return r.$$.count.value+=1,r.$$.deleteScheduled=!1,r},delete(){this.$$.ptr||se(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ee("Object already scheduled for deletion"),le(this),ce(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||se(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ee("Object already scheduled for deletion"),this.$$.deleteScheduled=!0,this}})};function be(){}var _e=(r,e)=>Object.defineProperty(e,"name",{value:r}),ke=(r,e,t)=>{if(void 0===r[e].overloadTable){var n=r[e];r[e]=function(...n){return r[e].overloadTable.hasOwnProperty(n.length)||ee(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[n.length].apply(this,n)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},$e=(r,e,t)=>{o.hasOwnProperty(r)?((void 0===t||void 0!==o[r].overloadTable&&void 0!==o[r].overloadTable[t])&&ee(`Cannot register public name '${r}' twice`),ke(o,r,r),o[r].overloadTable.hasOwnProperty(t)&&ee(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),o[r].overloadTable[t]=e):(o[r]=e,o[r].argCount=t)},Pe=48,Ce=57,Te=r=>{var e=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=Pe&&e<=Ce?`_${r}`:r};function Ae(r,e,t,n,o,a,i,s){this.name=r,this.constructor=e,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=i,this.downcast=s,this.pureVirtualFunctions=[]}var Se=(r,e,t)=>{for(;e!==t;)e.upcast||ee(`Expected null or instance of ${t.name}, got an instance of ${e.name}`),r=e.upcast(r),e=e.baseClass;return r};function De(r,e){if(null===e)return this.isReference&&ee(`null is not a valid ${this.name}`),0;e.$$||ee(`Cannot pass "${ft(e)}" as a ${this.name}`),e.$$.ptr||ee(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=e.$$.ptrType.registeredClass;return Se(e.$$.ptr,t,this.registeredClass)}function Fe(r,e){var t;if(null===e)return this.isReference&&ee(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),null!==r&&r.push(this.rawDestructor,t),t):0;e&&e.$$||ee(`Cannot pass "${ft(e)}" as a ${this.name}`),e.$$.ptr||ee(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&ee(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var n=e.$$.ptrType.registeredClass;if(t=Se(e.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===e.$$.smartPtr&&ee("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:ee(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,it.toHandle(()=>o.delete())),null!==r&&r.push(this.rawDestructor,t)}break;default:ee("Unsupporting sharing policy")}return t}function je(r,e){if(null===e)return this.isReference&&ee(`null is not a valid ${this.name}`),0;e.$$||ee(`Cannot pass "${ft(e)}" as a ${this.name}`),e.$$.ptr||ee(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&ee(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var t=e.$$.ptrType.registeredClass;return Se(e.$$.ptr,t,this.registeredClass)}var Me=()=>{Object.assign(xe.prototype,{getPointee(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},destructor(r){this.rawDestructor?.(r)},argPackAdvance:oe,readValueFromPointer:Lr,fromWireType:we})};function xe(r,e,t,n,o,a,i,s,u,l,d){this.name=r,this.registeredClass=e,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=i,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=l,this.rawDestructor=d,o||void 0!==e.baseClass?this.toWireType=Fe:n?(this.toWireType=De,this.destructorFunction=null):(this.toWireType=je,this.destructorFunction=null)}var Re,Oe,Ne=(r,e,t)=>{o.hasOwnProperty(r)||Kr("Replacing nonexistent public symbol"),void 0!==o[r].overloadTable&&void 0!==t?o[r].overloadTable[t]=e:(o[r]=e,o[r].argCount=t)},We=(r,e,t)=>(r=r.replace(/p/g,"i"),(0,o["dynCall_"+r])(e,...t)),ze=[],Ue=r=>{var e=ze[r];return e||(r>=ze.length&&(ze.length=r+1),ze[r]=e=Re.get(r)),e},Be=(r,e,t=[])=>r.includes("j")?We(r,e,t):Ue(e)(...t),Le=(r,e)=>(...t)=>Be(r,e,t),He=(r,e)=>{function t(){return r.includes("j")?Le(r,e):Ue(e)}r=re(r);var n=t();return"function"!=typeof n&&ee(`unknown function pointer with signature ${r}: ${e}`),n},Ie=(r,e)=>{var t=_e(e,function(r){this.name=e,this.message=r;var t=new Error(r).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},t},Ve=r=>{var e=$n(r),t=re(e);return Pn(e),t},qe=(r,e)=>{var t=[],n={};function o(r){n[r]||Gr[r]||(Xr[r]?Xr[r].forEach(o):(t.push(r),n[r]=!0))}throw e.forEach(o),new Oe(`${r}: `+t.map(Ve).join([", "]))},Ge=(r,e,t,n,o,a,i,s,u,l,d,c,h)=>{d=re(d),a=He(o,a),s&&=He(i,s),l&&=He(u,l),h=He(c,h);var f=Te(d);$e(f,function(){qe(`Cannot construct ${d} due to unbound types`,[n])}),Yr([r,e,t],n?[n]:[],e=>{var t,o;e=e[0],o=n?(t=e.registeredClass).instancePrototype:be.prototype;var i=_e(d,function(...r){if(Object.getPrototypeOf(this)!==u)throw new Vr("Use 'new' to construct "+d);if(void 0===c.constructor_body)throw new Vr(d+" has no accessible constructor");var e=c.constructor_body[r.length];if(void 0===e)throw new Vr(`Tried to invoke ctor of ${d} with invalid number of parameters (${r.length}) - expected (${Object.keys(c.constructor_body).toString()}) parameters instead!`);return e.apply(this,r)}),u=Object.create(o,{constructor:{value:i}});i.prototype=u;var c=new Ae(d,i,u,h,t,a,s,l);c.baseClass&&(c.baseClass.__derivedClasses??=[],c.baseClass.__derivedClasses.push(c));var p=new xe(d,c,!0,!1,!1),m=new xe(d+"*",c,!1,!1,!1),v=new xe(d+" const*",c,!1,!0,!1);return fe[r]={pointerType:m,constPointerType:v},Ne(f,i),[p,m,v]})},Xe=(r,e)=>{for(var t=[],n=0;n<r;n++)t.push(_[e+4*n>>2]);return t};function Ke(r){for(var e=1;e<r.length;++e)if(null!==r[e]&&void 0===r[e].destructorFunction)return!0;return!1}function Ye(r,e,t,n,o,a){var i=e.length;i<2&&ee("argTypes array size mismatch! Must at least get return value and 'this' types!");var s=null!==e[1]&&null!==t,u=Ke(e),l="void"!==e[0].name,d=i-2,c=new Array(d),h=[],f=[];return _e(r,function(...r){var t;f.length=0,h.length=s?2:1,h[0]=o,s&&(t=e[1].toWireType(f,this),h[1]=t);for(var a=0;a<d;++a)c[a]=e[a+2].toWireType(f,r[a]),h.push(c[a]);function i(r){if(u)Br(f);else for(var n=s?1:2;n<e.length;n++){var o=1===n?t:c[n-2];null!==e[n].destructorFunction&&e[n].destructorFunction(o)}if(l)return e[0].fromWireType(r)}return i(n(...h))})}var Ze=(r,e,t,n,o,a)=>{var i=Xe(e,t);o=He(n,o),Yr([],[r],r=>{var t=`constructor ${(r=r[0]).name}`;if(void 0===r.registeredClass.constructor_body&&(r.registeredClass.constructor_body=[]),void 0!==r.registeredClass.constructor_body[e-1])throw new Vr(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[e-1]=()=>{qe(`Cannot construct ${r.name} due to unbound types`,i)},Yr([],i,n=>(n.splice(1,0,null),r.registeredClass.constructor_body[e-1]=Ye(t,n,null,o,a),[])),[]})},Je=r=>{const e=(r=r.trim()).indexOf("(");return-1!==e?r.substr(0,e):r},Qe=(r,e,t,n,o,a,i,s,u,l)=>{var d=Xe(t,n);e=re(e),e=Je(e),a=He(o,a),Yr([],[r],r=>{var n=`${(r=r[0]).name}.${e}`;function o(){qe(`Cannot call ${n} due to unbound types`,d)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]),s&&r.registeredClass.pureVirtualFunctions.push(e);var u=r.registeredClass.instancePrototype,l=u[e];return void 0===l||void 0===l.overloadTable&&l.className!==r.name&&l.argCount===t-2?(o.argCount=t-2,o.className=r.name,u[e]=o):(ke(u,e,n),u[e].overloadTable[t-2]=o),Yr([],d,o=>{var s=Ye(n,o,r,a,i);return void 0===u[e].overloadTable?(s.argCount=t-2,u[e]=s):u[e].overloadTable[t-2]=s,[]}),[]})},rt=(r,e,t)=>{r=re(r),Yr([],[e],e=>(e=e[0],o[r]=e.fromWireType(t),[]))},et=[],tt=[],nt=r=>{r>9&&0===--tt[r+1]&&(tt[r]=void 0,et.push(r))},ot=()=>tt.length/2-5-et.length,at=()=>{tt.push(0,1,void 0,1,null,1,!0,1,!1,1),o.count_emval_handles=ot},it={toValue:r=>(r||ee("Cannot use deleted val. handle = "+r),tt[r]),toHandle:r=>{switch(r){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const e=et.pop()||tt.length;return tt[e]=r,tt[e+1]=1,e}}}},st={name:"emscripten::val",fromWireType:r=>{var e=it.toValue(r);return nt(r),e},toWireType:(r,e)=>it.toHandle(e),argPackAdvance:oe,readValueFromPointer:Lr,destructorFunction:null},ut=r=>ne(r,st),lt=(r,e,t)=>{switch(e){case 1:return t?function(r){return this.fromWireType(y[r])}:function(r){return this.fromWireType(w[r])};case 2:return t?function(r){return this.fromWireType(g[r>>1])}:function(r){return this.fromWireType(E[r>>1])};case 4:return t?function(r){return this.fromWireType(b[r>>2])}:function(r){return this.fromWireType(_[r>>2])};default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},dt=(r,e,t,n)=>{function o(){}e=re(e),o.values={},ne(r,{name:e,constructor:o,fromWireType:function(r){return this.constructor.values[r]},toWireType:(r,e)=>e.value,argPackAdvance:oe,readValueFromPointer:lt(e,t,n),destructorFunction:null}),$e(e,o)},ct=(r,e)=>{var t=Gr[r];return void 0===t&&ee(`${e} has unknown type ${Ve(r)}`),t},ht=(r,e,t)=>{var n=ct(r,"enum");e=re(e);var o=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:_e(`${n.name}_${e}`,function(){})}});o.values[t]=a,o[e]=a},ft=r=>{if(null===r)return"null";var e=typeof r;return"object"===e||"array"===e||"function"===e?r.toString():""+r},pt=(r,e)=>{switch(e){case 4:return function(r){return this.fromWireType(k[r>>2])};case 8:return function(r){return this.fromWireType($[r>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},mt=(r,e,t)=>{ne(r,{name:e=re(e),fromWireType:r=>r,toWireType:(r,e)=>e,argPackAdvance:oe,readValueFromPointer:pt(e,t),destructorFunction:null})},vt=(r,e,t,n,o,a,i,s)=>{var u=Xe(e,t);r=re(r),r=Je(r),o=He(n,o),$e(r,function(){qe(`Cannot call ${r} due to unbound types`,u)},e-1),Yr([],u,t=>{var n=[t[0],null].concat(t.slice(1));return Ne(r,Ye(r,n,null,o,a),e-1),[]})},yt=(r,e,t)=>{switch(e){case 1:return t?r=>y[r]:r=>w[r];case 2:return t?r=>g[r>>1]:r=>E[r>>1];case 4:return t?r=>b[r>>2]:r=>_[r>>2];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},wt=(r,e,t,n,o)=>{e=re(e);var a=r=>r;if(0===n){var i=32-8*t;a=r=>r<<i>>>i}var s=e.includes("unsigned"),u=(r,e)=>{};ne(r,{name:e,fromWireType:a,toWireType:s?function(r,e){return u(e,this.name),e>>>0}:function(r,e){return u(e,this.name),e},argPackAdvance:oe,readValueFromPointer:yt(e,t,0!==n),destructorFunction:null})},gt=(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function o(r){var e=_[r>>2],t=_[r+4>>2];return new n(y.buffer,t,e)}ne(r,{name:t=re(t),fromWireType:o,argPackAdvance:oe,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},Et=(r,e,t)=>mr(r,w,e,t),bt=(r,e)=>{ne(r,{name:e=re(e),fromWireType(r){for(var e,t=_[r>>2],n=r+4,o=n,a=0;a<=t;++a){var i=n+a;if(a==t||0==w[i]){var s=Fr(o,i-o);void 0===e?e=s:(e+=String.fromCharCode(0),e+=s),o=i+1}}return Pn(r),e},toWireType(r,e){var t;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n="string"==typeof e;n||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||ee("Cannot pass non-string to std::string"),t=n?pr(e):e.length;var o=Cn(4+t+1),a=o+4;if(_[o>>2]=t,n)Et(e,a,t+1);else if(n)for(var i=0;i<t;++i){var s=e.charCodeAt(i);s>255&&(Pn(a),ee("String has UTF-16 code units that do not fit in 8 bits")),w[a+i]=s}else for(i=0;i<t;++i)w[a+i]=e[i];return null!==r&&r.push(Pn,o),o},argPackAdvance:oe,readValueFromPointer:Lr,destructorFunction(r){Pn(r)}})},_t="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,kt=(r,e)=>{for(var t=r,n=t>>1,o=n+e/2;!(n>=o)&&E[n];)++n;if((t=n<<1)-r>32&&_t)return _t.decode(w.subarray(r,t));for(var a="",i=0;!(i>=e/2);++i){var s=g[r+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a},$t=(r,e,t)=>{if(t??=2147483647,t<2)return 0;for(var n=e,o=(t-=2)<2*r.length?t/2:r.length,a=0;a<o;++a){var i=r.charCodeAt(a);g[e>>1]=i,e+=2}return g[e>>1]=0,e-n},Pt=r=>2*r.length,Ct=(r,e)=>{for(var t=0,n="";!(t>=e/4);){var o=b[r+4*t>>2];if(0==o)break;if(++t,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n},Tt=(r,e,t)=>{if(t??=2147483647,t<4)return 0;for(var n=e,o=n+t-4,a=0;a<r.length;++a){var i=r.charCodeAt(a);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&r.charCodeAt(++a)),b[e>>2]=i,(e+=4)+4>o)break}return b[e>>2]=0,e-n},At=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n>=55296&&n<=57343&&++t,e+=4}return e},St=(r,e,t)=>{var n,o,a,i;t=re(t),2===e?(n=kt,o=$t,i=Pt,a=r=>E[r>>1]):4===e&&(n=Ct,o=Tt,i=At,a=r=>_[r>>2]),ne(r,{name:t,fromWireType:r=>{for(var t,o=_[r>>2],i=r+4,s=0;s<=o;++s){var u=r+4+s*e;if(s==o||0==a(u)){var l=n(i,u-i);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),i=u+e}}return Pn(r),t},toWireType:(r,n)=>{"string"!=typeof n&&ee(`Cannot pass non-string to C++ string type ${t}`);var a=i(n),s=Cn(4+a+e);return _[s>>2]=a/e,o(n,s+4,a+e),null!==r&&r.push(Pn,s),s},argPackAdvance:oe,readValueFromPointer:Lr,destructorFunction(r){Pn(r)}})},Dt=(r,e,t,n,o,a)=>{Ur[r]={name:re(e),rawConstructor:He(t,n),rawDestructor:He(o,a),fields:[]}},Ft=(r,e,t,n,o,a,i,s,u,l)=>{Ur[r].fields.push({fieldName:re(e),getterReturnType:t,getter:He(n,o),getterContext:a,setterArgumentType:i,setter:He(s,u),setterContext:l})},jt=(r,e)=>{ne(r,{isVoid:!0,name:e=re(e),argPackAdvance:0,fromWireType:()=>{},toWireType:(r,e)=>{}})},Mt=(r,e,t)=>w.copyWithin(r,e,e+t),xt=()=>{throw 1/0},Rt=(r,e,t)=>{var n=[],o=r.toWireType(n,t);return n.length&&(_[e>>2]=it.toHandle(n)),o},Ot=(r,e,t)=>(r=it.toValue(r),e=ct(e,"emval::as"),Rt(e,t,r)),Nt={},Wt=r=>{var e=Nt[r];return void 0===e?re(r):e},zt=[],Ut=(r,e,t,n,o)=>(r=zt[r])(e=it.toValue(e),e[t=Wt(t)],n,o),Bt=r=>{var e=zt.length;return zt.push(r),e},Lt=(r,e)=>{for(var t=new Array(r),n=0;n<r;++n)t[n]=ct(_[e+4*n>>2],"parameter "+n);return t},Ht=Reflect.construct,It=(r,e,t)=>{var n=Lt(r,e),o=n.shift();r--;var a=new Array(r),i=(e,i,s,u)=>{for(var l=0,d=0;d<r;++d)a[d]=n[d].readValueFromPointer(u+l),l+=n[d].argPackAdvance;var c=1===t?Ht(i,a):i.apply(e,a);return Rt(o,s,c)},s=`methodCaller<(${n.map(r=>r.name).join(", ")}) => ${o.name}>`;return Bt(_e(s,i))},Vt=(r,e)=>(r=it.toValue(r),e=it.toValue(e),it.toHandle(r[e])),qt=r=>{r>9&&(tt[r+1]+=1)},Gt=r=>it.toHandle(Wt(r)),Xt=r=>{var e=it.toValue(r);Br(e),nt(r)},Kt=(r,e)=>{var t=(r=ct(r,"_emval_take_value")).readValueFromPointer(e);return it.toHandle(t)},Yt=(r,e)=>e+2097152>>>0<4194305-!!r?(r>>>0)+4294967296*e:NaN;function Zt(r,e,t,n,o,a,i,s){var u=Yt(o,a);try{if(isNaN(u))return 61;var l=jr.getStreamFromFD(n),d=Dr.mmap(l,r,u,e,t),c=d.ptr;return b[i>>2]=d.allocated,_[s>>2]=c,0}catch(h){if(void 0===Dr||"ErrnoError"!==h.name)throw h;return-h.errno}}function Jt(r,e,t,n,o,a,i){var s=Yt(a,i);try{var u=jr.getStreamFromFD(o);2&t&&jr.doMsync(r,u,e,n,s)}catch(l){if(void 0===Dr||"ErrnoError"!==l.name)throw l;return-l.errno}}var Qt=(r,e,t,n)=>{var o=(new Date).getFullYear(),a=new Date(o,0,1),i=new Date(o,6,1),s=a.getTimezoneOffset(),u=i.getTimezoneOffset(),l=Math.max(s,u);_[r>>2]=60*l,b[e>>2]=Number(s!=u);var d=r=>{var e=r>=0?"-":"+",t=Math.abs(r);return`UTC${e}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},c=d(s),h=d(u);u<s?(Et(c,t,17),Et(h,n,17)):(Et(c,n,17),Et(h,t,17))},rn=()=>performance.now(),en=()=>Date.now(),tn=r=>r>=0&&r<=3;function nn(r,e,t,n){if(!tn(r))return 28;var o;o=0===r?en():rn();var a=Math.round(1e3*o*1e3);return I=[a>>>0,(H=a,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[n>>2]=I[0],b[n+4>>2]=I[1],0}var on=()=>2147483648,an=()=>on(),sn=r=>{var e=(r-v.buffer.byteLength+65535)/65536|0;try{return v.grow(e),T(),1}catch(t){}},un=r=>{var e=w.length;r>>>=0;var t=on();if(r>t)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,r+100663296);var a=Math.min(t,Er(Math.max(r,o),65536));if(sn(a))return!0}return!1},ln={},dn=()=>c||"./this.program",cn=()=>{if(!cn.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:dn()};for(var e in ln)void 0===ln[e]?delete r[e]:r[e]=ln[e];var t=[];for(var e in r)t.push(`${e}=${r[e]}`);cn.strings=t}return cn.strings},hn=(r,e)=>{for(var t=0;t<r.length;++t)y[e++]=r.charCodeAt(t);y[e]=0},fn=(r,e)=>{var t=0;return cn().forEach((n,o)=>{var a=e+t;_[r+4*o>>2]=a,hn(n,a),t+=n.length+1}),0},pn=(r,e)=>{var t=cn();_[r>>2]=t.length;var n=0;return t.forEach(r=>n+=r.length+1),_[e>>2]=n,0};function mn(r){try{var e=jr.getStreamFromFD(r);return Dr.close(e),0}catch(t){if(void 0===Dr||"ErrnoError"!==t.name)throw t;return t.errno}}var vn=(r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var i=_[e>>2],s=_[e+4>>2];e+=8;var u=Dr.read(r,y,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function yn(r,e,t,n){try{var o=jr.getStreamFromFD(r),a=vn(o,e,t);return _[n>>2]=a,0}catch(i){if(void 0===Dr||"ErrnoError"!==i.name)throw i;return i.errno}}function wn(r,e,t,n,o){var a=Yt(e,t);try{if(isNaN(a))return 61;var i=jr.getStreamFromFD(r);return Dr.llseek(i,a,n),I=[i.position>>>0,(H=i.position,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],b[o>>2]=I[0],b[o+4>>2]=I[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(s){if(void 0===Dr||"ErrnoError"!==s.name)throw s;return s.errno}}var gn=(r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var i=_[e>>2],s=_[e+4>>2];e+=8;var u=Dr.write(r,y,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function En(r,e,t,n){try{var o=jr.getStreamFromFD(r),a=gn(o,e,t);return _[n>>2]=a,0}catch(i){if(void 0===Dr||"ErrnoError"!==i.name)throw i;return i.errno}}Dr.createPreloadedFile=Tr,Dr.staticInit(),_r.doesNotExistError=new Dr.ErrnoError(44),_r.doesNotExistError.stack="<generic error, no stack>",Hr=o.InternalError=class extends Error{constructor(r){super(r),this.name="InternalError"}},Qr(),Vr=o.BindingError=class extends Error{constructor(r){super(r),this.name="BindingError"}},Ee(),Me(),Oe=o.UnboundTypeError=Ie(Error,"UnboundTypeError"),at();var bn,_n={w:or,B:Mr,R:xr,T:Rr,P:Or,C:Nr,Q:Wr,W:zr,u:Zr,I:Jr,aa:ae,t:Ge,s:Ze,b:Qe,e:rt,_:ut,i:dt,a:ht,D:mt,f:vt,q:wt,h:gt,$:bt,y:St,v:Dt,c:Ft,ba:jt,V:Mt,M:xt,n:Ot,j:Ut,d:nt,k:It,o:Vt,l:qt,p:Gt,g:Xt,m:Kt,F:Zt,G:Jt,J:Qt,E:nn,U:en,O:an,z:rn,N:un,K:fn,L:pn,x:mn,S:yn,H:wn,A:En,Y:Mn,r:Fn,X:xn,Z:jn};Q();var kn,$n=r=>($n=bn.ea)(r),Pn=r=>(Pn=bn.fa)(r),Cn=r=>(Cn=bn.ha)(r),Tn=(r,e)=>(Tn=bn.ia)(r,e),An=(r,e)=>(An=bn.ja)(r,e),Sn=r=>(Sn=bn.ka)(r),Dn=()=>(Dn=bn.la)();function Fn(r,e){var t=tr();try{Ue(r)(e)}catch(n){if(er(t),n!==n+0)throw n;An(1,0)}}function jn(r,e,t,n){var o=tr();try{Ue(r)(e,t,n)}catch(a){if(er(o),a!==a+0)throw a;An(1,0)}}function Mn(r,e){var t=tr();try{return Ue(r)(e)}catch(n){if(er(t),n!==n+0)throw n;An(1,0)}}function xn(r,e,t){var n=tr();try{Ue(r)(e,t)}catch(o){if(er(n),o!==o+0)throw o;An(1,0)}}function Rn(){function r(){kn||(kn=!0,o.calledRun=!0,C||(j(),t(o),o.onRuntimeInitialized?.(),M()))}N>0||(F(),N>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>o.setStatus(""),1),r()},1)):r()))}if(o.dynCall_ji=(r,e)=>(o.dynCall_ji=bn.ma)(r,e),o.dynCall_iij=(r,e,t,n)=>(o.dynCall_iij=bn.na)(r,e,t,n),o.dynCall_jiiii=(r,e,t,n,a)=>(o.dynCall_jiiii=bn.oa)(r,e,t,n,a),o.dynCall_jiji=(r,e,t,n,a)=>(o.dynCall_jiji=bn.pa)(r,e,t,n,a),o.dynCall_viijii=(r,e,t,n,a,i,s)=>(o.dynCall_viijii=bn.qa)(r,e,t,n,a,i,s),o.dynCall_iiiiij=(r,e,t,n,a,i,s)=>(o.dynCall_iiiiij=bn.ra)(r,e,t,n,a,i,s),o.dynCall_iiiiijj=(r,e,t,n,a,i,s,u,l)=>(o.dynCall_iiiiijj=bn.sa)(r,e,t,n,a,i,s,u,l),o.dynCall_iiiiiijj=(r,e,t,n,a,i,s,u,l,d)=>(o.dynCall_iiiiiijj=bn.ta)(r,e,t,n,a,i,s,u,l,d),W=function r(){kn||Rn(),kn||(W=r)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Rn(),a});"object"==typeof exports&&"object"==typeof module?(module.exports=e,module.exports.default=e):"function"==typeof define&&define.amd&&define([],()=>e);
|