@arcgis/core 5.1.0-next.40 → 5.1.0-next.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{0a094337e9922d989aa6.js → 0836964a65f76da35b5c.js} +45 -45
- package/assets/esri/core/workers/chunks/{0d321b3496adc640d96a.js → 093aa05fbde548bf9040.js} +1 -1
- package/assets/esri/core/workers/chunks/0b661b90f7ee3ae23425.js +1 -0
- package/assets/esri/core/workers/chunks/{1f5d9e5d4ddc623fd511.js → 385f1bb9164b2d488b2d.js} +1 -1
- package/assets/esri/core/workers/chunks/{cce2d2c60d136e1bac75.js → 5f3f50fec18d1642fdf9.js} +1 -1
- package/assets/esri/core/workers/chunks/{6258ae3d991ce652d97f.js → 7132420980f77b6a871b.js} +1 -1
- package/assets/esri/core/workers/chunks/{85f309c1888c1c8411b1.js → 7380177f16d914fdbc63.js} +1 -1
- package/assets/esri/core/workers/chunks/73a008b48e29eb6f2064.js +2 -0
- package/assets/esri/core/workers/chunks/{19cbaeda71486df01d0f.js → 80bfb5e5d613d2c412bf.js} +1 -1
- package/assets/esri/core/workers/chunks/{2c12b1488819c038c6b1.js → 8f12a559dbf284c21e2f.js} +1 -1
- package/assets/esri/core/workers/chunks/9a9b1250be3e20499d75.js +1 -0
- package/assets/esri/core/workers/chunks/c1cae45a159a5373ac00.js +1 -0
- package/assets/esri/core/workers/chunks/{78472f69053061a18967.js → dbedd246f4b584583f95.js} +1 -1
- package/assets/esri/core/workers/chunks/{604f9e7228a66b6cf2f9.js → e63046a9567d84228644.js} +1 -1
- package/assets/esri/core/workers/chunks/{e68d7aec0f095b6d743d.js → eff198e0c21c9767ffaa.js} +1 -1
- package/assets/esri/core/workers/chunks/{5e9595eb6ae6a40e7265.js → f4ec2dcdc4bbf7dbcc94.js} +1 -1
- package/assets/esri/core/workers/chunks/{e47dd011c06ab42c18e0.js → f835eea9f617556c7276.js} +1 -1
- package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
- package/chunks/Viewshed.glsl.js +2 -2
- package/chunks/vxlLayer.js +1 -1
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/graphics/sources/MemorySource.js +1 -1
- package/layers/raster/datasets/BaseRaster.js +1 -1
- package/layers/raster/datasets/FunctionRaster.js +1 -1
- package/layers/support/SceneModification.js +1 -1
- package/libs/vxl/VxlModule.js +1 -1
- package/package.json +2 -2
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
- package/views/3d/environment/EnvironmentManager.js +1 -1
- package/views/3d/interactive/manipulators/RotateManipulator.js +1 -1
- package/views/3d/layers/SceneLayerWorkerHandle.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/FBOCacheUsage.js +2 -0
- package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizer.js +1 -1
- package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/Material.js +1 -1
- package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/TriangleTechniqueConfiguration.js +2 -0
- package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
- package/assets/esri/core/workers/chunks/49d6249e98f023344e0a.js +0 -1
- package/assets/esri/core/workers/chunks/60e4312044fe40dfd41d.js +0 -2
- package/assets/esri/core/workers/chunks/92f6d637f4786ba0d3e3.js +0 -1
- package/assets/esri/core/workers/chunks/bf9b83e020ff08c51ac1.js +0 -1
- /package/assets/esri/core/workers/chunks/{60e4312044fe40dfd41d.js.LICENSE.txt → 73a008b48e29eb6f2064.js.LICENSE.txt} +0 -0
package/chunks/vxlLayer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{g as e}from"./_commonjsHelpers.js";function r(e,r){for(var t=0;t<r.length;t++){const n=r[t];if("string"!=typeof n&&!Array.isArray(n))for(const r in n)if("default"!==r&&!(r in e)){const t=Object.getOwnPropertyDescriptor(n,r);t&&Object.defineProperty(e,r,t.get?t:{enumerable:!0,get:()=>n[r]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var t,n={exports:{}};function o(){return t||(t=1,e=n,r="undefined"!=typeof document?document.currentScript?.src:void 0,o=async function(e={}){var t,n,o=e,a="./this.program",i="";function s(e){return o.locateFile?o.locateFile(e,i):i+e}try{i=new URL(".",r).href}catch{}t=async e=>{var r=await fetch(e,{credentials:"same-origin"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+" : "+r.url)};var u,l,c,d,f,m,p,h,v,g,w,y,E,_,b=console.log.bind(console),k=console.error.bind(console),x=!1,P=!1;function A(){var e=d.buffer;f=new Int8Array(e),p=new Int16Array(e),o.HEAPU8=m=new Uint8Array(e),h=new Uint16Array(e),o.HEAP32=v=new Int32Array(e),g=new Uint32Array(e),o.HEAPF32=w=new Float32Array(e),y=new Float64Array(e),E=new BigInt64Array(e),_=new BigUint64Array(e)}function T(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)X(o.preRun.shift());U(H)}function S(){P=!0,o.noFSInit||_e.initialized||_e.init(),To.db(),_e.ignorePermissions=!1}function F(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)G(o.postRun.shift());U(V)}var D,B=0,C=null;function L(e){B++,o.monitorRunDependencies?.(B)}function N(e){if(B--,o.monitorRunDependencies?.(B),0==B&&C){var r=C;C=null,r()}}function I(e){o.onAbort?.(e),k(e="Aborted("+e+")"),x=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw c?.(r),r}function W(){return s("vxlLayer.wasm")}function j(e){if(e==D&&u)return new Uint8Array(u);throw"both async and sync fetching of the wasm failed"}async function M(e){if(!u)try{var r=await t(e);return new Uint8Array(r)}catch{}return j(e)}async function O(e,r){try{var t=await M(e);return await WebAssembly.instantiate(t,r)}catch(n){k(`failed to asynchronously prepare wasm: ${n}`),I(n)}}async function R(e,r,t){if(!e&&"function"==typeof WebAssembly.instantiateStreaming)try{var n=fetch(r,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(o){k(`wasm streaming compile failed: ${o}`),k("falling back to ArrayBuffer instantiation")}return O(r,t)}function $(){return{a:Ao}}async function z(){function e(e,r){return To=e.exports,d=To.cb,A(),cr=To.fb,Po(To),N(),To}function r(r){return e(r.instance)}L();var t=$();return o.instantiateWasm?new Promise((r,n)=>{o.instantiateWasm(t,(t,n)=>{r(e(t))})}):(D??=W(),r(await R(u,D,t)))}var U=e=>{for(;e.length>0;)e.shift()(o)},V=[],G=e=>V.push(e),H=[],X=e=>H.push(e),q="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Q=(e,r=0,t=NaN)=>{for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.buffer&&q)return q.decode(e.subarray(r,o));for(var a="";r<o;){var i=e[r++];if(128&i){var s=63&e[r++];if(192!=(224&i)){var u=63&e[r++];if((i=224==(240&i)?(15&i)<<12|s<<6|u:(7&i)<<18|s<<12|u<<6|63&e[r++])<65536)a+=String.fromCharCode(i);else{var l=i-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},Y=(e,r)=>e?Q(m,e,r):"",J=(e,r,t,n)=>I(`Assertion failed: ${Y(e)}, at: `+[r?Y(r):"unknown filename",t,n?Y(n):"unknown function"]);class K{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){g[this.ptr+4>>2]=e}get_type(){return g[this.ptr+4>>2]}set_destructor(e){g[this.ptr+8>>2]=e}get_destructor(){return g[this.ptr+8>>2]}set_caught(e){e=e?1:0,f[this.ptr+12]=e}get_caught(){return 0!=f[this.ptr+12]}set_rethrown(e){e=e?1:0,f[this.ptr+13]=e}get_rethrown(){return 0!=f[this.ptr+13]}init(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r)}set_adjusted_ptr(e){g[this.ptr+16>>2]=e}get_adjusted_ptr(){return g[this.ptr+16>>2]}}var Z=(e,r,t)=>{throw new K(e).init(r,t),e},ee=()=>{var e=v[+be.varargs>>2];return be.varargs+=4,e},re=ee,te={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=te.isAbs(e),t="/"===e.slice(-1);return(e=te.normalizeArray(e.split("/").filter(e=>!!e),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=te.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.slice(0,-1)),t+n):"."},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>te.normalize(e.join("/")),join2:(e,r)=>te.normalize(e+"/"+r)},ne=()=>e=>crypto.getRandomValues(e),oe=e=>{(oe=ne())(e)},ae={resolve:(...e)=>{for(var r="",t=!1,n=e.length-1;n>=-1&&!t;n--){var o=n>=0?e[n]:_e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";r=o+"/"+r,t=te.isAbs(o)}return(t?"/":"")+(r=te.normalizeArray(r.split("/").filter(e=>!!e),!t).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;t>=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=ae.resolve(e).slice(1),r=ae.resolve(r).slice(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}var u=[];for(s=i;s<n.length;s++)u.push("..");return(u=u.concat(o.slice(i))).join("/")}},ie=[],se=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},ue=(e,r,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i<e.length;++i){var s=e.codePointAt(i);if(s<=127){if(t>=a)break;r[t++]=s}else if(s<=2047){if(t+1>=a)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+3>=a)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s,i++}}return r[t]=0,t-o},le=(e,r,t)=>{var n=se(e)+1,o=new Array(n),a=ue(e,o,0,o.length);return o.length=a,o},ce=()=>{if(!ie.length){var e=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(e=window.prompt("Input: "))&&(e+="\n"),!e)return null;ie=le(e)}return ie.shift()},de={ttys:[],init(){},shutdown(){},register(e,r){de.ttys[e]={input:[],output:[],ops:r},_e.registerDevice(e,de.stream_ops)},stream_ops:{open(e){var r=de.ttys[e.node.rdev];if(!r)throw new _e.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new _e.ErrnoError(60);for(var a=0,i=0;i<n;i++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(u){throw new _e.ErrnoError(29)}if(void 0===s&&0===a)throw new _e.ErrnoError(6);if(null==s)break;a++,r[t+i]=s}return a&&(e.node.atime=Date.now()),a},write(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new _e.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch(i){throw new _e.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char:e=>ce(),put_char(e,r){null===r||10===r?(b(Q(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output?.length>0&&(b(Q(e.output)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,r,t)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,r){null===r||10===r?(k(Q(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output?.length>0&&(k(Q(e.output)),e.output=[])}}},fe=e=>{I()},me={ops_table:null,mount:e=>me.createNode(null,"/",16895,0),createNode(e,r,t,n){if(_e.isBlkdev(t)||_e.isFIFO(t))throw new _e.ErrnoError(63);me.ops_table||={dir:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr,lookup:me.node_ops.lookup,mknod:me.node_ops.mknod,rename:me.node_ops.rename,unlink:me.node_ops.unlink,rmdir:me.node_ops.rmdir,readdir:me.node_ops.readdir,symlink:me.node_ops.symlink},stream:{llseek:me.stream_ops.llseek}},file:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr},stream:{llseek:me.stream_ops.llseek,read:me.stream_ops.read,write:me.stream_ops.write,mmap:me.stream_ops.mmap,msync:me.stream_ops.msync}},link:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr,readlink:me.node_ops.readlink},stream:{}},chrdev:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr},stream:_e.chrdev_stream_ops}};var o=_e.createNode(e,r,t,n);return _e.isDir(o.mode)?(o.node_ops=me.ops_table.dir.node,o.stream_ops=me.ops_table.dir.stream,o.contents={}):_e.isFile(o.mode)?(o.node_ops=me.ops_table.file.node,o.stream_ops=me.ops_table.file.stream,o.usedBytes=0,o.contents=null):_e.isLink(o.mode)?(o.node_ops=me.ops_table.link.node,o.stream_ops=me.ops_table.link.stream):_e.isChrdev(o.mode)&&(o.node_ops=me.ops_table.chrdev.node,o.stream_ops=me.ops_table.chrdev.stream),o.atime=o.mtime=o.ctime=Date.now(),e&&(e.contents[r]=o,e.atime=e.mtime=e.ctime=o.atime),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1048576;r=Math.max(r,t*(t<n?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var o=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(o.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=_e.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,_e.isDir(e.mode)?r.size=4096:_e.isFile(e.mode)?r.size=e.usedBytes:_e.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t]);void 0!==r.size&&me.resizeFileStorage(e,r.size)},lookup(e,r){throw me.doesNotExistError},mknod:(e,r,t,n)=>me.createNode(e,r,t,n),rename(e,r,t){var n;try{n=_e.lookupNode(r,t)}catch(a){}if(n){if(_e.isDir(e.mode))for(var o in n.contents)throw new _e.ErrnoError(55);_e.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=_e.lookupNode(e,r);for(var n in t.contents)throw new _e.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir:e=>[".","..",...Object.keys(e.contents)],symlink(e,r,t){var n=me.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!_e.isLink(e.mode))throw new _e.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(i>8&&a.subarray)r.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)r[t+s]=a[o+s];return i},write(e,r,t,n,o,a){if(r.buffer===f.buffer&&(a=!1),!n)return 0;var i=e.node;if(i.mtime=i.ctime=Date.now(),r.subarray&&(!i.contents||i.contents.subarray)){if(a)return i.contents=r.subarray(t,t+n),i.usedBytes=n,n;if(0===i.usedBytes&&0===o)return i.contents=r.slice(t,t+n),i.usedBytes=n,n;if(o+n<=i.usedBytes)return i.contents.set(r.subarray(t,t+n),o),n}if(me.expandFileStorage(i,o+n),i.contents.subarray&&r.subarray)i.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=r[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&_e.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new _e.ErrnoError(28);return n},mmap(e,r,t,n,o){if(!_e.isFile(e.node.mode))throw new _e.ErrnoError(43);var a,i,s=e.node.contents;if(2&o||!s||s.buffer!==f.buffer){if(i=!0,!(a=fe()))throw new _e.ErrnoError(48);s&&((t>0||t+r<s.length)&&(s=s.subarray?s.subarray(t,t+r):Array.prototype.slice.call(s,t,t+r)),f.set(s,a))}else i=!1,a=s.byteOffset;return{ptr:a,allocated:i}},msync:(e,r,t,n,o)=>(me.stream_ops.write(e,r,0,n,t,!1),0)}},pe=async e=>{var r=await t(e);return new Uint8Array(r)},he=(...e)=>_e.createDataFile(...e),ve=[],ge=(e,r,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return ve.forEach(a=>{o||a.canHandle(r)&&(a.handle(e,r,t,n),o=!0)}),o},we=(e,r,t,n,o,a,i,s,u,l)=>{var c=r?ae.resolve(te.join2(e,r)):e;function d(t){function d(t){l?.(),s||he(e,r,t,n,o,u),a?.(),N()}ge(t,c,d,()=>{i?.(),N()})||d(t)}L(),"string"==typeof t?pe(t).then(d,i):d(t)},ye=e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error(`Unknown file open mode: ${e}`);return r},Ee=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},_e={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=_e.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return _e.isDir(this.mode)}get isDevice(){return _e.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new _e.ErrnoError(44);r.follow_mount??=!0,te.isAbs(e)||(e=_e.cwd()+"/"+e);e:for(var t=0;t<40;t++){for(var n=e.split("/").filter(e=>!!e),o=_e.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&r.parent)break;if("."!==n[i])if(".."!==n[i]){a=te.join2(a,n[i]);try{o=_e.lookupNode(o,n[i])}catch(l){if(44===l?.errno&&s&&r.noent_okay)return{path:a};throw l}if(!_e.isMountpoint(o)||s&&!r.follow_mount||(o=o.mounted.root),_e.isLink(o.mode)&&(!s||r.follow)){if(!o.node_ops.readlink)throw new _e.ErrnoError(52);var u=o.node_ops.readlink(o);te.isAbs(u)||(u=te.dirname(a)+"/"+u),e=u+"/"+n.slice(i+1).join("/");continue e}}else{if(a=te.dirname(a),_e.isRoot(o)){e=a+"/"+n.slice(i+1).join("/");continue e}o=o.parent}}return{path:a,node:o}}throw new _e.ErrnoError(32)},getPath(e){for(var r;;){if(_e.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%_e.nameTable.length},hashAddNode(e){var r=_e.hashName(e.parent.id,e.name);e.name_next=_e.nameTable[r],_e.nameTable[r]=e},hashRemoveNode(e){var r=_e.hashName(e.parent.id,e.name);if(_e.nameTable[r]===e)_e.nameTable[r]=e.name_next;else for(var t=_e.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=_e.mayLookup(e);if(t)throw new _e.ErrnoError(t);for(var n=_e.hashName(e.id,r),o=_e.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===r)return o}return _e.lookup(e,r)},createNode(e,r,t,n){var o=new _e.FSNode(e,r,t,n);return _e.hashAddNode(o),o},destroyNode(e){_e.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>_e.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup(e){if(!_e.isDir(e.mode))return 54;var r=_e.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!_e.isDir(e.mode))return 54;try{return _e.lookupNode(e,r),20}catch(t){}return _e.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=_e.lookupNode(e,r)}catch(a){return a.errno}var o=_e.nodePermissions(e,"wx");if(o)return o;if(t){if(!_e.isDir(n.mode))return 54;if(_e.isRoot(n)||_e.getPath(n)===_e.cwd())return 10}else if(_e.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?_e.isLink(e.mode)?32:_e.isDir(e.mode)&&("r"!==_e.flagsToPermissionString(r)||576&r)?31:_e.nodePermissions(e,_e.flagsToPermissionString(r)):44,checkOpExists(e,r){if(!e)throw new _e.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=_e.MAX_OPEN_FDS;e++)if(!_e.streams[e])return e;throw new _e.ErrnoError(33)},getStreamChecked(e){var r=_e.getStream(e);if(!r)throw new _e.ErrnoError(8);return r},getStream:e=>_e.streams[e],createStream:(e,r=-1)=>(e=Object.assign(new _e.FSStream,e),-1==r&&(r=_e.nextfd()),e.fd=r,_e.streams[r]=e,e),closeStream(e){_e.streams[e]=null},dupStream(e,r=-1){var t=_e.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,o=n?e:r;n??=r.node_ops.setattr,_e.checkOpExists(n,63),n(o,t)},chrdev_stream_ops:{open(e){var r=_e.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new _e.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){_e.devices[e]={stream_ops:r}},getDevice:e=>_e.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){"function"==typeof e&&(r=e,e=!1),_e.syncFSRequests++,_e.syncFSRequests>1&&k(`warning: ${_e.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=_e.getMounts(_e.root.mount),n=0;function o(e){return _e.syncFSRequests--,r(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach(r=>{if(!r.type.syncfs)return a(null);r.type.syncfs(r,e,a)})},mount(e,r,t){var n,o="/"===t,a=!t;if(o&&_e.root)throw new _e.ErrnoError(10);if(!o&&!a){var i=_e.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,_e.isMountpoint(n))throw new _e.ErrnoError(10);if(!_e.isDir(n.mode))throw new _e.ErrnoError(54)}var s={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,o?_e.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount(e){var r=_e.lookupPath(e,{follow_mount:!1});if(!_e.isMountpoint(r.node))throw new _e.ErrnoError(28);var t=r.node,n=t.mounted,o=_e.getMounts(n);Object.keys(_e.nameTable).forEach(e=>{for(var r=_e.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&_e.destroyNode(r),r=t}}),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod(e,r,t){var n=_e.lookupPath(e,{parent:!0}).node,o=te.basename(e);if(!o)throw new _e.ErrnoError(28);if("."===o||".."===o)throw new _e.ErrnoError(20);var a=_e.mayCreate(n,o);if(a)throw new _e.ErrnoError(a);if(!n.node_ops.mknod)throw new _e.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},statfs:e=>_e.statfsNode(_e.lookupPath(e,{follow:!0}).node),statfsStream:e=>_e.statfsNode(e.node),statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:_e.nextInode,ffree:_e.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create:(e,r=438)=>(r&=4095,r|=32768,_e.mknod(e,r,0)),mkdir:(e,r=511)=>(r&=1023,r|=16384,_e.mknod(e,r,0)),mkdirTree(e,r){var t=e.split("/"),n="";for(var o of t)if(o){(n||te.isAbs(e))&&(n+="/"),n+=o;try{_e.mkdir(n,r)}catch(a){if(20!=a.errno)throw a}}},mkdev:(e,r,t)=>(void 0===t&&(t=r,r=438),r|=8192,_e.mknod(e,r,t)),symlink(e,r){if(!ae.resolve(e))throw new _e.ErrnoError(44);var t=_e.lookupPath(r,{parent:!0}).node;if(!t)throw new _e.ErrnoError(44);var n=te.basename(r),o=_e.mayCreate(t,n);if(o)throw new _e.ErrnoError(o);if(!t.node_ops.symlink)throw new _e.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename(e,r){var t,n,o=te.dirname(e),a=te.dirname(r),i=te.basename(e),s=te.basename(r);if(t=_e.lookupPath(e,{parent:!0}).node,n=_e.lookupPath(r,{parent:!0}).node,!t||!n)throw new _e.ErrnoError(44);if(t.mount!==n.mount)throw new _e.ErrnoError(75);var u,l=_e.lookupNode(t,i),c=ae.relative(e,a);if("."!==c.charAt(0))throw new _e.ErrnoError(28);if("."!==(c=ae.relative(r,o)).charAt(0))throw new _e.ErrnoError(55);try{u=_e.lookupNode(n,s)}catch(m){}if(l!==u){var d=_e.isDir(l.mode),f=_e.mayDelete(t,i,d);if(f)throw new _e.ErrnoError(f);if(f=u?_e.mayDelete(n,s,d):_e.mayCreate(n,s))throw new _e.ErrnoError(f);if(!t.node_ops.rename)throw new _e.ErrnoError(63);if(_e.isMountpoint(l)||u&&_e.isMountpoint(u))throw new _e.ErrnoError(10);if(n!==t&&(f=_e.nodePermissions(t,"w")))throw new _e.ErrnoError(f);_e.hashRemoveNode(l);try{t.node_ops.rename(l,n,s),l.parent=n}catch(m){throw m}finally{_e.hashAddNode(l)}}},rmdir(e){var r=_e.lookupPath(e,{parent:!0}).node,t=te.basename(e),n=_e.lookupNode(r,t),o=_e.mayDelete(r,t,!0);if(o)throw new _e.ErrnoError(o);if(!r.node_ops.rmdir)throw new _e.ErrnoError(63);if(_e.isMountpoint(n))throw new _e.ErrnoError(10);r.node_ops.rmdir(r,t),_e.destroyNode(n)},readdir(e){var r=_e.lookupPath(e,{follow:!0}).node;return _e.checkOpExists(r.node_ops.readdir,54)(r)},unlink(e){var r=_e.lookupPath(e,{parent:!0}).node;if(!r)throw new _e.ErrnoError(44);var t=te.basename(e),n=_e.lookupNode(r,t),o=_e.mayDelete(r,t,!1);if(o)throw new _e.ErrnoError(o);if(!r.node_ops.unlink)throw new _e.ErrnoError(63);if(_e.isMountpoint(n))throw new _e.ErrnoError(10);r.node_ops.unlink(r,t),_e.destroyNode(n)},readlink(e){var r=_e.lookupPath(e).node;if(!r)throw new _e.ErrnoError(44);if(!r.node_ops.readlink)throw new _e.ErrnoError(28);return r.node_ops.readlink(r)},stat(e,r){var t=_e.lookupPath(e,{follow:!r}).node;return _e.checkOpExists(t.node_ops.getattr,63)(t)},fstat(e){var r=_e.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,o=n?r:t;return n??=t.node_ops.getattr,_e.checkOpExists(n,63),n(o)},lstat:e=>_e.stat(e,!0),doChmod(e,r,t,n){_e.doSetAttr(e,r,{mode:4095&t|-4096&r.mode,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;n="string"==typeof e?_e.lookupPath(e,{follow:!t}).node:e,_e.doChmod(null,n,r,t)},lchmod(e,r){_e.chmod(e,r,!0)},fchmod(e,r){var t=_e.getStreamChecked(e);_e.doChmod(t,t.node,r,!1)},doChown(e,r,t){_e.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var o;o="string"==typeof e?_e.lookupPath(e,{follow:!n}).node:e,_e.doChown(null,o,n)},lchown(e,r,t){_e.chown(e,r,t,!0)},fchown(e,r,t){var n=_e.getStreamChecked(e);_e.doChown(n,n.node,!1)},doTruncate(e,r,t){if(_e.isDir(r.mode))throw new _e.ErrnoError(31);if(!_e.isFile(r.mode))throw new _e.ErrnoError(28);var n=_e.nodePermissions(r,"w");if(n)throw new _e.ErrnoError(n);_e.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new _e.ErrnoError(28);var t;t="string"==typeof e?_e.lookupPath(e,{follow:!0}).node:e,_e.doTruncate(null,t,r)},ftruncate(e,r){var t=_e.getStreamChecked(e);if(r<0||!(2097155&t.flags))throw new _e.ErrnoError(28);_e.doTruncate(t,t.node,r)},utime(e,r,t){var n=_e.lookupPath(e,{follow:!0}).node;_e.checkOpExists(n.node_ops.setattr,63)(n,{atime:r,mtime:t})},open(e,r,t=438){if(""===e)throw new _e.ErrnoError(44);var n,a;if(t=64&(r="string"==typeof r?ye(r):r)?4095&t|32768:0,"object"==typeof e)n=e;else{a=e.endsWith("/");var i=_e.lookupPath(e,{follow:!(131072&r),noent_okay:!0});n=i.node,e=i.path}var s=!1;if(64&r)if(n){if(128&r)throw new _e.ErrnoError(20)}else{if(a)throw new _e.ErrnoError(31);n=_e.mknod(e,511|t,0),s=!0}if(!n)throw new _e.ErrnoError(44);if(_e.isChrdev(n.mode)&&(r&=-513),65536&r&&!_e.isDir(n.mode))throw new _e.ErrnoError(54);if(!s){var u=_e.mayOpen(n,r);if(u)throw new _e.ErrnoError(u)}512&r&&!s&&_e.truncate(n,0),r&=-131713;var l=_e.createStream({node:n,path:_e.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),s&&_e.chmod(n,511&t),!o.logReadFiles||1&r||e in _e.readFiles||(_e.readFiles[e]=1),l},close(e){if(_e.isClosed(e))throw new _e.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{_e.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,r,t){if(_e.isClosed(e))throw new _e.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new _e.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new _e.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(n<0||o<0)throw new _e.ErrnoError(28);if(_e.isClosed(e))throw new _e.ErrnoError(8);if(1==(2097155&e.flags))throw new _e.ErrnoError(8);if(_e.isDir(e.node.mode))throw new _e.ErrnoError(31);if(!e.stream_ops.read)throw new _e.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new _e.ErrnoError(70)}else o=e.position;var i=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=i),i},write(e,r,t,n,o,a){if(n<0||o<0)throw new _e.ErrnoError(28);if(_e.isClosed(e))throw new _e.ErrnoError(8);if(!(2097155&e.flags))throw new _e.ErrnoError(8);if(_e.isDir(e.node.mode))throw new _e.ErrnoError(31);if(!e.stream_ops.write)throw new _e.ErrnoError(28);e.seekable&&1024&e.flags&&_e.llseek(e,0,2);var i=void 0!==o;if(i){if(!e.seekable)throw new _e.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,r,t,n,o,a);return i||(e.position+=s),s},mmap(e,r,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&e.flags))throw new _e.ErrnoError(2);if(1==(2097155&e.flags))throw new _e.ErrnoError(2);if(!e.stream_ops.mmap)throw new _e.ErrnoError(43);if(!r)throw new _e.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,o)},msync:(e,r,t,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0,ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new _e.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t=_e.open(e,r.flags),n=_e.stat(e).size,o=new Uint8Array(n);return _e.read(t,o,0,n,0),"utf8"===r.encoding&&(o=Q(o)),_e.close(t),o},writeFile(e,r,t={}){t.flags=t.flags||577;var n=_e.open(e,t.flags,t.mode);if("string"==typeof r&&(r=new Uint8Array(le(r))),!ArrayBuffer.isView(r))throw new Error("Unsupported data type");_e.write(n,r,0,r.byteLength,void 0,t.canOwn),_e.close(n)},cwd:()=>_e.currentPath,chdir(e){var r=_e.lookupPath(e,{follow:!0});if(null===r.node)throw new _e.ErrnoError(44);if(!_e.isDir(r.node.mode))throw new _e.ErrnoError(54);var t=_e.nodePermissions(r.node,"x");if(t)throw new _e.ErrnoError(t);_e.currentPath=r.path},createDefaultDirectories(){_e.mkdir("/tmp"),_e.mkdir("/home"),_e.mkdir("/home/web_user")},createDefaultDevices(){_e.mkdir("/dev"),_e.registerDevice(_e.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n,llseek:()=>0}),_e.mkdev("/dev/null",_e.makedev(1,3)),de.register(_e.makedev(5,0),de.default_tty_ops),de.register(_e.makedev(6,0),de.default_tty1_ops),_e.mkdev("/dev/tty",_e.makedev(5,0)),_e.mkdev("/dev/tty1",_e.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(oe(e),r=e.byteLength),e[--r]);_e.createDevice("/dev","random",t),_e.createDevice("/dev","urandom",t),_e.mkdir("/dev/shm"),_e.mkdir("/dev/shm/tmp")},createSpecialDirectories(){_e.mkdir("/proc");var e=_e.mkdir("/proc/self");_e.mkdir("/proc/self/fd"),_e.mount({mount(){var r=_e.createNode(e,"fd",16895,73);return r.stream_ops={llseek:me.stream_ops.llseek},r.node_ops={lookup(e,r){var t=+r,n=_e.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return o.parent=o,o},readdir:()=>Array.from(_e.streams.entries()).filter(([e,r])=>r).map(([e,r])=>e.toString())},r}},{},"/proc/self/fd")},createStandardStreams(e,r,t){e?_e.createDevice("/dev","stdin",e):_e.symlink("/dev/tty","/dev/stdin"),r?_e.createDevice("/dev","stdout",null,r):_e.symlink("/dev/tty","/dev/stdout"),t?_e.createDevice("/dev","stderr",null,t):_e.symlink("/dev/tty1","/dev/stderr"),_e.open("/dev/stdin",0),_e.open("/dev/stdout",1),_e.open("/dev/stderr",1)},staticInit(){_e.nameTable=new Array(4096),_e.mount(me,{},"/"),_e.createDefaultDirectories(),_e.createDefaultDevices(),_e.createSpecialDirectories(),_e.filesystems={MEMFS:me}},init(e,r,t){_e.initialized=!0,e??=o.stdin,r??=o.stdout,t??=o.stderr,_e.createStandardStreams(e,r,t)},quit(){for(var e of(_e.initialized=!1,_e.streams))e&&_e.close(e)},findObject(e,r){var t=_e.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{e=(n=_e.lookupPath(e,{follow:!r})).path}catch(o){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=_e.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=te.basename(e),n=_e.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(o){t.error=o.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:_e.getPath(e);for(var o=r.split("/").reverse();o.length;){var a=o.pop();if(a){var i=te.join2(e,a);try{_e.mkdir(i)}catch(s){if(20!=s.errno)throw s}e=i}}return i},createFile(e,r,t,n,o){var a=te.join2("string"==typeof e?e:_e.getPath(e),r),i=Ee(n,o);return _e.create(a,i)},createDataFile(e,r,t,n,o,a){var i=r;e&&(e="string"==typeof e?e:_e.getPath(e),i=r?te.join2(e,r):e);var s=Ee(n,o),u=_e.create(i,s);if(t){if("string"==typeof t){for(var l=new Array(t.length),c=0,d=t.length;c<d;++c)l[c]=t.charCodeAt(c);t=l}_e.chmod(u,146|s);var f=_e.open(u,577);_e.write(f,t,0,t.length,0,a),_e.close(f),_e.chmod(u,s)}},createDevice(e,r,t,n){var o=te.join2("string"==typeof e?e:_e.getPath(e),r),a=Ee(!!t,!!n);_e.createDevice.major??=64;var i=_e.makedev(_e.createDevice.major++,0);return _e.registerDevice(i,{open(e){e.seekable=!1},close(e){n?.buffer?.length&&n(10)},read(e,r,n,o,a){for(var i=0,s=0;s<o;s++){var u;try{u=t()}catch(l){throw new _e.ErrnoError(29)}if(void 0===u&&0===i)throw new _e.ErrnoError(6);if(null==u)break;i++,r[n+s]=u}return i&&(e.node.atime=Date.now()),i},write(e,r,t,o,a){for(var i=0;i<o;i++)try{n(r[t+i])}catch(s){throw new _e.ErrnoError(29)}return o&&(e.node.mtime=e.node.ctime=Date.now()),i}}),_e.mkdev(o,a,i)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{e.contents=n(e.url),e.usedBytes=e.contents.length}catch(r){throw new _e.ErrnoError(29)}},createLazyFile(e,r,t,n,o){if("undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a={isDevice:!1,url:t},i=_e.createFile(e,r,a,n,o);a.contents?i.contents=a.contents:a.url&&(i.contents=null,i.url=a.url),Object.defineProperties(i,{usedBytes:{get:function(){return this.contents.length}}});var s={};function u(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s<i;s++)r[t+s]=a[o+s];else for(s=0;s<i;s++)r[t+s]=a.get(o+s);return i}return Object.keys(i.stream_ops).forEach(e=>{var r=i.stream_ops[e];s[e]=(...e)=>(_e.forceLoadFile(i),r(...e))}),s.read=(e,r,t,n,o)=>(_e.forceLoadFile(i),u(e,r,t,n,o)),s.mmap=(e,r,t,n,o)=>{_e.forceLoadFile(i);var a=fe();if(!a)throw new _e.ErrnoError(48);return u(e,f,a,r,t),{ptr:a,allocated:!0}},i.stream_ops=s,i}},be={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(te.isAbs(r))return r;var n;if(n=-100===e?_e.cwd():be.getStreamFromFD(e).path,0==r.length){if(!t)throw new _e.ErrnoError(44);return n}return n+"/"+r},writeStat(e,r){v[e>>2]=r.dev,v[e+4>>2]=r.mode,g[e+8>>2]=r.nlink,v[e+12>>2]=r.uid,v[e+16>>2]=r.gid,v[e+20>>2]=r.rdev,E[e+24>>3]=BigInt(r.size),v[e+32>>2]=4096,v[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),o=r.ctime.getTime();return E[e+40>>3]=BigInt(Math.floor(t/1e3)),g[e+48>>2]=t%1e3*1e3*1e3,E[e+56>>3]=BigInt(Math.floor(n/1e3)),g[e+64>>2]=n%1e3*1e3*1e3,E[e+72>>3]=BigInt(Math.floor(o/1e3)),g[e+80>>2]=o%1e3*1e3*1e3,E[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){v[e+4>>2]=r.bsize,v[e+40>>2]=r.bsize,v[e+8>>2]=r.blocks,v[e+12>>2]=r.bfree,v[e+16>>2]=r.bavail,v[e+20>>2]=r.files,v[e+24>>2]=r.ffree,v[e+28>>2]=r.fsid,v[e+44>>2]=r.flags,v[e+36>>2]=r.namelen},doMsync(e,r,t,n,o){if(!_e.isFile(r.node.mode))throw new _e.ErrnoError(43);if(2&n)return 0;var a=m.slice(e,e+t);_e.msync(r,a,o,t,n)},getStreamFromFD:e=>_e.getStreamChecked(e),varargs:void 0,getStr:e=>Y(e)};function ke(e,r,t){be.varargs=t;try{var n=be.getStreamFromFD(e);switch(r){case 0:if((o=ee())<0)return-28;for(;_e.streams[o];)o++;return _e.dupStream(n,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=ee();return n.flags|=o,0;case 12:return o=re(),p[o+0>>1]=2,0}return-28}catch(a){if(void 0===_e||"ErrnoError"!==a.name)throw a;return-a.errno}}function xe(e,r,t){be.varargs=t;try{var n=be.getStreamFromFD(e);switch(r){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=re();v[a>>2]=o.c_iflag||0,v[a+4>>2]=o.c_oflag||0,v[a+8>>2]=o.c_cflag||0,v[a+12>>2]=o.c_lflag||0;for(var i=0;i<32;i++)f[a+i+17]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=re();var s=v[a>>2],u=v[a+4>>2],l=v[a+8>>2],c=v[a+12>>2],d=[];for(i=0;i<32;i++)d.push(f[a+i+17]);return n.tty.ops.ioctl_tcsets(n.tty,r,{c_iflag:s,c_oflag:u,c_cflag:l,c_lflag:c,c_cc:d})}return 0;case 21519:return n.tty?(a=re(),v[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21531:return a=re(),_e.ioctl(n,r,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var m=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=re(),p[a>>1]=m[0],p[a+2>>1]=m[1]}return 0;default:return-28}}catch(h){if(void 0===_e||"ErrnoError"!==h.name)throw h;return-h.errno}}function Pe(e,r,t,n){be.varargs=n;try{r=be.getStr(r),r=be.calculateAt(e,r);var o=n?ee():0;return _e.open(r,t,o).fd}catch(a){if(void 0===_e||"ErrnoError"!==a.name)throw a;return-a.errno}}var Ae=()=>I(""),Te={},Se=e=>{for(;e.length;){var r=e.pop();e.pop()(r)}};function Fe(e){return this.fromWireType(g[e>>2])}var De={},Be={},Ce={},Le=class extends Error{constructor(e){super(e),this.name="InternalError"}},Ne=e=>{throw new Le(e)},Ie=(e,r,t)=>{function n(r){var n=t(r);n.length!==e.length&&Ne("Mismatched type converter count");for(var o=0;o<e.length;++o)$e(e[o],n[o])}e.forEach(e=>Ce[e]=r);var o=new Array(r.length),a=[],i=0;r.forEach((e,r)=>{Be.hasOwnProperty(e)?o[r]=Be[e]:(a.push(e),De.hasOwnProperty(e)||(De[e]=[]),De[e].push(()=>{o[r]=Be[e],++i===a.length&&n(o)}))}),0===a.length&&n(o)},We=e=>{var r=Te[e];delete Te[e];var t=r.rawConstructor,n=r.rawDestructor,o=r.fields,a=o.map(e=>e.getterReturnType).concat(o.map(e=>e.setterArgumentType));Ie([e],a,e=>{var a={};return o.forEach((r,t)=>{var n=r.fieldName,i=e[t],s=e[t].optional,u=r.getter,l=r.getterContext,c=e[t+o.length],d=r.setter,f=r.setterContext;a[n]={read:e=>i.fromWireType(u(l,e)),write:(e,r)=>{var t=[];d(f,e,c.toWireType(t,r)),Se(t)},optional:s}}),[{name:r.name,fromWireType:e=>{var r={};for(var t in a)r[t]=a[t].read(e);return n(e),r},toWireType:(e,r)=>{for(var o in a)if(!(o in r)&&!a[o].optional)throw new TypeError(`Missing field: "${o}"`);var i=t();for(o in a)a[o].write(i,r[o]);return null!==e&&e.push(n,i),i},argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction:n}]})},je=e=>{for(var r="";;){var t=m[e++];if(!t)return r;r+=String.fromCharCode(t)}},Me=class extends Error{constructor(e){super(e),this.name="BindingError"}},Oe=e=>{throw new Me(e)};function Re(e,r,t={}){var n=r.name;if(e||Oe(`type "${n}" must have a positive integer typeid pointer`),Be.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;Oe(`Cannot register type '${n}' twice`)}if(Be[e]=r,delete Ce[e],De.hasOwnProperty(e)){var o=De[e];delete De[e],o.forEach(e=>e())}}function $e(e,r,t={}){return Re(e,r,t)}var ze=(e,r,t)=>{switch(r){case 1:return t?e=>f[e]:e=>m[e];case 2:return t?e=>p[e>>1]:e=>h[e>>1];case 4:return t?e=>v[e>>2]:e=>g[e>>2];case 8:return t?e=>E[e>>3]:e=>_[e>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Ue=(e,r,t,n,o)=>{r=je(r);const a=0n===n;let i=e=>e;if(a){const e=8*t;i=r=>BigInt.asUintN(e,r),o=i(o)}$e(e,{name:r,fromWireType:i,toWireType:(e,r)=>("number"==typeof r&&(r=BigInt(r)),r),argPackAdvance:Ve,readValueFromPointer:ze(r,t,!a),destructorFunction:null})},Ve=8,Ge=(e,r,t,n)=>{$e(e,{name:r=je(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?t:n},argPackAdvance:Ve,readValueFromPointer:function(e){return this.fromWireType(m[e])},destructorFunction:null})},He=[],Xe=[0,1,,1,null,1,!0,1,!1,1],qe=e=>{e>9&&0===--Xe[e+1]&&(Xe[e]=void 0,He.push(e))},Qe={toValue:e=>(e||Oe(`Cannot use deleted val. handle = ${e}`),Xe[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=He.pop()||Xe.length;return Xe[r]=e,Xe[r+1]=1,r}}}},Ye={name:"emscripten::val",fromWireType:e=>{var r=Qe.toValue(e);return qe(e),r},toWireType:(e,r)=>Qe.toHandle(r),argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction:null},Je=e=>$e(e,Ye),Ke=(e,r,t)=>{if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(...n){return e[r].overloadTable.hasOwnProperty(n.length)||Oe(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[n.length].apply(this,n)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},Ze=(e,r,t)=>{o.hasOwnProperty(e)?((void 0===t||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[t])&&Oe(`Cannot register public name '${e}' twice`),Ke(o,e,e),o[e].overloadTable.hasOwnProperty(t)&&Oe(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),o[e].overloadTable[t]=r):(o[e]=r,o[e].argCount=t)},er=(e,r,t)=>{switch(r){case 1:return t?function(e){return this.fromWireType(f[e])}:function(e){return this.fromWireType(m[e])};case 2:return t?function(e){return this.fromWireType(p[e>>1])}:function(e){return this.fromWireType(h[e>>1])};case 4:return t?function(e){return this.fromWireType(v[e>>2])}:function(e){return this.fromWireType(g[e>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},rr=(e,r,t,n)=>{function o(){}r=je(r),o.values={},$e(e,{name:r,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:(e,r)=>r.value,argPackAdvance:Ve,readValueFromPointer:er(r,t,n),destructorFunction:null}),Ze(r,o)},tr=(e,r)=>Object.defineProperty(r,"name",{value:e}),nr=e=>{var r=Mt(e),t=je(r);return Ot(r),t},or=(e,r)=>{var t=Be[e];return void 0===t&&Oe(`${r} has unknown type ${nr(e)}`),t},ar=(e,r,t)=>{var n=or(e,"enum");r=je(r);var o=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:tr(`${n.name}_${r}`,function(){})}});o.values[t]=a,o[r]=a},ir=(e,r)=>{switch(r){case 4:return function(e){return this.fromWireType(w[e>>2])};case 8:return function(e){return this.fromWireType(y[e>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},sr=(e,r,t)=>{$e(e,{name:r=je(r),fromWireType:e=>e,toWireType:(e,r)=>r,argPackAdvance:Ve,readValueFromPointer:ir(r,t),destructorFunction:null})};function ur(e){for(var r=1;r<e.length;++r)if(null!==e[r]&&void 0===e[r].destructorFunction)return!0;return!1}function lr(e,r,t,n,o,a){var i=r.length;i<2&&Oe("argTypes array size mismatch! Must at least get return value and 'this' types!"),r[1];var s=ur(r),u="void"!==r[0].name,l=i-2,c=new Array(l),d=[],f=[];return tr(e,function(...e){var t;f.length=0,d.length=1,d[0]=o;for(var a=0;a<l;++a)c[a]=r[a+2].toWireType(f,e[a]),d.push(c[a]);function i(e){if(s)Se(f);else for(var n=2;n<r.length;n++){var o=1===n?t:c[n-2];null!==r[n].destructorFunction&&r[n].destructorFunction(o)}if(u)return r[0].fromWireType(e)}return i(n(...d))})}var cr,dr=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(g[r+4*n>>2]);return t},fr=(e,r,t)=>{o.hasOwnProperty(e)||Ne("Replacing nonexistent public symbol"),void 0!==o[e].overloadTable&&void 0!==t?o[e].overloadTable[t]=r:(o[e]=r,o[e].argCount=t)},mr=[],pr=e=>{var r=mr[e];return r||(mr[e]=r=cr.get(e)),r},hr=(e,r,t=!1)=>{function n(){return pr(r)}e=je(e);var o=n();return"function"!=typeof o&&Oe(`unknown function pointer with signature ${e}: ${r}`),o};class vr extends Error{}var gr,wr=(e,r)=>{var t=[],n={};function o(e){n[e]||Be[e]||(Ce[e]?Ce[e].forEach(o):(t.push(e),n[e]=!0))}throw r.forEach(o),new vr(`${e}: `+t.map(nr).join([", "]))},yr=e=>{const r=(e=e.trim()).indexOf("(");return-1===r?e:e.slice(0,r)},Er=(e,r,t,n,o,a,i,s)=>{var u=dr(r,t);e=je(e),e=yr(e),o=hr(n,o,i),Ze(e,function(){wr(`Cannot call ${e} due to unbound types`,u)},r-1),Ie([],u,t=>{var n=[t[0],null].concat(t.slice(1));return fr(e,lr(e,n,null,o,a),r-1),[]})},_r=(e,r,t,n,o)=>{r=je(r);let a=e=>e;if(0===n){var i=32-8*t;a=e=>e<<i>>>i,o=a(o)}$e(e,{name:r,fromWireType:a,toWireType:(e,r)=>r,argPackAdvance:Ve,readValueFromPointer:ze(r,t,0!==n),destructorFunction:null})},br=(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][r];function o(e){var r=g[e>>2],t=g[e+4>>2];return new n(f.buffer,t,r)}$e(e,{name:t=je(t),fromWireType:o,argPackAdvance:Ve,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},kr=(e,r,t)=>ue(e,m,r,t),xr=(e,r)=>{$e(e,{name:r=je(r),fromWireType(e){for(var r,t=g[e>>2],n=e+4,o=n,a=0;a<=t;++a){var i=n+a;if(a==t||0==m[i]){var s=Y(o,i-o);void 0===r?r=s:(r+=String.fromCharCode(0),r+=s),o=i+1}}return Ot(e),r},toWireType(e,r){var t;r instanceof ArrayBuffer&&(r=new Uint8Array(r));var n="string"==typeof r;n||ArrayBuffer.isView(r)&&1==r.BYTES_PER_ELEMENT||Oe("Cannot pass non-string to std::string"),t=n?se(r):r.length;var o=Rt(4+t+1),a=o+4;return g[o>>2]=t,n?kr(r,a,t+1):m.set(r,a),null!==e&&e.push(Ot,o),o},argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction(e){Ot(e)}})},Pr="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Ar=(e,r)=>{for(var t=e>>1,n=t+r/2,o=t;!(o>=n)&&h[o];)++o;if(o-t>16&&Pr)return Pr.decode(h.subarray(t,o));for(var a="",i=t;!(i>=n);++i){var s=h[i];if(0==s)break;a+=String.fromCharCode(s)}return a},Tr=(e,r,t)=>{if(t??=2147483647,t<2)return 0;for(var n=r,o=(t-=2)<2*e.length?t/2:e.length,a=0;a<o;++a){var i=e.charCodeAt(a);p[r>>1]=i,r+=2}return p[r>>1]=0,r-n},Sr=e=>2*e.length,Fr=(e,r)=>{for(var t="",n=0;!(n>=r/4);n++){var o=v[e+4*n>>2];if(!o)break;t+=String.fromCodePoint(o)}return t},Dr=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,o=n+t-4,a=0;a<e.length;++a){var i=e.codePointAt(a);if(i>65535&&a++,v[r>>2]=i,(r+=4)+4>o)break}return v[r>>2]=0,r-n},Br=e=>{for(var r=0,t=0;t<e.length;++t)e.codePointAt(t)>65535&&t++,r+=4;return r},Cr=(e,r,t)=>{var n,o,a,i;t=je(t),2===r?(n=Ar,o=Tr,i=Sr,a=e=>h[e>>1]):4===r&&(n=Fr,o=Dr,i=Br,a=e=>g[e>>2]),$e(e,{name:t,fromWireType:e=>{for(var t,o=g[e>>2],i=e+4,s=0;s<=o;++s){var u=e+4+s*r;if(s==o||0==a(u)){var l=n(i,u-i);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),i=u+r}}return Ot(e),t},toWireType:(e,n)=>{"string"!=typeof n&&Oe(`Cannot pass non-string to C++ string type ${t}`);var a=i(n),s=Rt(4+a+r);return g[s>>2]=a/r,o(n,s+4,a+r),null!==e&&e.push(Ot,s),s},argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction(e){Ot(e)}})},Lr=(e,r,t,n,o,a)=>{Te[e]={name:je(r),rawConstructor:hr(t,n),rawDestructor:hr(o,a),fields:[]}},Nr=(e,r,t,n,o,a,i,s,u,l)=>{Te[e].fields.push({fieldName:je(r),getterReturnType:t,getter:hr(n,o),getterContext:a,setterArgumentType:i,setter:hr(s,u),setterContext:l})},Ir=(e,r)=>{$e(e,{isVoid:!0,name:r=je(r),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,r)=>{}})},Wr=e=>{do{var r=g[e>>2],t=g[(e+=4)>>2],n=g[(e+=4)>>2];e+=4;var o=Y(r);_e.createPath("/",te.dirname(o),!0,!0),_e.createDataFile(o,null,f.subarray(n,n+t),!0,!0,!0)}while(g[e>>2])},jr=(e,r,t)=>{var n=[],o=e.toWireType(n,t);return n.length&&(g[r>>2]=Qe.toHandle(n)),o},Mr=(e,r,t)=>(e=Qe.toValue(e),r=or(r,"emval::as"),jr(r,t,e)),Or={},Rr=e=>{var r=Or[e];return void 0===r?je(e):r},$r=[],zr=(e,r,t,n,o)=>(e=$r[e])(r=Qe.toValue(r),r[t=Rr(t)],n,o),Ur=()=>globalThis,Vr=e=>0===e?Qe.toHandle(Ur()):(e=Rr(e),Qe.toHandle(Ur()[e])),Gr=e=>{var r=$r.length;return $r.push(e),r},Hr=(e,r)=>{for(var t=new Array(e),n=0;n<e;++n)t[n]=or(g[r+4*n>>2],`parameter ${n}`);return t},Xr=(e,r,t)=>{var n=Hr(e,r),o=n.shift();e--;var a=new Array(e),i=(r,i,s,u)=>{for(var l=0,c=0;c<e;++c)a[c]=n[c].readValueFromPointer(u+l),l+=n[c].argPackAdvance;var d=1===t?Reflect.construct(i,a):i.apply(r,a);return jr(o,s,d)},s=`methodCaller<(${n.map(e=>e.name).join(", ")}) => ${o.name}>`;return Gr(tr(s,i))},qr=(e,r)=>(e=Qe.toValue(e),r=Qe.toValue(r),Qe.toHandle(e[r])),Qr=e=>{e>9&&(Xe[e+1]+=1)},Yr=(e,r)=>(e=Qe.toValue(e))instanceof(r=Qe.toValue(r)),Jr=e=>"number"==typeof(e=Qe.toValue(e)),Kr=e=>{e=Qe.toValue(e);for(var r=new Array(e.length),t=0;t<e.length;t++)r[t]=e[t];return Qe.toHandle(r)},Zr=e=>Qe.toHandle(Rr(e)),et=()=>Qe.toHandle({}),rt=e=>{var r=Qe.toValue(e);Se(r),qe(e)},tt=(e,r,t)=>{e=Qe.toValue(e),r=Qe.toValue(r),t=Qe.toValue(t),e[r]=t},nt=(e,r)=>{var t=(e=or(e,"_emval_take_value")).readValueFromPointer(r);return Qe.toHandle(t)},ot=(e,r,t,n)=>{var o=(new Date).getFullYear(),a=new Date(o,0,1),i=new Date(o,6,1),s=a.getTimezoneOffset(),u=i.getTimezoneOffset(),l=Math.max(s,u);g[e>>2]=60*l,v[r>>2]=Number(s!=u);var c=e=>{var r=e>=0?"-":"+",t=Math.abs(e);return`UTC${r}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},d=c(s),f=c(u);u<s?(kr(d,t,17),kr(f,n,17)):(kr(d,n,17),kr(f,t,17))},at=()=>2147483648,it=(e,r)=>Math.ceil(e/r)*r,st=e=>{var r=(e-d.buffer.byteLength+65535)/65536|0;try{return d.grow(r),A(),1}catch(t){}},ut=e=>{var r=m.length;e>>>=0;var t=at();if(e>t)return!1;for(var n=1;n<=4;n*=2){var o=r*(1+.2/n);o=Math.min(o,e+100663296);var a=Math.min(t,it(Math.max(e,o),65536));if(st(a))return!0}return!1},lt=e=>!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")),ct=e=>!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")),dt=e=>!!(e.extPolygonOffsetClamp=e.getExtension("EXT_polygon_offset_clamp")),ft=e=>!!(e.extClipControl=e.getExtension("EXT_clip_control")),mt=e=>!!(e.webglPolygonMode=e.getExtension("WEBGL_polygon_mode")),pt=e=>!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw")),ht=e=>{var r=["EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_clip_control","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_polygon_offset_clamp","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw","WEBGL_polygon_mode"];return(e.getSupportedExtensions()||[]).filter(e=>r.includes(e))},vt={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:e=>{vt.lastError||(vt.lastError=e)},getNewId:e=>{for(var r=vt.counter++,t=e.length;t<r;t++)e[t]=null;return r},genObject:(e,r,t,n)=>{for(var o=0;o<e;o++){var a=gr[t](),i=a&&vt.getNewId(n);a?(a.name=i,n[i]=a):vt.recordError(1282),v[r+4*o>>2]=i}},getSource:(e,r,t,n)=>{for(var o="",a=0;a<r;++a){var i=n?g[n+4*a>>2]:void 0;o+=Y(g[t+4*a>>2],i)}return o},createContext:(e,r)=>{if(o.preinitializedWebGLContext){var t=o.preinitializedWebGLContext;r.majorVersion=Number(t.getParameter(t.VERSION).match(/^WebGL (\d+).\d+/)[1])}else{if(!e.getContextSafariWebGL2Fixed){function n(r,t){var n=e.getContextSafariWebGL2Fixed(r,t);return"webgl"==r==n instanceof WebGLRenderingContext?n:null}e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=n}t=e.getContext("webgl2",r)}return t?vt.registerContext(t,r):0},registerContext:(e,r)=>{var t=vt.getNewId(vt.contexts),n={handle:t,attributes:r,version:r.majorVersion,GLctx:e};return e.canvas&&(e.canvas.GLctxObject=n),vt.contexts[t]=n,(void 0===r.enableExtensionsByDefault||r.enableExtensionsByDefault)&&vt.initExtensions(n),t},makeContextCurrent:e=>(vt.currentContext=vt.contexts[e],o.ctx=gr=vt.currentContext?.GLctx,!(e&&!gr)),getContext:e=>vt.contexts[e],deleteContext:e=>{vt.currentContext===vt.contexts[e]&&(vt.currentContext=null),"object"==typeof JSEvents&&JSEvents.removeAllHandlersOnTarget(vt.contexts[e].GLctx.canvas),vt.contexts[e]?.GLctx.canvas&&(vt.contexts[e].GLctx.canvas.GLctxObject=void 0),vt.contexts[e]=null},initExtensions:e=>{if(e||=vt.currentContext,!e.initExtensionsDone){e.initExtensionsDone=!0;var r=e.GLctx;pt(r),dt(r),ft(r),mt(r),lt(r),ct(r),e.version>=2&&(r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!r.disjointTimerQueryExt)&&(r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query")),ht(r).forEach(e=>{e.includes("lose_context")||e.includes("debug")||r.getExtension(e)})}}},gt=["default","low-power","high-performance"],wt=e=>e>2?Y(e):e,yt=[0,document,window],Et=e=>(e=wt(e),yt[e]||document.querySelector(e)),_t=(e,r)=>{var t=r>>2,n=v[t+2],o={alpha:!!f[r+0],depth:!!f[r+1],stencil:!!f[r+2],antialias:!!f[r+3],premultipliedAlpha:!!f[r+4],preserveDrawingBuffer:!!f[r+5],powerPreference:gt[n],failIfMajorPerformanceCaveat:!!f[r+12],majorVersion:v[t+4],minorVersion:v[t+5],enableExtensionsByDefault:f[r+24],explicitSwapControl:f[r+25],proxyContextToMainThread:v[t+7],renderViaOffscreenBackBuffer:f[r+32]},a=Et(e);return a?o.explicitSwapControl?0:vt.createContext(a,o):0},bt=e=>vt.makeContextCurrent(e)?0:-5,kt={},xt=()=>a||"./this.program",Pt=()=>{if(!Pt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:xt()};for(var r in kt)void 0===kt[r]?delete e[r]:e[r]=kt[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);Pt.strings=t}return Pt.strings},At=(e,r)=>{var t=0,n=0;for(var o of Pt()){var a=r+t;g[e+n>>2]=a,t+=kr(o,a,1/0)+1,n+=4}return 0},Tt=(e,r)=>{var t=Pt();g[e>>2]=t.length;var n=0;for(var o of t)n+=se(o)+1;return g[r>>2]=n,0};function St(e){try{var r=be.getStreamFromFD(e);return _e.close(r),0}catch(t){if(void 0===_e||"ErrnoError"!==t.name)throw t;return t.errno}}var Ft=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=g[r>>2],s=g[r+4>>2];r+=8;var u=_e.read(e,f,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function Dt(e,r,t,n){try{var o=be.getStreamFromFD(e),a=Ft(o,r,t);return g[n>>2]=a,0}catch(i){if(void 0===_e||"ErrnoError"!==i.name)throw i;return i.errno}}var Bt=9007199254740992,Ct=-9007199254740992,Lt=e=>e<Ct||e>Bt?NaN:Number(e);function Nt(e,r,t,n){r=Lt(r);try{if(isNaN(r))return 61;var o=be.getStreamFromFD(e);return _e.llseek(o,r,t),E[n>>3]=BigInt(o.position),o.getdents&&0===r&&0===t&&(o.getdents=null),0}catch(a){if(void 0===_e||"ErrnoError"!==a.name)throw a;return a.errno}}var It=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=g[r>>2],s=g[r+4>>2];r+=8;var u=_e.write(e,f,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function Wt(e,r,t,n){try{var o=be.getStreamFromFD(e),a=It(o,r,t);return g[n>>2]=a,0}catch(i){if(void 0===_e||"ErrnoError"!==i.name)throw i;return i.errno}}var jt,Mt,Ot,Rt,$t=e=>gr.activeTexture(e),zt=(e,r)=>{gr.attachShader(vt.programs[e],vt.shaders[r])},Ut=(e,r,t)=>{gr.bindAttribLocation(vt.programs[e],r,Y(t))},Vt=(e,r)=>{35051==e?gr.currentPixelPackBufferBinding=r:35052==e&&(gr.currentPixelUnpackBufferBinding=r),gr.bindBuffer(e,vt.buffers[r])},Gt=(e,r,t)=>{gr.bindBufferBase(e,r,vt.buffers[t])},Ht=(e,r,t,n,o)=>{gr.bindBufferRange(e,r,vt.buffers[t],n,o)},Xt=(e,r)=>{gr.bindFramebuffer(e,vt.framebuffers[r])},qt=(e,r)=>{gr.bindTexture(e,vt.textures[r])},Qt=e=>{gr.bindVertexArray(vt.vaos[e])},Yt=(e,r,t,n)=>{t&&r?gr.bufferData(e,m,n,t,r):gr.bufferData(e,r,n)},Jt=(e,r,t,n)=>{t&&gr.bufferSubData(e,r,m,n,t)},Kt=e=>gr.clear(e),Zt=(e,r,t,n)=>gr.clearBufferfi(e,r,t,n),en=(e,r,t)=>{gr.clearBufferfv(e,r,w,t>>2)},rn=(e,r,t)=>{gr.clearBufferiv(e,r,v,t>>2)},tn=(e,r,t)=>{gr.clearBufferuiv(e,r,g,t>>2)},nn=(e,r,t,n)=>gr.clearColor(e,r,t,n),on=e=>gr.clearDepth(e),an=e=>gr.clearStencil(e),sn=(e,r,t,n)=>{gr.colorMask(!!e,!!r,!!t,!!n)},un=e=>{gr.compileShader(vt.shaders[e])},ln=()=>{var e=vt.getNewId(vt.programs),r=gr.createProgram();return r.name=e,r.maxUniformLength=r.maxAttributeLength=r.maxUniformBlockNameLength=0,r.uniformIdCounter=1,vt.programs[e]=r,e},cn=e=>{var r=vt.getNewId(vt.shaders);return vt.shaders[r]=gr.createShader(e),r},dn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2],o=vt.buffers[n];o&&(gr.deleteBuffer(o),o.name=0,vt.buffers[n]=null,n==gr.currentPixelPackBufferBinding&&(gr.currentPixelPackBufferBinding=0),n==gr.currentPixelUnpackBufferBinding&&(gr.currentPixelUnpackBufferBinding=0))}},fn=(e,r)=>{for(var t=0;t<e;++t){var n=v[r+4*t>>2],o=vt.framebuffers[n];o&&(gr.deleteFramebuffer(o),o.name=0,vt.framebuffers[n]=null)}},mn=e=>{if(e){var r=vt.programs[e];r?(gr.deleteProgram(r),r.name=0,vt.programs[e]=null):vt.recordError(1281)}},pn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2],o=vt.queries[n];o&&(gr.deleteQuery(o),vt.queries[n]=null)}},hn=e=>{if(e){var r=vt.shaders[e];r?(gr.deleteShader(r),vt.shaders[e]=null):vt.recordError(1281)}},vn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2],o=vt.textures[n];o&&(gr.deleteTexture(o),o.name=0,vt.textures[n]=null)}},gn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2];gr.deleteVertexArray(vt.vaos[n]),vt.vaos[n]=null}},wn=(e,r,t)=>{gr.drawArrays(e,r,t)},yn=[],En=(e,r)=>{for(var t=yn[e],n=0;n<e;n++)t[n]=v[r+4*n>>2];gr.drawBuffers(t)},_n=(e,r,t,n)=>{gr.drawElements(e,r,t,n)},bn=(e,r,t,n,o)=>{gr.drawElementsInstanced(e,r,t,n,o)},kn=e=>{gr.enableVertexAttribArray(e)},xn=(e,r,t,n,o)=>{gr.framebufferTexture2D(e,r,t,vt.textures[n],o)},Pn=(e,r)=>{vt.genObject(e,r,"createBuffer",vt.buffers)},An=(e,r)=>{vt.genObject(e,r,"createFramebuffer",vt.framebuffers)},Tn=(e,r)=>{vt.genObject(e,r,"createQuery",vt.queries)},Sn=(e,r)=>{vt.genObject(e,r,"createTexture",vt.textures)},Fn=(e,r)=>{vt.genObject(e,r,"createVertexArray",vt.vaos)},Dn=e=>gr.generateMipmap(e),Bn=(e,r)=>{g[e>>2]=r;var t=g[e>>2];g[e+4>>2]=(r-t)/4294967296},Cn=()=>{var e=ht(gr);return e=e.concat(e.map(e=>"GL_"+e))},Ln=(e,r,t)=>{if(r){var n=void 0;switch(e){case 36346:n=1;break;case 36344:return;case 34814:case 36345:n=0;break;case 34466:var o=gr.getParameter(34467);n=o?o.length:0;break;case 33309:if(vt.currentContext.version<2)return void vt.recordError(1282);n=Cn().length;break;case 33307:case 33308:if(vt.currentContext.version<2)return void vt.recordError(1280);n=33307==e?3:0}if(void 0===n){var a=gr.getParameter(e);switch(typeof a){case"number":n=a;break;case"boolean":n=a?1:0;break;case"string":return void vt.recordError(1280);case"object":if(null===a)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:n=0;break;default:return void vt.recordError(1280)}else{if(a instanceof Float32Array||a instanceof Uint32Array||a instanceof Int32Array||a instanceof Array){for(var i=0;i<a.length;++i)switch(t){case 0:v[r+4*i>>2]=a[i];break;case 2:w[r+4*i>>2]=a[i];break;case 4:f[r+i]=a[i]?1:0}return}try{n=0|a.name}catch(s){return vt.recordError(1280),void k(`GL_INVALID_ENUM in glGet${t}v: Unknown object returned from WebGL getParameter(${e})! (error: ${s})`)}}break;default:return vt.recordError(1280),void k(`GL_INVALID_ENUM in glGet${t}v: Native code calling glGet${t}v(${e}) and it returns ${a} of type ${typeof a}!`)}}switch(t){case 1:Bn(r,n);break;case 0:v[r>>2]=n;break;case 2:w[r>>2]=n;break;case 4:f[r]=n?1:0}}else vt.recordError(1281)},Nn=(e,r)=>Ln(e,r,0),In=(e,r,t)=>{if(t){var n,o=vt.queries[e];n=vt.currentContext.version<2?gr.disjointTimerQueryExt.getQueryObjectEXT(o,r):gr.getQueryParameter(o,r),Bn(t,"boolean"==typeof n?n?1:0:n)}else vt.recordError(1281)},Wn=(e,r,t)=>{if(t){var n,o=vt.queries[e],a=gr.disjointTimerQueryExt.getQueryObjectEXT(o,r);n="boolean"==typeof a?a?1:0:a,v[t>>2]=n}else vt.recordError(1281)},jn=(e,r)=>gr.getUniformBlockIndex(vt.programs[e],Y(r)),Mn=e=>parseInt(e),On=e=>"]"==e.slice(-1)&&e.lastIndexOf("["),Rn=e=>{var r,t,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n){e.uniformLocsById=n={},e.uniformArrayNamesById={};var a=gr.getProgramParameter(e,35718);for(r=0;r<a;++r){var i=gr.getActiveUniform(e,r),s=i.name,u=i.size,l=On(s),c=l>0?s.slice(0,l):s,d=e.uniformIdCounter;for(e.uniformIdCounter+=u,o[c]=[u,d],t=0;t<u;++t)n[d]=t,e.uniformArrayNamesById[d++]=c}}},$n=(e,r)=>{if(r=Y(r),e=vt.programs[e]){Rn(e);var t=e.uniformLocsById,n=0,o=r,a=On(r);a>0&&(n=Mn(r.slice(a+1))>>>0,o=r.slice(0,a));var i=e.uniformSizeAndIdsByName[o];if(i&&n<i[0]&&(t[n+=i[1]]=t[n]||gr.getUniformLocation(e,r)))return n}else vt.recordError(1281);return-1},zn=e=>{e=vt.programs[e],gr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},Un=(e,r)=>{3317==e?vt.unpackAlignment=r:3314==e&&(vt.unpackRowLength=r),gr.pixelStorei(e,r)},Vn=(e,r)=>{gr.disjointTimerQueryExt.queryCounterEXT(vt.queries[e],r)},Gn=e=>gr.readBuffer(e),Hn=e=>0==(e-=5120)?f:1==e?m:2==e?p:4==e?v:6==e?w:5==e||28922==e||28520==e||30779==e||30782==e?g:h,Xn=(e,r)=>e>>>31-Math.clz32(r.BYTES_PER_ELEMENT),qn=(e,r,t,n,o,a,i)=>{if(gr.currentPixelPackBufferBinding)gr.readPixels(e,r,t,n,o,a,i);else{var s=Hn(a),u=Xn(i,s);gr.readPixels(e,r,t,n,o,a,s,u)}},Qn=(e,r,t,n)=>{var o=vt.getSource(e,r,t,n);gr.shaderSource(vt.shaders[e],o)},Yn=(e,r,t,n,o,a,i,s,u,l)=>{if(gr.currentPixelUnpackBufferBinding)gr.texImage3D(e,r,t,n,o,a,i,s,u,l);else if(l){var c=Hn(u);gr.texImage3D(e,r,t,n,o,a,i,s,u,c,Xn(l,c))}else gr.texImage3D(e,r,t,n,o,a,i,s,u,null)},Jn=(e,r,t)=>gr.texParameteri(e,r,t),Kn=(e,r,t,n,o)=>gr.texStorage2D(e,r,t,n,o),Zn=(e,r,t)=>{function n(e,r){return e+r-1&-r}return r*n((vt.unpackRowLength||e)*t,vt.unpackAlignment)},eo=e=>({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1),ro=(e,r,t,n,o,a)=>{var i=Hn(e),s=eo(r)*i.BYTES_PER_ELEMENT,u=Zn(t,n,s);return i.subarray(Xn(o,i),Xn(o+u,i))},to=(e,r,t,n,o,a,i,s,u)=>{if(gr.currentPixelUnpackBufferBinding)gr.texSubImage2D(e,r,t,n,o,a,i,s,u);else if(u){var l=Hn(s);gr.texSubImage2D(e,r,t,n,o,a,i,s,l,Xn(u,l))}else{var c=u?ro(s,i,o,a,u):null;gr.texSubImage2D(e,r,t,n,o,a,i,s,c)}},no=(e,r,t,n,o,a,i,s,u,l,c)=>{if(gr.currentPixelUnpackBufferBinding)gr.texSubImage3D(e,r,t,n,o,a,i,s,u,l,c);else if(c){var d=Hn(l);gr.texSubImage3D(e,r,t,n,o,a,i,s,u,l,d,Xn(c,d))}else gr.texSubImage3D(e,r,t,n,o,a,i,s,u,l,null)},oo=e=>{var r=gr.currentProgram;if(r){var t=r.uniformLocsById[e];return"number"==typeof t&&(r.uniformLocsById[e]=t=gr.getUniformLocation(r,r.uniformArrayNamesById[e]+(t>0?`[${t}]`:""))),t}vt.recordError(1282)},ao=(e,r)=>{gr.uniform1i(oo(e),r)},io=(e,r,t)=>{e=vt.programs[e],gr.uniformBlockBinding(e,r,t)},so=e=>{e=vt.programs[e],gr.useProgram(e),gr.currentProgram=e},uo=(e,r,t,n,o)=>{gr.vertexAttribIPointer(e,r,t,n,o)},lo=(e,r,t,n,o,a)=>{gr.vertexAttribPointer(e,r,t,!!n,o,a)},co=(e,r)=>{e<128?r.push(e):r.push(e%128|128,e>>7)},fo=e=>{for(var r={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},t={parameters:[],results:"v"==e[0]?[]:[r[e[0]]]},n=1;n<e.length;++n)t.parameters.push(r[e[n]]);return t},mo=(e,r)=>{var t=e.slice(0,1),n=e.slice(1),o={i:127,p:127,j:126,f:125,d:124,e:111};for(var a of(r.push(96),co(n.length,r),n))r.push(o[a]);"v"==t?r.push(0):r.push(1,o[t])},po=(e,r)=>{if("function"==typeof WebAssembly.Function)return new WebAssembly.Function(fo(r),e);var t=[1];mo(r,t);var n=[0,97,115,109,1,0,0,0,1];co(t.length,n),n.push(...t),n.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var o=new WebAssembly.Module(new Uint8Array(n));return new WebAssembly.Instance(o,{e:{f:e}}).exports.f},ho=(e,r)=>{if(jt)for(var t=e;t<e+r;t++){var n=pr(t);n&&jt.set(n,t)}},vo=e=>(jt||(jt=new WeakMap,ho(0,cr.length)),jt.get(e)||0),go=[],wo=()=>{if(go.length)return go.pop();try{cr.grow(1)}catch(k){if(!(k instanceof RangeError))throw k;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return cr.length-1},yo=(e,r)=>{cr.set(e,r),mr[e]=cr.get(e)},Eo=(e,r)=>{var t=vo(e);if(t)return t;var n=wo();try{yo(n,e)}catch(k){if(!(k instanceof TypeError))throw k;var o=po(e,r);yo(n,o)}return jt.set(e,n),n},_o=(...e)=>_e.createPath(...e),bo=(...e)=>_e.unlink(...e),ko=(...e)=>_e.createLazyFile(...e),xo=(...e)=>_e.createDevice(...e);_e.createPreloadedFile=we,_e.staticInit(),me.doesNotExistError=new _e.ErrnoError(44),me.doesNotExistError.stack="<generic error, no stack>";for(let r=0;r<32;++r)yn.push(new Array(r));function Po(e){Mt=e.eb,o._free=Ot=e.gb,o._malloc=Rt=e.hb}o.noExitRuntime&&o.noExitRuntime,o.preloadPlugins&&(ve=o.preloadPlugins),o.print&&(b=o.print),o.printErr&&(k=o.printErr),o.wasmBinary&&(u=o.wasmBinary),o.arguments&&o.arguments,o.thisProgram&&(a=o.thisProgram),o.addRunDependency=L,o.removeRunDependency=N,o.addFunction=Eo,o.stringToUTF8=kr,o.lengthBytesUTF8=se,o.specialHTMLTargets=yt,o.FS_createPreloadedFile=we,o.FS_unlink=bo,o.FS_createPath=_o,o.FS_createDevice=xo,o.FS_createDataFile=he,o.FS_createLazyFile=ko;var Ao={ba:J,o:Z,$:ke,Ya:xe,_a:Pe,Za:Ae,ia:We,K:Ue,ga:Ge,ea:Je,L:rr,k:ar,J:sr,e:Er,i:_r,f:br,fa:xr,A:Cr,ja:Lr,q:Nr,ha:Ir,da:Wr,E:Mr,B:zr,a:qe,r:Vr,C:Xr,h:qr,D:Qr,t:Yr,ka:Jr,ma:Kr,b:Zr,g:et,n:rt,c:tt,d:nt,ca:ot,$a:ut,pa:_t,na:bt,Ua:At,Va:Tt,aa:St,Wa:Dt,Xa:Nt,I:Wt,Na:$t,v:zt,Ea:Ut,Qa:Vt,Oa:Gt,Pa:Ht,y:Xt,j:qt,z:Qt,ab:Yt,U:Jt,W:Kt,Ia:Zt,G:en,Ha:rn,V:tn,La:nn,Ka:on,Ja:an,la:sn,Q:un,Fa:ln,S:cn,_:dn,X:fn,Ga:mn,u:pn,p:hn,H:vn,P:gn,Ra:wn,Ma:En,Sa:_n,Ta:bn,sa:kn,x:xn,bb:Pn,Y:An,O:Tn,za:Sn,ta:Fn,ua:Dn,s:Nn,M:In,oa:Wn,Da:jn,Ba:$n,T:zn,l:Un,N:Vn,F:Gn,w:qn,R:Qn,xa:Yn,m:Jn,ya:Kn,va:to,wa:no,Aa:ao,Ca:io,Z:so,qa:uo,ra:lo},To=await z();function So(){function e(){o.calledRun=!0,x||(S(),l?.(o),o.onRuntimeInitialized?.(),F())}B>0?C=So:(T(),B>0?C=So:o.setStatus?(o.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>o.setStatus(""),1),e()},1)):e())}function Fo(){if(o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.shift()()}return Fo(),So(),P?o:new Promise((e,r)=>{l=e,c=r})},e.exports=o,e.exports.default=o),n.exports;var e,r,o}var a=o();const i=r({__proto__:null,default:e(a)},[a]);export{i as v};
|
|
2
|
+
var e=async function(e={}){var r,t,n=e,o="./this.program",a="",i="";function s(e){return n.locateFile?n.locateFile(e,i):i+e}try{i=new URL(".",a).href}catch{}r=async e=>{var r=await fetch(e,{credentials:"same-origin"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+" : "+r.url)};var u,l,c,d,f,m,p,h,v,g,w,y,E,_,b=console.log.bind(console),k=console.error.bind(console),x=!1,P=!1;function A(){var e=d.buffer;f=new Int8Array(e),p=new Int16Array(e),n.HEAPU8=m=new Uint8Array(e),h=new Uint16Array(e),n.HEAP32=v=new Int32Array(e),g=new Uint32Array(e),n.HEAPF32=w=new Float32Array(e),y=new Float64Array(e),E=new BigInt64Array(e),_=new BigUint64Array(e)}function T(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)H(n.preRun.shift());z(X)}function S(){P=!0,n.noFSInit||_e.initialized||_e.init(),To.db(),_e.ignorePermissions=!1}function F(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)G(n.postRun.shift());z(V)}var D,B=0,C=null;function L(e){B++,n.monitorRunDependencies?.(B)}function N(e){if(B--,n.monitorRunDependencies?.(B),0==B&&C){var r=C;C=null,r()}}function I(e){n.onAbort?.(e),k(e="Aborted("+e+")"),x=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw c?.(r),r}function W(){return n.locateFile?s("vxlLayer.wasm"):new URL("vxlLayer.wasm","").href}function j(e){if(e==D&&u)return new Uint8Array(u);throw"both async and sync fetching of the wasm failed"}async function M(e){if(!u)try{var t=await r(e);return new Uint8Array(t)}catch{}return j(e)}async function R(e,r){try{var t=await M(e);return await WebAssembly.instantiate(t,r)}catch(n){k(`failed to asynchronously prepare wasm: ${n}`),I(n)}}async function O(e,r,t){if(!e&&"function"==typeof WebAssembly.instantiateStreaming)try{var n=fetch(r,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(o){k(`wasm streaming compile failed: ${o}`),k("falling back to ArrayBuffer instantiation")}return R(r,t)}function $(){return{a:Ao}}async function U(){function e(e,r){return To=e.exports,d=To.cb,A(),cr=To.fb,Po(To),N(),To}function r(r){return e(r.instance)}L();var t=$();return n.instantiateWasm?new Promise((r,o)=>{n.instantiateWasm(t,(t,n)=>{r(e(t))})}):(D??=W(),r(await O(u,D,t)))}var z=e=>{for(;e.length>0;)e.shift()(n)},V=[],G=e=>V.push(e),X=[],H=e=>X.push(e),q="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Q=(e,r=0,t=NaN)=>{for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.buffer&&q)return q.decode(e.subarray(r,o));for(var a="";r<o;){var i=e[r++];if(128&i){var s=63&e[r++];if(192!=(224&i)){var u=63&e[r++];if((i=224==(240&i)?(15&i)<<12|s<<6|u:(7&i)<<18|s<<12|u<<6|63&e[r++])<65536)a+=String.fromCharCode(i);else{var l=i-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},Y=(e,r)=>e?Q(m,e,r):"",J=(e,r,t,n)=>I(`Assertion failed: ${Y(e)}, at: `+[r?Y(r):"unknown filename",t,n?Y(n):"unknown function"]);class K{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){g[this.ptr+4>>2]=e}get_type(){return g[this.ptr+4>>2]}set_destructor(e){g[this.ptr+8>>2]=e}get_destructor(){return g[this.ptr+8>>2]}set_caught(e){e=e?1:0,f[this.ptr+12]=e}get_caught(){return 0!=f[this.ptr+12]}set_rethrown(e){e=e?1:0,f[this.ptr+13]=e}get_rethrown(){return 0!=f[this.ptr+13]}init(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r)}set_adjusted_ptr(e){g[this.ptr+16>>2]=e}get_adjusted_ptr(){return g[this.ptr+16>>2]}}var Z=(e,r,t)=>{throw new K(e).init(r,t),e},ee=()=>{var e=v[+be.varargs>>2];return be.varargs+=4,e},re=ee,te={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=te.isAbs(e),t="/"===e.slice(-1);return(e=te.normalizeArray(e.split("/").filter(e=>!!e),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=te.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.slice(0,-1)),t+n):"."},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>te.normalize(e.join("/")),join2:(e,r)=>te.normalize(e+"/"+r)},ne=()=>e=>crypto.getRandomValues(e),oe=e=>{(oe=ne())(e)},ae={resolve:(...e)=>{for(var r="",t=!1,n=e.length-1;n>=-1&&!t;n--){var o=n>=0?e[n]:_e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";r=o+"/"+r,t=te.isAbs(o)}return(t?"/":"")+(r=te.normalizeArray(r.split("/").filter(e=>!!e),!t).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;t>=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=ae.resolve(e).slice(1),r=ae.resolve(r).slice(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}var u=[];for(s=i;s<n.length;s++)u.push("..");return(u=u.concat(o.slice(i))).join("/")}},ie=[],se=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},ue=(e,r,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i<e.length;++i){var s=e.codePointAt(i);if(s<=127){if(t>=a)break;r[t++]=s}else if(s<=2047){if(t+1>=a)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+3>=a)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s,i++}}return r[t]=0,t-o},le=(e,r,t)=>{var n=se(e)+1,o=new Array(n),a=ue(e,o,0,o.length);return o.length=a,o},ce=()=>{if(!ie.length){var e=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(e=window.prompt("Input: "))&&(e+="\n"),!e)return null;ie=le(e)}return ie.shift()},de={ttys:[],init(){},shutdown(){},register(e,r){de.ttys[e]={input:[],output:[],ops:r},_e.registerDevice(e,de.stream_ops)},stream_ops:{open(e){var r=de.ttys[e.node.rdev];if(!r)throw new _e.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new _e.ErrnoError(60);for(var a=0,i=0;i<n;i++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(u){throw new _e.ErrnoError(29)}if(void 0===s&&0===a)throw new _e.ErrnoError(6);if(null==s)break;a++,r[t+i]=s}return a&&(e.node.atime=Date.now()),a},write(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new _e.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch(i){throw new _e.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char:e=>ce(),put_char(e,r){null===r||10===r?(b(Q(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output?.length>0&&(b(Q(e.output)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,r,t)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,r){null===r||10===r?(k(Q(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output?.length>0&&(k(Q(e.output)),e.output=[])}}},fe=e=>{I()},me={ops_table:null,mount:e=>me.createNode(null,"/",16895,0),createNode(e,r,t,n){if(_e.isBlkdev(t)||_e.isFIFO(t))throw new _e.ErrnoError(63);me.ops_table||={dir:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr,lookup:me.node_ops.lookup,mknod:me.node_ops.mknod,rename:me.node_ops.rename,unlink:me.node_ops.unlink,rmdir:me.node_ops.rmdir,readdir:me.node_ops.readdir,symlink:me.node_ops.symlink},stream:{llseek:me.stream_ops.llseek}},file:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr},stream:{llseek:me.stream_ops.llseek,read:me.stream_ops.read,write:me.stream_ops.write,mmap:me.stream_ops.mmap,msync:me.stream_ops.msync}},link:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr,readlink:me.node_ops.readlink},stream:{}},chrdev:{node:{getattr:me.node_ops.getattr,setattr:me.node_ops.setattr},stream:_e.chrdev_stream_ops}};var o=_e.createNode(e,r,t,n);return _e.isDir(o.mode)?(o.node_ops=me.ops_table.dir.node,o.stream_ops=me.ops_table.dir.stream,o.contents={}):_e.isFile(o.mode)?(o.node_ops=me.ops_table.file.node,o.stream_ops=me.ops_table.file.stream,o.usedBytes=0,o.contents=null):_e.isLink(o.mode)?(o.node_ops=me.ops_table.link.node,o.stream_ops=me.ops_table.link.stream):_e.isChrdev(o.mode)&&(o.node_ops=me.ops_table.chrdev.node,o.stream_ops=me.ops_table.chrdev.stream),o.atime=o.mtime=o.ctime=Date.now(),e&&(e.contents[r]=o,e.atime=e.mtime=e.ctime=o.atime),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1048576;r=Math.max(r,t*(t<n?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var o=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(o.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=_e.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,_e.isDir(e.mode)?r.size=4096:_e.isFile(e.mode)?r.size=e.usedBytes:_e.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t]);void 0!==r.size&&me.resizeFileStorage(e,r.size)},lookup(e,r){throw me.doesNotExistError},mknod:(e,r,t,n)=>me.createNode(e,r,t,n),rename(e,r,t){var n;try{n=_e.lookupNode(r,t)}catch(a){}if(n){if(_e.isDir(e.mode))for(var o in n.contents)throw new _e.ErrnoError(55);_e.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=_e.lookupNode(e,r);for(var n in t.contents)throw new _e.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir:e=>[".","..",...Object.keys(e.contents)],symlink(e,r,t){var n=me.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!_e.isLink(e.mode))throw new _e.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(i>8&&a.subarray)r.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)r[t+s]=a[o+s];return i},write(e,r,t,n,o,a){if(r.buffer===f.buffer&&(a=!1),!n)return 0;var i=e.node;if(i.mtime=i.ctime=Date.now(),r.subarray&&(!i.contents||i.contents.subarray)){if(a)return i.contents=r.subarray(t,t+n),i.usedBytes=n,n;if(0===i.usedBytes&&0===o)return i.contents=r.slice(t,t+n),i.usedBytes=n,n;if(o+n<=i.usedBytes)return i.contents.set(r.subarray(t,t+n),o),n}if(me.expandFileStorage(i,o+n),i.contents.subarray&&r.subarray)i.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=r[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&_e.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new _e.ErrnoError(28);return n},mmap(e,r,t,n,o){if(!_e.isFile(e.node.mode))throw new _e.ErrnoError(43);var a,i,s=e.node.contents;if(2&o||!s||s.buffer!==f.buffer){if(i=!0,!(a=fe()))throw new _e.ErrnoError(48);s&&((t>0||t+r<s.length)&&(s=s.subarray?s.subarray(t,t+r):Array.prototype.slice.call(s,t,t+r)),f.set(s,a))}else i=!1,a=s.byteOffset;return{ptr:a,allocated:i}},msync:(e,r,t,n,o)=>(me.stream_ops.write(e,r,0,n,t,!1),0)}},pe=async e=>{var t=await r(e);return new Uint8Array(t)},he=(...e)=>_e.createDataFile(...e),ve=[],ge=(e,r,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return ve.forEach(a=>{o||a.canHandle(r)&&(a.handle(e,r,t,n),o=!0)}),o},we=(e,r,t,n,o,a,i,s,u,l)=>{var c=r?ae.resolve(te.join2(e,r)):e;function d(t){function d(t){l?.(),s||he(e,r,t,n,o,u),a?.(),N()}ge(t,c,d,()=>{i?.(),N()})||d(t)}L(),"string"==typeof t?pe(t).then(d,i):d(t)},ye=e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error(`Unknown file open mode: ${e}`);return r},Ee=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},_e={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=_e.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return _e.isDir(this.mode)}get isDevice(){return _e.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new _e.ErrnoError(44);r.follow_mount??=!0,te.isAbs(e)||(e=_e.cwd()+"/"+e);e:for(var t=0;t<40;t++){for(var n=e.split("/").filter(e=>!!e),o=_e.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&r.parent)break;if("."!==n[i])if(".."!==n[i]){a=te.join2(a,n[i]);try{o=_e.lookupNode(o,n[i])}catch(l){if(44===l?.errno&&s&&r.noent_okay)return{path:a};throw l}if(!_e.isMountpoint(o)||s&&!r.follow_mount||(o=o.mounted.root),_e.isLink(o.mode)&&(!s||r.follow)){if(!o.node_ops.readlink)throw new _e.ErrnoError(52);var u=o.node_ops.readlink(o);te.isAbs(u)||(u=te.dirname(a)+"/"+u),e=u+"/"+n.slice(i+1).join("/");continue e}}else{if(a=te.dirname(a),_e.isRoot(o)){e=a+"/"+n.slice(i+1).join("/");continue e}o=o.parent}}return{path:a,node:o}}throw new _e.ErrnoError(32)},getPath(e){for(var r;;){if(_e.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%_e.nameTable.length},hashAddNode(e){var r=_e.hashName(e.parent.id,e.name);e.name_next=_e.nameTable[r],_e.nameTable[r]=e},hashRemoveNode(e){var r=_e.hashName(e.parent.id,e.name);if(_e.nameTable[r]===e)_e.nameTable[r]=e.name_next;else for(var t=_e.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=_e.mayLookup(e);if(t)throw new _e.ErrnoError(t);for(var n=_e.hashName(e.id,r),o=_e.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===r)return o}return _e.lookup(e,r)},createNode(e,r,t,n){var o=new _e.FSNode(e,r,t,n);return _e.hashAddNode(o),o},destroyNode(e){_e.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>_e.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup(e){if(!_e.isDir(e.mode))return 54;var r=_e.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!_e.isDir(e.mode))return 54;try{return _e.lookupNode(e,r),20}catch(t){}return _e.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=_e.lookupNode(e,r)}catch(a){return a.errno}var o=_e.nodePermissions(e,"wx");if(o)return o;if(t){if(!_e.isDir(n.mode))return 54;if(_e.isRoot(n)||_e.getPath(n)===_e.cwd())return 10}else if(_e.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?_e.isLink(e.mode)?32:_e.isDir(e.mode)&&("r"!==_e.flagsToPermissionString(r)||576&r)?31:_e.nodePermissions(e,_e.flagsToPermissionString(r)):44,checkOpExists(e,r){if(!e)throw new _e.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=_e.MAX_OPEN_FDS;e++)if(!_e.streams[e])return e;throw new _e.ErrnoError(33)},getStreamChecked(e){var r=_e.getStream(e);if(!r)throw new _e.ErrnoError(8);return r},getStream:e=>_e.streams[e],createStream:(e,r=-1)=>(e=Object.assign(new _e.FSStream,e),-1==r&&(r=_e.nextfd()),e.fd=r,_e.streams[r]=e,e),closeStream(e){_e.streams[e]=null},dupStream(e,r=-1){var t=_e.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,o=n?e:r;n??=r.node_ops.setattr,_e.checkOpExists(n,63),n(o,t)},chrdev_stream_ops:{open(e){var r=_e.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new _e.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){_e.devices[e]={stream_ops:r}},getDevice:e=>_e.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){"function"==typeof e&&(r=e,e=!1),_e.syncFSRequests++,_e.syncFSRequests>1&&k(`warning: ${_e.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=_e.getMounts(_e.root.mount),n=0;function o(e){return _e.syncFSRequests--,r(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach(r=>{if(!r.type.syncfs)return a(null);r.type.syncfs(r,e,a)})},mount(e,r,t){var n,o="/"===t,a=!t;if(o&&_e.root)throw new _e.ErrnoError(10);if(!o&&!a){var i=_e.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,_e.isMountpoint(n))throw new _e.ErrnoError(10);if(!_e.isDir(n.mode))throw new _e.ErrnoError(54)}var s={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,o?_e.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount(e){var r=_e.lookupPath(e,{follow_mount:!1});if(!_e.isMountpoint(r.node))throw new _e.ErrnoError(28);var t=r.node,n=t.mounted,o=_e.getMounts(n);Object.keys(_e.nameTable).forEach(e=>{for(var r=_e.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&_e.destroyNode(r),r=t}}),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod(e,r,t){var n=_e.lookupPath(e,{parent:!0}).node,o=te.basename(e);if(!o)throw new _e.ErrnoError(28);if("."===o||".."===o)throw new _e.ErrnoError(20);var a=_e.mayCreate(n,o);if(a)throw new _e.ErrnoError(a);if(!n.node_ops.mknod)throw new _e.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},statfs:e=>_e.statfsNode(_e.lookupPath(e,{follow:!0}).node),statfsStream:e=>_e.statfsNode(e.node),statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:_e.nextInode,ffree:_e.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create:(e,r=438)=>(r&=4095,r|=32768,_e.mknod(e,r,0)),mkdir:(e,r=511)=>(r&=1023,r|=16384,_e.mknod(e,r,0)),mkdirTree(e,r){var t=e.split("/"),n="";for(var o of t)if(o){(n||te.isAbs(e))&&(n+="/"),n+=o;try{_e.mkdir(n,r)}catch(a){if(20!=a.errno)throw a}}},mkdev:(e,r,t)=>(void 0===t&&(t=r,r=438),r|=8192,_e.mknod(e,r,t)),symlink(e,r){if(!ae.resolve(e))throw new _e.ErrnoError(44);var t=_e.lookupPath(r,{parent:!0}).node;if(!t)throw new _e.ErrnoError(44);var n=te.basename(r),o=_e.mayCreate(t,n);if(o)throw new _e.ErrnoError(o);if(!t.node_ops.symlink)throw new _e.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename(e,r){var t,n,o=te.dirname(e),a=te.dirname(r),i=te.basename(e),s=te.basename(r);if(t=_e.lookupPath(e,{parent:!0}).node,n=_e.lookupPath(r,{parent:!0}).node,!t||!n)throw new _e.ErrnoError(44);if(t.mount!==n.mount)throw new _e.ErrnoError(75);var u,l=_e.lookupNode(t,i),c=ae.relative(e,a);if("."!==c.charAt(0))throw new _e.ErrnoError(28);if("."!==(c=ae.relative(r,o)).charAt(0))throw new _e.ErrnoError(55);try{u=_e.lookupNode(n,s)}catch(m){}if(l!==u){var d=_e.isDir(l.mode),f=_e.mayDelete(t,i,d);if(f)throw new _e.ErrnoError(f);if(f=u?_e.mayDelete(n,s,d):_e.mayCreate(n,s))throw new _e.ErrnoError(f);if(!t.node_ops.rename)throw new _e.ErrnoError(63);if(_e.isMountpoint(l)||u&&_e.isMountpoint(u))throw new _e.ErrnoError(10);if(n!==t&&(f=_e.nodePermissions(t,"w")))throw new _e.ErrnoError(f);_e.hashRemoveNode(l);try{t.node_ops.rename(l,n,s),l.parent=n}catch(m){throw m}finally{_e.hashAddNode(l)}}},rmdir(e){var r=_e.lookupPath(e,{parent:!0}).node,t=te.basename(e),n=_e.lookupNode(r,t),o=_e.mayDelete(r,t,!0);if(o)throw new _e.ErrnoError(o);if(!r.node_ops.rmdir)throw new _e.ErrnoError(63);if(_e.isMountpoint(n))throw new _e.ErrnoError(10);r.node_ops.rmdir(r,t),_e.destroyNode(n)},readdir(e){var r=_e.lookupPath(e,{follow:!0}).node;return _e.checkOpExists(r.node_ops.readdir,54)(r)},unlink(e){var r=_e.lookupPath(e,{parent:!0}).node;if(!r)throw new _e.ErrnoError(44);var t=te.basename(e),n=_e.lookupNode(r,t),o=_e.mayDelete(r,t,!1);if(o)throw new _e.ErrnoError(o);if(!r.node_ops.unlink)throw new _e.ErrnoError(63);if(_e.isMountpoint(n))throw new _e.ErrnoError(10);r.node_ops.unlink(r,t),_e.destroyNode(n)},readlink(e){var r=_e.lookupPath(e).node;if(!r)throw new _e.ErrnoError(44);if(!r.node_ops.readlink)throw new _e.ErrnoError(28);return r.node_ops.readlink(r)},stat(e,r){var t=_e.lookupPath(e,{follow:!r}).node;return _e.checkOpExists(t.node_ops.getattr,63)(t)},fstat(e){var r=_e.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,o=n?r:t;return n??=t.node_ops.getattr,_e.checkOpExists(n,63),n(o)},lstat:e=>_e.stat(e,!0),doChmod(e,r,t,n){_e.doSetAttr(e,r,{mode:4095&t|-4096&r.mode,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;n="string"==typeof e?_e.lookupPath(e,{follow:!t}).node:e,_e.doChmod(null,n,r,t)},lchmod(e,r){_e.chmod(e,r,!0)},fchmod(e,r){var t=_e.getStreamChecked(e);_e.doChmod(t,t.node,r,!1)},doChown(e,r,t){_e.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var o;o="string"==typeof e?_e.lookupPath(e,{follow:!n}).node:e,_e.doChown(null,o,n)},lchown(e,r,t){_e.chown(e,r,t,!0)},fchown(e,r,t){var n=_e.getStreamChecked(e);_e.doChown(n,n.node,!1)},doTruncate(e,r,t){if(_e.isDir(r.mode))throw new _e.ErrnoError(31);if(!_e.isFile(r.mode))throw new _e.ErrnoError(28);var n=_e.nodePermissions(r,"w");if(n)throw new _e.ErrnoError(n);_e.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new _e.ErrnoError(28);var t;t="string"==typeof e?_e.lookupPath(e,{follow:!0}).node:e,_e.doTruncate(null,t,r)},ftruncate(e,r){var t=_e.getStreamChecked(e);if(r<0||!(2097155&t.flags))throw new _e.ErrnoError(28);_e.doTruncate(t,t.node,r)},utime(e,r,t){var n=_e.lookupPath(e,{follow:!0}).node;_e.checkOpExists(n.node_ops.setattr,63)(n,{atime:r,mtime:t})},open(e,r,t=438){if(""===e)throw new _e.ErrnoError(44);var o,a;if(t=64&(r="string"==typeof r?ye(r):r)?4095&t|32768:0,"object"==typeof e)o=e;else{a=e.endsWith("/");var i=_e.lookupPath(e,{follow:!(131072&r),noent_okay:!0});o=i.node,e=i.path}var s=!1;if(64&r)if(o){if(128&r)throw new _e.ErrnoError(20)}else{if(a)throw new _e.ErrnoError(31);o=_e.mknod(e,511|t,0),s=!0}if(!o)throw new _e.ErrnoError(44);if(_e.isChrdev(o.mode)&&(r&=-513),65536&r&&!_e.isDir(o.mode))throw new _e.ErrnoError(54);if(!s){var u=_e.mayOpen(o,r);if(u)throw new _e.ErrnoError(u)}512&r&&!s&&_e.truncate(o,0),r&=-131713;var l=_e.createStream({node:o,path:_e.getPath(o),flags:r,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),s&&_e.chmod(o,511&t),!n.logReadFiles||1&r||e in _e.readFiles||(_e.readFiles[e]=1),l},close(e){if(_e.isClosed(e))throw new _e.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{_e.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,r,t){if(_e.isClosed(e))throw new _e.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new _e.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new _e.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(n<0||o<0)throw new _e.ErrnoError(28);if(_e.isClosed(e))throw new _e.ErrnoError(8);if(1==(2097155&e.flags))throw new _e.ErrnoError(8);if(_e.isDir(e.node.mode))throw new _e.ErrnoError(31);if(!e.stream_ops.read)throw new _e.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new _e.ErrnoError(70)}else o=e.position;var i=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=i),i},write(e,r,t,n,o,a){if(n<0||o<0)throw new _e.ErrnoError(28);if(_e.isClosed(e))throw new _e.ErrnoError(8);if(!(2097155&e.flags))throw new _e.ErrnoError(8);if(_e.isDir(e.node.mode))throw new _e.ErrnoError(31);if(!e.stream_ops.write)throw new _e.ErrnoError(28);e.seekable&&1024&e.flags&&_e.llseek(e,0,2);var i=void 0!==o;if(i){if(!e.seekable)throw new _e.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,r,t,n,o,a);return i||(e.position+=s),s},mmap(e,r,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&e.flags))throw new _e.ErrnoError(2);if(1==(2097155&e.flags))throw new _e.ErrnoError(2);if(!e.stream_ops.mmap)throw new _e.ErrnoError(43);if(!r)throw new _e.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,o)},msync:(e,r,t,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0,ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new _e.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t=_e.open(e,r.flags),n=_e.stat(e).size,o=new Uint8Array(n);return _e.read(t,o,0,n,0),"utf8"===r.encoding&&(o=Q(o)),_e.close(t),o},writeFile(e,r,t={}){t.flags=t.flags||577;var n=_e.open(e,t.flags,t.mode);if("string"==typeof r&&(r=new Uint8Array(le(r))),!ArrayBuffer.isView(r))throw new Error("Unsupported data type");_e.write(n,r,0,r.byteLength,void 0,t.canOwn),_e.close(n)},cwd:()=>_e.currentPath,chdir(e){var r=_e.lookupPath(e,{follow:!0});if(null===r.node)throw new _e.ErrnoError(44);if(!_e.isDir(r.node.mode))throw new _e.ErrnoError(54);var t=_e.nodePermissions(r.node,"x");if(t)throw new _e.ErrnoError(t);_e.currentPath=r.path},createDefaultDirectories(){_e.mkdir("/tmp"),_e.mkdir("/home"),_e.mkdir("/home/web_user")},createDefaultDevices(){_e.mkdir("/dev"),_e.registerDevice(_e.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n,llseek:()=>0}),_e.mkdev("/dev/null",_e.makedev(1,3)),de.register(_e.makedev(5,0),de.default_tty_ops),de.register(_e.makedev(6,0),de.default_tty1_ops),_e.mkdev("/dev/tty",_e.makedev(5,0)),_e.mkdev("/dev/tty1",_e.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(oe(e),r=e.byteLength),e[--r]);_e.createDevice("/dev","random",t),_e.createDevice("/dev","urandom",t),_e.mkdir("/dev/shm"),_e.mkdir("/dev/shm/tmp")},createSpecialDirectories(){_e.mkdir("/proc");var e=_e.mkdir("/proc/self");_e.mkdir("/proc/self/fd"),_e.mount({mount(){var r=_e.createNode(e,"fd",16895,73);return r.stream_ops={llseek:me.stream_ops.llseek},r.node_ops={lookup(e,r){var t=+r,n=_e.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return o.parent=o,o},readdir:()=>Array.from(_e.streams.entries()).filter(([e,r])=>r).map(([e,r])=>e.toString())},r}},{},"/proc/self/fd")},createStandardStreams(e,r,t){e?_e.createDevice("/dev","stdin",e):_e.symlink("/dev/tty","/dev/stdin"),r?_e.createDevice("/dev","stdout",null,r):_e.symlink("/dev/tty","/dev/stdout"),t?_e.createDevice("/dev","stderr",null,t):_e.symlink("/dev/tty1","/dev/stderr"),_e.open("/dev/stdin",0),_e.open("/dev/stdout",1),_e.open("/dev/stderr",1)},staticInit(){_e.nameTable=new Array(4096),_e.mount(me,{},"/"),_e.createDefaultDirectories(),_e.createDefaultDevices(),_e.createSpecialDirectories(),_e.filesystems={MEMFS:me}},init(e,r,t){_e.initialized=!0,e??=n.stdin,r??=n.stdout,t??=n.stderr,_e.createStandardStreams(e,r,t)},quit(){for(var e of(_e.initialized=!1,_e.streams))e&&_e.close(e)},findObject(e,r){var t=_e.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{e=(n=_e.lookupPath(e,{follow:!r})).path}catch(o){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=_e.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=te.basename(e),n=_e.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(o){t.error=o.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:_e.getPath(e);for(var o=r.split("/").reverse();o.length;){var a=o.pop();if(a){var i=te.join2(e,a);try{_e.mkdir(i)}catch(s){if(20!=s.errno)throw s}e=i}}return i},createFile(e,r,t,n,o){var a=te.join2("string"==typeof e?e:_e.getPath(e),r),i=Ee(n,o);return _e.create(a,i)},createDataFile(e,r,t,n,o,a){var i=r;e&&(e="string"==typeof e?e:_e.getPath(e),i=r?te.join2(e,r):e);var s=Ee(n,o),u=_e.create(i,s);if(t){if("string"==typeof t){for(var l=new Array(t.length),c=0,d=t.length;c<d;++c)l[c]=t.charCodeAt(c);t=l}_e.chmod(u,146|s);var f=_e.open(u,577);_e.write(f,t,0,t.length,0,a),_e.close(f),_e.chmod(u,s)}},createDevice(e,r,t,n){var o=te.join2("string"==typeof e?e:_e.getPath(e),r),a=Ee(!!t,!!n);_e.createDevice.major??=64;var i=_e.makedev(_e.createDevice.major++,0);return _e.registerDevice(i,{open(e){e.seekable=!1},close(e){n?.buffer?.length&&n(10)},read(e,r,n,o,a){for(var i=0,s=0;s<o;s++){var u;try{u=t()}catch(l){throw new _e.ErrnoError(29)}if(void 0===u&&0===i)throw new _e.ErrnoError(6);if(null==u)break;i++,r[n+s]=u}return i&&(e.node.atime=Date.now()),i},write(e,r,t,o,a){for(var i=0;i<o;i++)try{n(r[t+i])}catch(s){throw new _e.ErrnoError(29)}return o&&(e.node.mtime=e.node.ctime=Date.now()),i}}),_e.mkdev(o,a,i)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{e.contents=t(e.url),e.usedBytes=e.contents.length}catch(r){throw new _e.ErrnoError(29)}},createLazyFile(e,r,t,n,o){if("undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a={isDevice:!1,url:t},i=_e.createFile(e,r,a,n,o);a.contents?i.contents=a.contents:a.url&&(i.contents=null,i.url=a.url),Object.defineProperties(i,{usedBytes:{get:function(){return this.contents.length}}});var s={};function u(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s<i;s++)r[t+s]=a[o+s];else for(s=0;s<i;s++)r[t+s]=a.get(o+s);return i}return Object.keys(i.stream_ops).forEach(e=>{var r=i.stream_ops[e];s[e]=(...e)=>(_e.forceLoadFile(i),r(...e))}),s.read=(e,r,t,n,o)=>(_e.forceLoadFile(i),u(e,r,t,n,o)),s.mmap=(e,r,t,n,o)=>{_e.forceLoadFile(i);var a=fe();if(!a)throw new _e.ErrnoError(48);return u(e,f,a,r,t),{ptr:a,allocated:!0}},i.stream_ops=s,i}},be={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(te.isAbs(r))return r;var n;if(n=-100===e?_e.cwd():be.getStreamFromFD(e).path,0==r.length){if(!t)throw new _e.ErrnoError(44);return n}return n+"/"+r},writeStat(e,r){v[e>>2]=r.dev,v[e+4>>2]=r.mode,g[e+8>>2]=r.nlink,v[e+12>>2]=r.uid,v[e+16>>2]=r.gid,v[e+20>>2]=r.rdev,E[e+24>>3]=BigInt(r.size),v[e+32>>2]=4096,v[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),o=r.ctime.getTime();return E[e+40>>3]=BigInt(Math.floor(t/1e3)),g[e+48>>2]=t%1e3*1e3*1e3,E[e+56>>3]=BigInt(Math.floor(n/1e3)),g[e+64>>2]=n%1e3*1e3*1e3,E[e+72>>3]=BigInt(Math.floor(o/1e3)),g[e+80>>2]=o%1e3*1e3*1e3,E[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){v[e+4>>2]=r.bsize,v[e+40>>2]=r.bsize,v[e+8>>2]=r.blocks,v[e+12>>2]=r.bfree,v[e+16>>2]=r.bavail,v[e+20>>2]=r.files,v[e+24>>2]=r.ffree,v[e+28>>2]=r.fsid,v[e+44>>2]=r.flags,v[e+36>>2]=r.namelen},doMsync(e,r,t,n,o){if(!_e.isFile(r.node.mode))throw new _e.ErrnoError(43);if(2&n)return 0;var a=m.slice(e,e+t);_e.msync(r,a,o,t,n)},getStreamFromFD:e=>_e.getStreamChecked(e),varargs:void 0,getStr:e=>Y(e)};function ke(e,r,t){be.varargs=t;try{var n=be.getStreamFromFD(e);switch(r){case 0:if((o=ee())<0)return-28;for(;_e.streams[o];)o++;return _e.dupStream(n,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=ee();return n.flags|=o,0;case 12:return o=re(),p[o+0>>1]=2,0}return-28}catch(a){if(void 0===_e||"ErrnoError"!==a.name)throw a;return-a.errno}}function xe(e,r,t){be.varargs=t;try{var n=be.getStreamFromFD(e);switch(r){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=re();v[a>>2]=o.c_iflag||0,v[a+4>>2]=o.c_oflag||0,v[a+8>>2]=o.c_cflag||0,v[a+12>>2]=o.c_lflag||0;for(var i=0;i<32;i++)f[a+i+17]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=re();var s=v[a>>2],u=v[a+4>>2],l=v[a+8>>2],c=v[a+12>>2],d=[];for(i=0;i<32;i++)d.push(f[a+i+17]);return n.tty.ops.ioctl_tcsets(n.tty,r,{c_iflag:s,c_oflag:u,c_cflag:l,c_lflag:c,c_cc:d})}return 0;case 21519:return n.tty?(a=re(),v[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21531:return a=re(),_e.ioctl(n,r,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var m=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=re(),p[a>>1]=m[0],p[a+2>>1]=m[1]}return 0;default:return-28}}catch(h){if(void 0===_e||"ErrnoError"!==h.name)throw h;return-h.errno}}function Pe(e,r,t,n){be.varargs=n;try{r=be.getStr(r),r=be.calculateAt(e,r);var o=n?ee():0;return _e.open(r,t,o).fd}catch(a){if(void 0===_e||"ErrnoError"!==a.name)throw a;return-a.errno}}var Ae=()=>I(""),Te={},Se=e=>{for(;e.length;){var r=e.pop();e.pop()(r)}};function Fe(e){return this.fromWireType(g[e>>2])}var De={},Be={},Ce={},Le=class extends Error{constructor(e){super(e),this.name="InternalError"}},Ne=e=>{throw new Le(e)},Ie=(e,r,t)=>{function n(r){var n=t(r);n.length!==e.length&&Ne("Mismatched type converter count");for(var o=0;o<e.length;++o)$e(e[o],n[o])}e.forEach(e=>Ce[e]=r);var o=new Array(r.length),a=[],i=0;r.forEach((e,r)=>{Be.hasOwnProperty(e)?o[r]=Be[e]:(a.push(e),De.hasOwnProperty(e)||(De[e]=[]),De[e].push(()=>{o[r]=Be[e],++i===a.length&&n(o)}))}),0===a.length&&n(o)},We=e=>{var r=Te[e];delete Te[e];var t=r.rawConstructor,n=r.rawDestructor,o=r.fields,a=o.map(e=>e.getterReturnType).concat(o.map(e=>e.setterArgumentType));Ie([e],a,e=>{var a={};return o.forEach((r,t)=>{var n=r.fieldName,i=e[t],s=e[t].optional,u=r.getter,l=r.getterContext,c=e[t+o.length],d=r.setter,f=r.setterContext;a[n]={read:e=>i.fromWireType(u(l,e)),write:(e,r)=>{var t=[];d(f,e,c.toWireType(t,r)),Se(t)},optional:s}}),[{name:r.name,fromWireType:e=>{var r={};for(var t in a)r[t]=a[t].read(e);return n(e),r},toWireType:(e,r)=>{for(var o in a)if(!(o in r)&&!a[o].optional)throw new TypeError(`Missing field: "${o}"`);var i=t();for(o in a)a[o].write(i,r[o]);return null!==e&&e.push(n,i),i},argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction:n}]})},je=e=>{for(var r="";;){var t=m[e++];if(!t)return r;r+=String.fromCharCode(t)}},Me=class extends Error{constructor(e){super(e),this.name="BindingError"}},Re=e=>{throw new Me(e)};function Oe(e,r,t={}){var n=r.name;if(e||Re(`type "${n}" must have a positive integer typeid pointer`),Be.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;Re(`Cannot register type '${n}' twice`)}if(Be[e]=r,delete Ce[e],De.hasOwnProperty(e)){var o=De[e];delete De[e],o.forEach(e=>e())}}function $e(e,r,t={}){return Oe(e,r,t)}var Ue=(e,r,t)=>{switch(r){case 1:return t?e=>f[e]:e=>m[e];case 2:return t?e=>p[e>>1]:e=>h[e>>1];case 4:return t?e=>v[e>>2]:e=>g[e>>2];case 8:return t?e=>E[e>>3]:e=>_[e>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},ze=(e,r,t,n,o)=>{r=je(r);const a=0n===n;let i=e=>e;if(a){const e=8*t;i=r=>BigInt.asUintN(e,r),o=i(o)}$e(e,{name:r,fromWireType:i,toWireType:(e,r)=>("number"==typeof r&&(r=BigInt(r)),r),argPackAdvance:Ve,readValueFromPointer:Ue(r,t,!a),destructorFunction:null})},Ve=8,Ge=(e,r,t,n)=>{$e(e,{name:r=je(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?t:n},argPackAdvance:Ve,readValueFromPointer:function(e){return this.fromWireType(m[e])},destructorFunction:null})},Xe=[],He=[0,1,,1,null,1,!0,1,!1,1],qe=e=>{e>9&&0===--He[e+1]&&(He[e]=void 0,Xe.push(e))},Qe={toValue:e=>(e||Re(`Cannot use deleted val. handle = ${e}`),He[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=Xe.pop()||He.length;return He[r]=e,He[r+1]=1,r}}}},Ye={name:"emscripten::val",fromWireType:e=>{var r=Qe.toValue(e);return qe(e),r},toWireType:(e,r)=>Qe.toHandle(r),argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction:null},Je=e=>$e(e,Ye),Ke=(e,r,t)=>{if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(...n){return e[r].overloadTable.hasOwnProperty(n.length)||Re(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[n.length].apply(this,n)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},Ze=(e,r,t)=>{n.hasOwnProperty(e)?((void 0===t||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[t])&&Re(`Cannot register public name '${e}' twice`),Ke(n,e,e),n[e].overloadTable.hasOwnProperty(t)&&Re(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),n[e].overloadTable[t]=r):(n[e]=r,n[e].argCount=t)},er=(e,r,t)=>{switch(r){case 1:return t?function(e){return this.fromWireType(f[e])}:function(e){return this.fromWireType(m[e])};case 2:return t?function(e){return this.fromWireType(p[e>>1])}:function(e){return this.fromWireType(h[e>>1])};case 4:return t?function(e){return this.fromWireType(v[e>>2])}:function(e){return this.fromWireType(g[e>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},rr=(e,r,t,n)=>{function o(){}r=je(r),o.values={},$e(e,{name:r,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:(e,r)=>r.value,argPackAdvance:Ve,readValueFromPointer:er(r,t,n),destructorFunction:null}),Ze(r,o)},tr=(e,r)=>Object.defineProperty(r,"name",{value:e}),nr=e=>{var r=Mt(e),t=je(r);return Rt(r),t},or=(e,r)=>{var t=Be[e];return void 0===t&&Re(`${r} has unknown type ${nr(e)}`),t},ar=(e,r,t)=>{var n=or(e,"enum");r=je(r);var o=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:tr(`${n.name}_${r}`,function(){})}});o.values[t]=a,o[r]=a},ir=(e,r)=>{switch(r){case 4:return function(e){return this.fromWireType(w[e>>2])};case 8:return function(e){return this.fromWireType(y[e>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},sr=(e,r,t)=>{$e(e,{name:r=je(r),fromWireType:e=>e,toWireType:(e,r)=>r,argPackAdvance:Ve,readValueFromPointer:ir(r,t),destructorFunction:null})};function ur(e){for(var r=1;r<e.length;++r)if(null!==e[r]&&void 0===e[r].destructorFunction)return!0;return!1}function lr(e,r,t,n,o,a){var i=r.length;i<2&&Re("argTypes array size mismatch! Must at least get return value and 'this' types!"),r[1];var s=ur(r),u="void"!==r[0].name,l=i-2,c=new Array(l),d=[],f=[];return tr(e,function(...e){var t;f.length=0,d.length=1,d[0]=o;for(var a=0;a<l;++a)c[a]=r[a+2].toWireType(f,e[a]),d.push(c[a]);function i(e){if(s)Se(f);else for(var n=2;n<r.length;n++){var o=1===n?t:c[n-2];null!==r[n].destructorFunction&&r[n].destructorFunction(o)}if(u)return r[0].fromWireType(e)}return i(n(...d))})}var cr,dr=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(g[r+4*n>>2]);return t},fr=(e,r,t)=>{n.hasOwnProperty(e)||Ne("Replacing nonexistent public symbol"),void 0!==n[e].overloadTable&&void 0!==t?n[e].overloadTable[t]=r:(n[e]=r,n[e].argCount=t)},mr=[],pr=e=>{var r=mr[e];return r||(mr[e]=r=cr.get(e)),r},hr=(e,r,t=!1)=>{function n(){return pr(r)}e=je(e);var o=n();return"function"!=typeof o&&Re(`unknown function pointer with signature ${e}: ${r}`),o};class vr extends Error{}var gr,wr=(e,r)=>{var t=[],n={};function o(e){n[e]||Be[e]||(Ce[e]?Ce[e].forEach(o):(t.push(e),n[e]=!0))}throw r.forEach(o),new vr(`${e}: `+t.map(nr).join([", "]))},yr=e=>{const r=(e=e.trim()).indexOf("(");return-1===r?e:e.slice(0,r)},Er=(e,r,t,n,o,a,i,s)=>{var u=dr(r,t);e=je(e),e=yr(e),o=hr(n,o,i),Ze(e,function(){wr(`Cannot call ${e} due to unbound types`,u)},r-1),Ie([],u,t=>{var n=[t[0],null].concat(t.slice(1));return fr(e,lr(e,n,null,o,a),r-1),[]})},_r=(e,r,t,n,o)=>{r=je(r);let a=e=>e;if(0===n){var i=32-8*t;a=e=>e<<i>>>i,o=a(o)}$e(e,{name:r,fromWireType:a,toWireType:(e,r)=>r,argPackAdvance:Ve,readValueFromPointer:Ue(r,t,0!==n),destructorFunction:null})},br=(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][r];function o(e){var r=g[e>>2],t=g[e+4>>2];return new n(f.buffer,t,r)}$e(e,{name:t=je(t),fromWireType:o,argPackAdvance:Ve,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},kr=(e,r,t)=>ue(e,m,r,t),xr=(e,r)=>{$e(e,{name:r=je(r),fromWireType(e){for(var r,t=g[e>>2],n=e+4,o=n,a=0;a<=t;++a){var i=n+a;if(a==t||0==m[i]){var s=Y(o,i-o);void 0===r?r=s:(r+=String.fromCharCode(0),r+=s),o=i+1}}return Rt(e),r},toWireType(e,r){var t;r instanceof ArrayBuffer&&(r=new Uint8Array(r));var n="string"==typeof r;n||ArrayBuffer.isView(r)&&1==r.BYTES_PER_ELEMENT||Re("Cannot pass non-string to std::string"),t=n?se(r):r.length;var o=Ot(4+t+1),a=o+4;return g[o>>2]=t,n?kr(r,a,t+1):m.set(r,a),null!==e&&e.push(Rt,o),o},argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction(e){Rt(e)}})},Pr="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Ar=(e,r)=>{for(var t=e>>1,n=t+r/2,o=t;!(o>=n)&&h[o];)++o;if(o-t>16&&Pr)return Pr.decode(h.subarray(t,o));for(var a="",i=t;!(i>=n);++i){var s=h[i];if(0==s)break;a+=String.fromCharCode(s)}return a},Tr=(e,r,t)=>{if(t??=2147483647,t<2)return 0;for(var n=r,o=(t-=2)<2*e.length?t/2:e.length,a=0;a<o;++a){var i=e.charCodeAt(a);p[r>>1]=i,r+=2}return p[r>>1]=0,r-n},Sr=e=>2*e.length,Fr=(e,r)=>{for(var t="",n=0;!(n>=r/4);n++){var o=v[e+4*n>>2];if(!o)break;t+=String.fromCodePoint(o)}return t},Dr=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,o=n+t-4,a=0;a<e.length;++a){var i=e.codePointAt(a);if(i>65535&&a++,v[r>>2]=i,(r+=4)+4>o)break}return v[r>>2]=0,r-n},Br=e=>{for(var r=0,t=0;t<e.length;++t)e.codePointAt(t)>65535&&t++,r+=4;return r},Cr=(e,r,t)=>{var n,o,a,i;t=je(t),2===r?(n=Ar,o=Tr,i=Sr,a=e=>h[e>>1]):4===r&&(n=Fr,o=Dr,i=Br,a=e=>g[e>>2]),$e(e,{name:t,fromWireType:e=>{for(var t,o=g[e>>2],i=e+4,s=0;s<=o;++s){var u=e+4+s*r;if(s==o||0==a(u)){var l=n(i,u-i);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),i=u+r}}return Rt(e),t},toWireType:(e,n)=>{"string"!=typeof n&&Re(`Cannot pass non-string to C++ string type ${t}`);var a=i(n),s=Ot(4+a+r);return g[s>>2]=a/r,o(n,s+4,a+r),null!==e&&e.push(Rt,s),s},argPackAdvance:Ve,readValueFromPointer:Fe,destructorFunction(e){Rt(e)}})},Lr=(e,r,t,n,o,a)=>{Te[e]={name:je(r),rawConstructor:hr(t,n),rawDestructor:hr(o,a),fields:[]}},Nr=(e,r,t,n,o,a,i,s,u,l)=>{Te[e].fields.push({fieldName:je(r),getterReturnType:t,getter:hr(n,o),getterContext:a,setterArgumentType:i,setter:hr(s,u),setterContext:l})},Ir=(e,r)=>{$e(e,{isVoid:!0,name:r=je(r),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,r)=>{}})},Wr=e=>{do{var r=g[e>>2],t=g[(e+=4)>>2],n=g[(e+=4)>>2];e+=4;var o=Y(r);_e.createPath("/",te.dirname(o),!0,!0),_e.createDataFile(o,null,f.subarray(n,n+t),!0,!0,!0)}while(g[e>>2])},jr=(e,r,t)=>{var n=[],o=e.toWireType(n,t);return n.length&&(g[r>>2]=Qe.toHandle(n)),o},Mr=(e,r,t)=>(e=Qe.toValue(e),r=or(r,"emval::as"),jr(r,t,e)),Rr={},Or=e=>{var r=Rr[e];return void 0===r?je(e):r},$r=[],Ur=(e,r,t,n,o)=>(e=$r[e])(r=Qe.toValue(r),r[t=Or(t)],n,o),zr=()=>globalThis,Vr=e=>0===e?Qe.toHandle(zr()):(e=Or(e),Qe.toHandle(zr()[e])),Gr=e=>{var r=$r.length;return $r.push(e),r},Xr=(e,r)=>{for(var t=new Array(e),n=0;n<e;++n)t[n]=or(g[r+4*n>>2],`parameter ${n}`);return t},Hr=(e,r,t)=>{var n=Xr(e,r),o=n.shift();e--;var a=new Array(e),i=(r,i,s,u)=>{for(var l=0,c=0;c<e;++c)a[c]=n[c].readValueFromPointer(u+l),l+=n[c].argPackAdvance;var d=1===t?Reflect.construct(i,a):i.apply(r,a);return jr(o,s,d)},s=`methodCaller<(${n.map(e=>e.name).join(", ")}) => ${o.name}>`;return Gr(tr(s,i))},qr=(e,r)=>(e=Qe.toValue(e),r=Qe.toValue(r),Qe.toHandle(e[r])),Qr=e=>{e>9&&(He[e+1]+=1)},Yr=(e,r)=>(e=Qe.toValue(e))instanceof(r=Qe.toValue(r)),Jr=e=>"number"==typeof(e=Qe.toValue(e)),Kr=e=>{e=Qe.toValue(e);for(var r=new Array(e.length),t=0;t<e.length;t++)r[t]=e[t];return Qe.toHandle(r)},Zr=e=>Qe.toHandle(Or(e)),et=()=>Qe.toHandle({}),rt=e=>{var r=Qe.toValue(e);Se(r),qe(e)},tt=(e,r,t)=>{e=Qe.toValue(e),r=Qe.toValue(r),t=Qe.toValue(t),e[r]=t},nt=(e,r)=>{var t=(e=or(e,"_emval_take_value")).readValueFromPointer(r);return Qe.toHandle(t)},ot=(e,r,t,n)=>{var o=(new Date).getFullYear(),a=new Date(o,0,1),i=new Date(o,6,1),s=a.getTimezoneOffset(),u=i.getTimezoneOffset(),l=Math.max(s,u);g[e>>2]=60*l,v[r>>2]=Number(s!=u);var c=e=>{var r=e>=0?"-":"+",t=Math.abs(e);return`UTC${r}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},d=c(s),f=c(u);u<s?(kr(d,t,17),kr(f,n,17)):(kr(d,n,17),kr(f,t,17))},at=()=>2147483648,it=(e,r)=>Math.ceil(e/r)*r,st=e=>{var r=(e-d.buffer.byteLength+65535)/65536|0;try{return d.grow(r),A(),1}catch(t){}},ut=e=>{var r=m.length;e>>>=0;var t=at();if(e>t)return!1;for(var n=1;n<=4;n*=2){var o=r*(1+.2/n);o=Math.min(o,e+100663296);var a=Math.min(t,it(Math.max(e,o),65536));if(st(a))return!0}return!1},lt=e=>!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")),ct=e=>!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")),dt=e=>!!(e.extPolygonOffsetClamp=e.getExtension("EXT_polygon_offset_clamp")),ft=e=>!!(e.extClipControl=e.getExtension("EXT_clip_control")),mt=e=>!!(e.webglPolygonMode=e.getExtension("WEBGL_polygon_mode")),pt=e=>!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw")),ht=e=>{var r=["EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_clip_control","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_polygon_offset_clamp","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw","WEBGL_polygon_mode"];return(e.getSupportedExtensions()||[]).filter(e=>r.includes(e))},vt={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:e=>{vt.lastError||(vt.lastError=e)},getNewId:e=>{for(var r=vt.counter++,t=e.length;t<r;t++)e[t]=null;return r},genObject:(e,r,t,n)=>{for(var o=0;o<e;o++){var a=gr[t](),i=a&&vt.getNewId(n);a?(a.name=i,n[i]=a):vt.recordError(1282),v[r+4*o>>2]=i}},getSource:(e,r,t,n)=>{for(var o="",a=0;a<r;++a){var i=n?g[n+4*a>>2]:void 0;o+=Y(g[t+4*a>>2],i)}return o},createContext:(e,r)=>{if(n.preinitializedWebGLContext){var t=n.preinitializedWebGLContext;r.majorVersion=Number(t.getParameter(t.VERSION).match(/^WebGL (\d+).\d+/)[1])}else{if(!e.getContextSafariWebGL2Fixed){function o(r,t){var n=e.getContextSafariWebGL2Fixed(r,t);return"webgl"==r==n instanceof WebGLRenderingContext?n:null}e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=o}t=e.getContext("webgl2",r)}return t?vt.registerContext(t,r):0},registerContext:(e,r)=>{var t=vt.getNewId(vt.contexts),n={handle:t,attributes:r,version:r.majorVersion,GLctx:e};return e.canvas&&(e.canvas.GLctxObject=n),vt.contexts[t]=n,(void 0===r.enableExtensionsByDefault||r.enableExtensionsByDefault)&&vt.initExtensions(n),t},makeContextCurrent:e=>(vt.currentContext=vt.contexts[e],n.ctx=gr=vt.currentContext?.GLctx,!(e&&!gr)),getContext:e=>vt.contexts[e],deleteContext:e=>{vt.currentContext===vt.contexts[e]&&(vt.currentContext=null),"object"==typeof JSEvents&&JSEvents.removeAllHandlersOnTarget(vt.contexts[e].GLctx.canvas),vt.contexts[e]?.GLctx.canvas&&(vt.contexts[e].GLctx.canvas.GLctxObject=void 0),vt.contexts[e]=null},initExtensions:e=>{if(e||=vt.currentContext,!e.initExtensionsDone){e.initExtensionsDone=!0;var r=e.GLctx;pt(r),dt(r),ft(r),mt(r),lt(r),ct(r),e.version>=2&&(r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!r.disjointTimerQueryExt)&&(r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query")),ht(r).forEach(e=>{e.includes("lose_context")||e.includes("debug")||r.getExtension(e)})}}},gt=["default","low-power","high-performance"],wt=e=>e>2?Y(e):e,yt=[0,document,window],Et=e=>(e=wt(e),yt[e]||document.querySelector(e)),_t=(e,r)=>{var t=r>>2,n=v[t+2],o={alpha:!!f[r+0],depth:!!f[r+1],stencil:!!f[r+2],antialias:!!f[r+3],premultipliedAlpha:!!f[r+4],preserveDrawingBuffer:!!f[r+5],powerPreference:gt[n],failIfMajorPerformanceCaveat:!!f[r+12],majorVersion:v[t+4],minorVersion:v[t+5],enableExtensionsByDefault:f[r+24],explicitSwapControl:f[r+25],proxyContextToMainThread:v[t+7],renderViaOffscreenBackBuffer:f[r+32]},a=Et(e);return a?o.explicitSwapControl?0:vt.createContext(a,o):0},bt=e=>vt.makeContextCurrent(e)?0:-5,kt={},xt=()=>o||"./this.program",Pt=()=>{if(!Pt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:xt()};for(var r in kt)void 0===kt[r]?delete e[r]:e[r]=kt[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);Pt.strings=t}return Pt.strings},At=(e,r)=>{var t=0,n=0;for(var o of Pt()){var a=r+t;g[e+n>>2]=a,t+=kr(o,a,1/0)+1,n+=4}return 0},Tt=(e,r)=>{var t=Pt();g[e>>2]=t.length;var n=0;for(var o of t)n+=se(o)+1;return g[r>>2]=n,0};function St(e){try{var r=be.getStreamFromFD(e);return _e.close(r),0}catch(t){if(void 0===_e||"ErrnoError"!==t.name)throw t;return t.errno}}var Ft=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=g[r>>2],s=g[r+4>>2];r+=8;var u=_e.read(e,f,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function Dt(e,r,t,n){try{var o=be.getStreamFromFD(e),a=Ft(o,r,t);return g[n>>2]=a,0}catch(i){if(void 0===_e||"ErrnoError"!==i.name)throw i;return i.errno}}var Bt=9007199254740992,Ct=-9007199254740992,Lt=e=>e<Ct||e>Bt?NaN:Number(e);function Nt(e,r,t,n){r=Lt(r);try{if(isNaN(r))return 61;var o=be.getStreamFromFD(e);return _e.llseek(o,r,t),E[n>>3]=BigInt(o.position),o.getdents&&0===r&&0===t&&(o.getdents=null),0}catch(a){if(void 0===_e||"ErrnoError"!==a.name)throw a;return a.errno}}var It=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=g[r>>2],s=g[r+4>>2];r+=8;var u=_e.write(e,f,i,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o};function Wt(e,r,t,n){try{var o=be.getStreamFromFD(e),a=It(o,r,t);return g[n>>2]=a,0}catch(i){if(void 0===_e||"ErrnoError"!==i.name)throw i;return i.errno}}var jt,Mt,Rt,Ot,$t=e=>gr.activeTexture(e),Ut=(e,r)=>{gr.attachShader(vt.programs[e],vt.shaders[r])},zt=(e,r,t)=>{gr.bindAttribLocation(vt.programs[e],r,Y(t))},Vt=(e,r)=>{35051==e?gr.currentPixelPackBufferBinding=r:35052==e&&(gr.currentPixelUnpackBufferBinding=r),gr.bindBuffer(e,vt.buffers[r])},Gt=(e,r,t)=>{gr.bindBufferBase(e,r,vt.buffers[t])},Xt=(e,r,t,n,o)=>{gr.bindBufferRange(e,r,vt.buffers[t],n,o)},Ht=(e,r)=>{gr.bindFramebuffer(e,vt.framebuffers[r])},qt=(e,r)=>{gr.bindTexture(e,vt.textures[r])},Qt=e=>{gr.bindVertexArray(vt.vaos[e])},Yt=(e,r,t,n)=>{t&&r?gr.bufferData(e,m,n,t,r):gr.bufferData(e,r,n)},Jt=(e,r,t,n)=>{t&&gr.bufferSubData(e,r,m,n,t)},Kt=e=>gr.clear(e),Zt=(e,r,t,n)=>gr.clearBufferfi(e,r,t,n),en=(e,r,t)=>{gr.clearBufferfv(e,r,w,t>>2)},rn=(e,r,t)=>{gr.clearBufferiv(e,r,v,t>>2)},tn=(e,r,t)=>{gr.clearBufferuiv(e,r,g,t>>2)},nn=(e,r,t,n)=>gr.clearColor(e,r,t,n),on=e=>gr.clearDepth(e),an=e=>gr.clearStencil(e),sn=(e,r,t,n)=>{gr.colorMask(!!e,!!r,!!t,!!n)},un=e=>{gr.compileShader(vt.shaders[e])},ln=()=>{var e=vt.getNewId(vt.programs),r=gr.createProgram();return r.name=e,r.maxUniformLength=r.maxAttributeLength=r.maxUniformBlockNameLength=0,r.uniformIdCounter=1,vt.programs[e]=r,e},cn=e=>{var r=vt.getNewId(vt.shaders);return vt.shaders[r]=gr.createShader(e),r},dn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2],o=vt.buffers[n];o&&(gr.deleteBuffer(o),o.name=0,vt.buffers[n]=null,n==gr.currentPixelPackBufferBinding&&(gr.currentPixelPackBufferBinding=0),n==gr.currentPixelUnpackBufferBinding&&(gr.currentPixelUnpackBufferBinding=0))}},fn=(e,r)=>{for(var t=0;t<e;++t){var n=v[r+4*t>>2],o=vt.framebuffers[n];o&&(gr.deleteFramebuffer(o),o.name=0,vt.framebuffers[n]=null)}},mn=e=>{if(e){var r=vt.programs[e];r?(gr.deleteProgram(r),r.name=0,vt.programs[e]=null):vt.recordError(1281)}},pn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2],o=vt.queries[n];o&&(gr.deleteQuery(o),vt.queries[n]=null)}},hn=e=>{if(e){var r=vt.shaders[e];r?(gr.deleteShader(r),vt.shaders[e]=null):vt.recordError(1281)}},vn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2],o=vt.textures[n];o&&(gr.deleteTexture(o),o.name=0,vt.textures[n]=null)}},gn=(e,r)=>{for(var t=0;t<e;t++){var n=v[r+4*t>>2];gr.deleteVertexArray(vt.vaos[n]),vt.vaos[n]=null}},wn=(e,r,t)=>{gr.drawArrays(e,r,t)},yn=[],En=(e,r)=>{for(var t=yn[e],n=0;n<e;n++)t[n]=v[r+4*n>>2];gr.drawBuffers(t)},_n=(e,r,t,n)=>{gr.drawElements(e,r,t,n)},bn=(e,r,t,n,o)=>{gr.drawElementsInstanced(e,r,t,n,o)},kn=e=>{gr.enableVertexAttribArray(e)},xn=(e,r,t,n,o)=>{gr.framebufferTexture2D(e,r,t,vt.textures[n],o)},Pn=(e,r)=>{vt.genObject(e,r,"createBuffer",vt.buffers)},An=(e,r)=>{vt.genObject(e,r,"createFramebuffer",vt.framebuffers)},Tn=(e,r)=>{vt.genObject(e,r,"createQuery",vt.queries)},Sn=(e,r)=>{vt.genObject(e,r,"createTexture",vt.textures)},Fn=(e,r)=>{vt.genObject(e,r,"createVertexArray",vt.vaos)},Dn=e=>gr.generateMipmap(e),Bn=(e,r)=>{g[e>>2]=r;var t=g[e>>2];g[e+4>>2]=(r-t)/4294967296},Cn=()=>{var e=ht(gr);return e=e.concat(e.map(e=>"GL_"+e))},Ln=(e,r,t)=>{if(r){var n=void 0;switch(e){case 36346:n=1;break;case 36344:return;case 34814:case 36345:n=0;break;case 34466:var o=gr.getParameter(34467);n=o?o.length:0;break;case 33309:if(vt.currentContext.version<2)return void vt.recordError(1282);n=Cn().length;break;case 33307:case 33308:if(vt.currentContext.version<2)return void vt.recordError(1280);n=33307==e?3:0}if(void 0===n){var a=gr.getParameter(e);switch(typeof a){case"number":n=a;break;case"boolean":n=a?1:0;break;case"string":return void vt.recordError(1280);case"object":if(null===a)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:n=0;break;default:return void vt.recordError(1280)}else{if(a instanceof Float32Array||a instanceof Uint32Array||a instanceof Int32Array||a instanceof Array){for(var i=0;i<a.length;++i)switch(t){case 0:v[r+4*i>>2]=a[i];break;case 2:w[r+4*i>>2]=a[i];break;case 4:f[r+i]=a[i]?1:0}return}try{n=0|a.name}catch(s){return vt.recordError(1280),void k(`GL_INVALID_ENUM in glGet${t}v: Unknown object returned from WebGL getParameter(${e})! (error: ${s})`)}}break;default:return vt.recordError(1280),void k(`GL_INVALID_ENUM in glGet${t}v: Native code calling glGet${t}v(${e}) and it returns ${a} of type ${typeof a}!`)}}switch(t){case 1:Bn(r,n);break;case 0:v[r>>2]=n;break;case 2:w[r>>2]=n;break;case 4:f[r]=n?1:0}}else vt.recordError(1281)},Nn=(e,r)=>Ln(e,r,0),In=(e,r,t)=>{if(t){var n,o=vt.queries[e];n=vt.currentContext.version<2?gr.disjointTimerQueryExt.getQueryObjectEXT(o,r):gr.getQueryParameter(o,r),Bn(t,"boolean"==typeof n?n?1:0:n)}else vt.recordError(1281)},Wn=(e,r,t)=>{if(t){var n,o=vt.queries[e],a=gr.disjointTimerQueryExt.getQueryObjectEXT(o,r);n="boolean"==typeof a?a?1:0:a,v[t>>2]=n}else vt.recordError(1281)},jn=(e,r)=>gr.getUniformBlockIndex(vt.programs[e],Y(r)),Mn=e=>parseInt(e),Rn=e=>"]"==e.slice(-1)&&e.lastIndexOf("["),On=e=>{var r,t,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n){e.uniformLocsById=n={},e.uniformArrayNamesById={};var a=gr.getProgramParameter(e,35718);for(r=0;r<a;++r){var i=gr.getActiveUniform(e,r),s=i.name,u=i.size,l=Rn(s),c=l>0?s.slice(0,l):s,d=e.uniformIdCounter;for(e.uniformIdCounter+=u,o[c]=[u,d],t=0;t<u;++t)n[d]=t,e.uniformArrayNamesById[d++]=c}}},$n=(e,r)=>{if(r=Y(r),e=vt.programs[e]){On(e);var t=e.uniformLocsById,n=0,o=r,a=Rn(r);a>0&&(n=Mn(r.slice(a+1))>>>0,o=r.slice(0,a));var i=e.uniformSizeAndIdsByName[o];if(i&&n<i[0]&&(t[n+=i[1]]=t[n]||gr.getUniformLocation(e,r)))return n}else vt.recordError(1281);return-1},Un=e=>{e=vt.programs[e],gr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},zn=(e,r)=>{3317==e?vt.unpackAlignment=r:3314==e&&(vt.unpackRowLength=r),gr.pixelStorei(e,r)},Vn=(e,r)=>{gr.disjointTimerQueryExt.queryCounterEXT(vt.queries[e],r)},Gn=e=>gr.readBuffer(e),Xn=e=>0==(e-=5120)?f:1==e?m:2==e?p:4==e?v:6==e?w:5==e||28922==e||28520==e||30779==e||30782==e?g:h,Hn=(e,r)=>e>>>31-Math.clz32(r.BYTES_PER_ELEMENT),qn=(e,r,t,n,o,a,i)=>{if(gr.currentPixelPackBufferBinding)gr.readPixels(e,r,t,n,o,a,i);else{var s=Xn(a),u=Hn(i,s);gr.readPixels(e,r,t,n,o,a,s,u)}},Qn=(e,r,t,n)=>{var o=vt.getSource(e,r,t,n);gr.shaderSource(vt.shaders[e],o)},Yn=(e,r,t,n,o,a,i,s,u,l)=>{if(gr.currentPixelUnpackBufferBinding)gr.texImage3D(e,r,t,n,o,a,i,s,u,l);else if(l){var c=Xn(u);gr.texImage3D(e,r,t,n,o,a,i,s,u,c,Hn(l,c))}else gr.texImage3D(e,r,t,n,o,a,i,s,u,null)},Jn=(e,r,t)=>gr.texParameteri(e,r,t),Kn=(e,r,t,n,o)=>gr.texStorage2D(e,r,t,n,o),Zn=(e,r,t)=>{function n(e,r){return e+r-1&-r}return r*n((vt.unpackRowLength||e)*t,vt.unpackAlignment)},eo=e=>({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1),ro=(e,r,t,n,o,a)=>{var i=Xn(e),s=eo(r)*i.BYTES_PER_ELEMENT,u=Zn(t,n,s);return i.subarray(Hn(o,i),Hn(o+u,i))},to=(e,r,t,n,o,a,i,s,u)=>{if(gr.currentPixelUnpackBufferBinding)gr.texSubImage2D(e,r,t,n,o,a,i,s,u);else if(u){var l=Xn(s);gr.texSubImage2D(e,r,t,n,o,a,i,s,l,Hn(u,l))}else{var c=u?ro(s,i,o,a,u):null;gr.texSubImage2D(e,r,t,n,o,a,i,s,c)}},no=(e,r,t,n,o,a,i,s,u,l,c)=>{if(gr.currentPixelUnpackBufferBinding)gr.texSubImage3D(e,r,t,n,o,a,i,s,u,l,c);else if(c){var d=Xn(l);gr.texSubImage3D(e,r,t,n,o,a,i,s,u,l,d,Hn(c,d))}else gr.texSubImage3D(e,r,t,n,o,a,i,s,u,l,null)},oo=e=>{var r=gr.currentProgram;if(r){var t=r.uniformLocsById[e];return"number"==typeof t&&(r.uniformLocsById[e]=t=gr.getUniformLocation(r,r.uniformArrayNamesById[e]+(t>0?`[${t}]`:""))),t}vt.recordError(1282)},ao=(e,r)=>{gr.uniform1i(oo(e),r)},io=(e,r,t)=>{e=vt.programs[e],gr.uniformBlockBinding(e,r,t)},so=e=>{e=vt.programs[e],gr.useProgram(e),gr.currentProgram=e},uo=(e,r,t,n,o)=>{gr.vertexAttribIPointer(e,r,t,n,o)},lo=(e,r,t,n,o,a)=>{gr.vertexAttribPointer(e,r,t,!!n,o,a)},co=(e,r)=>{e<128?r.push(e):r.push(e%128|128,e>>7)},fo=e=>{for(var r={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},t={parameters:[],results:"v"==e[0]?[]:[r[e[0]]]},n=1;n<e.length;++n)t.parameters.push(r[e[n]]);return t},mo=(e,r)=>{var t=e.slice(0,1),n=e.slice(1),o={i:127,p:127,j:126,f:125,d:124,e:111};for(var a of(r.push(96),co(n.length,r),n))r.push(o[a]);"v"==t?r.push(0):r.push(1,o[t])},po=(e,r)=>{if("function"==typeof WebAssembly.Function)return new WebAssembly.Function(fo(r),e);var t=[1];mo(r,t);var n=[0,97,115,109,1,0,0,0,1];co(t.length,n),n.push(...t),n.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var o=new WebAssembly.Module(new Uint8Array(n));return new WebAssembly.Instance(o,{e:{f:e}}).exports.f},ho=(e,r)=>{if(jt)for(var t=e;t<e+r;t++){var n=pr(t);n&&jt.set(n,t)}},vo=e=>(jt||(jt=new WeakMap,ho(0,cr.length)),jt.get(e)||0),go=[],wo=()=>{if(go.length)return go.pop();try{cr.grow(1)}catch(k){if(!(k instanceof RangeError))throw k;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return cr.length-1},yo=(e,r)=>{cr.set(e,r),mr[e]=cr.get(e)},Eo=(e,r)=>{var t=vo(e);if(t)return t;var n=wo();try{yo(n,e)}catch(k){if(!(k instanceof TypeError))throw k;var o=po(e,r);yo(n,o)}return jt.set(e,n),n},_o=(...e)=>_e.createPath(...e),bo=(...e)=>_e.unlink(...e),ko=(...e)=>_e.createLazyFile(...e),xo=(...e)=>_e.createDevice(...e);_e.createPreloadedFile=we,_e.staticInit(),me.doesNotExistError=new _e.ErrnoError(44),me.doesNotExistError.stack="<generic error, no stack>";for(let Do=0;Do<32;++Do)yn.push(new Array(Do));function Po(e){Mt=e.eb,n._free=Rt=e.gb,n._malloc=Ot=e.hb}n.noExitRuntime&&n.noExitRuntime,n.preloadPlugins&&(ve=n.preloadPlugins),n.print&&(b=n.print),n.printErr&&(k=n.printErr),n.wasmBinary&&(u=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&(o=n.thisProgram),n.addRunDependency=L,n.removeRunDependency=N,n.addFunction=Eo,n.stringToUTF8=kr,n.lengthBytesUTF8=se,n.specialHTMLTargets=yt,n.FS_createPreloadedFile=we,n.FS_unlink=bo,n.FS_createPath=_o,n.FS_createDevice=xo,n.FS_createDataFile=he,n.FS_createLazyFile=ko;var Ao={ba:J,o:Z,$:ke,Ya:xe,_a:Pe,Za:Ae,ia:We,K:ze,ga:Ge,ea:Je,L:rr,k:ar,J:sr,e:Er,i:_r,f:br,fa:xr,A:Cr,ja:Lr,q:Nr,ha:Ir,da:Wr,E:Mr,B:Ur,a:qe,r:Vr,C:Hr,h:qr,D:Qr,t:Yr,ka:Jr,ma:Kr,b:Zr,g:et,n:rt,c:tt,d:nt,ca:ot,$a:ut,pa:_t,na:bt,Ua:At,Va:Tt,aa:St,Wa:Dt,Xa:Nt,I:Wt,Na:$t,v:Ut,Ea:zt,Qa:Vt,Oa:Gt,Pa:Xt,y:Ht,j:qt,z:Qt,ab:Yt,U:Jt,W:Kt,Ia:Zt,G:en,Ha:rn,V:tn,La:nn,Ka:on,Ja:an,la:sn,Q:un,Fa:ln,S:cn,_:dn,X:fn,Ga:mn,u:pn,p:hn,H:vn,P:gn,Ra:wn,Ma:En,Sa:_n,Ta:bn,sa:kn,x:xn,bb:Pn,Y:An,O:Tn,za:Sn,ta:Fn,ua:Dn,s:Nn,M:In,oa:Wn,Da:jn,Ba:$n,T:Un,l:zn,N:Vn,F:Gn,w:qn,R:Qn,xa:Yn,m:Jn,ya:Kn,va:to,wa:no,Aa:ao,Ca:io,Z:so,qa:uo,ra:lo},To=await U();function So(){function e(){n.calledRun=!0,x||(S(),l?.(n),n.onRuntimeInitialized?.(),F())}B>0?C=So:(T(),B>0?C=So:n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),e()},1)):e())}function Fo(){if(n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()()}return Fo(),So(),P?n:new Promise((e,r)=>{l=e,c=r})};export{e as default};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.42";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.42",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../request.js";import o from"../core/Error.js";import has from"../core/has.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as s}from"../core/promiseUtils.js";import{on as a,sync as n}from"../core/reactiveUtils.js";import{property as l,subclass as p}from"../core/accessorSupport/decorators.js";import{persistable as m}from"../core/accessorSupport/decorators/persistable.js";import c from"../geometry/Extent.js";import d from"../geometry/SpatialReference.js";import u from"./Layer.js";import{APIKeyMixin as h}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as y}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as g}from"./mixins/OperationalLayer.js";import{PortalLayer as S}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as _}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as v,url as j}from"./support/commonProperties.js";import T from"./support/SceneModifications.js";import{default3DTilesSpatialReference as w,default3DTilesFullExtent as L,initFullExtent as b}from"./support/tiles3DUtils.js";import x from"../portal/Portal.js";import{logInvalidElevationInfoWarning as P,elevationModeRequiredMessage as I,featureExpressionUnsupportedMessage as k}from"../support/elevationInfoUtils.js";import{f as R}from"../chunks/persistableUrlUtils.js";import{isBasemap as D}from"../support/userTypeGuards/isBasemap.js";import{initialize as U,switchMeshModificationPolygonVCSSync as E}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as O,
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../request.js";import o from"../core/Error.js";import has from"../core/has.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as s}from"../core/promiseUtils.js";import{on as a,sync as n}from"../core/reactiveUtils.js";import{property as l,subclass as p}from"../core/accessorSupport/decorators.js";import{persistable as m}from"../core/accessorSupport/decorators/persistable.js";import c from"../geometry/Extent.js";import d from"../geometry/SpatialReference.js";import u from"./Layer.js";import{APIKeyMixin as h}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as y}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as g}from"./mixins/OperationalLayer.js";import{PortalLayer as S}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as _}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as v,url as j}from"./support/commonProperties.js";import T from"./support/SceneModifications.js";import{default3DTilesSpatialReference as w,default3DTilesFullExtent as L,initFullExtent as b}from"./support/tiles3DUtils.js";import x from"../portal/Portal.js";import{logInvalidElevationInfoWarning as P,elevationModeRequiredMessage as I,featureExpressionUnsupportedMessage as k}from"../support/elevationInfoUtils.js";import{f as R}from"../chunks/persistableUrlUtils.js";import{isBasemap as D}from"../support/userTypeGuards/isBasemap.js";import{initialize as U,switchMeshModificationPolygonVCSSync as E}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as O,fromWasmModification as M}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as q}from"../core/accessorSupport/decorators/reader.js";let A=class extends(f(g(S(_(i(y(h(u)))))))){readModifications(e,t,o){this._modificationsSource={url:R(e,o),context:o}}initialize(){this.addHandles(a(()=>this.modifications,"after-changes",()=>this.modifications=this.modifications,n))}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=w,this.fullExtent=L,this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[r,i]of Object.entries(e)){if("uri"===r)try{const e=new URL("https://tmp"+i).searchParams.get("session");if(e)return e}catch(o){}"object"==typeof i&&null!==i&&t.push(i)}}return null}async requestRootAndSession(e){const i=(e,t)=>new o("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((o,a)=>{this.url||a(i("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,o)=>{if(this.replacesTerrain&&!this._key){const r=this.portalItem?.portal||this.parent?.portalItem?.portal||x.getDefault();r.signIn().then(()=>{r.g3dTilesEnabled?t(r.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>o(i("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):o(i("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+r.url))},()=>o(i("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void a(i("root-parse-failed","Error parsing root tile, details: "+t))}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=b(this._rootTilesetJSON),o(),this._rootRequestPromise=null):a(i("root-is-null","Root tile is null."))},e=>{s(e),a(i("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,r.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>a(e))})),this._rootRequestPromise}async _doLoad(e){const t=null!=e?e.signal:null;if(this.isUsedAsGroundLayer&&!has("enable-feature:basemap-groundlayers"))throw new o("3dtiles-init:not-supported-in-groundlayers","Layer is not supported in basemap.");try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new o("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(i){s(i)}if(null!=this._modificationsSource){const t=await T.fromUrl(this._modificationsSource.url,this.spatialReference,e);if(t&&t.length>0){await U();try{const e=O(null,t.toArray(),this.spatialReference),o=E({modifications:e,inVCS:115700});o.success&&o.modifications&&M(o.modifications,t)}catch(a){r.getLogger(this).error("convert-mesh-modification-z-error","Error when converting:",a)}null!=this._modificationsSource&&this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}}await this.requestRootAndSession(t)}async beforeSave(){if(null==this._modificationsSource){const{modifications:e}=this;return void(e&&e.length>0&&await U())}await this.load().then(()=>{},()=>{})}get hasAttributionData(){return!1}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";P(r.getLogger(this),I(t,"absolute-height",e)),P(r.getLogger(this),k(t,e))}get replacesTerrain(){return!!has("enable-feature:basemap-groundlayers")&&this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return D(this.parent)}get hasGoogleUrl(){return!!this.url?.match(/.+\.googleapis.com/)}};e([l({type:["IntegratedMesh3DTilesLayer"]})],A.prototype,"operationalLayerType",void 0),e([l({type:T,clonable:e=>e.clone()}),m({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],A.prototype,"modifications",void 0),e([q(["web-scene","portal-item"],"modifications")],A.prototype,"readModifications",null),e([l({type:d})],A.prototype,"spatialReference",void 0),e([l({type:c})],A.prototype,"fullExtent",void 0),e([l(v)],A.prototype,"elevationInfo",null),e([l({type:["show","hide"]})],A.prototype,"listMode",void 0),e([l(j)],A.prototype,"url",void 0),e([l({readOnly:!0})],A.prototype,"type",void 0),e([l({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],A.prototype,"path",void 0),e([l({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],A.prototype,"minScale",void 0),e([l({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],A.prototype,"maxScale",void 0),e([l({readOnly:!0})],A.prototype,"hasAttributionData",null),e([l()],A.prototype,"replacesTerrain",null),e([l()],A.prototype,"isUsedAsGroundLayer",null),e([l()],A.prototype,"hasGoogleUrl",null),A=e([p("esri.layers.IntegratedMesh3DTilesLayer")],A);const G=A;export{G as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import r from"../../../core/Collection.js";import o from"../../../core/Error.js";import has from"../../../core/has.js";import{LoadableMixin as i}from"../../../core/Loadable.js";import s from"../../../core/Logger.js";import{EsriPromiseMixin as n}from"../../../core/Promise.js";import{open as a}from"../../../core/workers.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{ensureType as p}from"../../../core/accessorSupport/ensureType.js";import c from"../../../geometry/Extent.js";import d from"../../../geometry/Polygon.js";import{typeKebabDictionary as y}from"../../../geometry/support/typeUtils.js";import{unapplyEditsZUnitScaling as h}from"../../../rest/query/operations/editsZScale.js";import{applyFeatureSetZUnitScaling as m}from"../../../rest/query/operations/queryZScale.js";import f from"../../../rest/support/FeatureSet.js";import{shared as g}from"../../../core/accessorSupport/decorators/shared.js";let _=0,T=class extends(i(n(r))){constructor(e){super(e),this._idToClientGeometry=null,this.type="memory"}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._startWorker(t)),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null}get _workerGeometryType(){const e=this.layer?.geometryType;return e?this._geometryTypeRequiresClientGraphicMapping(e)?"polygon":e:null}applyEdits(e){return this.load().then(()=>this._applyEdits(e))}openPorts(){return this.load().then(()=>this._connection.openPorts())}async queryFeatures(e,t={}){await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);m(e,this.layer.spatialReference,r);const o=f.fromJSON(r);if(!this._requiresClientGraphicMapping()||!this._idToClientGeometry)return o;const i=this.layer.objectIdField;for(const s of o.features){const e=s.attributes[i],t=this._idToClientGeometry.get(e);void 0!==t&&(s.geometry=t)}return o.geometryType=this.layer.geometryType,o}async queryFeaturesJSON(e,t={}){if(this._requiresClientGraphicMapping())throw new o("query-features-json:unsupported","Cannot query in JSON format for client only geometry types (mesh and extent)");await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);return m(e,this.layer.spatialReference,r),r}queryFeatureCount(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryFeatureCount",e?e.toJSON():null,t))}queryObjectIds(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryObjectIds",e?e.toJSON():null,t))}queryExtent(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryExtent",e?e.toJSON():null,t)).then(e=>({count:e.count,extent:c.fromJSON(e.extent)}))}querySnapping(e,t={}){return this.load(t).then(()=>this._connection.invoke("querySnapping",e,t))}async queryAttributeBins(e,t={}){return await this.load(),this._connection.invoke("queryAttributeBins",e?.toJSON(),t)}async _applyEdits(e){if(!this._connection)throw new o("feature-layer-source:edit-failure","Memory source not loaded");const t=this.layer.objectIdField;let r=null;const i=[],s=[];await Promise.all([this._prepareClientMapping(e.addFeatures,null),this._prepareClientMapping(e.updateFeatures,null)]);const n=e=>"objectId"in e&&null!=e.objectId?e.objectId:"attributes"in e&&null!=e.attributes[t]?e.attributes[t]:null;if(e.addFeatures&&(r=this._prepareAddFeatures(e.addFeatures)),e.deleteFeatures)for(const o of e.deleteFeatures){const e=n(o);null!=e&&i.push(e)}const a=e.updateFeatures&&this._idToClientGeometry?new Map:null;if(e.updateFeatures)for(const o of e.updateFeatures)if(s.push(this._serializeFeature(o)),a&&null!=o.geometry){const e=n(o);null!=e&&a.set(e,o)}h(r?r.features:null,s,this.layer.spatialReference);const{fullExtent:l,featureEditResults:u}=await this._connection.invoke("applyEdits",{adds:r?r.features:[],updates:s,deletes:i});return this.fullExtent=l,r&&r.finish(u.uidToObjectId),this._updateIdToClientGeometries(a,u),this._createEditsResult(u)}async _prepareClientMapping(e,t){if("mesh"!==this._layerOrSourceGeometryType||null==e)return;const r=[];for(const{geometry:o}of e)null==o||"mesh"!==o.type||o.hasExtent||o.loaded||r.push(o.load({signal:t}));r.length&&await Promise.all(r)}_updateIdToClientGeometries(e,t){if(this._idToClientGeometry){if(e)for(const r of t.updateResults){if(!r.success)continue;const t=e.get(r.objectId);null!=t&&this._addIdToClientGeometry(t)}for(const e of t.deleteResults)e.success&&this._idToClientGeometry.delete(e.objectId)}}_createEditsResult(e){return{addFeatureResults:e.addResults?e.addResults.map(this._createFeatureEditResult,this):[],updateFeatureResults:e.updateResults?e.updateResults.map(this._createFeatureEditResult,this):[],deleteFeatureResults:e.deleteResults?e.deleteResults.map(this._createFeatureEditResult,this):[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}_createFeatureEditResult(e){const t=!0===e.success?null:e.error||{code:void 0,description:""};return{objectId:e.objectId,globalId:e.globalId,error:t?new o("feature-layer-source:edit-failure",t.description,{code:t.code}):null}}_prepareAddFeatures(e){const t=new Map,r=new Array(e.length);let o=null;for(let s=0;s<e.length;s++){const i=e[s],n=this._serializeFeature(i);o||null==i.geometry||(o=i.geometry.type),r[s]=n,t.set(`${n.uid}`,i)}const i=this;return{features:r,inferredGeometryType:o,finish(e){const r=i.sourceJSON.objectIdField;for(const o in e){const s=e[o],n=t.get(o);n&&(n.attributes||(n.attributes={}),-1===s?delete n.attributes[r]:n.attributes[r]=s,i._addIdToClientGeometry(n))}}}}_addIdToClientGeometry(e){if(!this._idToClientGeometry)return;const t=this.sourceJSON.objectIdField,r=e.attributes?.[t];null!=r&&this._idToClientGeometry.set(r,e.geometry??null)}get _layerOrSourceGeometryType(){return this.layer?.geometryType??this.sourceJSON?.geometryType}_requiresClientGraphicMapping(){return this._geometryTypeRequiresClientGraphicMapping(this._layerOrSourceGeometryType)}_geometryRequiresClientGraphicMapping(e){return this._geometryTypeRequiresClientGraphicMapping(e.type)}_geometryTypeRequiresClientGraphicMapping(e){return"mesh"===e||"multipatch"===e||"extent"===e}_serializeFeature(e){const{attributes:t}=e,r=this._geometryForSerialization(e),o=(_++).toString();return r?{uid:o,geometry:r.toJSON(),attributes:t}:{uid:o,attributes:t}}_geometryForSerialization(e){const{geometry:t}=e;if(null==t)return null;if(this._geometryRequiresClientGraphicMapping(t)){return t.extent?d.fromExtent(t.extent):null}return t}async _startWorker(e){this._connection=await a("MemorySourceWorker",{strategy:has("feature-layers-workers")?"dedicated":"local",signal:e,registryTarget:this});const{fields:t,spatialReference:r,objectIdField:o,hasM:i,hasZ:n,timeInfo:l,dateFieldsTimeZone:u}=this.layer,p="defaults"===this.layer.originOf("spatialReference");await this._prepareClientMapping(this.items,e);const c=this._prepareAddFeatures(this.items);this.addHandles(this.on("before-changes",e=>{s.getLogger(this).error("Source modifications will not propagate after layer has been loaded. Please use .applyEdits() instead"),e.preventDefault()}));const d={features:c.features,fields:t?.map(e=>e.toJSON()),geometryType:y.toJSON(this._workerGeometryType),hasM:"mesh"!==this._layerOrSourceGeometryType&&i,hasZ:"mesh"===this._layerOrSourceGeometryType||n,objectIdField:o,spatialReference:p?null:r&&r.toJSON(),timeInfo:l?.toJSON()??null,dateFieldsTimeZone:u},h=await this._connection.invoke("load",d,{signal:e});for(const a of h.warnings)s.getLogger(this.layer).warn("#load()",`${a.message} (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{warning:a});h.featureErrors.length&&s.getLogger(this.layer).
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import r from"../../../core/Collection.js";import o from"../../../core/Error.js";import has from"../../../core/has.js";import{LoadableMixin as i}from"../../../core/Loadable.js";import s from"../../../core/Logger.js";import{EsriPromiseMixin as n}from"../../../core/Promise.js";import{open as a}from"../../../core/workers.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{ensureType as p}from"../../../core/accessorSupport/ensureType.js";import c from"../../../geometry/Extent.js";import d from"../../../geometry/Polygon.js";import{typeKebabDictionary as y}from"../../../geometry/support/typeUtils.js";import{unapplyEditsZUnitScaling as h}from"../../../rest/query/operations/editsZScale.js";import{applyFeatureSetZUnitScaling as m}from"../../../rest/query/operations/queryZScale.js";import f from"../../../rest/support/FeatureSet.js";import{shared as g}from"../../../core/accessorSupport/decorators/shared.js";let _=0,T=class extends(i(n(r))){constructor(e){super(e),this._idToClientGeometry=null,this.type="memory"}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._startWorker(t)),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null}get _workerGeometryType(){const e=this.layer?.geometryType;return e?this._geometryTypeRequiresClientGraphicMapping(e)?"polygon":e:null}applyEdits(e){return this.load().then(()=>this._applyEdits(e))}openPorts(){return this.load().then(()=>this._connection.openPorts())}async queryFeatures(e,t={}){await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);m(e,this.layer.spatialReference,r);const o=f.fromJSON(r);if(!this._requiresClientGraphicMapping()||!this._idToClientGeometry)return o;const i=this.layer.objectIdField;for(const s of o.features){const e=s.attributes[i],t=this._idToClientGeometry.get(e);void 0!==t&&(s.geometry=t)}return o.geometryType=this.layer.geometryType,o}async queryFeaturesJSON(e,t={}){if(this._requiresClientGraphicMapping())throw new o("query-features-json:unsupported","Cannot query in JSON format for client only geometry types (mesh and extent)");await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);return m(e,this.layer.spatialReference,r),r}queryFeatureCount(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryFeatureCount",e?e.toJSON():null,t))}queryObjectIds(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryObjectIds",e?e.toJSON():null,t))}queryExtent(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryExtent",e?e.toJSON():null,t)).then(e=>({count:e.count,extent:c.fromJSON(e.extent)}))}querySnapping(e,t={}){return this.load(t).then(()=>this._connection.invoke("querySnapping",e,t))}async queryAttributeBins(e,t={}){return await this.load(),this._connection.invoke("queryAttributeBins",e?.toJSON(),t)}async _applyEdits(e){if(!this._connection)throw new o("feature-layer-source:edit-failure","Memory source not loaded");const t=this.layer.objectIdField;let r=null;const i=[],s=[];await Promise.all([this._prepareClientMapping(e.addFeatures,null),this._prepareClientMapping(e.updateFeatures,null)]);const n=e=>"objectId"in e&&null!=e.objectId?e.objectId:"attributes"in e&&null!=e.attributes[t]?e.attributes[t]:null;if(e.addFeatures&&(r=this._prepareAddFeatures(e.addFeatures)),e.deleteFeatures)for(const o of e.deleteFeatures){const e=n(o);null!=e&&i.push(e)}const a=e.updateFeatures&&this._idToClientGeometry?new Map:null;if(e.updateFeatures)for(const o of e.updateFeatures)if(s.push(this._serializeFeature(o)),a&&null!=o.geometry){const e=n(o);null!=e&&a.set(e,o)}h(r?r.features:null,s,this.layer.spatialReference);const{fullExtent:l,featureEditResults:u}=await this._connection.invoke("applyEdits",{adds:r?r.features:[],updates:s,deletes:i});return this.fullExtent=l,r&&r.finish(u.uidToObjectId),this._updateIdToClientGeometries(a,u),this._createEditsResult(u)}async _prepareClientMapping(e,t){if("mesh"!==this._layerOrSourceGeometryType||null==e)return;const r=[];for(const{geometry:o}of e)null==o||"mesh"!==o.type||o.hasExtent||o.loaded||r.push(o.load({signal:t}));r.length&&await Promise.all(r)}_updateIdToClientGeometries(e,t){if(this._idToClientGeometry){if(e)for(const r of t.updateResults){if(!r.success)continue;const t=e.get(r.objectId);null!=t&&this._addIdToClientGeometry(t)}for(const e of t.deleteResults)e.success&&this._idToClientGeometry.delete(e.objectId)}}_createEditsResult(e){return{addFeatureResults:e.addResults?e.addResults.map(this._createFeatureEditResult,this):[],updateFeatureResults:e.updateResults?e.updateResults.map(this._createFeatureEditResult,this):[],deleteFeatureResults:e.deleteResults?e.deleteResults.map(this._createFeatureEditResult,this):[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}_createFeatureEditResult(e){const t=!0===e.success?null:e.error||{code:void 0,description:""};return{objectId:e.objectId,globalId:e.globalId,error:t?new o("feature-layer-source:edit-failure",t.description,{code:t.code}):null}}_prepareAddFeatures(e){const t=new Map,r=new Array(e.length);let o=null;for(let s=0;s<e.length;s++){const i=e[s],n=this._serializeFeature(i);o||null==i.geometry||(o=i.geometry.type),r[s]=n,t.set(`${n.uid}`,i)}const i=this;return{features:r,inferredGeometryType:o,finish(e){const r=i.sourceJSON.objectIdField;for(const o in e){const s=e[o],n=t.get(o);n&&(n.attributes||(n.attributes={}),-1===s?delete n.attributes[r]:n.attributes[r]=s,i._addIdToClientGeometry(n))}}}}_addIdToClientGeometry(e){if(!this._idToClientGeometry)return;const t=this.sourceJSON.objectIdField,r=e.attributes?.[t];null!=r&&this._idToClientGeometry.set(r,e.geometry??null)}get _layerOrSourceGeometryType(){return this.layer?.geometryType??this.sourceJSON?.geometryType}_requiresClientGraphicMapping(){return this._geometryTypeRequiresClientGraphicMapping(this._layerOrSourceGeometryType)}_geometryRequiresClientGraphicMapping(e){return this._geometryTypeRequiresClientGraphicMapping(e.type)}_geometryTypeRequiresClientGraphicMapping(e){return"mesh"===e||"multipatch"===e||"extent"===e}_serializeFeature(e){const{attributes:t}=e,r=this._geometryForSerialization(e),o=(_++).toString();return r?{uid:o,geometry:r.toJSON(),attributes:t}:{uid:o,attributes:t}}_geometryForSerialization(e){const{geometry:t}=e;if(null==t)return null;if(this._geometryRequiresClientGraphicMapping(t)){return t.extent?d.fromExtent(t.extent):null}return t}async _startWorker(e){this._connection=await a("MemorySourceWorker",{strategy:has("feature-layers-workers")?"dedicated":"local",signal:e,registryTarget:this});const{fields:t,spatialReference:r,objectIdField:o,hasM:i,hasZ:n,timeInfo:l,dateFieldsTimeZone:u}=this.layer,p="defaults"===this.layer.originOf("spatialReference");await this._prepareClientMapping(this.items,e);const c=this._prepareAddFeatures(this.items);this.addHandles(this.on("before-changes",e=>{s.getLogger(this).error("Source modifications will not propagate after layer has been loaded. Please use .applyEdits() instead"),e.preventDefault()}));const d={features:c.features,fields:t?.map(e=>e.toJSON()),geometryType:y.toJSON(this._workerGeometryType),hasM:"mesh"!==this._layerOrSourceGeometryType&&i,hasZ:"mesh"===this._layerOrSourceGeometryType||n,objectIdField:o,spatialReference:p?null:r&&r.toJSON(),timeInfo:l?.toJSON()??null,dateFieldsTimeZone:u},h=await this._connection.invoke("load",d,{signal:e});for(const a of h.warnings)s.getLogger(this.layer).warn("#load()",`${a.message} (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{warning:a});h.featureErrors.length&&s.getLogger(this.layer).error("#load()",`Failed to load ${h.featureErrors.length} features due to errors. (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}').`,h.featureErrors.map(e=>"\n\n- "+e.error.description).join(""));const m=h.layerDefinition;this._geometryTypeRequiresClientGraphicMapping(c.inferredGeometryType)&&(m.geometryType=y.toJSON(c.inferredGeometryType)),this.sourceJSON=m,this._requiresClientGraphicMapping()&&(this._idToClientGeometry=new Map),c.finish(h.assignedObjectIds)}};e([g({Type:t,ensureType:p(t)})],T.prototype,"itemType",void 0),e([l()],T.prototype,"type",void 0),e([l({constructOnly:!0})],T.prototype,"layer",void 0),e([l({readOnly:!0})],T.prototype,"_workerGeometryType",null),e([l()],T.prototype,"sourceJSON",void 0),T=e([u("esri.layers.graphics.sources.MemorySource")],T);export{T as MemorySource};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../request.js";import i from"../../../core/Error.js";import{JSONSupport as r}from"../../../core/JSONSupport.js";import o from"../../../core/Logger.js";import{debounce as n,onAbort as s}from"../../../core/promiseUtils.js";import{QueueProcessor as l}from"../../../core/QueueProcessor.js";import{property as a,subclass as c}from"../../../core/accessorSupport/decorators.js";import{ensureClass as f}from"../../../core/accessorSupport/ensureType.js";import u from"../../../geometry/Extent.js";import m from"../../../geometry/Point.js";import h from"../../../geometry/SpatialReference.js";import{isFunctionRaster as p,getPixelSpaceCoverage as d}from"./datasetUtils.js";import{isMultiSliceOrRangeDefinition as x,getSliceIndex as y,createSlices as g,getSliceIds as I}from"./multidimensionalUtils.js";import{clearRegisteredIds as R,getRasterId as w,getBlock as S,putBlock as k,deleteBlock as b,decreaseRefCount as T}from"./RawBlockCache.js";import{convertNoDataToMask as v}from"../formats/pixelRangeUtils.js";import{decode as P}from"../formats/RasterCodec.js";import{mosaic as B,approximateTransform as _,getLocalArithmeticNorthRotations as M,compositeBands as C}from"../functions/pixelUtils.js";import{getWorldWidth as W,load as H,projectPoint as z,snapPyramid as L,shiftExtent as E,getWorldWrapCount as j,projectExtent as D,getProjectionOffsetGrid as O,getRasterDatasetAlignmentInfo as A,projectResolution as q}from"../functions/rasterProjectionHelper.js";import{convertToLocalDirections as F,uvComponentToVector as G}from"../functions/vectorFieldUtils.js";import{sanitizeUrl as J}from"../../support/arcgisLayerUrl.js";import{url as N}from"../../support/commonProperties.js";import V from"../../support/DimensionalDefinition.js";import U from"../../support/LOD.js";import Q from"../../support/RasterStorageInfo.js";import $ from"../../support/TileInfo.js";const X=8,K=256;let Y=0,Z=class extends r{constructor(){super(...arguments),this._tileFetchQueue=new l({concurrency:32,process:(e,t)=>this.fetchRawTile(e.pyramidLevel,e.row,e.col,{...e.options,signal:t})}),this.datasetName=null,this.datasetFormat=null,this.hasUniqueSourceStorageInfo=!0,this.rasterInfo=null,this.ioConfig={sampling:"closest"},this.rawBlockRegistryIds=[],this.refresh=n(async e=>{await this._openPromise;const t=await this._refresh(e);return t.dataChanged&&R(this.rasterId,this.rawBlockRegistryIds),t})}normalizeCtorArgs(e){return e?.ioConfig&&(e={...e,ioConfig:{resolution:null,bandIds:null,sampling:"closest",tileInfo:$.create(),...e.ioConfig}}),e}get _isGlobalWrappableSource(){const{rasterInfo:e}=this,t=W(e.spatialReference);return null!=t&&e.extent.width>=t/2}get _hasNoneOrGCSShiftTransform(){const{transform:e}=this.rasterInfo;return null==e||"gcs-shift"===e.type}set rasterJobHandler(e){this._set("rasterJobHandler",e),p(this)&&this.primaryRasters?.rasters?.forEach(t=>t.rasterJobHandler=e)}get rasterId(){return this.url||"rasterId-"+Y++}set url(e){this._set("url",J(e,o.getLogger(this)))}async open(e){return this._openPromise??=H().then(()=>this._open(e)),this._openPromise}async fetchTile(e,t,r,o={}){const n=o.tileInfo||this.rasterInfo.storageInfo.tileInfo,s=this.getTileExtentFromTileInfo(e,t,r,n);if(!s)throw new i("imagery-tile:out-of-bounds","Level for fetch tile out of range");return o={noClip:!0,...o},this.fetchPixels(s,n.size[0],n.size[1],o)}async identify(e,t={}){e=f(m,e).clone().normalize();const{multidimensionalDefinition:i,timeExtent:r}=t,{rasterInfo:o}=this,{hasMultidimensionalTranspose:n,multidimensionalInfo:s}=o;let{transposedVariableName:l}=t;const a=null!=s&&n&&(null!=r||x(i));if(a&&!l){l=null!=i&&i.length>0?i[0].variableName??void 0:s.variables[0].name,t={...t,transposedVariableName:l}}t=this._getRequestOptionsWithSliceId(t);const{spatialReference:c,extent:h}=o,{datumTransformation:d}=t;let y=z(e,c,d);if(!h.intersects(y))return{location:y,value:null};if(null!=o.transform){const e=o.transform.inverseTransform(y);if(!o.nativeExtent.intersects(e))return{location:e,value:null};y=e}let g=0;const I=null!=l&&null!=s&&o.hasMultidimensionalTranspose;if(p(this)){const e=this.primaryRasters.rasters[0];if(I)return e.identify(y,t);const{pixelSize:r}=o,n=3,s=r.x*n/2,l=r.y*n/2,a=new u({xmin:y.x-s,xmax:y.x+s,ymin:y.y-l,ymax:y.y+l,spatialReference:c}),f={interpolation:"nearest",multidimensionalDefinition:i,sliceId:t.sliceId,bandIds:t.bandIds},{pixelBlock:m}=await e.fetchPixels(a,n,n,f),{pixelBlock:h}=await this.fetchPixels(a,n,n,f);if(null==m)return{location:y,value:null};const p=Math.floor(n*n*.5),d=!m.mask||m.mask[p]?m.pixels.map(e=>e[p]):null;let x;return null!=h&&(x=!h.mask||h.mask[p]?h.pixels.map(e=>e[p]):void 0),{location:y,value:d,processedValue:x,pyramidLevel:0}}if(!I)if(t.srcResolution){g=L(t.srcResolution,o,this.ioConfig.sampling).pyramidLevel}else if(g=await this.computeBestPyramidLevelForLocation(e,t),null==g)return{location:y,value:null};const R=this.identifyPixelLocation(y,g,null,I);if(null===R)return{location:y,value:null};const{row:w,col:S,rowOffset:k,colOffset:b,blockWidth:T}=R,v=await this._fetchRawTile(g,w,S,t);if(!v?.pixels?.length)return{location:y,value:null};const P=k*T+b;return this._processIdentifyResult(v,{srcLocation:y,position:P,pyramidLevel:g,useTransposedTile:!!I,requestSomeSlices:a,identifyOptions:t})}async fetchPixels(e,t,i,r={}){e=E(e),r=this._getRequestOptionsWithSliceId(r);const{_hasNoneOrGCSShiftTransform:o}=this;if(r.requestRawData&&o)return this._fetchPixels(e,t,i,r);const n=W(e.spatialReference),s=j(e);if(null==n||0===s||1===s&&this._isGlobalWrappableSource&&o)return this._fetchPixels(e,t,i,r);if(s>=3)return{extent:e,pixelBlock:null};const l=[],{xmin:a,xmax:c}=e,f=Math.round(n/(c-a)*t),m=f-Math.round((n/2-a)/(c-a)*t);let h=0;const p=[];for(let g=0;g<=s;g++){const o=new u({xmin:0===g?a:-n/2,xmax:g===s?c-n*g:n/2,ymin:e.ymin,ymax:e.ymax,spatialReference:e.spatialReference}),d=0===g?f-m:g===s?t-h:f;h+=d,p.push(d);const x=r.disableWrapAround&&g>0?null:this._fetchPixels(o,d,i,r);l.push(x)}const d=(await Promise.all(l)).map(e=>e?.pixelBlock);let x=null;const y={width:t,height:i};if(this.rasterJobHandler){x=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:d,srcMosaicSize:y,destDimension:null,coefs:null,sampleSpacing:null,interpolation:"nearest",alignmentInfo:null,blockWidths:p},r)).pixelBlock}else x=B(d,y,{blockWidths:p});return{extent:e,srcExtent:D(e,this.rasterInfo.spatialReference,r.datumTransformation),pixelBlock:x}}async fetchRawPixels(e,t,i,r={}){t={x:Math.floor(t.x),y:Math.floor(t.y)};const o=await this._fetchRawTiles(e,t,i,r),{nativeExtent:n,nativePixelSize:s,storageInfo:l}=this.rasterInfo,a=2**e,c=s.x*a,f=s.y*a,m=new u({xmin:n.xmin+c*t.x,xmax:n.xmin+c*(t.x+i.width-1),ymin:n.ymax-f*(t.y+i.height-1),ymax:n.ymax-f*t.y,spatialReference:n.spatialReference});if(!o)return{extent:m,srcExtent:m,pixelBlock:null};const{pixelBlocks:h,mosaicSize:p}=o;if(1===h.length&&null!=h[0]&&h[0].width===i.width&&h[0].height===i.height)return{extent:m,srcExtent:m,pixelBlock:o.pixelBlocks[0]};const d=e>0?l.pyramidBlockWidth:l.blockWidth,x=e>0?l.pyramidBlockHeight:l.blockHeight,y={x:t.x%d,y:t.y%x};let g;if(this.rasterJobHandler){g=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:h,srcMosaicSize:p,destDimension:i,clipOffset:y,clipSize:i,coefs:null,sampleSpacing:null,interpolation:r.interpolation,alignmentInfo:null,blockWidths:null},r)).pixelBlock}else g=B(h,p,{clipOffset:y,clipSize:i});return{extent:m,srcExtent:m,pixelBlock:g}}fetchRawTile(e,t,r,o){throw new i("BaseRaster:read-not-implemented","fetchRawTile() is not implemented")}computeExtent(e){return D(this.rasterInfo.extent,e)}decodePixelBlock(e,t){return!this.rasterJobHandler||t.useCanvas?P(e,t):this.rasterJobHandler.decode({data:e,options:t})}async request(e,i,r=0){const{customFetchParameters:o}=this.ioConfig,{range:n,query:s,headers:l}=i;r=r??i.retryCount??this.ioConfig.retryCount;const a=n?{Range:`bytes=${n.from}-${n.to}`}:null;try{return await t(e,{...i,query:{...s,...o},headers:{...l,...a}})}catch(c){if(r>0)return r--,this.request(e,i,r);throw c}}getSliceIndex(e){const{multidimensionalInfo:t}=this.rasterInfo;return null==t||null==e||0===e.length?null:y(e,t)}getTileExtentFromTileInfo(e,t,i,r){const o=r.lodAt(e);return o?this.getTileExtent({x:o.resolution,y:o.resolution},t,i,r.origin,r.spatialReference,r.size):null}updateTileInfo(){const{storageInfo:e,spatialReference:t,extent:i,pixelSize:r}=this.rasterInfo,{pyramidResolutions:o}=e;if(!e.tileInfo){const n=[],s=e.maximumPyramidLevel||0;let l=(r.x+r.y)/2,a=1/.0254*96*l;for(let e=0;e<=s&&(n.unshift(new U({level:s-e,resolution:l,scale:a})),e!==s);e++)if(o){const t=(o[e].x+o[e].y)/2;a*=t/l,l=t}else l*=2,a*=2;const c=new m({x:i.xmin,y:i.ymax,spatialReference:t});e.tileInfo=new $({origin:c,size:[e.blockWidth,e.blockHeight],spatialReference:t,lods:n}),e.isVirtualTileInfo=!0}}createRemoteDatasetStorageInfo(e,t=512,i=512,r){const{width:o,height:n,nativeExtent:s,pixelSize:l,spatialReference:a}=e,c=new m({x:s.xmin,y:s.ymax,spatialReference:a});null==r&&(r=Math.max(0,Math.round(Math.log(Math.max(o,n))/Math.LN2-8)));const f=this.computeBlockBoundary(s,512,512,{x:s.xmin,y:s.ymax},[l],r);e.storageInfo=new Q({blockWidth:t,blockHeight:i,pyramidBlockWidth:t,pyramidBlockHeight:i,origin:c,firstPyramidLevel:1,maximumPyramidLevel:r,blockBoundary:f})}async computeBestPyramidLevelForLocation(e,t={}){return 0}computeBlockBoundary(e,t,i,r,o,n=0,s=2){if(1===o.length&&n>0){o=[...o];let{x:e,y:t}=o[0];for(let i=0;i<n;i++)e*=s,t*=s,o.push({x:e,y:t})}const l=[],{x:a,y:c}=r;for(let f=0;f<o.length;f++){const{x:r,y:n}=o[f];l.push({minCol:Math.floor((e.xmin-a+.1*r)/t/r),maxCol:Math.floor((e.xmax-a-.1*r)/t/r),minRow:Math.floor((c-e.ymax+.1*n)/i/n),maxRow:Math.floor((c-e.ymin-.1*n)/i/n)})}return l}getPyramidPixelSize(e){const{nativePixelSize:t}=this.rasterInfo,{pyramidResolutions:i,pyramidScalingFactor:r}=this.rasterInfo.storageInfo;if(0===e)return t;if(null!=i&&i.length)return i[e-1];const o=r**e;return{x:t.x*o,y:t.y*o}}identifyPixelLocation(e,t,i,r){const{spatialReference:o,nativeExtent:n,storageInfo:s}=this.rasterInfo,{maximumPyramidLevel:l,origin:a,transposeInfo:c}=s,f=r&&null!=c?c.tileSize[0]:s.blockWidth,u=r&&null!=c?c.tileSize[1]:s.blockHeight,m=z(e,o,i);if(!n.intersects(m))return null;if(t<0||t>l)return null;const h=this.getPyramidPixelSize(t),{x:p,y:d}=h,x=(a.y-m.y)/d/u,y=(m.x-a.x)/p/f,g=Math.min(u-1,Math.floor((x-Math.floor(x))*u)),I=Math.min(f-1,Math.floor((y-Math.floor(y))*f));return{pyramidLevel:t,row:Math.floor(x),col:Math.floor(y),rowOffset:g,colOffset:I,blockWidth:f,srcLocation:m}}getTileExtent(e,t,i,r,o,n){const[s,l]=n,a=r.x+i*s*e.x,c=a+s*e.x,f=r.y-t*l*e.y,m=f-l*e.y;return new u({xmin:a,xmax:c,ymin:m,ymax:f,spatialReference:o})}getBlockWidthHeight(e){return{blockWidth:e>0?this.rasterInfo.storageInfo.pyramidBlockWidth:this.rasterInfo.storageInfo.blockWidth,blockHeight:e>0?this.rasterInfo.storageInfo.pyramidBlockHeight:this.rasterInfo.storageInfo.blockHeight}}isBlockOutside(e,t,i){const r=this.rasterInfo.storageInfo.blockBoundary[e];return!r||r.maxRow<t||r.maxCol<i||r.minRow>t||r.minCol>i}updateImageSpaceRasterInfo(e){const{pixelSize:t}=e,{width:i,height:r}=e,o=h.WebMercator;e.spatialReference=o,e.extent=e.nativeExtent=new u({xmin:-.5,ymax:.5,xmax:i-.5,ymin:.5-r,spatialReference:o}),e.isPseudoSpatialReference=!0,e.transform=null,e.pixelSize=new m({x:1,y:1,spatialReference:o});const{extent:n,storageInfo:s}=e;if(s){s.origin=new m({x:n.xmin,y:n.ymax,spatialReference:o});const{pyramidResolutions:i,tileInfo:r}=s;if(i&&i.forEach(e=>{e.x/=t.x,e.y/=t.y}),r){r.origin=s.origin;const t=(e.nativePixelSize.x+e.nativePixelSize.y)/2;r.lods.forEach((e,i)=>{e.resolution=t*2**i,e.scale=96*e.resolution/.0254})}}}async _refresh(e){return{dataChanged:!0}}async _fetchPixels(e,t,i,r={}){let o=j(e);if(o>=2)return{extent:e,pixelBlock:null};const n=this._getSourceDataInfo(e,t,i,r),{pyramidLevel:s,srcResolution:l,srcExtent:a,srcWidth:c,srcHeight:f,ul:u}=n;if(0===c||0===f)return{extent:e,srcExtent:a,pixelBlock:null};const{rasterInfo:h}=this,p=h.transform,d="gcs-shift"===p?.type,x=null!=W(e.spatialReference);!d&&x||(o=j(n.srcExtent,d));const y=await this._fetchRawTiles(s,u,{width:c,height:f,wrapCount:o},r);if(!y)return{extent:e,srcExtent:a,pixelBlock:null};const g=h.storageInfo,I=s>0?g.pyramidBlockWidth:g.blockWidth,R=s>0?g.pyramidBlockHeight:g.blockHeight;let{x:w,y:S}=h.pixelSize;if(s>0){const{pyramidResolutions:e,pyramidScalingFactor:t}=g;if(null!=e&&e[s-1])({x:w,y:S}=e[s-1]);else{const e=t**s;w*=e,S*=e}}const k=h.spatialReference,b=new m({x:w,y:S,spatialReference:k}),T=I===c&&R===f&&u.x%I===0&&u.y%R===0,v=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference}),P=!e.spatialReference.equals(k),C=k.isGeographic?1e-9:1e-4,{datumTransformation:z}=r;if(!P&&T&&1===y.pixelBlocks.length&&I===t&&R===i&&ee(l,v,C))return{extent:e,srcExtent:a,srcTilePixelSize:b,pixelBlock:y.pixelBlocks[0]};const L=x&&null!=W(a.spatialReference)&&this._hasNoneOrGCSShiftTransform,E=r.requestProjectedLocalDirections&&this.rasterInfo.dataType.startsWith("vector");E&&!this.rasterJobHandler&&await H();const D=this.rasterJobHandler?await this.rasterJobHandler.getProjectionOffsetGrid({projectedExtent:e,srcBufferExtent:y.extent,pixelSize:v.toJSON(),datumTransformation:z,rasterTransform:p,hasWrapAround:o>0||L,isAdaptive:!1!==this.ioConfig.optimizeProjectionAccuracy,includeGCSGrid:E},r):O({projectedExtent:e,srcBufferExtent:y.extent,pixelSize:v,datumTransformation:z,rasterTransform:p,hasWrapAround:o>0||L,isAdaptive:!1,includeGCSGrid:E});let A;const q=!r.requestRawData,G={rows:D.spacing[0],cols:D.spacing[1]},J=this._hasNoneOrGCSShiftTransform?this._getRasterTileAlignmentInfo(s,y.extent.xmin):void 0,{pixelBlocks:N,mosaicSize:V,isPartiallyFilled:U}=y;let Q=null;if(this.rasterJobHandler){const e=await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:N,srcMosaicSize:V,destDimension:q?{width:t,height:i}:null,coefs:q?D.coefficients:null,sampleSpacing:q?G:null,projectDirections:E,gcsGrid:E?D.gcsGrid:null,isUV:"vector-uv"===this.rasterInfo.dataType,interpolation:r.interpolation,alignmentInfo:J,blockWidths:null},r);({pixelBlock:A,localNorthDirections:Q}=e)}else{const e=B(N,V,{alignmentInfo:J});A=q?_(e,{width:t,height:i},D.coefficients,G,r.interpolation):e,E&&D.gcsGrid&&(Q=M({width:t,height:i},D.gcsGrid),A=F(A,this.rasterInfo.dataType,Q))}return r.requestRawData||E?{extent:e,srcExtent:a,srcTilePixelSize:b,pixelBlock:A,transformGrid:D,localNorthDirections:Q,isPartiallyFilled:U}:{extent:e,srcExtent:a,srcTilePixelSize:b,pixelBlock:A}}async _fetchRawTiles(e,t,i,r){const{origin:o,blockBoundary:n}=this.rasterInfo.storageInfo,{blockWidth:s,blockHeight:l}=this.getBlockWidthHeight(e);let{x:a,y:c}=t,{width:f,height:m,wrapCount:h}=i;const p=this._getRasterTileAlignmentInfo(e,0);r.buffer&&(a-=r.buffer.cols,c-=r.buffer.rows,f+=2*r.buffer.cols,m+=2*r.buffer.rows);let d=0,x=0,y=0;if(h&&null!=p){({worldColumnCountFromOrigin:x,originColumnOffset:y,rightPadding:d}=p);x*p.blockWidth-d>=a+f&&(d=0)}const g=Math.floor(a/s),I=Math.floor(c/l),R=Math.floor((a+f+d-1)/s),w=Math.floor((c+m+d-1)/l),S=n[e];if(!S)return null;const{minRow:k,minCol:b,maxCol:T,maxRow:v}=S;if(0===h&&(w<k||R<b||I>v||g>T))return null;const P=new Array;let B=!1;const _=null==this.ioConfig.allowPartialFill?r.allowPartialFill:this.ioConfig.allowPartialFill;for(let u=I;u<=w;u++)for(let t=g;t<=R;t++){let i=t;if(!r.disableWrapAround&&h&&null!=p&&x<=t&&(i=t-x-y),u>=k&&i>=b&&v>=u&&T>=i){const t=this._fetchRawTile(e,u,i,r);_?P.push(new Promise(e=>{t.then(t=>e(t)).catch(()=>{B=!0,e(null)})})):P.push(t)}else P.push(Promise.resolve(null))}if(0===P.length)return null;const M=await Promise.all(P),C={height:(w-I+1)*l,width:(R-g+1)*s},{spatialReference:W}=this.rasterInfo,H=this.getPyramidPixelSize(e),{x:z,y:L}=H;return{extent:new u({xmin:o.x+g*s*z,xmax:o.x+(R+1)*s*z,ymin:o.y-(w+1)*l*L,ymax:o.y-I*l*L,spatialReference:W}),pixelBlocks:M,mosaicSize:C,isPartiallyFilled:B}}_fetchRawTile(e,t,i,r){const{storageInfo:o}=this.rasterInfo,n=null!=o.transposeInfo&&!!r.transposedVariableName;if(!n){const r=o.blockBoundary[e];if(!r)return Promise.resolve(null);const{minRow:n,minCol:s,maxCol:l,maxRow:a}=r;if(t<n||i<s||t>a||i>l)return Promise.resolve(null)}const l=n?r.transposeVariableName:r.sliceId,a=o.isBsqTile?r.bandIds:null,c=w(this.rasterId,l,a),f=`${e}/${t}/${i}`;let u=S(c,r.registryId,f);if(null==u){const n=new AbortController,s=r.bandIds?.slice();if(s?.length&&o.isBsqTile){const o=new Set(s),l=[],a=Array.from(o);for(const s of a)l.push(this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:{...r,bandIds:[s]}},{signal:n.signal}));u=Promise.all(l).then(e=>{if(e.some(e=>null==e))return null;if(a.length!==s.length){const t=[];for(const i of s){let r=e[a.indexOf(i)];t.includes(r)&&(r=r.clone()),t.push(r)}e=t}return this.rasterJobHandler?this.rasterJobHandler.compositeBands({pixelBlocks:e},{signal:n.signal,transferPixelsToWorker:!0}):C(e)})}else u=this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:r},{signal:n.signal});k(c,r.registryId,f,u,n),u.catch(()=>b(c,r.registryId,f))}return r.signal&&s(r,()=>{T(c,r.registryId,f)}),u}_computeMagDirValues(e){const{bandCount:t,dataType:i}=this.rasterInfo;if(!(2===t&&"vector-magdir"===i||"vector-uv"===i)||2!==e?.length||!e[0]?.length)return null;const r=e[0].length;if("vector-magdir"===i){const t=e[1].map(e=>(e+360)%360);return[e[0],t]}const[o,n]=e,s=[],l=[];for(let a=0;a<r;a++){const[e,t]=G([o[a],n[a]]);s.push(e),l.push(t)}return[s,l]}_getRasterTileAlignmentInfo(e,t){return null==this._rasterTileAlignmentInfo&&(this._rasterTileAlignmentInfo=A(this.rasterInfo)),null==this._rasterTileAlignmentInfo.pyramidsInfo?null:{startX:t,halfWorldWidth:this._rasterTileAlignmentInfo.halfWorldWidth,hasGCSSShiftTransform:this._rasterTileAlignmentInfo.hasGCSSShiftTransform,...this._rasterTileAlignmentInfo.pyramidsInfo[e]}}_getSourceDataInfo(e,t,i,r={}){const o={datumTransformation:r.datumTransformation,pyramidLevel:0,pyramidResolution:null,srcExtent:null,srcHeight:0,srcResolution:null,srcWidth:0,ul:{x:0,y:0}};r.srcResolution&&(o.srcResolution=r.srcResolution,this._updateSourceDataInfo(e,o));const n=this.rasterInfo.storageInfo.maximumPyramidLevel||0,{srcWidth:s,srcHeight:l,pyramidLevel:a}=o,c=s/t,f=l/i,u=a<n&&c*f>=16,h=a===n&&this._requireTooManySrcTiles(s,l,t,i);if(u||h||(0===s||0===l)){const s=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference});let l=q(s,this.rasterInfo.spatialReference,e,o.datumTransformation);const h=!l||r.srcResolution&&l.x+l.y<r.srcResolution.x+r.srcResolution.y;if(u&&r.srcResolution&&h){const e=Math.round(Math.log(Math.max(c,f))/Math.LN2)-1;if(n-a+3>=e){const t=2**e;l={x:r.srcResolution.x*t,y:r.srcResolution.y*t}}}l&&(o.srcResolution=l,this._updateSourceDataInfo(e,o))}return this._requireTooManySrcTiles(o.srcWidth,o.srcHeight,t,i)&&(o.srcWidth=0,o.srcHeight=0),o}_requireTooManySrcTiles(e,t,i,r){const{tileInfo:o}=this.rasterInfo.storageInfo,n=Math.ceil(e/o.size[0])*Math.ceil(t/o.size[1]),s=e/i,l=t/r,a=Math.max(1,(i+r)/1024);return n>=K*a||s>X||l>X}_updateSourceDataInfo(e,t){t.srcWidth=0,t.srcHeight=0;const{rasterInfo:i}=this,r=i.spatialReference,{srcResolution:o,datumTransformation:n}=t,{pyramidLevel:s,pyramidResolution:l,excessiveReading:a}=L(o,i,this.ioConfig.sampling);if(a)return;let c=t.srcExtent||D(e,r,n);if(null==c)return;const f=i.transform;f&&(c=f.inverseTransform(c)),t.srcExtent=c;const{origin:u}=i.storageInfo,{width:m,height:h,ul:p}=d(c,u,l,s);t.pyramidLevel=s,t.pyramidResolution=l,t.srcWidth=m,t.srcHeight=h,t.ul=p}_getRequestOptionsWithSliceId(e){return null!=this.rasterInfo.multidimensionalInfo&&null==e.sliceId&&(e={...e,sliceId:this.getSliceIndex(e.multidimensionalDefinition)}),e}_processIdentifyResult(e,t){const{srcLocation:i,position:r,pyramidLevel:o,useTransposedTile:n}=t,s=e.pixels[0].length/e.width/e.height;if(!(!e.mask||e.mask[r]))return{location:i,value:null};const{multidimensionalInfo:l}=this.rasterInfo;if(null==l||!n){const t=e.pixels.map(e=>e[r]),n={location:i,value:t,pyramidLevel:o},s=this._computeMagDirValues(t.map(e=>[e]));return s?.length&&(n.magdirValue=s.map(e=>e[0])),n}let a=e.pixels.map(e=>e.slice(r*s,r*s+s)),c=this._computeMagDirValues(a);const{requestSomeSlices:f,identifyOptions:u}=t;let m=g(l,u.transposedVariableName);if(f){const e=I(m,u.multidimensionalDefinition,u.timeExtent);a=a.map(t=>e.map(e=>t[e])),c=c?.map(t=>e.map(e=>t[e])),m=e.map(e=>m[e])}const h=e.noDataValues||this.rasterInfo.noDataValue,p={pixels:a,pixelType:e.pixelType};let d;null!=h&&(v(p,h),d=p.mask);return{location:i,value:null,dataSeries:m.map((e,t)=>{const i={value:0===d?.[t]?null:a.map(e=>e[t]),multidimensionalDefinition:e.multidimensionalDefinition.map(e=>new V({...e,isSlice:!0}))};return c?.length&&(i.magdirValue=[c[0][t],c[1][t]]),i}),pyramidLevel:o}}};function ee(e,t,i){return Math.abs(e.x-t.x)<i&&Math.abs(e.y-t.y)<i}e([a()],Z.prototype,"_rasterTileAlignmentInfo",void 0),e([a()],Z.prototype,"_tileFetchQueue",void 0),e([a({readOnly:!0})],Z.prototype,"_isGlobalWrappableSource",null),e([a({readOnly:!0})],Z.prototype,"_hasNoneOrGCSShiftTransform",null),e([a()],Z.prototype,"_openPromise",void 0),e([a()],Z.prototype,"rasterJobHandler",null),e([a({readOnly:!0})],Z.prototype,"rasterId",null),e([a(N)],Z.prototype,"url",null),e([a({type:String,json:{write:!0}})],Z.prototype,"datasetName",void 0),e([a({type:String,json:{write:!0}})],Z.prototype,"datasetFormat",void 0),e([a()],Z.prototype,"hasUniqueSourceStorageInfo",void 0),e([a()],Z.prototype,"rasterInfo",void 0),e([a()],Z.prototype,"ioConfig",void 0),e([a()],Z.prototype,"sourceJSON",void 0),e([a()],Z.prototype,"rawBlockRegistryIds",void 0),Z=e([c("esri.layers.raster.datasets.BaseRaster")],Z);export{Z as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../request.js";import i from"../../../core/Error.js";import{JSONSupport as o}from"../../../core/JSONSupport.js";import r from"../../../core/Logger.js";import{debounce as n,onAbort as s}from"../../../core/promiseUtils.js";import{QueueProcessor as l}from"../../../core/QueueProcessor.js";import{property as a,subclass as c}from"../../../core/accessorSupport/decorators.js";import{ensureClass as f}from"../../../core/accessorSupport/ensureType.js";import u from"../../../geometry/Extent.js";import m from"../../../geometry/Point.js";import h from"../../../geometry/SpatialReference.js";import{isFunctionRaster as p,getPixelSpaceCoverage as d}from"./datasetUtils.js";import{isMultiSliceOrRangeDefinition as x,getSliceIndex as y,createSlices as g,getSliceIds as I}from"./multidimensionalUtils.js";import{clearRegisteredIds as R,getRasterId as w,getBlock as S,putBlock as k,deleteBlock as b,decreaseRefCount as T}from"./RawBlockCache.js";import{convertNoDataToMask as v}from"../formats/pixelRangeUtils.js";import{decode as P}from"../formats/RasterCodec.js";import{mosaic as B,approximateTransform as _,getLocalArithmeticNorthRotations as M,compositeBands as C}from"../functions/pixelUtils.js";import{getWorldWidth as W,load as H,projectPoint as z,snapPyramid as L,shiftExtent as j,getWorldWrapCount as E,projectExtent as D,getProjectionOffsetGrid as O,getRasterDatasetAlignmentInfo as A,projectResolution as q}from"../functions/rasterProjectionHelper.js";import{convertToLocalDirections as F,uvComponentToVector as G}from"../functions/vectorFieldUtils.js";import{sanitizeUrl as J}from"../../support/arcgisLayerUrl.js";import{url as N}from"../../support/commonProperties.js";import V from"../../support/DimensionalDefinition.js";import U from"../../support/LOD.js";import Q from"../../support/RasterStorageInfo.js";import $ from"../../support/TileInfo.js";const X=8,K=256;let Y=0,Z=class extends o{constructor(){super(...arguments),this._tileFetchQueue=new l({concurrency:32,process:(e,t)=>this.fetchRawTile(e.pyramidLevel,e.row,e.col,{...e.options,signal:t})}),this.datasetName=null,this.datasetFormat=null,this.hasUniqueSourceStorageInfo=!0,this.rasterInfo=null,this.ioConfig={sampling:"closest"},this.rawBlockRegistryIds=[],this.refresh=n(async e=>{await this._openPromise;const t=await this._refresh(e);return t.dataChanged&&R(this.rasterId,this.rawBlockRegistryIds),t})}normalizeCtorArgs(e){return e?.ioConfig&&(e={...e,ioConfig:{resolution:null,bandIds:null,sampling:"closest",tileInfo:$.create(),...e.ioConfig}}),e}get _isGlobalWrappableSource(){const{rasterInfo:e}=this,t=W(e.spatialReference);return null!=t&&e.extent.width>=t/2}get _hasNoneOrGCSShiftTransform(){const{transform:e}=this.rasterInfo;return null==e||"gcs-shift"===e.type}set rasterJobHandler(e){this._set("rasterJobHandler",e),p(this)&&this.primaryRasters?.rasters?.forEach(t=>t.rasterJobHandler=e)}get rasterId(){return this.url||"rasterId-"+Y++}set url(e){this._set("url",J(e,r.getLogger(this)))}async open(e){return this._openPromise??=H().then(()=>this._open(e)),this._openPromise}async fetchTile(e,t,o,r={}){const n=r.tileInfo||this.rasterInfo.storageInfo.tileInfo,s=this.getTileExtentFromTileInfo(e,t,o,n);if(!s)throw new i("imagery-tile:out-of-bounds","Level for fetch tile out of range");return r={noClip:!0,...r},this.fetchPixels(s,n.size[0],n.size[1],r)}async identify(e,t={}){e=f(m,e).clone().normalize();const{multidimensionalDefinition:i,timeExtent:o}=t,{rasterInfo:r}=this,{hasMultidimensionalTranspose:n,multidimensionalInfo:s}=r;let{transposedVariableName:l}=t;const a=null!=s&&n&&(null!=o||x(i));if(a&&!l){l=null!=i&&i.length>0?i[0].variableName??void 0:s.variables[0].name,t={...t,transposedVariableName:l}}t=this._getRequestOptionsWithSliceId(t);const{spatialReference:c,extent:h}=r,{datumTransformation:d}=t;let y=z(e,c,d);if(!h.intersects(y))return{location:y,value:null};if(null!=r.transform){const e=r.transform.inverseTransform(y);if(!r.nativeExtent.intersects(e))return{location:e,value:null};y=e}let g=0;const I=null!=l&&null!=s&&r.hasMultidimensionalTranspose;if(p(this)){const e=this.primaryRasters.rasters[0];if(I)return e.identify(y,t);const{pixelSize:o}=r,n=3,s=o.x*n/2,l=o.y*n/2,a=new u({xmin:y.x-s,xmax:y.x+s,ymin:y.y-l,ymax:y.y+l,spatialReference:c}),f={interpolation:"nearest",multidimensionalDefinition:i,sliceId:t.sliceId,bandIds:t.bandIds},{pixelBlock:m}=await e.fetchPixels(a,n,n,f),{pixelBlock:h}=await this.fetchPixels(a,n,n,f);if(null==m)return{location:y,value:null};const p=Math.floor(n*n*.5),d=!m.mask||m.mask[p]?m.pixels.map(e=>e[p]):null;let x;return null!=h&&(x=!h.mask||h.mask[p]?h.pixels.map(e=>e[p]):void 0),{location:y,value:d,processedValue:x,pyramidLevel:0}}if(!I)if(t.srcResolution){g=L(t.srcResolution,r,this.ioConfig.sampling).pyramidLevel}else if(g=await this.computeBestPyramidLevelForLocation(e,t),null==g)return{location:y,value:null};const R=this.identifyPixelLocation(y,g,null,I);if(null===R)return{location:y,value:null};const{row:w,col:S,rowOffset:k,colOffset:b,blockWidth:T}=R,v=await this._fetchRawTile(g,w,S,t);if(!v?.pixels?.length)return{location:y,value:null};const P=k*T+b;return this._processIdentifyResult(v,{srcLocation:y,position:P,pyramidLevel:g,useTransposedTile:!!I,requestSomeSlices:a,identifyOptions:t})}async fetchPixels(e,t,i,o={}){e=j(e),o=this._getRequestOptionsWithSliceId(o);const{_hasNoneOrGCSShiftTransform:r}=this;if(o.requestRawData&&r)return this._fetchPixels(e,t,i,o);const n=W(e.spatialReference),s=E(e);if(null==n||0===s||1===s&&this._isGlobalWrappableSource&&r)return this._fetchPixels(e,t,i,o);if(s>=3)return{extent:e,pixelBlock:null};const l=[],{xmin:a,xmax:c}=e,f=Math.round(n/(c-a)*t),m=f-Math.round((n/2-a)/(c-a)*t);let h=0;const p=[];for(let g=0;g<=s;g++){const r=new u({xmin:0===g?a:-n/2,xmax:g===s?c-n*g:n/2,ymin:e.ymin,ymax:e.ymax,spatialReference:e.spatialReference}),d=0===g?f-m:g===s?t-h:f;h+=d,p.push(d);const x=o.disableWrapAround&&g>0?null:this._fetchPixels(r,d,i,o);l.push(x)}const d=(await Promise.all(l)).map(e=>e?.pixelBlock);let x=null;const y={width:t,height:i};if(this.rasterJobHandler){x=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:d,srcMosaicSize:y,destDimension:null,coefs:null,sampleSpacing:null,interpolation:"nearest",alignmentInfo:null,blockWidths:p},o)).pixelBlock}else x=B(d,y,{blockWidths:p});return{extent:e,srcExtent:D(e,this.rasterInfo.spatialReference,o.datumTransformation),pixelBlock:x}}async fetchRawPixels(e,t,i,o={}){t={x:Math.floor(t.x),y:Math.floor(t.y)};const r=await this._fetchRawTiles(e,t,i,o),{nativeExtent:n,nativePixelSize:s,storageInfo:l}=this.rasterInfo,a=2**e,c=s.x*a,f=s.y*a,m=new u({xmin:n.xmin+c*t.x,xmax:n.xmin+c*(t.x+i.width-1),ymin:n.ymax-f*(t.y+i.height-1),ymax:n.ymax-f*t.y,spatialReference:n.spatialReference});if(!r)return{extent:m,srcExtent:m,pixelBlock:null};const{pixelBlocks:h,mosaicSize:p}=r;if(1===h.length&&null!=h[0]&&h[0].width===i.width&&h[0].height===i.height)return{extent:m,srcExtent:m,pixelBlock:r.pixelBlocks[0]};const d=e>0?l.pyramidBlockWidth:l.blockWidth,x=e>0?l.pyramidBlockHeight:l.blockHeight,y={x:t.x%d,y:t.y%x};let g;if(this.rasterJobHandler){g=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:h,srcMosaicSize:p,destDimension:i,clipOffset:y,clipSize:i,coefs:null,sampleSpacing:null,interpolation:o.interpolation,alignmentInfo:null,blockWidths:null},o)).pixelBlock}else g=B(h,p,{clipOffset:y,clipSize:i});return{extent:m,srcExtent:m,pixelBlock:g}}fetchRawTile(e,t,o,r){throw new i("BaseRaster:read-not-implemented","fetchRawTile() is not implemented")}computeExtent(e){return D(this.rasterInfo.extent,e)}decodePixelBlock(e,t){return!this.rasterJobHandler||t.useCanvas?P(e,t):this.rasterJobHandler.decode({data:e,options:t})}async request(e,i,o=0){const{customFetchParameters:r}=this.ioConfig,{range:n,query:s,headers:l}=i;o=o??i.retryCount??this.ioConfig.retryCount;const a=n?{Range:`bytes=${n.from}-${n.to}`}:null;try{return await t(e,{...i,query:{...s,...r},headers:{...l,...a}})}catch(c){if(o>0)return o--,this.request(e,i,o);throw c}}getSliceIndex(e){const{multidimensionalInfo:t}=this.rasterInfo;return null==t||null==e||0===e.length?null:y(e,t)}getTileExtentFromTileInfo(e,t,i,o){const r=o.lodAt(e);return r?this.getTileExtent({x:r.resolution,y:r.resolution},t,i,o.origin,o.spatialReference,o.size):null}updateTileInfo(){const{storageInfo:e,spatialReference:t,extent:i,pixelSize:o}=this.rasterInfo,{pyramidResolutions:r}=e;if(!e.tileInfo){const n=[],s=e.maximumPyramidLevel||0;let l=(o.x+o.y)/2,a=1/.0254*96*l;for(let e=0;e<=s&&(n.unshift(new U({level:s-e,resolution:l,scale:a})),e!==s);e++)if(r){const t=(r[e].x+r[e].y)/2;a*=t/l,l=t}else l*=2,a*=2;const c=new m({x:i.xmin,y:i.ymax,spatialReference:t});e.tileInfo=new $({origin:c,size:[e.blockWidth,e.blockHeight],spatialReference:t,lods:n}),e.isVirtualTileInfo=!0}}createRemoteDatasetStorageInfo(e,t=512,i=512,o){const{width:r,height:n,nativeExtent:s,pixelSize:l,spatialReference:a}=e,c=new m({x:s.xmin,y:s.ymax,spatialReference:a});null==o&&(o=Math.max(0,Math.round(Math.log(Math.max(r,n))/Math.LN2-8)));const f=this.computeBlockBoundary(s,512,512,{x:s.xmin,y:s.ymax},[l],o);e.storageInfo=new Q({blockWidth:t,blockHeight:i,pyramidBlockWidth:t,pyramidBlockHeight:i,origin:c,firstPyramidLevel:1,maximumPyramidLevel:o,blockBoundary:f})}async computeBestPyramidLevelForLocation(e,t={}){return 0}computeBlockBoundary(e,t,i,o,r,n=0,s=2){if(1===r.length&&n>0){r=[...r];let{x:e,y:t}=r[0];for(let i=0;i<n;i++)e*=s,t*=s,r.push({x:e,y:t})}const l=[],{x:a,y:c}=o;for(let f=0;f<r.length;f++){const{x:o,y:n}=r[f];l.push({minCol:Math.floor((e.xmin-a+.1*o)/t/o),maxCol:Math.floor((e.xmax-a-.1*o)/t/o),minRow:Math.floor((c-e.ymax+.1*n)/i/n),maxRow:Math.floor((c-e.ymin-.1*n)/i/n)})}return l}getPyramidPixelSize(e){const{nativePixelSize:t}=this.rasterInfo,{pyramidResolutions:i,pyramidScalingFactor:o}=this.rasterInfo.storageInfo;if(0===e)return t;if(null!=i&&i.length)return i[e-1];const r=o**e;return{x:t.x*r,y:t.y*r}}identifyPixelLocation(e,t,i,o){const{spatialReference:r,nativeExtent:n,storageInfo:s}=this.rasterInfo,{maximumPyramidLevel:l,origin:a,transposeInfo:c}=s,f=o&&null!=c?c.tileSize[0]:s.blockWidth,u=o&&null!=c?c.tileSize[1]:s.blockHeight,m=z(e,r,i);if(!n.intersects(m))return null;if(t<0||t>l)return null;const h=this.getPyramidPixelSize(t),{x:p,y:d}=h,x=(a.y-m.y)/d/u,y=(m.x-a.x)/p/f,g=Math.min(u-1,Math.floor((x-Math.floor(x))*u)),I=Math.min(f-1,Math.floor((y-Math.floor(y))*f));return{pyramidLevel:t,row:Math.floor(x),col:Math.floor(y),rowOffset:g,colOffset:I,blockWidth:f,srcLocation:m}}getTileExtent(e,t,i,o,r,n){const[s,l]=n,a=o.x+i*s*e.x,c=a+s*e.x,f=o.y-t*l*e.y,m=f-l*e.y;return new u({xmin:a,xmax:c,ymin:m,ymax:f,spatialReference:r})}getBlockWidthHeight(e){return{blockWidth:e>0?this.rasterInfo.storageInfo.pyramidBlockWidth:this.rasterInfo.storageInfo.blockWidth,blockHeight:e>0?this.rasterInfo.storageInfo.pyramidBlockHeight:this.rasterInfo.storageInfo.blockHeight}}isBlockOutside(e,t,i){const o=this.rasterInfo.storageInfo.blockBoundary[e];return!o||o.maxRow<t||o.maxCol<i||o.minRow>t||o.minCol>i}updateImageSpaceRasterInfo(e){const{pixelSize:t}=e,{width:i,height:o}=e,r=h.WebMercator;e.spatialReference=r,e.extent=e.nativeExtent=new u({xmin:-.5,ymax:.5,xmax:i-.5,ymin:.5-o,spatialReference:r}),e.isPseudoSpatialReference=!0,e.transform=null,e.pixelSize=new m({x:1,y:1,spatialReference:r});const{extent:n,storageInfo:s}=e;if(s){s.origin=new m({x:n.xmin,y:n.ymax,spatialReference:r});const{pyramidResolutions:i,tileInfo:o}=s;if(i&&i.forEach(e=>{e.x/=t.x,e.y/=t.y}),o){o.origin=s.origin;const t=(e.nativePixelSize.x+e.nativePixelSize.y)/2;o.lods.forEach((e,i)=>{e.resolution=t*2**i,e.scale=96*e.resolution/.0254})}}}async _refresh(e){return{dataChanged:!0}}async _fetchPixels(e,t,i,o={}){let r=E(e);if(r>=2)return{extent:e,pixelBlock:null};const n=this._getSourceDataInfo(e,t,i,o),{pyramidLevel:s,srcResolution:l,srcWidth:a,srcHeight:c,ul:f}=n;let{srcExtent:u}=n;if(0===a||0===c)return{extent:e,srcExtent:u,pixelBlock:null};const{rasterInfo:h}=this,p=h.transform,d="gcs-shift"===p?.type,x=null!=W(e.spatialReference);!d&&x||(r=E(u,d));const y=await this._fetchRawTiles(s,f,{width:a,height:c,wrapCount:r},o);if(!y)return{extent:e,srcExtent:u,pixelBlock:null};u=y.extent;const g=h.storageInfo,I=s>0?g.pyramidBlockWidth:g.blockWidth,R=s>0?g.pyramidBlockHeight:g.blockHeight;let{x:w,y:S}=h.pixelSize;if(s>0){const{pyramidResolutions:e,pyramidScalingFactor:t}=g;if(null!=e&&e[s-1])({x:w,y:S}=e[s-1]);else{const e=t**s;w*=e,S*=e}}const k=h.spatialReference,b=new m({x:w,y:S,spatialReference:k}),T=I===a&&R===c&&f.x%I===0&&f.y%R===0,v=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference}),P=!e.spatialReference.equals(k),C=k.isGeographic?1e-9:1e-4,{datumTransformation:z}=o;if(!P&&T&&1===y.pixelBlocks.length&&I===t&&R===i&&ee(l,v,C))return{extent:e,srcExtent:u,srcTilePixelSize:b,pixelBlock:y.pixelBlocks[0]};const L=x&&null!=W(u.spatialReference)&&this._hasNoneOrGCSShiftTransform,j=o.requestProjectedLocalDirections&&this.rasterInfo.dataType.startsWith("vector");j&&!this.rasterJobHandler&&await H();const D=this.rasterJobHandler?await this.rasterJobHandler.getProjectionOffsetGrid({projectedExtent:e,srcBufferExtent:u,pixelSize:v.toJSON(),datumTransformation:z,rasterTransform:p,hasWrapAround:r>0||L,isAdaptive:!1!==this.ioConfig.optimizeProjectionAccuracy,includeGCSGrid:j},o):O({projectedExtent:e,srcBufferExtent:u,pixelSize:v,datumTransformation:z,rasterTransform:p,hasWrapAround:r>0||L,isAdaptive:!1,includeGCSGrid:j});let A;const q=!o.requestRawData,G={rows:D.spacing[0],cols:D.spacing[1]},J=this._hasNoneOrGCSShiftTransform?this._getRasterTileAlignmentInfo(s,u.xmin):void 0,{pixelBlocks:N,mosaicSize:V,isPartiallyFilled:U}=y;let Q=null;if(this.rasterJobHandler){const e=await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:N,srcMosaicSize:V,destDimension:q?{width:t,height:i}:null,coefs:q?D.coefficients:null,sampleSpacing:q?G:null,projectDirections:j,gcsGrid:j?D.gcsGrid:null,isUV:"vector-uv"===this.rasterInfo.dataType,interpolation:o.interpolation,alignmentInfo:J,blockWidths:null},o);({pixelBlock:A,localNorthDirections:Q}=e)}else{const e=B(N,V,{alignmentInfo:J});A=q?_(e,{width:t,height:i},D.coefficients,G,o.interpolation):e,j&&D.gcsGrid&&(Q=M({width:t,height:i},D.gcsGrid),A=F(A,this.rasterInfo.dataType,Q))}return o.requestRawData||j?{extent:e,srcExtent:u,srcTilePixelSize:b,pixelBlock:A,transformGrid:D,localNorthDirections:Q,isPartiallyFilled:U}:{extent:e,srcExtent:e,srcTilePixelSize:b,pixelBlock:A}}async _fetchRawTiles(e,t,i,o){const{origin:r,blockBoundary:n}=this.rasterInfo.storageInfo,{blockWidth:s,blockHeight:l}=this.getBlockWidthHeight(e);let{x:a,y:c}=t,{width:f,height:m,wrapCount:h}=i;const p=this._getRasterTileAlignmentInfo(e,0);o.buffer&&(a-=o.buffer.cols,c-=o.buffer.rows,f+=2*o.buffer.cols,m+=2*o.buffer.rows);let d=0,x=0,y=0;if(h&&null!=p){({worldColumnCountFromOrigin:x,originColumnOffset:y,rightPadding:d}=p);x*p.blockWidth-d>=a+f&&(d=0)}const g=Math.floor(a/s),I=Math.floor(c/l),R=Math.floor((a+f+d-1)/s),w=Math.floor((c+m+d-1)/l),S=n[e];if(!S)return null;const{minRow:k,minCol:b,maxCol:T,maxRow:v}=S;if(0===h&&(w<k||R<b||I>v||g>T))return null;const P=new Array;let B=!1;const _=null==this.ioConfig.allowPartialFill?o.allowPartialFill:this.ioConfig.allowPartialFill;for(let u=I;u<=w;u++)for(let t=g;t<=R;t++){let i=t;if(!o.disableWrapAround&&h&&null!=p&&x<=t&&(i=t-x-y),u>=k&&i>=b&&v>=u&&T>=i){const t=this._fetchRawTile(e,u,i,o);_?P.push(new Promise(e=>{t.then(t=>e(t)).catch(()=>{B=!0,e(null)})})):P.push(t)}else P.push(Promise.resolve(null))}if(0===P.length)return null;const M=await Promise.all(P),C={height:(w-I+1)*l,width:(R-g+1)*s},{spatialReference:W}=this.rasterInfo,H=this.getPyramidPixelSize(e),{x:z,y:L}=H;return{extent:new u({xmin:r.x+g*s*z,xmax:r.x+(R+1)*s*z,ymin:r.y-(w+1)*l*L,ymax:r.y-I*l*L,spatialReference:W}),pixelBlocks:M,mosaicSize:C,isPartiallyFilled:B}}_fetchRawTile(e,t,i,o){const{storageInfo:r}=this.rasterInfo,n=null!=r.transposeInfo&&!!o.transposedVariableName;if(!n){const o=r.blockBoundary[e];if(!o)return Promise.resolve(null);const{minRow:n,minCol:s,maxCol:l,maxRow:a}=o;if(t<n||i<s||t>a||i>l)return Promise.resolve(null)}const l=n?o.transposeVariableName:o.sliceId,a=r.isBsqTile?o.bandIds:null,c=w(this.rasterId,l,a),f=`${e}/${t}/${i}`;let u=S(c,o.registryId,f);if(null==u){const n=new AbortController,s=o.bandIds?.slice();if(s?.length&&r.isBsqTile){const r=new Set(s),l=[],a=Array.from(r);for(const s of a)l.push(this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:{...o,bandIds:[s]}},{signal:n.signal}));u=Promise.all(l).then(e=>{if(e.some(e=>null==e))return null;if(a.length!==s.length){const t=[];for(const i of s){let o=e[a.indexOf(i)];t.includes(o)&&(o=o.clone()),t.push(o)}e=t}return this.rasterJobHandler?this.rasterJobHandler.compositeBands({pixelBlocks:e},{signal:n.signal,transferPixelsToWorker:!0}):C(e)})}else u=this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:o},{signal:n.signal});k(c,o.registryId,f,u,n),u.catch(()=>b(c,o.registryId,f))}return o.signal&&s(o,()=>{T(c,o.registryId,f)}),u}_computeMagDirValues(e){const{bandCount:t,dataType:i}=this.rasterInfo;if(!(2===t&&"vector-magdir"===i||"vector-uv"===i)||2!==e?.length||!e[0]?.length)return null;const o=e[0].length;if("vector-magdir"===i){const t=e[1].map(e=>(e+360)%360);return[e[0],t]}const[r,n]=e,s=[],l=[];for(let a=0;a<o;a++){const[e,t]=G([r[a],n[a]]);s.push(e),l.push(t)}return[s,l]}_getRasterTileAlignmentInfo(e,t){return null==this._rasterTileAlignmentInfo&&(this._rasterTileAlignmentInfo=A(this.rasterInfo)),null==this._rasterTileAlignmentInfo.pyramidsInfo?null:{startX:t,halfWorldWidth:this._rasterTileAlignmentInfo.halfWorldWidth,hasGCSSShiftTransform:this._rasterTileAlignmentInfo.hasGCSSShiftTransform,...this._rasterTileAlignmentInfo.pyramidsInfo[e]}}_getSourceDataInfo(e,t,i,o={}){const r={datumTransformation:o.datumTransformation,pyramidLevel:0,pyramidResolution:null,srcExtent:null,srcHeight:0,srcResolution:null,srcWidth:0,ul:{x:0,y:0}};o.srcResolution&&(r.srcResolution=o.srcResolution,this._updateSourceDataInfo(e,r));const n=this.rasterInfo.storageInfo.maximumPyramidLevel||0,{srcWidth:s,srcHeight:l,pyramidLevel:a}=r,c=s/t,f=l/i,u=a<n&&c*f>=16,h=a===n&&this._requireTooManySrcTiles(s,l,t,i);if(u||h||(0===s||0===l)){const s=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference});let l=q(s,this.rasterInfo.spatialReference,e,r.datumTransformation);const h=!l||o.srcResolution&&l.x+l.y<o.srcResolution.x+o.srcResolution.y;if(u&&o.srcResolution&&h){const e=Math.round(Math.log(Math.max(c,f))/Math.LN2)-1;if(n-a+3>=e){const t=2**e;l={x:o.srcResolution.x*t,y:o.srcResolution.y*t}}}l&&(r.srcResolution=l,this._updateSourceDataInfo(e,r))}return this._requireTooManySrcTiles(r.srcWidth,r.srcHeight,t,i)&&(r.srcWidth=0,r.srcHeight=0),r}_requireTooManySrcTiles(e,t,i,o){const{tileInfo:r}=this.rasterInfo.storageInfo,n=Math.ceil(e/r.size[0])*Math.ceil(t/r.size[1]),s=e/i,l=t/o,a=Math.max(1,(i+o)/1024);return n>=K*a||s>X||l>X}_updateSourceDataInfo(e,t){t.srcWidth=0,t.srcHeight=0;const{rasterInfo:i}=this,o=i.spatialReference,{srcResolution:r,datumTransformation:n}=t,{pyramidLevel:s,pyramidResolution:l,excessiveReading:a}=L(r,i,this.ioConfig.sampling);if(a)return;let c=t.srcExtent||D(e,o,n);if(null==c)return;const f=i.transform;f&&(c=f.inverseTransform(c)),t.srcExtent=c;const{origin:u}=i.storageInfo,{width:m,height:h,ul:p}=d(c,u,l,s);t.pyramidLevel=s,t.pyramidResolution=l,t.srcWidth=m,t.srcHeight=h,t.ul=p}_getRequestOptionsWithSliceId(e){return null!=this.rasterInfo.multidimensionalInfo&&null==e.sliceId&&(e={...e,sliceId:this.getSliceIndex(e.multidimensionalDefinition)}),e}_processIdentifyResult(e,t){const{srcLocation:i,position:o,pyramidLevel:r,useTransposedTile:n}=t,s=e.pixels[0].length/e.width/e.height;if(!(!e.mask||e.mask[o]))return{location:i,value:null};const{multidimensionalInfo:l}=this.rasterInfo;if(null==l||!n){const t=e.pixels.map(e=>e[o]),n={location:i,value:t,pyramidLevel:r},s=this._computeMagDirValues(t.map(e=>[e]));return s?.length&&(n.magdirValue=s.map(e=>e[0])),n}let a=e.pixels.map(e=>e.slice(o*s,o*s+s)),c=this._computeMagDirValues(a);const{requestSomeSlices:f,identifyOptions:u}=t;let m=g(l,u.transposedVariableName);if(f){const e=I(m,u.multidimensionalDefinition,u.timeExtent);a=a.map(t=>e.map(e=>t[e])),c=c?.map(t=>e.map(e=>t[e])),m=e.map(e=>m[e])}const h=e.noDataValues||this.rasterInfo.noDataValue,p={pixels:a,pixelType:e.pixelType};let d;null!=h&&(v(p,h),d=p.mask);return{location:i,value:null,dataSeries:m.map((e,t)=>{const i={value:0===d?.[t]?null:a.map(e=>e[t]),multidimensionalDefinition:e.multidimensionalDefinition.map(e=>new V({...e,isSlice:!0}))};return c?.length&&(i.magdirValue=[c[0][t],c[1][t]]),i}),pyramidLevel:r}}};function ee(e,t,i){return Math.abs(e.x-t.x)<i&&Math.abs(e.y-t.y)<i}e([a()],Z.prototype,"_rasterTileAlignmentInfo",void 0),e([a()],Z.prototype,"_tileFetchQueue",void 0),e([a({readOnly:!0})],Z.prototype,"_isGlobalWrappableSource",null),e([a({readOnly:!0})],Z.prototype,"_hasNoneOrGCSShiftTransform",null),e([a()],Z.prototype,"_openPromise",void 0),e([a()],Z.prototype,"rasterJobHandler",null),e([a({readOnly:!0})],Z.prototype,"rasterId",null),e([a(N)],Z.prototype,"url",null),e([a({type:String,json:{write:!0}})],Z.prototype,"datasetName",void 0),e([a({type:String,json:{write:!0}})],Z.prototype,"datasetFormat",void 0),e([a()],Z.prototype,"hasUniqueSourceStorageInfo",void 0),e([a()],Z.prototype,"rasterInfo",void 0),e([a()],Z.prototype,"ioConfig",void 0),e([a()],Z.prototype,"sourceJSON",void 0),e([a()],Z.prototype,"rawBlockRegistryIds",void 0),Z=e([c("esri.layers.raster.datasets.BaseRaster")],Z);export{Z as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{property as r,subclass as i}from"../../../core/accessorSupport/decorators.js";import s from"../../../geometry/Polygon.js";import a from"./BaseRaster.js";import{clip as o}from"../functions/clipUtils.js";import{approximateTransform as n}from"../functions/pixelUtils.js";import{projectPolygon as l}from"../functions/rasterProjectionHelper.js";import c from"../../../rest/support/FeatureSet.js";const p=40;let m=class extends a{constructor(){super(...arguments),this.datasetFormat="Function",this.tileType="Raster",this.rasterFunction=null,this._clippingGeometry=new Map}async fetchPixels(e,t,r,i={}){const{rasters:s,rasterIds:a}=this.primaryRasters;let l=!1;const{interpolation:c}=i,p=this.rasterFunction.flatWebGLFunctionChain?.hasFocalFunction;!i.requestRawData&&p&&(l=1===s.length&&!i.skipRasterFunction,i={...i,interpolation:"bilinear",requestRawData:l}),i.requestRawData&&s.length>1&&!this.hasUniqueSourceStorageInfo&&(l=!1,i={...i,requestRawData:!1});const m=s.map(s=>s.fetchPixels(e,t,r,i)),u=await Promise.all(m),h=u.map(e=>e.pixelBlock),f=l||i.requestRawData?u.map(e=>e.srcTilePixelSize):null;if(i.skipRasterFunction||h.every(e=>null==e))return u[0];const d=u.find(e=>null!=e.pixelBlock)?.extent??e;let y=this.rasterJobHandler?await this.rasterJobHandler.process({extent:d,primaryPixelBlocks:h,primaryPixelSizes:f,primaryRasterIds:a,parameters:this.processParameters}):this.rasterFunction.process({extent:d,primaryPixelBlocks:h,primaryPixelSizes:f,primaryRasterIds:a},this.processParameters);const{transformGrid:g}=u[0];if(!l||null==y||null==g){const e=i.noClip?null:this.getClippingGeometry(d.spatialReference);return!i.noClip&&null!=y&&e&&(y=await o(y,d,e)),{...u[0],pixelBlock:y}}const x={rows:g.spacing[0],cols:g.spacing[1]};let R;if(this.rasterJobHandler){R=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:[y],srcMosaicSize:{width:y.width,height:y.height},destDimension:{width:t,height:r},coefs:g.coefficients,sampleSpacing:x,projectDirections:!1,gcsGrid:null,isUV:!1,interpolation:c,alignmentInfo:void 0,blockWidths:null},i)).pixelBlock}else R=n(y,{width:t,height:r},g.coefficients,x,c);const w=i.noClip?null:this.getClippingGeometry(e.spatialReference);return i.noClip||null==R||null==w||(R=await o(R,e,w)),{extent:e,srcExtent:u[0].srcExtent,pixelBlock:R,srcTilePixelSize:u[0].srcTilePixelSize}}getClippingGeometry(e){const t=this._clippingGeometry.get("0");if(!e||!t)return t;const r=h(e);let i=this._clippingGeometry.get(r);return null!=i||(i=e.equals(t.spatialReference)?t:l(t,e),this._clippingGeometry.set(r,i)),i}async _open(e){const{rasterFunction:r}=this;r.isRoot=!0,this.primaryRasters?.rasters?.length?r.sourceRasters=this.primaryRasters.rasters:(this.primaryRasters=r.getPrimaryRasters(),this.rasterJobHandler&&this.primaryRasters.rasters?.forEach(e=>e.rasterJobHandler=this.rasterJobHandler));const{rasters:i,rasterIds:s}=this.primaryRasters,a=i.map(t=>t.rasterInfo?void 0:t.open(e));await Promise.all(a);const o=i.map(({rasterInfo:e})=>e),n=r.bind({rasterInfos:o,rasterIds:s});if(r.rawSourceRasterInfos=o,!n.success||0===o.length)throw new t("raster-function:open",`cannot bind the function: ${n.error??""}`);const l="Table"===r.functionName?r:r.functionArguments?.raster;"Table"===l?.functionName&&(r.rasterInfo.attributeTable=c.fromJSON(l.functionArguments.attributeTableAsRecordSet)),await this.syncJobHandler();const p=o[0];this.hasUniqueSourceStorageInfo=1===o.length||o.slice(1).every(e=>u(e,p)),this.set("sourceJSON",i[0].sourceJSON),this.set("rasterInfo",r.rasterInfo),await this._updateClipGeometry()}async syncJobHandler(){return this.rasterJobHandler?.updateRasterFunction(this.rasterFunction)}async _updateClipGeometry(){const e=this.rasterFunction.getClippingGeometries()[0];let t=e?.clippingGeometry;if(t&&"inside"===e.clippingType){const{extent:e}=this.rasterInfo,r=await import("../../../geometry/operators/densifyOperator.js"),i=await import("../../../geometry/operators/differenceOperator.js");let a=r.execute(s.fromExtent(e),2*(e.width+e.height)/p);a=l(a,t.spatialReference),t=i.execute(a,t)}this._clippingGeometry.clear(),t&&this._clippingGeometry.set("0",t)}};function u(e,t){const{storageInfo:r,pixelSize:i,spatialReference:s,extent:a}=e,{storageInfo:o,pixelSize:n,spatialReference:l,extent:c}=t;return i.x===n.x&&i.y===n.y&&s.equals(l)&&a.equals(c)&&r.blockHeight===o.blockHeight&&r.blockWidth===o.blockWidth&&r.maximumPyramidLevel===o.maximumPyramidLevel&&r.firstPyramidLevel===o.firstPyramidLevel&&r.pyramidBlockWidth===o.pyramidBlockWidth&&r.pyramidBlockHeight===o.pyramidBlockHeight&&r.pyramidScalingFactor===o.pyramidScalingFactor}function h(e){return String(e.wkid??e.wkt??e.wkt2)}e([r({type:String,json:{write:!0}})],m.prototype,"datasetFormat",void 0),e([r()],m.prototype,"tileType",void 0),e([r()],m.prototype,"rasterFunction",void 0),e([r()],m.prototype,"processParameters",void 0),e([r()],m.prototype,"primaryRasters",void 0),m=e([i("esri.layers.raster.datasets.FunctionRaster")],m);export{m as default};
|