@needle-tools/engine 5.0.0 → 5.1.0-experimental.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.needle.json +1 -1
- package/dist/generateMeshBVH.worker-DT9A2Hrc.js +1 -0
- package/dist/gltf-progressive-3BwW4ETO.min.js +10 -0
- package/dist/gltf-progressive-ByD1UX0A.umd.cjs +10 -0
- package/dist/{gltf-progressive-Cl167Vjx.js → gltf-progressive-DwWaVr0o.js} +412 -394
- package/dist/gltf-progressive.worker-DpfUjn1n.js +3 -0
- package/dist/{materialx-qPScBWhj.min.js → materialx-9KHBidZa.min.js} +1 -1
- package/dist/{materialx-4ApD6Vz5.js → materialx-BBDu8W5P.js} +1 -1
- package/dist/{materialx-D0XUnhBY.umd.cjs → materialx-hLP3E8AA.umd.cjs} +2 -2
- package/dist/{needle-engine.bundle-CoEvMwYM.min.js → needle-engine.bundle-BiCxyTBE.min.js} +110 -110
- package/dist/{needle-engine.bundle-BAYLGumK.umd.cjs → needle-engine.bundle-CaHKqc30.umd.cjs} +123 -123
- package/dist/{needle-engine.bundle-BDIyvCV6.js → needle-engine.bundle-JZXX6OjM.js} +2143 -2088
- package/dist/needle-engine.d.ts +102 -44
- package/dist/needle-engine.js +480 -476
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-B_9sKVU7.min.js → postprocessing-BZfyAdCY.min.js} +1 -1
- package/dist/{postprocessing-WDc9WwI3.js → postprocessing-CXlA3QA6.js} +1 -1
- package/dist/{postprocessing-B2wb6pzI.umd.cjs → postprocessing-Dwy7Hz_T.umd.cjs} +38 -38
- package/dist/three-examples.js +4760 -3641
- package/dist/three-examples.min.js +17 -35
- package/dist/three-examples.umd.cjs +16 -34
- package/dist/three.js +48533 -28562
- package/dist/three.min.js +716 -502
- package/dist/three.umd.cjs +720 -506
- package/dist/vendor-Bf43L3CE.min.js +1116 -0
- package/dist/{vendor-CntUvmJu.umd.cjs → vendor-BlyEaMTL.umd.cjs} +31 -31
- package/dist/{vendor-vHLk8sXu.js → vendor-D-7l5gB0.js} +2562 -2556
- package/lib/engine/engine_animation.js +1 -1
- package/lib/engine/engine_animation.js.map +1 -1
- package/lib/engine/engine_audio.js.map +1 -1
- package/lib/engine/engine_context.js +3 -6
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_create_objects.js +0 -1
- package/lib/engine/engine_create_objects.js.map +1 -1
- package/lib/engine/engine_element.d.ts +113 -0
- package/lib/engine/engine_element.js +833 -0
- package/lib/engine/engine_element.js.map +1 -0
- package/lib/engine/engine_element_attributes.d.ts +72 -0
- package/lib/engine/engine_element_attributes.js +2 -0
- package/lib/engine/engine_element_attributes.js.map +1 -0
- package/lib/engine/engine_element_extras.d.ts +6 -0
- package/lib/engine/engine_element_extras.js +14 -0
- package/lib/engine/engine_element_extras.js.map +1 -0
- package/lib/engine/engine_element_loading.d.ts +44 -0
- package/lib/engine/engine_element_loading.js +350 -0
- package/lib/engine/engine_element_loading.js.map +1 -0
- package/lib/engine/engine_element_overlay.d.ts +21 -0
- package/lib/engine/engine_element_overlay.js +167 -0
- package/lib/engine/engine_element_overlay.js.map +1 -0
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_pmrem.js +2 -2
- package/lib/engine/engine_pmrem.js.map +1 -1
- package/lib/engine/engine_scenetools.d.ts +62 -0
- package/lib/engine/engine_scenetools.js +337 -0
- package/lib/engine/engine_scenetools.js.map +1 -0
- package/lib/engine/engine_test_utils.d.ts +39 -0
- package/lib/engine/engine_test_utils.js +84 -0
- package/lib/engine/engine_test_utils.js.map +1 -0
- package/lib/engine/engine_three_utils.js.map +1 -1
- package/lib/engine/engine_time.js +4 -3
- package/lib/engine/engine_time.js.map +1 -1
- package/lib/engine/engine_ui.d.ts +25 -0
- package/lib/engine/engine_ui.dummy_canvas.d.ts +2 -0
- package/lib/engine/engine_ui.dummy_canvas.js +55 -0
- package/lib/engine/engine_ui.dummy_canvas.js.map +1 -0
- package/lib/engine/engine_ui.js +168 -0
- package/lib/engine/engine_ui.js.map +1 -0
- package/lib/engine/extensions/NEEDLE_lightmaps.js +2 -2
- package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_pmrem.d.ts +1 -1
- package/lib/engine/webcomponents/icons.js +3 -2
- package/lib/engine/webcomponents/icons.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -0
- package/lib/engine/webcomponents/needle-engine.attributes.js +2 -0
- package/lib/engine/webcomponents/needle-engine.attributes.js.map +1 -0
- package/lib/engine-components/AudioSource.js +1 -1
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Light.d.ts +3 -0
- package/lib/engine-components/Light.js +39 -31
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +2 -1
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/SpriteRenderer.d.ts +1 -1
- package/lib/engine-components/VideoPlayer.d.ts +1 -1
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/Animation.js +1 -0
- package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
- package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/ui/BaseUIComponent_Uikit.d.ts +54 -0
- package/lib/engine-components/ui/BaseUIComponent_Uikit.js +114 -0
- package/lib/engine-components/ui/BaseUIComponent_Uikit.js.map +1 -0
- package/lib/engine-components/ui/BaseUikitComponent.d.ts +54 -0
- package/lib/engine-components/ui/BaseUikitComponent.js +114 -0
- package/lib/engine-components/ui/BaseUikitComponent.js.map +1 -0
- package/lib/engine-components/ui/Button.legacy.d.ts +68 -0
- package/lib/engine-components/ui/Button.legacy.js +320 -0
- package/lib/engine-components/ui/Button.legacy.js.map +1 -0
- package/lib/engine-components/ui/ButtonUikit.d.ts +51 -0
- package/lib/engine-components/ui/ButtonUikit.js +187 -0
- package/lib/engine-components/ui/ButtonUikit.js.map +1 -0
- package/lib/engine-components/ui/Canvas.js +2 -2
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/Canvas.legacy.d.ts +76 -0
- package/lib/engine-components/ui/Canvas.legacy.js +409 -0
- package/lib/engine-components/ui/Canvas.legacy.js.map +1 -0
- package/lib/engine-components/ui/CanvasUikit.d.ts +68 -0
- package/lib/engine-components/ui/CanvasUikit.js +289 -0
- package/lib/engine-components/ui/CanvasUikit.js.map +1 -0
- package/lib/engine-components/ui/Graphic.d.ts +3 -3
- package/lib/engine-components/ui/Graphic.js +6 -2
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Graphic.legacy.d.ts +55 -0
- package/lib/engine-components/ui/Graphic.legacy.js +268 -0
- package/lib/engine-components/ui/Graphic.legacy.js.map +1 -0
- package/lib/engine-components/ui/GraphicUikit.d.ts +21 -0
- package/lib/engine-components/ui/GraphicUikit.js +65 -0
- package/lib/engine-components/ui/GraphicUikit.js.map +1 -0
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/Image.legacy.d.ts +39 -0
- package/lib/engine-components/ui/Image.legacy.js +121 -0
- package/lib/engine-components/ui/Image.legacy.js.map +1 -0
- package/lib/engine-components/ui/ImageUikit.d.ts +22 -0
- package/lib/engine-components/ui/ImageUikit.js +97 -0
- package/lib/engine-components/ui/ImageUikit.js.map +1 -0
- package/lib/engine-components/ui/RenderMode.d.ts +14 -0
- package/lib/engine-components/ui/RenderMode.js +16 -0
- package/lib/engine-components/ui/RenderMode.js.map +1 -0
- package/lib/engine-components/ui/Text.d.ts +64 -11
- package/lib/engine-components/ui/Text.js +154 -45
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/ui/Text.legacy.d.ts +81 -0
- package/lib/engine-components/ui/Text.legacy.js +548 -0
- package/lib/engine-components/ui/Text.legacy.js.map +1 -0
- package/lib/engine-components/ui/TextUikit.d.ts +42 -0
- package/lib/engine-components/ui/TextUikit.js +164 -0
- package/lib/engine-components/ui/TextUikit.js.map +1 -0
- package/lib/engine-components/ui/index.d.ts +1 -0
- package/lib/engine-components/ui/index.js +1 -0
- package/lib/engine-components/ui/index.js.map +1 -1
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +1 -1
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
- package/package.json +5 -5
- package/plugins/common/buildinfo.d.ts +6 -0
- package/plugins/vite/ai.d.ts +7 -8
- package/plugins/vite/ai.js +95 -20
- package/plugins/vite/alias.js +6 -0
- package/plugins/vite/dependencies.js +7 -0
- package/src/engine/engine_animation.ts +1 -1
- package/src/engine/engine_audio.ts +1 -1
- package/src/engine/engine_context.ts +3 -6
- package/src/engine/engine_create_objects.ts +0 -1
- package/src/engine/engine_license.ts +0 -2
- package/src/engine/engine_pmrem.ts +3 -3
- package/src/engine/engine_three_utils.ts +2 -2
- package/src/engine/engine_time.ts +4 -3
- package/src/engine/extensions/NEEDLE_lightmaps.ts +3 -3
- package/src/engine/webcomponents/icons.ts +3 -2
- package/src/engine-components/AudioSource.ts +1 -1
- package/src/engine-components/Light.ts +39 -31
- package/src/engine-components/OrbitControls.ts +2 -2
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2 -2
- package/src/engine-components/export/usdz/extensions/Animation.ts +6 -5
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1 -1
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +3 -3
- package/src/engine-components/timeline/TimelineTracks.ts +2 -2
- package/src/engine-components/ui/Canvas.ts +2 -2
- package/src/engine-components/ui/Graphic.ts +7 -3
- package/src/engine-components/ui/Image.ts +1 -1
- package/src/engine-components/ui/Text.ts +170 -52
- package/src/engine-components/ui/index.ts +2 -1
- package/dist/generateMeshBVH.worker-DiCnZlf3.js +0 -21
- package/dist/gltf-progressive-BryRjllq.min.js +0 -10
- package/dist/gltf-progressive-DJBMx-zB.umd.cjs +0 -10
- package/dist/gltf-progressive.worker-BqODMeeW.js +0 -23
- package/dist/vendor-DPbfJJ4d.min.js +0 -1116
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Texture as WI,WebGLRenderTarget as Ai,RepeatWrapping as Gg,LinearFilter as GB,LinearMipMapLinearFilter as DB,FloatType as Ii,RGBAFormat as gi,PlaneGeometry as YB,OrthographicCamera as Bi,ShaderMaterial as wB,Scene as Qi,Mesh as Dg,EquirectangularReflectionMapping as Ci,Vector3 as nA,Quaternion as Ei,Color as ii,Uniform$1 as Gi,LinearSRGBColorSpace as Di,Cache as sA,MirroredRepeatWrapping as Yi,ClampToEdgeWrapping as wi,NearestMipMapNearestFilter as Ni,NearestFilter as li,MeshBasicMaterial as oi,PMREMGenerator$1 as Ji,cloneUniforms as Ri,cloneUniformsGroups as Zi,GLSL3 as bi,Matrix4 as HI,UniformsLib as hi,Matrix3 as ci,MeshStandardMaterial as XI,DoubleSide as Fi,FrontSide as Ui}from"./three.min.js";var kI=function(){var F=typeof document<"u"?document.currentScript?.src:void 0;return typeof __filename<"u"&&(F=F||__filename),function(w){w=w||{};var R,G=w,c,M,b=new Promise((A,I)=>{c=A,M=I}),d=typeof window=="object",U=typeof WorkerGlobalScope<"u",X=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";G.expectedDataFileDownloads??=0,G.expectedDataFileDownloads++,(()=>{var A=typeof ENVIRONMENT_IS_PTHREAD<"u"&&ENVIRONMENT_IS_PTHREAD,I=typeof ENVIRONMENT_IS_WASM_WORKER<"u"&&ENVIRONMENT_IS_WASM_WORKER;if(A||I)return;var g=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";function B(Q){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 E="bin/JsMaterialXGenShader.data",i="JsMaterialXGenShader.data",D=G.locateFile?G.locateFile(i,""):i,Y=Q.remote_package_size;function N(o,s,x,K){if(g){require("fs").readFile(o,(V,q)=>{V?K(V):x(q.buffer)});return}G.dataFileDownloads??={},fetch(o).catch(V=>Promise.reject(new Error(`Network Error: ${o}`,{cause:V}))).then(V=>{if(!V.ok)return Promise.reject(new Error(`${V.status}: ${V.url}`));if(!V.body&&V.arrayBuffer)return V.arrayBuffer().then(x);const q=V.body.getReader(),BA=()=>q.read().then(S).catch(W=>Promise.reject(new Error(`Unexpected error while handling : ${V.url} ${W}`,{cause:W}))),r=[],oA=V.headers,y=Number(oA.get("Content-Length")??s);let a=0;const S=({done:W,value:L})=>{if(W){const $=new Uint8Array(r.map(u=>u.length).reduce((u,hA)=>u+hA,0));let EA=0;for(const u of r)$.set(u,EA),EA+=u.length;x($.buffer)}else{r.push(L),a+=L.length,G.dataFileDownloads[o]={loaded:a,total:y};let $=0,EA=0;for(const u of Object.values(G.dataFileDownloads))$+=u.loaded,EA+=u.total;return G.setStatus?.(`Downloading data... (${$}/${EA})`),BA()}};return G.setStatus?.("Downloading data..."),BA()})}function l(o){console.error("package error:",o)}var J=null,Z=G.getPreloadedPackage?G.getPreloadedPackage(D,Y):null;Z||N(D,Y,o=>{J?(J(o),J=null):Z=o},l);function h(o){function s(BA,r){if(!BA)throw r+new Error().stack}o.FS_createPath("/","libraries",!0,!0),o.FS_createPath("/libraries","bxdf",!0,!0),o.FS_createPath("/libraries/bxdf","genglsl",!0,!0),o.FS_createPath("/libraries/bxdf","genmdl",!0,!0),o.FS_createPath("/libraries/bxdf","lama",!0,!0),o.FS_createPath("/libraries/bxdf","translation",!0,!0),o.FS_createPath("/libraries","cmlib",!0,!0),o.FS_createPath("/libraries","lights",!0,!0),o.FS_createPath("/libraries/lights","genglsl",!0,!0),o.FS_createPath("/libraries/lights","genmsl",!0,!0),o.FS_createPath("/libraries","nprlib",!0,!0),o.FS_createPath("/libraries/nprlib","genglsl",!0,!0),o.FS_createPath("/libraries/nprlib","genmdl",!0,!0),o.FS_createPath("/libraries/nprlib","genmsl",!0,!0),o.FS_createPath("/libraries/nprlib","genosl",!0,!0),o.FS_createPath("/libraries","pbrlib",!0,!0),o.FS_createPath("/libraries/pbrlib","genglsl",!0,!0),o.FS_createPath("/libraries/pbrlib/genglsl","lib",!0,!0),o.FS_createPath("/libraries/pbrlib","genmdl",!0,!0),o.FS_createPath("/libraries/pbrlib","genmsl",!0,!0),o.FS_createPath("/libraries/pbrlib","genosl",!0,!0),o.FS_createPath("/libraries/pbrlib/genosl","lib",!0,!0),o.FS_createPath("/libraries","stdlib",!0,!0),o.FS_createPath("/libraries/stdlib","genglsl",!0,!0),o.FS_createPath("/libraries/stdlib/genglsl","lib",!0,!0),o.FS_createPath("/libraries/stdlib","genmdl",!0,!0),o.FS_createPath("/libraries/stdlib","genmsl",!0,!0),o.FS_createPath("/libraries/stdlib/genmsl","lib",!0,!0),o.FS_createPath("/libraries/stdlib","genosl",!0,!0),o.FS_createPath("/libraries/stdlib/genosl","include",!0,!0),o.FS_createPath("/libraries/stdlib/genosl","lib",!0,!0),o.FS_createPath("/libraries","targets",!0,!0);function x(BA,r,oA){this.start=BA,this.end=r,this.audio=oA}x.prototype={requests:{},open:function(BA,r){this.name=r,this.requests[r]=this,o.addRunDependency(`fp ${this.name}`)},send:function(){},onload:function(){var BA=this.byteArray.subarray(this.start,this.end);this.finish(BA)},finish:function(BA){var r=this;o.FS_createDataFile(this.name,null,BA,!0,!0,!0),o.removeRunDependency(`fp ${r.name}`),this.requests[this.name]=null}};for(var K=Q.files,V=0;V<K.length;++V)new x(K[V].start,K[V].end,K[V].audio||0).open("GET",K[V].filename);function q(BA){s(BA,"Loading data file failed."),s(BA.constructor.name===ArrayBuffer.name,"bad input to processPackageData");var r=new Uint8Array(BA);x.prototype.byteArray=r;for(var oA=Q.files,y=0;y<oA.length;++y)x.prototype.requests[oA[y].filename].onload();o.removeRunDependency("datafile_bin/JsMaterialXGenShader.data")}o.addRunDependency("datafile_bin/JsMaterialXGenShader.data"),o.preloadResults??={},o.preloadResults[E]={fromCache:!1},Z?(q(Z),Z=null):J=q}G.calledRun?h(G):(G.preRun??=[]).push(h)}B({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:29039},{filename:"/libraries/bxdf/genglsl/open_pbr_surface.mtlx",start:29039,end:60246},{filename:"/libraries/bxdf/genglsl/standard_surface.mtlx",start:60246,end:78019},{filename:"/libraries/bxdf/genmdl/open_pbr_surface.mtlx",start:78019,end:109045},{filename:"/libraries/bxdf/gltf_pbr.mtlx",start:109045,end:153938},{filename:"/libraries/bxdf/lama/lama_add.mtlx",start:153938,end:156592},{filename:"/libraries/bxdf/lama/lama_conductor.mtlx",start:156592,end:164592},{filename:"/libraries/bxdf/lama/lama_dielectric.mtlx",start:164592,end:175511},{filename:"/libraries/bxdf/lama/lama_diffuse.mtlx",start:175511,end:178457},{filename:"/libraries/bxdf/lama/lama_emission.mtlx",start:178457,end:179206},{filename:"/libraries/bxdf/lama/lama_generalized_schlick.mtlx",start:179206,end:191060},{filename:"/libraries/bxdf/lama/lama_iridescence.mtlx",start:191060,end:197023},{filename:"/libraries/bxdf/lama/lama_layer.mtlx",start:197023,end:198767},{filename:"/libraries/bxdf/lama/lama_mix.mtlx",start:198767,end:200854},{filename:"/libraries/bxdf/lama/lama_sheen.mtlx",start:200854,end:202977},{filename:"/libraries/bxdf/lama/lama_sss.mtlx",start:202977,end:209752},{filename:"/libraries/bxdf/lama/lama_surface.mtlx",start:209752,end:211420},{filename:"/libraries/bxdf/lama/lama_translucent.mtlx",start:211420,end:213057},{filename:"/libraries/bxdf/open_pbr_surface.mtlx",start:213057,end:254343},{filename:"/libraries/bxdf/standard_surface.mtlx",start:254343,end:282426},{filename:"/libraries/bxdf/translation/open_pbr_to_standard_surface.mtlx",start:282426,end:299893},{filename:"/libraries/bxdf/translation/standard_surface_to_gltf_pbr.mtlx",start:299893,end:310073},{filename:"/libraries/bxdf/translation/standard_surface_to_open_pbr.mtlx",start:310073,end:325182},{filename:"/libraries/bxdf/translation/standard_surface_to_usd.mtlx",start:325182,end:331063},{filename:"/libraries/bxdf/usd_preview_surface.mtlx",start:331063,end:354055},{filename:"/libraries/cmlib/cmlib_defs.mtlx",start:354055,end:358901},{filename:"/libraries/cmlib/cmlib_ng.mtlx",start:358901,end:376376},{filename:"/libraries/lights/genglsl/lights_genglsl_impl.mtlx",start:376376,end:376980},{filename:"/libraries/lights/genglsl/mx_directional_light.glsl",start:376980,end:377161},{filename:"/libraries/lights/genglsl/mx_point_light.glsl",start:377161,end:377531},{filename:"/libraries/lights/genglsl/mx_spot_light.glsl",start:377531,end:378155},{filename:"/libraries/lights/genmsl/lights_genmsl_impl.mtlx",start:378155,end:378756},{filename:"/libraries/lights/genmsl/mx_directional_light.metal",start:378756,end:378943},{filename:"/libraries/lights/genmsl/mx_point_light.metal",start:378943,end:379319},{filename:"/libraries/lights/genmsl/mx_spot_light.metal",start:379319,end:379949},{filename:"/libraries/lights/lights_defs.mtlx",start:379949,end:382361},{filename:"/libraries/nprlib/genglsl/nprlib_genglsl_impl.mtlx",start:382361,end:383025},{filename:"/libraries/nprlib/genmdl/nprlib_genmdl_impl.mtlx",start:383025,end:383787},{filename:"/libraries/nprlib/genmsl/nprlib_genmsl_impl.mtlx",start:383787,end:384448},{filename:"/libraries/nprlib/genosl/nprlib_genosl_impl.mtlx",start:384448,end:385146},{filename:"/libraries/nprlib/nprlib_defs.mtlx",start:385146,end:387781},{filename:"/libraries/nprlib/nprlib_ng.mtlx",start:387781,end:392630},{filename:"/libraries/pbrlib/genglsl/lib/mx_closure_type.glsl",start:392630,end:393047},{filename:"/libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl",start:393047,end:395841},{filename:"/libraries/pbrlib/genglsl/lib/mx_environment_none.glsl",start:395841,end:396076},{filename:"/libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl",start:396076,end:397162},{filename:"/libraries/pbrlib/genglsl/lib/mx_generate_albedo_table.glsl",start:397162,end:397534},{filename:"/libraries/pbrlib/genglsl/lib/mx_generate_prefilter_env.glsl",start:397534,end:399881},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet.glsl",start:399881,end:402873},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet_diffuse.glsl",start:402873,end:410337},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet_sheen.glsl",start:410337,end:417090},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet_specular.glsl",start:417090,end:433540},{filename:"/libraries/pbrlib/genglsl/lib/mx_shadow.glsl",start:433540,end:434296},{filename:"/libraries/pbrlib/genglsl/lib/mx_transmission_opacity.glsl",start:434296,end:434467},{filename:"/libraries/pbrlib/genglsl/lib/mx_transmission_refract.glsl",start:434467,end:434978},{filename:"/libraries/pbrlib/genglsl/mx_add_bsdf.glsl",start:434978,end:435560},{filename:"/libraries/pbrlib/genglsl/mx_add_edf.glsl",start:435560,end:435700},{filename:"/libraries/pbrlib/genglsl/mx_anisotropic_vdf.glsl",start:435700,end:435928},{filename:"/libraries/pbrlib/genglsl/mx_artistic_ior.glsl",start:435928,end:436501},{filename:"/libraries/pbrlib/genglsl/mx_blackbody.glsl",start:436501,end:438237},{filename:"/libraries/pbrlib/genglsl/mx_burley_diffuse_bsdf.glsl",start:438237,end:439284},{filename:"/libraries/pbrlib/genglsl/mx_chiang_hair_bsdf.glsl",start:439284,end:448292},{filename:"/libraries/pbrlib/genglsl/mx_conductor_bsdf.glsl",start:448292,end:450049},{filename:"/libraries/pbrlib/genglsl/mx_dielectric_bsdf.glsl",start:450049,end:452691},{filename:"/libraries/pbrlib/genglsl/mx_displacement_float.glsl",start:452691,end:452836},{filename:"/libraries/pbrlib/genglsl/mx_displacement_vector3.glsl",start:452836,end:452976},{filename:"/libraries/pbrlib/genglsl/mx_generalized_schlick_bsdf.glsl",start:452976,end:456145},{filename:"/libraries/pbrlib/genglsl/mx_generalized_schlick_edf.glsl",start:456145,end:456657},{filename:"/libraries/pbrlib/genglsl/mx_layer_bsdf.glsl",start:456657,end:456907},{filename:"/libraries/pbrlib/genglsl/mx_layer_vdf.glsl",start:456907,end:457139},{filename:"/libraries/pbrlib/genglsl/mx_mix_bsdf.glsl",start:457139,end:457405},{filename:"/libraries/pbrlib/genglsl/mx_mix_edf.glsl",start:457405,end:457571},{filename:"/libraries/pbrlib/genglsl/mx_multiply_bsdf_color3.glsl",start:457571,end:457824},{filename:"/libraries/pbrlib/genglsl/mx_multiply_bsdf_float.glsl",start:457824,end:458082},{filename:"/libraries/pbrlib/genglsl/mx_multiply_edf_color3.glsl",start:458082,end:458235},{filename:"/libraries/pbrlib/genglsl/mx_multiply_edf_float.glsl",start:458235,end:458388},{filename:"/libraries/pbrlib/genglsl/mx_oren_nayar_diffuse_bsdf.glsl",start:458388,end:459763},{filename:"/libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl",start:459763,end:460208},{filename:"/libraries/pbrlib/genglsl/mx_roughness_dual.glsl",start:460208,end:460476},{filename:"/libraries/pbrlib/genglsl/mx_sheen_bsdf.glsl",start:460476,end:462562},{filename:"/libraries/pbrlib/genglsl/mx_subsurface_bsdf.glsl",start:462562,end:463615},{filename:"/libraries/pbrlib/genglsl/mx_translucent_bsdf.glsl",start:463615,end:464341},{filename:"/libraries/pbrlib/genglsl/mx_uniform_edf.glsl",start:464341,end:464549},{filename:"/libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx",start:464549,end:470654},{filename:"/libraries/pbrlib/genmdl/pbrlib_genmdl_impl.mtlx",start:470654,end:482039},{filename:"/libraries/pbrlib/genmsl/pbrlib_genmsl_impl.mtlx",start:482039,end:482306},{filename:"/libraries/pbrlib/genosl/lib/mx_microfacet.osl",start:482306,end:484038},{filename:"/libraries/pbrlib/genosl/mx_anisotropic_vdf.osl",start:484038,end:484409},{filename:"/libraries/pbrlib/genosl/mx_artistic_ior.osl",start:484409,end:485001},{filename:"/libraries/pbrlib/genosl/mx_blackbody.osl",start:485001,end:486773},{filename:"/libraries/pbrlib/genosl/mx_chiang_hair_bsdf.osl",start:486773,end:487465},{filename:"/libraries/pbrlib/genosl/mx_chiang_hair_roughness.osl",start:487465,end:487822},{filename:"/libraries/pbrlib/genosl/mx_dielectric_bsdf.osl",start:487822,end:488372},{filename:"/libraries/pbrlib/genosl/mx_generalized_schlick_bsdf.osl",start:488372,end:489011},{filename:"/libraries/pbrlib/genosl/mx_generalized_schlick_edf.osl",start:489011,end:489281},{filename:"/libraries/pbrlib/genosl/mx_roughness_anisotropy.osl",start:489281,end:489732},{filename:"/libraries/pbrlib/genosl/mx_roughness_dual.osl",start:489732,end:490028},{filename:"/libraries/pbrlib/genosl/mx_subsurface_bsdf.osl",start:490028,end:490356},{filename:"/libraries/pbrlib/genosl/mx_surface.osl",start:490356,end:490557},{filename:"/libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx",start:490557,end:496402},{filename:"/libraries/pbrlib/pbrlib_defs.mtlx",start:496402,end:520720},{filename:"/libraries/pbrlib/pbrlib_ng.mtlx",start:520720,end:521514},{filename:"/libraries/stdlib/genglsl/lib/mx_geometry.glsl",start:521514,end:522875},{filename:"/libraries/stdlib/genglsl/lib/mx_hextile.glsl",start:522875,end:527376},{filename:"/libraries/stdlib/genglsl/lib/mx_hsv.glsl",start:527376,end:530855},{filename:"/libraries/stdlib/genglsl/lib/mx_math.glsl",start:530855,end:531490},{filename:"/libraries/stdlib/genglsl/lib/mx_noise.glsl",start:531490,end:554429},{filename:"/libraries/stdlib/genglsl/lib/mx_transform_uv.glsl",start:554429,end:554545},{filename:"/libraries/stdlib/genglsl/lib/mx_transform_uv_vflip.glsl",start:554545,end:554681},{filename:"/libraries/stdlib/genglsl/mx_aastep.glsl",start:554681,end:554881},{filename:"/libraries/stdlib/genglsl/mx_burn_color3.glsl",start:554881,end:555166},{filename:"/libraries/stdlib/genglsl/mx_burn_color4.glsl",start:555166,end:555507},{filename:"/libraries/stdlib/genglsl/mx_burn_float.glsl",start:555507,end:555730},{filename:"/libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl",start:555730,end:555867},{filename:"/libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl",start:555867,end:556004},{filename:"/libraries/stdlib/genglsl/mx_creatematrix_vector3_matrix33.glsl",start:556004,end:556211},{filename:"/libraries/stdlib/genglsl/mx_creatematrix_vector3_matrix44.glsl",start:556211,end:556487},{filename:"/libraries/stdlib/genglsl/mx_creatematrix_vector4_matrix44.glsl",start:556487,end:556771},{filename:"/libraries/stdlib/genglsl/mx_disjointover_color4.glsl",start:556771,end:557365},{filename:"/libraries/stdlib/genglsl/mx_dodge_color3.glsl",start:557365,end:557655},{filename:"/libraries/stdlib/genglsl/mx_dodge_color4.glsl",start:557655,end:558004},{filename:"/libraries/stdlib/genglsl/mx_dodge_float.glsl",start:558004,end:558226},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_float.glsl",start:558226,end:558498},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_vector2.glsl",start:558498,end:558768},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_vector3.glsl",start:558768,end:559038},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_vector4.glsl",start:559038,end:559308},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_float.glsl",start:559308,end:559580},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl",start:559580,end:559850},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl",start:559850,end:560120},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl",start:560120,end:560390},{filename:"/libraries/stdlib/genglsl/mx_heighttonormal_vector3.glsl",start:560390,end:561343},{filename:"/libraries/stdlib/genglsl/mx_hextiledimage.glsl",start:561343,end:564493},{filename:"/libraries/stdlib/genglsl/mx_hextilednormalmap.glsl",start:564493,end:566999},{filename:"/libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl",start:566999,end:567113},{filename:"/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl",start:567113,end:567242},{filename:"/libraries/stdlib/genglsl/mx_image_color3.glsl",start:567242,end:567632},{filename:"/libraries/stdlib/genglsl/mx_image_color4.glsl",start:567632,end:568018},{filename:"/libraries/stdlib/genglsl/mx_image_float.glsl",start:568018,end:568407},{filename:"/libraries/stdlib/genglsl/mx_image_vector2.glsl",start:568407,end:568797},{filename:"/libraries/stdlib/genglsl/mx_image_vector3.glsl",start:568797,end:569188},{filename:"/libraries/stdlib/genglsl/mx_image_vector4.glsl",start:569188,end:569575},{filename:"/libraries/stdlib/genglsl/mx_luminance_color3.glsl",start:569575,end:569689},{filename:"/libraries/stdlib/genglsl/mx_luminance_color4.glsl",start:569689,end:569820},{filename:"/libraries/stdlib/genglsl/mx_mix_surfaceshader.glsl",start:569820,end:570054},{filename:"/libraries/stdlib/genglsl/mx_noise2d_float.glsl",start:570054,end:570264},{filename:"/libraries/stdlib/genglsl/mx_noise2d_vector2.glsl",start:570264,end:570475},{filename:"/libraries/stdlib/genglsl/mx_noise2d_vector3.glsl",start:570475,end:570683},{filename:"/libraries/stdlib/genglsl/mx_noise2d_vector4.glsl",start:570683,end:570958},{filename:"/libraries/stdlib/genglsl/mx_noise3d_float.glsl",start:570958,end:571168},{filename:"/libraries/stdlib/genglsl/mx_noise3d_vector2.glsl",start:571168,end:571379},{filename:"/libraries/stdlib/genglsl/mx_noise3d_vector3.glsl",start:571379,end:571587},{filename:"/libraries/stdlib/genglsl/mx_noise3d_vector4.glsl",start:571587,end:571866},{filename:"/libraries/stdlib/genglsl/mx_normalmap.glsl",start:571866,end:572364},{filename:"/libraries/stdlib/genglsl/mx_premult_color4.glsl",start:572364,end:572461},{filename:"/libraries/stdlib/genglsl/mx_ramplr_float.glsl",start:572461,end:572612},{filename:"/libraries/stdlib/genglsl/mx_ramplr_vector2.glsl",start:572612,end:572762},{filename:"/libraries/stdlib/genglsl/mx_ramplr_vector3.glsl",start:572762,end:572912},{filename:"/libraries/stdlib/genglsl/mx_ramplr_vector4.glsl",start:572912,end:573062},{filename:"/libraries/stdlib/genglsl/mx_ramptb_float.glsl",start:573062,end:573213},{filename:"/libraries/stdlib/genglsl/mx_ramptb_vector2.glsl",start:573213,end:573363},{filename:"/libraries/stdlib/genglsl/mx_ramptb_vector3.glsl",start:573363,end:573513},{filename:"/libraries/stdlib/genglsl/mx_ramptb_vector4.glsl",start:573513,end:573663},{filename:"/libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl",start:573663,end:573777},{filename:"/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl",start:573777,end:573906},{filename:"/libraries/stdlib/genglsl/mx_rotate_vector2.glsl",start:573906,end:574164},{filename:"/libraries/stdlib/genglsl/mx_rotate_vector3.glsl",start:574164,end:575065},{filename:"/libraries/stdlib/genglsl/mx_smoothstep_float.glsl",start:575065,end:575290},{filename:"/libraries/stdlib/genglsl/mx_splitlr_float.glsl",start:575290,end:575483},{filename:"/libraries/stdlib/genglsl/mx_splitlr_vector2.glsl",start:575483,end:575675},{filename:"/libraries/stdlib/genglsl/mx_splitlr_vector3.glsl",start:575675,end:575867},{filename:"/libraries/stdlib/genglsl/mx_splitlr_vector4.glsl",start:575867,end:576059},{filename:"/libraries/stdlib/genglsl/mx_splittb_float.glsl",start:576059,end:576252},{filename:"/libraries/stdlib/genglsl/mx_splittb_vector2.glsl",start:576252,end:576444},{filename:"/libraries/stdlib/genglsl/mx_splittb_vector3.glsl",start:576444,end:576636},{filename:"/libraries/stdlib/genglsl/mx_splittb_vector4.glsl",start:576636,end:576828},{filename:"/libraries/stdlib/genglsl/mx_surface_unlit.glsl",start:576828,end:577120},{filename:"/libraries/stdlib/genglsl/mx_transformmatrix_vector2M3.glsl",start:577120,end:577261},{filename:"/libraries/stdlib/genglsl/mx_transformmatrix_vector3M4.glsl",start:577261,end:577403},{filename:"/libraries/stdlib/genglsl/mx_unpremult_color4.glsl",start:577403,end:577502},{filename:"/libraries/stdlib/genglsl/mx_worleynoise2d_float.glsl",start:577502,end:577686},{filename:"/libraries/stdlib/genglsl/mx_worleynoise2d_vector2.glsl",start:577686,end:577870},{filename:"/libraries/stdlib/genglsl/mx_worleynoise2d_vector3.glsl",start:577870,end:578054},{filename:"/libraries/stdlib/genglsl/mx_worleynoise3d_float.glsl",start:578054,end:578238},{filename:"/libraries/stdlib/genglsl/mx_worleynoise3d_vector2.glsl",start:578238,end:578422},{filename:"/libraries/stdlib/genglsl/mx_worleynoise3d_vector3.glsl",start:578422,end:578606},{filename:"/libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx",start:578606,end:655400},{filename:"/libraries/stdlib/genmdl/stdlib_genmdl_impl.mtlx",start:655400,end:749690},{filename:"/libraries/stdlib/genmsl/lib/mx_math.metal",start:749690,end:753979},{filename:"/libraries/stdlib/genmsl/lib/mx_matscalaroperators.metal",start:753979,end:754988},{filename:"/libraries/stdlib/genmsl/lib/mx_texture.metal",start:754988,end:755726},{filename:"/libraries/stdlib/genmsl/stdlib_genmsl_impl.mtlx",start:755726,end:765452},{filename:"/libraries/stdlib/genosl/include/color4.h",start:765452,end:771290},{filename:"/libraries/stdlib/genosl/include/matrix33.h",start:771290,end:773910},{filename:"/libraries/stdlib/genosl/include/mx_funcs.h",start:773910,end:795701},{filename:"/libraries/stdlib/genosl/include/vector2.h",start:795701,end:801367},{filename:"/libraries/stdlib/genosl/include/vector4.h",start:801367,end:810365},{filename:"/libraries/stdlib/genosl/lib/mx_transform_uv.osl",start:810365,end:810432},{filename:"/libraries/stdlib/genosl/lib/mx_transform_uv_vflip.osl",start:810432,end:810528},{filename:"/libraries/stdlib/genosl/lib/vector4_extra_ops.osl",start:810528,end:811402},{filename:"/libraries/stdlib/genosl/mx_burn_color3.osl",start:811402,end:811655},{filename:"/libraries/stdlib/genosl/mx_burn_color4.osl",start:811655,end:811993},{filename:"/libraries/stdlib/genosl/mx_burn_float.osl",start:811993,end:812210},{filename:"/libraries/stdlib/genosl/mx_cellnoise2d_float.osl",start:812210,end:812327},{filename:"/libraries/stdlib/genosl/mx_cellnoise3d_float.osl",start:812327,end:812429},{filename:"/libraries/stdlib/genosl/mx_creatematrix.osl",start:812429,end:813334},{filename:"/libraries/stdlib/genosl/mx_disjointover_color4.osl",start:813334,end:813912},{filename:"/libraries/stdlib/genosl/mx_dodge_color3.osl",start:813912,end:814170},{filename:"/libraries/stdlib/genosl/mx_dodge_color4.osl",start:814170,end:814517},{filename:"/libraries/stdlib/genosl/mx_dodge_float.osl",start:814517,end:814724},{filename:"/libraries/stdlib/genosl/mx_fractal2d_float.osl",start:814724,end:814970},{filename:"/libraries/stdlib/genosl/mx_fractal2d_vector2.osl",start:814970,end:815224},{filename:"/libraries/stdlib/genosl/mx_fractal2d_vector3.osl",start:815224,end:815475},{filename:"/libraries/stdlib/genosl/mx_fractal2d_vector4.osl",start:815475,end:815729},{filename:"/libraries/stdlib/genosl/mx_fractal3d_float.osl",start:815729,end:815960},{filename:"/libraries/stdlib/genosl/mx_fractal3d_vector2.osl",start:815960,end:816199},{filename:"/libraries/stdlib/genosl/mx_fractal3d_vector3.osl",start:816199,end:816435},{filename:"/libraries/stdlib/genosl/mx_fractal3d_vector4.osl",start:816435,end:816674},{filename:"/libraries/stdlib/genosl/mx_frame_float.osl",start:816674,end:816843},{filename:"/libraries/stdlib/genosl/mx_geomcolor_color3.osl",start:816843,end:816939},{filename:"/libraries/stdlib/genosl/mx_geomcolor_color4.osl",start:816939,end:817170},{filename:"/libraries/stdlib/genosl/mx_geomcolor_float.osl",start:817170,end:817265},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_boolean.osl",start:817265,end:817416},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_color3.osl",start:817416,end:817569},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_color4.osl",start:817569,end:817937},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_float.osl",start:817937,end:818111},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_integer.osl",start:818111,end:818262},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_string.osl",start:818262,end:818418},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_vector2.osl",start:818418,end:818684},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_vector3.osl",start:818684,end:818840},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_vector4.osl",start:818840,end:819158},{filename:"/libraries/stdlib/genosl/mx_heighttonormal_vector3.osl",start:819158,end:820132},{filename:"/libraries/stdlib/genosl/mx_hsvtorgb_color3.osl",start:820132,end:820237},{filename:"/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl",start:820237,end:820359},{filename:"/libraries/stdlib/genosl/mx_image_color3.osl",start:820359,end:821304},{filename:"/libraries/stdlib/genosl/mx_image_color4.osl",start:821304,end:822427},{filename:"/libraries/stdlib/genosl/mx_image_float.osl",start:822427,end:823290},{filename:"/libraries/stdlib/genosl/mx_image_vector2.osl",start:823290,end:824205},{filename:"/libraries/stdlib/genosl/mx_image_vector3.osl",start:824205,end:825023},{filename:"/libraries/stdlib/genosl/mx_image_vector4.osl",start:825023,end:826066},{filename:"/libraries/stdlib/genosl/mx_luminance_color3.osl",start:826066,end:826178},{filename:"/libraries/stdlib/genosl/mx_luminance_color4.osl",start:826178,end:826310},{filename:"/libraries/stdlib/genosl/mx_mix_surfaceshader.osl",start:826310,end:826552},{filename:"/libraries/stdlib/genosl/mx_noise2d_float.osl",start:826552,end:826746},{filename:"/libraries/stdlib/genosl/mx_noise2d_vector2.osl",start:826746,end:826951},{filename:"/libraries/stdlib/genosl/mx_noise2d_vector3.osl",start:826951,end:827150},{filename:"/libraries/stdlib/genosl/mx_noise2d_vector4.osl",start:827150,end:827355},{filename:"/libraries/stdlib/genosl/mx_noise3d_float.osl",start:827355,end:827534},{filename:"/libraries/stdlib/genosl/mx_noise3d_vector2.osl",start:827534,end:827724},{filename:"/libraries/stdlib/genosl/mx_noise3d_vector3.osl",start:827724,end:827908},{filename:"/libraries/stdlib/genosl/mx_noise3d_vector4.osl",start:827908,end:828098},{filename:"/libraries/stdlib/genosl/mx_normalmap.osl",start:828098,end:829010},{filename:"/libraries/stdlib/genosl/mx_premult_color4.osl",start:829010,end:829112},{filename:"/libraries/stdlib/genosl/mx_rgbtohsv_color3.osl",start:829112,end:829217},{filename:"/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl",start:829217,end:829339},{filename:"/libraries/stdlib/genosl/mx_rotate_vector2.osl",start:829339,end:829600},{filename:"/libraries/stdlib/genosl/mx_rotate_vector3.osl",start:829600,end:830670},{filename:"/libraries/stdlib/genosl/mx_surface_unlit.osl",start:830670,end:831084},{filename:"/libraries/stdlib/genosl/mx_surfacematerial.osl",start:831084,end:831367},{filename:"/libraries/stdlib/genosl/mx_time_float.osl",start:831367,end:831545},{filename:"/libraries/stdlib/genosl/mx_transformmatrix_vector2M3.osl",start:831545,end:831731},{filename:"/libraries/stdlib/genosl/mx_unpremult_color4.osl",start:831731,end:831835},{filename:"/libraries/stdlib/genosl/mx_worleynoise2d_float.osl",start:831835,end:831995},{filename:"/libraries/stdlib/genosl/mx_worleynoise2d_vector2.osl",start:831995,end:832161},{filename:"/libraries/stdlib/genosl/mx_worleynoise2d_vector3.osl",start:832161,end:832326},{filename:"/libraries/stdlib/genosl/mx_worleynoise3d_float.osl",start:832326,end:832485},{filename:"/libraries/stdlib/genosl/mx_worleynoise3d_vector2.osl",start:832485,end:832650},{filename:"/libraries/stdlib/genosl/mx_worleynoise3d_vector3.osl",start:832650,end:832814},{filename:"/libraries/stdlib/genosl/stdlib_genosl_impl.mtlx",start:832814,end:909860},{filename:"/libraries/stdlib/stdlib_defs.mtlx",start:909860,end:1187069},{filename:"/libraries/stdlib/stdlib_ng.mtlx",start:1187069,end:1509715},{filename:"/libraries/targets/essl.mtlx",start:1509715,end:1510177},{filename:"/libraries/targets/genglsl.mtlx",start:1510177,end:1510630},{filename:"/libraries/targets/genmdl.mtlx",start:1510630,end:1511082},{filename:"/libraries/targets/genmsl.mtlx",start:1511082,end:1511552},{filename:"/libraries/targets/genosl.mtlx",start:1511552,end:1512004}],remote_package_size:1512004})})();var H=Object.assign({},G),O="./this.program",gA=(A,I)=>{throw I},_="";function AA(A){return G.locateFile?G.locateFile(A,_):_+A}var QA,DA;if(X){var CA=require("fs");require("path"),_=__dirname+"/",DA=A=>{A=DI(A)?new URL(A):A;var I=CA.readFileSync(A);return I},QA=async(A,I=!0)=>{A=DI(A)?new URL(A):A;var g=CA.readFileSync(A,I?void 0:"utf8");return g},!G.thisProgram&&process.argv.length>1&&(O=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),gA=(A,I)=>{throw process.exitCode=A,I}}else(d||U)&&(U?_=self.location.href:typeof document<"u"&&document.currentScript&&(_=document.currentScript.src),F&&(_=F),_.startsWith("blob:")?_="":_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1),U&&(DA=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}),QA=async A=>{if(DI(A))return new Promise((g,B)=>{var Q=new XMLHttpRequest;Q.open("GET",A,!0),Q.responseType="arraybuffer",Q.onload=()=>{if(Q.status==200||Q.status==0&&Q.response){g(Q.response);return}B(Q.status)},Q.onerror=B,Q.send(null)});var I=await fetch(A,{credentials:"same-origin"});if(I.ok)return I.arrayBuffer();throw new Error(I.status+" : "+I.url)});var RA=G.print||console.log.bind(console),JA=G.printErr||console.error.bind(console);Object.assign(G,H),H=null,G.arguments&&G.arguments,G.thisProgram&&(O=G.thisProgram);var e=G.wasmBinary,CI,EI=!1,iI,lA,bA,FA,qA,j,n,Ng,xI;function lg(){var A=CI.buffer;G.HEAP8=lA=new Int8Array(A),G.HEAP16=FA=new Int16Array(A),G.HEAPU8=bA=new Uint8Array(A),G.HEAPU16=qA=new Uint16Array(A),G.HEAP32=j=new Int32Array(A),G.HEAPU32=n=new Uint32Array(A),G.HEAPF32=Ng=new Float32Array(A),G.HEAPF64=xI=new Float64Array(A)}var og=[],Jg=[],Rg=[];function kB(){if(G.preRun)for(typeof G.preRun=="function"&&(G.preRun=[G.preRun]);G.preRun.length;)KB(G.preRun.shift());uI(og)}function dB(){!G.noFSInit&&!C.initialized&&C.init(),C.ignorePermissions=!1,uI(Jg)}function sB(){if(G.postRun)for(typeof G.postRun=="function"&&(G.postRun=[G.postRun]);G.postRun.length;)VB(G.postRun.shift());uI(Rg)}function KB(A){og.unshift(A)}function mB(A){Jg.unshift(A)}function VB(A){Rg.unshift(A)}var KA=0,zA=null;function TI(A){KA++,G.monitorRunDependencies?.(KA)}function GI(A){if(KA--,G.monitorRunDependencies?.(KA),KA==0&&zA){var I=zA;zA=null,I()}}function LA(A){G.onAbort?.(A),A="Aborted("+A+")",JA(A),EI=!0,A+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(A);throw M(I),I}var LB="data:application/octet-stream;base64,",Zg=A=>A.startsWith(LB),DI=A=>A.startsWith("file://");function jB(){var A="JsMaterialXGenShader.wasm";return Zg(A)?A:AA(A)}var PI;function xB(A){if(A==PI&&e)return new Uint8Array(e);if(DA)return DA(A);throw"both async and sync fetching of the wasm failed"}async function TB(A){if(!e)try{var I=await QA(A);return new Uint8Array(I)}catch{}return xB(A)}async function PB(A,I){try{var g=await TB(A),B=await WebAssembly.instantiate(g,I);return B}catch(Q){JA(`failed to asynchronously prepare wasm: ${Q}`),LA(Q)}}async function uB(A,I,g){if(!A&&typeof WebAssembly.instantiateStreaming=="function"&&!Zg(I)&&!DI(I)&&!X&&typeof fetch=="function")try{var B=fetch(I,{credentials:"same-origin"}),Q=await WebAssembly.instantiateStreaming(B,g);return Q}catch(E){JA(`wasm streaming compile failed: ${E}`),JA("falling back to ArrayBuffer instantiation")}return PB(I,g)}function vB(){return{a:wE}}async function fB(){function A(Q,E){return GA=Q.exports,CI=GA._a,lg(),Kg=GA.cb,mB(GA.$a),GI(),GA}TI();function I(Q){A(Q.instance)}var g=vB();if(G.instantiateWasm)try{return G.instantiateWasm(g,A)}catch(Q){JA(`Module.instantiateWasm callback failed with error: ${Q}`),M(Q)}PI??=jB();try{var B=await uB(e,PI,g);return I(B),B}catch(Q){M(Q);return}}var k,iA,tB={189824:()=>{G.TreeIterator.prototype[Symbol.iterator]=function(){return this}},189908:()=>{G.GraphIterator.prototype[Symbol.iterator]=function(){return this}},189993:()=>{G.InheritanceIterator.prototype[Symbol.iterator]=function(){return this}}};class bg{name="ExitStatus";constructor(I){this.message=`Program terminated with exit(${I})`,this.status=I}}var uI=A=>{for(;A.length>0;)A.shift()(G)},hg=G.noExitRuntime||!0,v=A=>eg(A),f=()=>rg(),cg=typeof TextDecoder<"u"?new TextDecoder:void 0,jA=(A,I=0,g=NaN)=>{for(var B=I+g,Q=I;A[Q]&&!(Q>=B);)++Q;if(Q-I>16&&A.buffer&&cg)return cg.decode(A.subarray(I,Q));for(var E="";I<Q;){var i=A[I++];if(!(i&128)){E+=String.fromCharCode(i);continue}var D=A[I++]&63;if((i&224)==192){E+=String.fromCharCode((i&31)<<6|D);continue}var Y=A[I++]&63;if((i&240)==224?i=(i&15)<<12|D<<6|Y:i=(i&7)<<18|D<<12|Y<<6|A[I++]&63,i<65536)E+=String.fromCharCode(i);else{var N=i-65536;E+=String.fromCharCode(55296|N>>10,56320|N&1023)}}return E},eA=(A,I)=>A?jA(bA,A,I):"",pB=(A,I,g,B)=>LA(`Assertion failed: ${eA(A)}, at: `+[I?eA(I):"unknown filename",g,B?eA(B):"unknown function"]),YI=[],wI=0,nB=A=>{var I=new vI(A);return I.get_caught()||(I.set_caught(!0),wI--),I.set_rethrown(!1),YI.push(I),_g(A),AB(A)},SA=0,qB=()=>{T(0,0);var A=YI.pop();Og(A.excPtr),SA=0};class vI{constructor(I){this.excPtr=I,this.ptr=I-24}set_type(I){n[this.ptr+4>>2]=I}get_type(){return n[this.ptr+4>>2]}set_destructor(I){n[this.ptr+8>>2]=I}get_destructor(){return n[this.ptr+8>>2]}set_caught(I){I=I?1:0,lA[this.ptr+12]=I}get_caught(){return lA[this.ptr+12]!=0}set_rethrown(I){I=I?1:0,lA[this.ptr+13]=I}get_rethrown(){return lA[this.ptr+13]!=0}init(I,g){this.set_adjusted_ptr(0),this.set_type(I),this.set_destructor(g)}set_adjusted_ptr(I){n[this.ptr+16>>2]=I}get_adjusted_ptr(){return n[this.ptr+16>>2]}}var zB=A=>{throw SA||(SA=A),SA},NI=A=>zg(A),fI=A=>{var I=SA;if(!I)return NI(0),0;var g=new vI(I);g.set_adjusted_ptr(I);var B=g.get_type();if(!B)return NI(0),I;for(var Q of A){if(Q===0||Q===B)break;var E=g.ptr+16;if($g(Q,B,E))return NI(Q),I}return NI(B),I},eB=()=>fI([]),rB=A=>fI([A]),OB=(A,I)=>fI([A,I]),_B=()=>{var A=YI.pop();A||LA("no exception to throw");var I=A.excPtr;throw A.get_rethrown()||(YI.push(A),A.set_rethrown(!0),A.set_caught(!1),wI++),SA=I,SA},$B=(A,I,g)=>{var B=new vI(A);throw B.init(I,g),SA=A,wI++,SA},AQ=()=>wI,lI=()=>{var A=j[+ZA.varargs>>2];return ZA.varargs+=4,A},xA=lI,IA={isAbs:A=>A.charAt(0)==="/",splitPath:A=>{var I=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return I.exec(A).slice(1)},normalizeArray:(A,I)=>{for(var g=0,B=A.length-1;B>=0;B--){var Q=A[B];Q==="."?A.splice(B,1):Q===".."?(A.splice(B,1),g++):g&&(A.splice(B,1),g--)}if(I)for(;g;g--)A.unshift("..");return A},normalize:A=>{var I=IA.isAbs(A),g=A.substr(-1)==="/";return A=IA.normalizeArray(A.split("/").filter(B=>!!B),!I).join("/"),!A&&!I&&(A="."),A&&g&&(A+="/"),(I?"/":"")+A},dirname:A=>{var I=IA.splitPath(A),g=I[0],B=I[1];return!g&&!B?".":(B&&(B=B.substr(0,B.length-1)),g+B)},basename:A=>{if(A==="/")return"/";A=IA.normalize(A),A=A.replace(/\/$/,"");var I=A.lastIndexOf("/");return I===-1?A:A.substr(I+1)},join:(...A)=>IA.normalize(A.join("/")),join2:(A,I)=>IA.normalize(A+"/"+I)},IQ=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return B=>crypto.getRandomValues(B);if(X)try{var A=require("crypto"),I=A.randomFillSync;if(I)return B=>A.randomFillSync(B);var g=A.randomBytes;return B=>(B.set(g(B.byteLength)),B)}catch{}LA("initRandomDevice")},Fg=A=>(Fg=IQ())(A),TA={resolve:(...A)=>{for(var I="",g=!1,B=A.length-1;B>=-1&&!g;B--){var Q=B>=0?A[B]:C.cwd();if(typeof Q!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!Q)return"";I=Q+"/"+I,g=IA.isAbs(Q)}return I=IA.normalizeArray(I.split("/").filter(E=>!!E),!g).join("/"),(g?"/":"")+I||"."},relative:(A,I)=>{A=TA.resolve(A).substr(1),I=TA.resolve(I).substr(1);function g(N){for(var l=0;l<N.length&&N[l]==="";l++);for(var J=N.length-1;J>=0&&N[J]==="";J--);return l>J?[]:N.slice(l,J-l+1)}for(var B=g(A.split("/")),Q=g(I.split("/")),E=Math.min(B.length,Q.length),i=E,D=0;D<E;D++)if(B[D]!==Q[D]){i=D;break}for(var Y=[],D=i;D<B.length;D++)Y.push("..");return Y=Y.concat(Q.slice(i)),Y.join("/")}},tI=[],pI=A=>{for(var I=0,g=0;g<A.length;++g){var B=A.charCodeAt(g);B<=127?I++:B<=2047?I+=2:B>=55296&&B<=57343?(I+=4,++g):I+=3}return I},nI=(A,I,g,B)=>{if(!(B>0))return 0;for(var Q=g,E=g+B-1,i=0;i<A.length;++i){var D=A.charCodeAt(i);if(D>=55296&&D<=57343){var Y=A.charCodeAt(++i);D=65536+((D&1023)<<10)|Y&1023}if(D<=127){if(g>=E)break;I[g++]=D}else if(D<=2047){if(g+1>=E)break;I[g++]=192|D>>6,I[g++]=128|D&63}else if(D<=65535){if(g+2>=E)break;I[g++]=224|D>>12,I[g++]=128|D>>6&63,I[g++]=128|D&63}else{if(g+3>=E)break;I[g++]=240|D>>18,I[g++]=128|D>>12&63,I[g++]=128|D>>6&63,I[g++]=128|D&63}}return I[g]=0,g-Q};function Ug(A,I,g){var B=pI(A)+1,Q=new Array(B),E=nI(A,Q,0,Q.length);return Q.length=E,Q}var gQ=()=>{if(!tI.length){var A=null;if(X){var I=256,g=Buffer.alloc(I),B=0,Q=process.stdin.fd;try{B=CA.readSync(Q,g,0,I)}catch(E){if(E.toString().includes("EOF"))B=0;else throw E}B>0&&(A=g.slice(0,B).toString("utf-8"))}else typeof window<"u"&&typeof window.prompt=="function"&&(A=window.prompt("Input: "),A!==null&&(A+=`
|
|
1
|
+
import{Texture as WI,WebGLRenderTarget as Ai,RepeatWrapping as Gg,LinearFilter as GB,LinearMipMapLinearFilter as DB,FloatType as Ii,RGBAFormat as gi,PlaneGeometry as YB,OrthographicCamera as Bi,ShaderMaterial as wB,Scene as Qi,Mesh as Dg,EquirectangularReflectionMapping as Ci,Vector3 as nA,Quaternion as Ei,Color as ii,Uniform as Gi,LinearSRGBColorSpace as Di,Cache as sA,MirroredRepeatWrapping as Yi,ClampToEdgeWrapping as wi,NearestMipMapNearestFilter as Ni,NearestFilter as li,MeshBasicMaterial as oi,PMREMGenerator as Ji,cloneUniforms as Ri,cloneUniformsGroups as Zi,GLSL3 as bi,Matrix4 as HI,UniformsLib as hi,Matrix3 as ci,MeshStandardMaterial as XI,DoubleSide as Fi,FrontSide as Ui}from"./three.min.js";var kI=function(){var F=typeof document<"u"?document.currentScript?.src:void 0;return typeof __filename<"u"&&(F=F||__filename),function(w){w=w||{};var R,G=w,c,M,b=new Promise((A,I)=>{c=A,M=I}),d=typeof window=="object",U=typeof WorkerGlobalScope<"u",X=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";G.expectedDataFileDownloads??=0,G.expectedDataFileDownloads++,(()=>{var A=typeof ENVIRONMENT_IS_PTHREAD<"u"&&ENVIRONMENT_IS_PTHREAD,I=typeof ENVIRONMENT_IS_WASM_WORKER<"u"&&ENVIRONMENT_IS_WASM_WORKER;if(A||I)return;var g=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";function B(Q){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 E="bin/JsMaterialXGenShader.data",i="JsMaterialXGenShader.data",D=G.locateFile?G.locateFile(i,""):i,Y=Q.remote_package_size;function N(o,s,x,K){if(g){require("fs").readFile(o,(V,q)=>{V?K(V):x(q.buffer)});return}G.dataFileDownloads??={},fetch(o).catch(V=>Promise.reject(new Error(`Network Error: ${o}`,{cause:V}))).then(V=>{if(!V.ok)return Promise.reject(new Error(`${V.status}: ${V.url}`));if(!V.body&&V.arrayBuffer)return V.arrayBuffer().then(x);const q=V.body.getReader(),BA=()=>q.read().then(S).catch(W=>Promise.reject(new Error(`Unexpected error while handling : ${V.url} ${W}`,{cause:W}))),r=[],oA=V.headers,y=Number(oA.get("Content-Length")??s);let a=0;const S=({done:W,value:L})=>{if(W){const $=new Uint8Array(r.map(u=>u.length).reduce((u,hA)=>u+hA,0));let EA=0;for(const u of r)$.set(u,EA),EA+=u.length;x($.buffer)}else{r.push(L),a+=L.length,G.dataFileDownloads[o]={loaded:a,total:y};let $=0,EA=0;for(const u of Object.values(G.dataFileDownloads))$+=u.loaded,EA+=u.total;return G.setStatus?.(`Downloading data... (${$}/${EA})`),BA()}};return G.setStatus?.("Downloading data..."),BA()})}function l(o){console.error("package error:",o)}var J=null,Z=G.getPreloadedPackage?G.getPreloadedPackage(D,Y):null;Z||N(D,Y,o=>{J?(J(o),J=null):Z=o},l);function h(o){function s(BA,r){if(!BA)throw r+new Error().stack}o.FS_createPath("/","libraries",!0,!0),o.FS_createPath("/libraries","bxdf",!0,!0),o.FS_createPath("/libraries/bxdf","genglsl",!0,!0),o.FS_createPath("/libraries/bxdf","genmdl",!0,!0),o.FS_createPath("/libraries/bxdf","lama",!0,!0),o.FS_createPath("/libraries/bxdf","translation",!0,!0),o.FS_createPath("/libraries","cmlib",!0,!0),o.FS_createPath("/libraries","lights",!0,!0),o.FS_createPath("/libraries/lights","genglsl",!0,!0),o.FS_createPath("/libraries/lights","genmsl",!0,!0),o.FS_createPath("/libraries","nprlib",!0,!0),o.FS_createPath("/libraries/nprlib","genglsl",!0,!0),o.FS_createPath("/libraries/nprlib","genmdl",!0,!0),o.FS_createPath("/libraries/nprlib","genmsl",!0,!0),o.FS_createPath("/libraries/nprlib","genosl",!0,!0),o.FS_createPath("/libraries","pbrlib",!0,!0),o.FS_createPath("/libraries/pbrlib","genglsl",!0,!0),o.FS_createPath("/libraries/pbrlib/genglsl","lib",!0,!0),o.FS_createPath("/libraries/pbrlib","genmdl",!0,!0),o.FS_createPath("/libraries/pbrlib","genmsl",!0,!0),o.FS_createPath("/libraries/pbrlib","genosl",!0,!0),o.FS_createPath("/libraries/pbrlib/genosl","lib",!0,!0),o.FS_createPath("/libraries","stdlib",!0,!0),o.FS_createPath("/libraries/stdlib","genglsl",!0,!0),o.FS_createPath("/libraries/stdlib/genglsl","lib",!0,!0),o.FS_createPath("/libraries/stdlib","genmdl",!0,!0),o.FS_createPath("/libraries/stdlib","genmsl",!0,!0),o.FS_createPath("/libraries/stdlib/genmsl","lib",!0,!0),o.FS_createPath("/libraries/stdlib","genosl",!0,!0),o.FS_createPath("/libraries/stdlib/genosl","include",!0,!0),o.FS_createPath("/libraries/stdlib/genosl","lib",!0,!0),o.FS_createPath("/libraries","targets",!0,!0);function x(BA,r,oA){this.start=BA,this.end=r,this.audio=oA}x.prototype={requests:{},open:function(BA,r){this.name=r,this.requests[r]=this,o.addRunDependency(`fp ${this.name}`)},send:function(){},onload:function(){var BA=this.byteArray.subarray(this.start,this.end);this.finish(BA)},finish:function(BA){var r=this;o.FS_createDataFile(this.name,null,BA,!0,!0,!0),o.removeRunDependency(`fp ${r.name}`),this.requests[this.name]=null}};for(var K=Q.files,V=0;V<K.length;++V)new x(K[V].start,K[V].end,K[V].audio||0).open("GET",K[V].filename);function q(BA){s(BA,"Loading data file failed."),s(BA.constructor.name===ArrayBuffer.name,"bad input to processPackageData");var r=new Uint8Array(BA);x.prototype.byteArray=r;for(var oA=Q.files,y=0;y<oA.length;++y)x.prototype.requests[oA[y].filename].onload();o.removeRunDependency("datafile_bin/JsMaterialXGenShader.data")}o.addRunDependency("datafile_bin/JsMaterialXGenShader.data"),o.preloadResults??={},o.preloadResults[E]={fromCache:!1},Z?(q(Z),Z=null):J=q}G.calledRun?h(G):(G.preRun??=[]).push(h)}B({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:29039},{filename:"/libraries/bxdf/genglsl/open_pbr_surface.mtlx",start:29039,end:60246},{filename:"/libraries/bxdf/genglsl/standard_surface.mtlx",start:60246,end:78019},{filename:"/libraries/bxdf/genmdl/open_pbr_surface.mtlx",start:78019,end:109045},{filename:"/libraries/bxdf/gltf_pbr.mtlx",start:109045,end:153938},{filename:"/libraries/bxdf/lama/lama_add.mtlx",start:153938,end:156592},{filename:"/libraries/bxdf/lama/lama_conductor.mtlx",start:156592,end:164592},{filename:"/libraries/bxdf/lama/lama_dielectric.mtlx",start:164592,end:175511},{filename:"/libraries/bxdf/lama/lama_diffuse.mtlx",start:175511,end:178457},{filename:"/libraries/bxdf/lama/lama_emission.mtlx",start:178457,end:179206},{filename:"/libraries/bxdf/lama/lama_generalized_schlick.mtlx",start:179206,end:191060},{filename:"/libraries/bxdf/lama/lama_iridescence.mtlx",start:191060,end:197023},{filename:"/libraries/bxdf/lama/lama_layer.mtlx",start:197023,end:198767},{filename:"/libraries/bxdf/lama/lama_mix.mtlx",start:198767,end:200854},{filename:"/libraries/bxdf/lama/lama_sheen.mtlx",start:200854,end:202977},{filename:"/libraries/bxdf/lama/lama_sss.mtlx",start:202977,end:209752},{filename:"/libraries/bxdf/lama/lama_surface.mtlx",start:209752,end:211420},{filename:"/libraries/bxdf/lama/lama_translucent.mtlx",start:211420,end:213057},{filename:"/libraries/bxdf/open_pbr_surface.mtlx",start:213057,end:254343},{filename:"/libraries/bxdf/standard_surface.mtlx",start:254343,end:282426},{filename:"/libraries/bxdf/translation/open_pbr_to_standard_surface.mtlx",start:282426,end:299893},{filename:"/libraries/bxdf/translation/standard_surface_to_gltf_pbr.mtlx",start:299893,end:310073},{filename:"/libraries/bxdf/translation/standard_surface_to_open_pbr.mtlx",start:310073,end:325182},{filename:"/libraries/bxdf/translation/standard_surface_to_usd.mtlx",start:325182,end:331063},{filename:"/libraries/bxdf/usd_preview_surface.mtlx",start:331063,end:354055},{filename:"/libraries/cmlib/cmlib_defs.mtlx",start:354055,end:358901},{filename:"/libraries/cmlib/cmlib_ng.mtlx",start:358901,end:376376},{filename:"/libraries/lights/genglsl/lights_genglsl_impl.mtlx",start:376376,end:376980},{filename:"/libraries/lights/genglsl/mx_directional_light.glsl",start:376980,end:377161},{filename:"/libraries/lights/genglsl/mx_point_light.glsl",start:377161,end:377531},{filename:"/libraries/lights/genglsl/mx_spot_light.glsl",start:377531,end:378155},{filename:"/libraries/lights/genmsl/lights_genmsl_impl.mtlx",start:378155,end:378756},{filename:"/libraries/lights/genmsl/mx_directional_light.metal",start:378756,end:378943},{filename:"/libraries/lights/genmsl/mx_point_light.metal",start:378943,end:379319},{filename:"/libraries/lights/genmsl/mx_spot_light.metal",start:379319,end:379949},{filename:"/libraries/lights/lights_defs.mtlx",start:379949,end:382361},{filename:"/libraries/nprlib/genglsl/nprlib_genglsl_impl.mtlx",start:382361,end:383025},{filename:"/libraries/nprlib/genmdl/nprlib_genmdl_impl.mtlx",start:383025,end:383787},{filename:"/libraries/nprlib/genmsl/nprlib_genmsl_impl.mtlx",start:383787,end:384448},{filename:"/libraries/nprlib/genosl/nprlib_genosl_impl.mtlx",start:384448,end:385146},{filename:"/libraries/nprlib/nprlib_defs.mtlx",start:385146,end:387781},{filename:"/libraries/nprlib/nprlib_ng.mtlx",start:387781,end:392630},{filename:"/libraries/pbrlib/genglsl/lib/mx_closure_type.glsl",start:392630,end:393047},{filename:"/libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl",start:393047,end:395841},{filename:"/libraries/pbrlib/genglsl/lib/mx_environment_none.glsl",start:395841,end:396076},{filename:"/libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl",start:396076,end:397162},{filename:"/libraries/pbrlib/genglsl/lib/mx_generate_albedo_table.glsl",start:397162,end:397534},{filename:"/libraries/pbrlib/genglsl/lib/mx_generate_prefilter_env.glsl",start:397534,end:399881},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet.glsl",start:399881,end:402873},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet_diffuse.glsl",start:402873,end:410337},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet_sheen.glsl",start:410337,end:417090},{filename:"/libraries/pbrlib/genglsl/lib/mx_microfacet_specular.glsl",start:417090,end:433540},{filename:"/libraries/pbrlib/genglsl/lib/mx_shadow.glsl",start:433540,end:434296},{filename:"/libraries/pbrlib/genglsl/lib/mx_transmission_opacity.glsl",start:434296,end:434467},{filename:"/libraries/pbrlib/genglsl/lib/mx_transmission_refract.glsl",start:434467,end:434978},{filename:"/libraries/pbrlib/genglsl/mx_add_bsdf.glsl",start:434978,end:435560},{filename:"/libraries/pbrlib/genglsl/mx_add_edf.glsl",start:435560,end:435700},{filename:"/libraries/pbrlib/genglsl/mx_anisotropic_vdf.glsl",start:435700,end:435928},{filename:"/libraries/pbrlib/genglsl/mx_artistic_ior.glsl",start:435928,end:436501},{filename:"/libraries/pbrlib/genglsl/mx_blackbody.glsl",start:436501,end:438237},{filename:"/libraries/pbrlib/genglsl/mx_burley_diffuse_bsdf.glsl",start:438237,end:439284},{filename:"/libraries/pbrlib/genglsl/mx_chiang_hair_bsdf.glsl",start:439284,end:448292},{filename:"/libraries/pbrlib/genglsl/mx_conductor_bsdf.glsl",start:448292,end:450049},{filename:"/libraries/pbrlib/genglsl/mx_dielectric_bsdf.glsl",start:450049,end:452691},{filename:"/libraries/pbrlib/genglsl/mx_displacement_float.glsl",start:452691,end:452836},{filename:"/libraries/pbrlib/genglsl/mx_displacement_vector3.glsl",start:452836,end:452976},{filename:"/libraries/pbrlib/genglsl/mx_generalized_schlick_bsdf.glsl",start:452976,end:456145},{filename:"/libraries/pbrlib/genglsl/mx_generalized_schlick_edf.glsl",start:456145,end:456657},{filename:"/libraries/pbrlib/genglsl/mx_layer_bsdf.glsl",start:456657,end:456907},{filename:"/libraries/pbrlib/genglsl/mx_layer_vdf.glsl",start:456907,end:457139},{filename:"/libraries/pbrlib/genglsl/mx_mix_bsdf.glsl",start:457139,end:457405},{filename:"/libraries/pbrlib/genglsl/mx_mix_edf.glsl",start:457405,end:457571},{filename:"/libraries/pbrlib/genglsl/mx_multiply_bsdf_color3.glsl",start:457571,end:457824},{filename:"/libraries/pbrlib/genglsl/mx_multiply_bsdf_float.glsl",start:457824,end:458082},{filename:"/libraries/pbrlib/genglsl/mx_multiply_edf_color3.glsl",start:458082,end:458235},{filename:"/libraries/pbrlib/genglsl/mx_multiply_edf_float.glsl",start:458235,end:458388},{filename:"/libraries/pbrlib/genglsl/mx_oren_nayar_diffuse_bsdf.glsl",start:458388,end:459763},{filename:"/libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl",start:459763,end:460208},{filename:"/libraries/pbrlib/genglsl/mx_roughness_dual.glsl",start:460208,end:460476},{filename:"/libraries/pbrlib/genglsl/mx_sheen_bsdf.glsl",start:460476,end:462562},{filename:"/libraries/pbrlib/genglsl/mx_subsurface_bsdf.glsl",start:462562,end:463615},{filename:"/libraries/pbrlib/genglsl/mx_translucent_bsdf.glsl",start:463615,end:464341},{filename:"/libraries/pbrlib/genglsl/mx_uniform_edf.glsl",start:464341,end:464549},{filename:"/libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx",start:464549,end:470654},{filename:"/libraries/pbrlib/genmdl/pbrlib_genmdl_impl.mtlx",start:470654,end:482039},{filename:"/libraries/pbrlib/genmsl/pbrlib_genmsl_impl.mtlx",start:482039,end:482306},{filename:"/libraries/pbrlib/genosl/lib/mx_microfacet.osl",start:482306,end:484038},{filename:"/libraries/pbrlib/genosl/mx_anisotropic_vdf.osl",start:484038,end:484409},{filename:"/libraries/pbrlib/genosl/mx_artistic_ior.osl",start:484409,end:485001},{filename:"/libraries/pbrlib/genosl/mx_blackbody.osl",start:485001,end:486773},{filename:"/libraries/pbrlib/genosl/mx_chiang_hair_bsdf.osl",start:486773,end:487465},{filename:"/libraries/pbrlib/genosl/mx_chiang_hair_roughness.osl",start:487465,end:487822},{filename:"/libraries/pbrlib/genosl/mx_dielectric_bsdf.osl",start:487822,end:488372},{filename:"/libraries/pbrlib/genosl/mx_generalized_schlick_bsdf.osl",start:488372,end:489011},{filename:"/libraries/pbrlib/genosl/mx_generalized_schlick_edf.osl",start:489011,end:489281},{filename:"/libraries/pbrlib/genosl/mx_roughness_anisotropy.osl",start:489281,end:489732},{filename:"/libraries/pbrlib/genosl/mx_roughness_dual.osl",start:489732,end:490028},{filename:"/libraries/pbrlib/genosl/mx_subsurface_bsdf.osl",start:490028,end:490356},{filename:"/libraries/pbrlib/genosl/mx_surface.osl",start:490356,end:490557},{filename:"/libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx",start:490557,end:496402},{filename:"/libraries/pbrlib/pbrlib_defs.mtlx",start:496402,end:520720},{filename:"/libraries/pbrlib/pbrlib_ng.mtlx",start:520720,end:521514},{filename:"/libraries/stdlib/genglsl/lib/mx_geometry.glsl",start:521514,end:522875},{filename:"/libraries/stdlib/genglsl/lib/mx_hextile.glsl",start:522875,end:527376},{filename:"/libraries/stdlib/genglsl/lib/mx_hsv.glsl",start:527376,end:530855},{filename:"/libraries/stdlib/genglsl/lib/mx_math.glsl",start:530855,end:531490},{filename:"/libraries/stdlib/genglsl/lib/mx_noise.glsl",start:531490,end:554429},{filename:"/libraries/stdlib/genglsl/lib/mx_transform_uv.glsl",start:554429,end:554545},{filename:"/libraries/stdlib/genglsl/lib/mx_transform_uv_vflip.glsl",start:554545,end:554681},{filename:"/libraries/stdlib/genglsl/mx_aastep.glsl",start:554681,end:554881},{filename:"/libraries/stdlib/genglsl/mx_burn_color3.glsl",start:554881,end:555166},{filename:"/libraries/stdlib/genglsl/mx_burn_color4.glsl",start:555166,end:555507},{filename:"/libraries/stdlib/genglsl/mx_burn_float.glsl",start:555507,end:555730},{filename:"/libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl",start:555730,end:555867},{filename:"/libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl",start:555867,end:556004},{filename:"/libraries/stdlib/genglsl/mx_creatematrix_vector3_matrix33.glsl",start:556004,end:556211},{filename:"/libraries/stdlib/genglsl/mx_creatematrix_vector3_matrix44.glsl",start:556211,end:556487},{filename:"/libraries/stdlib/genglsl/mx_creatematrix_vector4_matrix44.glsl",start:556487,end:556771},{filename:"/libraries/stdlib/genglsl/mx_disjointover_color4.glsl",start:556771,end:557365},{filename:"/libraries/stdlib/genglsl/mx_dodge_color3.glsl",start:557365,end:557655},{filename:"/libraries/stdlib/genglsl/mx_dodge_color4.glsl",start:557655,end:558004},{filename:"/libraries/stdlib/genglsl/mx_dodge_float.glsl",start:558004,end:558226},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_float.glsl",start:558226,end:558498},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_vector2.glsl",start:558498,end:558768},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_vector3.glsl",start:558768,end:559038},{filename:"/libraries/stdlib/genglsl/mx_fractal2d_vector4.glsl",start:559038,end:559308},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_float.glsl",start:559308,end:559580},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl",start:559580,end:559850},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl",start:559850,end:560120},{filename:"/libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl",start:560120,end:560390},{filename:"/libraries/stdlib/genglsl/mx_heighttonormal_vector3.glsl",start:560390,end:561343},{filename:"/libraries/stdlib/genglsl/mx_hextiledimage.glsl",start:561343,end:564493},{filename:"/libraries/stdlib/genglsl/mx_hextilednormalmap.glsl",start:564493,end:566999},{filename:"/libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl",start:566999,end:567113},{filename:"/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl",start:567113,end:567242},{filename:"/libraries/stdlib/genglsl/mx_image_color3.glsl",start:567242,end:567632},{filename:"/libraries/stdlib/genglsl/mx_image_color4.glsl",start:567632,end:568018},{filename:"/libraries/stdlib/genglsl/mx_image_float.glsl",start:568018,end:568407},{filename:"/libraries/stdlib/genglsl/mx_image_vector2.glsl",start:568407,end:568797},{filename:"/libraries/stdlib/genglsl/mx_image_vector3.glsl",start:568797,end:569188},{filename:"/libraries/stdlib/genglsl/mx_image_vector4.glsl",start:569188,end:569575},{filename:"/libraries/stdlib/genglsl/mx_luminance_color3.glsl",start:569575,end:569689},{filename:"/libraries/stdlib/genglsl/mx_luminance_color4.glsl",start:569689,end:569820},{filename:"/libraries/stdlib/genglsl/mx_mix_surfaceshader.glsl",start:569820,end:570054},{filename:"/libraries/stdlib/genglsl/mx_noise2d_float.glsl",start:570054,end:570264},{filename:"/libraries/stdlib/genglsl/mx_noise2d_vector2.glsl",start:570264,end:570475},{filename:"/libraries/stdlib/genglsl/mx_noise2d_vector3.glsl",start:570475,end:570683},{filename:"/libraries/stdlib/genglsl/mx_noise2d_vector4.glsl",start:570683,end:570958},{filename:"/libraries/stdlib/genglsl/mx_noise3d_float.glsl",start:570958,end:571168},{filename:"/libraries/stdlib/genglsl/mx_noise3d_vector2.glsl",start:571168,end:571379},{filename:"/libraries/stdlib/genglsl/mx_noise3d_vector3.glsl",start:571379,end:571587},{filename:"/libraries/stdlib/genglsl/mx_noise3d_vector4.glsl",start:571587,end:571866},{filename:"/libraries/stdlib/genglsl/mx_normalmap.glsl",start:571866,end:572364},{filename:"/libraries/stdlib/genglsl/mx_premult_color4.glsl",start:572364,end:572461},{filename:"/libraries/stdlib/genglsl/mx_ramplr_float.glsl",start:572461,end:572612},{filename:"/libraries/stdlib/genglsl/mx_ramplr_vector2.glsl",start:572612,end:572762},{filename:"/libraries/stdlib/genglsl/mx_ramplr_vector3.glsl",start:572762,end:572912},{filename:"/libraries/stdlib/genglsl/mx_ramplr_vector4.glsl",start:572912,end:573062},{filename:"/libraries/stdlib/genglsl/mx_ramptb_float.glsl",start:573062,end:573213},{filename:"/libraries/stdlib/genglsl/mx_ramptb_vector2.glsl",start:573213,end:573363},{filename:"/libraries/stdlib/genglsl/mx_ramptb_vector3.glsl",start:573363,end:573513},{filename:"/libraries/stdlib/genglsl/mx_ramptb_vector4.glsl",start:573513,end:573663},{filename:"/libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl",start:573663,end:573777},{filename:"/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl",start:573777,end:573906},{filename:"/libraries/stdlib/genglsl/mx_rotate_vector2.glsl",start:573906,end:574164},{filename:"/libraries/stdlib/genglsl/mx_rotate_vector3.glsl",start:574164,end:575065},{filename:"/libraries/stdlib/genglsl/mx_smoothstep_float.glsl",start:575065,end:575290},{filename:"/libraries/stdlib/genglsl/mx_splitlr_float.glsl",start:575290,end:575483},{filename:"/libraries/stdlib/genglsl/mx_splitlr_vector2.glsl",start:575483,end:575675},{filename:"/libraries/stdlib/genglsl/mx_splitlr_vector3.glsl",start:575675,end:575867},{filename:"/libraries/stdlib/genglsl/mx_splitlr_vector4.glsl",start:575867,end:576059},{filename:"/libraries/stdlib/genglsl/mx_splittb_float.glsl",start:576059,end:576252},{filename:"/libraries/stdlib/genglsl/mx_splittb_vector2.glsl",start:576252,end:576444},{filename:"/libraries/stdlib/genglsl/mx_splittb_vector3.glsl",start:576444,end:576636},{filename:"/libraries/stdlib/genglsl/mx_splittb_vector4.glsl",start:576636,end:576828},{filename:"/libraries/stdlib/genglsl/mx_surface_unlit.glsl",start:576828,end:577120},{filename:"/libraries/stdlib/genglsl/mx_transformmatrix_vector2M3.glsl",start:577120,end:577261},{filename:"/libraries/stdlib/genglsl/mx_transformmatrix_vector3M4.glsl",start:577261,end:577403},{filename:"/libraries/stdlib/genglsl/mx_unpremult_color4.glsl",start:577403,end:577502},{filename:"/libraries/stdlib/genglsl/mx_worleynoise2d_float.glsl",start:577502,end:577686},{filename:"/libraries/stdlib/genglsl/mx_worleynoise2d_vector2.glsl",start:577686,end:577870},{filename:"/libraries/stdlib/genglsl/mx_worleynoise2d_vector3.glsl",start:577870,end:578054},{filename:"/libraries/stdlib/genglsl/mx_worleynoise3d_float.glsl",start:578054,end:578238},{filename:"/libraries/stdlib/genglsl/mx_worleynoise3d_vector2.glsl",start:578238,end:578422},{filename:"/libraries/stdlib/genglsl/mx_worleynoise3d_vector3.glsl",start:578422,end:578606},{filename:"/libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx",start:578606,end:655400},{filename:"/libraries/stdlib/genmdl/stdlib_genmdl_impl.mtlx",start:655400,end:749690},{filename:"/libraries/stdlib/genmsl/lib/mx_math.metal",start:749690,end:753979},{filename:"/libraries/stdlib/genmsl/lib/mx_matscalaroperators.metal",start:753979,end:754988},{filename:"/libraries/stdlib/genmsl/lib/mx_texture.metal",start:754988,end:755726},{filename:"/libraries/stdlib/genmsl/stdlib_genmsl_impl.mtlx",start:755726,end:765452},{filename:"/libraries/stdlib/genosl/include/color4.h",start:765452,end:771290},{filename:"/libraries/stdlib/genosl/include/matrix33.h",start:771290,end:773910},{filename:"/libraries/stdlib/genosl/include/mx_funcs.h",start:773910,end:795701},{filename:"/libraries/stdlib/genosl/include/vector2.h",start:795701,end:801367},{filename:"/libraries/stdlib/genosl/include/vector4.h",start:801367,end:810365},{filename:"/libraries/stdlib/genosl/lib/mx_transform_uv.osl",start:810365,end:810432},{filename:"/libraries/stdlib/genosl/lib/mx_transform_uv_vflip.osl",start:810432,end:810528},{filename:"/libraries/stdlib/genosl/lib/vector4_extra_ops.osl",start:810528,end:811402},{filename:"/libraries/stdlib/genosl/mx_burn_color3.osl",start:811402,end:811655},{filename:"/libraries/stdlib/genosl/mx_burn_color4.osl",start:811655,end:811993},{filename:"/libraries/stdlib/genosl/mx_burn_float.osl",start:811993,end:812210},{filename:"/libraries/stdlib/genosl/mx_cellnoise2d_float.osl",start:812210,end:812327},{filename:"/libraries/stdlib/genosl/mx_cellnoise3d_float.osl",start:812327,end:812429},{filename:"/libraries/stdlib/genosl/mx_creatematrix.osl",start:812429,end:813334},{filename:"/libraries/stdlib/genosl/mx_disjointover_color4.osl",start:813334,end:813912},{filename:"/libraries/stdlib/genosl/mx_dodge_color3.osl",start:813912,end:814170},{filename:"/libraries/stdlib/genosl/mx_dodge_color4.osl",start:814170,end:814517},{filename:"/libraries/stdlib/genosl/mx_dodge_float.osl",start:814517,end:814724},{filename:"/libraries/stdlib/genosl/mx_fractal2d_float.osl",start:814724,end:814970},{filename:"/libraries/stdlib/genosl/mx_fractal2d_vector2.osl",start:814970,end:815224},{filename:"/libraries/stdlib/genosl/mx_fractal2d_vector3.osl",start:815224,end:815475},{filename:"/libraries/stdlib/genosl/mx_fractal2d_vector4.osl",start:815475,end:815729},{filename:"/libraries/stdlib/genosl/mx_fractal3d_float.osl",start:815729,end:815960},{filename:"/libraries/stdlib/genosl/mx_fractal3d_vector2.osl",start:815960,end:816199},{filename:"/libraries/stdlib/genosl/mx_fractal3d_vector3.osl",start:816199,end:816435},{filename:"/libraries/stdlib/genosl/mx_fractal3d_vector4.osl",start:816435,end:816674},{filename:"/libraries/stdlib/genosl/mx_frame_float.osl",start:816674,end:816843},{filename:"/libraries/stdlib/genosl/mx_geomcolor_color3.osl",start:816843,end:816939},{filename:"/libraries/stdlib/genosl/mx_geomcolor_color4.osl",start:816939,end:817170},{filename:"/libraries/stdlib/genosl/mx_geomcolor_float.osl",start:817170,end:817265},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_boolean.osl",start:817265,end:817416},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_color3.osl",start:817416,end:817569},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_color4.osl",start:817569,end:817937},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_float.osl",start:817937,end:818111},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_integer.osl",start:818111,end:818262},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_string.osl",start:818262,end:818418},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_vector2.osl",start:818418,end:818684},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_vector3.osl",start:818684,end:818840},{filename:"/libraries/stdlib/genosl/mx_geompropvalue_vector4.osl",start:818840,end:819158},{filename:"/libraries/stdlib/genosl/mx_heighttonormal_vector3.osl",start:819158,end:820132},{filename:"/libraries/stdlib/genosl/mx_hsvtorgb_color3.osl",start:820132,end:820237},{filename:"/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl",start:820237,end:820359},{filename:"/libraries/stdlib/genosl/mx_image_color3.osl",start:820359,end:821304},{filename:"/libraries/stdlib/genosl/mx_image_color4.osl",start:821304,end:822427},{filename:"/libraries/stdlib/genosl/mx_image_float.osl",start:822427,end:823290},{filename:"/libraries/stdlib/genosl/mx_image_vector2.osl",start:823290,end:824205},{filename:"/libraries/stdlib/genosl/mx_image_vector3.osl",start:824205,end:825023},{filename:"/libraries/stdlib/genosl/mx_image_vector4.osl",start:825023,end:826066},{filename:"/libraries/stdlib/genosl/mx_luminance_color3.osl",start:826066,end:826178},{filename:"/libraries/stdlib/genosl/mx_luminance_color4.osl",start:826178,end:826310},{filename:"/libraries/stdlib/genosl/mx_mix_surfaceshader.osl",start:826310,end:826552},{filename:"/libraries/stdlib/genosl/mx_noise2d_float.osl",start:826552,end:826746},{filename:"/libraries/stdlib/genosl/mx_noise2d_vector2.osl",start:826746,end:826951},{filename:"/libraries/stdlib/genosl/mx_noise2d_vector3.osl",start:826951,end:827150},{filename:"/libraries/stdlib/genosl/mx_noise2d_vector4.osl",start:827150,end:827355},{filename:"/libraries/stdlib/genosl/mx_noise3d_float.osl",start:827355,end:827534},{filename:"/libraries/stdlib/genosl/mx_noise3d_vector2.osl",start:827534,end:827724},{filename:"/libraries/stdlib/genosl/mx_noise3d_vector3.osl",start:827724,end:827908},{filename:"/libraries/stdlib/genosl/mx_noise3d_vector4.osl",start:827908,end:828098},{filename:"/libraries/stdlib/genosl/mx_normalmap.osl",start:828098,end:829010},{filename:"/libraries/stdlib/genosl/mx_premult_color4.osl",start:829010,end:829112},{filename:"/libraries/stdlib/genosl/mx_rgbtohsv_color3.osl",start:829112,end:829217},{filename:"/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl",start:829217,end:829339},{filename:"/libraries/stdlib/genosl/mx_rotate_vector2.osl",start:829339,end:829600},{filename:"/libraries/stdlib/genosl/mx_rotate_vector3.osl",start:829600,end:830670},{filename:"/libraries/stdlib/genosl/mx_surface_unlit.osl",start:830670,end:831084},{filename:"/libraries/stdlib/genosl/mx_surfacematerial.osl",start:831084,end:831367},{filename:"/libraries/stdlib/genosl/mx_time_float.osl",start:831367,end:831545},{filename:"/libraries/stdlib/genosl/mx_transformmatrix_vector2M3.osl",start:831545,end:831731},{filename:"/libraries/stdlib/genosl/mx_unpremult_color4.osl",start:831731,end:831835},{filename:"/libraries/stdlib/genosl/mx_worleynoise2d_float.osl",start:831835,end:831995},{filename:"/libraries/stdlib/genosl/mx_worleynoise2d_vector2.osl",start:831995,end:832161},{filename:"/libraries/stdlib/genosl/mx_worleynoise2d_vector3.osl",start:832161,end:832326},{filename:"/libraries/stdlib/genosl/mx_worleynoise3d_float.osl",start:832326,end:832485},{filename:"/libraries/stdlib/genosl/mx_worleynoise3d_vector2.osl",start:832485,end:832650},{filename:"/libraries/stdlib/genosl/mx_worleynoise3d_vector3.osl",start:832650,end:832814},{filename:"/libraries/stdlib/genosl/stdlib_genosl_impl.mtlx",start:832814,end:909860},{filename:"/libraries/stdlib/stdlib_defs.mtlx",start:909860,end:1187069},{filename:"/libraries/stdlib/stdlib_ng.mtlx",start:1187069,end:1509715},{filename:"/libraries/targets/essl.mtlx",start:1509715,end:1510177},{filename:"/libraries/targets/genglsl.mtlx",start:1510177,end:1510630},{filename:"/libraries/targets/genmdl.mtlx",start:1510630,end:1511082},{filename:"/libraries/targets/genmsl.mtlx",start:1511082,end:1511552},{filename:"/libraries/targets/genosl.mtlx",start:1511552,end:1512004}],remote_package_size:1512004})})();var H=Object.assign({},G),O="./this.program",gA=(A,I)=>{throw I},_="";function AA(A){return G.locateFile?G.locateFile(A,_):_+A}var QA,DA;if(X){var CA=require("fs");require("path"),_=__dirname+"/",DA=A=>{A=DI(A)?new URL(A):A;var I=CA.readFileSync(A);return I},QA=async(A,I=!0)=>{A=DI(A)?new URL(A):A;var g=CA.readFileSync(A,I?void 0:"utf8");return g},!G.thisProgram&&process.argv.length>1&&(O=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),gA=(A,I)=>{throw process.exitCode=A,I}}else(d||U)&&(U?_=self.location.href:typeof document<"u"&&document.currentScript&&(_=document.currentScript.src),F&&(_=F),_.startsWith("blob:")?_="":_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1),U&&(DA=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}),QA=async A=>{if(DI(A))return new Promise((g,B)=>{var Q=new XMLHttpRequest;Q.open("GET",A,!0),Q.responseType="arraybuffer",Q.onload=()=>{if(Q.status==200||Q.status==0&&Q.response){g(Q.response);return}B(Q.status)},Q.onerror=B,Q.send(null)});var I=await fetch(A,{credentials:"same-origin"});if(I.ok)return I.arrayBuffer();throw new Error(I.status+" : "+I.url)});var RA=G.print||console.log.bind(console),JA=G.printErr||console.error.bind(console);Object.assign(G,H),H=null,G.arguments&&G.arguments,G.thisProgram&&(O=G.thisProgram);var e=G.wasmBinary,CI,EI=!1,iI,lA,bA,FA,qA,j,n,Ng,xI;function lg(){var A=CI.buffer;G.HEAP8=lA=new Int8Array(A),G.HEAP16=FA=new Int16Array(A),G.HEAPU8=bA=new Uint8Array(A),G.HEAPU16=qA=new Uint16Array(A),G.HEAP32=j=new Int32Array(A),G.HEAPU32=n=new Uint32Array(A),G.HEAPF32=Ng=new Float32Array(A),G.HEAPF64=xI=new Float64Array(A)}var og=[],Jg=[],Rg=[];function kB(){if(G.preRun)for(typeof G.preRun=="function"&&(G.preRun=[G.preRun]);G.preRun.length;)KB(G.preRun.shift());uI(og)}function dB(){!G.noFSInit&&!C.initialized&&C.init(),C.ignorePermissions=!1,uI(Jg)}function sB(){if(G.postRun)for(typeof G.postRun=="function"&&(G.postRun=[G.postRun]);G.postRun.length;)VB(G.postRun.shift());uI(Rg)}function KB(A){og.unshift(A)}function mB(A){Jg.unshift(A)}function VB(A){Rg.unshift(A)}var KA=0,zA=null;function TI(A){KA++,G.monitorRunDependencies?.(KA)}function GI(A){if(KA--,G.monitorRunDependencies?.(KA),KA==0&&zA){var I=zA;zA=null,I()}}function LA(A){G.onAbort?.(A),A="Aborted("+A+")",JA(A),EI=!0,A+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(A);throw M(I),I}var LB="data:application/octet-stream;base64,",Zg=A=>A.startsWith(LB),DI=A=>A.startsWith("file://");function jB(){var A="JsMaterialXGenShader.wasm";return Zg(A)?A:AA(A)}var PI;function xB(A){if(A==PI&&e)return new Uint8Array(e);if(DA)return DA(A);throw"both async and sync fetching of the wasm failed"}async function TB(A){if(!e)try{var I=await QA(A);return new Uint8Array(I)}catch{}return xB(A)}async function PB(A,I){try{var g=await TB(A),B=await WebAssembly.instantiate(g,I);return B}catch(Q){JA(`failed to asynchronously prepare wasm: ${Q}`),LA(Q)}}async function uB(A,I,g){if(!A&&typeof WebAssembly.instantiateStreaming=="function"&&!Zg(I)&&!DI(I)&&!X&&typeof fetch=="function")try{var B=fetch(I,{credentials:"same-origin"}),Q=await WebAssembly.instantiateStreaming(B,g);return Q}catch(E){JA(`wasm streaming compile failed: ${E}`),JA("falling back to ArrayBuffer instantiation")}return PB(I,g)}function vB(){return{a:wE}}async function fB(){function A(Q,E){return GA=Q.exports,CI=GA._a,lg(),Kg=GA.cb,mB(GA.$a),GI(),GA}TI();function I(Q){A(Q.instance)}var g=vB();if(G.instantiateWasm)try{return G.instantiateWasm(g,A)}catch(Q){JA(`Module.instantiateWasm callback failed with error: ${Q}`),M(Q)}PI??=jB();try{var B=await uB(e,PI,g);return I(B),B}catch(Q){M(Q);return}}var k,iA,tB={189824:()=>{G.TreeIterator.prototype[Symbol.iterator]=function(){return this}},189908:()=>{G.GraphIterator.prototype[Symbol.iterator]=function(){return this}},189993:()=>{G.InheritanceIterator.prototype[Symbol.iterator]=function(){return this}}};class bg{name="ExitStatus";constructor(I){this.message=`Program terminated with exit(${I})`,this.status=I}}var uI=A=>{for(;A.length>0;)A.shift()(G)},hg=G.noExitRuntime||!0,v=A=>eg(A),f=()=>rg(),cg=typeof TextDecoder<"u"?new TextDecoder:void 0,jA=(A,I=0,g=NaN)=>{for(var B=I+g,Q=I;A[Q]&&!(Q>=B);)++Q;if(Q-I>16&&A.buffer&&cg)return cg.decode(A.subarray(I,Q));for(var E="";I<Q;){var i=A[I++];if(!(i&128)){E+=String.fromCharCode(i);continue}var D=A[I++]&63;if((i&224)==192){E+=String.fromCharCode((i&31)<<6|D);continue}var Y=A[I++]&63;if((i&240)==224?i=(i&15)<<12|D<<6|Y:i=(i&7)<<18|D<<12|Y<<6|A[I++]&63,i<65536)E+=String.fromCharCode(i);else{var N=i-65536;E+=String.fromCharCode(55296|N>>10,56320|N&1023)}}return E},eA=(A,I)=>A?jA(bA,A,I):"",pB=(A,I,g,B)=>LA(`Assertion failed: ${eA(A)}, at: `+[I?eA(I):"unknown filename",g,B?eA(B):"unknown function"]),YI=[],wI=0,nB=A=>{var I=new vI(A);return I.get_caught()||(I.set_caught(!0),wI--),I.set_rethrown(!1),YI.push(I),_g(A),AB(A)},SA=0,qB=()=>{T(0,0);var A=YI.pop();Og(A.excPtr),SA=0};class vI{constructor(I){this.excPtr=I,this.ptr=I-24}set_type(I){n[this.ptr+4>>2]=I}get_type(){return n[this.ptr+4>>2]}set_destructor(I){n[this.ptr+8>>2]=I}get_destructor(){return n[this.ptr+8>>2]}set_caught(I){I=I?1:0,lA[this.ptr+12]=I}get_caught(){return lA[this.ptr+12]!=0}set_rethrown(I){I=I?1:0,lA[this.ptr+13]=I}get_rethrown(){return lA[this.ptr+13]!=0}init(I,g){this.set_adjusted_ptr(0),this.set_type(I),this.set_destructor(g)}set_adjusted_ptr(I){n[this.ptr+16>>2]=I}get_adjusted_ptr(){return n[this.ptr+16>>2]}}var zB=A=>{throw SA||(SA=A),SA},NI=A=>zg(A),fI=A=>{var I=SA;if(!I)return NI(0),0;var g=new vI(I);g.set_adjusted_ptr(I);var B=g.get_type();if(!B)return NI(0),I;for(var Q of A){if(Q===0||Q===B)break;var E=g.ptr+16;if($g(Q,B,E))return NI(Q),I}return NI(B),I},eB=()=>fI([]),rB=A=>fI([A]),OB=(A,I)=>fI([A,I]),_B=()=>{var A=YI.pop();A||LA("no exception to throw");var I=A.excPtr;throw A.get_rethrown()||(YI.push(A),A.set_rethrown(!0),A.set_caught(!1),wI++),SA=I,SA},$B=(A,I,g)=>{var B=new vI(A);throw B.init(I,g),SA=A,wI++,SA},AQ=()=>wI,lI=()=>{var A=j[+ZA.varargs>>2];return ZA.varargs+=4,A},xA=lI,IA={isAbs:A=>A.charAt(0)==="/",splitPath:A=>{var I=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return I.exec(A).slice(1)},normalizeArray:(A,I)=>{for(var g=0,B=A.length-1;B>=0;B--){var Q=A[B];Q==="."?A.splice(B,1):Q===".."?(A.splice(B,1),g++):g&&(A.splice(B,1),g--)}if(I)for(;g;g--)A.unshift("..");return A},normalize:A=>{var I=IA.isAbs(A),g=A.substr(-1)==="/";return A=IA.normalizeArray(A.split("/").filter(B=>!!B),!I).join("/"),!A&&!I&&(A="."),A&&g&&(A+="/"),(I?"/":"")+A},dirname:A=>{var I=IA.splitPath(A),g=I[0],B=I[1];return!g&&!B?".":(B&&(B=B.substr(0,B.length-1)),g+B)},basename:A=>{if(A==="/")return"/";A=IA.normalize(A),A=A.replace(/\/$/,"");var I=A.lastIndexOf("/");return I===-1?A:A.substr(I+1)},join:(...A)=>IA.normalize(A.join("/")),join2:(A,I)=>IA.normalize(A+"/"+I)},IQ=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return B=>crypto.getRandomValues(B);if(X)try{var A=require("crypto"),I=A.randomFillSync;if(I)return B=>A.randomFillSync(B);var g=A.randomBytes;return B=>(B.set(g(B.byteLength)),B)}catch{}LA("initRandomDevice")},Fg=A=>(Fg=IQ())(A),TA={resolve:(...A)=>{for(var I="",g=!1,B=A.length-1;B>=-1&&!g;B--){var Q=B>=0?A[B]:C.cwd();if(typeof Q!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!Q)return"";I=Q+"/"+I,g=IA.isAbs(Q)}return I=IA.normalizeArray(I.split("/").filter(E=>!!E),!g).join("/"),(g?"/":"")+I||"."},relative:(A,I)=>{A=TA.resolve(A).substr(1),I=TA.resolve(I).substr(1);function g(N){for(var l=0;l<N.length&&N[l]==="";l++);for(var J=N.length-1;J>=0&&N[J]==="";J--);return l>J?[]:N.slice(l,J-l+1)}for(var B=g(A.split("/")),Q=g(I.split("/")),E=Math.min(B.length,Q.length),i=E,D=0;D<E;D++)if(B[D]!==Q[D]){i=D;break}for(var Y=[],D=i;D<B.length;D++)Y.push("..");return Y=Y.concat(Q.slice(i)),Y.join("/")}},tI=[],pI=A=>{for(var I=0,g=0;g<A.length;++g){var B=A.charCodeAt(g);B<=127?I++:B<=2047?I+=2:B>=55296&&B<=57343?(I+=4,++g):I+=3}return I},nI=(A,I,g,B)=>{if(!(B>0))return 0;for(var Q=g,E=g+B-1,i=0;i<A.length;++i){var D=A.charCodeAt(i);if(D>=55296&&D<=57343){var Y=A.charCodeAt(++i);D=65536+((D&1023)<<10)|Y&1023}if(D<=127){if(g>=E)break;I[g++]=D}else if(D<=2047){if(g+1>=E)break;I[g++]=192|D>>6,I[g++]=128|D&63}else if(D<=65535){if(g+2>=E)break;I[g++]=224|D>>12,I[g++]=128|D>>6&63,I[g++]=128|D&63}else{if(g+3>=E)break;I[g++]=240|D>>18,I[g++]=128|D>>12&63,I[g++]=128|D>>6&63,I[g++]=128|D&63}}return I[g]=0,g-Q};function Ug(A,I,g){var B=pI(A)+1,Q=new Array(B),E=nI(A,Q,0,Q.length);return Q.length=E,Q}var gQ=()=>{if(!tI.length){var A=null;if(X){var I=256,g=Buffer.alloc(I),B=0,Q=process.stdin.fd;try{B=CA.readSync(Q,g,0,I)}catch(E){if(E.toString().includes("EOF"))B=0;else throw E}B>0&&(A=g.slice(0,B).toString("utf-8"))}else typeof window<"u"&&typeof window.prompt=="function"&&(A=window.prompt("Input: "),A!==null&&(A+=`
|
|
2
2
|
`));if(!A)return null;tI=Ug(A)}return tI.shift()},mA={ttys:[],init(){},shutdown(){},register(A,I){mA.ttys[A]={input:[],output:[],ops:I},C.registerDevice(A,mA.stream_ops)},stream_ops:{open(A){var I=mA.ttys[A.node.rdev];if(!I)throw new C.ErrnoError(43);A.tty=I,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,I,g,B,Q){if(!A.tty||!A.tty.ops.get_char)throw new C.ErrnoError(60);for(var E=0,i=0;i<B;i++){var D;try{D=A.tty.ops.get_char(A.tty)}catch{throw new C.ErrnoError(29)}if(D===void 0&&E===0)throw new C.ErrnoError(6);if(D==null)break;E++,I[g+i]=D}return E&&(A.node.atime=Date.now()),E},write(A,I,g,B,Q){if(!A.tty||!A.tty.ops.put_char)throw new C.ErrnoError(60);try{for(var E=0;E<B;E++)A.tty.ops.put_char(A.tty,I[g+E])}catch{throw new C.ErrnoError(29)}return B&&(A.node.mtime=A.node.ctime=Date.now()),E}},default_tty_ops:{get_char(A){return gQ()},put_char(A,I){I===null||I===10?(RA(jA(A.output)),A.output=[]):I!=0&&A.output.push(I)},fsync(A){A.output&&A.output.length>0&&(RA(jA(A.output)),A.output=[])},ioctl_tcgets(A){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(A,I,g){return 0},ioctl_tiocgwinsz(A){return[24,80]}},default_tty1_ops:{put_char(A,I){I===null||I===10?(JA(jA(A.output)),A.output=[]):I!=0&&A.output.push(I)},fsync(A){A.output&&A.output.length>0&&(JA(jA(A.output)),A.output=[])}}},BQ=(A,I)=>Math.ceil(A/I)*I,Mg=A=>{LA()},m={ops_table:null,mount(A){return m.createNode(null,"/",16895,0)},createNode(A,I,g,B){if(C.isBlkdev(g)||C.isFIFO(g))throw new C.ErrnoError(63);m.ops_table||={dir:{node:{getattr:m.node_ops.getattr,setattr:m.node_ops.setattr,lookup:m.node_ops.lookup,mknod:m.node_ops.mknod,rename:m.node_ops.rename,unlink:m.node_ops.unlink,rmdir:m.node_ops.rmdir,readdir:m.node_ops.readdir,symlink:m.node_ops.symlink},stream:{llseek:m.stream_ops.llseek}},file:{node:{getattr:m.node_ops.getattr,setattr:m.node_ops.setattr},stream:{llseek:m.stream_ops.llseek,read:m.stream_ops.read,write:m.stream_ops.write,allocate:m.stream_ops.allocate,mmap:m.stream_ops.mmap,msync:m.stream_ops.msync}},link:{node:{getattr:m.node_ops.getattr,setattr:m.node_ops.setattr,readlink:m.node_ops.readlink},stream:{}},chrdev:{node:{getattr:m.node_ops.getattr,setattr:m.node_ops.setattr},stream:C.chrdev_stream_ops}};var Q=C.createNode(A,I,g,B);return C.isDir(Q.mode)?(Q.node_ops=m.ops_table.dir.node,Q.stream_ops=m.ops_table.dir.stream,Q.contents={}):C.isFile(Q.mode)?(Q.node_ops=m.ops_table.file.node,Q.stream_ops=m.ops_table.file.stream,Q.usedBytes=0,Q.contents=null):C.isLink(Q.mode)?(Q.node_ops=m.ops_table.link.node,Q.stream_ops=m.ops_table.link.stream):C.isChrdev(Q.mode)&&(Q.node_ops=m.ops_table.chrdev.node,Q.stream_ops=m.ops_table.chrdev.stream),Q.atime=Q.mtime=Q.ctime=Date.now(),A&&(A.contents[I]=Q,A.atime=A.mtime=A.ctime=Q.atime),Q},getFileDataAsTypedArray(A){return A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0)},expandFileStorage(A,I){var g=A.contents?A.contents.length:0;if(!(g>=I)){var B=1048576;I=Math.max(I,g*(g<B?2:1.125)>>>0),g!=0&&(I=Math.max(I,256));var Q=A.contents;A.contents=new Uint8Array(I),A.usedBytes>0&&A.contents.set(Q.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,I){if(A.usedBytes!=I)if(I==0)A.contents=null,A.usedBytes=0;else{var g=A.contents;A.contents=new Uint8Array(I),g&&A.contents.set(g.subarray(0,Math.min(I,A.usedBytes))),A.usedBytes=I}},node_ops:{getattr(A){var I={};return I.dev=C.isChrdev(A.mode)?A.id:1,I.ino=A.id,I.mode=A.mode,I.nlink=1,I.uid=0,I.gid=0,I.rdev=A.rdev,C.isDir(A.mode)?I.size=4096:C.isFile(A.mode)?I.size=A.usedBytes:C.isLink(A.mode)?I.size=A.link.length:I.size=0,I.atime=new Date(A.atime),I.mtime=new Date(A.mtime),I.ctime=new Date(A.ctime),I.blksize=4096,I.blocks=Math.ceil(I.size/I.blksize),I},setattr(A,I){for(const g of["mode","atime","mtime","ctime"])I[g]&&(A[g]=I[g]);I.size!==void 0&&m.resizeFileStorage(A,I.size)},lookup(A,I){throw m.doesNotExistError},mknod(A,I,g,B){return m.createNode(A,I,g,B)},rename(A,I,g){var B;try{B=C.lookupNode(I,g)}catch{}if(B){if(C.isDir(A.mode))for(var Q in B.contents)throw new C.ErrnoError(55);C.hashRemoveNode(B)}delete A.parent.contents[A.name],I.contents[g]=A,A.name=g,I.ctime=I.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,I){delete A.contents[I],A.ctime=A.mtime=Date.now()},rmdir(A,I){var g=C.lookupNode(A,I);for(var B in g.contents)throw new C.ErrnoError(55);delete A.contents[I],A.ctime=A.mtime=Date.now()},readdir(A){return[".","..",...Object.keys(A.contents)]},symlink(A,I,g){var B=m.createNode(A,I,41471,0);return B.link=g,B},readlink(A){if(!C.isLink(A.mode))throw new C.ErrnoError(28);return A.link}},stream_ops:{read(A,I,g,B,Q){var E=A.node.contents;if(Q>=A.node.usedBytes)return 0;var i=Math.min(A.node.usedBytes-Q,B);if(i>8&&E.subarray)I.set(E.subarray(Q,Q+i),g);else for(var D=0;D<i;D++)I[g+D]=E[Q+D];return i},write(A,I,g,B,Q,E){if(I.buffer===lA.buffer&&(E=!1),!B)return 0;var i=A.node;if(i.mtime=i.ctime=Date.now(),I.subarray&&(!i.contents||i.contents.subarray)){if(E)return i.contents=I.subarray(g,g+B),i.usedBytes=B,B;if(i.usedBytes===0&&Q===0)return i.contents=I.slice(g,g+B),i.usedBytes=B,B;if(Q+B<=i.usedBytes)return i.contents.set(I.subarray(g,g+B),Q),B}if(m.expandFileStorage(i,Q+B),i.contents.subarray&&I.subarray)i.contents.set(I.subarray(g,g+B),Q);else for(var D=0;D<B;D++)i.contents[Q+D]=I[g+D];return i.usedBytes=Math.max(i.usedBytes,Q+B),B},llseek(A,I,g){var B=I;if(g===1?B+=A.position:g===2&&C.isFile(A.node.mode)&&(B+=A.node.usedBytes),B<0)throw new C.ErrnoError(28);return B},allocate(A,I,g){m.expandFileStorage(A.node,I+g),A.node.usedBytes=Math.max(A.node.usedBytes,I+g)},mmap(A,I,g,B,Q){if(!C.isFile(A.node.mode))throw new C.ErrnoError(43);var E,i,D=A.node.contents;if(!(Q&2)&&D&&D.buffer===lA.buffer)i=!1,E=D.byteOffset;else{if(i=!0,E=Mg(),!E)throw new C.ErrnoError(48);D&&((g>0||g+I<D.length)&&(D.subarray?D=D.subarray(g,g+I):D=Array.prototype.slice.call(D,g,g+I)),lA.set(D,E))}return{ptr:E,allocated:i}},msync(A,I,g,B,Q){return m.stream_ops.write(A,I,0,B,g,!1),0}}},QQ=async A=>{var I=await QA(A);return new Uint8Array(I)},yg=(A,I,g,B,Q,E)=>{C.createDataFile(A,I,g,B,Q,E)},CQ=G.preloadPlugins||[],EQ=(A,I,g,B)=>{typeof Browser<"u"&&Browser.init();var Q=!1;return CQ.forEach(E=>{Q||E.canHandle(I)&&(E.handle(A,I,g,B),Q=!0)}),Q},ag=(A,I,g,B,Q,E,i,D,Y,N)=>{var l=I?TA.resolve(IA.join2(A,I)):A;function J(Z){function h(o){N?.(),D||yg(A,I,o,B,Q,Y),E?.(),GI()}EQ(Z,l,h,()=>{i?.(),GI()})||h(Z)}TI(),typeof g=="string"?QQ(g).then(J,i):J(g)},iQ=A=>{var I={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},g=I[A];if(typeof g>"u")throw new Error(`Unknown file open mode: ${A}`);return g},qI=(A,I)=>{var g=0;return A&&(g|=365),I&&(g|=146),g},C={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{name="ErrnoError";constructor(A){this.errno=A}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(A){this.node=A}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(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(A,I,g,B){A||(A=this),this.parent=A,this.mount=A.mount,this.id=C.nextInode++,this.name=I,this.mode=g,this.rdev=B,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return C.isDir(this.mode)}get isDevice(){return C.isChrdev(this.mode)}},lookupPath(A,I={}){if(!A)return{path:"",node:null};I.follow_mount??=!0,IA.isAbs(A)||(A=C.cwd()+"/"+A);A:for(var g=0;g<40;g++){for(var B=A.split("/").filter(N=>!!N&&N!=="."),Q=C.root,E="/",i=0;i<B.length;i++){var D=i===B.length-1;if(D&&I.parent)break;if(B[i]===".."){E=IA.dirname(E),Q=Q.parent;continue}E=IA.join2(E,B[i]);try{Q=C.lookupNode(Q,B[i])}catch(N){if(N?.errno===44&&D&&I.noent_okay)return{path:E};throw N}if(C.isMountpoint(Q)&&(!D||I.follow_mount)&&(Q=Q.mounted.root),C.isLink(Q.mode)&&(!D||I.follow)){if(!Q.node_ops.readlink)throw new C.ErrnoError(52);var Y=Q.node_ops.readlink(Q);IA.isAbs(Y)||(Y=IA.dirname(E)+"/"+Y),A=Y+"/"+B.slice(i+1).join("/");continue A}}return{path:E,node:Q}}throw new C.ErrnoError(32)},getPath(A){for(var I;;){if(C.isRoot(A)){var g=A.mount.mountpoint;return I?g[g.length-1]!=="/"?`${g}/${I}`:g+I:g}I=I?`${A.name}/${I}`:A.name,A=A.parent}},hashName(A,I){for(var g=0,B=0;B<I.length;B++)g=(g<<5)-g+I.charCodeAt(B)|0;return(A+g>>>0)%C.nameTable.length},hashAddNode(A){var I=C.hashName(A.parent.id,A.name);A.name_next=C.nameTable[I],C.nameTable[I]=A},hashRemoveNode(A){var I=C.hashName(A.parent.id,A.name);if(C.nameTable[I]===A)C.nameTable[I]=A.name_next;else for(var g=C.nameTable[I];g;){if(g.name_next===A){g.name_next=A.name_next;break}g=g.name_next}},lookupNode(A,I){var g=C.mayLookup(A);if(g)throw new C.ErrnoError(g);for(var B=C.hashName(A.id,I),Q=C.nameTable[B];Q;Q=Q.name_next){var E=Q.name;if(Q.parent.id===A.id&&E===I)return Q}return C.lookup(A,I)},createNode(A,I,g,B){var Q=new C.FSNode(A,I,g,B);return C.hashAddNode(Q),Q},destroyNode(A){C.hashRemoveNode(A)},isRoot(A){return A===A.parent},isMountpoint(A){return!!A.mounted},isFile(A){return(A&61440)===32768},isDir(A){return(A&61440)===16384},isLink(A){return(A&61440)===40960},isChrdev(A){return(A&61440)===8192},isBlkdev(A){return(A&61440)===24576},isFIFO(A){return(A&61440)===4096},isSocket(A){return(A&49152)===49152},flagsToPermissionString(A){var I=["r","w","rw"][A&3];return A&512&&(I+="w"),I},nodePermissions(A,I){return C.ignorePermissions?0:I.includes("r")&&!(A.mode&292)||I.includes("w")&&!(A.mode&146)||I.includes("x")&&!(A.mode&73)?2:0},mayLookup(A){if(!C.isDir(A.mode))return 54;var I=C.nodePermissions(A,"x");return I||(A.node_ops.lookup?0:2)},mayCreate(A,I){if(!C.isDir(A.mode))return 54;try{var g=C.lookupNode(A,I);return 20}catch{}return C.nodePermissions(A,"wx")},mayDelete(A,I,g){var B;try{B=C.lookupNode(A,I)}catch(E){return E.errno}var Q=C.nodePermissions(A,"wx");if(Q)return Q;if(g){if(!C.isDir(B.mode))return 54;if(C.isRoot(B)||C.getPath(B)===C.cwd())return 10}else if(C.isDir(B.mode))return 31;return 0},mayOpen(A,I){return A?C.isLink(A.mode)?32:C.isDir(A.mode)&&(C.flagsToPermissionString(I)!=="r"||I&512)?31:C.nodePermissions(A,C.flagsToPermissionString(I)):44},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=C.MAX_OPEN_FDS;A++)if(!C.streams[A])return A;throw new C.ErrnoError(33)},getStreamChecked(A){var I=C.getStream(A);if(!I)throw new C.ErrnoError(8);return I},getStream:A=>C.streams[A],createStream(A,I=-1){return A=Object.assign(new C.FSStream,A),I==-1&&(I=C.nextfd()),A.fd=I,C.streams[I]=A,A},closeStream(A){C.streams[A]=null},dupStream(A,I=-1){var g=C.createStream(A,I);return g.stream_ops?.dup?.(g),g},chrdev_stream_ops:{open(A){var I=C.getDevice(A.node.rdev);A.stream_ops=I.stream_ops,A.stream_ops.open?.(A)},llseek(){throw new C.ErrnoError(70)}},major:A=>A>>8,minor:A=>A&255,makedev:(A,I)=>A<<8|I,registerDevice(A,I){C.devices[A]={stream_ops:I}},getDevice:A=>C.devices[A],getMounts(A){for(var I=[],g=[A];g.length;){var B=g.pop();I.push(B),g.push(...B.mounts)}return I},syncfs(A,I){typeof A=="function"&&(I=A,A=!1),C.syncFSRequests++,C.syncFSRequests>1&&JA(`warning: ${C.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var g=C.getMounts(C.root.mount),B=0;function Q(i){return C.syncFSRequests--,I(i)}function E(i){if(i)return E.errored?void 0:(E.errored=!0,Q(i));++B>=g.length&&Q(null)}g.forEach(i=>{if(!i.type.syncfs)return E(null);i.type.syncfs(i,A,E)})},mount(A,I,g){var B=g==="/",Q=!g,E;if(B&&C.root)throw new C.ErrnoError(10);if(!B&&!Q){var i=C.lookupPath(g,{follow_mount:!1});if(g=i.path,E=i.node,C.isMountpoint(E))throw new C.ErrnoError(10);if(!C.isDir(E.mode))throw new C.ErrnoError(54)}var D={type:A,opts:I,mountpoint:g,mounts:[]},Y=A.mount(D);return Y.mount=D,D.root=Y,B?C.root=Y:E&&(E.mounted=D,E.mount&&E.mount.mounts.push(D)),Y},unmount(A){var I=C.lookupPath(A,{follow_mount:!1});if(!C.isMountpoint(I.node))throw new C.ErrnoError(28);var g=I.node,B=g.mounted,Q=C.getMounts(B);Object.keys(C.nameTable).forEach(i=>{for(var D=C.nameTable[i];D;){var Y=D.name_next;Q.includes(D.mount)&&C.destroyNode(D),D=Y}}),g.mounted=null;var E=g.mount.mounts.indexOf(B);g.mount.mounts.splice(E,1)},lookup(A,I){return A.node_ops.lookup(A,I)},mknod(A,I,g){var B=C.lookupPath(A,{parent:!0}),Q=B.node,E=IA.basename(A);if(!E||E==="."||E==="..")throw new C.ErrnoError(28);var i=C.mayCreate(Q,E);if(i)throw new C.ErrnoError(i);if(!Q.node_ops.mknod)throw new C.ErrnoError(63);return Q.node_ops.mknod(Q,E,I,g)},statfs(A){var I={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:C.nextInode,ffree:C.nextInode-1,fsid:42,flags:2,namelen:255},g=C.lookupPath(A,{follow:!0}).node;return g?.node_ops.statfs&&Object.assign(I,g.node_ops.statfs(g.mount.opts.root)),I},create(A,I=438){return I&=4095,I|=32768,C.mknod(A,I,0)},mkdir(A,I=511){return I&=1023,I|=16384,C.mknod(A,I,0)},mkdirTree(A,I){for(var g=A.split("/"),B="",Q=0;Q<g.length;++Q)if(g[Q]){B+="/"+g[Q];try{C.mkdir(B,I)}catch(E){if(E.errno!=20)throw E}}},mkdev(A,I,g){return typeof g>"u"&&(g=I,I=438),I|=8192,C.mknod(A,I,g)},symlink(A,I){if(!TA.resolve(A))throw new C.ErrnoError(44);var g=C.lookupPath(I,{parent:!0}),B=g.node;if(!B)throw new C.ErrnoError(44);var Q=IA.basename(I),E=C.mayCreate(B,Q);if(E)throw new C.ErrnoError(E);if(!B.node_ops.symlink)throw new C.ErrnoError(63);return B.node_ops.symlink(B,Q,A)},rename(A,I){var g=IA.dirname(A),B=IA.dirname(I),Q=IA.basename(A),E=IA.basename(I),i,D,Y;if(i=C.lookupPath(A,{parent:!0}),D=i.node,i=C.lookupPath(I,{parent:!0}),Y=i.node,!D||!Y)throw new C.ErrnoError(44);if(D.mount!==Y.mount)throw new C.ErrnoError(75);var N=C.lookupNode(D,Q),l=TA.relative(A,B);if(l.charAt(0)!==".")throw new C.ErrnoError(28);if(l=TA.relative(I,g),l.charAt(0)!==".")throw new C.ErrnoError(55);var J;try{J=C.lookupNode(Y,E)}catch{}if(N!==J){var Z=C.isDir(N.mode),h=C.mayDelete(D,Q,Z);if(h)throw new C.ErrnoError(h);if(h=J?C.mayDelete(Y,E,Z):C.mayCreate(Y,E),h)throw new C.ErrnoError(h);if(!D.node_ops.rename)throw new C.ErrnoError(63);if(C.isMountpoint(N)||J&&C.isMountpoint(J))throw new C.ErrnoError(10);if(Y!==D&&(h=C.nodePermissions(D,"w"),h))throw new C.ErrnoError(h);C.hashRemoveNode(N);try{D.node_ops.rename(N,Y,E),N.parent=Y}catch(o){throw o}finally{C.hashAddNode(N)}}},rmdir(A){var I=C.lookupPath(A,{parent:!0}),g=I.node,B=IA.basename(A),Q=C.lookupNode(g,B),E=C.mayDelete(g,B,!0);if(E)throw new C.ErrnoError(E);if(!g.node_ops.rmdir)throw new C.ErrnoError(63);if(C.isMountpoint(Q))throw new C.ErrnoError(10);g.node_ops.rmdir(g,B),C.destroyNode(Q)},readdir(A){var I=C.lookupPath(A,{follow:!0}),g=I.node;if(!g.node_ops.readdir)throw new C.ErrnoError(54);return g.node_ops.readdir(g)},unlink(A){var I=C.lookupPath(A,{parent:!0}),g=I.node;if(!g)throw new C.ErrnoError(44);var B=IA.basename(A),Q=C.lookupNode(g,B),E=C.mayDelete(g,B,!1);if(E)throw new C.ErrnoError(E);if(!g.node_ops.unlink)throw new C.ErrnoError(63);if(C.isMountpoint(Q))throw new C.ErrnoError(10);g.node_ops.unlink(g,B),C.destroyNode(Q)},readlink(A){var I=C.lookupPath(A),g=I.node;if(!g)throw new C.ErrnoError(44);if(!g.node_ops.readlink)throw new C.ErrnoError(28);return g.node_ops.readlink(g)},stat(A,I){var g=C.lookupPath(A,{follow:!I}),B=g.node;if(!B)throw new C.ErrnoError(44);if(!B.node_ops.getattr)throw new C.ErrnoError(63);return B.node_ops.getattr(B)},lstat(A){return C.stat(A,!0)},chmod(A,I,g){var B;if(typeof A=="string"){var Q=C.lookupPath(A,{follow:!g});B=Q.node}else B=A;if(!B.node_ops.setattr)throw new C.ErrnoError(63);B.node_ops.setattr(B,{mode:I&4095|B.mode&-4096,ctime:Date.now()})},lchmod(A,I){C.chmod(A,I,!0)},fchmod(A,I){var g=C.getStreamChecked(A);C.chmod(g.node,I)},chown(A,I,g,B){var Q;if(typeof A=="string"){var E=C.lookupPath(A,{follow:!B});Q=E.node}else Q=A;if(!Q.node_ops.setattr)throw new C.ErrnoError(63);Q.node_ops.setattr(Q,{timestamp:Date.now()})},lchown(A,I,g){C.chown(A,I,g,!0)},fchown(A,I,g){var B=C.getStreamChecked(A);C.chown(B.node,I,g)},truncate(A,I){if(I<0)throw new C.ErrnoError(28);var g;if(typeof A=="string"){var B=C.lookupPath(A,{follow:!0});g=B.node}else g=A;if(!g.node_ops.setattr)throw new C.ErrnoError(63);if(C.isDir(g.mode))throw new C.ErrnoError(31);if(!C.isFile(g.mode))throw new C.ErrnoError(28);var Q=C.nodePermissions(g,"w");if(Q)throw new C.ErrnoError(Q);g.node_ops.setattr(g,{size:I,timestamp:Date.now()})},ftruncate(A,I){var g=C.getStreamChecked(A);if((g.flags&2097155)===0)throw new C.ErrnoError(28);C.truncate(g.node,I)},utime(A,I,g){var B=C.lookupPath(A,{follow:!0}),Q=B.node;Q.node_ops.setattr(Q,{atime:I,mtime:g})},open(A,I,g=438){if(A==="")throw new C.ErrnoError(44);I=typeof I=="string"?iQ(I):I,I&64?g=g&4095|32768:g=0;var B;if(typeof A=="object")B=A;else{var Q=C.lookupPath(A,{follow:!(I&131072),noent_okay:!0});B=Q.node,A=Q.path}var E=!1;if(I&64)if(B){if(I&128)throw new C.ErrnoError(20)}else B=C.mknod(A,g,0),E=!0;if(!B)throw new C.ErrnoError(44);if(C.isChrdev(B.mode)&&(I&=-513),I&65536&&!C.isDir(B.mode))throw new C.ErrnoError(54);if(!E){var i=C.mayOpen(B,I);if(i)throw new C.ErrnoError(i)}I&512&&!E&&C.truncate(B,0),I&=-131713;var D=C.createStream({node:B,path:C.getPath(B),flags:I,seekable:!0,position:0,stream_ops:B.stream_ops,ungotten:[],error:!1});return D.stream_ops.open&&D.stream_ops.open(D),G.logReadFiles&&!(I&1)&&(A in C.readFiles||(C.readFiles[A]=1)),D},close(A){if(C.isClosed(A))throw new C.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(I){throw I}finally{C.closeStream(A.fd)}A.fd=null},isClosed(A){return A.fd===null},llseek(A,I,g){if(C.isClosed(A))throw new C.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new C.ErrnoError(70);if(g!=0&&g!=1&&g!=2)throw new C.ErrnoError(28);return A.position=A.stream_ops.llseek(A,I,g),A.ungotten=[],A.position},read(A,I,g,B,Q){if(B<0||Q<0)throw new C.ErrnoError(28);if(C.isClosed(A))throw new C.ErrnoError(8);if((A.flags&2097155)===1)throw new C.ErrnoError(8);if(C.isDir(A.node.mode))throw new C.ErrnoError(31);if(!A.stream_ops.read)throw new C.ErrnoError(28);var E=typeof Q<"u";if(!E)Q=A.position;else if(!A.seekable)throw new C.ErrnoError(70);var i=A.stream_ops.read(A,I,g,B,Q);return E||(A.position+=i),i},write(A,I,g,B,Q,E){if(B<0||Q<0)throw new C.ErrnoError(28);if(C.isClosed(A))throw new C.ErrnoError(8);if((A.flags&2097155)===0)throw new C.ErrnoError(8);if(C.isDir(A.node.mode))throw new C.ErrnoError(31);if(!A.stream_ops.write)throw new C.ErrnoError(28);A.seekable&&A.flags&1024&&C.llseek(A,0,2);var i=typeof Q<"u";if(!i)Q=A.position;else if(!A.seekable)throw new C.ErrnoError(70);var D=A.stream_ops.write(A,I,g,B,Q,E);return i||(A.position+=D),D},allocate(A,I,g){if(C.isClosed(A))throw new C.ErrnoError(8);if(I<0||g<=0)throw new C.ErrnoError(28);if((A.flags&2097155)===0)throw new C.ErrnoError(8);if(!C.isFile(A.node.mode)&&!C.isDir(A.node.mode))throw new C.ErrnoError(43);if(!A.stream_ops.allocate)throw new C.ErrnoError(138);A.stream_ops.allocate(A,I,g)},mmap(A,I,g,B,Q){if((B&2)!==0&&(Q&2)===0&&(A.flags&2097155)!==2)throw new C.ErrnoError(2);if((A.flags&2097155)===1)throw new C.ErrnoError(2);if(!A.stream_ops.mmap)throw new C.ErrnoError(43);if(!I)throw new C.ErrnoError(28);return A.stream_ops.mmap(A,I,g,B,Q)},msync(A,I,g,B,Q){return A.stream_ops.msync?A.stream_ops.msync(A,I,g,B,Q):0},ioctl(A,I,g){if(!A.stream_ops.ioctl)throw new C.ErrnoError(59);return A.stream_ops.ioctl(A,I,g)},readFile(A,I={}){if(I.flags=I.flags||0,I.encoding=I.encoding||"binary",I.encoding!=="utf8"&&I.encoding!=="binary")throw new Error(`Invalid encoding type "${I.encoding}"`);var g,B=C.open(A,I.flags),Q=C.stat(A),E=Q.size,i=new Uint8Array(E);return C.read(B,i,0,E,0),I.encoding==="utf8"?g=jA(i):I.encoding==="binary"&&(g=i),C.close(B),g},writeFile(A,I,g={}){g.flags=g.flags||577;var B=C.open(A,g.flags,g.mode);if(typeof I=="string"){var Q=new Uint8Array(pI(I)+1),E=nI(I,Q,0,Q.length);C.write(B,Q,0,E,void 0,g.canOwn)}else if(ArrayBuffer.isView(I))C.write(B,I,0,I.byteLength,void 0,g.canOwn);else throw new Error("Unsupported data type");C.close(B)},cwd:()=>C.currentPath,chdir(A){var I=C.lookupPath(A,{follow:!0});if(I.node===null)throw new C.ErrnoError(44);if(!C.isDir(I.node.mode))throw new C.ErrnoError(54);var g=C.nodePermissions(I.node,"x");if(g)throw new C.ErrnoError(g);C.currentPath=I.path},createDefaultDirectories(){C.mkdir("/tmp"),C.mkdir("/home"),C.mkdir("/home/web_user")},createDefaultDevices(){C.mkdir("/dev"),C.registerDevice(C.makedev(1,3),{read:()=>0,write:(B,Q,E,i,D)=>i,llseek:()=>0}),C.mkdev("/dev/null",C.makedev(1,3)),mA.register(C.makedev(5,0),mA.default_tty_ops),mA.register(C.makedev(6,0),mA.default_tty1_ops),C.mkdev("/dev/tty",C.makedev(5,0)),C.mkdev("/dev/tty1",C.makedev(6,0));var A=new Uint8Array(1024),I=0,g=()=>(I===0&&(I=Fg(A).byteLength),A[--I]);C.createDevice("/dev","random",g),C.createDevice("/dev","urandom",g),C.mkdir("/dev/shm"),C.mkdir("/dev/shm/tmp")},createSpecialDirectories(){C.mkdir("/proc");var A=C.mkdir("/proc/self");C.mkdir("/proc/self/fd"),C.mount({mount(){var I=C.createNode(A,"fd",16895,73);return I.stream_ops={llseek:m.stream_ops.llseek},I.node_ops={lookup(g,B){var Q=+B,E=C.getStreamChecked(Q),i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>E.path},id:Q+1};return i.parent=i,i},readdir(){return Array.from(C.streams.entries()).filter(([g,B])=>B).map(([g,B])=>g.toString())}},I}},{},"/proc/self/fd")},createStandardStreams(A,I,g){A?C.createDevice("/dev","stdin",A):C.symlink("/dev/tty","/dev/stdin"),I?C.createDevice("/dev","stdout",null,I):C.symlink("/dev/tty","/dev/stdout"),g?C.createDevice("/dev","stderr",null,g):C.symlink("/dev/tty1","/dev/stderr"),C.open("/dev/stdin",0),C.open("/dev/stdout",1),C.open("/dev/stderr",1)},staticInit(){C.nameTable=new Array(4096),C.mount(m,{},"/"),C.createDefaultDirectories(),C.createDefaultDevices(),C.createSpecialDirectories(),C.filesystems={MEMFS:m}},init(A,I,g){C.initialized=!0,A??=G.stdin,I??=G.stdout,g??=G.stderr,C.createStandardStreams(A,I,g)},quit(){C.initialized=!1;for(var A=0;A<C.streams.length;A++){var I=C.streams[A];I&&C.close(I)}},findObject(A,I){var g=C.analyzePath(A,I);return g.exists?g.object:null},analyzePath(A,I){try{var g=C.lookupPath(A,{follow:!I});A=g.path}catch{}var B={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var g=C.lookupPath(A,{parent:!0});B.parentExists=!0,B.parentPath=g.path,B.parentObject=g.node,B.name=IA.basename(A),g=C.lookupPath(A,{follow:!I}),B.exists=!0,B.path=g.path,B.object=g.node,B.name=g.node.name,B.isRoot=g.path==="/"}catch(Q){B.error=Q.errno}return B},createPath(A,I,g,B){A=typeof A=="string"?A:C.getPath(A);for(var Q=I.split("/").reverse();Q.length;){var E=Q.pop();if(E){var i=IA.join2(A,E);try{C.mkdir(i)}catch{}A=i}}return i},createFile(A,I,g,B,Q){var E=IA.join2(typeof A=="string"?A:C.getPath(A),I),i=qI(B,Q);return C.create(E,i)},createDataFile(A,I,g,B,Q,E){var i=I;A&&(A=typeof A=="string"?A:C.getPath(A),i=I?IA.join2(A,I):A);var D=qI(B,Q),Y=C.create(i,D);if(g){if(typeof g=="string"){for(var N=new Array(g.length),l=0,J=g.length;l<J;++l)N[l]=g.charCodeAt(l);g=N}C.chmod(Y,D|146);var Z=C.open(Y,577);C.write(Z,g,0,g.length,0,E),C.close(Z),C.chmod(Y,D)}},createDevice(A,I,g,B){var Q=IA.join2(typeof A=="string"?A:C.getPath(A),I),E=qI(!!g,!!B);C.createDevice.major??=64;var i=C.makedev(C.createDevice.major++,0);return C.registerDevice(i,{open(D){D.seekable=!1},close(D){B?.buffer?.length&&B(10)},read(D,Y,N,l,J){for(var Z=0,h=0;h<l;h++){var o;try{o=g()}catch{throw new C.ErrnoError(29)}if(o===void 0&&Z===0)throw new C.ErrnoError(6);if(o==null)break;Z++,Y[N+h]=o}return Z&&(D.node.atime=Date.now()),Z},write(D,Y,N,l,J){for(var Z=0;Z<l;Z++)try{B(Y[N+Z])}catch{throw new C.ErrnoError(29)}return l&&(D.node.mtime=D.node.ctime=Date.now()),Z}}),C.mkdev(Q,E,i)},forceLoadFile(A){if(A.isDevice||A.isFolder||A.link||A.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{A.contents=DA(A.url),A.usedBytes=A.contents.length}catch{throw new C.ErrnoError(29)}},createLazyFile(A,I,g,B,Q){class E{lengthKnown=!1;chunks=[];get(h){if(!(h>this.length-1||h<0)){var o=h%this.chunkSize,s=h/this.chunkSize|0;return this.getter(s)[o]}}setDataGetter(h){this.getter=h}cacheLength(){var h=new XMLHttpRequest;if(h.open("HEAD",g,!1),h.send(null),!(h.status>=200&&h.status<300||h.status===304))throw new Error("Couldn't load "+g+". Status: "+h.status);var o=Number(h.getResponseHeader("Content-length")),s,x=(s=h.getResponseHeader("Accept-Ranges"))&&s==="bytes",K=(s=h.getResponseHeader("Content-Encoding"))&&s==="gzip",V=1024*1024;x||(V=o);var q=(r,oA)=>{if(r>oA)throw new Error("invalid range ("+r+", "+oA+") or no bytes requested!");if(oA>o-1)throw new Error("only "+o+" bytes available! programmer error!");var y=new XMLHttpRequest;if(y.open("GET",g,!1),o!==V&&y.setRequestHeader("Range","bytes="+r+"-"+oA),y.responseType="arraybuffer",y.overrideMimeType&&y.overrideMimeType("text/plain; charset=x-user-defined"),y.send(null),!(y.status>=200&&y.status<300||y.status===304))throw new Error("Couldn't load "+g+". Status: "+y.status);return y.response!==void 0?new Uint8Array(y.response||[]):Ug(y.responseText||"")},BA=this;BA.setDataGetter(r=>{var oA=r*V,y=(r+1)*V-1;if(y=Math.min(y,o-1),typeof BA.chunks[r]>"u"&&(BA.chunks[r]=q(oA,y)),typeof BA.chunks[r]>"u")throw new Error("doXHR failed!");return BA.chunks[r]}),(K||!o)&&(V=o=1,o=this.getter(0).length,V=o,RA("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=o,this._chunkSize=V,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(!U)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new E,D={isDevice:!1,contents:i}}else var D={isDevice:!1,url:g};var Y=C.createFile(A,I,D,B,Q);D.contents?Y.contents=D.contents:D.url&&(Y.contents=null,Y.url=D.url),Object.defineProperties(Y,{usedBytes:{get:function(){return this.contents.length}}});var N={},l=Object.keys(Y.stream_ops);l.forEach(Z=>{var h=Y.stream_ops[Z];N[Z]=(...o)=>(C.forceLoadFile(Y),h(...o))});function J(Z,h,o,s,x){var K=Z.node.contents;if(x>=K.length)return 0;var V=Math.min(K.length-x,s);if(K.slice)for(var q=0;q<V;q++)h[o+q]=K[x+q];else for(var q=0;q<V;q++)h[o+q]=K.get(x+q);return V}return N.read=(Z,h,o,s,x)=>(C.forceLoadFile(Y),J(Z,h,o,s,x)),N.mmap=(Z,h,o,s,x)=>{C.forceLoadFile(Y);var K=Mg();if(!K)throw new C.ErrnoError(48);return J(Z,lA,K,h,o),{ptr:K,allocated:!0}},Y.stream_ops=N,Y}},ZA={DEFAULT_POLLMASK:5,calculateAt(A,I,g){if(IA.isAbs(I))return I;var B;if(A===-100)B=C.cwd();else{var Q=ZA.getStreamFromFD(A);B=Q.path}if(I.length==0){if(!g)throw new C.ErrnoError(44);return B}return B+"/"+I},doStat(A,I,g){var B=A(I);j[g>>2]=B.dev,j[g+4>>2]=B.mode,n[g+8>>2]=B.nlink,j[g+12>>2]=B.uid,j[g+16>>2]=B.gid,j[g+20>>2]=B.rdev,iA=[B.size>>>0,(k=B.size,+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[g+24>>2]=iA[0],j[g+28>>2]=iA[1],j[g+32>>2]=4096,j[g+36>>2]=B.blocks;var Q=B.atime.getTime(),E=B.mtime.getTime(),i=B.ctime.getTime();return iA=[Math.floor(Q/1e3)>>>0,(k=Math.floor(Q/1e3),+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[g+40>>2]=iA[0],j[g+44>>2]=iA[1],n[g+48>>2]=Q%1e3*1e3*1e3,iA=[Math.floor(E/1e3)>>>0,(k=Math.floor(E/1e3),+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[g+56>>2]=iA[0],j[g+60>>2]=iA[1],n[g+64>>2]=E%1e3*1e3*1e3,iA=[Math.floor(i/1e3)>>>0,(k=Math.floor(i/1e3),+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[g+72>>2]=iA[0],j[g+76>>2]=iA[1],n[g+80>>2]=i%1e3*1e3*1e3,iA=[B.ino>>>0,(k=B.ino,+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[g+88>>2]=iA[0],j[g+92>>2]=iA[1],0},doMsync(A,I,g,B,Q){if(!C.isFile(I.node.mode))throw new C.ErrnoError(43);if(B&2)return 0;var E=bA.slice(A,A+g);C.msync(I,E,Q,g,B)},getStreamFromFD(A){var I=C.getStreamChecked(A);return I},varargs:void 0,getStr(A){var I=eA(A);return I}};function GQ(A,I,g){ZA.varargs=g;try{var B=ZA.getStreamFromFD(A);switch(I){case 0:{var Q=lI();if(Q<0)return-28;for(;C.streams[Q];)Q++;var E;return E=C.dupStream(B,Q),E.fd}case 1:case 2:return 0;case 3:return B.flags;case 4:{var Q=lI();return B.flags|=Q,0}case 12:{var Q=xA(),i=0;return FA[Q+i>>1]=2,0}case 13:case 14:return 0}return-28}catch(D){if(typeof C>"u"||D.name!=="ErrnoError")throw D;return-D.errno}}var PA=(A,I,g)=>nI(A,bA,I,g);function DQ(A,I,g){try{var B=ZA.getStreamFromFD(A);B.getdents||=C.readdir(B.path);for(var Q=280,E=0,i=C.llseek(B,0,1),D=Math.floor(i/Q),Y=Math.min(B.getdents.length,D+Math.floor(g/Q)),N=D;N<Y;N++){var l,J,Z=B.getdents[N];if(Z===".")l=B.node.id,J=4;else if(Z===".."){var h=C.lookupPath(B.path,{parent:!0});l=h.node.id,J=4}else{var o;try{o=C.lookupNode(B.node,Z)}catch(s){if(s?.errno===28)continue;throw s}l=o.id,J=C.isChrdev(o.mode)?2:C.isDir(o.mode)?4:C.isLink(o.mode)?10:8}iA=[l>>>0,(k=l,+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[I+E>>2]=iA[0],j[I+E+4>>2]=iA[1],iA=[(N+1)*Q>>>0,(k=(N+1)*Q,+Math.abs(k)>=1?k>0?+Math.floor(k/4294967296)>>>0:~~+Math.ceil((k-+(~~k>>>0))/4294967296)>>>0:0)],j[I+E+8>>2]=iA[0],j[I+E+12>>2]=iA[1],FA[I+E+16>>1]=280,lA[I+E+18]=J,PA(Z,I+E+19,256),E+=Q}return C.llseek(B,N*Q,0),E}catch(s){if(typeof C>"u"||s.name!=="ErrnoError")throw s;return-s.errno}}function YQ(A,I,g){ZA.varargs=g;try{var B=ZA.getStreamFromFD(A);switch(I){case 21509:return B.tty?0:-59;case 21505:{if(!B.tty)return-59;if(B.tty.ops.ioctl_tcgets){var Q=B.tty.ops.ioctl_tcgets(B),E=xA();j[E>>2]=Q.c_iflag||0,j[E+4>>2]=Q.c_oflag||0,j[E+8>>2]=Q.c_cflag||0,j[E+12>>2]=Q.c_lflag||0;for(var i=0;i<32;i++)lA[E+i+17]=Q.c_cc[i]||0;return 0}return 0}case 21510:case 21511:case 21512:return B.tty?0:-59;case 21506:case 21507:case 21508:{if(!B.tty)return-59;if(B.tty.ops.ioctl_tcsets){for(var E=xA(),D=j[E>>2],Y=j[E+4>>2],N=j[E+8>>2],l=j[E+12>>2],J=[],i=0;i<32;i++)J.push(lA[E+i+17]);return B.tty.ops.ioctl_tcsets(B.tty,I,{c_iflag:D,c_oflag:Y,c_cflag:N,c_lflag:l,c_cc:J})}return 0}case 21519:{if(!B.tty)return-59;var E=xA();return j[E>>2]=0,0}case 21520:return B.tty?-28:-59;case 21531:{var E=xA();return C.ioctl(B,I,E)}case 21523:{if(!B.tty)return-59;if(B.tty.ops.ioctl_tiocgwinsz){var Z=B.tty.ops.ioctl_tiocgwinsz(B.tty),E=xA();FA[E>>1]=Z[0],FA[E+2>>1]=Z[1]}return 0}case 21524:return B.tty?0:-59;case 21515:return B.tty?0:-59;default:return-28}}catch(h){if(typeof C>"u"||h.name!=="ErrnoError")throw h;return-h.errno}}function wQ(A,I,g,B){ZA.varargs=B;try{I=ZA.getStr(I),I=ZA.calculateAt(A,I);var Q=B?lI():0;return C.open(I,g,Q).fd}catch(E){if(typeof C>"u"||E.name!=="ErrnoError")throw E;return-E.errno}}function NQ(A,I){try{return A=ZA.getStr(A),ZA.doStat(C.stat,A,I)}catch(g){if(typeof C>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}var lQ=()=>LA(""),oI={},rA=A=>{for(;A.length;){var I=A.pop(),g=A.pop();g(I)}};function OA(A){return this.fromWireType(n[A>>2])}var uA={},VA={},JI={},Sg,RI=A=>{throw new Sg(A)},cA=(A,I,g)=>{A.forEach(D=>JI[D]=I);function B(D){var Y=g(D);Y.length!==A.length&&RI("Mismatched type converter count");for(var N=0;N<A.length;++N)UA(A[N],Y[N])}var Q=new Array(I.length),E=[],i=0;I.forEach((D,Y)=>{VA.hasOwnProperty(D)?Q[Y]=VA[D]:(E.push(D),uA.hasOwnProperty(D)||(uA[D]=[]),uA[D].push(()=>{Q[Y]=VA[D],++i,i===E.length&&B(Q)}))}),E.length===0&&B(Q)},oQ=A=>{var I=oI[A];delete oI[A];var g=I.elements,B=g.length,Q=g.map(D=>D.getterReturnType).concat(g.map(D=>D.setterArgumentType)),E=I.rawConstructor,i=I.rawDestructor;cA([A],Q,D=>(g.forEach((Y,N)=>{var l=D[N],J=Y.getter,Z=Y.getterContext,h=D[N+B],o=Y.setter,s=Y.setterContext;Y.read=x=>l.fromWireType(J(Z,x)),Y.write=(x,K)=>{var V=[];o(s,x,h.toWireType(V,K)),rA(V)}}),[{name:I.name,fromWireType:Y=>{for(var N=new Array(B),l=0;l<B;++l)N[l]=g[l].read(Y);return i(Y),N},toWireType:(Y,N)=>{if(B!==N.length)throw new TypeError(`Incorrect number of tuple elements for ${I.name}: expected=${B}, actual=${N.length}`);for(var l=E(),J=0;J<B;++J)g[J].write(l,N[J]);return Y!==null&&Y.push(i,l),l},argPackAdvance:MA,readValueFromPointer:OA,destructorFunction:i}]))},JQ=(A,I,g,B,Q)=>{},RQ=()=>{for(var A=new Array(256),I=0;I<256;++I)A[I]=String.fromCharCode(I);Wg=A},Wg,wA=A=>{for(var I="",g=A;bA[g];)I+=Wg[bA[g++]];return I},vA,p=A=>{throw new vA(A)};function ZQ(A,I,g={}){var B=I.name;if(A||p(`type "${B}" must have a positive integer typeid pointer`),VA.hasOwnProperty(A)){if(g.ignoreDuplicateRegistrations)return;p(`Cannot register type '${B}' twice`)}if(VA[A]=I,delete JI[A],uA.hasOwnProperty(A)){var Q=uA[A];delete uA[A],Q.forEach(E=>E())}}function UA(A,I,g={}){return ZQ(A,I,g)}var MA=8,bQ=(A,I,g,B)=>{I=wA(I),UA(A,{name:I,fromWireType:function(Q){return!!Q},toWireType:function(Q,E){return E?g:B},argPackAdvance:MA,readValueFromPointer:function(Q){return this.fromWireType(bA[Q])},destructorFunction:null})},hQ=A=>({count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType}),zI=A=>{function I(g){return g.$$.ptrType.registeredClass.name}p(I(A)+" instance already deleted")},eI=!1,Hg=A=>{},cQ=A=>{A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)},Xg=A=>{A.count.value-=1;var I=A.count.value===0;I&&cQ(A)},kg=(A,I,g)=>{if(I===g)return A;if(g.baseClass===void 0)return null;var B=kg(A,I,g.baseClass);return B===null?null:g.downcast(B)},dg={},FQ={},UQ=(A,I)=>{for(I===void 0&&p("ptr should not be undefined");A.baseClass;)I=A.upcast(I),A=A.baseClass;return I},MQ=(A,I)=>(I=UQ(A,I),FQ[I]),ZI=(A,I)=>{(!I.ptrType||!I.ptr)&&RI("makeClassHandle requires ptr and ptrType");var g=!!I.smartPtrType,B=!!I.smartPtr;return g!==B&&RI("Both smartPtrType and smartPtr must be specified"),I.count={value:1},_A(Object.create(A,{$$:{value:I,writable:!0}}))};function yQ(A){var I=this.getPointee(A);if(!I)return this.destructor(A),null;var g=MQ(this.registeredClass,I);if(g!==void 0){if(g.$$.count.value===0)return g.$$.ptr=I,g.$$.smartPtr=A,g.clone();var B=g.clone();return this.destructor(A),B}function Q(){return this.isSmartPointer?ZI(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:I,smartPtrType:this,smartPtr:A}):ZI(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var E=this.registeredClass.getActualType(I),i=dg[E];if(!i)return Q.call(this);var D;this.isConst?D=i.constPointerType:D=i.pointerType;var Y=kg(I,this.registeredClass,D.registeredClass);return Y===null?Q.call(this):this.isSmartPointer?ZI(D.registeredClass.instancePrototype,{ptrType:D,ptr:Y,smartPtrType:this,smartPtr:A}):ZI(D.registeredClass.instancePrototype,{ptrType:D,ptr:Y})}var _A=A=>typeof FinalizationRegistry>"u"?(_A=I=>I,A):(eI=new FinalizationRegistry(I=>{Xg(I.$$)}),_A=I=>{var g=I.$$,B=!!g.smartPtr;if(B){var Q={$$:g};eI.register(I,Q,I)}return I},Hg=I=>eI.unregister(I),_A(A)),aQ=()=>{Object.assign(bI.prototype,{isAliasOf(A){if(!(this instanceof bI)||!(A instanceof bI))return!1;var I=this.$$.ptrType.registeredClass,g=this.$$.ptr;A.$$=A.$$;for(var B=A.$$.ptrType.registeredClass,Q=A.$$.ptr;I.baseClass;)g=I.upcast(g),I=I.baseClass;for(;B.baseClass;)Q=B.upcast(Q),B=B.baseClass;return I===B&&g===Q},clone(){if(this.$$.ptr||zI(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var A=_A(Object.create(Object.getPrototypeOf(this),{$$:{value:hQ(this.$$)}}));return A.$$.count.value+=1,A.$$.deleteScheduled=!1,A},delete(){this.$$.ptr||zI(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&p("Object already scheduled for deletion"),Hg(this),Xg(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||zI(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&p("Object already scheduled for deletion"),this.$$.deleteScheduled=!0,this}})};function bI(){}var fA=(A,I)=>Object.defineProperty(I,"name",{value:A}),rI=(A,I,g)=>{if(A[I].overloadTable===void 0){var B=A[I];A[I]=function(...Q){return A[I].overloadTable.hasOwnProperty(Q.length)||p(`Function '${g}' called with an invalid number of arguments (${Q.length}) - expects one of (${A[I].overloadTable})!`),A[I].overloadTable[Q.length].apply(this,Q)},A[I].overloadTable=[],A[I].overloadTable[B.argCount]=B}},OI=(A,I,g)=>{G.hasOwnProperty(A)?((g===void 0||G[A].overloadTable!==void 0&&G[A].overloadTable[g]!==void 0)&&p(`Cannot register public name '${A}' twice`),rI(G,A,A),G[A].overloadTable.hasOwnProperty(g)&&p(`Cannot register multiple overloads of a function with the same number of arguments (${g})!`),G[A].overloadTable[g]=I):(G[A]=I,G[A].argCount=g)},SQ=48,WQ=57,HQ=A=>{A=A.replace(/[^a-zA-Z0-9_]/g,"$");var I=A.charCodeAt(0);return I>=SQ&&I<=WQ?`_${A}`:A};function XQ(A,I,g,B,Q,E,i,D){this.name=A,this.constructor=I,this.instancePrototype=g,this.rawDestructor=B,this.baseClass=Q,this.getActualType=E,this.upcast=i,this.downcast=D,this.pureVirtualFunctions=[]}var hI=(A,I,g)=>{for(;I!==g;)I.upcast||p(`Expected null or instance of ${g.name}, got an instance of ${I.name}`),A=I.upcast(A),I=I.baseClass;return A};function kQ(A,I){if(I===null)return this.isReference&&p(`null is not a valid ${this.name}`),0;I.$$||p(`Cannot pass "${Ig(I)}" as a ${this.name}`),I.$$.ptr||p(`Cannot pass deleted object as a pointer of type ${this.name}`);var g=I.$$.ptrType.registeredClass,B=hI(I.$$.ptr,g,this.registeredClass);return B}function dQ(A,I){var g;if(I===null)return this.isReference&&p(`null is not a valid ${this.name}`),this.isSmartPointer?(g=this.rawConstructor(),A!==null&&A.push(this.rawDestructor,g),g):0;(!I||!I.$$)&&p(`Cannot pass "${Ig(I)}" as a ${this.name}`),I.$$.ptr||p(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&I.$$.ptrType.isConst&&p(`Cannot convert argument of type ${I.$$.smartPtrType?I.$$.smartPtrType.name:I.$$.ptrType.name} to parameter type ${this.name}`);var B=I.$$.ptrType.registeredClass;if(g=hI(I.$$.ptr,B,this.registeredClass),this.isSmartPointer)switch(I.$$.smartPtr===void 0&&p("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:I.$$.smartPtrType===this?g=I.$$.smartPtr:p(`Cannot convert argument of type ${I.$$.smartPtrType?I.$$.smartPtrType.name:I.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:g=I.$$.smartPtr;break;case 2:if(I.$$.smartPtrType===this)g=I.$$.smartPtr;else{var Q=I.clone();g=this.rawShare(g,YA.toHandle(()=>Q.delete())),A!==null&&A.push(this.rawDestructor,g)}break;default:p("Unsupporting sharing policy")}return g}function sQ(A,I){if(I===null)return this.isReference&&p(`null is not a valid ${this.name}`),0;I.$$||p(`Cannot pass "${Ig(I)}" as a ${this.name}`),I.$$.ptr||p(`Cannot pass deleted object as a pointer of type ${this.name}`),I.$$.ptrType.isConst&&p(`Cannot convert argument of type ${I.$$.ptrType.name} to parameter type ${this.name}`);var g=I.$$.ptrType.registeredClass,B=hI(I.$$.ptr,g,this.registeredClass);return B}var KQ=()=>{Object.assign($A.prototype,{getPointee(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor(A){this.rawDestructor?.(A)},argPackAdvance:MA,readValueFromPointer:OA,fromWireType:yQ})};function $A(A,I,g,B,Q,E,i,D,Y,N,l){this.name=A,this.registeredClass=I,this.isReference=g,this.isConst=B,this.isSmartPointer=Q,this.pointeeType=E,this.sharingPolicy=i,this.rawGetPointee=D,this.rawConstructor=Y,this.rawShare=N,this.rawDestructor=l,!Q&&I.baseClass===void 0?B?(this.toWireType=kQ,this.destructorFunction=null):(this.toWireType=sQ,this.destructorFunction=null):this.toWireType=dQ}var sg=(A,I,g)=>{G.hasOwnProperty(A)||RI("Replacing nonexistent public symbol"),G[A].overloadTable!==void 0&&g!==void 0?G[A].overloadTable[g]=I:(G[A]=I,G[A].argCount=g)},mQ=(A,I,g)=>{A=A.replace(/p/g,"i");var B=G["dynCall_"+A];return B(I,...g)},Kg,P=A=>Kg.get(A),VQ=(A,I,g=[])=>{if(A.includes("j"))return mQ(A,I,g);var B=P(I)(...g);return B},LQ=(A,I)=>(...g)=>VQ(A,I,g),NA=(A,I)=>{A=wA(A);function g(){return A.includes("j")?LQ(A,I):P(I)}var B=g();return typeof B!="function"&&p(`unknown function pointer with signature ${A}: ${I}`),B},jQ=(A,I)=>{var g=fA(I,function(B){this.name=I,this.message=B;var Q=new Error(B).stack;Q!==void 0&&(this.stack=this.toString()+`
|
|
3
3
|
`+Q.replace(/^Error(:[^\n]*)?\n/,""))});return g.prototype=Object.create(A.prototype),g.prototype.constructor=g,g.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},g},mg,Vg=A=>{var I=ng(A),g=wA(I);return XA(I),g},WA=(A,I)=>{var g=[],B={};function Q(E){if(!B[E]&&!VA[E]){if(JI[E]){JI[E].forEach(Q);return}g.push(E),B[E]=!0}}throw I.forEach(Q),new mg(`${A}: `+g.map(Vg).join([", "]))},xQ=(A,I,g,B,Q,E,i,D,Y,N,l,J,Z)=>{l=wA(l),E=NA(Q,E),D&&=NA(i,D),N&&=NA(Y,N),Z=NA(J,Z);var h=HQ(l);OI(h,function(){WA(`Cannot construct ${l} due to unbound types`,[B])}),cA([A,I,g],B?[B]:[],o=>{o=o[0];var s,x;B?(s=o.registeredClass,x=s.instancePrototype):x=bI.prototype;var K=fA(l,function(...y){if(Object.getPrototypeOf(this)!==V)throw new vA("Use 'new' to construct "+l);if(q.constructor_body===void 0)throw new vA(l+" has no accessible constructor");var a=q.constructor_body[y.length];if(a===void 0)throw new vA(`Tried to invoke ctor of ${l} with invalid number of parameters (${y.length}) - expected (${Object.keys(q.constructor_body).toString()}) parameters instead!`);return a.apply(this,y)}),V=Object.create(x,{constructor:{value:K}});K.prototype=V;var q=new XQ(l,K,V,Z,s,E,D,N);q.baseClass&&(q.baseClass.__derivedClasses??=[],q.baseClass.__derivedClasses.push(q));var BA=new $A(l,q,!0,!1,!1),r=new $A(l+"*",q,!1,!1,!1),oA=new $A(l+" const*",q,!1,!0,!1);return dg[A]={pointerType:r,constPointerType:oA},sg(h,K),[BA,r,oA]})};function Lg(A){for(var I=1;I<A.length;++I)if(A[I]!==null&&A[I].destructorFunction===void 0)return!0;return!1}function jg(A,I){if(!(A instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof A} which is not a function`);var g=fA(A.name||"unknownFunctionName",function(){});g.prototype=A.prototype;var B=new g,Q=A.apply(B,I);return Q instanceof Object?Q:B}function TQ(A,I,g,B){var Q=Lg(A),E=A.length-2,i=[],D=["fn"];I&&D.push("thisWired");for(var Y=0;Y<E;++Y)i.push(`arg${Y}`),D.push(`arg${Y}Wired`);i=i.join(","),D=D.join(",");var N=`return function (${i}) {
|
|
4
4
|
`;Q&&(N+=`var destructors = [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Texture as KI, WebGLRenderTarget as $E, RepeatWrapping as Gg, LinearFilter as hB, LinearMipMapLinearFilter as cB, FloatType as Ai, RGBAFormat as Ii, PlaneGeometry as FB, OrthographicCamera as gi, ShaderMaterial as UB, Scene as Bi, Mesh as Dg, EquirectangularReflectionMapping as Qi, Vector3 as qA, Quaternion as Ci, Color as Ei, Uniform
|
|
1
|
+
import { Texture as KI, WebGLRenderTarget as $E, RepeatWrapping as Gg, LinearFilter as hB, LinearMipMapLinearFilter as cB, FloatType as Ai, RGBAFormat as Ii, PlaneGeometry as FB, OrthographicCamera as gi, ShaderMaterial as UB, Scene as Bi, Mesh as Dg, EquirectangularReflectionMapping as Qi, Vector3 as qA, Quaternion as Ci, Color as Ei, Uniform as ii, LinearSRGBColorSpace as Gi, Cache as KA, MirroredRepeatWrapping as Di, ClampToEdgeWrapping as Yi, NearestMipMapNearestFilter as wi, NearestFilter as Ni, MeshBasicMaterial as li, PMREMGenerator as oi, cloneUniforms as Ji, cloneUniformsGroups as Ri, GLSL3 as Zi, Matrix4 as WI, UniformsLib as bi, Matrix3 as hi, MeshStandardMaterial as XI, DoubleSide as ci, FrontSide as Fi } from "./three.js";
|
|
2
2
|
var kI = (function() {
|
|
3
3
|
var F = typeof document < "u" ? document.currentScript?.src : void 0;
|
|
4
4
|
return typeof __filename < "u" && (F = F || __filename), (function(w) {
|
|
@@ -60,7 +60,7 @@ return ret;
|
|
|
60
60
|
|
|
61
61
|
gl_FragColor = vec4(envColor.rgb, 1.0);
|
|
62
62
|
}
|
|
63
|
-
`}),gA=new S.Scene,FA=new S.Mesh(_,AA);gA.add(FA);const EA=F.getRenderTarget(),$=F.autoClear,oA=F.xr.enabled,wA=F.shadowMap.enabled;k.texture.generateMipmaps=!0;try{F.xr.enabled=!1,F.shadowMap.enabled=!1,F.autoClear=!0,F.setRenderTarget(k),F.clear(),F.render(gA,QA)}finally{F.setRenderTarget(EA),F.autoClear=$,F.xr.enabled=oA,F.shadowMap.enabled=wA,_.dispose(),AA.dispose(),gA.remove(FA)}return k.texture.name="PMREM_Equirectangular_Texture_"+J.toFixed(2),k.texture.mapping=S.EquirectangularReflectionMapping,zE&&console.log("[MaterialX] PMREM to Equirect Render Target:",{width:k.width,height:k.height,mipmaps:k.texture.mipmaps?.length,roughness:J}),k}const dI="_",CB=dI+"uaddressmode",EB=dI+"vaddressmode",iB=dI+"filtertype",eE="/";function Qg(F,w){let J;if(F)J=[...F.data()];else{J=[];for(let G=0;G<w;++G)J.push(0)}return J}function GB(F,w){const J=new Array(w);if(F)for(let G=0;G<F.numRows();++G)for(let c=0;c<F.numColumns();++c)J.push(F.getItem(G,c));else for(let G=0;G<w;++G)J.push(0);return J}const sI=new S.Texture;sI.needsUpdate=!0;sI.image=new Image;sI.image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRFr6+vGqg52AAAAAxJREFUeJxjZGBEgQAAWAAJLpjsTQAAAABJRU5ErkJggg==";const KI=new S.Texture;KI.needsUpdate=!0;KI.image=new Image;KI.image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIBAMAAAA2IaO4AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABJQTFRFgYH4gIH4gYH3gIH3gIH5gID4m94ORAAAADFJREFUeJxjZBBkfMdo9P/BB0aBj/8FGB0ufghgFGT4r8wo+P8rD2Pgo3sMjIz8jAwAMLoN0ZjS5hgAAAAASUVORK5CYII=";function rE(F){const w=S.Cache.enabled;S.Cache.enabled=!0;const J=S.Cache.get(F);return S.Cache.enabled=w,J}function DB(F,w){const J=S.Cache.enabled;S.Cache.enabled=!0,S.Cache.add(F,w),S.Cache.enabled=J,e&&console.log("[MaterialX] Added to cache:",F,w)}function OE(F,w,J,G,c,M){const h=new S.Uniform
|
|
63
|
+
`}),gA=new S.Scene,FA=new S.Mesh(_,AA);gA.add(FA);const EA=F.getRenderTarget(),$=F.autoClear,oA=F.xr.enabled,wA=F.shadowMap.enabled;k.texture.generateMipmaps=!0;try{F.xr.enabled=!1,F.shadowMap.enabled=!1,F.autoClear=!0,F.setRenderTarget(k),F.clear(),F.render(gA,QA)}finally{F.setRenderTarget(EA),F.autoClear=$,F.xr.enabled=oA,F.shadowMap.enabled=wA,_.dispose(),AA.dispose(),gA.remove(FA)}return k.texture.name="PMREM_Equirectangular_Texture_"+J.toFixed(2),k.texture.mapping=S.EquirectangularReflectionMapping,zE&&console.log("[MaterialX] PMREM to Equirect Render Target:",{width:k.width,height:k.height,mipmaps:k.texture.mipmaps?.length,roughness:J}),k}const dI="_",CB=dI+"uaddressmode",EB=dI+"vaddressmode",iB=dI+"filtertype",eE="/";function Qg(F,w){let J;if(F)J=[...F.data()];else{J=[];for(let G=0;G<w;++G)J.push(0)}return J}function GB(F,w){const J=new Array(w);if(F)for(let G=0;G<F.numRows();++G)for(let c=0;c<F.numColumns();++c)J.push(F.getItem(G,c));else for(let G=0;G<w;++G)J.push(0);return J}const sI=new S.Texture;sI.needsUpdate=!0;sI.image=new Image;sI.image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRFr6+vGqg52AAAAAxJREFUeJxjZGBEgQAAWAAJLpjsTQAAAABJRU5ErkJggg==";const KI=new S.Texture;KI.needsUpdate=!0;KI.image=new Image;KI.image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIBAMAAAA2IaO4AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABJQTFRFgYH4gIH4gYH3gIH3gIH5gID4m94ORAAAADFJREFUeJxjZBBkfMdo9P/BB0aBj/8FGB0ufghgFGT4r8wo+P8rD2Pgo3sMjIz8jAwAMLoN0ZjS5hgAAAAASUVORK5CYII=";function rE(F){const w=S.Cache.enabled;S.Cache.enabled=!0;const J=S.Cache.get(F);return S.Cache.enabled=w,J}function DB(F,w){const J=S.Cache.enabled;S.Cache.enabled=!0,S.Cache.add(F,w),S.Cache.enabled=J,e&&console.log("[MaterialX] Added to cache:",F,w)}function OE(F,w,J,G,c,M){const h=new S.Uniform(null);switch(w){case"float":case"integer":case"boolean":h.value=J;break;case"vector2":h.value=Qg(J,2);break;case"vector3":case"color3":h.value=Qg(J,3);break;case"vector4":case"color4":h.value=Qg(J,4);break;case"matrix33":h.value=GB(J,9);break;case"matrix44":h.value=GB(J,16);break;case"filename":if(J){let U=!0,X=M+eE+J;J.startsWith("blob:")||J.startsWith("data:")?(X=J,U=!1):J.startsWith("http")&&(X=J,U=!0);const k=c.cacheKey?.length?`${c.cacheKey}-${X}`:X,_=U?rE(k):null;if(_)e&&console.log("[MaterialX] Use cached texture: ",k,_),_ instanceof Promise?_.then(QA=>{QA?h.value=QA:console.warn(`[MaterialX] Failed to load texture ${G} '${X}'`)}):h.value=_;else{e&&console.log("[MaterialX] Load texture:",X),G.toLowerCase().includes("normal")?h.value=KI:h.value=sI;const QA=h.value,AA=c.getTexture(X)?.then(gA=>(gA&&(gA=gA.clone(),gA.colorSpace=S.LinearSRGBColorSpace,_E(gA,G,F)),gA)).catch(gA=>(console.error(`[MaterialX] Failed to load texture ${G} '${X}'`,gA),QA));U&&DB(k,AA),AA?.then(gA=>{U&&gA&&DB(k,gA),gA?h.value=gA:console.warn(`[MaterialX] Failed to load texture ${G} '${X}'`)})}}break;case"samplerCube":case"string":case"surfaceshader":case"displacementshader":case"volumeshader":case"lightshader":break;default:const K=w+":"+G;YB.has(K)||(YB.set(K,!0),(e||qE())&&console.warn(`MaterialX: Unsupported uniform '${G}': ${w}`));break}return h}const YB=new Map;function wB(F){let w;switch(F){case 1:w=S.ClampToEdgeWrapping;break;case 2:w=S.RepeatWrapping;break;case 3:w=S.MirroredRepeatWrapping;break;default:w=S.RepeatWrapping;break}return w}function _E(F,w,J,G=!0){const c=w.lastIndexOf(dI),M=w.substring(0,c)||w;if(J.find(M+CB)){const U=J.find(M+CB).getValue().getData();F.wrapS=wB(U)}if(J.find(M+EB)){const U=J.find(M+EB).getValue().getData();F.wrapT=wB(U)}const h=J.find(M+iB)?J.get(M+iB).value:-1;let K=G?S.LinearMipMapLinearFilter:S.LinearFilter;h===0&&(K=G?S.NearestMipMapNearestFilter:S.NearestFilter),F.minFilter=K}function $E(F){let w=new Array;for(let J of F.getNodes())J.getType()==="lightshader"&&w.push(J);return w}let SA={};function Ai(){return{directional:SA.ND_directional_light||1,point:SA.ND_point_light||2,spot:SA.ND_spot_light||3}}async function Ii(F,w){SA={};const J=w.getOptions().hwMaxActiveLightSources;F.HwShaderGenerator.unbindLightShaders(w);let G=1;const c=`<?xml version="1.0"?>
|
|
64
64
|
<materialx version="1.39">
|
|
65
65
|
<directional_light name="default_directional_light" type="lightshader">
|
|
66
66
|
</directional_light>
|
|
@@ -72,7 +72,7 @@ return ret;
|
|
|
72
72
|
<area_light name="default_area_light" type="lightshader">
|
|
73
73
|
</area_light>
|
|
74
74
|
-->
|
|
75
|
-
</materialx>`,M=F.createDocument();await F.readFromXmlString(M,c,"");const h=F.createDocument(),K=F.loadStandardLibraries(w);h.setDataLibrary(K),h.importLibrary(M);const U=$E(h);e&&console.log("Default lights in MaterialX document",U),w.getOptions().hwMaxActiveLightSources=J;for(let X of U){const k=X.getNodeDef();if(e&&console.log("Default light node definition",k),!k)continue;const _=k.getName();e&&console.log("Registering default light",{lightName:_,lightDef:k}),SA[_]||(e&&console.log("Bind light shader for node",{lightName:_,lightId:G,lightDef:k}),SA[_]=G,F.HwShaderGenerator.bindLightShader(k,G++,w))}e&&console.log("Light types bound in MaterialX context",SA)}const NB={},gi=new S.Vector3(0,0,0),Bi=new S.Vector3(0,0,-1),Qi=new S.Color(0,0,0),Ci=Object.freeze({type:0,position:gi,direction:Bi,color:Qi,intensity:0,decay_rate:2,inner_angle:0,outer_angle:0});function Ei(F){switch(F){case"PointLight":return"ND_point_light";case"DirectionalLight":return"ND_directional_light";case"SpotLight":return"ND_spot_light";default:return NB[F]||(NB[F]=!0,console.warn("MaterialX: Unsupported light type: "+F)),null}}function ii(F,w){const J=new Array,G=w.getOptions().hwMaxActiveLightSources;for(let M of F){if(!M?.isLight)continue;const h=Ei(M.type);if(!h)continue;SA[h]||e&&console.error("MaterialX: Light type not registered in context. Make sure to register light types before using them.",h);const K=M.getWorldPosition(new S.Vector3);let U;const X=M.isDirectionalLight||M.isSpotLight?M:null;if(X)U=X.target.getWorldPosition(new S.Vector3).sub(K).normalize();else{const gA=M.getWorldQuaternion(new S.Quaternion);U=new S.Vector3(0,0,-1).applyQuaternion(gA)}const k=M.angle,_=k*(1-M.penumbra),QA=Math.cos(_),AA=Math.cos(k);J.push({type:SA[h],position:K.clone(),direction:U.clone(),color:M.color.clone(),intensity:M.intensity*(M.isPointLight||M.isSpotLight?683/3.1415:1),decay_rate:2,inner_angle:QA,outer_angle:AA})}const c=J.length;for(;J.length<G;)J.push(Ci);return tE&&console.log("Registered lights in MaterialX context",SA,J),{lightData:J,lightCount:c}}function lB(F,w,J){const G={},c=F.getUniformBlocks();for(const[M,h]of Object.entries(c))if(M!=="LightData"&&!h.empty())for(let K=0;K<h.size();++K){const U=h.get(K),X=U.getValue()?.getData(),k=U.getVariable(),_=U.getType().getName();G[k]=OE(h,_,X,k,w,J),e&&console.log("Adding uniform",{path:U.getPath(),type:_,name:k,value:G[k]})}return G}function WI(F,w){const J=w.getUniformBlocks();for(const[G,c]of Object.entries(J))if(G!=="LightData"&&!c.empty())for(let M=0;M<c.size();++M){const h=c.get(M),K=h.getVariable();let U=h.getPath().split("/").pop();switch(U){case"_Color":U="color";break;case"_Roughness":U="roughness";break;case"_Metallic":U="metalness";break}U&&(F.hasOwnProperty(U)?e&&console.warn(`[MaterialX] Uniform ${K} already exists in material as property ${U}, skipping.`):Object.defineProperty(F,U,{get:function(){return this.uniforms?.[K].value},set:function(X){const k=this.uniforms;if(!k||!k[K]){console.warn(`[MaterialX] Uniform ${K} not found in ${this.name} uniforms`);return}this.uniforms[K].value=X,this.uniformsNeedUpdate=!0}}))}}const Gi="1.5.1",Di={version:Gi},XI=Di.version;async function Yi(F){if(F==="immediately")return QI();if(F==="network_idle")return nE().then(QI)}const p=new class{materialXModule=null;materialXGenerator=null;materialXGenContext=null;materialXStdLib=null;materialXInitPromise=null};async function QI(){return p.materialXInitPromise?p.materialXInitPromise:p.materialXInitPromise=(async()=>{if(!p.materialXModule){e&&console.log(`[MaterialX v${XI}] Initializing WASM module...`);try{const F="https://cdn.needle.tools/static/materialx/1.5.0/";let w;const J=globalThis.NEEDLE_MATERIALX_LOCATION;J==="package"||J==="bin/"||J==="./bin/"||J==="../bin/"?w=await Promise.all([Promise.resolve().then(()=>Ri).then(U=>U.default||U),Promise.resolve().then(()=>bi).then(U=>U.default||U),Promise.resolve().then(()=>ci).then(U=>U.default||U)]):J?w=[J+"JsMaterialXCore.wasm",J+"JsMaterialXGenShader.wasm",J+"JsMaterialXGenShader.data.txt"]:w=[F+"JsMaterialXCore.wasm",F+"JsMaterialXGenShader.wasm",F+"JsMaterialXGenShader.data.txt"];const[G,c,M]=w,h=await HI({locateFile:(U,X)=>(e&&console.debug("[MaterialX] locateFile called:",{path:U,scriptDirectory:X}),U.includes("JsMaterialXCore.wasm")?G:U.includes("JsMaterialXGenShader.wasm")?c:U.includes("JsMaterialXGenShader.data")?M:X+U)});e&&console.log("[MaterialX] module loaded",h),p.materialXModule=h,p.materialXGenerator=h.EsslShaderGenerator.create(),p.materialXGenContext=new h.GenContext(p.materialXGenerator);const K=h.createDocument();p.materialXStdLib=h.loadStandardLibraries(p.materialXGenContext),K.setDataLibrary(p.materialXStdLib),p.materialXGenContext.getOptions().shaderInterfaceType=p.materialXModule.ShaderInterfaceType.SHADER_INTERFACE_COMPLETE,p.materialXGenContext.getOptions().hwSpecularEnvironmentMethod=p.materialXModule.HwSpecularEnvironmentMethod.SPECULAR_ENVIRONMENT_FIS,p.materialXGenContext.getOptions().hwSrgbEncodeOutput=!1,p.materialXGenContext.getOptions().hwMaxActiveLightSources=4,await Ii(p.materialXModule,p.materialXGenContext),e&&console.log(`[MaterialX v${XI}] Generator initialized successfully`)}catch(F){throw console.error(`[MaterialX v${XI}] Failed to load MaterialX module:`,F),F}}})()}class mI{static get(w){return this.getEnvironment(w)}static _environments=new WeakMap;static getEnvironment(w){if(this._environments.has(w))return this._environments.get(w);const J=new mI(w);return this._environments.set(w,J),J}_lights=[];_lightData=null;_lightCount=0;_initializePromise=null;_isInitialized=!1;_lastUpdateFrame=-1;constructor(w){this._scene=w,e&&console.log("[MaterialX] Environment created")}async initialize(w){return this._initializePromise?this._initializePromise:(this._initializePromise=this._initialize(w),this._initializePromise)}update(w,J,G){if(!this._initializePromise){this.initialize(G);return}if(this._isInitialized&&this._lastUpdateFrame!==w&&(this._lastUpdateFrame=w,this.updateLighting(!1),e&&!this._debug)){const c=this._getTextures(J.environment);this._debug=!0;const M=new S.MeshBasicMaterial;M.side=2;const h=M.clone();h.map=c.radianceTexture;const K=new S.PlaneGeometry(1,1,1,1),U=new S.Mesh(K,h),X=M.clone();X.map=c.irradianceTexture;const k=new S.Mesh(K,X);J.add(U),J.add(k),U.name="MaterialXRadianceCube",U.position.set(.8,1,.01),U.scale.set(1.5,1,1),k.name="MaterialXIrradianceCube",k.position.set(-.8,1,-.01),k.scale.set(1.5,.98,1),console.log("[MaterialX] environment initialized from Needle context",{textures:c,radianceCube:U,irradianceCube:k})}}reset(){e&&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(const w of this._texturesCache.values())w.radianceTexture?.dispose(),w.irradianceTexture?.dispose();this._texturesCache.clear()}get lights(){return this._lights}get lightData(){return this._lightData}get lightCount(){return this._lightCount||0}getTextures(w){if(w.envMap)return this._getTextures(w.envMap);const J=this._scene.environment||this._scene.background;return J instanceof S.Texture?this._getTextures(J):this._getTextures(null)}_pmremGenerator=null;_renderer=null;_texturesCache=new Map;async _initialize(w){return this._isInitialized=!1,this._pmremGenerator=new S.PMREMGenerator$1(w),this._renderer=w,this.updateLighting(!0),this._isInitialized=!0,!0}_getTextures(w){w||(w=kI);let J=this._texturesCache.get(w||null);if(J)return J;if(this._scene&&this._pmremGenerator&&this._renderer&&w){e&&console.log("[MaterialX] Generating environment textures",w.name);const G=this._pmremGenerator.fromEquirectangular(w),c=QB(this._renderer,G.texture,0,1024,512,G.height),M=QB(this._renderer,G.texture,1,32,16,G.height);G.dispose(),J={radianceTexture:c.texture,irradianceTexture:M.texture}}else J={radianceTexture:null,irradianceTexture:null};return this._texturesCache.set(w||null,J),J}updateLighting=(w=!1)=>{if(this._scene){if(w){const J=new Array;this._scene.traverse(G=>{G.isLight&&G.visible&&J.push(G)}),J.sort((G,c)=>(c.castShadow?1:0)-(G.castShadow?1:0)),this._lights=J}if(p.materialXGenContext){const{lightData:J,lightCount:G}=ii(this._lights,p.materialXGenContext);this._lightData=J,this._lightCount=G}}};refreshLights(){this.updateLighting(!0)}}const wi=new S.Matrix3;class Cg extends S.ShaderMaterial{shaderName=null;copy(w){return super.copy(w),this.shaderName=w.shaderName,this._context=w._context,this._shader=w._shader,this._needsTangents=w._needsTangents,this.uniforms=S.cloneUniforms(w.uniforms),this.uniformsGroups=S.cloneUniformsGroups(w.uniformsGroups),this.envMapIntensity=w.envMapIntensity,this.envMap=w.envMap,WI(this,this._shader.getStage("pixel")),WI(this,this._shader.getStage("vertex")),this.needsUpdate=!0,this}_context=null;_shader=null;_needsTangents=!1;constructor(w){let J,G="",c="",M={};if(w){let AA=function(EA,$){return EA=EA.replace(new RegExp(`\\bvec3 (\\w+) = ${$};`,"g"),`vec3 $1 = vec3(${$}, 0.0);`),EA=EA.replace(new RegExp(`(\\w+) = ${$};`,"g"),(oA,wA)=>oA.includes("vec3")?oA:new RegExp(`\\bvec3\\s+${wA}\\b`).test(EA)?`${wA} = vec3(${$}, 0.0);`:oA),EA};G=w.shader.getSourceCode("vertex"),c=w.shader.getSourceCode("pixel"),G=G.replace(/^#version.*$/gm,"").trim(),c=c.replace(/^#version.*$/gm,"").trim(),G=G.replace(/\bi_position\b/g,"position"),G=G.replace(/\bi_normal\b/g,"normal"),G=G.replace(/\bi_texcoord_0\b/g,"uv"),G=G.replace(/\bi_texcoord_1\b/g,"uv1"),G=G.replace(/\bi_texcoord_2\b/g,"uv2"),G=G.replace(/\bi_texcoord_3\b/g,"uv3"),G=G.replace(/\bi_tangent\b/g,"tangent"),G=G.replace(/\bi_color_0\b/g,"color");const QA=w.parameters?.precision||"highp";G=G.replace(/precision mediump float;/g,`precision ${QA} float;`),G=G.replace(/#define M_FLOAT_EPS 1e-8/g,QA==="highp"?"#define M_FLOAT_EPS 1e-8":"#define M_FLOAT_EPS 1e-3"),c=c.replace(/precision mediump float;/g,`precision ${QA} float;`),c=c.replace(/#define M_FLOAT_EPS 1e-8/g,QA==="highp"?"#define M_FLOAT_EPS 1e-8":"#define M_FLOAT_EPS 1e-3"),c=c.replace(/\bi_position\b/g,"position"),c=c.replace(/\bi_normal\b/g,"normal"),c=c.replace(/\bi_texcoord_0\b/g,"uv"),c=c.replace(/\bi_texcoord_1\b/g,"uv1"),c=c.replace(/\bi_texcoord_2\b/g,"uv2"),c=c.replace(/\bi_texcoord_3\b/g,"uv3"),c=c.replace(/\bi_tangent\b/g,"tangent"),c=c.replace(/\bi_color_0\b/g,"color"),c=c.replace(/\bu_envLightIntensity\b/g,"envMapIntensity"),G.includes("in vec2 uv;"),G.includes("in vec2 uv1;"),G.includes("in vec2 uv2;"),G.includes("in vec2 uv3;"),G=G.replace(/in\s+vec3\s+position;/g,""),G=G.replace(/in\s+vec3\s+normal;/g,""),G=G.replace(/in\s+vec2\s+uv;/g,""),G=G.replace(/in\s+vec3\s+uv;/g,"");var h=G.includes("in vec3 uv1;");G=G.replace(/in\s+vec3\s+uv1;/g,"");var K=G.includes("in vec3 uv2;");G=G.replace(/in\s+vec3\s+uv2;/g,"");var U=G.includes("in vec3 uv3;");G=G.replace(/in\s+vec3\s+uv3;/g,"");var X=G.includes("in vec4 tangent;");G=G.replace(/in\s+vec4\s+tangent;/g,"");var k=G.includes("in vec4 color;");if(G=G.replace(/in\s+vec4\s+color;/g,""),k&&(G=G.replace(/\bvec4 (\w+) = color;/g,"vec4 $1 = vec4(color, 1.0);"),G=G.replace(/(\w+) = color;/g,(EA,$)=>EA.includes("vec4")?EA:new RegExp(`\\bvec4\\s+${$}\\b`).test(G)?`${$} = vec4(color, 1.0);`:EA)),G=AA(G,"uv"),G=AA(G,"uv1"),G=AA(G,"uv2"),G=AA(G,"uv3"),c=c.replace(/result\.direction\s*=\s*light\.position\s*-\s*position;/g,"result.direction = (light.position - position) * 10.0 / 1.0;"),c=c.replace(/out\s+vec4\s+out1;/,`layout(location = 0) out vec4 pc_fragColor;
|
|
75
|
+
</materialx>`,M=F.createDocument();await F.readFromXmlString(M,c,"");const h=F.createDocument(),K=F.loadStandardLibraries(w);h.setDataLibrary(K),h.importLibrary(M);const U=$E(h);e&&console.log("Default lights in MaterialX document",U),w.getOptions().hwMaxActiveLightSources=J;for(let X of U){const k=X.getNodeDef();if(e&&console.log("Default light node definition",k),!k)continue;const _=k.getName();e&&console.log("Registering default light",{lightName:_,lightDef:k}),SA[_]||(e&&console.log("Bind light shader for node",{lightName:_,lightId:G,lightDef:k}),SA[_]=G,F.HwShaderGenerator.bindLightShader(k,G++,w))}e&&console.log("Light types bound in MaterialX context",SA)}const NB={},gi=new S.Vector3(0,0,0),Bi=new S.Vector3(0,0,-1),Qi=new S.Color(0,0,0),Ci=Object.freeze({type:0,position:gi,direction:Bi,color:Qi,intensity:0,decay_rate:2,inner_angle:0,outer_angle:0});function Ei(F){switch(F){case"PointLight":return"ND_point_light";case"DirectionalLight":return"ND_directional_light";case"SpotLight":return"ND_spot_light";default:return NB[F]||(NB[F]=!0,console.warn("MaterialX: Unsupported light type: "+F)),null}}function ii(F,w){const J=new Array,G=w.getOptions().hwMaxActiveLightSources;for(let M of F){if(!M?.isLight)continue;const h=Ei(M.type);if(!h)continue;SA[h]||e&&console.error("MaterialX: Light type not registered in context. Make sure to register light types before using them.",h);const K=M.getWorldPosition(new S.Vector3);let U;const X=M.isDirectionalLight||M.isSpotLight?M:null;if(X)U=X.target.getWorldPosition(new S.Vector3).sub(K).normalize();else{const gA=M.getWorldQuaternion(new S.Quaternion);U=new S.Vector3(0,0,-1).applyQuaternion(gA)}const k=M.angle,_=k*(1-M.penumbra),QA=Math.cos(_),AA=Math.cos(k);J.push({type:SA[h],position:K.clone(),direction:U.clone(),color:M.color.clone(),intensity:M.intensity*(M.isPointLight||M.isSpotLight?683/3.1415:1),decay_rate:2,inner_angle:QA,outer_angle:AA})}const c=J.length;for(;J.length<G;)J.push(Ci);return tE&&console.log("Registered lights in MaterialX context",SA,J),{lightData:J,lightCount:c}}function lB(F,w,J){const G={},c=F.getUniformBlocks();for(const[M,h]of Object.entries(c))if(M!=="LightData"&&!h.empty())for(let K=0;K<h.size();++K){const U=h.get(K),X=U.getValue()?.getData(),k=U.getVariable(),_=U.getType().getName();G[k]=OE(h,_,X,k,w,J),e&&console.log("Adding uniform",{path:U.getPath(),type:_,name:k,value:G[k]})}return G}function WI(F,w){const J=w.getUniformBlocks();for(const[G,c]of Object.entries(J))if(G!=="LightData"&&!c.empty())for(let M=0;M<c.size();++M){const h=c.get(M),K=h.getVariable();let U=h.getPath().split("/").pop();switch(U){case"_Color":U="color";break;case"_Roughness":U="roughness";break;case"_Metallic":U="metalness";break}U&&(F.hasOwnProperty(U)?e&&console.warn(`[MaterialX] Uniform ${K} already exists in material as property ${U}, skipping.`):Object.defineProperty(F,U,{get:function(){return this.uniforms?.[K].value},set:function(X){const k=this.uniforms;if(!k||!k[K]){console.warn(`[MaterialX] Uniform ${K} not found in ${this.name} uniforms`);return}this.uniforms[K].value=X,this.uniformsNeedUpdate=!0}}))}}const Gi="1.5.1",Di={version:Gi},XI=Di.version;async function Yi(F){if(F==="immediately")return QI();if(F==="network_idle")return nE().then(QI)}const p=new class{materialXModule=null;materialXGenerator=null;materialXGenContext=null;materialXStdLib=null;materialXInitPromise=null};async function QI(){return p.materialXInitPromise?p.materialXInitPromise:p.materialXInitPromise=(async()=>{if(!p.materialXModule){e&&console.log(`[MaterialX v${XI}] Initializing WASM module...`);try{const F="https://cdn.needle.tools/static/materialx/1.5.0/";let w;const J=globalThis.NEEDLE_MATERIALX_LOCATION;J==="package"||J==="bin/"||J==="./bin/"||J==="../bin/"?w=await Promise.all([Promise.resolve().then(()=>Ri).then(U=>U.default||U),Promise.resolve().then(()=>bi).then(U=>U.default||U),Promise.resolve().then(()=>ci).then(U=>U.default||U)]):J?w=[J+"JsMaterialXCore.wasm",J+"JsMaterialXGenShader.wasm",J+"JsMaterialXGenShader.data.txt"]:w=[F+"JsMaterialXCore.wasm",F+"JsMaterialXGenShader.wasm",F+"JsMaterialXGenShader.data.txt"];const[G,c,M]=w,h=await HI({locateFile:(U,X)=>(e&&console.debug("[MaterialX] locateFile called:",{path:U,scriptDirectory:X}),U.includes("JsMaterialXCore.wasm")?G:U.includes("JsMaterialXGenShader.wasm")?c:U.includes("JsMaterialXGenShader.data")?M:X+U)});e&&console.log("[MaterialX] module loaded",h),p.materialXModule=h,p.materialXGenerator=h.EsslShaderGenerator.create(),p.materialXGenContext=new h.GenContext(p.materialXGenerator);const K=h.createDocument();p.materialXStdLib=h.loadStandardLibraries(p.materialXGenContext),K.setDataLibrary(p.materialXStdLib),p.materialXGenContext.getOptions().shaderInterfaceType=p.materialXModule.ShaderInterfaceType.SHADER_INTERFACE_COMPLETE,p.materialXGenContext.getOptions().hwSpecularEnvironmentMethod=p.materialXModule.HwSpecularEnvironmentMethod.SPECULAR_ENVIRONMENT_FIS,p.materialXGenContext.getOptions().hwSrgbEncodeOutput=!1,p.materialXGenContext.getOptions().hwMaxActiveLightSources=4,await Ii(p.materialXModule,p.materialXGenContext),e&&console.log(`[MaterialX v${XI}] Generator initialized successfully`)}catch(F){throw console.error(`[MaterialX v${XI}] Failed to load MaterialX module:`,F),F}}})()}class mI{static get(w){return this.getEnvironment(w)}static _environments=new WeakMap;static getEnvironment(w){if(this._environments.has(w))return this._environments.get(w);const J=new mI(w);return this._environments.set(w,J),J}_lights=[];_lightData=null;_lightCount=0;_initializePromise=null;_isInitialized=!1;_lastUpdateFrame=-1;constructor(w){this._scene=w,e&&console.log("[MaterialX] Environment created")}async initialize(w){return this._initializePromise?this._initializePromise:(this._initializePromise=this._initialize(w),this._initializePromise)}update(w,J,G){if(!this._initializePromise){this.initialize(G);return}if(this._isInitialized&&this._lastUpdateFrame!==w&&(this._lastUpdateFrame=w,this.updateLighting(!1),e&&!this._debug)){const c=this._getTextures(J.environment);this._debug=!0;const M=new S.MeshBasicMaterial;M.side=2;const h=M.clone();h.map=c.radianceTexture;const K=new S.PlaneGeometry(1,1,1,1),U=new S.Mesh(K,h),X=M.clone();X.map=c.irradianceTexture;const k=new S.Mesh(K,X);J.add(U),J.add(k),U.name="MaterialXRadianceCube",U.position.set(.8,1,.01),U.scale.set(1.5,1,1),k.name="MaterialXIrradianceCube",k.position.set(-.8,1,-.01),k.scale.set(1.5,.98,1),console.log("[MaterialX] environment initialized from Needle context",{textures:c,radianceCube:U,irradianceCube:k})}}reset(){e&&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(const w of this._texturesCache.values())w.radianceTexture?.dispose(),w.irradianceTexture?.dispose();this._texturesCache.clear()}get lights(){return this._lights}get lightData(){return this._lightData}get lightCount(){return this._lightCount||0}getTextures(w){if(w.envMap)return this._getTextures(w.envMap);const J=this._scene.environment||this._scene.background;return J instanceof S.Texture?this._getTextures(J):this._getTextures(null)}_pmremGenerator=null;_renderer=null;_texturesCache=new Map;async _initialize(w){return this._isInitialized=!1,this._pmremGenerator=new S.PMREMGenerator(w),this._renderer=w,this.updateLighting(!0),this._isInitialized=!0,!0}_getTextures(w){w||(w=kI);let J=this._texturesCache.get(w||null);if(J)return J;if(this._scene&&this._pmremGenerator&&this._renderer&&w){e&&console.log("[MaterialX] Generating environment textures",w.name);const G=this._pmremGenerator.fromEquirectangular(w),c=QB(this._renderer,G.texture,0,1024,512,G.height),M=QB(this._renderer,G.texture,1,32,16,G.height);G.dispose(),J={radianceTexture:c.texture,irradianceTexture:M.texture}}else J={radianceTexture:null,irradianceTexture:null};return this._texturesCache.set(w||null,J),J}updateLighting=(w=!1)=>{if(this._scene){if(w){const J=new Array;this._scene.traverse(G=>{G.isLight&&G.visible&&J.push(G)}),J.sort((G,c)=>(c.castShadow?1:0)-(G.castShadow?1:0)),this._lights=J}if(p.materialXGenContext){const{lightData:J,lightCount:G}=ii(this._lights,p.materialXGenContext);this._lightData=J,this._lightCount=G}}};refreshLights(){this.updateLighting(!0)}}const wi=new S.Matrix3;class Cg extends S.ShaderMaterial{shaderName=null;copy(w){return super.copy(w),this.shaderName=w.shaderName,this._context=w._context,this._shader=w._shader,this._needsTangents=w._needsTangents,this.uniforms=S.cloneUniforms(w.uniforms),this.uniformsGroups=S.cloneUniformsGroups(w.uniformsGroups),this.envMapIntensity=w.envMapIntensity,this.envMap=w.envMap,WI(this,this._shader.getStage("pixel")),WI(this,this._shader.getStage("vertex")),this.needsUpdate=!0,this}_context=null;_shader=null;_needsTangents=!1;constructor(w){let J,G="",c="",M={};if(w){let AA=function(EA,$){return EA=EA.replace(new RegExp(`\\bvec3 (\\w+) = ${$};`,"g"),`vec3 $1 = vec3(${$}, 0.0);`),EA=EA.replace(new RegExp(`(\\w+) = ${$};`,"g"),(oA,wA)=>oA.includes("vec3")?oA:new RegExp(`\\bvec3\\s+${wA}\\b`).test(EA)?`${wA} = vec3(${$}, 0.0);`:oA),EA};G=w.shader.getSourceCode("vertex"),c=w.shader.getSourceCode("pixel"),G=G.replace(/^#version.*$/gm,"").trim(),c=c.replace(/^#version.*$/gm,"").trim(),G=G.replace(/\bi_position\b/g,"position"),G=G.replace(/\bi_normal\b/g,"normal"),G=G.replace(/\bi_texcoord_0\b/g,"uv"),G=G.replace(/\bi_texcoord_1\b/g,"uv1"),G=G.replace(/\bi_texcoord_2\b/g,"uv2"),G=G.replace(/\bi_texcoord_3\b/g,"uv3"),G=G.replace(/\bi_tangent\b/g,"tangent"),G=G.replace(/\bi_color_0\b/g,"color");const QA=w.parameters?.precision||"highp";G=G.replace(/precision mediump float;/g,`precision ${QA} float;`),G=G.replace(/#define M_FLOAT_EPS 1e-8/g,QA==="highp"?"#define M_FLOAT_EPS 1e-8":"#define M_FLOAT_EPS 1e-3"),c=c.replace(/precision mediump float;/g,`precision ${QA} float;`),c=c.replace(/#define M_FLOAT_EPS 1e-8/g,QA==="highp"?"#define M_FLOAT_EPS 1e-8":"#define M_FLOAT_EPS 1e-3"),c=c.replace(/\bi_position\b/g,"position"),c=c.replace(/\bi_normal\b/g,"normal"),c=c.replace(/\bi_texcoord_0\b/g,"uv"),c=c.replace(/\bi_texcoord_1\b/g,"uv1"),c=c.replace(/\bi_texcoord_2\b/g,"uv2"),c=c.replace(/\bi_texcoord_3\b/g,"uv3"),c=c.replace(/\bi_tangent\b/g,"tangent"),c=c.replace(/\bi_color_0\b/g,"color"),c=c.replace(/\bu_envLightIntensity\b/g,"envMapIntensity"),G.includes("in vec2 uv;"),G.includes("in vec2 uv1;"),G.includes("in vec2 uv2;"),G.includes("in vec2 uv3;"),G=G.replace(/in\s+vec3\s+position;/g,""),G=G.replace(/in\s+vec3\s+normal;/g,""),G=G.replace(/in\s+vec2\s+uv;/g,""),G=G.replace(/in\s+vec3\s+uv;/g,"");var h=G.includes("in vec3 uv1;");G=G.replace(/in\s+vec3\s+uv1;/g,"");var K=G.includes("in vec3 uv2;");G=G.replace(/in\s+vec3\s+uv2;/g,"");var U=G.includes("in vec3 uv3;");G=G.replace(/in\s+vec3\s+uv3;/g,"");var X=G.includes("in vec4 tangent;");G=G.replace(/in\s+vec4\s+tangent;/g,"");var k=G.includes("in vec4 color;");if(G=G.replace(/in\s+vec4\s+color;/g,""),k&&(G=G.replace(/\bvec4 (\w+) = color;/g,"vec4 $1 = vec4(color, 1.0);"),G=G.replace(/(\w+) = color;/g,(EA,$)=>EA.includes("vec4")?EA:new RegExp(`\\bvec4\\s+${$}\\b`).test(G)?`${$} = vec4(color, 1.0);`:EA)),G=AA(G,"uv"),G=AA(G,"uv1"),G=AA(G,"uv2"),G=AA(G,"uv3"),c=c.replace(/result\.direction\s*=\s*light\.position\s*-\s*position;/g,"result.direction = (light.position - position) * 10.0 / 1.0;"),c=c.replace(/out\s+vec4\s+out1;/,`layout(location = 0) out vec4 pc_fragColor;
|
|
76
76
|
#define gl_FragColor pc_fragColor`),c=c.replace(/^\s*out1\s*=\s*vec4\((.*)\);/gm,`
|
|
77
77
|
gl_FragColor = vec4($1);
|
|
78
78
|
#include <tonemapping_fragment>
|