Files
AR-Menu/Needle/MenuScene/dist/assets/materialx.CnHmG--Y.js
pelpanagiotis 6947303755 Commit Needle production dist and nginx-only Docker image
- Track Needle/MenuScene/dist and Needle/SampleScene/dist for container deploys
- Dockerfile copies pre-built dist (no npm in image); rebuild with npm run build before commit
- Fix Needle .gitignore: /assets/ so dist/assets is not ignored
- Git LFS: track *.wasm; relax .dockerignore so dist is sent as build context

Made-with: Cursor
2026-04-19 23:39:59 +03:00

150 lines
137 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{t as e}from"./rolldown-runtime.CYVBeYYp.js";import{A as t,Ar as n,Bt as r,C as i,Fr as a,It as o,Jn as s,Lt as c,O as l,On as u,Qn as d,Qt as f,Sr as p,Xt as m,Yt as h,Zt as g,an as _,gr as v,hn as y,in as b,lt as x,mn as ee,n as S,on as C,ot as w,sn as T,t as te,tr as E,vn as D,wn as ne,xr as re}from"./three@0.169.19.js";var ie=`modulepreload`,ae=function(e,t){return new URL(e,t).href},oe={},se=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ae(t,n),t in oe)return;oe[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:ie,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},ce=``+new URL(`JsMaterialXCore.B97gKRq_.wasm`,import.meta.url).href,le=``+new URL(`JsMaterialXGenShader.data.DOxudtll.txt`,import.meta.url).href,ue=``+new URL(`JsMaterialXGenShader.P2pWAaz9.wasm`,import.meta.url).href,de=e(((e,t)=>{t.exports={}})),fe=(function(){var e=typeof document<`u`?document.currentScript?.src:void 0;return typeof __filename<`u`&&(e||=__filename),(function(t){t||={};var n,r=t,i,a,o=new Promise((e,t)=>{i=e,a=t}),s=typeof window==`object`,c=typeof WorkerGlobalScope<`u`,l=typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&process.type!=`renderer`;r.expectedDataFileDownloads??=0,r.expectedDataFileDownloads++,(()=>{if(typeof ENVIRONMENT_IS_PTHREAD<`u`&&ENVIRONMENT_IS_PTHREAD||typeof ENVIRONMENT_IS_WASM_WORKER<`u`&&ENVIRONMENT_IS_WASM_WORKER)return;var e=typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`;function t(t){typeof window==`object`?window.encodeURIComponent(window.location.pathname.substring(0,window.location.pathname.lastIndexOf(`/`))+`/`):typeof process>`u`&&typeof location<`u`&&encodeURIComponent(location.pathname.substring(0,location.pathname.lastIndexOf(`/`))+`/`);var n=`../../bin/JsMaterialXGenShader.data`,i=`JsMaterialXGenShader.data`,a=r.locateFile?r.locateFile(i,``):i,o=t.remote_package_size;function s(t,n,i,a){if(e){de().readFile(t,(e,t)=>{e?a(e):i(t.buffer)});return}r.dataFileDownloads??={},fetch(t).catch(e=>Promise.reject(Error(`Network Error: ${t}`,{cause:e}))).then(e=>{if(!e.ok)return Promise.reject(Error(`${e.status}: ${e.url}`));if(!e.body&&e.arrayBuffer)return e.arrayBuffer().then(i);let a=e.body.getReader(),o=()=>a.read().then(d).catch(t=>Promise.reject(Error(`Unexpected error while handling : ${e.url} ${t}`,{cause:t}))),s=[],c=e.headers,l=Number(c.get(`Content-Length`)??n),u=0,d=({done:e,value:n})=>{if(e){let e=new Uint8Array(s.map(e=>e.length).reduce((e,t)=>e+t,0)),t=0;for(let n of s)e.set(n,t),t+=n.length;i(e.buffer)}else{s.push(n),u+=n.length,r.dataFileDownloads[t]={loaded:u,total:l};let e=0,i=0;for(let t of Object.values(r.dataFileDownloads))e+=t.loaded,i+=t.total;return r.setStatus?.(`Downloading data... (${e}/${i})`),o()}};return r.setStatus?.(`Downloading data...`),o()})}function c(e){console.error(`package error:`,e)}var l=null,u=r.getPreloadedPackage?r.getPreloadedPackage(a,o):null;u||s(a,o,e=>{l?(l(e),l=null):u=e},c);function d(e){function r(e,t){if(!e)throw t+Error().stack}e.FS_createPath(`/`,`libraries`,!0,!0),e.FS_createPath(`/libraries`,`bxdf`,!0,!0),e.FS_createPath(`/libraries/bxdf`,`genglsl`,!0,!0),e.FS_createPath(`/libraries/bxdf`,`genmdl`,!0,!0),e.FS_createPath(`/libraries/bxdf`,`lama`,!0,!0),e.FS_createPath(`/libraries/bxdf`,`translation`,!0,!0),e.FS_createPath(`/libraries`,`cmlib`,!0,!0),e.FS_createPath(`/libraries`,`lights`,!0,!0),e.FS_createPath(`/libraries/lights`,`genglsl`,!0,!0),e.FS_createPath(`/libraries/lights`,`genmsl`,!0,!0),e.FS_createPath(`/libraries`,`nprlib`,!0,!0),e.FS_createPath(`/libraries/nprlib`,`genglsl`,!0,!0),e.FS_createPath(`/libraries/nprlib`,`genmdl`,!0,!0),e.FS_createPath(`/libraries/nprlib`,`genmsl`,!0,!0),e.FS_createPath(`/libraries/nprlib`,`genosl`,!0,!0),e.FS_createPath(`/libraries`,`pbrlib`,!0,!0),e.FS_createPath(`/libraries/pbrlib`,`genglsl`,!0,!0),e.FS_createPath(`/libraries/pbrlib/genglsl`,`lib`,!0,!0),e.FS_createPath(`/libraries/pbrlib`,`genmdl`,!0,!0),e.FS_createPath(`/libraries/pbrlib`,`genmsl`,!0,!0),e.FS_createPath(`/libraries/pbrlib`,`genosl`,!0,!0),e.FS_createPath(`/libraries/pbrlib/genosl`,`lib`,!0,!0),e.FS_createPath(`/libraries`,`stdlib`,!0,!0),e.FS_createPath(`/libraries/stdlib`,`genglsl`,!0,!0),e.FS_createPath(`/libraries/stdlib/genglsl`,`lib`,!0,!0),e.FS_createPath(`/libraries/stdlib`,`genmdl`,!0,!0),e.FS_createPath(`/libraries/stdlib`,`genmsl`,!0,!0),e.FS_createPath(`/libraries/stdlib/genmsl`,`lib`,!0,!0),e.FS_createPath(`/libraries/stdlib`,`genosl`,!0,!0),e.FS_createPath(`/libraries/stdlib/genosl`,`include`,!0,!0),e.FS_createPath(`/libraries/stdlib/genosl`,`lib`,!0,!0),e.FS_createPath(`/libraries`,`targets`,!0,!0);function i(e,t,n){this.start=e,this.end=t,this.audio=n}i.prototype={requests:{},open:function(t,n){this.name=n,this.requests[n]=this,e.addRunDependency(`fp ${this.name}`)},send:function(){},onload:function(){var e=this.byteArray.subarray(this.start,this.end);this.finish(e)},finish:function(t){var n=this;e.FS_createDataFile(this.name,null,t,!0,!0,!0),e.removeRunDependency(`fp ${n.name}`),this.requests[this.name]=null}};for(var a=t.files,o=0;o<a.length;++o)new i(a[o].start,a[o].end,a[o].audio||0).open(`GET`,a[o].filename);function s(n){r(n,`Loading data file failed.`),r(n.constructor.name===ArrayBuffer.name,`bad input to processPackageData`);var a=new Uint8Array(n);i.prototype.byteArray=a;for(var o=t.files,s=0;s<o.length;++s)i.prototype.requests[o[s].filename].onload();e.removeRunDependency(`datafile_../../bin/JsMaterialXGenShader.data`)}e.addRunDependency(`datafile_../../bin/JsMaterialXGenShader.data`),e.preloadResults??={},e.preloadResults[n]={fromCache:!1},u?(s(u),u=null):l=s}r.calledRun?d(r):(r.preRun??=[]).push(d)}t({files:[{filename:`/libraries/CMakeLists.txt`,start:0,end:1923},{filename:`/libraries/README.md`,start:1923,end:6916},{filename:`/libraries/bxdf/disney_principled.mtlx`,start:6916,end:14224},{filename:`/libraries/bxdf/genglsl/gltf_pbr.mtlx`,start:14224,end:29111},{filename:`/libraries/bxdf/genglsl/open_pbr_surface.mtlx`,start:29111,end:60318},{filename:`/libraries/bxdf/genglsl/standard_surface.mtlx`,start:60318,end:78091},{filename:`/libraries/bxdf/genmdl/open_pbr_surface.mtlx`,start:78091,end:109117},{filename:`/libraries/bxdf/gltf_pbr.mtlx`,start:109117,end:154082},{filename:`/libraries/bxdf/lama/lama_add.mtlx`,start:154082,end:156736},{filename:`/libraries/bxdf/lama/lama_conductor.mtlx`,start:156736,end:164736},{filename:`/libraries/bxdf/lama/lama_dielectric.mtlx`,start:164736,end:175655},{filename:`/libraries/bxdf/lama/lama_diffuse.mtlx`,start:175655,end:178601},{filename:`/libraries/bxdf/lama/lama_emission.mtlx`,start:178601,end:179350},{filename:`/libraries/bxdf/lama/lama_generalized_schlick.mtlx`,start:179350,end:191204},{filename:`/libraries/bxdf/lama/lama_iridescence.mtlx`,start:191204,end:197167},{filename:`/libraries/bxdf/lama/lama_layer.mtlx`,start:197167,end:198911},{filename:`/libraries/bxdf/lama/lama_mix.mtlx`,start:198911,end:200998},{filename:`/libraries/bxdf/lama/lama_sheen.mtlx`,start:200998,end:203121},{filename:`/libraries/bxdf/lama/lama_sss.mtlx`,start:203121,end:209896},{filename:`/libraries/bxdf/lama/lama_surface.mtlx`,start:209896,end:211564},{filename:`/libraries/bxdf/lama/lama_translucent.mtlx`,start:211564,end:213201},{filename:`/libraries/bxdf/open_pbr_surface.mtlx`,start:213201,end:254487},{filename:`/libraries/bxdf/standard_surface.mtlx`,start:254487,end:282570},{filename:`/libraries/bxdf/translation/open_pbr_to_standard_surface.mtlx`,start:282570,end:300037},{filename:`/libraries/bxdf/translation/standard_surface_to_gltf_pbr.mtlx`,start:300037,end:310217},{filename:`/libraries/bxdf/translation/standard_surface_to_open_pbr.mtlx`,start:310217,end:325326},{filename:`/libraries/bxdf/translation/standard_surface_to_usd.mtlx`,start:325326,end:331207},{filename:`/libraries/bxdf/usd_preview_surface.mtlx`,start:331207,end:354199},{filename:`/libraries/cmlib/cmlib_defs.mtlx`,start:354199,end:359045},{filename:`/libraries/cmlib/cmlib_ng.mtlx`,start:359045,end:376520},{filename:`/libraries/lights/genglsl/lights_genglsl_impl.mtlx`,start:376520,end:377124},{filename:`/libraries/lights/genglsl/mx_directional_light.glsl`,start:377124,end:377305},{filename:`/libraries/lights/genglsl/mx_point_light.glsl`,start:377305,end:377675},{filename:`/libraries/lights/genglsl/mx_spot_light.glsl`,start:377675,end:378299},{filename:`/libraries/lights/genmsl/lights_genmsl_impl.mtlx`,start:378299,end:378900},{filename:`/libraries/lights/genmsl/mx_directional_light.metal`,start:378900,end:379087},{filename:`/libraries/lights/genmsl/mx_point_light.metal`,start:379087,end:379463},{filename:`/libraries/lights/genmsl/mx_spot_light.metal`,start:379463,end:380093},{filename:`/libraries/lights/lights_defs.mtlx`,start:380093,end:382505},{filename:`/libraries/nprlib/genglsl/nprlib_genglsl_impl.mtlx`,start:382505,end:383169},{filename:`/libraries/nprlib/genmdl/nprlib_genmdl_impl.mtlx`,start:383169,end:383931},{filename:`/libraries/nprlib/genmsl/nprlib_genmsl_impl.mtlx`,start:383931,end:384592},{filename:`/libraries/nprlib/genosl/nprlib_genosl_impl.mtlx`,start:384592,end:385290},{filename:`/libraries/nprlib/nprlib_defs.mtlx`,start:385290,end:387925},{filename:`/libraries/nprlib/nprlib_ng.mtlx`,start:387925,end:392774},{filename:`/libraries/pbrlib/genglsl/lib/mx_closure_type.glsl`,start:392774,end:393191},{filename:`/libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl`,start:393191,end:395985},{filename:`/libraries/pbrlib/genglsl/lib/mx_environment_none.glsl`,start:395985,end:396220},{filename:`/libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl`,start:396220,end:397306},{filename:`/libraries/pbrlib/genglsl/lib/mx_generate_albedo_table.glsl`,start:397306,end:397678},{filename:`/libraries/pbrlib/genglsl/lib/mx_generate_prefilter_env.glsl`,start:397678,end:400025},{filename:`/libraries/pbrlib/genglsl/lib/mx_microfacet.glsl`,start:400025,end:403017},{filename:`/libraries/pbrlib/genglsl/lib/mx_microfacet_diffuse.glsl`,start:403017,end:410481},{filename:`/libraries/pbrlib/genglsl/lib/mx_microfacet_sheen.glsl`,start:410481,end:417234},{filename:`/libraries/pbrlib/genglsl/lib/mx_microfacet_specular.glsl`,start:417234,end:433684},{filename:`/libraries/pbrlib/genglsl/lib/mx_shadow.glsl`,start:433684,end:434440},{filename:`/libraries/pbrlib/genglsl/lib/mx_transmission_opacity.glsl`,start:434440,end:434611},{filename:`/libraries/pbrlib/genglsl/lib/mx_transmission_refract.glsl`,start:434611,end:435122},{filename:`/libraries/pbrlib/genglsl/mx_add_bsdf.glsl`,start:435122,end:435704},{filename:`/libraries/pbrlib/genglsl/mx_add_edf.glsl`,start:435704,end:435844},{filename:`/libraries/pbrlib/genglsl/mx_anisotropic_vdf.glsl`,start:435844,end:436072},{filename:`/libraries/pbrlib/genglsl/mx_artistic_ior.glsl`,start:436072,end:436645},{filename:`/libraries/pbrlib/genglsl/mx_blackbody.glsl`,start:436645,end:438381},{filename:`/libraries/pbrlib/genglsl/mx_burley_diffuse_bsdf.glsl`,start:438381,end:439428},{filename:`/libraries/pbrlib/genglsl/mx_chiang_hair_bsdf.glsl`,start:439428,end:448436},{filename:`/libraries/pbrlib/genglsl/mx_conductor_bsdf.glsl`,start:448436,end:450193},{filename:`/libraries/pbrlib/genglsl/mx_dielectric_bsdf.glsl`,start:450193,end:452835},{filename:`/libraries/pbrlib/genglsl/mx_displacement_float.glsl`,start:452835,end:452980},{filename:`/libraries/pbrlib/genglsl/mx_displacement_vector3.glsl`,start:452980,end:453120},{filename:`/libraries/pbrlib/genglsl/mx_generalized_schlick_bsdf.glsl`,start:453120,end:456289},{filename:`/libraries/pbrlib/genglsl/mx_generalized_schlick_edf.glsl`,start:456289,end:456801},{filename:`/libraries/pbrlib/genglsl/mx_layer_bsdf.glsl`,start:456801,end:457051},{filename:`/libraries/pbrlib/genglsl/mx_layer_vdf.glsl`,start:457051,end:457283},{filename:`/libraries/pbrlib/genglsl/mx_mix_bsdf.glsl`,start:457283,end:457549},{filename:`/libraries/pbrlib/genglsl/mx_mix_edf.glsl`,start:457549,end:457715},{filename:`/libraries/pbrlib/genglsl/mx_multiply_bsdf_color3.glsl`,start:457715,end:457968},{filename:`/libraries/pbrlib/genglsl/mx_multiply_bsdf_float.glsl`,start:457968,end:458226},{filename:`/libraries/pbrlib/genglsl/mx_multiply_edf_color3.glsl`,start:458226,end:458379},{filename:`/libraries/pbrlib/genglsl/mx_multiply_edf_float.glsl`,start:458379,end:458532},{filename:`/libraries/pbrlib/genglsl/mx_oren_nayar_diffuse_bsdf.glsl`,start:458532,end:459907},{filename:`/libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl`,start:459907,end:460352},{filename:`/libraries/pbrlib/genglsl/mx_roughness_dual.glsl`,start:460352,end:460620},{filename:`/libraries/pbrlib/genglsl/mx_sheen_bsdf.glsl`,start:460620,end:462706},{filename:`/libraries/pbrlib/genglsl/mx_subsurface_bsdf.glsl`,start:462706,end:463759},{filename:`/libraries/pbrlib/genglsl/mx_translucent_bsdf.glsl`,start:463759,end:464485},{filename:`/libraries/pbrlib/genglsl/mx_uniform_edf.glsl`,start:464485,end:464693},{filename:`/libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx`,start:464693,end:470798},{filename:`/libraries/pbrlib/genmdl/pbrlib_genmdl_impl.mtlx`,start:470798,end:482183},{filename:`/libraries/pbrlib/genmsl/pbrlib_genmsl_impl.mtlx`,start:482183,end:482450},{filename:`/libraries/pbrlib/genosl/lib/mx_microfacet.osl`,start:482450,end:484182},{filename:`/libraries/pbrlib/genosl/mx_anisotropic_vdf.osl`,start:484182,end:484553},{filename:`/libraries/pbrlib/genosl/mx_artistic_ior.osl`,start:484553,end:485145},{filename:`/libraries/pbrlib/genosl/mx_blackbody.osl`,start:485145,end:486917},{filename:`/libraries/pbrlib/genosl/mx_chiang_hair_bsdf.osl`,start:486917,end:487609},{filename:`/libraries/pbrlib/genosl/mx_chiang_hair_roughness.osl`,start:487609,end:487966},{filename:`/libraries/pbrlib/genosl/mx_dielectric_bsdf.osl`,start:487966,end:488516},{filename:`/libraries/pbrlib/genosl/mx_generalized_schlick_bsdf.osl`,start:488516,end:489155},{filename:`/libraries/pbrlib/genosl/mx_generalized_schlick_edf.osl`,start:489155,end:489425},{filename:`/libraries/pbrlib/genosl/mx_roughness_anisotropy.osl`,start:489425,end:489876},{filename:`/libraries/pbrlib/genosl/mx_roughness_dual.osl`,start:489876,end:490172},{filename:`/libraries/pbrlib/genosl/mx_subsurface_bsdf.osl`,start:490172,end:490500},{filename:`/libraries/pbrlib/genosl/mx_surface.osl`,start:490500,end:490701},{filename:`/libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx`,start:490701,end:496546},{filename:`/libraries/pbrlib/pbrlib_defs.mtlx`,start:496546,end:521016},{filename:`/libraries/pbrlib/pbrlib_ng.mtlx`,start:521016,end:521810},{filename:`/libraries/stdlib/genglsl/lib/mx_geometry.glsl`,start:521810,end:523171},{filename:`/libraries/stdlib/genglsl/lib/mx_hextile.glsl`,start:523171,end:527672},{filename:`/libraries/stdlib/genglsl/lib/mx_hsv.glsl`,start:527672,end:531151},{filename:`/libraries/stdlib/genglsl/lib/mx_math.glsl`,start:531151,end:531786},{filename:`/libraries/stdlib/genglsl/lib/mx_noise.glsl`,start:531786,end:554725},{filename:`/libraries/stdlib/genglsl/lib/mx_transform_uv.glsl`,start:554725,end:554841},{filename:`/libraries/stdlib/genglsl/lib/mx_transform_uv_vflip.glsl`,start:554841,end:554977},{filename:`/libraries/stdlib/genglsl/mx_aastep.glsl`,start:554977,end:555177},{filename:`/libraries/stdlib/genglsl/mx_burn_color3.glsl`,start:555177,end:555462},{filename:`/libraries/stdlib/genglsl/mx_burn_color4.glsl`,start:555462,end:555803},{filename:`/libraries/stdlib/genglsl/mx_burn_float.glsl`,start:555803,end:556026},{filename:`/libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl`,start:556026,end:556163},{filename:`/libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl`,start:556163,end:556300},{filename:`/libraries/stdlib/genglsl/mx_creatematrix_vector3_matrix33.glsl`,start:556300,end:556507},{filename:`/libraries/stdlib/genglsl/mx_creatematrix_vector3_matrix44.glsl`,start:556507,end:556783},{filename:`/libraries/stdlib/genglsl/mx_creatematrix_vector4_matrix44.glsl`,start:556783,end:557067},{filename:`/libraries/stdlib/genglsl/mx_disjointover_color4.glsl`,start:557067,end:557661},{filename:`/libraries/stdlib/genglsl/mx_dodge_color3.glsl`,start:557661,end:557951},{filename:`/libraries/stdlib/genglsl/mx_dodge_color4.glsl`,start:557951,end:558300},{filename:`/libraries/stdlib/genglsl/mx_dodge_float.glsl`,start:558300,end:558522},{filename:`/libraries/stdlib/genglsl/mx_fractal2d_float.glsl`,start:558522,end:558794},{filename:`/libraries/stdlib/genglsl/mx_fractal2d_vector2.glsl`,start:558794,end:559064},{filename:`/libraries/stdlib/genglsl/mx_fractal2d_vector3.glsl`,start:559064,end:559334},{filename:`/libraries/stdlib/genglsl/mx_fractal2d_vector4.glsl`,start:559334,end:559604},{filename:`/libraries/stdlib/genglsl/mx_fractal3d_float.glsl`,start:559604,end:559876},{filename:`/libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl`,start:559876,end:560146},{filename:`/libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl`,start:560146,end:560416},{filename:`/libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl`,start:560416,end:560686},{filename:`/libraries/stdlib/genglsl/mx_heighttonormal_vector3.glsl`,start:560686,end:561639},{filename:`/libraries/stdlib/genglsl/mx_hextiledimage.glsl`,start:561639,end:564789},{filename:`/libraries/stdlib/genglsl/mx_hextilednormalmap.glsl`,start:564789,end:567295},{filename:`/libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl`,start:567295,end:567409},{filename:`/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl`,start:567409,end:567538},{filename:`/libraries/stdlib/genglsl/mx_image_color3.glsl`,start:567538,end:567928},{filename:`/libraries/stdlib/genglsl/mx_image_color4.glsl`,start:567928,end:568314},{filename:`/libraries/stdlib/genglsl/mx_image_float.glsl`,start:568314,end:568703},{filename:`/libraries/stdlib/genglsl/mx_image_vector2.glsl`,start:568703,end:569093},{filename:`/libraries/stdlib/genglsl/mx_image_vector3.glsl`,start:569093,end:569484},{filename:`/libraries/stdlib/genglsl/mx_image_vector4.glsl`,start:569484,end:569871},{filename:`/libraries/stdlib/genglsl/mx_luminance_color3.glsl`,start:569871,end:569985},{filename:`/libraries/stdlib/genglsl/mx_luminance_color4.glsl`,start:569985,end:570116},{filename:`/libraries/stdlib/genglsl/mx_mix_surfaceshader.glsl`,start:570116,end:570350},{filename:`/libraries/stdlib/genglsl/mx_noise2d_float.glsl`,start:570350,end:570560},{filename:`/libraries/stdlib/genglsl/mx_noise2d_vector2.glsl`,start:570560,end:570771},{filename:`/libraries/stdlib/genglsl/mx_noise2d_vector3.glsl`,start:570771,end:570979},{filename:`/libraries/stdlib/genglsl/mx_noise2d_vector4.glsl`,start:570979,end:571254},{filename:`/libraries/stdlib/genglsl/mx_noise3d_float.glsl`,start:571254,end:571464},{filename:`/libraries/stdlib/genglsl/mx_noise3d_vector2.glsl`,start:571464,end:571675},{filename:`/libraries/stdlib/genglsl/mx_noise3d_vector3.glsl`,start:571675,end:571883},{filename:`/libraries/stdlib/genglsl/mx_noise3d_vector4.glsl`,start:571883,end:572162},{filename:`/libraries/stdlib/genglsl/mx_normalmap.glsl`,start:572162,end:572660},{filename:`/libraries/stdlib/genglsl/mx_premult_color4.glsl`,start:572660,end:572757},{filename:`/libraries/stdlib/genglsl/mx_ramplr_float.glsl`,start:572757,end:572908},{filename:`/libraries/stdlib/genglsl/mx_ramplr_vector2.glsl`,start:572908,end:573058},{filename:`/libraries/stdlib/genglsl/mx_ramplr_vector3.glsl`,start:573058,end:573208},{filename:`/libraries/stdlib/genglsl/mx_ramplr_vector4.glsl`,start:573208,end:573358},{filename:`/libraries/stdlib/genglsl/mx_ramptb_float.glsl`,start:573358,end:573509},{filename:`/libraries/stdlib/genglsl/mx_ramptb_vector2.glsl`,start:573509,end:573659},{filename:`/libraries/stdlib/genglsl/mx_ramptb_vector3.glsl`,start:573659,end:573809},{filename:`/libraries/stdlib/genglsl/mx_ramptb_vector4.glsl`,start:573809,end:573959},{filename:`/libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl`,start:573959,end:574073},{filename:`/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl`,start:574073,end:574202},{filename:`/libraries/stdlib/genglsl/mx_rotate_vector2.glsl`,start:574202,end:574460},{filename:`/libraries/stdlib/genglsl/mx_rotate_vector3.glsl`,start:574460,end:575361},{filename:`/libraries/stdlib/genglsl/mx_smoothstep_float.glsl`,start:575361,end:575586},{filename:`/libraries/stdlib/genglsl/mx_splitlr_float.glsl`,start:575586,end:575779},{filename:`/libraries/stdlib/genglsl/mx_splitlr_vector2.glsl`,start:575779,end:575971},{filename:`/libraries/stdlib/genglsl/mx_splitlr_vector3.glsl`,start:575971,end:576163},{filename:`/libraries/stdlib/genglsl/mx_splitlr_vector4.glsl`,start:576163,end:576355},{filename:`/libraries/stdlib/genglsl/mx_splittb_float.glsl`,start:576355,end:576548},{filename:`/libraries/stdlib/genglsl/mx_splittb_vector2.glsl`,start:576548,end:576740},{filename:`/libraries/stdlib/genglsl/mx_splittb_vector3.glsl`,start:576740,end:576932},{filename:`/libraries/stdlib/genglsl/mx_splittb_vector4.glsl`,start:576932,end:577124},{filename:`/libraries/stdlib/genglsl/mx_surface_unlit.glsl`,start:577124,end:577416},{filename:`/libraries/stdlib/genglsl/mx_transformmatrix_vector2M3.glsl`,start:577416,end:577557},{filename:`/libraries/stdlib/genglsl/mx_transformmatrix_vector3M4.glsl`,start:577557,end:577699},{filename:`/libraries/stdlib/genglsl/mx_unpremult_color4.glsl`,start:577699,end:577798},{filename:`/libraries/stdlib/genglsl/mx_worleynoise2d_float.glsl`,start:577798,end:577982},{filename:`/libraries/stdlib/genglsl/mx_worleynoise2d_vector2.glsl`,start:577982,end:578166},{filename:`/libraries/stdlib/genglsl/mx_worleynoise2d_vector3.glsl`,start:578166,end:578350},{filename:`/libraries/stdlib/genglsl/mx_worleynoise3d_float.glsl`,start:578350,end:578534},{filename:`/libraries/stdlib/genglsl/mx_worleynoise3d_vector2.glsl`,start:578534,end:578718},{filename:`/libraries/stdlib/genglsl/mx_worleynoise3d_vector3.glsl`,start:578718,end:578902},{filename:`/libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx`,start:578902,end:655696},{filename:`/libraries/stdlib/genmdl/stdlib_genmdl_impl.mtlx`,start:655696,end:749986},{filename:`/libraries/stdlib/genmsl/lib/mx_math.metal`,start:749986,end:754275},{filename:`/libraries/stdlib/genmsl/lib/mx_matscalaroperators.metal`,start:754275,end:755284},{filename:`/libraries/stdlib/genmsl/lib/mx_texture.metal`,start:755284,end:756022},{filename:`/libraries/stdlib/genmsl/stdlib_genmsl_impl.mtlx`,start:756022,end:765748},{filename:`/libraries/stdlib/genosl/include/color4.h`,start:765748,end:771586},{filename:`/libraries/stdlib/genosl/include/matrix33.h`,start:771586,end:774206},{filename:`/libraries/stdlib/genosl/include/mx_funcs.h`,start:774206,end:795997},{filename:`/libraries/stdlib/genosl/include/vector2.h`,start:795997,end:801663},{filename:`/libraries/stdlib/genosl/include/vector4.h`,start:801663,end:810661},{filename:`/libraries/stdlib/genosl/lib/mx_transform_uv.osl`,start:810661,end:810728},{filename:`/libraries/stdlib/genosl/lib/mx_transform_uv_vflip.osl`,start:810728,end:810824},{filename:`/libraries/stdlib/genosl/lib/vector4_extra_ops.osl`,start:810824,end:811698},{filename:`/libraries/stdlib/genosl/mx_burn_color3.osl`,start:811698,end:811951},{filename:`/libraries/stdlib/genosl/mx_burn_color4.osl`,start:811951,end:812289},{filename:`/libraries/stdlib/genosl/mx_burn_float.osl`,start:812289,end:812506},{filename:`/libraries/stdlib/genosl/mx_cellnoise2d_float.osl`,start:812506,end:812623},{filename:`/libraries/stdlib/genosl/mx_cellnoise3d_float.osl`,start:812623,end:812725},{filename:`/libraries/stdlib/genosl/mx_creatematrix.osl`,start:812725,end:813630},{filename:`/libraries/stdlib/genosl/mx_disjointover_color4.osl`,start:813630,end:814208},{filename:`/libraries/stdlib/genosl/mx_dodge_color3.osl`,start:814208,end:814466},{filename:`/libraries/stdlib/genosl/mx_dodge_color4.osl`,start:814466,end:814813},{filename:`/libraries/stdlib/genosl/mx_dodge_float.osl`,start:814813,end:815020},{filename:`/libraries/stdlib/genosl/mx_fractal2d_float.osl`,start:815020,end:815266},{filename:`/libraries/stdlib/genosl/mx_fractal2d_vector2.osl`,start:815266,end:815520},{filename:`/libraries/stdlib/genosl/mx_fractal2d_vector3.osl`,start:815520,end:815771},{filename:`/libraries/stdlib/genosl/mx_fractal2d_vector4.osl`,start:815771,end:816025},{filename:`/libraries/stdlib/genosl/mx_fractal3d_float.osl`,start:816025,end:816256},{filename:`/libraries/stdlib/genosl/mx_fractal3d_vector2.osl`,start:816256,end:816495},{filename:`/libraries/stdlib/genosl/mx_fractal3d_vector3.osl`,start:816495,end:816731},{filename:`/libraries/stdlib/genosl/mx_fractal3d_vector4.osl`,start:816731,end:816970},{filename:`/libraries/stdlib/genosl/mx_frame_float.osl`,start:816970,end:817139},{filename:`/libraries/stdlib/genosl/mx_geomcolor_color3.osl`,start:817139,end:817235},{filename:`/libraries/stdlib/genosl/mx_geomcolor_color4.osl`,start:817235,end:817466},{filename:`/libraries/stdlib/genosl/mx_geomcolor_float.osl`,start:817466,end:817561},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_boolean.osl`,start:817561,end:817712},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_color3.osl`,start:817712,end:817865},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_color4.osl`,start:817865,end:818233},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_float.osl`,start:818233,end:818407},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_integer.osl`,start:818407,end:818558},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_string.osl`,start:818558,end:818714},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_vector2.osl`,start:818714,end:818980},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_vector3.osl`,start:818980,end:819136},{filename:`/libraries/stdlib/genosl/mx_geompropvalue_vector4.osl`,start:819136,end:819454},{filename:`/libraries/stdlib/genosl/mx_heighttonormal_vector3.osl`,start:819454,end:820428},{filename:`/libraries/stdlib/genosl/mx_hsvtorgb_color3.osl`,start:820428,end:820533},{filename:`/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl`,start:820533,end:820655},{filename:`/libraries/stdlib/genosl/mx_image_color3.osl`,start:820655,end:821600},{filename:`/libraries/stdlib/genosl/mx_image_color4.osl`,start:821600,end:822723},{filename:`/libraries/stdlib/genosl/mx_image_float.osl`,start:822723,end:823586},{filename:`/libraries/stdlib/genosl/mx_image_vector2.osl`,start:823586,end:824501},{filename:`/libraries/stdlib/genosl/mx_image_vector3.osl`,start:824501,end:825319},{filename:`/libraries/stdlib/genosl/mx_image_vector4.osl`,start:825319,end:826362},{filename:`/libraries/stdlib/genosl/mx_luminance_color3.osl`,start:826362,end:826474},{filename:`/libraries/stdlib/genosl/mx_luminance_color4.osl`,start:826474,end:826606},{filename:`/libraries/stdlib/genosl/mx_mix_surfaceshader.osl`,start:826606,end:826848},{filename:`/libraries/stdlib/genosl/mx_noise2d_float.osl`,start:826848,end:827042},{filename:`/libraries/stdlib/genosl/mx_noise2d_vector2.osl`,start:827042,end:827247},{filename:`/libraries/stdlib/genosl/mx_noise2d_vector3.osl`,start:827247,end:827446},{filename:`/libraries/stdlib/genosl/mx_noise2d_vector4.osl`,start:827446,end:827651},{filename:`/libraries/stdlib/genosl/mx_noise3d_float.osl`,start:827651,end:827830},{filename:`/libraries/stdlib/genosl/mx_noise3d_vector2.osl`,start:827830,end:828020},{filename:`/libraries/stdlib/genosl/mx_noise3d_vector3.osl`,start:828020,end:828204},{filename:`/libraries/stdlib/genosl/mx_noise3d_vector4.osl`,start:828204,end:828394},{filename:`/libraries/stdlib/genosl/mx_normalmap.osl`,start:828394,end:829306},{filename:`/libraries/stdlib/genosl/mx_premult_color4.osl`,start:829306,end:829408},{filename:`/libraries/stdlib/genosl/mx_rgbtohsv_color3.osl`,start:829408,end:829513},{filename:`/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl`,start:829513,end:829635},{filename:`/libraries/stdlib/genosl/mx_rotate_vector2.osl`,start:829635,end:829896},{filename:`/libraries/stdlib/genosl/mx_rotate_vector3.osl`,start:829896,end:830966},{filename:`/libraries/stdlib/genosl/mx_surface_unlit.osl`,start:830966,end:831380},{filename:`/libraries/stdlib/genosl/mx_surfacematerial.osl`,start:831380,end:831663},{filename:`/libraries/stdlib/genosl/mx_time_float.osl`,start:831663,end:831841},{filename:`/libraries/stdlib/genosl/mx_transformmatrix_vector2M3.osl`,start:831841,end:832027},{filename:`/libraries/stdlib/genosl/mx_unpremult_color4.osl`,start:832027,end:832131},{filename:`/libraries/stdlib/genosl/mx_worleynoise2d_float.osl`,start:832131,end:832291},{filename:`/libraries/stdlib/genosl/mx_worleynoise2d_vector2.osl`,start:832291,end:832457},{filename:`/libraries/stdlib/genosl/mx_worleynoise2d_vector3.osl`,start:832457,end:832622},{filename:`/libraries/stdlib/genosl/mx_worleynoise3d_float.osl`,start:832622,end:832781},{filename:`/libraries/stdlib/genosl/mx_worleynoise3d_vector2.osl`,start:832781,end:832946},{filename:`/libraries/stdlib/genosl/mx_worleynoise3d_vector3.osl`,start:832946,end:833110},{filename:`/libraries/stdlib/genosl/stdlib_genosl_impl.mtlx`,start:833110,end:910156},{filename:`/libraries/stdlib/stdlib_defs.mtlx`,start:910156,end:1187365},{filename:`/libraries/stdlib/stdlib_ng.mtlx`,start:1187365,end:1510011},{filename:`/libraries/targets/essl.mtlx`,start:1510011,end:1510473},{filename:`/libraries/targets/genglsl.mtlx`,start:1510473,end:1510926},{filename:`/libraries/targets/genmdl.mtlx`,start:1510926,end:1511378},{filename:`/libraries/targets/genmsl.mtlx`,start:1511378,end:1511848},{filename:`/libraries/targets/genosl.mtlx`,start:1511848,end:1512300}],remote_package_size:1512300})})();var u=Object.assign({},r),d=`./this.program`,f=(e,t)=>{throw t},p=``;function m(e){return r.locateFile?r.locateFile(e,p):p+e}var h,g;if(l){var _=de();de(),p=__dirname+`/`,g=e=>(e=xe(e)?new URL(e):e,_.readFileSync(e)),h=async(e,t=!0)=>(e=xe(e)?new URL(e):e,_.readFileSync(e,t?void 0:`utf8`)),!r.thisProgram&&process.argv.length>1&&(d=process.argv[1].replace(/\\/g,`/`)),process.argv.slice(2),f=(e,t)=>{throw process.exitCode=e,t}}else (s||c)&&(c?p=self.location.href:typeof document<`u`&&document.currentScript&&(p=document.currentScript.src),e&&(p=e),p=p.startsWith(`blob:`)?``:p.substr(0,p.replace(/[?#].*/,``).lastIndexOf(`/`)+1),c&&(g=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),h=async e=>{if(xe(e))return new Promise((t,n)=>{var r=new XMLHttpRequest;r.open(`GET`,e,!0),r.responseType=`arraybuffer`,r.onload=()=>{if(r.status==200||r.status==0&&r.response){t(r.response);return}n(r.status)},r.onerror=n,r.send(null)});var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)});var v=r.print||console.log.bind(console),y=r.printErr||console.error.bind(console);Object.assign(r,u),u=null,r.arguments&&r.arguments,r.thisProgram&&(d=r.thisProgram);var b=r.wasmBinary,x,ee=!1,S,C,w,T,te,E,D,ne,re;function ie(){var e=x.buffer;r.HEAP8=C=new Int8Array(e),r.HEAP16=T=new Int16Array(e),r.HEAPU8=w=new Uint8Array(e),r.HEAPU16=te=new Uint16Array(e),r.HEAP32=E=new Int32Array(e),r.HEAPU32=D=new Uint32Array(e),r.HEAPF32=ne=new Float32Array(e),r.HEAPF64=re=new Float64Array(e)}var ae=[],oe=[],se=[];function ce(){if(r.preRun)for(typeof r.preRun==`function`&&(r.preRun=[r.preRun]);r.preRun.length;)fe(r.preRun.shift());Me(ae)}function le(){!r.noFSInit&&!z.initialized&&z.init(),z.ignorePermissions=!1,ot.init(),Me(oe)}function ue(){if(r.postRun)for(typeof r.postRun==`function`&&(r.postRun=[r.postRun]);r.postRun.length;)O(r.postRun.shift());Me(se)}function fe(e){ae.unshift(e)}function pe(e){oe.unshift(e)}function O(e){se.unshift(e)}var k=0,me=null;function he(e){return e}function ge(e){k++,r.monitorRunDependencies?.(k)}function _e(e){if(k--,r.monitorRunDependencies?.(k),k==0&&me){var t=me;me=null,t()}}function ve(e){r.onAbort?.(e),e=`Aborted(`+e+`)`,y(e),ee=!0,e+=`. Build with -sASSERTIONS for more info.`;var t=new WebAssembly.RuntimeError(e);throw a(t),t}var ye=`data:application/octet-stream;base64,`,be=e=>e.startsWith(ye),xe=e=>e.startsWith(`file://`);function Se(){var e=`JsMaterialXGenShader.wasm`;return be(e)?e:m(e)}var Ce;function we(e){if(e==Ce&&b)return new Uint8Array(b);if(g)return g(e);throw`both async and sync fetching of the wasm failed`}async function Te(e){if(!b)try{var t=await h(e);return new Uint8Array(t)}catch{}return we(e)}async function Ee(e,t){try{var n=await Te(e);return await WebAssembly.instantiate(n,t)}catch(e){y(`failed to asynchronously prepare wasm: ${e}`),ve(e)}}async function De(e,t,n){if(!e&&typeof WebAssembly.instantiateStreaming==`function`&&!be(t)&&!xe(t)&&!l&&typeof fetch==`function`)try{var r=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(r,n)}catch(e){y(`wasm streaming compile failed: ${e}`),y(`falling back to ArrayBuffer instantiation`)}return Ee(t,n)}function Oe(){return{a:yi}}async function ke(){function e(e,t){return Z=e.exports,x=Z._a,ie(),yn=Z.cb,pe(Z.$a),_e(`wasm-instantiate`),Z}ge(`wasm-instantiate`);function t(t){e(t.instance)}var n=Oe();if(r.instantiateWasm)try{return r.instantiateWasm(n,e)}catch(e){y(`Module.instantiateWasm callback failed with error: ${e}`),a(e)}Ce??=Se();try{var i=await De(b,Ce,n);return t(i),i}catch(e){a(e);return}}var A,j,Ae={189968:()=>{r.TreeIterator.prototype[Symbol.iterator]=function(){return this}},190052:()=>{r.GraphIterator.prototype[Symbol.iterator]=function(){return this}},190137:()=>{r.InheritanceIterator.prototype[Symbol.iterator]=function(){return this}}};class je{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var Me=e=>{for(;e.length>0;)e.shift()(r)},Ne=r.noExitRuntime||!0,M=e=>Ti(e),N=()=>Ei(),Pe=typeof TextDecoder<`u`?new TextDecoder:void 0,Fe=(e,t=0,n=NaN)=>{for(var r=t+n,i=t;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&Pe)return Pe.decode(e.subarray(t,i));for(var a=``;t<i;){var o=e[t++];if(!(o&128)){a+=String.fromCharCode(o);continue}var s=e[t++]&63;if((o&224)==192){a+=String.fromCharCode((o&31)<<6|s);continue}var c=e[t++]&63;if(o=(o&240)==224?(o&15)<<12|s<<6|c:(o&7)<<18|s<<12|c<<6|e[t++]&63,o<65536)a+=String.fromCharCode(o);else{var l=o-65536;a+=String.fromCharCode(55296|l>>10,56320|l&1023)}}return a},Ie=(e,t)=>e?Fe(w,e,t):``,P=(e,t,n,r)=>ve(`Assertion failed: ${Ie(e)}, at: `+[t?Ie(t):`unknown filename`,n,r?Ie(r):`unknown function`]),Le=[],Re=0,ze=e=>{var t=new Ve(e);return t.get_caught()||(t.set_caught(!0),Re--),t.set_rethrown(!1),Le.push(t),Oi(e),Ai(e)},F=0,Be=()=>{$(0,0);var e=Le.pop();Di(e.excPtr),F=0};class Ve{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){D[this.ptr+4>>2]=e}get_type(){return D[this.ptr+4>>2]}set_destructor(e){D[this.ptr+8>>2]=e}get_destructor(){return D[this.ptr+8>>2]}set_caught(e){e=+!!e,C[this.ptr+12]=e}get_caught(){return C[this.ptr+12]!=0}set_rethrown(e){e=+!!e,C[this.ptr+13]=e}get_rethrown(){return C[this.ptr+13]!=0}init(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}set_adjusted_ptr(e){D[this.ptr+16>>2]=e}get_adjusted_ptr(){return D[this.ptr+16>>2]}}var He=e=>{throw F||=e,F},Ue=e=>wi(e),We=e=>{var t=F;if(!t)return Ue(0),0;var n=new Ve(t);n.set_adjusted_ptr(t);var r=n.get_type();if(!r)return Ue(0),t;for(var i of e){if(i===0||i===r)break;var a=n.ptr+16;if(ki(i,r,a))return Ue(i),t}return Ue(r),t},Ge=()=>We([]),Ke=e=>We([e]),qe=(e,t)=>We([e,t]),Je=()=>{var e=Le.pop();e||ve(`no exception to throw`);var t=e.excPtr;throw e.get_rethrown()||(Le.push(e),e.set_rethrown(!0),e.set_caught(!1),Re++),F=t,F},I=(e,t,n)=>{throw new Ve(e).init(t,n),F=e,Re++,F},Ye=()=>Re,Xe=()=>{var e=E[B.varargs>>2];return B.varargs+=4,e},Ze=Xe,L={isAbs:e=>e.charAt(0)===`/`,splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},normalize:e=>{var t=L.isAbs(e),n=e.substr(-1)===`/`;return e=L.normalizeArray(e.split(`/`).filter(e=>!!e),!t).join(`/`),!e&&!t&&(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},dirname:e=>{var t=L.splitPath(e),n=t[0],r=t[1];return!n&&!r?`.`:(r&&=r.substr(0,r.length-1),n+r)},basename:e=>{if(e===`/`)return`/`;e=L.normalize(e),e=e.replace(/\/$/,``);var t=e.lastIndexOf(`/`);return t===-1?e:e.substr(t+1)},join:(...e)=>L.normalize(e.join(`/`)),join2:(e,t)=>L.normalize(e+`/`+t)},Qe=()=>{if(typeof crypto==`object`&&typeof crypto.getRandomValues==`function`)return e=>crypto.getRandomValues(e);if(l)try{var e=de();if(e.randomFillSync)return t=>e.randomFillSync(t);var t=e.randomBytes;return e=>(e.set(t(e.byteLength)),e)}catch{}ve(`initRandomDevice`)},$e=e=>($e=Qe())(e),et={resolve:(...e)=>{for(var t=``,n=!1,r=e.length-1;r>=-1&&!n;r--){var i=r>=0?e[r]:z.cwd();if(typeof i!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!i)return``;t=i+`/`+t,n=L.isAbs(i)}return t=L.normalizeArray(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},relative:(e,t)=>{e=et.resolve(e).substr(1),t=et.resolve(t).substr(1);function n(e){for(var t=0;t<e.length&&e[t]===``;t++);for(var n=e.length-1;n>=0&&e[n]===``;n--);return t>n?[]:e.slice(t,n-t+1)}for(var r=n(e.split(`/`)),i=n(t.split(`/`)),a=Math.min(r.length,i.length),o=a,s=0;s<a;s++)if(r[s]!==i[s]){o=s;break}for(var c=[],s=o;s<r.length;s++)c.push(`..`);return c=c.concat(i.slice(o)),c.join(`/`)}},tt=[],nt=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},rt=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343){var c=e.charCodeAt(++o);s=65536+((s&1023)<<10)|c&1023}if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63}}return t[n]=0,n-i};function it(e,t,n){var r=n>0?n:nt(e)+1,i=Array(r),a=rt(e,i,0,i.length);return t&&(i.length=a),i}var at=()=>{if(!tt.length){var e=null;if(l){var t=256,n=Buffer.alloc(t),r=0,i=process.stdin.fd;try{r=_.readSync(i,n,0,t)}catch(e){if(e.toString().includes(`EOF`))r=0;else throw e}r>0&&(e=n.slice(0,r).toString(`utf-8`))}else typeof window<`u`&&typeof window.prompt==`function`&&(e=window.prompt(`Input: `),e!==null&&(e+=`
`));if(!e)return null;tt=it(e,!0)}return tt.shift()},ot={ttys:[],init(){},shutdown(){},register(e,t){ot.ttys[e]={input:[],output:[],ops:t},z.registerDevice(e,ot.stream_ops)},stream_ops:{open(e){var t=ot.ttys[e.node.rdev];if(!t)throw new z.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,n,r,i){if(!e.tty||!e.tty.ops.get_char)throw new z.ErrnoError(60);for(var a=0,o=0;o<r;o++){var s;try{s=e.tty.ops.get_char(e.tty)}catch{throw new z.ErrnoError(29)}if(s===void 0&&a===0)throw new z.ErrnoError(6);if(s==null)break;a++,t[n+o]=s}return a&&(e.node.atime=Date.now()),a},write(e,t,n,r,i){if(!e.tty||!e.tty.ops.put_char)throw new z.ErrnoError(60);try{for(var a=0;a<r;a++)e.tty.ops.put_char(e.tty,t[n+a])}catch{throw new z.ErrnoError(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){return at()},put_char(e,t){t===null||t===10?(v(Fe(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(v(Fe(e.output)),e.output=[])},ioctl_tcgets(e){return{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(e,t,n){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,t){t===null||t===10?(y(Fe(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(y(Fe(e.output)),e.output=[])}}},st=(e,t)=>Math.ceil(e/t)*t,ct=e=>{ve()},R={ops_table:null,mount(e){return R.createNode(null,`/`,16895,0)},createNode(e,t,n,r){if(z.isBlkdev(n)||z.isFIFO(n))throw new z.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:z.chrdev_stream_ops}};var i=z.createNode(e,t,n,r);return z.isDir(i.mode)?(i.node_ops=R.ops_table.dir.node,i.stream_ops=R.ops_table.dir.stream,i.contents={}):z.isFile(i.mode)?(i.node_ops=R.ops_table.file.node,i.stream_ops=R.ops_table.file.stream,i.usedBytes=0,i.contents=null):z.isLink(i.mode)?(i.node_ops=R.ops_table.link.node,i.stream_ops=R.ops_table.link.stream):z.isChrdev(i.mode)&&(i.node_ops=R.ops_table.chrdev.node,i.stream_ops=R.ops_table.chrdev.stream),i.atime=i.mtime=i.ctime=Date.now(),e&&(e.contents[t]=i,e.atime=e.mtime=e.ctime=i.atime),i},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage(e,t){var n=e.contents?e.contents.length:0;if(!(n>=t)){t=Math.max(t,n*(n<1024*1024?2:1.125)>>>0),n!=0&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{var n=e.contents;e.contents=new Uint8Array(t),n&&e.contents.set(n.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=z.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,z.isDir(e.mode)?t.size=4096:z.isFile(e.mode)?t.size=e.usedBytes:z.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.atime),t.mtime=new Date(e.mtime),t.ctime=new Date(e.ctime),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){for(let n of[`mode`,`atime`,`mtime`,`ctime`])t[n]&&(e[n]=t[n]);t.size!==void 0&&R.resizeFileStorage(e,t.size)},lookup(e,t){throw R.doesNotExistError},mknod(e,t,n,r){return R.createNode(e,t,n,r)},rename(e,t,n){var r;try{r=z.lookupNode(t,n)}catch{}if(r){if(z.isDir(e.mode))for(var i in r.contents)throw new z.ErrnoError(55);z.hashRemoveNode(r)}delete e.parent.contents[e.name],t.contents[n]=e,e.name=n,t.ctime=t.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,t){delete e.contents[t],e.ctime=e.mtime=Date.now()},rmdir(e,t){for(var n in z.lookupNode(e,t).contents)throw new z.ErrnoError(55);delete e.contents[t],e.ctime=e.mtime=Date.now()},readdir(e){return[`.`,`..`,...Object.keys(e.contents)]},symlink(e,t,n){var r=R.createNode(e,t,41471,0);return r.link=n,r},readlink(e){if(!z.isLink(e.mode))throw new z.ErrnoError(28);return e.link}},stream_ops:{read(e,t,n,r,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-i,r);if(o>8&&a.subarray)t.set(a.subarray(i,i+o),n);else for(var s=0;s<o;s++)t[n+s]=a[i+s];return o},write(e,t,n,r,i,a){if(t.buffer===C.buffer&&(a=!1),!r)return 0;var o=e.node;if(o.mtime=o.ctime=Date.now(),t.subarray&&(!o.contents||o.contents.subarray)){if(a)return o.contents=t.subarray(n,n+r),o.usedBytes=r,r;if(o.usedBytes===0&&i===0)return o.contents=t.slice(n,n+r),o.usedBytes=r,r;if(i+r<=o.usedBytes)return o.contents.set(t.subarray(n,n+r),i),r}if(R.expandFileStorage(o,i+r),o.contents.subarray&&t.subarray)o.contents.set(t.subarray(n,n+r),i);else for(var s=0;s<r;s++)o.contents[i+s]=t[n+s];return o.usedBytes=Math.max(o.usedBytes,i+r),r},llseek(e,t,n){var r=t;if(n===1?r+=e.position:n===2&&z.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new z.ErrnoError(28);return r},allocate(e,t,n){R.expandFileStorage(e.node,t+n),e.node.usedBytes=Math.max(e.node.usedBytes,t+n)},mmap(e,t,n,r,i){if(!z.isFile(e.node.mode))throw new z.ErrnoError(43);var a,o,s=e.node.contents;if(!(i&2)&&s&&s.buffer===C.buffer)o=!1,a=s.byteOffset;else{if(o=!0,a=ct(t),!a)throw new z.ErrnoError(48);s&&((n>0||n+t<s.length)&&(s=s.subarray?s.subarray(n,n+t):Array.prototype.slice.call(s,n,n+t)),C.set(s,a))}return{ptr:a,allocated:o}},msync(e,t,n,r,i){return R.stream_ops.write(e,t,0,r,n,!1),0}}},lt=async e=>{var t=await h(e);return new Uint8Array(t)},ut=(e,t,n,r,i,a)=>{z.createDataFile(e,t,n,r,i,a)},dt=r.preloadPlugins||[],ft=(e,t,n,r)=>{typeof Browser<`u`&&Browser.init();var i=!1;return dt.forEach(a=>{i||a.canHandle(t)&&(a.handle(e,t,n,r),i=!0)}),i},pt=(e,t,n,r,i,a,o,s,c,l)=>{var u=t?et.resolve(L.join2(e,t)):e,d=he(`cp ${u}`);function f(n){function f(n){l?.(),s||ut(e,t,n,r,i,c),a?.(),_e(d)}ft(n,u,f,()=>{o?.(),_e(d)})||f(n)}ge(d),typeof n==`string`?lt(n).then(f,o):f(n)},mt=e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(t===void 0)throw Error(`Unknown file open mode: ${e}`);return t},ht=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},z={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:`/`,initialized:!1,ignorePermissions:!0,ErrnoError:class{name=`ErrnoError`;constructor(e){this.errno=e}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!=1}get isWrite(){return(this.flags&2097155)!=0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,t,n,r){e||=this,this.parent=e,this.mount=e.mount,this.id=z.nextInode++,this.name=t,this.mode=n,this.rdev=r,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return z.isDir(this.mode)}get isDevice(){return z.isChrdev(this.mode)}},lookupPath(e,t={}){if(!e)return{path:``,node:null};t.follow_mount??=!0,L.isAbs(e)||(e=z.cwd()+`/`+e);linkloop:for(var n=0;n<40;n++){for(var r=e.split(`/`).filter(e=>!!e&&e!==`.`),i=z.root,a=`/`,o=0;o<r.length;o++){var s=o===r.length-1;if(s&&t.parent)break;if(r[o]===`..`){a=L.dirname(a),i=i.parent;continue}a=L.join2(a,r[o]);try{i=z.lookupNode(i,r[o])}catch(e){if(e?.errno===44&&s&&t.noent_okay)return{path:a};throw e}if(z.isMountpoint(i)&&(!s||t.follow_mount)&&(i=i.mounted.root),z.isLink(i.mode)&&(!s||t.follow)){if(!i.node_ops.readlink)throw new z.ErrnoError(52);var c=i.node_ops.readlink(i);L.isAbs(c)||(c=L.dirname(a)+`/`+c),e=c+`/`+r.slice(o+1).join(`/`);continue linkloop}}return{path:a,node:i}}throw new z.ErrnoError(32)},getPath(e){for(var t;;){if(z.isRoot(e)){var n=e.mount.mountpoint;return t?n[n.length-1]===`/`?n+t:`${n}/${t}`:n}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var n=0,r=0;r<t.length;r++)n=(n<<5)-n+t.charCodeAt(r)|0;return(e+n>>>0)%z.nameTable.length},hashAddNode(e){var t=z.hashName(e.parent.id,e.name);e.name_next=z.nameTable[t],z.nameTable[t]=e},hashRemoveNode(e){var t=z.hashName(e.parent.id,e.name);if(z.nameTable[t]===e)z.nameTable[t]=e.name_next;else for(var n=z.nameTable[t];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode(e,t){var n=z.mayLookup(e);if(n)throw new z.ErrnoError(n);for(var r=z.hashName(e.id,t),i=z.nameTable[r];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return z.lookup(e,t)},createNode(e,t,n,r){var i=new z.FSNode(e,t,n,r);return z.hashAddNode(i),i},destroyNode(e){z.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)==32768},isDir(e){return(e&61440)==16384},isLink(e){return(e&61440)==40960},isChrdev(e){return(e&61440)==8192},isBlkdev(e){return(e&61440)==24576},isFIFO(e){return(e&61440)==4096},isSocket(e){return(e&49152)==49152},flagsToPermissionString(e){var t=[`r`,`w`,`rw`][e&3];return e&512&&(t+=`w`),t},nodePermissions(e,t){return z.ignorePermissions?0:t.includes(`r`)&&!(e.mode&292)||t.includes(`w`)&&!(e.mode&146)||t.includes(`x`)&&!(e.mode&73)?2:0},mayLookup(e){return z.isDir(e.mode)?z.nodePermissions(e,`x`)||(e.node_ops.lookup?0:2):54},mayCreate(e,t){if(!z.isDir(e.mode))return 54;try{return z.lookupNode(e,t),20}catch{}return z.nodePermissions(e,`wx`)},mayDelete(e,t,n){var r;try{r=z.lookupNode(e,t)}catch(e){return e.errno}var i=z.nodePermissions(e,`wx`);if(i)return i;if(n){if(!z.isDir(r.mode))return 54;if(z.isRoot(r)||z.getPath(r)===z.cwd())return 10}else if(z.isDir(r.mode))return 31;return 0},mayOpen(e,t){return e?z.isLink(e.mode)?32:z.isDir(e.mode)&&(z.flagsToPermissionString(t)!==`r`||t&512)?31:z.nodePermissions(e,z.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=z.MAX_OPEN_FDS;e++)if(!z.streams[e])return e;throw new z.ErrnoError(33)},getStreamChecked(e){var t=z.getStream(e);if(!t)throw new z.ErrnoError(8);return t},getStream:e=>z.streams[e],createStream(e,t=-1){return e=Object.assign(new z.FSStream,e),t==-1&&(t=z.nextfd()),e.fd=t,z.streams[t]=e,e},closeStream(e){z.streams[e]=null},dupStream(e,t=-1){var n=z.createStream(e,t);return n.stream_ops?.dup?.(n),n},chrdev_stream_ops:{open(e){e.stream_ops=z.getDevice(e.node.rdev).stream_ops,e.stream_ops.open?.(e)},llseek(){throw new z.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,t)=>e<<8|t,registerDevice(e,t){z.devices[e]={stream_ops:t}},getDevice:e=>z.devices[e],getMounts(e){for(var t=[],n=[e];n.length;){var r=n.pop();t.push(r),n.push(...r.mounts)}return t},syncfs(e,t){typeof e==`function`&&(t=e,e=!1),z.syncFSRequests++,z.syncFSRequests>1&&y(`warning: ${z.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=z.getMounts(z.root.mount),r=0;function i(e){return z.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++r>=n.length&&i(null)}n.forEach(t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)})},mount(e,t,n){var r=n===`/`,i=!n,a;if(r&&z.root)throw new z.ErrnoError(10);if(!r&&!i){var o=z.lookupPath(n,{follow_mount:!1});if(n=o.path,a=o.node,z.isMountpoint(a))throw new z.ErrnoError(10);if(!z.isDir(a.mode))throw new z.ErrnoError(54)}var s={type:e,opts:t,mountpoint:n,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,r?z.root=c:a&&(a.mounted=s,a.mount&&a.mount.mounts.push(s)),c},unmount(e){var t=z.lookupPath(e,{follow_mount:!1});if(!z.isMountpoint(t.node))throw new z.ErrnoError(28);var n=t.node,r=n.mounted,i=z.getMounts(r);Object.keys(z.nameTable).forEach(e=>{for(var t=z.nameTable[e];t;){var n=t.name_next;i.includes(t.mount)&&z.destroyNode(t),t=n}}),n.mounted=null;var a=n.mount.mounts.indexOf(r);n.mount.mounts.splice(a,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,n){var r=z.lookupPath(e,{parent:!0}).node,i=L.basename(e);if(!i||i===`.`||i===`..`)throw new z.ErrnoError(28);var a=z.mayCreate(r,i);if(a)throw new z.ErrnoError(a);if(!r.node_ops.mknod)throw new z.ErrnoError(63);return r.node_ops.mknod(r,i,t,n)},statfs(e){var t={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:z.nextInode,ffree:z.nextInode-1,fsid:42,flags:2,namelen:255},n=z.lookupPath(e,{follow:!0}).node;return n?.node_ops.statfs&&Object.assign(t,n.node_ops.statfs(n.mount.opts.root)),t},create(e,t=438){return t&=4095,t|=32768,z.mknod(e,t,0)},mkdir(e,t=511){return t&=1023,t|=16384,z.mknod(e,t,0)},mkdirTree(e,t){for(var n=e.split(`/`),r=``,i=0;i<n.length;++i)if(n[i]){r+=`/`+n[i];try{z.mkdir(r,t)}catch(e){if(e.errno!=20)throw e}}},mkdev(e,t,n){return n===void 0&&(n=t,t=438),t|=8192,z.mknod(e,t,n)},symlink(e,t){if(!et.resolve(e))throw new z.ErrnoError(44);var n=z.lookupPath(t,{parent:!0}).node;if(!n)throw new z.ErrnoError(44);var r=L.basename(t),i=z.mayCreate(n,r);if(i)throw new z.ErrnoError(i);if(!n.node_ops.symlink)throw new z.ErrnoError(63);return n.node_ops.symlink(n,r,e)},rename(e,t){var n=L.dirname(e),r=L.dirname(t),i=L.basename(e),a=L.basename(t),o=z.lookupPath(e,{parent:!0}),s=o.node,c;if(o=z.lookupPath(t,{parent:!0}),c=o.node,!s||!c)throw new z.ErrnoError(44);if(s.mount!==c.mount)throw new z.ErrnoError(75);var l=z.lookupNode(s,i),u=et.relative(e,r);if(u.charAt(0)!==`.`)throw new z.ErrnoError(28);if(u=et.relative(t,n),u.charAt(0)!==`.`)throw new z.ErrnoError(55);var d;try{d=z.lookupNode(c,a)}catch{}if(l!==d){var f=z.isDir(l.mode),p=z.mayDelete(s,i,f);if(p||(p=d?z.mayDelete(c,a,f):z.mayCreate(c,a),p))throw new z.ErrnoError(p);if(!s.node_ops.rename)throw new z.ErrnoError(63);if(z.isMountpoint(l)||d&&z.isMountpoint(d))throw new z.ErrnoError(10);if(c!==s&&(p=z.nodePermissions(s,`w`),p))throw new z.ErrnoError(p);z.hashRemoveNode(l);try{s.node_ops.rename(l,c,a),l.parent=c}catch(e){throw e}finally{z.hashAddNode(l)}}},rmdir(e){var t=z.lookupPath(e,{parent:!0}).node,n=L.basename(e),r=z.lookupNode(t,n),i=z.mayDelete(t,n,!0);if(i)throw new z.ErrnoError(i);if(!t.node_ops.rmdir)throw new z.ErrnoError(63);if(z.isMountpoint(r))throw new z.ErrnoError(10);t.node_ops.rmdir(t,n),z.destroyNode(r)},readdir(e){var t=z.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new z.ErrnoError(54);return t.node_ops.readdir(t)},unlink(e){var t=z.lookupPath(e,{parent:!0}).node;if(!t)throw new z.ErrnoError(44);var n=L.basename(e),r=z.lookupNode(t,n),i=z.mayDelete(t,n,!1);if(i)throw new z.ErrnoError(i);if(!t.node_ops.unlink)throw new z.ErrnoError(63);if(z.isMountpoint(r))throw new z.ErrnoError(10);t.node_ops.unlink(t,n),z.destroyNode(r)},readlink(e){var t=z.lookupPath(e).node;if(!t)throw new z.ErrnoError(44);if(!t.node_ops.readlink)throw new z.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,t){var n=z.lookupPath(e,{follow:!t}).node;if(!n)throw new z.ErrnoError(44);if(!n.node_ops.getattr)throw new z.ErrnoError(63);return n.node_ops.getattr(n)},lstat(e){return z.stat(e,!0)},chmod(e,t,n){var r=typeof e==`string`?z.lookupPath(e,{follow:!n}).node:e;if(!r.node_ops.setattr)throw new z.ErrnoError(63);r.node_ops.setattr(r,{mode:t&4095|r.mode&-4096,ctime:Date.now()})},lchmod(e,t){z.chmod(e,t,!0)},fchmod(e,t){var n=z.getStreamChecked(e);z.chmod(n.node,t)},chown(e,t,n,r){var i=typeof e==`string`?z.lookupPath(e,{follow:!r}).node:e;if(!i.node_ops.setattr)throw new z.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown(e,t,n){z.chown(e,t,n,!0)},fchown(e,t,n){var r=z.getStreamChecked(e);z.chown(r.node,t,n)},truncate(e,t){if(t<0)throw new z.ErrnoError(28);var n=typeof e==`string`?z.lookupPath(e,{follow:!0}).node:e;if(!n.node_ops.setattr)throw new z.ErrnoError(63);if(z.isDir(n.mode))throw new z.ErrnoError(31);if(!z.isFile(n.mode))throw new z.ErrnoError(28);var r=z.nodePermissions(n,`w`);if(r)throw new z.ErrnoError(r);n.node_ops.setattr(n,{size:t,timestamp:Date.now()})},ftruncate(e,t){var n=z.getStreamChecked(e);if(!(n.flags&2097155))throw new z.ErrnoError(28);z.truncate(n.node,t)},utime(e,t,n){var r=z.lookupPath(e,{follow:!0}).node;r.node_ops.setattr(r,{atime:t,mtime:n})},open(e,t,n=438){if(e===``)throw new z.ErrnoError(44);t=typeof t==`string`?mt(t):t,n=t&64?n&4095|32768:0;var i;if(typeof e==`object`)i=e;else{var a=z.lookupPath(e,{follow:!(t&131072),noent_okay:!0});i=a.node,e=a.path}var o=!1;if(t&64)if(i){if(t&128)throw new z.ErrnoError(20)}else i=z.mknod(e,n,0),o=!0;if(!i)throw new z.ErrnoError(44);if(z.isChrdev(i.mode)&&(t&=-513),t&65536&&!z.isDir(i.mode))throw new z.ErrnoError(54);if(!o){var s=z.mayOpen(i,t);if(s)throw new z.ErrnoError(s)}t&512&&!o&&z.truncate(i,0),t&=-131713;var c=z.createStream({node:i,path:z.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return c.stream_ops.open&&c.stream_ops.open(c),r.logReadFiles&&!(t&1)&&(e in z.readFiles||(z.readFiles[e]=1)),c},close(e){if(z.isClosed(e))throw new z.ErrnoError(8);e.getdents&&=null;try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{z.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,n){if(z.isClosed(e))throw new z.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new z.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new z.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,n),e.ungotten=[],e.position},read(e,t,n,r,i){if(r<0||i<0)throw new z.ErrnoError(28);if(z.isClosed(e)||(e.flags&2097155)==1)throw new z.ErrnoError(8);if(z.isDir(e.node.mode))throw new z.ErrnoError(31);if(!e.stream_ops.read)throw new z.ErrnoError(28);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new z.ErrnoError(70);var o=e.stream_ops.read(e,t,n,r,i);return a||(e.position+=o),o},write(e,t,n,r,i,a){if(r<0||i<0)throw new z.ErrnoError(28);if(z.isClosed(e)||!(e.flags&2097155))throw new z.ErrnoError(8);if(z.isDir(e.node.mode))throw new z.ErrnoError(31);if(!e.stream_ops.write)throw new z.ErrnoError(28);e.seekable&&e.flags&1024&&z.llseek(e,0,2);var o=i!==void 0;if(!o)i=e.position;else if(!e.seekable)throw new z.ErrnoError(70);var s=e.stream_ops.write(e,t,n,r,i,a);return o||(e.position+=s),s},allocate(e,t,n){if(z.isClosed(e))throw new z.ErrnoError(8);if(t<0||n<=0)throw new z.ErrnoError(28);if(!(e.flags&2097155))throw new z.ErrnoError(8);if(!z.isFile(e.node.mode)&&!z.isDir(e.node.mode))throw new z.ErrnoError(43);if(!e.stream_ops.allocate)throw new z.ErrnoError(138);e.stream_ops.allocate(e,t,n)},mmap(e,t,n,r,i){if(r&2&&!(i&2)&&(e.flags&2097155)!=2||(e.flags&2097155)==1)throw new z.ErrnoError(2);if(!e.stream_ops.mmap)throw new z.ErrnoError(43);if(!t)throw new z.ErrnoError(28);return e.stream_ops.mmap(e,t,n,r,i)},msync(e,t,n,r,i){return e.stream_ops.msync?e.stream_ops.msync(e,t,n,r,i):0},ioctl(e,t,n){if(!e.stream_ops.ioctl)throw new z.ErrnoError(59);return e.stream_ops.ioctl(e,t,n)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||`binary`,t.encoding!==`utf8`&&t.encoding!==`binary`)throw Error(`Invalid encoding type "${t.encoding}"`);var n,r=z.open(e,t.flags),i=z.stat(e).size,a=new Uint8Array(i);return z.read(r,a,0,i,0),t.encoding===`utf8`?n=Fe(a):t.encoding===`binary`&&(n=a),z.close(r),n},writeFile(e,t,n={}){n.flags=n.flags||577;var r=z.open(e,n.flags,n.mode);if(typeof t==`string`){var i=new Uint8Array(nt(t)+1),a=rt(t,i,0,i.length);z.write(r,i,0,a,void 0,n.canOwn)}else if(ArrayBuffer.isView(t))z.write(r,t,0,t.byteLength,void 0,n.canOwn);else throw Error(`Unsupported data type`);z.close(r)},cwd:()=>z.currentPath,chdir(e){var t=z.lookupPath(e,{follow:!0});if(t.node===null)throw new z.ErrnoError(44);if(!z.isDir(t.node.mode))throw new z.ErrnoError(54);var n=z.nodePermissions(t.node,`x`);if(n)throw new z.ErrnoError(n);z.currentPath=t.path},createDefaultDirectories(){z.mkdir(`/tmp`),z.mkdir(`/home`),z.mkdir(`/home/web_user`)},createDefaultDevices(){z.mkdir(`/dev`),z.registerDevice(z.makedev(1,3),{read:()=>0,write:(e,t,n,r,i)=>r,llseek:()=>0}),z.mkdev(`/dev/null`,z.makedev(1,3)),ot.register(z.makedev(5,0),ot.default_tty_ops),ot.register(z.makedev(6,0),ot.default_tty1_ops),z.mkdev(`/dev/tty`,z.makedev(5,0)),z.mkdev(`/dev/tty1`,z.makedev(6,0));var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(t=$e(e).byteLength),e[--t]);z.createDevice(`/dev`,`random`,n),z.createDevice(`/dev`,`urandom`,n),z.mkdir(`/dev/shm`),z.mkdir(`/dev/shm/tmp`)},createSpecialDirectories(){z.mkdir(`/proc`);var e=z.mkdir(`/proc/self`);z.mkdir(`/proc/self/fd`),z.mount({mount(){var t=z.createNode(e,`fd`,16895,73);return t.stream_ops={llseek:R.stream_ops.llseek},t.node_ops={lookup(e,t){var n=+t,r=z.getStreamChecked(n),i={parent:null,mount:{mountpoint:`fake`},node_ops:{readlink:()=>r.path},id:n+1};return i.parent=i,i},readdir(){return Array.from(z.streams.entries()).filter(([e,t])=>t).map(([e,t])=>e.toString())}},t}},{},`/proc/self/fd`)},createStandardStreams(e,t,n){e?z.createDevice(`/dev`,`stdin`,e):z.symlink(`/dev/tty`,`/dev/stdin`),t?z.createDevice(`/dev`,`stdout`,null,t):z.symlink(`/dev/tty`,`/dev/stdout`),n?z.createDevice(`/dev`,`stderr`,null,n):z.symlink(`/dev/tty1`,`/dev/stderr`),z.open(`/dev/stdin`,0),z.open(`/dev/stdout`,1),z.open(`/dev/stderr`,1)},staticInit(){z.nameTable=Array(4096),z.mount(R,{},`/`),z.createDefaultDirectories(),z.createDefaultDevices(),z.createSpecialDirectories(),z.filesystems={MEMFS:R}},init(e,t,n){z.initialized=!0,e??=r.stdin,t??=r.stdout,n??=r.stderr,z.createStandardStreams(e,t,n)},quit(){z.initialized=!1;for(var e=0;e<z.streams.length;e++){var t=z.streams[e];t&&z.close(t)}},findObject(e,t){var n=z.analyzePath(e,t);return n.exists?n.object:null},analyzePath(e,t){try{var n=z.lookupPath(e,{follow:!t});e=n.path}catch{}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=z.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=L.basename(e),n=z.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot=n.path===`/`}catch(e){r.error=e.errno}return r},createPath(e,t,n,r){e=typeof e==`string`?e:z.getPath(e);for(var i=t.split(`/`).reverse();i.length;){var a=i.pop();if(a){var o=L.join2(e,a);try{z.mkdir(o)}catch{}e=o}}return o},createFile(e,t,n,r,i){var a=L.join2(typeof e==`string`?e:z.getPath(e),t),o=ht(r,i);return z.create(a,o)},createDataFile(e,t,n,r,i,a){var o=t;e&&(e=typeof e==`string`?e:z.getPath(e),o=t?L.join2(e,t):e);var s=ht(r,i),c=z.create(o,s);if(n){if(typeof n==`string`){for(var l=Array(n.length),u=0,d=n.length;u<d;++u)l[u]=n.charCodeAt(u);n=l}z.chmod(c,s|146);var f=z.open(c,577);z.write(f,n,0,n.length,0,a),z.close(f),z.chmod(c,s)}},createDevice(e,t,n,r){var i=L.join2(typeof e==`string`?e:z.getPath(e),t),a=ht(!!n,!!r);z.createDevice.major??=64;var o=z.makedev(z.createDevice.major++,0);return z.registerDevice(o,{open(e){e.seekable=!1},close(e){r?.buffer?.length&&r(10)},read(e,t,r,i,a){for(var o=0,s=0;s<i;s++){var c;try{c=n()}catch{throw new z.ErrnoError(29)}if(c===void 0&&o===0)throw new z.ErrnoError(6);if(c==null)break;o++,t[r+s]=c}return o&&(e.node.atime=Date.now()),o},write(e,t,n,i,a){for(var o=0;o<i;o++)try{r(t[n+o])}catch{throw new z.ErrnoError(29)}return i&&(e.node.mtime=e.node.ctime=Date.now()),o}}),z.mkdev(i,a,o)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest<`u`)throw 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{e.contents=g(e.url),e.usedBytes=e.contents.length}catch{throw new z.ErrnoError(29)}},createLazyFile(e,t,n,r,i){class a{lengthKnown=!1;chunks=[];get(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,n=e/this.chunkSize|0;return this.getter(n)[t]}}setDataGetter(e){this.getter=e}cacheLength(){var e=new XMLHttpRequest;if(e.open(`HEAD`,n,!1),e.send(null),!(e.status>=200&&e.status<300||e.status===304))throw Error(`Couldn't load `+n+`. Status: `+e.status);var t=Number(e.getResponseHeader(`Content-length`)),r,i=(r=e.getResponseHeader(`Accept-Ranges`))&&r===`bytes`,a=(r=e.getResponseHeader(`Content-Encoding`))&&r===`gzip`,o=1024*1024;i||(o=t);var s=(e,r)=>{if(e>r)throw Error(`invalid range (`+e+`, `+r+`) or no bytes requested!`);if(r>t-1)throw Error(`only `+t+` bytes available! programmer error!`);var i=new XMLHttpRequest;if(i.open(`GET`,n,!1),t!==o&&i.setRequestHeader(`Range`,`bytes=`+e+`-`+r),i.responseType=`arraybuffer`,i.overrideMimeType&&i.overrideMimeType(`text/plain; charset=x-user-defined`),i.send(null),!(i.status>=200&&i.status<300||i.status===304))throw Error(`Couldn't load `+n+`. Status: `+i.status);return i.response===void 0?it(i.responseText||``,!0):new Uint8Array(i.response||[])},c=this;c.setDataGetter(e=>{var n=e*o,r=(e+1)*o-1;if(r=Math.min(r,t-1),c.chunks[e]===void 0&&(c.chunks[e]=s(n,r)),c.chunks[e]===void 0)throw Error(`doXHR failed!`);return c.chunks[e]}),(a||!t)&&(o=t=1,t=this.getter(0).length,o=t,v(`LazyFiles on gzip forces download of the whole file when length is accessed`)),this._length=t,this._chunkSize=o,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<`u`){if(!c)throw`Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc`;var o={isDevice:!1,contents:new a}}else var o={isDevice:!1,url:n};var s=z.createFile(e,t,o,r,i);o.contents?s.contents=o.contents:o.url&&(s.contents=null,s.url=o.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var l={};Object.keys(s.stream_ops).forEach(e=>{var t=s.stream_ops[e];l[e]=(...e)=>(z.forceLoadFile(s),t(...e))});function u(e,t,n,r,i){var a=e.node.contents;if(i>=a.length)return 0;var o=Math.min(a.length-i,r);if(a.slice)for(var s=0;s<o;s++)t[n+s]=a[i+s];else for(var s=0;s<o;s++)t[n+s]=a.get(i+s);return o}return l.read=(e,t,n,r,i)=>(z.forceLoadFile(s),u(e,t,n,r,i)),l.mmap=(e,t,n,r,i)=>{z.forceLoadFile(s);var a=ct(t);if(!a)throw new z.ErrnoError(48);return u(e,C,a,t,n),{ptr:a,allocated:!0}},s.stream_ops=l,s}},B={DEFAULT_POLLMASK:5,calculateAt(e,t,n){if(L.isAbs(t))return t;var r=e===-100?z.cwd():B.getStreamFromFD(e).path;if(t.length==0){if(!n)throw new z.ErrnoError(44);return r}return r+`/`+t},doStat(e,t,n){var r=e(t);E[n>>2]=r.dev,E[n+4>>2]=r.mode,D[n+8>>2]=r.nlink,E[n+12>>2]=r.uid,E[n+16>>2]=r.gid,E[n+20>>2]=r.rdev,j=[r.size>>>0,(A=r.size,+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[n+24>>2]=j[0],E[n+28>>2]=j[1],E[n+32>>2]=4096,E[n+36>>2]=r.blocks;var i=r.atime.getTime(),a=r.mtime.getTime(),o=r.ctime.getTime();return j=[Math.floor(i/1e3)>>>0,(A=Math.floor(i/1e3),+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[n+40>>2]=j[0],E[n+44>>2]=j[1],D[n+48>>2]=i%1e3*1e3*1e3,j=[Math.floor(a/1e3)>>>0,(A=Math.floor(a/1e3),+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[n+56>>2]=j[0],E[n+60>>2]=j[1],D[n+64>>2]=a%1e3*1e3*1e3,j=[Math.floor(o/1e3)>>>0,(A=Math.floor(o/1e3),+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[n+72>>2]=j[0],E[n+76>>2]=j[1],D[n+80>>2]=o%1e3*1e3*1e3,j=[r.ino>>>0,(A=r.ino,+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[n+88>>2]=j[0],E[n+92>>2]=j[1],0},doMsync(e,t,n,r,i){if(!z.isFile(t.node.mode))throw new z.ErrnoError(43);if(r&2)return 0;var a=w.slice(e,e+n);z.msync(t,a,i,n,r)},getStreamFromFD(e){return z.getStreamChecked(e)},varargs:void 0,getStr(e){return Ie(e)}};function gt(e,t,n){B.varargs=n;try{var r=B.getStreamFromFD(e);switch(t){case 0:var i=Xe();if(i<0)return-28;for(;z.streams[i];)i++;return z.dupStream(r,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:var i=Xe();return r.flags|=i,0;case 12:var i=Ze(),a=0;return T[i+a>>1]=2,0;case 13:case 14:return 0}return-28}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var _t=(e,t,n)=>rt(e,w,t,n);function vt(e,t,n){try{var r=B.getStreamFromFD(e);r.getdents||=z.readdir(r.path);for(var i=280,a=0,o=z.llseek(r,0,1),s=Math.floor(o/i),c=Math.min(r.getdents.length,s+Math.floor(n/i)),l=s;l<c;l++){var u,d,f=r.getdents[l];if(f===`.`)u=r.node.id,d=4;else if(f===`..`)u=z.lookupPath(r.path,{parent:!0}).node.id,d=4;else{var p;try{p=z.lookupNode(r.node,f)}catch(e){if(e?.errno===28)continue;throw e}u=p.id,d=z.isChrdev(p.mode)?2:z.isDir(p.mode)?4:z.isLink(p.mode)?10:8}j=[u>>>0,(A=u,+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[t+a>>2]=j[0],E[t+a+4>>2]=j[1],j=[(l+1)*i>>>0,(A=(l+1)*i,+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[t+a+8>>2]=j[0],E[t+a+12>>2]=j[1],T[t+a+16>>1]=280,C[t+a+18]=d,_t(f,t+a+19,256),a+=i}return z.llseek(r,l*i,0),a}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function yt(e,t,n){B.varargs=n;try{var r=B.getStreamFromFD(e);switch(t){case 21509:return r.tty?0:-59;case 21505:if(!r.tty)return-59;if(r.tty.ops.ioctl_tcgets){var i=r.tty.ops.ioctl_tcgets(r),a=Ze();E[a>>2]=i.c_iflag||0,E[a+4>>2]=i.c_oflag||0,E[a+8>>2]=i.c_cflag||0,E[a+12>>2]=i.c_lflag||0;for(var o=0;o<32;o++)C[a+o+17]=i.c_cc[o]||0;return 0}return 0;case 21510:case 21511:case 21512:return r.tty?0:-59;case 21506:case 21507:case 21508:if(!r.tty)return-59;if(r.tty.ops.ioctl_tcsets){for(var a=Ze(),s=E[a>>2],c=E[a+4>>2],l=E[a+8>>2],u=E[a+12>>2],d=[],o=0;o<32;o++)d.push(C[a+o+17]);return r.tty.ops.ioctl_tcsets(r.tty,t,{c_iflag:s,c_oflag:c,c_cflag:l,c_lflag:u,c_cc:d})}return 0;case 21519:if(!r.tty)return-59;var a=Ze();return E[a>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:var a=Ze();return z.ioctl(r,t,a);case 21523:if(!r.tty)return-59;if(r.tty.ops.ioctl_tiocgwinsz){var f=r.tty.ops.ioctl_tiocgwinsz(r.tty),a=Ze();T[a>>1]=f[0],T[a+2>>1]=f[1]}return 0;case 21524:return r.tty?0:-59;case 21515:return r.tty?0:-59;default:return-28}}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function bt(e,t,n,r){B.varargs=r;try{t=B.getStr(t),t=B.calculateAt(e,t);var i=r?Xe():0;return z.open(t,n,i).fd}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function xt(e,t){try{return e=B.getStr(e),B.doStat(z.stat,e,t)}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var St=()=>ve(``),Ct={},wt=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function Tt(e){return this.fromWireType(D[e>>2])}var Et={},Dt={},Ot={},kt,At=e=>{throw new kt(e)},V=(e,t,n)=>{e.forEach(e=>Ot[e]=t);function r(t){var r=n(t);r.length!==e.length&&At(`Mismatched type converter count`);for(var i=0;i<e.length;++i)W(e[i],r[i])}var i=Array(t.length),a=[],o=0;t.forEach((e,t)=>{Dt.hasOwnProperty(e)?i[t]=Dt[e]:(a.push(e),Et.hasOwnProperty(e)||(Et[e]=[]),Et[e].push(()=>{i[t]=Dt[e],++o,o===a.length&&r(i)}))}),a.length===0&&r(i)},jt=e=>{var t=Ct[e];delete Ct[e];var n=t.elements,r=n.length,i=n.map(e=>e.getterReturnType).concat(n.map(e=>e.setterArgumentType)),a=t.rawConstructor,o=t.rawDestructor;V([e],i,e=>(n.forEach((t,n)=>{var i=e[n],a=t.getter,o=t.getterContext,s=e[n+r],c=t.setter,l=t.setterContext;t.read=e=>i.fromWireType(a(o,e)),t.write=(e,t)=>{var n=[];c(l,e,s.toWireType(n,t)),wt(n)}}),[{name:t.name,fromWireType:e=>{for(var t=Array(r),i=0;i<r;++i)t[i]=n[i].read(e);return o(e),t},toWireType:(e,i)=>{if(r!==i.length)throw TypeError(`Incorrect number of tuple elements for ${t.name}: expected=${r}, actual=${i.length}`);for(var s=a(),c=0;c<r;++c)n[c].write(s,i[c]);return e!==null&&e.push(o,s),s},argPackAdvance:G,readValueFromPointer:Tt,destructorFunction:o}]))},Mt=(e,t,n,r,i)=>{},Nt=()=>{for(var e=Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);Pt=e},Pt,H=e=>{for(var t=``,n=e;w[n];)t+=Pt[w[n++]];return t},Ft,U=e=>{throw new Ft(e)};function It(e,t,n={}){var r=t.name;if(e||U(`type "${r}" must have a positive integer typeid pointer`),Dt.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;U(`Cannot register type '${r}' twice`)}if(Dt[e]=t,delete Ot[e],Et.hasOwnProperty(e)){var i=Et[e];delete Et[e],i.forEach(e=>e())}}function W(e,t,n={}){return It(e,t,n)}var G=8,Lt=(e,t,n,r)=>{t=H(t),W(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},argPackAdvance:G,readValueFromPointer:function(e){return this.fromWireType(w[e])},destructorFunction:null})},Rt=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),zt=e=>{function t(e){return e.$$.ptrType.registeredClass.name}U(t(e)+` instance already deleted`)},Bt=!1,Vt=e=>{},Ht=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Ut=e=>{--e.count.value,e.count.value===0&&Ht(e)},Wt=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var r=Wt(e,t,n.baseClass);return r===null?null:n.downcast(r)},Gt={},Kt={},qt=(e,t)=>{for(t===void 0&&U(`ptr should not be undefined`);e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},Jt=(e,t)=>(t=qt(e,t),Kt[t]),Yt=(e,t)=>((!t.ptrType||!t.ptr)&&At(`makeClassHandle requires ptr and ptrType`),!!t.smartPtrType!=!!t.smartPtr&&At(`Both smartPtrType and smartPtr must be specified`),t.count={value:1},Zt(Object.create(e,{$$:{value:t,writable:!0}})));function Xt(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=Jt(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var r=n.clone();return this.destructor(e),r}function i(){return this.isSmartPointer?Yt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Yt(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=Gt[this.registeredClass.getActualType(t)];if(!a)return i.call(this);var o=this.isConst?a.constPointerType:a.pointerType,s=Wt(t,this.registeredClass,o.registeredClass);return s===null?i.call(this):this.isSmartPointer?Yt(o.registeredClass.instancePrototype,{ptrType:o,ptr:s,smartPtrType:this,smartPtr:e}):Yt(o.registeredClass.instancePrototype,{ptrType:o,ptr:s})}var Zt=e=>typeof FinalizationRegistry>`u`?(Zt=e=>e,e):(Bt=new FinalizationRegistry(e=>{Ut(e.$$)}),Zt=e=>{var t=e.$$;if(t.smartPtr){var n={$$:t};Bt.register(e,n,e)}return e},Vt=e=>Bt.unregister(e),Zt(e)),Qt=[],$t=()=>{for(;Qt.length;){var e=Qt.pop();e.$$.deleteScheduled=!1,e.delete()}},en,tn=()=>{Object.assign(nn.prototype,{isAliasOf(e){if(!(this instanceof nn)||!(e instanceof nn))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var r=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;r.baseClass;)i=r.upcast(i),r=r.baseClass;return t===r&&n===i},clone(){if(this.$$.ptr||zt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Zt(Object.create(Object.getPrototypeOf(this),{$$:{value:Rt(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||zt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&U(`Object already scheduled for deletion`),Vt(this),Ut(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||zt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&U(`Object already scheduled for deletion`),Qt.push(this),Qt.length===1&&en&&en($t),this.$$.deleteScheduled=!0,this}})};function nn(){}var rn=(e,t)=>Object.defineProperty(t,`name`,{value:e}),an=(e,t,n)=>{if(e[t].overloadTable===void 0){var r=e[t];e[t]=function(...r){return e[t].overloadTable.hasOwnProperty(r.length)||U(`Function '${n}' called with an invalid number of arguments (${r.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[r.length].apply(this,r)},e[t].overloadTable=[],e[t].overloadTable[r.argCount]=r}},on=(e,t,n)=>{r.hasOwnProperty(e)?((n===void 0||r[e].overloadTable!==void 0&&r[e].overloadTable[n]!==void 0)&&U(`Cannot register public name '${e}' twice`),an(r,e,e),r[e].overloadTable.hasOwnProperty(n)&&U(`Cannot register multiple overloads of a function with the same number of arguments (${n})!`),r[e].overloadTable[n]=t):(r[e]=t,r[e].argCount=n)},sn=48,cn=57,ln=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,`$`);var t=e.charCodeAt(0);return t>=sn&&t<=cn?`_${e}`:e};function un(e,t,n,r,i,a,o,s){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=r,this.baseClass=i,this.getActualType=a,this.upcast=o,this.downcast=s,this.pureVirtualFunctions=[]}var dn=(e,t,n)=>{for(;t!==n;)t.upcast||U(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e};function fn(e,t){if(t===null)return this.isReference&&U(`null is not a valid ${this.name}`),0;t.$$||U(`Cannot pass "${Yn(t)}" as a ${this.name}`),t.$$.ptr||U(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass;return dn(t.$$.ptr,n,this.registeredClass)}function pn(e,t){var n;if(t===null)return this.isReference&&U(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&U(`Cannot pass "${Yn(t)}" as a ${this.name}`),t.$$.ptr||U(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&U(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;if(n=dn(t.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&U(`Passing raw pointer to smart pointer is illegal`),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:U(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var i=t.clone();n=this.rawShare(n,X.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:U(`Unsupporting sharing policy`)}return n}function mn(e,t){if(t===null)return this.isReference&&U(`null is not a valid ${this.name}`),0;t.$$||U(`Cannot pass "${Yn(t)}" as a ${this.name}`),t.$$.ptr||U(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&U(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;return dn(t.$$.ptr,n,this.registeredClass)}var hn=()=>{Object.assign(gn.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},argPackAdvance:G,readValueFromPointer:Tt,fromWireType:Xt})};function gn(e,t,n,r,i,a,o,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=o,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,!i&&t.baseClass===void 0?r?(this.toWireType=fn,this.destructorFunction=null):(this.toWireType=mn,this.destructorFunction=null):this.toWireType=pn}var _n=(e,t,n)=>{r.hasOwnProperty(e)||At(`Replacing nonexistent public symbol`),r[e].overloadTable!==void 0&&n!==void 0?r[e].overloadTable[n]=t:(r[e]=t,r[e].argCount=n)},vn=(e,t,n)=>{e=e.replace(/p/g,`i`);var i=r[`dynCall_`+e];return i(t,...n)},yn,K=e=>yn.get(e),bn=(e,t,n=[])=>e.includes(`j`)?vn(e,t,n):K(t)(...n),xn=(e,t)=>(...n)=>bn(e,t,n),q=(e,t)=>{e=H(e);function n(){return e.includes(`j`)?xn(e,t):K(t)}var r=n();return typeof r!=`function`&&U(`unknown function pointer with signature ${e}: ${t}`),r},Sn=(e,t)=>{var n=rn(t,function(e){this.name=t,this.message=e;var n=Error(e).stack;n!==void 0&&(this.stack=this.toString()+`
`+n.replace(/^Error(:[^\n]*)?\n/,``))});return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},n},Cn,wn=e=>{var t=xi(e),n=H(t);return Q(t),n},J=(e,t)=>{var n=[],r={};function i(e){if(!r[e]&&!Dt[e]){if(Ot[e]){Ot[e].forEach(i);return}n.push(e),r[e]=!0}}throw t.forEach(i),new Cn(`${e}: `+n.map(wn).join([`, `]))},Tn=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{u=H(u),a=q(i,a),s&&=q(o,s),l&&=q(c,l),f=q(d,f);var p=ln(u);on(p,function(){J(`Cannot construct ${u} due to unbound types`,[r])}),V([e,t,n],r?[r]:[],t=>{t=t[0];var n,i;r?(n=t.registeredClass,i=n.instancePrototype):i=nn.prototype;var o=rn(u,function(...e){if(Object.getPrototypeOf(this)!==c)throw new Ft(`Use 'new' to construct `+u);if(d.constructor_body===void 0)throw new Ft(u+` has no accessible constructor`);var t=d.constructor_body[e.length];if(t===void 0)throw new Ft(`Tried to invoke ctor of ${u} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return t.apply(this,e)}),c=Object.create(i,{constructor:{value:o}});o.prototype=c;var d=new un(u,o,c,f,n,a,s,l);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var m=new gn(u,d,!0,!1,!1),h=new gn(u+`*`,d,!1,!1,!1),g=new gn(u+` const*`,d,!1,!0,!1);return Gt[e]={pointerType:h,constPointerType:g},_n(p,o),[m,h,g]})};function En(e){for(var t=1;t<e.length;++t)if(e[t]!==null&&e[t].destructorFunction===void 0)return!0;return!1}function Dn(e,t){if(!(e instanceof Function))throw TypeError(`new_ called with constructor type ${typeof e} which is not a function`);var n=rn(e.name||`unknownFunctionName`,function(){});n.prototype=e.prototype;var r=new n,i=e.apply(r,t);return i instanceof Object?i:r}function On(e,t,n,r){var i=En(e),a=e.length-2,o=[],s=[`fn`];t&&s.push(`thisWired`);for(var c=0;c<a;++c)o.push(`arg${c}`),s.push(`arg${c}Wired`);o=o.join(`,`),s=s.join(`,`);var l=`return function (${o}) {\n`;i&&(l+=`var destructors = [];
`);var u=i?`destructors`:`null`,d=[`humanName`,`throwBindingError`,`invoker`,`fn`,`runDestructors`,`retType`,`classParam`];t&&(l+=`var thisWired = classParam['toWireType'](${u}, this);\n`);for(var c=0;c<a;++c)l+=`var arg${c}Wired = argType${c}['toWireType'](${u}, arg${c});\n`,d.push(`argType${c}`);if(l+=(n||r?`var rv = `:``)+`invoker(${s});\n`,i)l+=`runDestructors(destructors);
`;else for(var c=t?1:2;c<e.length;++c){var f=c===1?`thisWired`:`arg`+(c-2)+`Wired`;e[c].destructorFunction!==null&&(l+=`${f}_dtor(${f});\n`,d.push(`${f}_dtor`))}return n&&(l+=`var ret = retType['fromWireType'](rv);
return ret;
`),l+=`}
`,[d,l]}function kn(e,t,n,r,i,a){var o=t.length;o<2&&U(`argTypes array size mismatch! Must at least get return value and 'this' types!`);for(var s=t[1]!==null&&n!==null,c=En(t),l=t[0].name!==`void`,u=[e,U,r,i,wt,t[0],t[1]],d=0;d<o-2;++d)u.push(t[d+2]);if(!c)for(var d=s?1:2;d<t.length;++d)t[d].destructorFunction!==null&&u.push(t[d].destructorFunction);let[f,p]=On(t,s,l,a);return f.push(p),rn(e,Dn(Function,f)(...u))}var An=(e,t)=>{for(var n=[],r=0;r<e;r++)n.push(D[t+r*4>>2]);return n},jn=e=>{e=e.trim();let t=e.indexOf(`(`);return t===-1?e:e.substr(0,t)},Mn=(e,t,n,r,i,a,o,s,c)=>{var l=An(n,r);t=H(t),t=jn(t),a=q(i,a),V([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;function i(){J(`Cannot call ${r} due to unbound types`,l)}t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]);var c=e.registeredClass.constructor;return c[t]===void 0?(i.argCount=n-1,c[t]=i):(an(c,t,r),c[t].overloadTable[n-1]=i),V([],l,i=>{var l=kn(r,[i[0],null].concat(i.slice(1)),null,a,o,s);if(c[t].overloadTable===void 0?(l.argCount=n-1,c[t]=l):c[t].overloadTable[n-1]=l,e.registeredClass.__derivedClasses)for(let n of e.registeredClass.__derivedClasses)n.constructor.hasOwnProperty(t)||(n.constructor[t]=l);return[]}),[]})},Nn=(e,t,n)=>(e instanceof Object||U(`${n} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||U(`${n} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||U(`cannot call emscripten binding method ${n} on deleted object`),dn(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)),Pn=(e,t,n,r,i,a,o,s)=>{t=H(t),a=q(i,a),V([],[e],e=>{e=e[0];var i=`${e.name}.${t}`,c={get(){J(`Cannot access ${i} due to unbound types`,[n])},enumerable:!0,configurable:!0};return s?c.set=()=>{J(`Cannot access ${i} due to unbound types`,[n])}:c.set=e=>{U(`${i} is a read-only property`)},Object.defineProperty(e.registeredClass.constructor,t,c),V([],[n],n=>{n=n[0];var i={get(){return n.fromWireType(a(r))},enumerable:!0};return s&&(s=q(o,s),i.set=e=>{var t=[];s(r,n.toWireType(t,e)),wt(t)}),Object.defineProperty(e.registeredClass.constructor,t,i),[]}),[]})},Fn=(e,t,n,r,i,a)=>{var o=An(t,n);i=q(r,i),V([],[e],e=>{e=e[0];var n=`constructor ${e.name}`;if(e.registeredClass.constructor_body===void 0&&(e.registeredClass.constructor_body=[]),e.registeredClass.constructor_body[t-1]!==void 0)throw new Ft(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{J(`Cannot construct ${e.name} due to unbound types`,o)},V([],o,r=>(r.splice(1,0,null),e.registeredClass.constructor_body[t-1]=kn(n,r,null,i,a),[])),[]})},In=(e,t,n,r,i,a,o,s,c,l)=>{var u=An(n,r);t=H(t),t=jn(t),a=q(i,a),V([],[e],e=>{e=e[0];var r=`${e.name}.${t}`;t.startsWith(`@@`)&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);function i(){J(`Cannot call ${r} due to unbound types`,u)}var l=e.registeredClass.instancePrototype,d=l[t];return d===void 0||d.overloadTable===void 0&&d.className!==e.name&&d.argCount===n-2?(i.argCount=n-2,i.className=e.name,l[t]=i):(an(l,t,r),l[t].overloadTable[n-2]=i),V([],u,i=>{var s=kn(r,i,e,a,o,c);return l[t].overloadTable===void 0?(s.argCount=n-2,l[t]=s):l[t].overloadTable[n-2]=s,[]}),[]})},Ln=(e,t,n,r,i,a,o,s,c,l)=>{t=H(t),i=q(r,i),V([],[e],e=>{e=e[0];var r=`${e.name}.${t}`,u={get(){J(`Cannot access ${r} due to unbound types`,[n,o])},enumerable:!0,configurable:!0};return c?u.set=()=>J(`Cannot access ${r} due to unbound types`,[n,o]):u.set=e=>U(r+` is a read-only property`),Object.defineProperty(e.registeredClass.instancePrototype,t,u),V([],c?[n,o]:[n],n=>{var o=n[0],u={get(){var t=Nn(this,e,r+` getter`);return o.fromWireType(i(a,t))},enumerable:!0};if(c){c=q(s,c);var d=n[1];u.set=function(t){var n=Nn(this,e,r+` setter`),i=[];c(l,n,d.toWireType(i,t)),wt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]}),[]})},Rn=(e,t,n)=>{e=H(e),V([],[t],t=>(t=t[0],r[e]=t.fromWireType(n),[]))},zn=[],Y=[],Bn=e=>{e>9&&--Y[e+1]===0&&(Y[e]=void 0,zn.push(e))},Vn=()=>Y.length/2-5-zn.length,Hn=()=>{Y.push(0,1,void 0,1,null,1,!0,1,!1,1),r.count_emval_handles=Vn},X={toValue:e=>(e||U(`Cannot use deleted val. handle = `+e),Y[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=zn.pop()||Y.length;return Y[t]=e,Y[t+1]=1,t}}}},Un={name:`emscripten::val`,fromWireType:e=>{var t=X.toValue(e);return Bn(e),t},toWireType:(e,t)=>X.toHandle(t),argPackAdvance:G,readValueFromPointer:Tt,destructorFunction:null},Wn=e=>W(e,Un),Gn=(e,t,n)=>{switch(t){case 1:return n?function(e){return this.fromWireType(C[e])}:function(e){return this.fromWireType(w[e])};case 2:return n?function(e){return this.fromWireType(T[e>>1])}:function(e){return this.fromWireType(te[e>>1])};case 4:return n?function(e){return this.fromWireType(E[e>>2])}:function(e){return this.fromWireType(D[e>>2])};default:throw TypeError(`invalid integer width (${t}): ${e}`)}},Kn=(e,t,n,r)=>{t=H(t);function i(){}i.values={},W(e,{name:t,constructor:i,fromWireType:function(e){return this.constructor.values[e]},toWireType:(e,t)=>t.value,argPackAdvance:G,readValueFromPointer:Gn(t,n,r),destructorFunction:null}),on(t,i)},qn=(e,t)=>{var n=Dt[e];return n===void 0&&U(`${t} has unknown type ${wn(e)}`),n},Jn=(e,t,n)=>{var r=qn(e,`enum`);t=H(t);var i=r.constructor,a=Object.create(r.constructor.prototype,{value:{value:n},constructor:{value:rn(`${r.name}_${t}`,function(){})}});i.values[n]=a,i[t]=a},Yn=e=>{if(e===null)return`null`;var t=typeof e;return t===`object`||t===`array`||t===`function`?e.toString():``+e},Xn=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType(ne[e>>2])};case 8:return function(e){return this.fromWireType(re[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},Zn=(e,t,n)=>{t=H(t),W(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,argPackAdvance:G,readValueFromPointer:Xn(t,n),destructorFunction:null})},Qn=(e,t,n,r,i,a,o,s)=>{var c=An(t,n);e=H(e),e=jn(e),i=q(r,i),on(e,function(){J(`Cannot call ${e} due to unbound types`,c)},t-1),V([],c,n=>{var r=[n[0],null].concat(n.slice(1));return _n(e,kn(e,r,null,i,a,o),t-1),[]})},$n=(e,t,n)=>{switch(t){case 1:return n?e=>C[e]:e=>w[e];case 2:return n?e=>T[e>>1]:e=>te[e>>1];case 4:return n?e=>E[e>>2]:e=>D[e>>2];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},er=(e,t,n,r,i)=>{t=H(t),i===-1&&(i=4294967295);var a=e=>e;if(r===0){var o=32-8*n;a=e=>e<<o>>>o}var s=t.includes(`unsigned`);W(e,{name:t,fromWireType:a,toWireType:s?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:G,readValueFromPointer:$n(t,n,r!==0),destructorFunction:null})},tr=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function i(e){var t=D[e>>2],n=D[e+4>>2];return new r(C.buffer,n,t)}n=H(n),W(e,{name:n,fromWireType:i,argPackAdvance:G,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},nr=(e,t,n,r,i,a,o,s,c,l,u,d)=>{n=H(n),a=q(i,a),s=q(o,s),l=q(c,l),d=q(u,d),V([e],[t],e=>(e=e[0],[new gn(n,e.registeredClass,!1,!1,!0,e,r,a,s,l,d)]))},rr=(e,t)=>{t=H(t);var n=!0;W(e,{name:t,fromWireType(e){var t=D[e>>2],r=e+4,i;if(n)for(var a=r,o=0;o<=t;++o){var s=r+o;if(o==t||w[s]==0){var c=s-a,l=Ie(a,c);i===void 0?i=l:(i+=`\0`,i+=l),a=s+1}}else{for(var u=Array(t),o=0;o<t;++o)u[o]=String.fromCharCode(w[r+o]);i=u.join(``)}return Q(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||U(`Cannot pass non-string to std::string`),r=n&&i?nt(t):t.length;var a=Si(4+r+1),o=a+4;if(D[a>>2]=r,n&&i)_t(t,o,r+1);else if(i)for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&(Q(o),U(`String has UTF-16 code units that do not fit in 8 bits`)),w[o+s]=c}else for(var s=0;s<r;++s)w[o+s]=t[s];return e!==null&&e.push(Q,a),a},argPackAdvance:G,readValueFromPointer:Tt,destructorFunction(e){Q(e)}})},ir=typeof TextDecoder<`u`?new TextDecoder(`utf-16le`):void 0,ar=(e,t)=>{for(var n=e,r=n>>1,i=r+t/2;!(r>=i)&&te[r];)++r;if(n=r<<1,n-e>32&&ir)return ir.decode(w.subarray(e,n));for(var a=``,o=0;!(o>=t/2);++o){var s=T[e+o*2>>1];if(s==0)break;a+=String.fromCharCode(s)}return a},or=(e,t,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);T[t>>1]=o,t+=2}return T[t>>1]=0,t-r},sr=e=>e.length*2,cr=(e,t)=>{for(var n=0,r=``;!(n>=t/4);){var i=E[e+n*4>>2];if(i==0)break;if(++n,i>=65536){var a=i-65536;r+=String.fromCharCode(55296|a>>10,56320|a&1023)}else r+=String.fromCharCode(i)}return r},lr=(e,t,n)=>{if(n??=2147483647,n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.charCodeAt(a);if(o>=55296&&o<=57343){var s=e.charCodeAt(++a);o=65536+((o&1023)<<10)|s&1023}if(E[t>>2]=o,t+=4,t+4>i)break}return E[t>>2]=0,t-r},ur=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r>=55296&&r<=57343&&++n,t+=4}return t},dr=(e,t,n)=>{n=H(n);var r,i,a,o;t===2?(r=ar,i=or,o=sr,a=e=>te[e>>1]):t===4&&(r=cr,i=lr,o=ur,a=e=>D[e>>2]),W(e,{name:n,fromWireType:e=>{for(var n=D[e>>2],i,o=e+4,s=0;s<=n;++s){var c=e+4+s*t;if(s==n||a(c)==0){var l=c-o,u=r(o,l);i===void 0?i=u:(i+=`\0`,i+=u),o=c+t}}return Q(e),i},toWireType:(e,r)=>{typeof r!=`string`&&U(`Cannot pass non-string to C++ string type ${n}`);var a=o(r),s=Si(4+a+t);return D[s>>2]=a/t,i(r,s+4,a+t),e!==null&&e.push(Q,s),s},argPackAdvance:G,readValueFromPointer:Tt,destructorFunction(e){Q(e)}})},fr=(e,t,n,r,i,a)=>{Ct[e]={name:H(t),rawConstructor:q(n,r),rawDestructor:q(i,a),elements:[]}},pr=(e,t,n,r,i,a,o,s,c)=>{Ct[e].elements.push({getterReturnType:t,getter:q(n,r),getterContext:i,setterArgumentType:a,setter:q(o,s),setterContext:c})},mr=(e,t)=>{t=H(t),W(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},hr=(e,t,n)=>w.copyWithin(e,t,t+n),gr=0,_r=()=>{Ne=!1,gr=0},vr=(e,t,n)=>{var r=[],i=e.toWireType(r,n);return r.length&&(D[t>>2]=X.toHandle(r)),i},yr=(e,t,n)=>(e=X.toValue(e),t=qn(t,`emval::as`),vr(t,n,e)),br=[],xr=(e,t,n,r)=>(e=br[e],t=X.toValue(t),e(null,t,n,r)),Sr={},Cr=e=>{var t=Sr[e];return t===void 0?H(e):t},wr=(e,t,n,r,i)=>(e=br[e],t=X.toValue(t),n=Cr(n),e(t,t[n],r,i)),Tr=e=>{var t=br.length;return br.push(e),t},Er=(e,t)=>{for(var n=Array(e),r=0;r<e;++r)n[r]=qn(D[t+r*4>>2],`parameter `+r);return n},Dr=(e,t,n)=>{var r=Er(e,t),i=r.shift();e--;var a=`return function (obj, func, destructorsRef, args) {
`,o=0,s=[];n===0&&s.push(`obj`);for(var c=[`retType`],l=[i],u=0;u<e;++u)s.push(`arg`+u),c.push(`argType`+u),l.push(r[u]),a+=` var arg${u} = argType${u}.readValueFromPointer(args${o?`+`+o:``});\n`,o+=r[u].argPackAdvance;a+=` var rv = ${n===1?`new func`:`func.call`}(${s.join(`, `)});\n`,i.isVoid||(c.push(`emval_returnValue`),l.push(vr),a+=` return emval_returnValue(retType, destructorsRef, rv);
`),a+=`};
`,c.push(a);var d=Dn(Function,c)(...l);return Tr(rn(`methodCaller<(${r.map(e=>e.name).join(`, `)}) => ${i.name}>`,d))},Or=(e,t)=>(e=X.toValue(e),t=X.toValue(t),X.toHandle(e[t])),kr=e=>{e>9&&(Y[e+1]+=1)},Ar=()=>X.toHandle([]),jr=e=>{e=X.toValue(e);for(var t=Array(e.length),n=0;n<e.length;n++)t[n]=e[n];return X.toHandle(t)},Mr=e=>X.toHandle(Cr(e)),Nr=()=>X.toHandle({}),Pr=e=>{wt(X.toValue(e)),Bn(e)},Fr=(e,t,n)=>{e=X.toValue(e),t=X.toValue(t),n=X.toValue(n),e[t]=n},Ir=(e,t)=>{e=qn(e,`_emval_take_value`);var n=e.readValueFromPointer(t);return X.toHandle(n)},Lr=e=>(e=X.toValue(e),X.toHandle(typeof e)),Rr={},zr=e=>{if(e instanceof je||e==`unwind`)return S;f(1,e)},Br=()=>Ne||gr>0,Vr=e=>{S=e,Br()||(r.onExit?.(e),ee=!0),f(e,new je(e))},Hr=(e,t)=>{S=e,Vr(e)},Ur=()=>{if(!Br())try{Hr(S)}catch(e){zr(e)}},Wr=e=>{if(!ee)try{e(),Ur()}catch(e){zr(e)}},Gr=()=>performance.now(),Kr=(e,t)=>(Rr[e]&&(clearTimeout(Rr[e].id),delete Rr[e]),t&&(Rr[e]={id:setTimeout(()=>{delete Rr[e],Wr(()=>Ci(e,Gr()))},t),timeout_ms:t}),0),qr=(e,t,n,r)=>{var i=new Date().getFullYear(),a=new Date(i,0,1),o=new Date(i,6,1),s=a.getTimezoneOffset(),c=o.getTimezoneOffset(),l=Math.max(s,c);D[e>>2]=l*60,E[t>>2]=Number(s!=c);var u=e=>{var t=e>=0?`-`:`+`,n=Math.abs(e);return`UTC${t}${String(Math.floor(n/60)).padStart(2,`0`)}${String(n%60).padStart(2,`0`)}`},d=u(s),f=u(c);c<s?(_t(d,n,17),_t(f,r,17)):(_t(d,r,17),_t(f,n,17))},Jr=[],Yr=(e,t)=>{Jr.length=0;for(var n;n=w[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,Jr.push(n==112?D[t>>2]:n==105?E[t>>2]:re[t>>3]),t+=r?8:4}return Jr},Xr=(e,t,n)=>{var r=Yr(t,n);return Ae[e](...r)},Zr=(e,t,n)=>Xr(e,t,n),Qr=()=>2147483648,$r=e=>{var t=(e-x.buffer.byteLength+65535)/65536|0;try{return x.grow(t),ie(),1}catch{}},ei=e=>{var t=w.length;e>>>=0;var n=Qr();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t+33554432/r;if($r(Math.min(n,st(Math.max(e,i),65536))))return!0}return!1},ti={},ni=()=>d||`./this.program`,ri=()=>{if(!ri.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(typeof navigator==`object`&&navigator.languages&&navigator.languages[0]||`C`).replace(`-`,`_`)+`.UTF-8`,_:ni()};for(var t in ti)ti[t]===void 0?delete e[t]:e[t]=ti[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);ri.strings=n}return ri.strings},ii=(e,t)=>{for(var n=0;n<e.length;++n)C[t++]=e.charCodeAt(n);C[t]=0},ai=(e,t)=>{var n=0;return ri().forEach((r,i)=>{var a=t+n;D[e+i*4>>2]=a,ii(r,a),n+=r.length+1}),0},oi=(e,t)=>{var n=ri();D[e>>2]=n.length;var r=0;return n.forEach(e=>r+=e.length+1),D[t>>2]=r,0};function si(e){try{var t=B.getStreamFromFD(e);return z.close(t),0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var ci=(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=D[t>>2],s=D[t+4>>2];t+=8;var c=z.read(e,C,o,s,r);if(c<0)return-1;if(i+=c,c<s)break;r!==void 0&&(r+=c)}return i};function li(e,t,n,r){try{var i=ci(B.getStreamFromFD(e),t,n);return D[r>>2]=i,0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var ui=(e,t)=>t+2097152>>>0<4194305-!!e?(e>>>0)+t*4294967296:NaN;function di(e,t,n,r,i){var a=ui(t,n);try{if(isNaN(a))return 61;var o=B.getStreamFromFD(e);return z.llseek(o,a,r),j=[o.position>>>0,(A=o.position,+Math.abs(A)>=1?A>0?Math.floor(A/4294967296)>>>0:~~+Math.ceil((A-+(~~A>>>0))/4294967296)>>>0:0)],E[i>>2]=j[0],E[i+4>>2]=j[1],o.getdents&&a===0&&r===0&&(o.getdents=null),0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var fi=(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=D[t>>2],s=D[t+4>>2];t+=8;var c=z.write(e,C,o,s,r);if(c<0)return-1;if(i+=c,c<s)break;r!==void 0&&(r+=c)}return i};function pi(e,t,n,r){try{var i=fi(B.getStreamFromFD(e),t,n);return D[r>>2]=i,0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var mi=e=>e,hi=z.createPath,gi=e=>z.unlink(e),_i=z.createLazyFile,vi=z.createDevice;z.createPreloadedFile=pt,z.staticInit(),r.FS_createPath=z.createPath,r.FS_createDataFile=z.createDataFile,r.FS_createPreloadedFile=z.createPreloadedFile,r.FS_unlink=z.unlink,r.FS_createLazyFile=z.createLazyFile,r.FS_createDevice=z.createDevice,R.doesNotExistError=new z.ErrnoError(44),R.doesNotExistError.stack=`<generic error, no stack>`,kt=r.InternalError=class extends Error{constructor(e){super(e),this.name=`InternalError`}},Nt(),Ft=r.BindingError=class extends Error{constructor(e){super(e),this.name=`BindingError`}},tn(),hn(),Cn=r.UnboundTypeError=Sn(Error,`UnboundTypeError`),Hn();var yi={y:P,n:ze,x:Be,a:Ge,f:Ke,Ma:qe,ba:Je,L:I,wa:Ye,d:He,ea:gt,Aa:vt,Fa:yt,fa:bt,za:xt,ua:St,Pa:jt,Xa:Mt,ya:Lt,s:Tn,v:Mn,p:Pn,w:Fn,h:In,F:Ln,R:Rn,Ua:Wn,T:Kn,I:Jn,oa:Zn,B:Qn,O:er,H:tr,q:nr,Za:rr,ca:dr,ma:fr,la:pr,Ha:mr,Ga:hr,sa:_r,X:yr,Ra:xr,ka:wr,Sa:Bn,aa:Dr,Oa:Or,na:kr,D:Ar,Na:jr,Y:Mr,U:Nr,Qa:Pr,Ta:Fr,N:Ir,ja:Lr,ta:Kr,va:qr,$:Zr,xa:ei,Ba:ai,Ca:oi,V:si,Ea:li,Wa:di,Da:pi,Ja:na,S:ia,pa:ha,ia:ta,La:Zi,qa:ma,ha:la,u:Ki,g:Li,Ka:$i,K:Qi,ga:ua,W:aa,b:Vi,i:Ui,o:Bi,da:ga,t:Ji,J:ea,E:sa,G:da,_:_a,Va:ba,l:Yi,j:Gi,Q:Xi,e:zi,Ya:ya,c:Ri,k:Hi,Ia:pa,m:Wi,r:qi,z:oa,A:ca,M:fa,P:ra,Z:va,C:mi,ra:Vr},Z;ke();var bi=()=>(bi=Z.$a)(),xi=e=>(xi=Z.ab)(e),Si=e=>(Si=Z.bb)(e),Q=e=>(Q=Z.db)(e),Ci=(e,t)=>(Ci=Z.eb)(e,t),$=(e,t)=>($=Z.fb)(e,t),wi=e=>(wi=Z.gb)(e),Ti=e=>(Ti=Z.hb)(e),Ei=()=>(Ei=Z.ib)(),Di=e=>(Di=Z.jb)(e),Oi=e=>(Oi=Z.kb)(e),ki=(e,t,n)=>(ki=Z.lb)(e,t,n),Ai=e=>(Ai=Z.mb)(e),ji=r.dynCall_jiji=(e,t,n,i,a)=>(ji=r.dynCall_jiji=Z.nb)(e,t,n,i,a),Mi=r.dynCall_iij=(e,t,n,i)=>(Mi=r.dynCall_iij=Z.ob)(e,t,n,i),Ni=r.dynCall_viijii=(e,t,n,i,a,o,s)=>(Ni=r.dynCall_viijii=Z.pb)(e,t,n,i,a,o,s),Pi=r.dynCall_iiiiij=(e,t,n,i,a,o,s)=>(Pi=r.dynCall_iiiiij=Z.qb)(e,t,n,i,a,o,s),Fi=r.dynCall_iiiiijj=(e,t,n,i,a,o,s,c,l)=>(Fi=r.dynCall_iiiiijj=Z.rb)(e,t,n,i,a,o,s,c,l),Ii=r.dynCall_iiiiiijj=(e,t,n,i,a,o,s,c,l,u)=>(Ii=r.dynCall_iiiiiijj=Z.sb)(e,t,n,i,a,o,s,c,l,u);function Li(e,t){var n=N();try{return K(e)(t)}catch(e){if(M(n),e!==e+0)throw e;$(1,0)}}function Ri(e,t,n,r){var i=N();try{K(e)(t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}function zi(e,t,n){var r=N();try{K(e)(t,n)}catch(e){if(M(r),e!==e+0)throw e;$(1,0)}}function Bi(e,t,n,r,i){var a=N();try{return K(e)(t,n,r,i)}catch(e){if(M(a),e!==e+0)throw e;$(1,0)}}function Vi(e,t,n){var r=N();try{return K(e)(t,n)}catch(e){if(M(r),e!==e+0)throw e;$(1,0)}}function Hi(e,t,n,r,i){var a=N();try{K(e)(t,n,r,i)}catch(e){if(M(a),e!==e+0)throw e;$(1,0)}}function Ui(e,t,n,r){var i=N();try{return K(e)(t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}function Wi(e,t,n,r,i,a){var o=N();try{K(e)(t,n,r,i,a)}catch(e){if(M(o),e!==e+0)throw e;$(1,0)}}function Gi(e,t){var n=N();try{K(e)(t)}catch(e){if(M(n),e!==e+0)throw e;$(1,0)}}function Ki(e){var t=N();try{return K(e)()}catch(e){if(M(t),e!==e+0)throw e;$(1,0)}}function qi(e,t,n,r,i,a,o){var s=N();try{K(e)(t,n,r,i,a,o)}catch(e){if(M(s),e!==e+0)throw e;$(1,0)}}function Ji(e,t,n,r,i,a){var o=N();try{return K(e)(t,n,r,i,a)}catch(e){if(M(o),e!==e+0)throw e;$(1,0)}}function Yi(e){var t=N();try{K(e)()}catch(e){if(M(t),e!==e+0)throw e;$(1,0)}}function Xi(e,t,n){var r=N();try{K(e)(t,n)}catch(e){if(M(r),e!==e+0)throw e;$(1,0)}}function Zi(e,t,n,r,i){var a=N();try{return K(e)(t,n,r,i)}catch(e){if(M(a),e!==e+0)throw e;$(1,0)}}function Qi(e,t,n){var r=N();try{return K(e)(t,n)}catch(e){if(M(r),e!==e+0)throw e;$(1,0)}}function $i(e,t,n){var r=N();try{return K(e)(t,n)}catch(e){if(M(r),e!==e+0)throw e;$(1,0)}}function ea(e,t,n,r,i,a,o){var s=N();try{return K(e)(t,n,r,i,a,o)}catch(e){if(M(s),e!==e+0)throw e;$(1,0)}}function ta(e,t){var n=N();try{return K(e)(t)}catch(e){if(M(n),e!==e+0)throw e;$(1,0)}}function na(e,t){var n=N();try{return K(e)(t)}catch(e){if(M(n),e!==e+0)throw e;$(1,0)}}function ra(e,t,n,r,i,a,o,s,c,l,u){var d=N();try{K(e)(t,n,r,i,a,o,s,c,l,u)}catch(e){if(M(d),e!==e+0)throw e;$(1,0)}}function ia(e,t,n,r){var i=N();try{return K(e)(t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}function aa(e,t,n,r,i){var a=N();try{return K(e)(t,n,r,i)}catch(e){if(M(a),e!==e+0)throw e;$(1,0)}}function oa(e,t,n,r,i,a,o,s){var c=N();try{K(e)(t,n,r,i,a,o,s)}catch(e){if(M(c),e!==e+0)throw e;$(1,0)}}function sa(e,t,n,r,i,a,o,s){var c=N();try{return K(e)(t,n,r,i,a,o,s)}catch(e){if(M(c),e!==e+0)throw e;$(1,0)}}function ca(e,t,n,r,i,a,o,s,c){var l=N();try{K(e)(t,n,r,i,a,o,s,c)}catch(e){if(M(l),e!==e+0)throw e;$(1,0)}}function la(e,t,n,r){var i=N();try{return K(e)(t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}function ua(e,t,n,r){var i=N();try{return K(e)(t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}function da(e,t,n,r,i,a,o,s,c){var l=N();try{return K(e)(t,n,r,i,a,o,s,c)}catch(e){if(M(l),e!==e+0)throw e;$(1,0)}}function fa(e,t,n,r,i,a,o,s,c,l){var u=N();try{K(e)(t,n,r,i,a,o,s,c,l)}catch(e){if(M(u),e!==e+0)throw e;$(1,0)}}function pa(e,t,n,r,i,a,o,s,c,l,u){var d=N();try{K(e)(t,n,r,i,a,o,s,c,l,u)}catch(e){if(M(d),e!==e+0)throw e;$(1,0)}}function ma(e,t,n){var r=N();try{return K(e)(t,n)}catch(e){if(M(r),e!==e+0)throw e;$(1,0)}}function ha(e,t,n,r,i,a){var o=N();try{return K(e)(t,n,r,i,a)}catch(e){if(M(o),e!==e+0)throw e;$(1,0)}}function ga(e,t,n,r,i,a){var o=N();try{return K(e)(t,n,r,i,a)}catch(e){if(M(o),e!==e+0)throw e;$(1,0)}}function _a(e,t,n,r,i,a,o,s,c,l,u,d){var f=N();try{return K(e)(t,n,r,i,a,o,s,c,l,u,d)}catch(e){if(M(f),e!==e+0)throw e;$(1,0)}}function va(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){var g=N();try{K(e)(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h)}catch(e){if(M(g),e!==e+0)throw e;$(1,0)}}function ya(e,t,n,r){var i=N();try{K(e)(t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}function ba(e,t,n,r){var i=N();try{return Mi(e,t,n,r)}catch(e){if(M(i),e!==e+0)throw e;$(1,0)}}r.addRunDependency=ge,r.removeRunDependency=_e,r.FS_createPreloadedFile=pt,r.FS_unlink=gi,r.FS_createPath=hi,r.FS_createDevice=vi,r.FS_createDataFile=ut,r.FS_createLazyFile=_i;var xa;me=function e(){xa||Sa(),xa||(me=e)};function Sa(){if(k>0||(ce(),k>0))return;function e(){xa||(xa=!0,r.calledRun=!0,!ee&&(le(),i(r),r.onRuntimeInitialized?.(),ue()))}r.setStatus?(r.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>r.setStatus(``),1),e()},1)):e()}if(r.preInit)for(typeof r.preInit==`function`&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();Sa();var Ca=[];function wa(e){Ca.push(e)}return r.onRuntimeInitialized=function(){for(var e of Ca)e()},(function(){var e,t,n,i,a=`/`,o,s,c=`;`,l=0,u=99999;function d(e){var t={};return e.filter(function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})}function f(e,t,n=i){var r=t.endsWith(n),a=e.startsWith(n);return r||a?r&&a?t.substring(0,t.length-1)+e:t+e:t+n+e}function p(e,t){var n=0;function r(){var o=f(e,t[n++]);return fetch(o).then(function(o){if(o.status===200)return o.text().then(function(e){var t=new URL(o.url),n=t.pathname.substring(1);return n=n.replace(new RegExp(i,`g`),a),{data:e,filePath:n,fullPath:t.origin+t.pathname}});if(n<t.length)return r();throw Error(`MaterialX file not found: `+e)})}return r()}function m(n,r){var o=0;function s(){var c=f(n,r[o++]);return c=t.resolve(c),new Promise(function(l,u){e.readFile(c,`utf8`,function(e,d){if(e)o<r.length?l(s()):u(Error(`MaterialX file not found: `+n));else{var f=t.parse(c),p=c.substring(f.root.length),m=i===`\\`?`\\\\`:i;p=p.replace(new RegExp(m,`g`),a),l({data:d,filePath:p,fullPath:c})}})})}return s()}function h(e){for(var t=e.concat(c,r.getEnviron(r.MATERIALX_SEARCH_PATH_ENV_VAR)),n=[`.`+i].concat(t.split(c)),a=n.length-1;a;)n[a].trim()===``&&n.splice(a,1),--a;return d(n)}function g(e,n){var l=e;typeof e==`string`&&(l=e.split(c));for(var u=0;u<l.length;++u){var d=l[u];if(s){if(t.isAbsolute(d)){var f=t.parse(d);d=n+a+f.dir.substring(f.root.length)}var p=i===`\\`?`\\\\`:i;d.replace(new RegExp(p,`g`),a)}else if(o){var m=document.createElement(`a`);m.href=d,m.origin+m.pathname+m.search+m.hash===d&&(d=n+m.pathname)}else throw Error(`Unknown environment!`);l[u]=d}return typeof e==`string`?l.join(r.PATH_LIST_SEPARATOR):l}function _(e,t){var n=e.split(c);return g(n,t),n.push(ee(t)),n=d(n),n=n.join(r.PATH_LIST_SEPARATOR),n}function v(e){var t=e.matchAll(/<xi:include href="(.*)"\s*\/>/g),n=[];for(var r of t)n.push(r[1]);return n}function y(e,t){var n;if(o)n=p(e,t);else if(s)n=m(e,t);else throw Error(`Unknown environment!`);return n}function b(e,t,n=!1){n?(t.files||=[],t.files.push(e)):(t.folders||=[],t.folders.splice(0,0,e))}function x(e,t,n,r,i=!0){for(var o=i?e.substring(1,e.lastIndexOf(a)).split(a):e.substring(r.length).split(a),s=r,c=1;c<o.length;++c){s+=a+o[c];var l;try{var u=z.stat(s);l=z.isDir(u.mode)}catch{l=!1}if(!l)try{z.mkdir(s),b(s,n)}catch{throw Error(`Failed to create folder in WASM FS.`)}}if(i)try{z.writeFile(e,t),b(e,n,!0)}catch{throw Error(`Failed to store file in WASM FS.`)}}function ee(e){if(s){var r=n.cwd(),c=t.parse(r),l=e+a+r.substring(c.root.length),u=i===`\\`?`\\\\`:i;return l.replace(new RegExp(u,`g`),a)}else if(o){var r=window.location.pathname;return r=r.substring(0,r.lastIndexOf(i)),f(r,e,a)}else throw Error(`Unknown environment!`)}function S(t,n){if(s)try{e.writeFileSync(t,n)}catch(e){throw Error(`Failed to write file '`+t+`': `+e.message)}else if(o){var r=t.lastIndexOf(i);t=t.substring(r>-1?r+1:0);var a=document.createElement(`a`);a.setAttribute(`href`,`data:text/plain;charset=utf-8,`+encodeURIComponent(n)),a.setAttribute(`download`,t),a.style.display=`none`,document.body.appendChild(a),a.click(),document.body.removeChild(a)}}wa(function(){o=typeof window==`object`,s=typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`,o&&(i=`/`),s&&(e=de(),t=de(),n=de(),i=t.sep);function d(e,t,n,o,s=[],c=``){var d=`/readFromXml`+ l++%u,p=h(n);try{z.mkdir(d)}catch{throw Error(`Failed to create folder in WASM FS.`)}var m=[];(!o||o.readXIncludes)&&(m=v(t));var b={files:[],folders:[]},S=ee(d),C=S+`/ChosenToHopefullyNotClashWithAnyOtherFile123`;if(c){var w=i===`\\`?`\\\\`:i;C=c.replace(new RegExp(w,`g`),a),C=f(C,d,a),x(S,null,b,d,!1)}x(C,t,b,d);function T(e,t,n){var r=[Promise.resolve()];for(var o of t){var s=e.slice(),c=n.slice(),l=y(o,c).then(function(e){if(s.includes(e.fullPath))throw Error(`Cycle detected!
`+s.join(`
-> `)+`
-> `+e.fullPath);s.push(e.fullPath);var t=e.fullPath.lastIndexOf(i),n=e.fullPath.substring(0,t>-1?t:0);c.includes(n)||c.splice(0,0,n);var r=v(e.data),o=f(e.filePath,d,a);return b.files.includes(o)||x(o,e.data,b,d),T(s,r,c)});r.push(l)}return Promise.all(r)}return T(s,m,p).then(function(){var t=_(n,d);z.chdir(S);try{var i=r.getEnviron(r.MATERIALX_SEARCH_PATH_ENV_VAR);if(i){var a=g(i,d);r.setEnviron(r.MATERIALX_SEARCH_PATH_ENV_VAR,a)}r._readFromXmlFile(e,C,t,o),i&&r.setEnviron(r.MATERIALX_SEARCH_PATH_ENV_VAR,i)}catch(e){throw Error(`Failed to read MaterialX files from WASM FS: `+r.getExceptionMessage(e))}try{for(var s of b.files)z.unlink(s);z.chdir(`/`);for(var c of b.folders)z.rmdir(c);z.rmdir(d)}catch{throw Error(`Failed to delete temporary files from WASM FS.`)}})}r.readFromXmlString=function(e,t,n=``,r=null){if(arguments.length<2||arguments.length>4)throw Error(`Function readFromXmlString called with an invalid number of arguments (`+arguments.length+`) - expects 2 to 4!`);return d(e,t,n,r)},r.readFromXmlFile=function(e,t,n=``,r=null){if(arguments.length<2||arguments.length>4)throw Error(`Function readFromXmlFile called with an invalid number of arguments (`+arguments.length+`) - expects 2 to 4!`);return y(t,h(n)).then(function(t){var a=[t.fullPath],o=t.fullPath.lastIndexOf(i),s=t.fullPath.substring(0,o>-1?o:0);return n=n.concat(c,s),d(e,t.data,n,r,a,t.filePath)})},r.writeToXmlFile=function(e,t,n=null){if(arguments.length<2||arguments.length>3)throw Error(`Function writeToXmlFile called with an invalid number of arguments (`+arguments.length+`) - expects 2 to 3!`);S(t,r.writeToXmlString(e,n))},r.exportToXmlFile=function(e,t,n=null){if(arguments.length<2||arguments.length>3)throw Error(`Function exportToXmlFile called with an invalid number of arguments (`+arguments.length+`) - expects 2 to 3!`);S(t,r.exportToXmlString(e,n))}})})(),n=o,n})})();typeof exports==`object`&&typeof module==`object`?(module.exports=fe,module.exports.default=fe):typeof define==`function`&&define.amd&&define([],()=>fe);function pe(e){let t=new URLSearchParams(window.location.search).get(e);return t==null||t===`0`||t===`false`?!1:t===``?!0:t}var O=pe(`debugmaterialx`),k=O===`update`,me=0;function he(){return me}var ge=0;function _e(){return ge}var ve=window.performance||window.webkitPerformance||window.mozPerformance;function ye(){me=ve.now()/1e3,ge++,window.requestAnimationFrame(ye)}window.requestAnimationFrame(ye);async function be(){return typeof requestIdleCallback<`u`?new Promise(e=>requestIdleCallback(e)):(console.debug(`[MaterialX] Can not wait for network idle, using fallback`),new Promise(e=>setTimeout(e,100)))}function xe(){return window.location.hostname===`localhost`||/^\d{1,3}(\.\d{1,3}){3}$/.test(window.location.hostname)}var Se=pe(`debugmaterialx`),Ce=new v;Ce.needsUpdate=!0,Ce.image=new Image,Ce.image.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRFr6+vGqg52AAAAAxJREFUeJxjZGBEgQAAWAAJLpjsTQAAAABJRU5ErkJggg==`;function we(e,t,n=0,r=1024,i=512,l){let f;f=l||(t.image?t.image.height/4:256);let p=Math.log2(f)-2,m=f,h=3*Math.max(2**p,112),_=new a(r,i,{format:u,type:w,minFilter:c,magFilter:o,generateMipmaps:!0,wrapS:s,anisotropy:e.capabilities.getMaxAnisotropy()}),v=new D(2,2),y=new ee(-1,1,1,-1,0,1),b=new E({defines:{USE_ENVMAP:``,ENVMAP_TYPE_CUBE_UV:``,CUBEUV_TEXEL_WIDTH:1/h,CUBEUV_TEXEL_HEIGHT:1/m,CUBEUV_MAX_MIP:p+0+`.0`},uniforms:{envMap:{value:t},roughness:{value:n}},vertexShader:`
varying vec2 vUv;
void main() {
vUv = uv;
gl_Position = vec4(position.xy, 0.0, 1.0);
}
`,fragmentShader:`
uniform sampler2D envMap;
uniform float roughness;
varying vec2 vUv;
#include <common>
#include <cube_uv_reflection_fragment>
void main() {
// Convert UV coordinates to equirectangular direction
vec2 uv = vUv;
// Map UV (0,1) to spherical coordinates
// Longitude: -π to π, Latitude: 0 to π
float phi = uv.x * 2.0 * PI - PI; // Longitude (-π to π)
float theta = uv.y * PI; // Latitude (0 to π)
// Rotate 90° around Y
phi -= PI / 2.0; // Adjust to match Three.js convention
// Convert spherical to cartesian coordinates
vec3 direction = vec3(
sin(theta) * cos(phi), // x
cos(theta), // y
sin(theta) * sin(phi) // z
);
// Sample the PMREM cube texture using the direction and roughness
#ifdef ENVMAP_TYPE_CUBE_UV
vec4 envColor = textureCubeUV(envMap, direction, roughness);
#else
vec4 envColor = vec4(1.0, 0.0, 1.0, 1.0); // Magenta fallback
#endif
gl_FragColor = vec4(envColor.rgb, 1.0);
}
`}),x=new d,S=new g(v,b);x.add(S);let C=e.getRenderTarget(),T=e.autoClear,te=e.xr.enabled,ne=e.shadowMap.enabled;_.texture.generateMipmaps=!0;try{e.xr.enabled=!1,e.shadowMap.enabled=!1,e.autoClear=!0,e.setRenderTarget(_),e.clear(),e.render(x,y)}finally{e.setRenderTarget(C),e.autoClear=T,e.xr.enabled=te,e.shadowMap.enabled=ne,v.dispose(),b.dispose(),x.remove(S)}return _.texture.name=`PMREM_Equirectangular_Texture_`+n.toFixed(2),_.texture.mapping=303,Se&&console.log(`[MaterialX] PMREM to Equirect Render Target:`,{width:_.width,height:_.height,mipmaps:_.texture.mipmaps?.length,roughness:n}),_}var Te=`_`,Ee=Te+`uaddressmode`,De=Te+`vaddressmode`,Oe=Te+`filtertype`,ke=`/`;function A(e,t){let n;if(e)n=[...e.data()];else{n=[];for(let e=0;e<t;++e)n.push(0)}return n}function j(e,t){let n=Array(t);if(e)for(let t=0;t<e.numRows();++t)for(let r=0;r<e.numColumns();++r)n.push(e.getItem(t,r));else for(let e=0;e<t;++e)n.push(0);return n}var Ae=new v;Ae.needsUpdate=!0,Ae.image=new Image,Ae.image.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRFr6+vGqg52AAAAAxJREFUeJxjZGBEgQAAWAAJLpjsTQAAAABJRU5ErkJggg==`;var je=new v;je.needsUpdate=!0,je.image=new Image,je.image.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIBAMAAAA2IaO4AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABJQTFRFgYH4gIH4gYH3gIH3gIH5gID4m94ORAAAADFJREFUeJxjZBBkfMdo9P/BB0aBj/8FGB0ufghgFGT4r8wo+P8rD2Pgo3sMjIz8jAwAMLoN0ZjS5hgAAAAASUVORK5CYII=`;function Me(e){let t=i.enabled;i.enabled=!0;let n=i.get(e);return i.enabled=t,n}function Ne(e,t){let n=i.enabled;i.enabled=!0,i.add(e,t),i.enabled=n,O&&console.log(`[MaterialX] Added to cache:`,e,t)}function M(e,t,n,i,a,o){let s=new re(null);switch(t){case`float`:case`integer`:case`boolean`:s.value=n;break;case`vector2`:s.value=A(n,2);break;case`vector3`:case`color3`:s.value=A(n,3);break;case`vector4`:case`color4`:s.value=A(n,4);break;case`matrix33`:s.value=j(n,9);break;case`matrix44`:s.value=j(n,16);break;case`filename`:if(n){let t=!0,c=o+ke+n;n.startsWith(`blob:`)||n.startsWith(`data:`)?(c=n,t=!1):n.startsWith(`http`)&&(c=n,t=!0);let l=a.cacheKey?.length?`${a.cacheKey}-${c}`:c,u=t?Me(l):null;if(u)O&&console.log(`[MaterialX] Use cached texture: `,l,u),u instanceof Promise?u.then(e=>{e?s.value=e:console.warn(`[MaterialX] Failed to load texture ${i} '${c}'`)}):s.value=u;else{O&&console.log(`[MaterialX] Load texture:`,c),i.toLowerCase().includes(`normal`)?s.value=je:s.value=Ae;let n=s.value,o=a.getTexture(c)?.then(t=>(t&&(t=t.clone(),t.colorSpace=r,Fe(t,i,e)),t)).catch(e=>(console.error(`[MaterialX] Failed to load texture ${i} '${c}'`,e),n));t&&Ne(l,o),o?.then(e=>{t&&e&&Ne(l,e),e?s.value=e:console.warn(`[MaterialX] Failed to load texture ${i} '${c}'`)})}}break;case`samplerCube`:case`string`:case`surfaceshader`:case`displacementshader`:case`volumeshader`:case`lightshader`:break;default:let c=t+`:`+i;N.has(c)||(N.set(c,!0),(O||xe())&&console.warn(`MaterialX: Unsupported uniform '${i}': ${t}`));break}return s}var N=new Map;function Pe(e){let t;switch(e){case 1:t=l;break;case 2:t=s;break;case 3:t=_;break;default:t=s;break}return t}function Fe(e,t,n,r=!0){let i=t.lastIndexOf(Te),a=t.substring(0,i)||t;n.find(a+Ee)&&(e.wrapS=Pe(n.find(a+Ee).getValue().getData())),n.find(a+De)&&(e.wrapT=Pe(n.find(a+De).getValue().getData()));let s=n.find(a+Oe)?n.get(a+Oe).value:-1,l=r?c:o;s===0&&(l=r?T:C),e.minFilter=l}function Ie(e){let t=[];for(let n of e.getNodes())n.getType()===`lightshader`&&t.push(n);return t}var P={};function Le(){return{directional:P.ND_directional_light||1,point:P.ND_point_light||2,spot:P.ND_spot_light||3}}async function Re(e,t){P={};let n=t.getOptions().hwMaxActiveLightSources;e.HwShaderGenerator.unbindLightShaders(t);let r=1,i=e.createDocument();await e.readFromXmlString(i,`<?xml version="1.0"?>
<materialx version="1.39">
<directional_light name="default_directional_light" type="lightshader">
</directional_light>
<point_light name="default_point_light" type="lightshader">
</point_light>
<spot_light name="default_spot_light" type="lightshader">
</spot_light>
<!--
<area_light name="default_area_light" type="lightshader">
</area_light>
-->
</materialx>`,``);let a=e.createDocument(),o=e.loadStandardLibraries(t);a.setDataLibrary(o),a.importLibrary(i);let s=Ie(a);O&&console.log(`Default lights in MaterialX document`,s),t.getOptions().hwMaxActiveLightSources=n;for(let n of s){let i=n.getNodeDef();if(O&&console.log(`Default light node definition`,i),!i)continue;let a=i.getName();O&&console.log(`Registering default light`,{lightName:a,lightDef:i}),P[a]||(O&&console.log(`Bind light shader for node`,{lightName:a,lightId:r,lightDef:i}),P[a]=r,e.HwShaderGenerator.bindLightShader(i,r++,t))}O&&console.log(`Light types bound in MaterialX context`,P)}var ze={},F=new n(0,0,0),Be=new n(0,0,-1),Ve=new t(0,0,0),He=Object.freeze({type:0,position:F,direction:Be,color:Ve,intensity:0,decay_rate:2,inner_angle:0,outer_angle:0});function Ue(e){switch(e){case`PointLight`:return`ND_point_light`;case`DirectionalLight`:return`ND_directional_light`;case`SpotLight`:return`ND_spot_light`;default:return ze[e]||(ze[e]=!0,console.warn(`MaterialX: Unsupported light type: `+e)),null}}function We(e,t){let r=[],i=t.getOptions().hwMaxActiveLightSources;for(let t of e){if(!t?.isLight)continue;let e=Ue(t.type);if(!e)continue;P[e]||O&&console.error(`MaterialX: Light type not registered in context. Make sure to register light types before using them.`,e);let i=t.getWorldPosition(new n),a,o=t.isDirectionalLight||t.isSpotLight?t:null;if(o)a=o.target.getWorldPosition(new n).sub(i).normalize();else{let e=t.getWorldQuaternion(new ne);a=new n(0,0,-1).applyQuaternion(e)}let s=t.angle,c=s*(1-t.penumbra),l=Math.cos(c),u=Math.cos(s);r.push({type:P[e],position:i.clone(),direction:a.clone(),color:t.color.clone(),intensity:t.intensity*(t.isPointLight||t.isSpotLight?683/3.1415:1),decay_rate:2,inner_angle:l,outer_angle:u})}let a=r.length;for(;r.length<i;)r.push(He);return k&&console.log(`Registered lights in MaterialX context`,P,r),{lightData:r,lightCount:a}}function Ge(e,t,n){let r={},i=e.getUniformBlocks();for(let[e,a]of Object.entries(i))if(e!==`LightData`&&!a.empty())for(let e=0;e<a.size();++e){let i=a.get(e),o=i.getValue()?.getData(),s=i.getVariable(),c=i.getType().getName();r[s]=M(a,c,o,s,t,n),O&&console.log(`Adding uniform`,{path:i.getPath(),type:c,name:s,value:r[s]})}return r}function Ke(e,t){let n=t.getUniformBlocks();for(let[t,r]of Object.entries(n))if(t!==`LightData`&&!r.empty())for(let t=0;t<r.size();++t){let n=r.get(t),i=n.getVariable(),a=n.getPath().split(`/`).pop();switch(a){case`_Color`:a=`color`;break;case`_Roughness`:a=`roughness`;break;case`_Metallic`:a=`metalness`;break}a&&(e.hasOwnProperty(a)?O&&console.warn(`[MaterialX] Uniform ${i} already exists in material as property ${a}, skipping.`):Object.defineProperty(e,a,{get:function(){return this.uniforms?.[i].value},set:function(e){let t=this.uniforms;if(!t||!t[i]){console.warn(`[MaterialX] Uniform ${i} not found in ${this.name} uniforms`);return}this.uniforms[i].value=e,this.uniformsNeedUpdate=!0}}))}}var qe={name:`@needle-tools/materialx`,description:`MaterialX material support for three.js and Needle Engine render physically based MaterialX shaders in the browser via WebAssembly`,version:`1.6.0`,type:`module`,main:`index.js`,types:`index.d.ts`,exports:{".":{types:`./index.d.ts`,import:`./index.js`,require:`./index.js`},"./needle":{types:`./needle.d.ts`,import:`./needle.js`,require:`./needle.js`},"./package.json":`./package.json`,"./codegen/register_types.ts":{import:`./codegen/register_types.ts`,require:`./codegen/register_types.js`}},peerDependencies:{three:`>=0.160.0`},scripts:{test:`node --import=./tests/unit/register-json-loader.js --test tests/unit/**/*.test.js`},devDependencies:{"@needle-tools/engine":`4.x`,"@types/three":`0.169.0`,dotenv:`^17.2.4`,jsdom:`^29.0.1`,three:`npm:@needle-tools/three@^0.169.5`},files:[`index.js`,`index.d.ts`,`needle.js`,`needle.d.ts`,`src/`,`bin/`,`codegen/`,`README.md`,`CHANGELOG.md`,`package.needle.json`],publishConfig:{access:`public`,registry:`https://registry.npmjs.org/`},keywords:[`needle`,`materialx`,`material`,`shader`,`threejs`,`three.js`,`webgl`,`webgpu`,`mtlx`,`rendering`,`gltf`,`pbr`,`3d`,`wasm`]}.version;async function Je(e){if(e===`immediately`)return Ye();if(e===`network_idle`)return be().then(Ye)}var I=new class{materialXModule=null;materialXGenerator=null;materialXGenContext=null;materialXStdLib=null;materialXInitPromise=null};async function Ye(){return I.materialXInitPromise?I.materialXInitPromise:I.materialXInitPromise=(async()=>{if(!I.materialXModule){O&&console.log(`[MaterialX v${qe}] Initializing WASM module...`);try{let e=`https://cdn.needle.tools/static/materialx/1.6.0/`,t,n=globalThis.NEEDLE_MATERIALX_LOCATION;t=n===`package`||n===`bin/`||n===`./bin/`||n===`../bin/`?await Promise.all([se(()=>import(`./JsMaterialXCore.DGnKx6GJ.js`).then(e=>e.default||e),[],import.meta.url),se(()=>import(`./JsMaterialXGenShader.DFP9U7Gu.js`).then(e=>e.default||e),[],import.meta.url),se(()=>import(`./JsMaterialXGenShader.data.vJnq-SJK.js`).then(e=>e.default||e),[],import.meta.url)]):n?[n+`JsMaterialXCore.wasm`,n+`JsMaterialXGenShader.wasm`,n+`JsMaterialXGenShader.data.txt`]:[e+`JsMaterialXCore.wasm`,e+`JsMaterialXGenShader.wasm`,e+`JsMaterialXGenShader.data.txt`];let[r,i,a]=t,o=await fe({locateFile:(e,t)=>(O&&console.debug(`[MaterialX] locateFile called:`,{path:e,scriptDirectory:t}),e.includes(`JsMaterialXCore.wasm`)?r:e.includes(`JsMaterialXGenShader.wasm`)?i:e.includes(`JsMaterialXGenShader.data`)?a:t+e)});O&&console.log(`[MaterialX] module loaded`,o),I.materialXModule=o,I.materialXGenerator=o.EsslShaderGenerator.create(),I.materialXGenContext=new o.GenContext(I.materialXGenerator);let s=o.createDocument();I.materialXStdLib=o.loadStandardLibraries(I.materialXGenContext),s.setDataLibrary(I.materialXStdLib),I.materialXGenContext.getOptions().shaderInterfaceType=I.materialXModule.ShaderInterfaceType.SHADER_INTERFACE_COMPLETE,I.materialXGenContext.getOptions().hwSpecularEnvironmentMethod=I.materialXModule.HwSpecularEnvironmentMethod.SPECULAR_ENVIRONMENT_FIS,I.materialXGenContext.getOptions().hwSrgbEncodeOutput=!1,I.materialXGenContext.getOptions().hwMaxActiveLightSources=4,await Re(I.materialXModule,I.materialXGenContext),O&&console.log(`[MaterialX v${qe}] Generator initialized successfully`)}catch(e){throw console.error(`[MaterialX v${qe}] Failed to load MaterialX module:`,e),e}}})()}var Xe=class e{static get(e){return this.getEnvironment(e)}static _environments=new WeakMap;static getEnvironment(t){if(this._environments.has(t))return this._environments.get(t);let n=new e(t);return this._environments.set(t,n),n}_lights=[];_lightData=null;_lightCount=0;_initializePromise=null;_isInitialized=!1;_lastUpdateFrame=-1;constructor(e){this._scene=e,O&&console.log(`[MaterialX] Environment created`)}async initialize(e){return this._initializePromise||=this._initialize(e),this._initializePromise}update(e,t,n){if(!this._initializePromise){this.initialize(n);return}if(this._isInitialized&&this._lastUpdateFrame!==e&&(this._lastUpdateFrame=e,this.updateLighting(!1),O&&!this._debug)){let e=this._getTextures(t.environment);this._debug=!0;let n=new f;n.side=2;let r=n.clone();r.map=e.radianceTexture;let i=new D(1,1,1,1),a=new g(i,r),o=n.clone();o.map=e.irradianceTexture;let s=new g(i,o);t.add(a),t.add(s),a.name=`MaterialXRadianceCube`,a.position.set(.8,1,.01),a.scale.set(1.5,1,1),s.name=`MaterialXIrradianceCube`,s.position.set(-.8,1,-.01),s.scale.set(1.5,.98,1),console.log(`[MaterialX] environment initialized from Needle context`,{textures:e,radianceCube:a,irradianceCube:s})}}reset(){O&&console.log(`[MaterialX] Resetting environment`),this._initializePromise=null,this._isInitialized=!1,this._lastUpdateFrame=-1,this._lights=[],this._lightData=null,this._lightCount=0,this._pmremGenerator?.dispose(),this._pmremGenerator=null,this._renderer=null;for(let e of this._texturesCache.values())e.radianceTexture?.dispose(),e.irradianceTexture?.dispose();this._texturesCache.clear()}get lights(){return this._lights}get lightData(){return this._lightData}get lightCount(){return this._lightCount||0}getTextures(e){if(e.envMap)return this._getTextures(e.envMap);let t=this._scene.environment||this._scene.background;return t instanceof v?this._getTextures(t):this._getTextures(null)}_pmremGenerator=null;_renderer=null;_texturesCache=new Map;async _initialize(e){return this._isInitialized=!1,this._pmremGenerator=new y(e),this._renderer=e,this.updateLighting(!0),this._isInitialized=!0,!0}_getTextures(e){e||=Ce;let t=this._texturesCache.get(e||null);if(t)return t;if(this._scene&&this._pmremGenerator&&this._renderer&&e){O&&console.log(`[MaterialX] Generating environment textures`,e.name);let n=this._pmremGenerator.fromEquirectangular(e),r=we(this._renderer,n.texture,0,1024,512,n.height),i=we(this._renderer,n.texture,1,32,16,n.height);n.dispose(),t={radianceTexture:r.texture,irradianceTexture:i.texture}}else t={radianceTexture:null,irradianceTexture:null};return this._texturesCache.set(e||null,t),t}updateLighting=(e=!1)=>{if(this._scene){if(e){let e=[];this._scene.traverse(t=>{t.isLight&&t.visible&&e.push(t)}),e.sort((e,t)=>!!t.castShadow-+!!e.castShadow),this._lights=e}if(I.materialXGenContext){let{lightData:e,lightCount:t}=We(this._lights,I.materialXGenContext);this._lightData=e,this._lightCount=t}}};refreshLights(){this.updateLighting(!0)}},Ze=new h,L=class extends E{shaderName=null;copy(e){return super.copy(e),this.shaderName=e.shaderName,this._context=e._context,this._shader=e._shader,this._needsTangents=e._needsTangents,this.uniforms=te(e.uniforms),this.uniformsGroups=S(e.uniformsGroups),this.envMapIntensity=e.envMapIntensity,this.envMap=e.envMap,Ke(this,this._shader.getStage(`pixel`)),Ke(this,this._shader.getStage(`vertex`)),this.needsUpdate=!0,this}_context=null;_shader=null;_needsTangents=!1;constructor(e){let t,r=``,i=``,a={};if(e){r=e.shader.getSourceCode(`vertex`),i=e.shader.getSourceCode(`pixel`),r=r.replace(/^#version.*$/gm,``).trim(),i=i.replace(/^#version.*$/gm,``).trim(),r=r.replace(/\bi_position\b/g,`position`),r=r.replace(/\bi_normal\b/g,`normal`),r=r.replace(/\bi_texcoord_0\b/g,`uv`),r=r.replace(/\bi_texcoord_1\b/g,`uv1`),r=r.replace(/\bi_texcoord_2\b/g,`uv2`),r=r.replace(/\bi_texcoord_3\b/g,`uv3`),r=r.replace(/\bi_tangent\b/g,`tangent`),r=r.replace(/\bi_color_0\b/g,`color`);let n=e.parameters?.precision||`highp`;r=r.replace(/precision mediump float;/g,`precision ${n} float;`),r=r.replace(/#define M_FLOAT_EPS 1e-8/g,n===`highp`?`#define M_FLOAT_EPS 1e-8`:`#define M_FLOAT_EPS 1e-3`),i=i.replace(/precision mediump float;/g,`precision ${n} float;`),i=i.replace(/#define M_FLOAT_EPS 1e-8/g,n===`highp`?`#define M_FLOAT_EPS 1e-8`:`#define M_FLOAT_EPS 1e-3`),i=i.replace(/\bi_position\b/g,`position`),i=i.replace(/\bi_normal\b/g,`normal`),i=i.replace(/\bi_texcoord_0\b/g,`uv`),i=i.replace(/\bi_texcoord_1\b/g,`uv1`),i=i.replace(/\bi_texcoord_2\b/g,`uv2`),i=i.replace(/\bi_texcoord_3\b/g,`uv3`),i=i.replace(/\bi_tangent\b/g,`tangent`),i=i.replace(/\bi_color_0\b/g,`color`),i=i.replace(/\bu_envLightIntensity\b/g,`envMapIntensity`),r.includes(`in vec2 uv;`),r.includes(`in vec2 uv1;`),r.includes(`in vec2 uv2;`),r.includes(`in vec2 uv3;`),r=r.replace(/in\s+vec3\s+position;/g,``),r=r.replace(/in\s+vec3\s+normal;/g,``),r=r.replace(/in\s+vec2\s+uv;/g,``),r=r.replace(/in\s+vec3\s+uv;/g,``);var o=r.includes(`in vec3 uv1;`);r=r.replace(/in\s+vec3\s+uv1;/g,``);var s=r.includes(`in vec3 uv2;`);r=r.replace(/in\s+vec3\s+uv2;/g,``);var c=r.includes(`in vec3 uv3;`);r=r.replace(/in\s+vec3\s+uv3;/g,``);var l=r.includes(`in vec4 tangent;`);r=r.replace(/in\s+vec4\s+tangent;/g,``);var u=r.includes(`in vec4 color;`);r=r.replace(/in\s+vec4\s+color;/g,``),u&&(r=r.replace(/\bvec4 (\w+) = color;/g,`vec4 $1 = vec4(color, 1.0);`),r=r.replace(/(\w+) = color;/g,(e,t)=>e.includes(`vec4`)?e:RegExp(`\\bvec4\\s+${t}\\b`).test(r)?`${t} = vec4(color, 1.0);`:e));function d(e,t){return e=e.replace(RegExp(`vec3\\(${t}\\.x,\\s*1\\.0 - ${t}\\.y,\\s*${t}\\.z\\)`,`g`),`vec3(${t}.x, 1.0 - ${t}.y, 0.0)`),e=e.replace(RegExp(`\\bvec3 (\\w+) = ${t};`,`g`),`vec3 $1 = vec3(${t}, 0.0);`),e=e.replace(RegExp(`(\\w+) = ${t};`,`g`),(n,r)=>n.includes(`vec3`)?n:RegExp(`\\bvec3\\s+${r}\\b`).test(e)?`${r} = vec3(${t}, 0.0);`:n),e}if(r=d(r,`uv`),r=d(r,`uv1`),r=d(r,`uv2`),r=d(r,`uv3`),i=i.replace(/result\.direction\s*=\s*light\.position\s*-\s*position;/g,`result.direction = (light.position - position) * 10.0 / 1.0;`),i=i.replace(/out\s+vec4\s+out1;/,`layout(location = 0) out vec4 pc_fragColor;
#define gl_FragColor pc_fragColor`),i=i.replace(/^\s*out1\s*=\s*vec4\((.*)\);/gm,`
gl_FragColor = vec4($1);
#include <tonemapping_fragment>
#include <colorspace_fragment>`),a={},o&&(a.USE_UV1=``),s&&(a.USE_UV2=``),c&&(a.USE_UV3=``),l&&(a.USE_TANGENT=``),u&&(a.USE_COLOR=``),r.includes(`u_worldInverseTransposeMatrix`)){r=r.replace(/void\s+main\s*\(\s*\)\s*\{/,`#include <common>
#include <shadowmap_pars_vertex>
void main() {`),r=r.replace(/(\n\s*)\}(\s*)$/,`$1 // Three.js shadow support
$1 vec4 worldPosition = u_worldMatrix * vec4(position, 1.0);
$1 vec3 transformedNormal = normalize(mat3(viewMatrix) * mat3(u_worldInverseTransposeMatrix) * normal);
$1 #include <shadowmap_vertex>
$1}$2`),i=i.replace(/(precision\s+\w+\s+float;)/,`$1
#include <common>
#include <packing>
#include <shadowmap_pars_fragment>`);let e=Le(),t=``;for(let e=0;e<4;e++)t+=`
#if NUM_DIR_LIGHT_SHADOWS > ${e}
${e>0?`else `:``}if (idx == ${e}) {
DirectionalLightShadow s = directionalLightShadows[${e}];
return getShadow(directionalShadowMap[${e}], s.shadowMapSize, s.shadowIntensity, s.shadowBias, s.shadowRadius, vDirectionalShadowCoord[${e}]);
}
#endif`;let n=``;for(let e=0;e<4;e++)n+=`
#if NUM_SPOT_LIGHT_SHADOWS > ${e}
${e>0?`else `:``}if (idx == ${e}) {
SpotLightShadow s = spotLightShadows[${e}];
return getShadow(spotShadowMap[${e}], s.shadowMapSize, s.shadowIntensity, s.shadowBias, s.shadowRadius, vSpotLightCoord[${e}]);
}
#endif`;let a=``;for(let e=0;e<4;e++)a+=`
#if NUM_POINT_LIGHT_SHADOWS > ${e}
${e>0?`else `:``}if (idx == ${e}) {
PointLightShadow s = pointLightShadows[${e}];
return getPointShadow(pointShadowMap[${e}], s.shadowMapSize, s.shadowIntensity, s.shadowBias, s.shadowRadius, vPointShadowCoord[${e}], s.shadowCameraNear, s.shadowCameraFar);
}
#endif`;i=i.replace(/void sampleLightSource\(LightData light, vec3 position, out lightshader result\)/,`// MaterialX light type IDs (from registerLights)
#define MX_LIGHT_TYPE_DIRECTIONAL ${e.directional}
#define MX_LIGHT_TYPE_POINT ${e.point}
#define MX_LIGHT_TYPE_SPOT ${e.spot}
// Per-type shadow index counters (global so they persist across sampleLightSource calls)
int mxDirShadowIdx = 0;
int mxSpotShadowIdx = 0;
int mxPointShadowIdx = 0;
// Shadow sampling helpers using constant indices (required for sampler arrays in GLSL ES 3.0)
float sampleMxDirShadow(int idx) {
#ifdef USE_SHADOWMAP
#if NUM_DIR_LIGHT_SHADOWS > 0
${t}
#endif
#endif
return 1.0;
}
float sampleMxSpotShadow(int idx) {
#ifdef USE_SHADOWMAP
#if NUM_SPOT_LIGHT_SHADOWS > 0
${n}
#endif
#endif
return 1.0;
}
float sampleMxPointShadow(int idx) {
#ifdef USE_SHADOWMAP
#if NUM_POINT_LIGHT_SHADOWS > 0
${a}
#endif
#endif
return 1.0;
}
void sampleLightSource(LightData light, vec3 position, out lightshader result)`),i=i.replace(/(void sampleLightSource\(LightData light, vec3 position, out lightshader result\)\s*\{[\s\S]*?)(^\})/m,`$1 // Apply Three.js shadow and increment per-type shadow counters
if (light.type == MX_LIGHT_TYPE_DIRECTIONAL) {
result.intensity *= sampleMxDirShadow(mxDirShadowIdx);
mxDirShadowIdx++;
} else if (light.type == MX_LIGHT_TYPE_SPOT) {
result.intensity *= sampleMxSpotShadow(mxSpotShadowIdx);
mxSpotShadowIdx++;
} else if (light.type == MX_LIGHT_TYPE_POINT) {
result.intensity *= sampleMxPointShadow(mxPointShadowIdx);
mxPointShadowIdx++;
}
$2`)}let f=e.parameters?.transparent??!1;t={name:e.name,uniforms:{},vertexShader:r,fragmentShader:i,glslVersion:x,depthTest:!0,depthWrite:!f,defines:a,lights:!0,...e.parameters}}super(t),e&&(this.shaderName=e.shaderName||null,this._context=e.context,this._shader=e.shader,this._needsTangents=r.includes(`in vec4 tangent;`)||r.includes(`in vec3 tangent;`),Object.assign(this.uniforms,{...p.lights,...Ge(e.shader.getStage(`vertex`),e.loaders,``),...Ge(e.shader.getStage(`pixel`),e.loaders,``),u_worldMatrix:{value:new m},u_viewProjectionMatrix:{value:new m},u_viewPosition:{value:new n},u_worldInverseTransposeMatrix:{value:new m},u_envMatrix:{value:new m},u_envRadiance:{value:null,type:`t`},u_envRadianceMips:{value:8,type:`i`},u_envRadianceSamples:{value:8,type:`i`},u_envIrradiance:{value:null,type:`t`},envMapIntensity:{value:1},u_refractionEnv:{value:!0},u_numActiveLightSources:{value:0},u_lightData:{value:[],needsUpdate:!1}}),Ke(this,e.shader.getStage(`pixel`)),Ke(this,e.shader.getStage(`vertex`)),(O||e.debug)&&(console.group(`[MaterialX]: `,this.name),console.log(`Vertex shader length: ${r.length}\n`,r),console.log(`Fragment shader length: ${i.length}\n`,i),console.groupEnd()))}_missingTangentsWarned=!1;onBeforeRender(e,t,n,r,i,a){this._needsTangents&&!r.attributes.tangent&&(this._missingTangentsWarned||(this._missingTangentsWarned=!0,console.warn(`[MaterialX] Tangents are required for this material (${this.name}) but not present in the geometry.`)));let o=this._context?.getTime?.()||he(),s=this._context?.getFrame?.()||_e(),c=Xe.get(t);c&&(c.update(s,t,e),this.updateEnvironmentUniforms(c,t)),this.updateUniforms(e,i,n,o,s)}envMapIntensity=1;envMap=null;updateUniforms=(e,t,n,r,i)=>{let a=this.uniforms;a.u_worldMatrix&&(a.u_worldMatrix.value.copy(t.matrixWorld),a.u_worldMatrix.needsUpdate=!0),a.u_viewPosition&&(a.u_viewPosition.value.setFromMatrixPosition(n.matrixWorld),a.u_viewPosition.needsUpdate=!0),a.u_viewProjectionMatrix&&(a.u_viewProjectionMatrix.value.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),a.u_viewProjectionMatrix.needsUpdate=!0),a.u_worldInverseTransposeMatrix&&(a.u_worldInverseTransposeMatrix.value.setFromMatrix3(Ze.getNormalMatrix(t.matrixWorld)),a.u_worldInverseTransposeMatrix.needsUpdate=!0),a.u_time&&(r===void 0&&(r=he()),a.u_time.value=r),a.u_frame&&(i===void 0&&(i=_e()),a.u_frame.value=i),this.uniformsNeedUpdate=!0};updateEnvironmentUniforms=(e,t)=>{let n=this.uniforms,r=e.lightData||null,i=e.lightCount||0,a=e.getTextures(this)||null;if(n.u_numActiveLightSources&&i>=0&&(n.u_numActiveLightSources.value=i),r?.length&&(n.u_lightData.value=r,`needsUpdate`in n.u_lightData&&n.u_lightData.needsUpdate===!1&&(O&&console.debug(`[MaterialX] LightData assigned (${this.name}, ${this.uuid})`,r),n.u_lightData.needsUpdate=void 0)),n.u_envRadiance){let e=n.u_envRadiance.value;n.u_envRadiance.value=a.radianceTexture,e!=a.radianceTexture&&(n.u_envRadiance.needsUpdate=!0)}if(n.u_envRadianceMips&&(n.u_envRadianceMips.value=Math.trunc(Math.log2(Math.max(a.radianceTexture?.source.data.width??0,a.radianceTexture?.source.data.height??0)))+1),n.u_envIrradiance){let e=n.u_envIrradiance.value;n.u_envIrradiance.value=a.irradianceTexture,e!=a.irradianceTexture&&(n.u_envIrradiance.needsUpdate=!0)}n.envMapIntensity&&(n.envMapIntensity.value=(this.envMapIntensity??1)*(t.environmentIntensity??1)),this.uniformsNeedUpdate=!0}},Qe=class{name=`NEEDLE_materials_mtlx`;_generatedMaterials=[];_documentReadyPromise=null;get materialX_root_data(){let e=this.parser.json.extensions?.[this.name];if(!e)return null;let t=null;return t=`documents`in e&&Array.isArray(e.documents)?e.documents:[e],t}get materials(){return this._generatedMaterials}constructor(e,t,n){this.parser=e,this.options=t,this.context=n,O&&console.log(`MaterialXLoader created for parser`),this.materialX_root_data&&Ye()}loadMaterial(e){return(this.parser.json.materials?.[e])?.extensions?.[this.name]?this._loadMaterialAsync(e):null}async _loadMaterialAsync(e){let t=this.parser.json.materials?.[e],n=t.extensions?.[this.name],r=n.document||0,i=this.materialX_root_data?.[r],a=i.mtlx||null;if(O&&console.debug(`[MaterialX] extension found in material[${e}]:`,t.extensions?.[this.name],`
→ MTLX root data:`,i),n&&a){let e={...this.options};return e.parameters||={},e.parameters?.side===void 0&&t.doubleSided!==void 0&&(e.parameters.side=t.doubleSided?2:0),tt(a,n.name,{cacheKey:this.options.cacheKey||``,getTexture:async e=>{let t=e.split(`/`).pop()?.split(`.`).shift()||``;if(i){let e=i.textures||[],n=-1;for(let r of e)if(r.name===t){let e=r.pointer,i=e.substring(10);if(n=parseInt(i),isNaN(n)||n<0){console.error(`[MaterialX] Invalid texture index in pointer:`,e);return}else O&&console.log(`[MaterialX] Texture index found:`,n,`for`,t)}if(n<0){console.error(`[MaterialX] Texture not found in parser:`,t,this.parser.json);return}return this.parser.getDependency(`texture`,n)}return null}},e,this.context).then(e=>(e instanceof L&&this._generatedMaterials.push(e),e))}let o=new b;return o.name=`MaterialX_Fallback`,o}};function $e(e,t,n){e.register(e=>new Qe(e,t||{},n||{}))}async function et(e){if(await Ye(),!I.materialXModule)throw Error(`[MaterialX] module failed to initialize`);let t=I.materialXModule.createDocument();return t.setDataLibrary(I.materialXStdLib),await I.materialXModule.readFromXmlString(t,e,``),O&&console.log(`[MaterialX] root document parsed successfully`),t}async function tt(e,t,n,r,i){try{O&&console.log(`Creating MaterialX material: ${t}`);let a=await et(e);if(!I.materialXModule||!I.materialXGenerator||!I.materialXGenContext){console.warn(`[MaterialX] WASM module not ready, returning fallback material`);let e=new b;return e.name=`MaterialX_Fallback_${t}`,e}let o=null;O&&console.log(`[MaterialX] document`,a);let s=a.getMaterialNodes();O&&console.log(`[MaterialX] Found ${s.length} material nodes in document`,s);for(let e=0;e<s.length;++e){let n=s[e];if(n){let r=n.getNamePath();if(O&&console.log(`[MaterialX] Scan material[${e}]: ${r}`),s.length===1||r==t||e===t){t=r,o=n,O&&console.log(`[MaterialX] Use material node: '${r}'`);break}}}if(!o){s.length<=0?console.warn(`[MaterialX] No material nodes found in MaterialX document.`):console.warn(`[MaterialX] No renderable element found in MaterialX document (${t}) → Please provide a name or index. ${s.length} options: ${s.map(e=>e.getNamePath()).join(`, `)}`);let e=new b;return e.color.set(16711935),e.name=`MaterialX_NoRenderable_${t}`,e}O&&console.log(`[MaterialX] Using renderable element for shader generation`);let c=I.materialXGenerator.getTarget(),l=typeof I.materialXModule.getAlphaMode==`function`?I.materialXModule.getAlphaMode(o,c):I.materialXModule.isTransparentSurface(o,c)?`blend`:`opaque`,u=l===`mask`,d=l===`blend`,f=u||d;{let e=I.materialXGenContext.getOptions();e.hwTransparency=f,e.hwTexcoordVerticalFlip=!0,e.fileTextureVerticalFlip=!0}O&&console.log(`[MaterialX] Generating MaterialX shaders...`);let p=o.getNamePath?o.getNamePath():o.getName(),m=I.materialXGenerator.generate(p,o,I.materialXGenContext),h=new L({name:t,shaderName:null,shader:m,context:i||{},parameters:{transparent:d,alphaTest:u?1e-4:0,...r?.parameters},loaders:n});return O&&console.log(`[MaterialX] material created:`,h.name),h}catch(n){let r=n;if(typeof n==`number`&&I?.materialXModule)try{let e=I.materialXModule.getExceptionDetailedMessage,t=I.materialXModule.getExceptionMessage;r=(typeof e==`function`?e(n):null)||(typeof t==`function`?t(n):null)||`WASM exception code ${n}`}catch{r=`WASM exception code ${n}`}console.error(`[MaterialX v${qe}] Error creating MaterialX material (${t}):\n${r}\n→ MaterialX source:\n`,e);let i=new b;return i.color.set(16711935),i.name=`MaterialX_Error_${t}`,i}}var nt={createMaterialXMaterial:tt};export{Xe as a,ue as c,se as d,L as i,le as l,Qe as n,Je as o,$e as r,Ye as s,nt as t,ce as u};