- 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
150 lines
137 KiB
JavaScript
150 lines
137 KiB
JavaScript
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}; |